{"version":3,"sources":["types/enums/user-state.ts","assets/fonts/Formular-Black.otf","assets/fonts/Formular-BlackItalic.otf","assets/fonts/Formular-Bold.otf","assets/fonts/Formular-BoldItalic.otf","assets/fonts/Formular-Italic.otf","assets/fonts/Formular-Light.otf","assets/fonts/Formular-LightItalic.otf","assets/fonts/Formular-Medium.otf","assets/fonts/Formular-MediumItalic.otf","assets/fonts/Formular-Regular.otf","assets/icons/eye_open.svg","assets/icons/eye_close.svg","assets/icons/x_icon.svg","assets/icons/menu_icon.svg","assets/icons/logo.svg","assets/icons/home_icon.svg","assets/icons/user_icon.svg","assets/icons/daily_icon.svg","assets/icons/progress_icon.svg","assets/icons/profile_icon.svg","assets/icons/home_active_icon.svg","assets/icons/profile_active_icon.svg","assets/icons/progress_active_icon.svg","assets/icons/daily_active_icon.svg","assets/icons/check_icon.svg","assets/icons/star_icon.svg","assets/icons/star_transparent_icon.svg","assets/icons/document_icon.svg","assets/icons/time_icon.svg","assets/icons/heart_icon.svg","assets/icons/tick_icon.svg","assets/icons/card_icon.svg","assets/icons/right_arrow_icon.svg","assets/icons/left_arrow_icon.svg","assets/icons/calender_icon.svg","assets/icons/edit_icon.svg","assets/icons/trash_icon.svg","assets/icons/play_icon.svg","assets/icons/up_arrow_icon.svg","assets/icons/down_arrow_icon.svg","assets/icons/close_icon.svg","assets/icons/close_white_icon.svg","assets/icons/pause_icon.svg","assets/icons/replay_icon.svg","assets/icons/final_icon.svg","assets/icons/plus_icon.svg","assets/icons/minus_icon.svg","assets/icons/left_arrow_long_icon.svg","assets/icons/advice_icon.svg","assets/icons/advice_active_icon.svg","assets/icons/right_arrow_long_icon.svg","assets/icons/rectangle_icon.svg","assets/icons/ellipse_icon.svg","assets/icons/video_play_icon.svg","assets/icons/expand_icon.svg","assets/icons/rotate_icon.svg","assets/icons/no_phone_icon.svg","assets/icons/video.svg","contexts/auth/auth.context.ts","hooks/useAuth/useAuth.ts","components/layout/layout.component.tsx","components/vigo-input/vigo-input.component.tsx","components/vigo-phone-input/vigo-phone-input.component.tsx","components/vigo-datepicker/vigo-datepicker.component.tsx","components/vigo-select/vigo-select.component.tsx","types/enums/user-stroke-type.ts","types/enums/user-stroke-side.ts","components/vigo-button/vigo-button.component.tsx","components/vigo-radio-button/vigo-radio-button.component.tsx","components/vigo-notification/vigo-notification.component.tsx","components/profile-form/profile-form.component.tsx","types/models/message.ts","types/enums/daily-plan-module-status.ts","types/models/answer.ts","types/models/intent.ts","types/models/module-localization.ts","types/models/module.ts","services/local-storage/local-storage.service.ts","services/abstract/abstract.service.ts","services/daily-plan/daily-plan.service.ts","hooks/useActivityReport/useActivityReport.ts","hooks/useCompletionRate/useCompletionRate.ts","components/profile-stats/profile-stats.component.tsx","types/models/daily-plan-module.ts","types/models/daily-plan.ts","types/models/daily-plan-data.ts","types/models/daily-plan-history-item.ts","services/user/user.service.ts","components/profile-logout/profile-logout.component.tsx","components/vigo-checkbox/vigo-checkbox.component.tsx","types/enums/user-convo-speed.ts","components/vigo-modals/error-modal.component.tsx","components/vigo-modals/success-modal.component.tsx","utils/platforms.tsx","components/vigo-modals/install-modal.component.tsx","components/vigo-modals/rotate-modal.component.tsx","components/profile-settings/profile-settings.component.tsx","components/profile-disclaimer/profile-disclaimer.component.tsx","pages/profile/tabs/my-data/my-data.tab.tsx","types/models/subscription.ts","services/subscription/subscription.service.ts","hooks/useSubscription/useSubscription.ts","types/models/subscription-plan.ts","services/constants/constants.service.ts","components/current-plan/current-plan.component.tsx","components/payment-method/payment-method.component.tsx","services/payments/payments.service.ts","hooks/usePaymentCustomer/usePaymentCustomer.ts","components/upcoming-charge/upcoming-charge.component.tsx","hooks/useStripePortal/usePaymentsHistory.ts","hooks/useStripeCheckout/usePaymentsHistory.ts","pages/profile/tabs/payments/payments.tab.tsx","components/blood-pressure-chart/blood-pressure-chart.component.tsx","components/blood-pressure-form/blood-pressure-form.component.tsx","services/blood-pressure/blood-pressure.service.ts","hooks/useBloodPressure/useBloodPressure.ts","types/classes/chart-bar-model.ts","pages/profile/tabs/blood-pressure/blood-pressure.tab.tsx","pages/profile/profile.page.tsx","components/loading/loading.component.tsx","containers/protected-route/protected-route.component.tsx","assets/logos/loginLogo.svg","components/login-form/login-form.component.tsx","pages/login/login.page.tsx","types/enums/daily-activity-type.ts","components/vigo-welcome/vigo-welcome.component.tsx","services/user-data/user-data.service.ts","pages/welcome/welcome.page.tsx","components/mood-bar/mood-bar.component.tsx","hooks/useMood/useMood.ts","pages/progress/tabs/my-mood/my-mood.tab.tsx","components/activity-edit-form/activity-edit-form.component.tsx","components/activity-chart/activity-chart.component.tsx","components/activity-form/activity-form.component.tsx","components/activity-goal/activity-goal.component.tsx","types/enums/goal-key.ts","services/daily-activity/daily-activity.service.ts","hooks/useDailyActivity/useDailyActivity.ts","pages/progress/tabs/activity/activity.tab.tsx","components/my-progress-chart/my-progress-chart.component.tsx","services/goal/goal.service.ts","hooks/useGoal/useGoal.ts","services/user-test/user-test.service.ts","hooks/useUserTest/useUserTest.ts","components/my-progress-goals/my-progress-goals.component.tsx","types/models/user-test.ts","components/my-progress-assessment/my-progress-assessment.component.tsx","pages/progress/tabs/program-goals/program-goals.tab.tsx","pages/progress/progress.page.tsx","components/onboarding-form/onboarding-form.component.tsx","hooks/useOnboardingUser/useOnboardingUser.ts","pages/onboarding/onboarding.page.tsx","components/video-localization/video-localization.component.tsx","services/video-exercises/video-exercises.service.ts","hooks/useVideoExercise/useVideoExercise.ts","hooks/useVideoPlayer/useVideoPlayer.ts","services/word-game/word-game.service.ts","hooks/useWordGames/useWordGames.ts","components/speech-game/speech-game.component.tsx","components/answer-mood/answer-mood.component.tsx","components/answer-quiz/answer-quiz.component.tsx","components/answer-phrase/answer-phrase.component.tsx","components/message-text/message-text.component.tsx","components/message-image/message-image.component.tsx","components/message-video/message-video.component.tsx","components/message-speech/message-speech.component.tsx","components/answer-exgrade/answer-exgrade.component.tsx","hooks/useDailyPlan/useDailyPlan.ts","services/daily-plan-module/daily-plan-module.service.ts","types/models/inventories.ts","types/enums/universal-module-type.ts","hooks/useInterval/useInterval.ts","components/video/video.component.tsx","pages/home/home.page.tsx","components/advice/advice.component.tsx","pages/advice/advice.page.tsx","components/video-call/video-call.component.tsx","pages/daily-plan/tabs/plan-for-today/plan-for-today.tab.tsx","hooks/useDailyPlanHistory/useDailyPlanHistory.ts","pages/daily-plan/tabs/history/history.tab.tsx","pages/daily-plan/tabs/favorites/favorites.tab.tsx","pages/daily-plan/daily-plan.page.tsx","services/auth/auth.service.ts","containers/auth-provider/auth-provider.component.tsx","containers/query-provider/query-provider.component.tsx","App.tsx","reportWebVitals.ts","i18n.tsx","index.tsx"],"names":["UserState","initialValue","isLoggedIn","user","login","a","logout","refreshState","AuthContext","React","createContext","useAuth","useContext","Layout","children","t","useTranslation","useState","sidebarOpen","setSidebarOpen","currentURL","window","location","pathname","navigation","name","href","icon","HomeIcon","activeIcon","HomeActiveIcon","DailyIcon","DailyActiveIcon","ProgressIcon","ProgressActiveIcon","ProfileIcon","ProfileActiveIcon","className","Root","show","as","Fragment","onClose","Child","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","Overlay","type","onClick","src","XIcon","alt","Logo","state","Active","map","item","to","classNames","MenuIcon","VigoInput","props","showLabel","labelText","disabled","required","inputProps","htmlFor","id","VigoPhoneInput","country","placeholder","buttonStyle","backgroundColor","border","padding","paddingTop","inputClass","inputStyle","width","paddingBottom","borderRadius","fontSize","fontWeight","outline","containerStyle","marginTop","onChange","value","VigoDatePicker","days","months","i18n","locale","localize","day","n","month","formatLong","date","resolvedLanguage","open","dateFormat","selected","minDate","maxDate","error","CalenderIcon","VigoSelect","UserStrokeType","options","selectProps","style","MozAppearance","WebkitAppearance","appearance","o","label","UserStrokeSide","VigoButton","VigoRadioButton","checked","VigoNotification","CheckIcon","message","Schema","Yup","shape","first","last","formOfAddress","gender","placeOfResidence","email","strokeType","strokeSide","strokeDate","dob","password","passwordConfirmation","when","is","val","then","otherwise","notRequired","oneOf","ProfileForm","initialValues","onSubmit","strokeTypeOptions","Object","values","st","strokeSideOptions","ss","successMessage","setSuccessMessage","passChanged","setPassChanged","useEffect","setTimeout","enableReinitialize","Date","phone","setSubmitting","resetForm","validationSchema","errors","touched","handleChange","handleSubmit","isSubmitting","setValues","setFieldValue","dirty","isValid","action","method","autoComplete","e","target","onBlur","localeId","now","toString","length","color","fillLackingValuesIfNeeded","module","text","Array","isArray","Math","floor","random","image","videoExerciseId","videoUrl","thumbnailUrl","localizedOrDefaultThumbnail","speechGame","localizedThumbnail","Module","DefaultSpeechGameThumbnail","Message","DailyPlanModuleStatus","Expose","Answer","Type","Intent","this","isGameIntent","quiz","answers","ModuleLocalization","intents","localizedIntents","find","x","isStartIntent","intentId","localizations","thumbnail","DefaultThumbnail","title","_prefix","localStorage","getItem","_getValueKey","_setValueOrRemove","JSON","parse","_setJsonValueOrRemove","plainToInstance","excludeExtraneousValues","enableImplicitConversion","data","accessToken","refreshToken","expiresIn","dailyPlanModuleId","messages","intent","valueName","key","setItem","removeItem","stringify","AbstractService","API_SEGMENT","axios","create","baseURL","process","interceptors","request","use","authInterceptor","config","token","LocalStorageService","headers","authorization","DailyPlanService","userId","dateStr","moment","format","url","get","result","status","Error","statusText","params","post","planId","interval","isExercising","timeInApp","timeInExercises","put","useActivityReport","useQuery","fetchActivityReport","staleTime","useCompletionRate","fetchCompletionRate","stats","HeartIcon","TimeIcon","DocumentIcon","ProfileStats","activityReport","completionRate","seconds","reduce","acc","obj","setMinutesVigo","setProgramCompletion","round","completion","minutesVigo","programCompletion","valueAt","index","stroke","max","diff","numberOfDaysSinceStroke","DailyPlanModule","newStatus","InProgress","NotStarted","Completed","Exited","DailyPlan","userDailyPlanModules","currentId","dailyPlanModuleIndex","findIndex","nextDailyPlanModuleIndex","showInDailyPlan","after","slice","before","concat","DailyPlanData","universalModules","internalTitle","DailyPlanHistoryItem","UserService","API_SEGMENT_USERS","response","dailyPlanAutomateInterceptor","automateDailyPlanUserId","automate","Promise","reject","dto","hash","axiosWithoutAuth","taken","userDailyPlanModule","isFavorite","delete","ProfileLogout","setOpen","Title","UserConvoSpeed","VigoErrorModal","modal","xmlns","height","viewBox","fill","d","setModal","VigoSuccessModal","strokeWidth","strokeLinecap","strokeLinejoin","platforms","InstallModal","platform","hasOwnProperty","isMobile","isAndroid","isFirefox","browserVersion","isOpera","isIOS","getPlatform","install","usePWAInstall","isSupported","setIsSupported","showModal","setShowModal","RotateModal","innerWidth","setWidth","handleResize","addEventListener","removeEventListener","RotateIcon","NoPhoneIcon","Settings","setError","errorMessage","setErrorMessage","success","setSuccess","onConvoSpeedChange","updateUser","convoSpeed","catch","onColorImpairmentChange","isColorImpairment","keys","filter","v","isNaN","Number","ProfileDisclaimer","MyDataTab","SubscriptionState","SubscriptionService","useSubscription","getLatestSubscription","SubscriptionPlanType","Digital","Full","Premium","CurrentPlan","subscription","onPortalOpen","onCheckoutOpen","subscriptionPlanKey","subscriptionPlan","discount","promotionCode","amountOff","subscriptionPlanPrice","price","features","ConstantsService","getSubscriptionPlanFeatures","isCurrent","Paid","feature","TickIcon","PaymentMethod","paymentMethod","CardIcon","capitalize","brand","last4","PaymentsService","returnUrl","usePaymentCustomer","getPaymentCustomer","Infinity","UpcomingCharge","lang","setLang","language","upcomingChargeDate","expireDate","lv","useStripePortal","getPortalLink","useStripeCheckout","getCheckoutLink","PaymentsTab","paymentCustomer","portal","checkout","openPortal","Bar","models","sort","b","createdAt","handleDayClick","getAllDiastolic","model","diastolic","getAllSystolic","systolic","isToday","isSame","maxHeight","top","bottom","transform","EllipseIcon","RectangleIcon","min","handleOnInput","BloodPressureForm","selectedDate","setSelectedDate","defaultValue","toLocaleTimeString","hour","minute","getFullYear","getMonth","getDate","parseInt","split","onInput","BloodPressureService","path","weekData","allModels","flat","chunks","bp","p","useBloodPressure","getBloodPressureByUserId","ChartBarData","transformToDailyChartBarData","chartBarModels","moments","startOf","endOf","chartBarModel","toDate","push","add","getDateRangeForChartBarData","BloodPressure","bloodPressure","dataIndex","setDataIndex","cancelButtonRef","useRef","bloodPressureData","setBloodPressureData","createBloodPressure","refetch","initialFocus","getMeasurementRangeString","LeftArrowIcon","RightArrowIcon","ProfilePage","getCategories","categories","component","stripeProductId","Group","List","category","Panels","Panel","LoadingComponent","borderTopColor","ProtectedRoute","isLoading","setIsLoading","history","useHistory","LoginForm","showPassword","setShowPassword","loading","setLoading","setMessage","formValue","onLogin","toggleShowDisplay","eyeOpen","eyeClose","LoginPage","DailyActivityType","performLogin","handleLogin","loginLogo","WelcomeComponent","welcomeText","UserDataService","WelcomePage","welcome","setWelcome","fetchLang","langResult","i18next","changeLanguage","createUserData","MoodBar","includes","from","useMood","getUserDataByUserId","MyMood","mood","moodData","setMoodData","ActivityEditForm","activityTypeOptions","at","ActivityChart","edit","setEdit","editIndex","setEditIndex","vigoModel","otherModels","vigoMinutes","otherMinutes","handleDelete","onDelete","handleEdit","handleEditSubmit","onEdit","EditIcon","TrashIcon","ActivityForm","userActivityGoal","ActivityGoalForm","GoalKey","DailyActivityService","dailyActivityId","useDailyActivity","getDailyActivitiesByUserId","ActivityTab","dailyActivity","dailyActivityData","setDailyActivityData","activityReportData","setActivityReportData","setData","activityOpen","setActivityOpen","goalOpen","setGoalOpen","setErrorModal","setSuccessModal","handleSubmitActivity","createDailyActivity","handleUpdateActivity","updateDailyActivity","handleDeleteActivity","deleteDailyActivity","handleSubmitGoal","Walking","maxWidth","goal","MyProgressChart","performance","satisfaction","GoalService","useGoal","fetch","UserTestService","bulk","assign","goalActivityId","goalActivity","useUserTest","getUserTestByUserId","MyProgressGoals","currentGoalActivities","UserTest","currentMark","aimMark","MyProgressAssessmentStep","MyProgressAssessment","buttonEnabled","setButtonEnabled","currentIndex","setCurrentIndex","hasGoalActivities","numberOfScaleSteps","numberOfGoals","goalData","numberOfSteps","lastStepIndex","initialUserTests","userTest","userTests","setUserTests","goals","activitiesPerGoal","setActivitiesPerGoal","activitiesTotal","setActivitiesTotal","PlayIcon","audioImage","setAudioImage","onAudioButton","audio","document","getElementsByTagName","ended","currentTime","play","paused","played","pause","goForward","newValue","stepForIndex","OrderTotal","Five","maxLength","forEach","ind","list","createUserTests","setTest","reload","IntroComponent","getTitle","CheckboxComponent","orderedAccordingToGoal","activities","setActivities","handleCheckboxChange","newList","OrderComponent","undefined","changeOrder","index0","direction","index1","UpArrowIcon","DownArrowIcon","FinalResultsComponent","ScaleComponent","setCurrentMark","setAimMark","ratingArray","_item","ReportComponent","zIndex","Intro","orderTotalIndex","Checkbox","Order","Scale","Report","CloseIcon","filename","audioSrc","SelfCare","Productivity","FreeTime","userTestIndex","audioKey","onPlay","PauseIcon","onPause","onEnded","ReplayIcon","autoPlay","Component","boxShadow","marginRight","ProgramGoalsTab","setGoalData","setCurrentGoalActivities","userTestData","setUserTestData","test","nextTestDate","setDate","isNextTestAvailable","nextDate","next","getTime","uniqueDates","Set","chartDays","y","accumulator","Progress","posts","idx","OnboardingForm","checkLogin","exist","acceptedTermsAndConditions","rel","useOnboardingUser","getUserByHash","OnboardingPage","VideoLocalizationScene","useLocation","validationHash","search","match","completeRegistration","VideoExerciseService","useVideoExercise","getVideoExercise","useVideoPlayer","videoRef","audioRef","playing","setPlaying","handlePlay","handlePlayClick","current","TitleScreen","videoExercise","introVideoUrl","setScene","ExerciseTitle","CloseWhiteIcon","IntroVideo","VideoPlayIcon","ref","pointerEvents","objectFit","MinuteScreen","ExerciseScreen","ExerciseDemo","exerciseIndex","DemoVideo","videoExerciseVideoExerciseItems","videoExerciseItem","demoVideoUrl","audioUrl","ExerciseStart","DoItTogetherScreen","Exercise","MainVideo","isLastExercise","rawExerciseVideoUrl","setCurrentTime","duration","setDuration","percentWatched","video","totalPlayed","i","end","start","calcPercentWatched","loop","onTimeUpdate","event","currentTarget","onLoadedMetadata","setExerciseIndex","Final","YouDidItScreen","close","VideoLocalizationContainer","videoExerciseData","setVideoExercise","scene","Stats","VideoLocalization","WordGameService","letters","join","useWordGames","QuestionComponent","wordGames","setIndex","checkedData","setCheckedData","checkResponse","r","isCorrect","Audio","description","responses","resetQuestions","FinalComponent","FinalIcon","SpeechGame","AnswerMood","isOutgoing","selectedMood","answer","isSelected","phrase","handleAnswer","handleOutgoing","AnswerQuiz","checkAnswer","newData","correctAnswers","textSize","AnswerPhrase","MessageText","MessageImage","expandImage","setExpandImage","isExpandable","ExpandIcon","MessageVideo","handleVideoOpen","MessageSpeech","handleSpeechGameOpen","AnswerExgrade","initialIndex","exgrade","selectedIndex","setSelectedIndex","marginLeft","statisticsValue","useDailyPlan","fetchDailyPlan","DailyPlanModuleService","feedback","calculateInventories","inventories","existing","toAdd","toRemove","remove","added","Inventories","UniversalModuleType","useInterval","callback","delay","savedCallback","setInterval","clearInterval","VideoContainer","Video","HomePage","dailyPlan","dailyPlanData","setDailyPlanData","isStarted","nextDailyPlanModule","startUniversalModule","Loginback","dailyPlanModule","setMessages","startModule","openSpeechGame","setOpenSpeechGame","speechGameMessage","setSpeechGameMessage","openVideoLocalization","setOpenVideoLocalization","videoLocalizationMessage","setVideoLocalizationMessage","openVideo","setOpenVideo","videoMessage","setVideoMessage","isPaused","startShameOrExgrade","isExercise","newIntent","setIntent","setIsTicking","setTextSize","setDailyPlanModuleId","setModule","firstScroll","setFirstScroll","scrollTo","body","scrollHeight","innerHeight","behavior","callRequestAvailable","statisticsType","TooHard","TooEasy","nextIntentId","intentById","postCallRequest","userData","putFeedback","sendTimeStats","sendStatsInterval","isTicking","checkIntent","multiplier","Slow","Medium","Fast","tickInterval","putStatusIfNeeded","newMessage","newMessages","isTerminating","isExiting","postHistory","canChangeStatusTo","putStatus","percentage","Exgrade","Shame","universalModule","dpModuleId","startIntent","outgoingMessage","handleVideoLocalizationOpen","AnswerComponent","transformedAnswers","getAnswers","textSizePercent","TextSizePercent","PlusIcon","MinusIcon","Card","isNew","new","console","log","AdviceComponent","handleRightArrowClick","LeftArrowLongIcon","RightArrowLongIcon","MeditationData","AdvicePage","generateJwt","secret","TextEncoder","encode","jose","setProtectedHeader","alg","setSubject","setIssuer","typ","setAudience","setExpirationTime","setNotBefore","sign","jwt","VideoCall","setJwt","domain","roomName","configOverwrite","startAudioOnly","startWithAudioMuted","startWithVideoMuted","hideConferenceSubject","disableModeratorIndicator","prejoinPageEnabled","remoteVideoMenu","disableKick","disableGrantModerator","disablePrivateChat","securityUi","hideLobbyButton","toolbarButtons","notifications","interfaceConfigOverwrite","DISABLE_JOIN_LEAVE_NOTIFICATIONS","userInfo","displayName","getIFrameRef","iframeRef","onReadyToClose","jitsiOptions","setJitsiOptions","jwtOptions","context","room","getToken","PlanForToday","dataItems","setDataItems","callRequestStatus","setCallRequestStatus","videoCall","setVideoCall","callRequestSuccessModal","setCallRequestSuccessModal","callRequestErrorModal","setCallRequestErrorModal","callRequestErrorMessage","setCallRequestErrorMessage","errorModal","handleCallRequest","userService","handleVideoCallClick","handleVideoCallClose","handleDataItemClick","number","isCompleted","localizedTitle","doctor","avatarUrl","VideoIcon","useDailyPlanHistory","fetchDailyPlanHistory","History","toggleFavorites","daysSince","StarIcon","StarTransparentIcon","Favorites","removeFromFavorites","Daily","AuthService","res","userStr","AuthProvider","setUser","setSubscription","setIsLoggedIn","tokens","updateTokens","getUserByToken","handleRefreshState","clearTokens","clearChatData","Provider","QueryProvider","queryClient","QueryClient","client","App","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","initReactI18next","LanguageDetector","HttpApi","init","supportedLngs","fallbackLng","detection","order","caches","backend","loadPath","loadingMarkup","ReactDOM","render","fallback","getElementById"],"mappings":"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","file":"static/js/main.08ff2c22.chunk.js","sourcesContent":["enum UserState {\n Active = 'ACTIVE',\n Pending = 'PENDING',\n Lapsed = 'LAPSED',\n NoPayment = 'NO_PAYMENT',\n}\n\nexport default UserState;\n","export default __webpack_public_path__ + \"static/media/Formular-Black.f1377058.otf\";","export default __webpack_public_path__ + \"static/media/Formular-BlackItalic.247895da.otf\";","export default __webpack_public_path__ + \"static/media/Formular-Bold.cdd85cde.otf\";","export default __webpack_public_path__ + \"static/media/Formular-BoldItalic.315e8667.otf\";","export default __webpack_public_path__ + \"static/media/Formular-Italic.ff7172bf.otf\";","export default __webpack_public_path__ + \"static/media/Formular-Light.59500b65.otf\";","export default __webpack_public_path__ + \"static/media/Formular-LightItalic.7881532a.otf\";","export default __webpack_public_path__ + \"static/media/Formular-Medium.b71221ba.otf\";","export default __webpack_public_path__ + \"static/media/Formular-MediumItalic.25c9f840.otf\";","export default __webpack_public_path__ + \"static/media/Formular-Regular.19d4fb6c.otf\";","export default __webpack_public_path__ + \"static/media/eye_open.82d9cf2e.svg\";","export default __webpack_public_path__ + \"static/media/eye_close.f765afb3.svg\";","export default __webpack_public_path__ + \"static/media/x_icon.a512a6bc.svg\";","export default __webpack_public_path__ + \"static/media/menu_icon.7c62cf0c.svg\";","export default __webpack_public_path__ + \"static/media/logo.075c897c.svg\";","export default __webpack_public_path__ + \"static/media/home_icon.a493dbbf.svg\";","export default __webpack_public_path__ + \"static/media/user_icon.bb534c73.svg\";","export default __webpack_public_path__ + \"static/media/daily_icon.d2ea9e07.svg\";","export default __webpack_public_path__ + \"static/media/progress_icon.7ccc7590.svg\";","export default __webpack_public_path__ + \"static/media/profile_icon.167ad09a.svg\";","export default __webpack_public_path__ + \"static/media/home_active_icon.0b51b380.svg\";","export default __webpack_public_path__ + \"static/media/profile_active_icon.659c4283.svg\";","export default __webpack_public_path__ + \"static/media/progress_active_icon.9307f1fa.svg\";","export default __webpack_public_path__ + \"static/media/daily_active_icon.814d372d.svg\";","export default __webpack_public_path__ + \"static/media/check_icon.53ab2f39.svg\";","export default __webpack_public_path__ + \"static/media/star_icon.c1170f3a.svg\";","export default __webpack_public_path__ + \"static/media/star_transparent_icon.dd941887.svg\";","export default __webpack_public_path__ + \"static/media/document_icon.61000cfc.svg\";","export default __webpack_public_path__ + \"static/media/time_icon.81e30324.svg\";","export default __webpack_public_path__ + \"static/media/heart_icon.8ce8dabe.svg\";","export default __webpack_public_path__ + \"static/media/tick_icon.fadd6a36.svg\";","export default __webpack_public_path__ + \"static/media/card_icon.07065d30.svg\";","export default __webpack_public_path__ + \"static/media/right_arrow_icon.bc406a51.svg\";","export default __webpack_public_path__ + \"static/media/left_arrow_icon.fa98e3a4.svg\";","export default __webpack_public_path__ + \"static/media/calender_icon.ff19938f.svg\";","export default __webpack_public_path__ + \"static/media/edit_icon.1ed06a73.svg\";","export default __webpack_public_path__ + \"static/media/trash_icon.558001c9.svg\";","export default __webpack_public_path__ + \"static/media/play_icon.66294a89.svg\";","export default __webpack_public_path__ + \"static/media/up_arrow_icon.964fb4d6.svg\";","export default __webpack_public_path__ + \"static/media/down_arrow_icon.f81da89e.svg\";","export default __webpack_public_path__ + \"static/media/close_icon.26f8c4ed.svg\";","export default __webpack_public_path__ + \"static/media/close_white_icon.cdddd865.svg\";","export default __webpack_public_path__ + \"static/media/pause_icon.ae8283ef.svg\";","export default __webpack_public_path__ + \"static/media/replay_icon.b666abc6.svg\";","export default __webpack_public_path__ + \"static/media/final_icon.e43ce76f.svg\";","export default __webpack_public_path__ + \"static/media/plus_icon.d9fa4037.svg\";","export default __webpack_public_path__ + \"static/media/minus_icon.e259da8d.svg\";","export default __webpack_public_path__ + \"static/media/left_arrow_long_icon.33de32f6.svg\";","export default __webpack_public_path__ + \"static/media/advice_icon.f2fdae54.svg\";","export default __webpack_public_path__ + \"static/media/advice_active_icon.be544a77.svg\";","export default __webpack_public_path__ + \"static/media/right_arrow_long_icon.c22debc0.svg\";","export default __webpack_public_path__ + \"static/media/rectangle_icon.c1928fbc.svg\";","export default __webpack_public_path__ + \"static/media/ellipse_icon.c04ee0ba.svg\";","export default __webpack_public_path__ + \"static/media/video_play_icon.d8b4bb42.svg\";","export default __webpack_public_path__ + \"static/media/expand_icon.c0e1d3aa.svg\";","export default __webpack_public_path__ + \"static/media/rotate_icon.d7607239.svg\";","export default __webpack_public_path__ + \"static/media/no_phone_icon.aca25bf4.svg\";","export default __webpack_public_path__ + \"static/media/video.1b5439f0.svg\";","import React from \"react\";\nimport User from \"../../types/models/user\";\n\nexport class AuthContextState {\n isLoggedIn: boolean;\n user: User | null;\n login: (login: string, password: string) => Promise;\n logout: () => void;\n refreshState: () => Promise;\n}\n\nconst initialValue: AuthContextState = {\n isLoggedIn: false,\n user: null,\n login: async () => {},\n logout: () => {},\n refreshState: async () => {}\n};\n\nconst AuthContext = React.createContext(initialValue);\n\nexport default AuthContext;\n","import React from \"react\";\nimport AuthContext from \"../../contexts/auth/auth.context\";\n\nconst useAuth = () => {\n return React.useContext(AuthContext);\n};\n\nexport default useAuth;\n","import {Fragment, FunctionComponent, useState} from \"react\";\nimport {Dialog, Transition} from \"@headlessui/react\";\nimport {Link} from \"react-router-dom\";\nimport {\n DailyActiveIcon,\n DailyIcon,\n HomeActiveIcon,\n HomeIcon,\n Logo,\n MenuIcon,\n ProfileActiveIcon,\n ProfileIcon,\n ProgressActiveIcon,\n ProgressIcon,\n XIcon,\n} from \"../../assets/icons\";\nimport {useTranslation} from \"react-i18next\";\nimport classNames from \"classnames\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport UserState from \"../../types/enums/user-state\";\n\nexport const Layout: FunctionComponent = ({ children }) => {\n const { t } = useTranslation();\n const { user } = useAuth();\n const [sidebarOpen, setSidebarOpen] = useState(false);\n const currentURL = window.location.pathname;\n\n const navigation = [\n { name: t(\"home.menu.button.home\"), href: \"/home\", icon: HomeIcon, activeIcon: HomeActiveIcon },\n { name: t(\"home.menu.button.plan\"), href: \"/daily-plan\", icon: DailyIcon, activeIcon: DailyActiveIcon },\n // { name: t(\"home.menu.button.advice\"), href: \"/advice\", icon: AdviceIcon, activeIcon: AdviceActiveIcon },\n { name: t(\"home.menu.button.progress\"), href: \"/progress\", icon: ProgressIcon, activeIcon: ProgressActiveIcon },\n { name: t(\"home.menu.button.profile\"), href: \"/profile\", icon: ProfileIcon, activeIcon: ProfileActiveIcon },\n ];\n return (\n <>\n
\n \n \n \n \n \n \n
\n \n
\n setSidebarOpen(false)}\n >\n Close sidebar\n \"Menu\n \n
\n \n
\n
\n \"Logo\n
\n \n
\n
\n \n
{/* Force sidebar to shrink to fit close icon */}
\n
\n
\n\n {/* Static sidebar for desktop */}\n
\n {/* Sidebar component, swap this element with another sidebar if you like */}\n
\n
\n
\n
\n ))}\n {!(user?.state === UserState.Active) && (\n \n \n
\n {currentURL === \"/profile\" ? (\n \"Menu\n ) : (\n \"Menu\n )}\n
\n\n
\n \n {t(\"home.menu.button.profile\")}\n

\n
\n \n
\n )}\n \n
\n
\n
\n \n
\n
\n setSidebarOpen(true)}\n >\n Open sidebar\n \"Menu\n \n
\n
{children}
\n
\n \n \n );\n};\n\nexport default Layout;\n","import classNames from \"classnames\";\nimport { DetailedHTMLProps, InputHTMLAttributes } from \"react\";\n\nclass VigoInputProps {\n showLabel?: boolean;\n labelText?: string;\n}\n\ntype VigoInputPropsType = VigoInputProps & DetailedHTMLProps, HTMLInputElement>;\n\nfunction VigoInput(props: VigoInputPropsType) {\n const { showLabel, labelText, name, disabled, required } = props;\n\n const inputProps = { ...props };\n delete inputProps.showLabel;\n delete inputProps.labelText;\n\n return (\n <>\n {showLabel && (\n \n )}\n \n \n );\n}\n\nexport default VigoInput;\n","import PhoneInput from \"react-phone-input-2\";\nimport \"react-phone-input-2/lib/style.css\";\nconst VigoPhoneInput = (props: { onChange: any; value: any; name: string }) => {\n return (\n
\n {\" \"}\n \n \n
\n );\n};\n\nexport default VigoPhoneInput;\n","import { CalenderIcon } from \"../../assets/icons\";\nimport DatePicker from \"react-datepicker\";\nimport { useTranslation } from \"react-i18next\";\nconst VigoDatePicker = (props: {\n open?: boolean;\n defaultValue?: Date;\n onChange?: any;\n name: string;\n locale: any;\n required: any;\n selected: any;\n minDate: any;\n maxDate: any;\n error: any;\n htmlFor: string;\n}) => {\n const days = [\"P\", \"O\", \"T\", \"C\", \"Pk\", \"S\", \"Sv\"];\n const months = [\n \"Janvāris\",\n \"Februāris\",\n \"Marts\",\n \"Aprīlis\",\n \"Maijs\",\n \"Jūnijs\",\n \"Jūlijs\",\n \"Augusts\",\n \"Septembris\",\n \"Oktobris\",\n \"Novembris\",\n \"Decembris\",\n ];\n const { i18n } = useTranslation();\n const locale = {\n localize: {\n day: (n: any) => days[n],\n month: (n: any) => months[n],\n },\n formatLong: {\n date: () => (i18n.resolvedLanguage === \"lv\" ? \"dd.MM.yyyy\" : \"MM/dd/yyyy\"),\n },\n };\n return (\n
\n {\" \"}\n \n
\n \n
\n \"Calender\n
\n
\n
\n );\n};\n\nexport default VigoDatePicker;\n","import { DetailedHTMLProps, SelectHTMLAttributes } from \"react\";\nimport classNames from \"classnames\";\n\nexport class VigoSelectOption {\n label: string;\n value: string;\n}\n\nclass VigoSelectProps {\n showLabel?: boolean;\n labelText?: string;\n options?: VigoSelectOption[];\n}\n\ntype VigoSelectPropsType = VigoSelectProps &\n DetailedHTMLProps, HTMLSelectElement>;\n\nfunction VigoSelect(props: VigoSelectPropsType) {\n const { showLabel, labelText, name, options, required } = props;\n\n const selectProps = { ...props };\n delete selectProps.showLabel;\n delete selectProps.labelText;\n delete selectProps.options;\n\n return (\n <>\n {showLabel && (\n \n )}\n \n {options?.map((o) => (\n \n ))}\n \n \n );\n}\n\nexport default VigoSelect;\n","enum UserStrokeType {\n Ischemic = \"1\",\n Haemorrhagic = \"2\"\n}\n\nexport default UserStrokeType;\n","enum UserStrokeSide {\n Left = '1',\n Right = '2',\n BrainStem = '3',\n}\n\nexport default UserStrokeSide;\n","import { ButtonHTMLAttributes, DetailedHTMLProps } from \"react\";\nimport classNames from \"classnames\";\n\nclass VigoButtonProps {\n appearance: \"primary\" | \"secondary\" | \"disabled\" | \"active\" | \"danger\" | \"\";\n}\n\ntype VigoButtonPropsType = VigoButtonProps &\n DetailedHTMLProps, HTMLButtonElement>;\n\nfunction VigoButton(props: VigoButtonPropsType) {\n const className = classNames(props.className, {\n \"inline-flex\": true,\n \"justify-center\": true,\n \"py-3\": true,\n \"px-6\": true,\n border: true,\n \"transition ease-in-out duration-150\": true,\n \"border-transparent\": true,\n \"shadow-sm\": true,\n \"text-lg\": true,\n \"font-bold\": true,\n \"rounded-md\": true,\n \"cursor-pointer\": true,\n \"text-active\": props.appearance === \"primary\",\n \"text-white\": props.appearance === \"active\" || props.appearance === \"danger\",\n \"text-dark\": props.appearance === \"secondary\",\n \"text-sky bg-disabled cursor-not-allowed\": props.appearance === \"disabled\",\n \"bg-active\": props.appearance === \"active\",\n \"bg-skybg\": props.appearance === \"primary\",\n \"bg-metal\": props.appearance === \"secondary\",\n \"bg-red\": props.appearance === \"danger\",\n \"hover:bg-skyhover\": props.appearance === \"primary\",\n \"focus:outline-none\": true,\n \"focus:ring-2\": true,\n \"focus:ring-offset-2\": true,\n \"ring-transparent\": true,\n });\n\n return (\n \n );\n}\n\nexport default VigoButton;\n","import { Field } from \"formik\";\n\nconst VigoRadioButton = (props: { name: string; onChange: any; value: string; label: string; checked: boolean }) => {\n return (\n \n );\n};\n\nexport default VigoRadioButton;\n","import { Fragment } from \"react\";\nimport { Transition } from \"@headlessui/react\";\nimport { CheckIcon } from \"../../assets/icons\";\n\nexport default function VigoNotification(props: { show: boolean; message: string }) {\n return (\n <>\n \n
\n \n
\n
\n
\n
\n \"check\n
\n
\n

{props.message}

\n
\n
\n
\n
\n \n
\n \n \n );\n}\n","import { Formik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { useTranslation } from \"react-i18next\";\nimport User from \"../../types/models/user\";\nimport VigoInput from \"../vigo-input/vigo-input.component\";\nimport VigoPhoneInput from \"../vigo-phone-input/vigo-phone-input.component\";\nimport VigoDatePicker from \"../vigo-datepicker/vigo-datepicker.component\";\nimport VigoSelect, { VigoSelectOption } from \"../vigo-select/vigo-select.component\";\n// import UserGender from \"../../types/enums/user-gender\";\nimport UserStrokeType from \"../../types/enums/user-stroke-type\";\nimport UserStrokeSide from \"../../types/enums/user-stroke-side\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\nimport VigoRadioButton from \"../vigo-radio-button/vigo-radio-button.component\";\nimport VigoNotification from \"../vigo-notification/vigo-notification.component\";\nimport { useEffect, useState } from \"react\";\n\nclass ProfileFormProps {\n initialValues?: User;\n onSubmit: (data: Partial) => Promise;\n}\n\nconst Schema = Yup.object().shape(\n {\n first: Yup.string().required(\"Required\"),\n last: Yup.string().required(\"Required\"),\n formOfAddress: Yup.string().required(\"Required\"),\n gender: Yup.number().required(\"Required\"),\n placeOfResidence: Yup.string().required(\"Required\"),\n email: Yup.string().required(\"Required\"),\n login: Yup.string().required(\"Required\"),\n strokeType: Yup.string().required(\"Required\"),\n strokeSide: Yup.string().required(\"Required\"),\n strokeDate: Yup.string().required(\"Required\"),\n dob: Yup.string().required(\"Required\"),\n password: Yup.string(),\n passwordConfirmation: Yup.string()\n .when(\"password\", {\n is: (val: any) => !!val,\n then: Yup.string().required(\"profile.form.error.password\"),\n otherwise: Yup.string().notRequired(),\n })\n .oneOf([Yup.ref(\"password\"), null], \"profile.form.error.confirmpassword\"),\n },\n [[\"password\", \"passwordConfirmation\"]],\n);\n\nfunction ProfileForm(props: ProfileFormProps) {\n const { t } = useTranslation();\n const { initialValues, onSubmit } = props;\n\n // const genderOptions: VigoSelectOption[] = Object.values(UserGender).map((g) => ({\n // label: t(`general.gender.${g}`),\n // value: g,\n // }));\n\n const strokeTypeOptions: VigoSelectOption[] = Object.values(UserStrokeType).map((st) => ({\n label: t(`general.stroketype.${st}`),\n value: st,\n }));\n\n const strokeSideOptions: VigoSelectOption[] = Object.values(UserStrokeSide).map((ss) => ({\n label: t(`general.strokeside.${ss}`),\n value: ss,\n }));\n\n const [successMessage, setSuccessMessage] = useState(false);\n const [passChanged, setPassChanged] = useState(false);\n\n useEffect(() => {\n if (successMessage) {\n setTimeout(() => {\n setSuccessMessage(false);\n }, 3000);\n }\n }, [successMessage]);\n\n return (\n <>\n \n {\n delete values.passwordConfirmation;\n await onSubmit(values);\n setSubmitting(false);\n setSuccessMessage(true);\n setPassChanged(true);\n resetForm({ values });\n }}\n validationSchema={Schema}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleSubmit,\n isSubmitting,\n setValues,\n setFieldValue,\n dirty,\n isValid,\n /* and other goodies */\n }) => (\n
\n
\n
\n

{t(\"profile.form.title\")}

\n

{t(\"profile.form.details\")}

\n
\n
\n {\n setFieldValue(\"first\", e.target.value);\n setPassChanged(false);\n }}\n showLabel={true}\n labelText={t(\"profile.form.name\")}\n />\n
\n
\n {\n setFieldValue(\"last\", e.target.value);\n setPassChanged(false);\n }}\n showLabel={true}\n labelText={t(\"profile.form.surname\")}\n />\n
\n
\n setPassChanged(false)}\n type=\"text\"\n name=\"formOfAddress\"\n value={values[\"formOfAddress\"]}\n onChange={(e) => {\n setFieldValue(\"formOfAddress\", e.target.value);\n setPassChanged(false);\n }}\n showLabel={true}\n labelText={t(\"profile.form.formaddress\")}\n />\n
\n
\n {\n setFieldValue(\"dob\", date);\n setPassChanged(false);\n }}\n maxDate={values.strokeDate ? new Date(values.strokeDate) : new Date(Date.now())}\n minDate={new Date(1900, 1, 1)}\n />\n
\n
\n setPassChanged(false)}\n type=\"text\"\n name=\"placeOfResidence\"\n value={values[\"placeOfResidence\"]}\n onChange={(e) => {\n setFieldValue(\"placeOfResidence\", e.target.value);\n setPassChanged(false);\n }}\n showLabel={true}\n labelText={t(\"profile.form.address\")}\n />\n
\n
\n {\n setValues({\n ...values,\n phone: phone,\n });\n setPassChanged(false);\n }}\n value={values[\"phone\"]}\n name={t(\"profile.form.phonenumber\")}\n />\n
\n
\n setPassChanged(false)}\n type=\"email\"\n name=\"email\"\n onChange={(e) => {\n setFieldValue(\"email\", e.target.value);\n setPassChanged(false);\n }}\n value={values.email}\n showLabel={true}\n labelText={t(\"profile.form.email\")}\n />\n
\n\n
\n \n {t(\"profile.form.gender\")}\n
\n
\n {\n setFieldValue(\"gender\", 1);\n setPassChanged(false);\n }}\n />\n {\n setFieldValue(\"gender\", 2);\n setPassChanged(false);\n }}\n />\n
\n
\n
\n

{t(\"profile.form.strokeinformation\")}

\n
\n
\n {\n setFieldValue(\"strokeDate\", date);\n setPassChanged(false);\n }}\n maxDate={new Date()}\n minDate={new Date(values.dob)}\n />\n
\n
\n {\n setFieldValue(\"strokeType\", e.target.value);\n setPassChanged(false);\n }}\n value={values.strokeType}\n showLabel={true}\n labelText={t(\"profile.form.type\")}\n options={strokeTypeOptions}\n />\n
\n
\n {\n setFieldValue(\"strokeSide\", e.target.value);\n setPassChanged(false);\n }}\n value={values.strokeSide}\n showLabel={true}\n labelText={t(\"profile.form.strokeside\")}\n options={strokeSideOptions}\n />\n
\n
\n

{t(\"profile.form.changepassword\")}

\n
\n
\n \n
\n
\n {\n setFieldValue(\"password\", e.target.value);\n if (e.target.value.length > 0) {\n setPassChanged(false);\n }\n }}\n value={values.password}\n showLabel={true}\n labelText={t(\"profile.form.password\")}\n placeholder={t(\"profile.form.password\")}\n />\n
\n
\n {\n setFieldValue(\"passwordConfirmation\", e.target.value);\n }}\n showLabel={true}\n labelText={t(\"profile.form.confirmnewpassword\")}\n placeholder={t(\"profile.form.confirmnewpassword\")}\n />\n \n {t(errors.passwordConfirmation)}\n \n
\n
\n
\n
\n \n {t(\"profile.form.submit\")}\n \n
\n \n
\n )}\n \n \n );\n}\n\nexport default ProfileForm;\n","import {Expose} from \"class-transformer\";\nimport Module from \"./module\";\n\nclass Message {\n @Expose()\n text?: string;\n\n @Expose()\n image?: string;\n\n @Expose()\n isExpandable?: boolean;\n\n @Expose()\n isExercise?: boolean;\n\n @Expose()\n percentage?: number;\n\n @Expose()\n percentWatched?: number;\n\n @Expose()\n videoExerciseId?: number;\n\n @Expose()\n videoUrl?: string;\n\n @Expose()\n thumbnailUrl?: string;\n\n @Expose()\n speechGame?: string[];\n}\n\nexport function fillLackingValuesIfNeeded(message: Message, module: Module): Message {\n if (message.text && Array.isArray(message.text)) {\n message.text = message.text[Math.floor(Math.random() * message.text.length)];\n }\n if (message.image && Array.isArray(message.image)) {\n message.image = message.image[Math.floor(Math.random() * message.image.length)];\n }\n if ((message.videoExerciseId || message.videoUrl) && !message.thumbnailUrl) {\n message.thumbnailUrl = module.localizedOrDefaultThumbnail;\n }\n if (message.speechGame && message.speechGame.length && !message.thumbnailUrl) {\n message.thumbnailUrl = module.localizedThumbnail ?? Module.DefaultSpeechGameThumbnail;\n }\n return message;\n}\n\nexport default Message;\n","enum DailyPlanModuleStatus {\n NotStarted = 0,\n InProgress = 1,\n Completed = 2,\n Exited = 3,\n}\nexport default DailyPlanModuleStatus;\n","import {Expose, Type} from \"class-transformer\";\nimport Inventories from \"./inventories\";\n\nclass Answer {\n @Expose()\n phrase?: string;\n\n @Expose()\n isSelected?: boolean;\n\n @Expose()\n isCorrect?: boolean;\n\n @Expose()\n statisticsType?: string;\n\n @Expose()\n statisticsValue?: number;\n\n @Expose()\n nextIntentId?: string;\n\n @Expose()\n inventories?: Inventories\n\n @Expose()\n @Type(() => Answer)\n mood?: Answer[];\n\n @Expose()\n @Type(() => Answer)\n exgrade?: Answer[];\n\n @Expose()\n @Type(() => Answer)\n quiz?: Answer[];\n}\n\nexport default Answer;\n","import {Expose, Type} from \"class-transformer\";\nimport Message from \"./message\";\nimport Answer from \"./answer\";\n\nclass Intent {\n @Expose()\n intentId: string;\n\n @Expose()\n nextIntentId?: string;\n\n @Expose()\n @Type(() => Answer)\n answers?: Answer[];\n\n @Expose()\n @Type(() => Message)\n messages?: Message[];\n\n @Expose()\n isPaused?: boolean;\n\n @Expose()\n isStartIntent?: boolean;\n\n /**\n * @deprecated git rid after iOS is updated; change the format of 'quiz' answer; make changes in the DB\n */\n @Expose()\n isGameIntent?: boolean;\n\n @Expose()\n isTerminating?: boolean;\n\n @Expose()\n isExiting?: boolean;\n\n /**\n * @deprecated git rid after iOS is updated; change the format of 'quiz' answer; make changes in the DB\n */\n get transformedAnswers(): Answer[] {\n if (this.isGameIntent) {\n return [{ quiz: this.answers }];\n }\n return this.answers;\n }\n}\n\nexport default Intent;\n","import {Expose, Type} from \"class-transformer\";\nimport Intent from \"./intent\";\n\nclass ModuleLocalization {\n @Expose()\n id: number;\n\n @Expose()\n title: string;\n\n @Expose()\n thumbnail: string;\n\n @Expose()\n @Type(() => Intent)\n intents: Intent[];\n}\n\nexport default ModuleLocalization;\n","import ModuleLocalization from \"./module-localization\";\nimport {Expose, Type} from \"class-transformer\";\nimport Intent from \"./intent\";\n\nclass Module {\n static DefaultThumbnail = \"https://storage.googleapis.com/vigothumbnails/thumbnail.jpg\";\n static DefaultSpeechGameThumbnail = \"https://storage.googleapis.com/vigothumbnails/speech-games.png\";\n\n @Expose()\n id: number;\n\n @Expose()\n @Type(() => ModuleLocalization)\n localizations: ModuleLocalization[];\n\n @Expose()\n internalTitle: string;\n\n @Expose()\n showInDailyPlan: boolean;\n\n get startIntent(): Intent {\n const intents = this.localizedIntents;\n if (intents) {\n return intents.find(x => x.isStartIntent);\n }\n return null;\n }\n\n intentById(intentId: string) {\n return this.localizedIntents?.find((x) => x.intentId === intentId);\n }\n\n get localizedIntents(): Intent[] {\n if (this.localizations && this.localizations.length) {\n return this.localizations[0].intents;\n }\n return null;\n }\n\n get localizedThumbnail(): string {\n if (this.localizations && this.localizations.length) {\n return this.localizations[0].thumbnail;\n }\n return null;\n }\n\n get localizedOrDefaultThumbnail(): string {\n return this.localizedThumbnail ?? Module.DefaultThumbnail;\n }\n\n get localizedTitle(): string {\n if (this.localizations && this.localizations.length) {\n return this.localizations[0].title;\n }\n return null;\n }\n}\n\nexport default Module;\n","import LoginResponse from \"../../types/classes/login-response\";\nimport {plainToInstance} from \"class-transformer\";\nimport Module from \"../../types/models/module\";\nimport Intent from \"../../types/models/intent\";\n\nclass LocalStorageService {\n private _prefix = 'vigo';\n\n get accessToken() {\n return localStorage.getItem(this._getValueKey('accessToken'));\n }\n set accessToken(value: string | null) {\n this._setValueOrRemove(this._getValueKey('accessToken'), value);\n }\n\n get refreshToken() {\n return localStorage.getItem(this._getValueKey('refreshToken'));\n }\n set refreshToken(value: string | null) {\n this._setValueOrRemove(this._getValueKey('refreshToken'), value);\n }\n\n get expiresIn() {\n return localStorage.getItem(this._getValueKey('expiresIn'));\n }\n set expiresIn(value: string | null) {\n this._setValueOrRemove(this._getValueKey('expiresIn'), value);\n }\n\n get dailyPlanModuleId() {\n const item = localStorage.getItem(this._getValueKey('dailyPlanModuleId'));\n return item ? JSON.parse(item) : null;\n }\n set dailyPlanModuleId(value: number | null) {\n this._setJsonValueOrRemove(this._getValueKey('dailyPlanModuleId'), value);\n }\n\n get module() {\n const item = localStorage.getItem(this._getValueKey('module'));\n return item\n ? plainToInstance(Module, JSON.parse(item), {\n excludeExtraneousValues: true,\n enableImplicitConversion: true,\n })\n : null;\n }\n set module(value: Module | null) {\n this._setJsonValueOrRemove(this._getValueKey('module'), value);\n }\n\n get intent() {\n const item = localStorage.getItem(this._getValueKey('intent'));\n return item\n ? plainToInstance(Intent, JSON.parse(item), {\n excludeExtraneousValues: true,\n enableImplicitConversion: true,\n })\n : null;\n }\n set intent(value: Intent | null) {\n this._setJsonValueOrRemove(this._getValueKey('intent'), value);\n }\n\n get messages() {\n const item = localStorage.getItem(this._getValueKey('messages'));\n return item ? JSON.parse(item) : [];\n }\n set messages(value: any[] | null) {\n this._setJsonValueOrRemove(this._getValueKey('messages'), value);\n }\n\n public updateTokens(data: LoginResponse){\n this.accessToken = data.accessToken;\n this.refreshToken = data.refreshToken;\n this.expiresIn = data.expiresIn.toString();\n }\n\n public clearTokens(){\n this.accessToken = null;\n this.refreshToken = null;\n this.expiresIn = null;\n }\n\n public clearChatData() {\n this.dailyPlanModuleId = null;\n this.module = null;\n this.messages = [];\n this.intent = null;\n }\n\n private _getValueKey(valueName: string) {\n return `${this._prefix}_${valueName}`;\n }\n\n private _setValueOrRemove(key: string, value: string | null) {\n if(!value) {\n localStorage.removeItem(key);\n } else {\n localStorage.setItem(key, value);\n }\n }\n\n private _setJsonValueOrRemove(key: string, value: any | null) {\n if(!value) {\n localStorage.removeItem(key);\n } else {\n localStorage.setItem(key, JSON.stringify(value));\n }\n }\n}\n\nexport default new LocalStorageService();\n","import axios, { AxiosRequestConfig } from \"axios\";\nimport LocalStorageService from \"../local-storage/local-storage.service\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nabstract class AbstractService {\n abstract API_SEGMENT: string;\n protected axios = axios.create({ baseURL: process.env.REACT_APP_API_BASE_URL });\n\n constructor() {\n this.axios.interceptors.request.use(this.authInterceptor);\n }\n\n private authInterceptor(config: AxiosRequestConfig) {\n const token = LocalStorageService.accessToken;\n\n if (token) {\n config.headers.authorization = `Bearer ${token}`;\n }\n\n return config;\n }\n}\n\nexport default AbstractService;\n","import AbstractService from \"../abstract/abstract.service\";\nimport moment from \"moment\";\nimport ActivityReport from \"../../types/models/activity-report\";\nimport CompletionRate from \"../../types/models/completion-rate\";\n\nclass DailyPlanService extends AbstractService {\n API_SEGMENT = \"user-daily-plans\";\n\n async fetchActivityReport(userId: number) {\n const dateStr = moment().format('yyyy-MM-DD');\n const url = `${this.API_SEGMENT}/activity-report/?userId=${userId}&startDate=1970-01-01&endDate=${dateStr}`\n const result = await this.axios.get(url);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n\n async fetchCompletionRate(userId: number) {\n const dateStr = moment().format('yyyy-MM-DD');\n const url = `${this.API_SEGMENT}/completion-rate-total/?userId=${userId}&startDate=1970-01-01&endDate=${dateStr}`\n const result = await this.axios.get(url);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n\n async automate(userId: number) {\n const dateStr = moment().format('yyyy-MM-DD');\n const params = {\n user: userId,\n date: dateStr,\n }\n return await this.axios.post(`${this.API_SEGMENT}/automate`, params);\n }\n\n async sendTimeStats(planId: number, interval: number, isExercising: boolean) {\n const params = {\n timeInApp: interval,\n timeInExercises: isExercising ? interval : 0,\n };\n return this.axios.put(`${this.API_SEGMENT}/${planId}/increment`, params);\n }\n}\n\nexport default new DailyPlanService();\n","import { useQuery } from \"react-query\";\nimport DailyPlanService from \"../../services/daily-plan/daily-plan.service\";\n\nconst useActivityReport = (userId: number) => {\n return useQuery([\"activityReport\", userId], () => DailyPlanService.fetchActivityReport(userId), {\n staleTime: 30000,\n });\n};\n\nexport default useActivityReport;\n","import { useQuery } from \"react-query\";\nimport DailyPlanService from \"../../services/daily-plan/daily-plan.service\";\n\nconst useCompletionRate = (userId: number) => {\n return useQuery([\"completionRate\", userId], () => DailyPlanService.fetchCompletionRate(userId), {\n staleTime: 30000,\n });\n};\n\nexport default useCompletionRate;\n","import { useTranslation } from \"react-i18next\";\nimport { DocumentIcon, HeartIcon, TimeIcon } from \"../../assets/icons\";\nimport useActivityReport from \"../../hooks/useActivityReport/useActivityReport\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport useCompletionRate from \"../../hooks/useCompletionRate/useCompletionRate\";\nimport { useEffect, useState } from \"react\";\nimport moment from \"moment\";\n\nconst stats = [\n { key: \"profile.stat.days_after\", icon: HeartIcon, color: \"orange\" },\n { key: \"profile.stat.minutes_vigo\", icon: TimeIcon, color: \"active\" },\n { key: \"profile.stat.completion_rate\", icon: DocumentIcon, color: \"blue\" },\n];\n\nconst ProfileStats = () => {\n const { t } = useTranslation();\n const { user } = useAuth();\n const activityReport = useActivityReport(user.id);\n const completionRate = useCompletionRate(user.id);\n\n useEffect(() => {\n const data = activityReport.data ?? [];\n const seconds = data.reduce((acc, obj) => {\n return acc + obj.timeInApp;\n }, 0);\n setMinutesVigo(Math.floor(seconds / 60));\n }, [activityReport.data]);\n\n useEffect(() => {\n if (completionRate.data && completionRate.data[0]) {\n setProgramCompletion(Math.round(completionRate.data[0].completion * 100));\n } else {\n setProgramCompletion(0);\n }\n }, [completionRate.data]);\n\n const [minutesVigo, setMinutesVigo] = useState(0);\n const [programCompletion, setProgramCompletion] = useState(0);\n\n function numberOfDaysSinceStroke(): number {\n if (user.strokeDate) {\n const now = moment();\n const stroke = moment(user.strokeDate);\n return Math.max(0, now.diff(stroke, \"days\"));\n }\n return 0;\n }\n\n function valueAt(index: number) {\n switch (index) {\n case 0:\n return numberOfDaysSinceStroke();\n case 1:\n return minutesVigo;\n case 2:\n return `${programCompletion}%`;\n default:\n return 0;\n }\n }\n\n return (\n
\n {stats.map((item, index) => (\n
\n
\n
\n \"\"\n
\n
\n
\n

{valueAt(index)}

\n
\n
\n

{t(item.key)}

\n
\n
\n
\n
\n ))}\n
\n );\n};\n\nexport default ProfileStats;\n","import Module from \"./module\";\nimport {Expose, Type} from \"class-transformer\";\nimport DailyPlanModuleStatus from \"../enums/daily-plan-module-status\";\n\nclass DailyPlanModule {\n @Expose()\n id: number;\n\n @Expose()\n @Type(() => Module)\n module: Module;\n\n @Expose()\n status: DailyPlanModuleStatus;\n\n @Expose()\n isFavorite: boolean;\n\n get isCompleted(): boolean {\n return this.status && this.status === 2;\n }\n\n canChangeStatusTo(newStatus: DailyPlanModuleStatus): boolean {\n switch (newStatus) {\n case DailyPlanModuleStatus.InProgress:\n return this.status === DailyPlanModuleStatus.NotStarted;\n case DailyPlanModuleStatus.Completed:\n return this.status !== DailyPlanModuleStatus.Completed;\n case DailyPlanModuleStatus.Exited:\n return this.status < DailyPlanModuleStatus.Completed;\n default:\n return false;\n }\n }\n}\n\nexport default DailyPlanModule;\n","import DailyPlanModule from \"./daily-plan-module\";\nimport {Expose, Type} from \"class-transformer\";\nimport DailyPlanModuleStatus from \"../enums/daily-plan-module-status\";\n\nclass DailyPlan {\n @Expose()\n id: number;\n\n @Expose()\n date: Date;\n\n @Expose()\n @Type(() => DailyPlanModule)\n userDailyPlanModules: DailyPlanModule[];\n\n @Expose()\n timeInApp: number;\n\n @Expose()\n timeInExercises: number;\n\n get isStarted(): boolean {\n const started = this.userDailyPlanModules.find(x => x.status > DailyPlanModuleStatus.NotStarted);\n return !!started;\n }\n\n nextDailyPlanModule(currentId?: number): DailyPlanModule {\n if (currentId) {\n const dailyPlanModuleIndex = this.userDailyPlanModules.findIndex(x => x.id === currentId);\n const dailyPlanModule = this.userDailyPlanModules[dailyPlanModuleIndex];\n const nextDailyPlanModuleIndex = dailyPlanModuleIndex + 1;\n if (dailyPlanModule.module.showInDailyPlan) {\n const after = this.userDailyPlanModules.slice(nextDailyPlanModuleIndex, this.userDailyPlanModules.length);\n const before = this.userDailyPlanModules.slice(0, dailyPlanModuleIndex);\n const all = after.concat(before);\n const first = all.find(x => x.module.showInDailyPlan && x.status !== DailyPlanModuleStatus.Completed);\n return first\n ? first\n : after.find(x => x.status !== DailyPlanModuleStatus.Completed);\n } else if (nextDailyPlanModuleIndex < this.userDailyPlanModules.length) {\n return this.userDailyPlanModules[nextDailyPlanModuleIndex];\n }\n return null;\n } else {\n return this.userDailyPlanModules.find(x => x.module.showInDailyPlan && x.status !== DailyPlanModuleStatus.Completed);\n }\n }\n}\n\nexport default DailyPlan;\n","import {Expose, Type} from \"class-transformer\";\nimport DailyPlan from \"./daily-plan\";\nimport Module from \"./module\";\nimport UniversalModuleType from \"../enums/universal-module-type\";\n\nclass DailyPlanData {\n @Expose()\n @Type(() => DailyPlan)\n dailyPlan: DailyPlan;\n\n @Expose()\n @Type(() => Module)\n universalModules: Module[];\n\n universalModule(type: UniversalModuleType): Module {\n return this.universalModules.find(x => x.internalTitle === type);\n }\n}\n\nexport default DailyPlanData;\n","import DailyPlanModule from \"./daily-plan-module\";\nimport {Expose, Type} from \"class-transformer\";\n\nclass DailyPlanHistoryItem {\n @Expose()\n id: number;\n\n @Expose()\n @Type(() => DailyPlanModule)\n userDailyPlanModule: DailyPlanModule;\n\n @Expose()\n createdAt: Date | string;\n}\n\nexport default DailyPlanHistoryItem;\n","import User from \"../../types/models/user\";\nimport AbstractService from \"../abstract/abstract.service\";\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport DailyPlanData from \"../../types/models/daily-plan-data\";\nimport {plainToInstance} from \"class-transformer\";\nimport DailyPlanHistoryItem from \"../../types/models/daily-plan-history-item\";\nimport DailyPlanService from \"../daily-plan/daily-plan.service\";\n\nclass UserService extends AbstractService {\n API_SEGMENT = \"user\";\n API_SEGMENT_USERS = \"users\";\n\n constructor() {\n super();\n this.axios.interceptors.response.use(function (response) {\n return response;\n }, this.dailyPlanAutomateInterceptor);\n }\n\n private async dailyPlanAutomateInterceptor(error: any) {\n const config = error?.response?.config;\n const status = error?.response?.status;\n\n if (config && config.automateDailyPlanUserId\n && status && status === 404) {\n\n await DailyPlanService.automate(config.automateDailyPlanUserId);\n config.automateDailyPlanUserId = null;\n\n return this.axios(error.config);\n } else {\n return Promise.reject(error);\n }\n }\n\n async fetchDailyPlan(userId: number, localeId: string) {\n const dateStr = moment().format('yyyy-MM-DD');\n const config = { headers: { 'Accept-Language': localeId }, automateDailyPlanUserId: userId };\n const result = await this.axios.get(`${this.API_SEGMENT}/daily-plan/${dateStr}`, config);\n if (result.status >= 200 && result.status < 300) {\n return plainToInstance(DailyPlanData, result.data, {\n excludeExtraneousValues: true,\n enableImplicitConversion: true\n });\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n\n async getUserByToken() {\n const result = await this.axios.get(`${this.API_SEGMENT}/profile`);\n\n return result.data;\n }\n\n async updateUser(id: number, dto: Partial) {\n return this.axios.put(`${this.API_SEGMENT_USERS}/${id}`, dto);\n }\n\n async postCallRequest(internalTitle: string = null): Promise {\n if (internalTitle) {\n const params = { internalTitle: internalTitle };\n return this.axios.post('call-request', params);\n }\n return this.axios.post('call-request');\n }\n\n async completeRegistration(hash: string, dto: Partial) {\n const axiosWithoutAuth = axios.create({ baseURL: process.env.REACT_APP_API_BASE_URL });\n\n const result = await axiosWithoutAuth.put(`${this.API_SEGMENT_USERS}/complete?hash=${hash}`, dto);\n\n return result.data;\n }\n\n async checkLogin(login: string): Promise {\n const result = await this.axios.get<{ taken: boolean }>(`${this.API_SEGMENT_USERS}/check-login?login=${login}`);\n\n return result.data.taken;\n }\n\n async getUserByHash(hash: string) {\n const axiosWithoutAuth = axios.create({ baseURL: process.env.REACT_APP_API_BASE_URL });\n\n const result = await axiosWithoutAuth.get(`${this.API_SEGMENT_USERS}/hash?hash=${hash}`);\n\n return result.data;\n }\n\n async fetchDailyPlanHistory(key: string, localeId: string) {\n const config = { headers: { 'Accept-Language': localeId } };\n const result = await this.axios.get(`${this.API_SEGMENT}/${key}`, config);\n switch (result.status) {\n case 200:\n return result.data.map(x => plainToInstance(DailyPlanHistoryItem, x, {\n excludeExtraneousValues: true,\n enableImplicitConversion: true\n }));\n case 404:\n return null;\n default:\n throw new Error(`Unexpected status code at daily plan service: ${result.status}`);\n }\n }\n\n async postHistory(userId: number, dailyPlanModuleId: number) {\n const params = {\n user: userId,\n userDailyPlanModule: dailyPlanModuleId,\n };\n return this.axios.post('user-history', params);\n }\n\n async toggleFavorites(userId: number, dailyPlanModuleId: number, isFavorite: boolean) {\n if (isFavorite) {\n const params = {\n user: userId,\n userDailyPlanModule: dailyPlanModuleId,\n };\n return this.axios.post('user-favorites', params);\n } else {\n return this.axios.delete(`${this.API_SEGMENT}/favorites/${dailyPlanModuleId}`);\n }\n }\n}\n\nexport default new UserService();\n","import VigoButton from \"../vigo-button/vigo-button.component\";\nimport { Dialog, Transition } from \"@headlessui/react\";\nimport { Fragment, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { MouseEventHandler } from \"react\";\n\nfunction ProfileLogout(props: { logout: MouseEventHandler }) {\n const [open, setOpen] = useState(false);\n\n const { t } = useTranslation();\n return (\n <>\n
\n
\n

{t(\"profile.logout.text\")}

\n setOpen(true)} appearance=\"secondary\">\n {t(\"profile.logout.button\")}\n \n
\n
\n \n \n
\n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
\n
\n
\n \n {t(\"logout.screen.title\")}\n \n
\n
\n
\n \n {t(\"logout.screen.button.logout\")}\n \n setOpen(false)} appearance=\"\" className=\"bg-active text-white\">\n {t(\"logout.screen.button.back\")}\n \n
\n
\n \n
\n
\n
\n \n );\n}\n\nexport default ProfileLogout;\n","import classNames from \"classnames\";\nimport { DetailedHTMLProps, InputHTMLAttributes } from \"react\";\n\nclass VigoInputProps {\n showLabel?: boolean;\n labelText?: string;\n}\n\ntype VigoInputPropsType = VigoInputProps & DetailedHTMLProps, HTMLInputElement>;\n\nfunction VigoInput(props: VigoInputPropsType) {\n const { showLabel, labelText, name, checked, onChange, type } = props;\n\n const inputProps = { ...props };\n delete inputProps.showLabel;\n delete inputProps.labelText;\n\n return (\n <>\n
\n \n {showLabel && (\n \n )}\n
\n \n );\n}\n\nexport default VigoInput;\n","enum UserConvoSpeed {\n Slow = 0,\n Medium = 1,\n Fast = 2,\n}\n\nexport default UserConvoSpeed;\n","import PropTypes from \"prop-types\";\n\nexport default function VigoErrorModal(props: any) {\n return (\n props.modal && (\n
\n
\n
\n {/* This element is to trick the browser into centering the modal contents. */}\n \n ​\n \n
\n
\n
\n \n \n \n
\n
\n

{props.text}

\n
\n
\n
\n props.setModal(false)}\n >\n Continue\n \n
\n
\n
\n
\n )\n );\n}\n\nVigoErrorModal.propTypes = {\n text: PropTypes.string,\n modal: PropTypes.bool,\n setModal: PropTypes.func,\n};\n","import PropTypes from \"prop-types\";\nexport default function VigoSuccessModal(props: any) {\n return (\n props.modal && (\n
\n
\n
\n {/* This element is to trick the browser into centering the modal contents. */}\n \n ​\n \n
\n
\n
\n \n \n \n
\n
\n

{props.text}

\n
\n
\n
\n props.setModal(false)}\n >\n Continue\n \n
\n
\n
\n
\n )\n );\n}\n\nVigoSuccessModal.propTypes = {\n text: PropTypes.string,\n modal: PropTypes.bool,\n setModal: PropTypes.func,\n};\n","import { isMobile, isAndroid, isFirefox, isIOS, isOpera, browserVersion } from \"mobile-device-detect\";\n\nexport const platforms = {\n NATIVE: \"native\", // currently: Chrome, Edge mobile, Samsung internet\n FIREFOX: \"firefox\",\n FIREFOX_NEW: \"firefox_new\", // above version 79\n OPERA: \"opera\",\n IDEVICE: \"idevice\",\n OTHER: \"other\", // don't know, so will do nothing\n};\n\nexport function getPlatform() {\n let platform = platforms.OTHER;\n if (window.hasOwnProperty(\"BeforeInstallPromptEvent\")) {\n platform = platforms.NATIVE;\n } else if (isMobile && isAndroid && isFirefox && +browserVersion >= 79) {\n platform = platforms.FIREFOX_NEW;\n } else if (isMobile && isAndroid && isFirefox) {\n platform = platforms.FIREFOX;\n } else if (isOpera && isAndroid && isMobile) {\n platform = platforms.OPERA;\n } else if (isIOS && isMobile) {\n platform = platforms.IDEVICE;\n }\n\n return platform;\n}\n","import VigoButton from \"../vigo-button/vigo-button.component\";\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { platforms, getPlatform } from \"../../utils/platforms\";\nimport { usePWAInstall } from \"react-use-pwa-install\";\n\nconst InstallModal = () => {\n const { t } = useTranslation();\n const platform = getPlatform();\n const install = usePWAInstall();\n const [isSupported, setIsSupported] = useState(false);\n const [showModal, setShowModal] = useState(true);\n\n useEffect(() => {\n if (platform === platforms.NATIVE) {\n setIsSupported(true);\n }\n if (platform !== platforms.OTHER) {\n setIsSupported(true);\n }\n }, [platform]);\n\n return (\n showModal &&\n isSupported &&\n install && (\n
\n
\n
\n {/* This element is to trick the browser into centering the modal contents. */}\n \n ​\n \n
\n
\n
\n

{t(\"install.modal.message\")}

\n
\n
\n
\n setShowModal(false)}>\n {t(\"install.modal.cancel\")}\n \n \n {t(\"install.modal.accept\")}\n \n
\n
\n
\n
\n
\n )\n );\n};\n\nexport default InstallModal;\n","import { RotateIcon, NoPhoneIcon } from \"../../assets/icons\";\nimport { useState, useEffect } from \"react\";\n\nconst RotateModal = () => {\n const [width, setWidth] = useState(window.innerWidth);\n useEffect(() => {\n const handleResize = () => {\n setWidth(window.innerWidth);\n };\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n return width < 1024 && width > 660 ? (\n
\n
\n
\n {/* This element is to trick the browser into centering the modal contents. */}\n \n ​\n \n
\n
\n
\n \"Rotate\"\n
\n
\n

Please rotate your device

\n

We support horizontal orientation only

\n
\n
\n
\n
\n
\n ) : (\n width < 660 && (\n <>\n
\n
\n
\n {/* This element is to trick the browser into centering the modal contents. */}\n \n ​\n \n
\n
\n
\n \"No\n
\n
\n

Mobile Devices Not Supported

\n

\n Please use your computer or tablet to use this app\n

\n
\n
\n
\n
\n
\n \n )\n );\n};\n\nexport default RotateModal;\n","import { useTranslation } from \"react-i18next\";\nimport VigoCheckbox from \"../../components/vigo-checkbox/vigo-checkbox.component\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport UserService from \"../../services/user/user.service\";\nimport UserConvoSpeed from \"../../types/enums/user-convo-speed\";\nimport {ErrorModal, SuccessModal} from \"../vigo-modals\";\nimport {useState} from \"react\";\nconst Settings = () => {\n const { user, refreshState } = useAuth();\n const { t } = useTranslation();\n\n const [error, setError] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n const [success, setSuccess] = useState(false);\n const [successMessage, setSuccessMessage] = useState('');\n\n const onConvoSpeedChange = async (index: number) => {\n await UserService.updateUser(user.id, { convoSpeed: index })\n .then(function (response) {\n setSuccessMessage(t(\"profile.settings.speed.message.success\"));\n setSuccess(true);\n })\n .catch(function (error) {\n setErrorMessage(`${error}`);\n setError(true);\n });\n await refreshState();\n };\n\n const onColorImpairmentChange = async () => {\n await UserService.updateUser(user.id, { isColorImpairment: !user.isColorImpairment })\n .then(function (response) {\n setSuccessMessage(t(\"message.success.data_saved\"));\n setSuccess(true);\n })\n .catch(function (error) {\n setErrorMessage(`${error}`);\n setError(true);\n });\n await refreshState();\n };\n\n return (\n <>\n \n \n
\n
\n

{t(\"profile.settings.label\")}

\n

{t(\"profile.settings.speed.label\")}

\n
\n
\n {\n Object.keys(UserConvoSpeed).filter((v) => !isNaN(Number(v))).map((x, index) => {\n return ( onConvoSpeedChange(index)}\n className={`${\n user.convoSpeed === index\n ? \"bg-active border-transparent text-white border rounded-md py-4 flex items-center justify-center text-lg font-medium sm:flex-1\"\n : \"bg-skybg border-transparent text-active border rounded-md py-4 flex items-center justify-center text-lg font-medium sm:flex-1\"\n }`}\n >\n {t(`profile.settings.speed.${index}`)}\n )\n })\n }\n
\n

{t(\"profile.settings.blind.label\")}

\n
\n \n
\n
\n \n );\n};\n\nexport default Settings;\n","import { useTranslation } from \"react-i18next\";\n\nconst ProfileDisclaimer = () => {\n const { t } = useTranslation();\n return (\n

\n {t(\"profile.terms.text.0\")}\n
\n {t(\"profile.terms.text.1\")}\n

\n );\n};\n\nexport default ProfileDisclaimer;\n","import {useEffect, useState} from \"react\";\nimport ProfileForm from \"../../../../components/profile-form/profile-form.component\";\nimport ProfileStats from \"../../../../components/profile-stats/profile-stats.component\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport UserService from \"../../../../services/user/user.service\";\nimport ProfileLogout from \"../../../../components/profile-logout/profile-logout.component\";\n\nimport ProfileSettings from \"../../../../components/profile-settings/profile-settings.component\";\nimport ProfileDisclaimer from \"../../../../components/profile-disclaimer/profile-disclaimer.component\";\nimport UserState from \"../../../../types/enums/user-state\";\n\nfunction MyDataTab() {\n const { user, logout, refreshState } = useAuth();\n\n const handleSubmit = async (data: any) => {\n await UserService.updateUser(user.id, data);\n await refreshState();\n };\n\n return (\n
\n {user?.state === UserState.Active && }\n \n {user?.state === UserState.Active && }\n \n \n
\n );\n}\n\nexport default MyDataTab;\n","import SubscriptionPlan from \"./subscription-plan\";\nimport PromotionCode from \"./promotion-code\";\n\nexport enum SubscriptionState {\n Active = 'ACTIVE',\n AwaitingPayment = 'AWAITING_PAYMENT',\n Expired = 'EXPIRED',\n PaymentFailed = 'PAYMENT_FAILED',\n Paid = 'PAID',\n}\n\nexport class PaymentMethod {\n id: string;\n brand: string;\n country: string;\n expMonth: number;\n expYear: number;\n last4: string;\n}\n\nexport class SubscriptionMetadata {\n paymentMethod: PaymentMethod;\n invoice: {\n downloadLink: string;\n };\n plan: {\n id: string;\n amount: string;\n name: string;\n };\n}\n\nclass Subscription {\n id: number;\n state: SubscriptionState;\n stripeSubscriptionId: string;\n metadata: SubscriptionMetadata;\n createdAt: Date | string;\n expireDate: Date | string;\n userId: number;\n subscriptionPlan: SubscriptionPlan;\n subscriptionPlanId: number;\n isTrial: boolean;\n promotionCode: PromotionCode;\n promotionCodeId: number;\n}\n\nexport default Subscription;\n","import AbstractService from \"../abstract/abstract.service\";\nimport Subscription from \"../../types/models/subscription\";\n\nclass SubscriptionService extends AbstractService {\n API_SEGMENT = 'subscriptions'\n\n async getLatestSubscription() {\n const result = await this.axios.get(`${this.API_SEGMENT}/latest`)\n\n return result.data;\n }\n}\n\nexport default new SubscriptionService();\n","import {useQuery} from \"react-query\";\nimport SubscriptionService from \"../../services/subscription/subscription.service\";\n\nconst useSubscription = () => {\n return useQuery(\n ['subscription', 'latest'],\n () => SubscriptionService.getLatestSubscription(),\n {staleTime: 30000}\n );\n};\n\nexport default useSubscription;\n","export enum SubscriptionPlanType {\n Digital = 'digital',\n Full = 'full',\n Premium = 'premium',\n Hospital = 'hospital',\n Contract = 'contract',\n}\n\nclass SubscriptionPlan {\n id: number;\n stripeProductId: string;\n key: SubscriptionPlanType;\n stripePriceId: string;\n price: number;\n createdAt: Date | string;\n}\n\nexport default SubscriptionPlan;\n","import {SubscriptionPlanType} from \"../../types/models/subscription-plan\";\n\nclass ConstantsService {\n getSubscriptionPlanFeatures(key: SubscriptionPlanType) {\n switch (key) {\n case SubscriptionPlanType.Digital:\n return [\n \"general.subscription-plan.digital.feature.1\",\n \"general.subscription-plan.digital.feature.2\",\n \"general.subscription-plan.digital.feature.3\",\n ];\n case SubscriptionPlanType.Full:\n return [\n \"general.subscription-plan.full.feature.1\",\n \"general.subscription-plan.full.feature.2\",\n \"general.subscription-plan.full.feature.3\",\n \"general.subscription-plan.full.feature.4\",\n \"general.subscription-plan.full.feature.5\",\n \"general.subscription-plan.full.feature.6\",\n ];\n case SubscriptionPlanType.Premium:\n return [\n \"general.subscription-plan.premium.feature.1\",\n \"general.subscription-plan.premium.feature.2\",\n \"general.subscription-plan.premium.feature.3\",\n \"general.subscription-plan.premium.feature.4\",\n \"general.subscription-plan.premium.feature.5\",\n \"general.subscription-plan.premium.feature.6\",\n \"general.subscription-plan.premium.feature.7\",\n \"general.subscription-plan.premium.feature.8\",\n ];\n }\n }\n}\n\nexport default new ConstantsService();\n","import React from \"react\";\nimport { CheckIcon, TickIcon } from \"../../assets/icons\";\nimport Subscription, { SubscriptionState } from \"../../types/models/subscription\";\nimport { useTranslation } from \"react-i18next\";\nimport ConstantsService from \"../../services/constants/constants.service\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\n\nclass CurrentPlanProps {\n subscription: Subscription;\n onPortalOpen: () => void;\n onCheckoutOpen: () => void;\n}\n\nfunction CurrentPlan(props: CurrentPlanProps) {\n const { t } = useTranslation();\n\n const { subscription, onPortalOpen, onCheckoutOpen } = props;\n\n const subscriptionPlanKey = subscription.subscriptionPlan.key;\n const discount = subscription.promotionCode?.amountOff ?? 0;\n const subscriptionPlanPrice = (subscription.subscriptionPlan.price - discount) / 100;\n const features = ConstantsService.getSubscriptionPlanFeatures(subscriptionPlanKey);\n const isCurrent = subscription.state === SubscriptionState.Paid || subscription.state === SubscriptionState.Active;\n\n return (\n
\n
\n
\n
\n {isCurrent &&

{t(\"general.subscription-plan.current\")}

}\n

\n {t(`general.subscription-plan.${subscriptionPlanKey}`)}\n

\n \n EUR {subscriptionPlanPrice}/{t(\"general.subscription-plan.month\")}.\n \n
\n {isCurrent && (\n
\n \"Check\n
\n )}\n
\n
\n
\n
    \n {features.map((feature, index) => (\n
  • \n \"Tick\n {t(feature)}\n
  • \n ))}\n
\n
\n {isCurrent ? (\n \n {t(\"general.subscription-plan.cancel\")}\n \n ) : (\n \n {t(\"general.subscription-plan.subscribe\")}\n \n )}\n
\n
\n
\n );\n}\n\nexport default CurrentPlan;\n","import { CardIcon } from \"../../assets/icons\";\nimport { useTranslation } from \"react-i18next\";\nimport Subscription, { SubscriptionState } from \"../../types/models/subscription\";\nimport { PaymentMethod as PaymentMethodModel } from \"../../types/models/subscription\";\nimport { capitalize } from \"lodash\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\n\nclass PaymentMethodProps {\n subscription: Subscription;\n paymentMethod: PaymentMethodModel;\n onPortalOpen: () => void;\n}\n\nfunction PaymentMethod(props: PaymentMethodProps) {\n const { subscription, paymentMethod, onPortalOpen } = props;\n const { t } = useTranslation();\n const isCurrent = subscription.state === SubscriptionState.Paid || subscription.state === SubscriptionState.Active;\n\n return (\n isCurrent && (\n
\n

{t(\"general.subscription-plan.payment.title\")}

\n
\n
\n
\n \"Card\n

\n {capitalize(paymentMethod.brand)}\n
\n ** {paymentMethod.last4}\n

\n
\n
\n
\n \n {t(\"general.subscription-plan.payment.change\")}\n \n
\n
\n
\n )\n );\n}\n\nexport default PaymentMethod;\n","import AbstractService from \"../abstract/abstract.service\";\nimport PaymentCustomer from \"../../types/models/payment-customer\";\nimport Payment from \"../../types/models/payment\";\n\nclass PaymentsService extends AbstractService {\n API_SEGMENT = 'payments'\n\n async getPaymentCustomer() {\n const result = await this.axios.get(`${this.API_SEGMENT}/customer`)\n\n return result.data;\n }\n\n async getPaymentsHistory() {\n const result = await this.axios.get(`${this.API_SEGMENT}/history`)\n\n return result.data;\n }\n\n async getPortalLink(returnUrl: string) {\n const result = await this.axios.get<{ url: string }>(`${this.API_SEGMENT}/portal?returnUrl=${returnUrl}`)\n\n return result.data;\n }\n\n async getCheckoutLink(returnUrl: string) {\n const result = await this.axios.post<{ url: string }>(`${this.API_SEGMENT}/checkout?returnUrl=${returnUrl}`)\n\n return result.data;\n }\n}\n\nexport default new PaymentsService();\n","import {useQuery} from \"react-query\";\nimport PaymentsService from \"../../services/payments/payments.service\";\n\nconst usePaymentCustomer = () => {\n return useQuery(\n ['payments', 'customer'],\n () => PaymentsService.getPaymentCustomer(),\n {staleTime: Infinity}\n );\n};\n\nexport default usePaymentCustomer;\n","import Subscription, { SubscriptionState } from \"../../types/models/subscription\";\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { format } from \"date-fns\";\nimport { lv } from \"date-fns/locale\";\nclass UpcomingChargeProps {\n subscription: Subscription;\n}\n\nfunction UpcomingCharge(props: UpcomingChargeProps) {\n const [lang, setLang] = useState(false);\n const { t, i18n } = useTranslation();\n const { subscription } = props;\n useEffect(() => {\n if (i18n.language === \"lv\") {\n setLang(true);\n }\n }, [i18n.language]);\n const subscriptionPlanKey = subscription.subscriptionPlan.key;\n const discount = subscription.promotionCode?.amountOff ?? 0;\n const subscriptionPlanPrice = (subscription.subscriptionPlan.price - discount) / 100;\n const upcomingChargeDate = format(new Date(subscription.expireDate), lang ? \"dd. LLLL, yyyy\" : \"dd MMMM yyyy\", {\n locale: lang ? lv : null,\n });\n const isCurrent = subscription.state === SubscriptionState.Paid || subscription.state === SubscriptionState.Active;\n\n return (\n isCurrent && (\n
\n

{t(\"general.subscription-plan.upcoming.title\")}

\n
\n
\n

\n {t(\"general.subscription-plan.plan\")}\n
\n {t(`general.subscription-plan.${subscriptionPlanKey}`)}\n

\n
\n
\n

\n {t(\"general.subscription-plan.amount\")}\n
\n \n EUR {subscriptionPlanPrice}/{t(\"general.subscription-plan.month\")}.\n \n

\n
\n
\n

\n {t(\"general.subscription-plan.date\")}\n
\n {upcomingChargeDate}\n

\n
\n
\n
\n )\n );\n}\n\nexport default UpcomingCharge;\n","import {useQuery} from \"react-query\";\nimport PaymentsService from \"../../services/payments/payments.service\";\n\nconst useStripePortal = (returnUrl: string) => {\n return useQuery(\n ['payments', 'portal'],\n () => PaymentsService.getPortalLink(returnUrl),\n {staleTime: 0}\n );\n};\n\nexport default useStripePortal;\n","import {useQuery} from \"react-query\";\nimport PaymentsService from \"../../services/payments/payments.service\";\n\nconst useStripeCheckout = (returnUrl: string) => {\n return useQuery(\n ['payments', 'checkout'],\n () => PaymentsService.getCheckoutLink(returnUrl),\n {staleTime: 0}\n );\n};\n\nexport default useStripeCheckout;\n","import CurrentPlan from \"../../../../components/current-plan/current-plan.component\";\nimport useSubscription from \"../../../../hooks/useSubscription/useSubscription\";\nimport PaymentMethod from \"../../../../components/payment-method/payment-method.component\";\nimport usePaymentCustomer from \"../../../../hooks/usePaymentCustomer/usePaymentCustomer\";\nimport UpcomingCharge from \"../../../../components/upcoming-charge/upcoming-charge.component\";\n// import usePaymentsHistory from \"../../../../hooks/usePaymentsHistory/usePaymentsHistory\";\n// import PaymentsHistory from \"../../../../components/payments-history/payments-history.component\";\nimport useStripePortal from \"../../../../hooks/useStripePortal/usePaymentsHistory\";\nimport useStripeCheckout from \"../../../../hooks/useStripeCheckout/usePaymentsHistory\";\n\nfunction PaymentsTab() {\n const { data: subscription } = useSubscription();\n const { data: paymentCustomer } = usePaymentCustomer();\n // const { data: paymentsHistory } = usePaymentsHistory();\n const { data: portal } = useStripePortal(window.location.href);\n const { data: checkout } = useStripeCheckout(window.location.href);\n\n const openPortal = () => {\n window.location.href = portal.url;\n };\n\n const openCheckout = () => {\n window.location.href = checkout.url;\n };\n\n return (\n
\n {subscription && (\n \n )}\n {paymentCustomer?.paymentMethod && (\n \n )}\n {subscription && }\n {/* {subscription && paymentsHistory && (\n \n )} */}\n
\n );\n}\n\nexport default PaymentsTab;\n","import { Dialog, Transition } from \"@headlessui/react\";\nimport { Fragment, useState } from \"react\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\nimport { useTranslation } from \"react-i18next\";\nimport { format } from \"date-fns\";\nimport { lv } from \"date-fns/locale\";\nimport moment from \"moment\";\nimport { EllipseIcon, RectangleIcon } from \"../../assets/icons\";\nimport BloodPressure from \"../../types/models/blood-pressure\";\n\nconst Bar = (props: any) => {\n const [open, setOpen] = useState(false);\n const { t, i18n } = useTranslation();\n const models = props.day.models\n ? props.day.models.sort((a: BloodPressure, b: BloodPressure) => a.createdAt > b.createdAt)\n : [];\n\n const handleDayClick = () => {\n if (models.length) {\n setOpen(true);\n }\n };\n\n function getWeekday(): string {\n if (moment(props.day.date).isSame(moment(), \"day\")) {\n return t(\"general.text.today\");\n } else {\n return format(new Date(props.day.date), i18n.resolvedLanguage === \"lv\" ? \"dd. MMM\" : \"dd MMM\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n });\n }\n }\n\n const getAllDiastolic = () => {\n return models.map((model: any) => model.diastolic);\n };\n\n const getAllSystolic = () => {\n return models.map((model: any) => model.systolic);\n };\n\n const getAllCreatedAt = () => {\n return models.map((model: BloodPressure) => model.createdAt);\n };\n\n const isToday = moment(props.day.date).isSame(moment(), \"day\");\n return (\n <>\n \n
\n
\n
\n
\n
\n
\n {getAllSystolic().map((systolic: number, index: number) => {\n return (\n \n );\n })}\n {getAllDiastolic().map((diastolic: number, index: number) => {\n return (\n \n );\n })}\n
\n

\n {getWeekday()}\n

\n
\n
\n
\n \n \n
\n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
\n
\n
\n \n {format(new Date(props.day.date), i18n.resolvedLanguage === \"lv\" ? \"dd. MMMM\" : \"MMMM dd\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n })}\n \n
\n\n
\n \n \n \n \n {getAllCreatedAt().map((createdAt: Date, index: number) => {\n return (\n \n );\n })}\n \n \n \n \n \n\n {getAllSystolic().map((item: Number, index: number) => {\n return ;\n })}\n \n \n \n {getAllDiastolic().map((item: Number, index: number) => {\n return ;\n })}\n \n \n
\n

\n {format(new Date(createdAt), i18n.resolvedLanguage === \"lv\" ? \"HH:mm\" : \"h:mm a\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n })}\n

\n
\n \"Ellipse\n

{t(\"general.text.systolic\")} (SYS)

\n
{item}
\n \"Rectangle\n

{t(\"general.text.diastolic\")} (DIA)

\n
{item}
\n
\n
\n
\n setOpen(false)} appearance=\"primary\">\n {t(\"general.button.done\")}\n \n
\n
\n \n
\n
\n
\n \n );\n};\nexport default Bar;\n","import { Formik } from \"formik\";\nimport { useState } from \"react\";\nimport * as Yup from \"yup\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport BloodPressure from \"../../types/models/blood-pressure\";\nimport VigoDatePicker from \"../vigo-datepicker/vigo-datepicker.component\";\nimport VigoInput from \"../vigo-input/vigo-input.component\";\nimport { useTranslation } from \"react-i18next\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\n\nclass BloodPressureFormProps {\n initialValues?: BloodPressure;\n onSubmit: (values: BloodPressure) => void;\n}\n\nconst Schema = Yup.object().shape({\n systolic: Yup.number().max(200).min(40).required(),\n diastolic: Yup.number().max(200).min(40).required(),\n createdAt: Yup.date(),\n});\n\nconst handleOnInput = (e: any) => {\n if (e.target.value.length > 3) {\n e.target.value = e.target.value.slice(0, 3);\n }\n};\n\nconst BloodPressureForm = (props: BloodPressureFormProps) => {\n const { user } = useAuth();\n const { initialValues, onSubmit } = props;\n const { t, i18n } = useTranslation();\n const [selectedDate, setSelectedDate] = useState(\n initialValues ? new Date(initialValues.createdAt) : new Date(),\n );\n\n return (\n
\n {\n onSubmit(values);\n resetForm({ values });\n setSubmitting(false);\n }}\n validationSchema={Schema}\n >\n {({ values, handleChange, setFieldValue, handleSubmit, dirty, isValid, isSubmitting, errors }) => (\n
\n
\n
\n
\n
\n {\n setSelectedDate(date);\n setFieldValue(\"createdAt\", date);\n }}\n />\n
\n
\n
\n
\n {\n setFieldValue(\n \"createdAt\",\n new Date(\n selectedDate?.getFullYear(),\n selectedDate?.getMonth(),\n selectedDate?.getDate(),\n parseInt(e.target.value.split(\":\")[0]),\n parseInt(e.target.value.split(\":\")[1]),\n ),\n );\n }}\n />\n
\n\n
\n \n
\n
\n \n
\n
\n
\n \n {t(\"general.button.add\")}\n \n
\n
\n )}\n \n
\n );\n};\n\nexport default BloodPressureForm;\n","import BloodPressure from \"../../types/models/blood-pressure\";\nimport AbstractService from \"../abstract/abstract.service\";\nimport ChartBarData from \"../../types/classes/chart-bar-model\";\n\nclass BloodPressureService extends AbstractService {\n API_SEGMENT = \"user-blood-pressure\";\n\n async getBloodPressureByUserId(userId: number) {\n const path = `?join=user%7C%7Cid&filter=user.id%7C%7C%24eq%7C%7C${userId}`\n const result = await this.axios.get(`${this.API_SEGMENT}${path}`);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n\n async createBloodPressure(this: any, data: BloodPressure, userId: number) {\n const params = {\n user: userId,\n createdAt: data.createdAt,\n systolic: data.systolic,\n diastolic: data.diastolic,\n };\n return await this.axios.post(this.API_SEGMENT, params);\n }\n\n getMeasurementRangeString(weekData: ChartBarData[]): string {\n const allModels = weekData\n .map(day => day.models ? day.models : [])\n .flat(1);\n\n if (allModels && allModels.length) {\n const minSys = Math.min(...allModels.map(bp => bp.systolic));\n const maxSys = Math.max(...allModels.map(bp => bp.systolic));\n const minDia = Math.min(...allModels.map(bp => bp.diastolic));\n const maxDia = Math.max(...allModels.map(bp => bp.diastolic));\n const chunks = [[minSys, maxSys], [minDia, maxDia]].map(p => (p[0] === p[1]) ? p[0] : `${p[0]}-${p[1]}`)\n\n return `${chunks[0]}/${chunks[1]} mmHg`;\n } else {\n\n return '0/0 mmHg';\n }\n }\n}\n\nexport default new BloodPressureService();\n","import { useQuery } from \"react-query\";\nimport BloodPressureService from \"../../services/blood-pressure/blood-pressure.service\";\n\nconst useBloodPressure = (userId: number) => {\n return useQuery([\"bloodPressure\", userId], () => BloodPressureService.getBloodPressureByUserId(userId), {\n staleTime: 5000,\n });\n};\n\nexport default useBloodPressure;\n","import moment from \"moment\";\nimport format from \"date-fns/format\";\n\ninterface ChartBarModel {\n createdAt: Date;\n}\n\nclass ChartBarData {\n models: T[];\n date: Date;\n}\n\nexport default ChartBarData;\n\nexport function transformToDailyChartBarData(data: T[]): ChartBarData[] {\n const chartBarModels: ChartBarData[] = [];\n\n const moments = [moment()].concat(\n data.map(obj => moment(obj.createdAt))\n );\n const minDate = moment(moment.min(moments)).startOf('isoWeek');\n const maxDate = moment(moment.max(moments)).endOf('isoWeek');\n while (minDate <= maxDate) {\n const chartBarModel = new ChartBarData();\n chartBarModel.date = minDate.toDate();\n chartBarModel.models = data.filter(obj => moment(obj.createdAt).isSame(minDate, 'day'));\n chartBarModels.push(chartBarModel);\n\n minDate.add(1, 'day');\n }\n\n return chartBarModels;\n}\n\nexport function getDateRangeForChartBarData(data: ChartBarData[],\n locale: Locale,\n dateFormat: string): string {\n if (data && data.length) {\n const minDate = format(data[0].date, dateFormat, { locale });\n const maxDate = format(data[data.length - 1].date, dateFormat, { locale });\n return `${minDate} - ${ maxDate }`;\n }\n return '';\n}\n","import { Dialog, Transition } from \"@headlessui/react\";\nimport { Fragment, useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { lv } from \"date-fns/locale\";\nimport Bar from \"../../../../components/blood-pressure-chart/blood-pressure-chart.component\";\nimport { RightArrowIcon, LeftArrowIcon } from \"../../../../assets/icons\";\nimport VigoButton from \"../../../../components/vigo-button/vigo-button.component\";\nimport BloodPressureForm from \"../../../../components/blood-pressure-form/blood-pressure-form.component\";\nimport BloodPressureService from \"../../../../services/blood-pressure/blood-pressure.service\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport useBloodPressure from \"../../../../hooks/useBloodPressure/useBloodPressure\";\nimport { EllipseIcon, RectangleIcon } from \"../../../../assets/icons\";\nimport { getDateRangeForChartBarData, transformToDailyChartBarData } from \"../../../../types/classes/chart-bar-model\";\nimport { ErrorModal, SuccessModal } from \"../../../../components/vigo-modals\";\n\nconst BloodPressure = () => {\n const { user } = useAuth();\n const bloodPressure = useBloodPressure(user.id);\n const { t, i18n } = useTranslation();\n const [dataIndex, setDataIndex] = useState(0);\n const [open, setOpen] = useState(false);\n const cancelButtonRef = useRef(null);\n const [bloodPressureData, setBloodPressureData] = useState(transformToDailyChartBarData([]));\n\n const [success, setSuccess] = useState(false);\n const [successMessage, setSuccessMessage] = useState(\"\");\n\n const [error, setError] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n useEffect(() => {\n if (bloodPressure.error) {\n setErrorMessage(`${bloodPressure.error}`);\n setError(true);\n }\n const weekData = transformToDailyChartBarData(bloodPressure.data ?? []);\n setDataIndex(weekData.length - 7);\n setBloodPressureData(weekData);\n }, [bloodPressure.data, bloodPressure.error]);\n\n const handleLeftArrowClick = () => {\n if (dataIndex === 0) return;\n setDataIndex(dataIndex - 7);\n };\n const handleRightArrowClick = () => {\n if (dataIndex + 7 > bloodPressureData.length - 1) return;\n setDataIndex(dataIndex + 7);\n };\n\n const handleSubmit = async (item: any) => {\n setOpen(false);\n\n await BloodPressureService.createBloodPressure(item, user.id)\n .then(function (response) {\n setSuccessMessage(t(\"message.success.data_saved\"));\n setSuccess(true);\n })\n .catch(function (error) {\n setErrorMessage(`${error}`);\n setError(true);\n });\n\n await bloodPressure.refetch();\n };\n\n return (\n <>\n \n \n
\n
\n

{t(\"blood.pressure.screen.add.text\")}

\n setOpen(true)}>\n {t(\"general.button.add\")}\n \n
\n
\n {/* Form modal */}\n \n \n
\n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
\n
\n
\n \n {t(\"blood.pressure.screen.add.text\")}\n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n
\n

\n {BloodPressureService.getMeasurementRangeString(bloodPressureData.slice(dataIndex, dataIndex + 7))}\n

\n
\n \n

\n {getDateRangeForChartBarData(\n bloodPressureData.slice(dataIndex, dataIndex + 7),\n i18n.resolvedLanguage === \"lv\" ? lv : null,\n i18n.resolvedLanguage === \"lv\" ? \"dd. MMM\" : \"dd MMM\",\n )}\n

\n\n \n
\n
\n
\n
\n \"ellipse\n {t(\"general.text.systolic\")}\n
\n
\n \"rectangle\n {t(\"general.text.diastolic\")}\n
\n
\n
\n\n
\n
\n
\n {bloodPressureData.slice(dataIndex, dataIndex + 7).map((day, index) => {\n return ;\n })}\n\n
\n
\n 200\n
\n
\n 150\n
\n
\n 100\n
\n
\n 50\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default BloodPressure;\n","import {FunctionComponent} from \"react\";\nimport {Tab} from \"@headlessui/react\";\nimport Layout from \"../../components/layout/layout.component\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport {useTranslation} from \"react-i18next\";\nimport MyDataTab from \"./tabs/my-data/my-data.tab\";\nimport useSubscription from \"../../hooks/useSubscription/useSubscription\";\nimport classNames from \"classnames\";\nimport {InstallModal} from \"../../components/vigo-modals/\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport UserState from \"../../types/enums/user-state\";\nimport PaymentsTab from \"./tabs/payments/payments.tab\";\nimport BloodPressureTab from \"./tabs/blood-pressure/blood-pressure.tab\";\n\nexport const ProfilePage: FunctionComponent = () => {\n const subscription = useSubscription();\n const { user } = useAuth();\n const { t } = useTranslation();\n\n function getCategories() {\n const categories = [\n {\n key: \"profile.segment.my_data\",\n component: ,\n }\n ];\n if (user?.state === UserState.Active) {\n categories.push(\n {\n key: \"profile.segment.blood_pressure\",\n component: ,\n }\n );\n }\n if (subscription.data?.subscriptionPlan?.stripeProductId) {\n categories.push(\n {\n key: \"profile.segment.payments\",\n component: ,\n }\n );\n }\n return categories;\n }\n\n return (\n <>\n \n \n \n \n {getCategories().map((category, index: number) => (\n \n classNames(\n \" w-full py-12 text-xl bg-white leading-5 font-bold\",\n \"focus:outline-none border-silver\",\n selected\n ? \"bg-tone text-active border-l border-r \"\n : \"text-dark hover:bg-tone border-b over:text-active\",\n )\n }\n >\n {t(category.key)}\n \n ))}\n \n \n {getCategories().map((category, index) => (\n \n
\n {
{category.component}
}\n
\n \n ))}\n
\n
\n
\n \n );\n};\n\nexport default ProfilePage;\n","const LoadingComponent = () => {\n return (\n
\n
\n \n
\n
\n );\n};\n\nexport default LoadingComponent;\n","import useAuth from \"../../hooks/useAuth/useAuth\";\nimport { useHistory } from \"react-router-dom\";\nimport LocalStorageService from \"../../services/local-storage/local-storage.service\";\nimport { useEffect, useState } from \"react\";\nimport LoadingComponent from \"../../components/loading/loading.component\";\n\nfunction ProtectedRoute(props: { children: any }) {\n const [isLoading, setIsLoading] = useState(false);\n const { isLoggedIn, refreshState } = useAuth();\n const history = useHistory();\n\n useEffect(() => {\n if (!isLoggedIn && LocalStorageService.accessToken) {\n setIsLoading(true);\n refreshState()\n .then(() => setIsLoading(false))\n .catch(() => {\n setIsLoading(false);\n history.push(\"/\");\n });\n }\n }, [history, isLoggedIn, refreshState]);\n\n if (!isLoggedIn && !LocalStorageService.accessToken) {\n history.push(\"/\");\n }\n\n // here could be a spinner\n if (isLoading) {\n return ;\n }\n\n return props.children;\n}\n\nexport default ProtectedRoute;\n","export default __webpack_public_path__ + \"static/media/loginLogo.6e0dbaa7.svg\";","import { ErrorMessage, Field, Form, Formik } from \"formik\";\nimport { eyeClose, eyeOpen } from \"../../assets/icons\";\nimport * as Yup from \"yup\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport classNames from \"classnames\";\n\nfunction LoginForm(props: { onLogin: any }) {\n const [initialValues] = useState({\n login: \"\",\n password: \"\",\n });\n const [showPassword, setShowPassword] = useState(false);\n const [loading, setLoading] = useState(false);\n const [message, setMessage] = useState(\"\");\n const { t } = useTranslation();\n\n const validationSchema = Yup.object().shape({\n login: Yup.string().required(t(\"auth.screen.error\")),\n password: Yup.string().required(t(\"auth.screen.error\")),\n });\n\n const handleSubmit = async (formValue: { login: string; password: string }) => {\n try {\n setLoading(true);\n setMessage(\"\");\n await props.onLogin(formValue.login, formValue.password);\n } catch (e: any) {\n setLoading(false);\n setMessage(t(\"general.error.message.invalid.data\"));\n }\n };\n\n const toggleShowDisplay = () => {\n setShowPassword(!showPassword);\n };\n\n return (\n \n {({ isValid, dirty }) => (\n
\n
\n \n
\n \n
\n
\n \n
\n
\n \n \n
\n {dirty ? (\n \n ) : (\n \"Vigo\n )}\n
\n
\n
\n \n
\n \n {loading ? (\n \n ) : (\n <>{t(\"auth.screen.button.login\")}\n )}\n \n
\n\n {message &&

{message}

}\n \n )}\n
\n );\n}\n\nexport default LoginForm;\n","import loginLogo from \"../../assets/logos/loginLogo.svg\";\nimport LoginForm from \"../../components/login-form/login-form.component\";\nimport { useContext } from \"react\";\nimport AuthContext from \"../../contexts/auth/auth.context\";\nimport { useTranslation } from \"react-i18next\";\nfunction LoginPage() {\n const { login: performLogin } = useContext(AuthContext);\n const { t } = useTranslation();\n\n const handleLogin = async (login: string, password: string) => {\n await performLogin(login, password);\n };\n\n return (\n <>\n
\n \"Vigo\n
\n
\n
\n
\n

{t(\"auth.screen.title\")}

\n \n
\n
\n
\n \n );\n}\n\nexport default LoginPage;\n","enum DailyActivityType {\n Walking = \"walk\",\n Nordic = \"nordic_walk\",\n Yoga = \"yoga\",\n Gymnastic = \"gymnastic\",\n Other = \"other\",\n}\nexport default DailyActivityType;\n","const WelcomeComponent = (props: { welcomeText: string }) => {\n return (\n
\n
\n

{props.welcomeText}

\n
\n
\n );\n};\n\nexport default WelcomeComponent;\n","import UserData from \"../../types/models/user-data\";\nimport AbstractService from \"../abstract/abstract.service\";\n\nclass UserDataService extends AbstractService {\n API_SEGMENT = \"user-data\";\n\n async getUserDataByUserId(userId: number, type: string) {\n const path = `?join=user%7C%7Cid&filter=user.id%7C%7C%24eq%7C%7C${userId}&filter%5B1%5D=type%7C%7C%24eq%7C%7C${type}`\n const result = await this.axios.get(`${this.API_SEGMENT}${path}`);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n\n async createUserData(this: any, data: Partial, userId: number) {\n const params = {\n user: userId,\n value: data.value,\n type: data.type,\n title: data.title,\n };\n return await this.axios.post(this.API_SEGMENT, params);\n }\n}\n\nexport default new UserDataService();\n","import { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport i18next from \"i18next\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport WelcomeComponent from \"../../components/vigo-welcome/vigo-welcome.component\";\nimport UserDataService from \"../../services/user-data/user-data.service\";\n\nconst WelcomePage = () => {\n const { t } = useTranslation();\n const { user } = useAuth();\n const [welcome, setWelcome] = useState(true);\n useEffect(() => {\n const fetchLang = async () => {\n const lang = user.localeId;\n const langResult = lang === \"lv_LV\" ? \"lv\" : \"en\";\n await i18next.changeLanguage(`${langResult}`);\n setTimeout(() => {\n setWelcome(false);\n window.location.href = \"/profile\";\n\n const userData = {\n value: 1,\n type: \"open-app-event\",\n }\n UserDataService.createUserData(userData, user.id);\n }, 3500);\n };\n\n fetchLang();\n }, [welcome, setWelcome, user.localeId]);\n\n return
{welcome && }
;\n};\n\nexport default WelcomePage;\n","import moment from \"moment\";\nimport { format } from \"date-fns\";\nimport { lv } from \"date-fns/locale\";\nimport { useTranslation } from \"react-i18next\";\nimport UserData from \"../../types/models/user-data\";\n\nconst MoodBar = (props: any) => {\n const { t, i18n } = useTranslation();\n\n const numberOfMoodsInColumn = 6;\n const isToday = moment(props.day.date).isSame(moment(), \"day\");\n const data = props.day.models.map((x: UserData) => x.value);\n\n function getWeekday(): string {\n if (moment(props.day.date).isSame(moment(), \"day\")) {\n return t(\"general.text.today\");\n } else {\n return format(new Date(props.day.date), i18n.resolvedLanguage === \"lv\" ? \"dd. MMM\" : \"dd MMM\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n });\n }\n }\n\n function title(index: number): string {\n const hasMoodData = data.includes(index);\n if (!hasMoodData) {\n return \"\";\n }\n\n switch (index) {\n case 1:\n return \"😭\";\n case 2:\n return \"🙁\";\n case 3:\n return \"😐\";\n case 4:\n return \"🙂\";\n case 5:\n return \"😊\";\n case 6:\n return \"🤩\";\n default:\n return \"\";\n }\n }\n\n function color(index: number): string {\n if (!data.includes(index)) {\n return isToday ? \"bg-sky\": \"bg-moodbg opacity-30\";\n }\n return null;\n }\n\n return (\n <>\n
  • \n
    \n <>\n

    {getWeekday()}

    \n
    \n {Array.from(Array(numberOfMoodsInColumn).keys()).map((index: number) => (\n
    \n
    {title(numberOfMoodsInColumn - index)}
    \n
    \n ))}\n
    \n \n
    \n
  • \n \n );\n};\n\nexport default MoodBar;\n","import { useQuery } from \"react-query\";\nimport UserDataService from \"../../services/user-data/user-data.service\";\n\nconst useMood = (userId: number) => {\n return useQuery([\"mood\", userId], () => UserDataService.getUserDataByUserId(userId, \"Mood\"), {\n staleTime: 5000,\n });\n};\n\nexport default useMood;\n","import { useState, useEffect } from \"react\";\nimport MoodBar from \"../../../../components/mood-bar/mood-bar.component\";\nimport { lv } from \"date-fns/locale\";\nimport { useTranslation } from \"react-i18next\";\nimport { RightArrowIcon, LeftArrowIcon } from \"../../../../assets/icons\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport useMood from \"../../../../hooks/useMood/useMood\";\nimport {getDateRangeForChartBarData, transformToDailyChartBarData} from \"../../../../types/classes/chart-bar-model\";\n\nconst MyMood = () => {\n const { i18n } = useTranslation();\n const { user } = useAuth();\n const mood = useMood(user.id);\n const [moodData, setMoodData] = useState(transformToDailyChartBarData([]));\n const [dataIndex, setDataIndex] = useState(0);\n\n const [error, setError] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n if (mood.error) {\n setErrorMessage(`${mood.error}`);\n setError(true);\n }\n const weekData = transformToDailyChartBarData(mood.data ?? [])\n setDataIndex(weekData.length - 7);\n setMoodData(weekData);\n }, [mood.data, mood.error]);\n\n const handleLeftArrowClick = () => {\n if (dataIndex === 0) return;\n setDataIndex(dataIndex - 7);\n };\n const handleRightArrowClick = () => {\n if (dataIndex + 7 > moodData.length - 1) return;\n setDataIndex(dataIndex + 7);\n };\n\n return (\n
    \n
    \n \n

    \n {getDateRangeForChartBarData(\n moodData.slice(dataIndex, dataIndex + 7),\n i18n.resolvedLanguage === \"lv\" ? lv : null,\n i18n.resolvedLanguage === \"lv\" ? \"dd. MMM\" : \"dd MMM\",\n )}\n

    \n \n
    \n
      \n {moodData.slice(dataIndex, dataIndex + 7).map((day, index) => {\n return ;\n })}\n
    \n
    \n );\n};\n\nexport default MyMood;\n","import { Formik } from \"formik\";\nimport * as Yup from \"yup\";\nimport DailyActivity from \"../../types/models/daily-activity\";\n\nimport VigoInput from \"../vigo-input/vigo-input.component\";\nimport { useTranslation } from \"react-i18next\";\nimport DailyActivityType from \"../../types/enums/daily-activity-type\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\nimport VigoSelect, { VigoSelectOption } from \"../vigo-select/vigo-select.component\";\nimport VigoDatePicker from \"../vigo-datepicker/vigo-datepicker.component\";\n\nclass ActivityFormProps {\n initialValues?: DailyActivity;\n onSubmit: (values: DailyActivity) => void;\n}\n\nconst Schema = Yup.object().shape({\n type: Yup.string().required(),\n value: Yup.number().max(150).min(1).required(),\n createdAt: Yup.date().required(),\n});\n\nconst handleOnInput = (e: any) => {\n if (e.target.value.length > 3) {\n e.target.value = e.target.value.slice(0, 3);\n }\n};\n\nfunction ActivityEditForm(props: ActivityFormProps) {\n const { initialValues, onSubmit } = props;\n const { t } = useTranslation();\n\n const activityTypeOptions: VigoSelectOption[] = Object.values(DailyActivityType).map((at) => ({\n label: t(`activity.input.activity.${at}`),\n value: at,\n }));\n\n return (\n
    \n {\n onSubmit({ type: values.type, createdAt: values.createdAt, value: values.value * 60 });\n resetForm({ values });\n setSubmitting(false);\n }}\n validationSchema={Schema}\n >\n {({ values, handleChange, setFieldValue, handleSubmit, dirty, isValid, isSubmitting }) => (\n
    \n
    \n
    \n {\n setFieldValue(\"type\", e.target.value);\n }}\n value={values.type}\n showLabel={true}\n labelText={t(\"activity.input.field.type\")}\n options={activityTypeOptions}\n />\n
    \n
    \n \n
    \n
    \n
    \n {\n setFieldValue(\"createdAt\", date);\n }}\n />\n
    \n
    \n
    \n
    \n \n {t(\"general.button.add\")}\n \n
    \n
    \n )}\n \n
    \n );\n}\n\nexport default ActivityEditForm;\n","import { Dialog, Transition } from \"@headlessui/react\";\nimport { Fragment, useState } from \"react\";\nimport { EditIcon, TrashIcon } from \"../../assets/icons\";\nimport { useTranslation } from \"react-i18next\";\nimport { format } from \"date-fns\";\nimport moment from \"moment\";\nimport { lv } from \"date-fns/locale\";\nimport ActivityEditForm from \"../activity-edit-form/activity-edit-form.component\";\nimport DailyActivity from \"../../types/models/daily-activity\";\n\nconst ActivityChart = (props: any) => {\n const [open, setOpen] = useState(false);\n const [edit, setEdit] = useState(false);\n const [editIndex, setEditIndex] = useState(null);\n const { t, i18n } = useTranslation();\n\n const isToday = moment(props.day.date).isSame(moment(), \"day\");\n const models: DailyActivity[] = props.day.models ?? [];\n const vigoModel = models.find((x) => !x.type);\n const otherModels = models.filter((x) => x.type);\n\n const vigoMinutes = vigoModel ? Math.floor(vigoModel.value / 60) : 0;\n const otherMinutes = otherModels\n .filter((x) => x.type)\n .reduce((acc, x) => {\n return acc + Math.floor(x.value / 60);\n }, 0);\n\n const handleDelete = async (index: number) => {\n props.onDelete(otherModels[index].id);\n };\n\n const handleEdit = async (index: number) => {\n setEditIndex(index);\n setEdit(true);\n };\n\n const handleEditSubmit = async (values: DailyActivity) => {\n setEdit(false);\n values.id = otherModels[editIndex].id;\n props.onEdit(values);\n };\n\n function getWeekday(): string {\n if (moment(props.day.date).isSame(moment(), \"day\")) {\n return t(\"general.text.today\");\n } else {\n return format(new Date(props.day.date), i18n.resolvedLanguage === \"lv\" ? \"dd. MMM\" : \"dd MMM\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n });\n }\n }\n\n return (\n <>\n setOpen(true)}\n className={\n \"m-0 w-full cursor-pointer flex flex-col relative justify-end border-silver\" + (isToday && \" bg-chartBg\")\n }\n style={{ height: \"422px\" }}\n >\n {/* {props.goal > 0 && (\n \n )} */}\n {/*
    \n
    \n
    */}\n
    \n \n {vigoMinutes + otherMinutes > 0 && (\n <>\n {vigoMinutes + otherMinutes} {t(\"general.text.min\")}\n \n )}\n \n {otherMinutes > 158 && (\n
    \n )}\n\n {otherMinutes < 158 && (\n
    \n )}\n
    \n
    \n
    \n

    {getWeekday()}

    \n
    \n
    \n \n \n
    \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
    \n
    \n
    \n \n {t(\"activity.day.title\")}{\" \"}\n {format(new Date(props.day.date), i18n.resolvedLanguage === \"lv\" ? \"dd. MMMM\" : \"MMMM dd\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n })}\n \n
    \n \n \n \n \n \n \n \n {otherModels.map((x: DailyActivity, index: number) => {\n return (\n \n \n \n \n \n );\n })}\n \n
    {t(\"activity.day.exercising.vigo\")}\n {vigoMinutes} {t(\"general.text.min\")}\n
    {t(`activity.input.activity.${x.type}`)}\n {Math.floor(x.value / 60)} {t(\"general.text.min\")}\n \n
    \n handleEdit(index)}\n src={EditIcon}\n alt=\"\"\n />\n handleDelete(index)}\n alt=\"\"\n />\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
    \n
    \n
    \n \n {t(\"activity.edit.title\")}\n \n
    \n handleEditSubmit(values)}\n />\n
    \n
    \n \n
    \n
    \n
    \n \n );\n};\nexport default ActivityChart;\n","import { Formik } from \"formik\";\nimport * as Yup from \"yup\";\nimport DailyActivity from \"../../types/models/daily-activity\";\n\nimport VigoInput from \"../vigo-input/vigo-input.component\";\nimport { useTranslation } from \"react-i18next\";\nimport DailyActivityType from \"../../types/enums/daily-activity-type\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\nimport VigoSelect, { VigoSelectOption } from \"../vigo-select/vigo-select.component\";\nimport VigoDatePicker from \"../vigo-datepicker/vigo-datepicker.component\";\n\nclass ActivityFormProps {\n initialValues?: DailyActivity;\n onSubmit: (values: DailyActivity) => void;\n}\n\nconst Schema = Yup.object().shape({\n type: Yup.string(),\n value: Yup.number().max(150).min(1).required(),\n createdAt: Yup.date().required(),\n});\n\nconst handleOnInput = (e: any) => {\n if (e.target.value.length > 3) {\n e.target.value = e.target.value.slice(0, 3);\n }\n};\n\nfunction ActivityForm(props: ActivityFormProps) {\n const { initialValues, onSubmit } = props;\n const { t } = useTranslation();\n\n const activityTypeOptions: VigoSelectOption[] = Object.values(DailyActivityType).map((at) => ({\n label: t(`activity.input.activity.${at}`),\n value: at,\n }));\n\n return (\n
    \n {\n onSubmit({ type: values.type, createdAt: values.createdAt, value: values.value * 60 });\n resetForm({ values });\n setSubmitting(false);\n }}\n validationSchema={Schema}\n >\n {({ values, handleChange, setFieldValue, handleSubmit, dirty, isValid, isSubmitting }) => (\n
    \n
    \n
    \n {\n setFieldValue(\"type\", e.target.value);\n }}\n value={values.type}\n showLabel={true}\n labelText={t(\"activity.input.field.type\")}\n options={activityTypeOptions}\n />\n
    \n
    \n \n
    \n
    \n
    \n {\n setFieldValue(\"createdAt\", date);\n }}\n />\n
    \n
    \n
    \n
    \n \n {t(\"general.button.add\")}\n \n
    \n
    \n )}\n \n
    \n );\n}\n\nexport default ActivityForm;\n","import { Formik } from \"formik\";\nimport * as Yup from \"yup\";\nimport VigoInput from \"../vigo-input/vigo-input.component\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\nimport { useTranslation } from \"react-i18next\";\nimport User from \"../../types/models/user\";\n\nclass ActivityFormProps {\n initialValues?: User;\n onSubmit: (data: Partial) => Promise;\n}\n\nconst Schema = Yup.object().shape({\n userActivityGoal: Yup.number().max(90).min(20).required(),\n});\n\nconst handleOnInput = (e: any) => {\n if (e.target.value.length > 3) {\n e.target.value = e.target.value.slice(0, 3);\n }\n};\n\nfunction ActivityGoalForm(props: ActivityFormProps) {\n const { initialValues, onSubmit } = props;\n const { t } = useTranslation();\n\n return (\n
    \n {\n onSubmit(values);\n resetForm({ values });\n setSubmitting(false);\n }}\n validationSchema={Schema}\n >\n {({ values, handleChange, handleSubmit, dirty, isValid, isSubmitting }) => (\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n {t(\"general.button.save\")}\n \n
    \n
    \n )}\n \n
    \n );\n}\n\nexport default ActivityGoalForm;\n","enum GoalKey {\n SelfCare = \"self-care\",\n Productivity = \"productivity\",\n FreeTime = \"free-time\",\n}\nexport default GoalKey;\n","import AbstractService from \"../abstract/abstract.service\";\nimport DailyActivity from \"../../types/models/daily-activity\";\n\nclass DailyActivityService extends AbstractService {\n API_SEGMENT = \"user-daily-activity\";\n\n async getDailyActivitiesByUserId(userId: number) {\n const path = `?join=user%7C%7Cid&filter=user.id%7C%7C%24eq%7C%7C${userId}`;\n const result = await this.axios.get(`${this.API_SEGMENT}${path}`);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n\n async createDailyActivity(this: any, data: DailyActivity, userId: number): Promise {\n const params = {\n user: userId,\n createdAt: data.createdAt,\n value: data.value,\n type: data.type,\n };\n return this.axios.post(this.API_SEGMENT, params);\n }\n\n async updateDailyActivity(this: any, data: DailyActivity): Promise {\n const params = {\n createdAt: data.createdAt,\n value: data.value,\n type: data.type,\n };\n return this.axios.put(`${this.API_SEGMENT}/${data.id}`, params);\n }\n\n async deleteDailyActivity(this: any, dailyActivityId: number): Promise {\n return this.axios.delete(`${this.API_SEGMENT}/${dailyActivityId}`);\n }\n}\n\nexport default new DailyActivityService();\n","import { useQuery } from \"react-query\";\nimport DailyActivityService from \"../../services/daily-activity/daily-activity.service\";\n\nconst useDailyActivity = (userId: number) => {\n return useQuery([\"dailyActivity\", userId], () => DailyActivityService.getDailyActivitiesByUserId(userId), {\n staleTime: 5000,\n });\n};\n\nexport default useDailyActivity;\n","import { EditIcon, LeftArrowIcon, RightArrowIcon } from \"../../../../assets/icons\";\nimport { Dialog, Transition } from \"@headlessui/react\";\nimport { Fragment, useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { lv } from \"date-fns/locale\";\nimport Bar from \"../../../../components/activity-chart/activity-chart.component\";\nimport VigoButton from \"../../../../components/vigo-button/vigo-button.component\";\nimport ActivityForm from \"../../../../components/activity-form/activity-form.component\";\nimport ActivityGoal from \"../../../../components/activity-goal/activity-goal.component\";\nimport UserService from \"../../../../services/user/user.service\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport DailyActivityService from \"../../../../services/daily-activity/daily-activity.service\";\nimport useDailyActivity from \"../../../../hooks/useDailyActivity/useDailyActivity\";\nimport ChartBarData, {\n getDateRangeForChartBarData,\n transformToDailyChartBarData,\n} from \"../../../../types/classes/chart-bar-model\";\nimport DailyActivity from \"../../../../types/models/daily-activity\";\nimport useActivityReport from \"../../../../hooks/useActivityReport/useActivityReport\";\nimport DailyActivityType from \"../../../../types/enums/daily-activity-type\";\n\nconst ActivityTab = () => {\n const { user, refreshState } = useAuth();\n const { t, i18n } = useTranslation();\n\n const dailyActivity = useDailyActivity(user.id);\n const [dailyActivityData, setDailyActivityData] = useState([]);\n\n const activityReport = useActivityReport(user.id);\n const [activityReportData, setActivityReportData] = useState([]);\n\n const [data, setData] = useState(transformToDailyChartBarData([]));\n const [dataIndex, setDataIndex] = useState(0);\n\n const [activityOpen, setActivityOpen] = useState(false);\n const [goalOpen, setGoalOpen] = useState(false);\n\n const [errorModal, setErrorModal] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const [successModal, setSuccessModal] = useState(false);\n const [successMessage, setSuccessMessage] = useState(\"\");\n\n useEffect(() => {\n if (dailyActivity.error) {\n setErrorMessage(`${dailyActivity.error}`);\n setErrorModal(true);\n }\n setDailyActivityData(dailyActivity.data ?? []);\n }, [dailyActivity.data, dailyActivity.error]);\n\n useEffect(() => {\n if (activityReport.error) {\n setErrorMessage(`${activityReport.error}`);\n setErrorModal(true);\n }\n setActivityReportData(activityReport.data ?? []);\n }, [activityReport.data, activityReport.error]);\n\n useEffect(() => {\n const weekData = transformToDailyChartBarData(\n dailyActivityData.concat(\n activityReportData.map((x) => {\n return { value: x.timeInExercises, createdAt: x.date };\n }),\n ),\n );\n setDataIndex(weekData.length - 7);\n setData(weekData);\n }, [dailyActivityData, activityReportData]);\n\n const cancelButtonRef = useRef(null);\n\n const handleLeftArrowClick = () => {\n if (dataIndex === 0) return;\n setDataIndex(dataIndex - 7);\n };\n const handleRightArrowClick = () => {\n if (dataIndex + 7 > data.length - 1) return;\n setDataIndex(dataIndex + 7);\n };\n\n const handleSubmitActivity = async (data: any) => {\n setActivityOpen(false);\n await DailyActivityService.createDailyActivity(data, user.id)\n .then(function (response) {\n setSuccessMessage(t(\"exercise_time.add.activity.success.message\"));\n setSuccessModal(true);\n })\n .catch(function (error) {\n setErrorMessage(`${error}`);\n setErrorModal(true);\n });\n\n await dailyActivity.refetch();\n };\n\n const handleUpdateActivity = async (data: DailyActivity) => {\n await DailyActivityService.updateDailyActivity(data).catch(function (error) {\n setErrorMessage(`${error}`);\n setErrorModal(true);\n });\n\n await dailyActivity.refetch();\n };\n\n const handleDeleteActivity = async (id: number) => {\n await DailyActivityService.deleteDailyActivity(id).catch(function (error) {\n setErrorMessage(`${error}`);\n setErrorModal(true);\n });\n\n await dailyActivity.refetch();\n };\n\n const handleSubmitGoal = async (data: any) => {\n setGoalOpen(false);\n await UserService.updateUser(user.id, data);\n await refreshState();\n };\n\n return (\n <>\n
    \n
    \n

    {t(\"exercise_time.add.activity\")}

    \n setActivityOpen(true)}>\n {t(\"general.button.add\")}\n \n
    \n
    \n\n {/* Form modal */}\n \n \n
    \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
    \n
    \n
    \n \n {t(\"exercise_time.add.activity\")}\n \n
    \n \n
    \n
    \n \n
    \n \n
    \n {/* Activity Goal modal */}\n \n \n
    \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
    \n
    \n
    \n \n {t(\"exercise_time.set.goal\")}\n \n
    \n 0 ? user : null} onSubmit={handleSubmitGoal} />\n
    \n
    \n \n
    \n \n
    \n {user.userActivityGoal === 0 && (\n
    \n
    \n

    \n {\" \"}\n {t(\"exercise_time.set.goal\")} {t(\"exercise_time.no.goal\")}\n

    \n
    \n setGoalOpen(true)} src={EditIcon} alt=\"\" />\n
    \n
    \n
    \n )}\n\n
    \n
    \n
    \n
    \n

    {t(\"exercise_time.screen.title\")}

    \n
    \n \n

    \n {getDateRangeForChartBarData(\n data.slice(dataIndex, dataIndex + 7),\n i18n.resolvedLanguage === \"lv\" ? lv : null,\n i18n.resolvedLanguage === \"lv\" ? \"dd. MMM\" : \"dd MMM\",\n )}\n

    \n\n \n
    \n
    \n
    \n
    \n \n {t(\"exercise_time.exercising.vigo\")}\n
    \n\n
    \n \n {t(\"exercise_time.exercising.self\")}\n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n {150}\n \n \n {120}\n \n \n {90}\n \n \n {60}\n \n \n {30}\n \n \n {0}\n \n\n {user.userActivityGoal > 0 && (\n \n {user.userActivityGoal}\n
    \n
    \n )}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n {/*
    \n
    \n 150\n
    \n
    \n 75\n
    \n
    \n 0\n
    \n
    */}\n {data.slice(dataIndex, dataIndex + 7).map((day: ChartBarData, index) => {\n return (\n handleUpdateActivity(data)}\n onDelete={(id: number) => handleDeleteActivity(id)}\n />\n );\n })}\n
    \n
    \n
    \n
    \n
    \n {user.userActivityGoal > 0 && (\n
    \n
    \n

    \n {\" \"}\n {t(\"exercise_time.set.goal\")}{\" \"}\n \n {user.userActivityGoal} {t(\"general.text.minutes\")}\n \n

    \n
    \n setGoalOpen(true)} src={EditIcon} alt=\"\" />\n
    \n
    \n
    \n )}\n
    \n
    \n \n );\n};\n\nexport default ActivityTab;\n","import { useTranslation } from \"react-i18next\";\nimport { format } from \"date-fns\";\nimport { lv } from \"date-fns/locale\";\n\nconst MyProgressChart = (props: any) => {\n const { i18n } = useTranslation();\n return (\n <>\n
    \n
    \n
    \n
    \n {props.performance}\n
    \n \n
    \n
    \n
    \n {props.satisfaction}\n
    \n \n
    \n
    \n \n

    \n {format(props.date, i18n.resolvedLanguage === \"lv\" ? \"dd. MMMM\" : \"MMMM dd\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n })}\n {props.title}\n

    \n
    \n
    \n \n );\n};\nexport default MyProgressChart;\n","import Goal from \"../../types/models/goal\";\nimport AbstractService from \"../abstract/abstract.service\";\n\nclass GoalService extends AbstractService {\n API_SEGMENT = \"goal\";\n\n async fetch() {\n const result = await this.axios.get(`${this.API_SEGMENT}/fetch`);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n}\n\nexport default new GoalService();\n","import { useQuery } from \"react-query\";\nimport GoalService from \"../../services/goal/goal.service\";\n\nconst useGoal = () => {\n return useQuery([\"goal\"], () => GoalService.fetch(), {\n staleTime: 30000,\n });\n};\n\nexport default useGoal;\n","import UserTest from \"../../types/models/user-test\";\nimport AbstractService from \"../abstract/abstract.service\";\n\nclass UserTestService extends AbstractService {\n API_SEGMENT = \"user-test\";\n\n async getUserTestByUserId(userId: number) {\n const result = await this.axios.get(`${this.API_SEGMENT}/patients/${userId}`);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n\n async createUserTests(this: any, data: UserTest[], userId: number) {\n const now = new Date();\n const params = {\n bulk: data.map(x => Object.assign(x, { createdAt: now, userId: userId, goalActivityId: x.goalActivity.id })),\n };\n return await this.axios.post(`${this.API_SEGMENT}/bulk`, params);\n }\n}\n\nexport default new UserTestService();\n","import { useQuery } from \"react-query\";\nimport UserTestService from \"../../services/user-test/user-test.service\";\n\nconst useUserTest = (userId: number) => {\n return useQuery([\"userTest\", userId], () => UserTestService.getUserTestByUserId(userId), {\n staleTime: 5000,\n });\n};\n\nexport default useUserTest;\n","import { useTranslation } from \"react-i18next\";\nimport GoalActivity from \"../../types/models/goal-activity\";\n\nconst MyProgressGoals = (props: any) => {\n const { t } = useTranslation();\n return (\n
    \n
    \n

    {t(\"goals.five.cell.title\")}

    \n
      \n {props.currentGoalActivities.map((goalActivity: GoalActivity, index: number) => {\n return (\n
    • \n {t(`goal.${goalActivity.key}`)}\n
    • \n );\n })}\n
    \n
      \n
      \n
      \n );\n};\n\nexport default MyProgressGoals;\n","import GoalActivity from \"./goal-activity\";\n\nclass UserTest {\n id: number;\n goalActivity: GoalActivity;\n currentMark: number;\n aimMark: number;\n createdAt: Date;\n}\n\nexport default UserTest;\n","import { Fragment, useState, useRef, useEffect } from \"react\";\nimport { Dialog, Transition } from \"@headlessui/react\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\nimport { useTranslation } from \"react-i18next\";\nimport { PauseIcon, PlayIcon, ReplayIcon } from \"../../assets/icons\";\nimport VigoCheckbox from \"../vigo-checkbox/vigo-checkbox.component\";\nimport { DownArrowIcon, UpArrowIcon, CloseIcon } from \"../../assets/icons\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport GoalActivity from \"../../types/models/goal-activity\";\nimport UserTest from \"../../types/models/user-test\";\nimport UserTestService from \"../../services/user-test/user-test.service\";\nimport GoalKey from \"../../types/enums/goal-key\";\n\nenum MyProgressAssessmentStep {\n Intro,\n Checkbox,\n Order,\n OrderTotal,\n Five,\n Scale,\n Report,\n}\n\nconst MyProgressAssessment = (props: any) => {\n const { user } = useAuth();\n const { t } = useTranslation();\n const cancelButtonRef = useRef(null);\n\n const [open, setOpen] = useState(false);\n const [buttonEnabled, setButtonEnabled] = useState(true);\n\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const hasGoalActivities = props.currentGoalActivities && props.currentGoalActivities.length;\n const numberOfScaleSteps = hasGoalActivities ? props.currentGoalActivities.length : 5;\n const numberOfGoals = props.goalData.length;\n const numberOfSteps = hasGoalActivities ? numberOfScaleSteps + 2 : 2 * numberOfGoals + numberOfScaleSteps + 4;\n const lastStepIndex = numberOfSteps - 1;\n\n const initialUserTests = hasGoalActivities\n ? props.currentGoalActivities.map((x: GoalActivity) => {\n const userTest = new UserTest();\n userTest.goalActivity = x;\n userTest.currentMark = 0;\n userTest.aimMark = 0;\n return userTest;\n })\n : [];\n const [userTests, setUserTests] = useState(initialUserTests);\n\n const goals = props.goalData;\n const [activitiesPerGoal, setActivitiesPerGoal] = useState([[]]);\n const [activitiesTotal, setActivitiesTotal] = useState([]);\n\n const [audioImage, setAudioImage] = useState(PlayIcon);\n\n const onAudioButton = async () => {\n const audio = document.getElementsByTagName(\"audio\")[0];\n if (audio.ended) {\n audio.currentTime = 0;\n await audio.play();\n } else if (audio.paused) {\n await audio.play();\n } else if (audio.played) {\n await audio.pause();\n }\n };\n\n const goForward = async () => {\n const newValue = currentIndex + 1;\n\n switch (stepForIndex(newValue)) {\n case MyProgressAssessmentStep.OrderTotal:\n const newValue: GoalActivity[] = [];\n const maxLength = Math.max(...activitiesPerGoal.map((x) => x.length));\n Array.from(Array(maxLength).keys()).forEach((ind: number) => {\n activitiesPerGoal.forEach((list) => {\n if (ind < list.length) {\n newValue.push(list[ind]);\n }\n });\n });\n setActivitiesTotal(newValue);\n break;\n case MyProgressAssessmentStep.Five:\n setUserTests(\n activitiesTotal.slice(0, 5).map((goalActivity: GoalActivity) => {\n const userTest = new UserTest();\n userTest.goalActivity = goalActivity;\n userTest.currentMark = 0;\n userTest.aimMark = 0;\n return userTest;\n }),\n );\n break;\n default:\n break;\n }\n\n if (newValue < numberOfSteps) {\n setCurrentIndex(newValue);\n } else {\n await UserTestService.createUserTests(userTests, user.id);\n // finish the assessment\n props.setTest(false);\n // reload page\n window.location.reload();\n }\n };\n\n const goBack = () => {\n switch (stepForIndex(currentIndex)) {\n case MyProgressAssessmentStep.Checkbox:\n setActivitiesPerGoal(activitiesPerGoal.slice(0, Math.floor(currentIndex / 2)));\n break;\n case MyProgressAssessmentStep.Scale:\n const userTestIndex = userTests.length - (lastStepIndex - currentIndex);\n userTests.slice(userTestIndex, userTests.length).forEach((x: UserTest) => {\n x.currentMark = 0;\n x.aimMark = 0;\n });\n break;\n default:\n break;\n }\n\n if (currentIndex > 0) {\n setCurrentIndex(currentIndex - 1);\n } else {\n setOpen(true);\n }\n };\n\n function IntroComponent() {\n setButtonEnabled(true);\n\n function getTitle(): string {\n if (user.formOfAddress && user.formOfAddress.length) {\n return `${t(\"goals.survey.intro.title\")} ${user.formOfAddress}`;\n }\n return t(\"goals.survey.intro.title\");\n }\n\n return !hasGoalActivities ? (\n <>\n

      \n {getTitle()},\n
      \n
      \n {t(\"goals.survey.intro.message.0\")}\n
      \n
      \n {t(\"goals.survey.intro.message.1\")}\n
      \n
      \n {t(\"goals.survey.intro.message.2\")}\n
      \n
      \n {t(\"goals.survey.intro.message.3\")}\n
      \n
      \n {t(\"goals.survey.intro.message.4\")}\n

      \n \n ) : (\n <>\n

      \n {getTitle()},\n
      \n
      \n {t(\"goals.survey.intro.repeated.message.0\")}\n
      \n
      \n {t(\"goals.survey.intro.repeated.message.1\")}\n
      \n
      \n {t(\"goals.survey.intro.repeated.message.2\")}\n
      \n
      \n {t(\"goals.survey.intro.repeated.message.3\")}\n

      \n \n );\n }\n\n function CheckboxComponent(props: any) {\n const goal = goals[props.index];\n const [activities, setActivities] = useState(orderedAccordingToGoal(activitiesPerGoal[props.index] ?? []));\n\n function orderedAccordingToGoal(list: GoalActivity[]): GoalActivity[] {\n return goal.activities.filter((x: GoalActivity) => list.includes(x));\n }\n\n useEffect(() => {\n setButtonEnabled(activities.length > 1);\n\n const newValue = activitiesPerGoal;\n newValue[props.index] = activities;\n setActivitiesPerGoal(newValue);\n }, [activities]);\n\n const handleCheckboxChange = (e: any) => {\n const goalActivity = goal.activities.find((x: GoalActivity) => x.key === e.target.value);\n if (goalActivity) {\n const newList = activities.includes(goalActivity)\n ? activities.filter((item: any) => item !== goalActivity)\n : [...activities, goalActivity];\n setActivities(orderedAccordingToGoal(newList));\n }\n };\n\n return (\n <>\n
      \n

      {t(\"goals.pick.title\", { key: t(`goals.pick.category.${goal.key}`) })}

      \n

      {t(\"goals.pick.message\")}

      \n
      \n {goal.activities.map((goalActivity: GoalActivity, index: number) => (\n \n ))}\n \n );\n }\n\n function OrderComponent(props: any) {\n setButtonEnabled(true);\n\n const [activities, setActivities] = useState(\n props.index !== undefined ? activitiesPerGoal[props.index] : activitiesTotal,\n );\n\n useEffect(() => {\n if (props.index !== undefined) {\n const newValue = activitiesPerGoal;\n newValue[props.index] = activities;\n setActivitiesPerGoal(newValue);\n } else {\n setActivitiesTotal(activities);\n }\n }, [activities]);\n\n function changeOrder(index0: any, direction: any) {\n const index1 = index0 + (direction === \"UP\" ? -1 : 1);\n const min = Math.min(index0, index1);\n const max = Math.max(index0, index1);\n\n setActivities([\n ...activities.slice(0, min),\n ...[activities[max], activities[min]],\n ...activities.slice(max + 1, activities.length),\n ]);\n }\n\n return (\n <>\n

      {t(\"goals.order.title\")}

      \n

      {t(\"goals.order.message\")}

      \n {activities.map((item: GoalActivity, index: number) => {\n return (\n
      \n
        \n
      • {t(`goal.${item.key}`)}
      • \n {t(`goal.${item.key}`).length > 41 ? (\n changeOrder(index, \"UP\")}\n />\n ) : (\n changeOrder(index, \"UP\")}\n />\n )}\n {/* changeOrder(index, \"UP\")}\n /> */}\n {t(`goal.${item.key}`).length > 41 ? (\n changeOrder(index, \"DOWN\")}\n />\n ) : (\n changeOrder(index, \"DOWN\")}\n />\n )}\n
      \n
      \n );\n })}\n \n );\n }\n\n function FinalResultsComponent() {\n return (\n
      \n

      {t(\"goals.five.title\")}

      \n

      {t(\"goals.five.message\")}

      \n
        \n {activitiesTotal.slice(0, 5).map((item: any, index: any) => {\n return (\n
      • \n {t(`goal.${item.key}`)}\n
      • \n );\n })}\n
      \n
      \n );\n }\n\n function ScaleComponent(props: any) {\n const [currentMark, setCurrentMark] = useState(props.userTest.currentMark);\n const [aimMark, setAimMark] = useState(props.userTest.aimMark);\n\n const ratingArray = Array.from(Array(10).keys());\n\n useEffect(() => {\n props.userTest.currentMark = currentMark;\n props.userTest.aimMark = aimMark;\n setButtonEnabled(currentMark && aimMark);\n }, [currentMark, aimMark]);\n\n return (\n <>\n

      \n

      {t(\"goals.scale.title\")}

      \n

      {t(\"goals.scale.message\")}

      \n

      {t(`goal.${props.userTest.goalActivity.key}`)}

      \n
      \n

      {t(\"goals.scale.my.abilities\")}

      \n
        \n {ratingArray.map((_item: any, index: any) => {\n return (\n {\n setCurrentMark(index + 1);\n }}\n >\n {index + 1}\n \n );\n })}\n
      \n

      {t(\"goals.scale.my.satisfaction\")}

      \n
        \n {ratingArray.map((_item: any, index: any) => {\n return (\n {\n setAimMark(index + 1);\n }}\n >\n {index + 1}\n \n );\n })}\n
      \n
      \n \n );\n }\n\n function ReportComponent(props: any) {\n return (\n <>\n
      \n
      \n
      \n 10\n
      \n 9\n
      \n 8\n
      \n 7\n
      \n \n 6\n \n
      \n \n 5\n \n
      \n \n 4\n \n
      \n \n 3\n \n
      \n \n 2\n \n
      \n \n 1\n \n
      \n \n 0\n \n
      \n
      \n
      \n
      \n
      \n {props.performance}\n
      \n \n 2 ? \"text-xl p-2 mt-8 ml-24\" : \"text-xl p-1 mt-2 ml-24\"\n }`}\n >\n {t(\"goals.graph.legend.label.0\")}\n

      \n
      \n \n
      \n
      \n
      \n {props.satisfaction}\n
      \n \n 2 ? \"text-xl p-2 mt-8 ml-24\" : \"text-xl p-1 mt-2 ml-24\"\n }`}\n >\n {t(\"goals.graph.legend.label.1\")}\n

      \n
      \n \n
      \n
      \n \n );\n }\n\n function audioSrc(key: string): string {\n const filename = user.localeId === \"en_US\" ? `${key}_en` : key;\n return `https://storage.googleapis.com/vigoaudios/${filename}.mp3`;\n }\n\n function audioKey(index: number): string {\n switch (stepForIndex(index)) {\n case MyProgressAssessmentStep.Intro:\n return hasGoalActivities ? \"intro_repeated\" : \"intro\";\n case MyProgressAssessmentStep.Checkbox:\n const goal = goals[Math.floor(index / 2)];\n switch (goal.key) {\n case GoalKey.SelfCare:\n return \"selfcare\";\n case GoalKey.Productivity:\n return \"productivity\";\n case GoalKey.FreeTime:\n return \"freetime\";\n }\n return \"\";\n case MyProgressAssessmentStep.Order:\n return \"list\";\n case MyProgressAssessmentStep.OrderTotal:\n return \"goals_total\";\n case MyProgressAssessmentStep.Five:\n return \"5goals\";\n case MyProgressAssessmentStep.Scale:\n const userTestIndex = userTests.length - (lastStepIndex - currentIndex);\n if (userTestIndex === 0) {\n return \"scale_start\";\n } else if (userTestIndex === userTests.length - 1) {\n return \"scale_end\";\n } else {\n return \"scale_middle\";\n }\n case MyProgressAssessmentStep.Report:\n return \"report\";\n }\n }\n\n function stepForIndex(index: number): MyProgressAssessmentStep {\n if (index === 0) return MyProgressAssessmentStep.Intro;\n\n if (!hasGoalActivities) {\n const orderTotalIndex = numberOfGoals * 2 + 1;\n if (index < orderTotalIndex) {\n return index % 2 ? MyProgressAssessmentStep.Checkbox : MyProgressAssessmentStep.Order;\n } else if (index === orderTotalIndex) {\n return MyProgressAssessmentStep.OrderTotal;\n } else if (index === orderTotalIndex + 1) {\n return MyProgressAssessmentStep.Five;\n }\n }\n\n if (index < lastStepIndex) {\n return MyProgressAssessmentStep.Scale;\n } else {\n return MyProgressAssessmentStep.Report;\n }\n }\n\n function Component(index: number) {\n switch (stepForIndex(index)) {\n case MyProgressAssessmentStep.Intro:\n return ;\n case MyProgressAssessmentStep.Checkbox:\n return ;\n case MyProgressAssessmentStep.Order:\n return ;\n case MyProgressAssessmentStep.OrderTotal:\n return ;\n case MyProgressAssessmentStep.Five:\n return ;\n case MyProgressAssessmentStep.Scale:\n const userTestIndex = userTests.length - (lastStepIndex - index);\n return ;\n case MyProgressAssessmentStep.Report:\n return (\n {\n return acc + obj.aimMark;\n }, 0) / userTests.length\n }\n performance={\n userTests.reduce((acc: number, obj: UserTest) => {\n return acc + obj.currentMark;\n }, 0) / userTests.length\n }\n />\n );\n }\n }\n\n return (\n
      \n \n \n
      \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
      \n
      \n
      \n \n {t(\"goals.survey.exit.title\")}\n \n

      {t(\"goals.survey.exit.subtitle\")}

      \n\n
      \n {\n setOpen(false);\n props.setTest(false);\n }}\n >\n {t(\"goals.survey.exit.button.later\")}\n \n {\n setOpen(false);\n }}\n >\n {t(\"goals.survey.exit.button.continue\")}\n \n
      \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n

      \n {currentIndex === numberOfSteps - 1 ? t(\"goals.report.title\") : t(\"goals.title\")}\n

      \n setOpen(true)} className=\"cursor-pointer\" src={CloseIcon} alt=\"close\" />\n
      \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n {\n <>\n {\n setAudioImage(PauseIcon);\n }}\n onPause={() => {\n setAudioImage(PlayIcon);\n }}\n onEnded={() => {\n setAudioImage(ReplayIcon);\n }}\n autoPlay\n />\n {Component(currentIndex)}\n \n }\n
      \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n \n {t(currentIndex ? \"general.button.back\" : \"goals.survey.button.cancel\")}\n \n \n \n {t(currentIndex ? \"general.button.continue\" : \"goals.survey.button.proceed\")}\n \n
      \n
      \n
      \n
      \n
      \n );\n};\n\nexport default MyProgressAssessment;\n","import { useState, useEffect } from \"react\";\nimport format from \"date-fns/format\";\nimport { useTranslation } from \"react-i18next\";\nimport { lv } from \"date-fns/locale\";\nimport Bar from \"../../../../components/my-progress-chart/my-progress-chart.component\";\nimport { RightArrowIcon, LeftArrowIcon } from \"../../../../assets/icons\";\nimport VigoButton from \"../../../../components/vigo-button/vigo-button.component\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport useGoal from \"../../../../hooks/useGoal/useGoal\";\nimport useUserTest from \"../../../../hooks/useUserTest/useUserTest\";\nimport MyProgressGoals from \"../../../../components/my-progress-goals/my-progress-goals.component\";\nimport ChartBarData, { getDateRangeForChartBarData } from \"../../../../types/classes/chart-bar-model\";\nimport UserTest from \"../../../../types/models/user-test\";\nimport moment from \"moment\";\nimport MyProgressAssessment from \"../../../../components/my-progress-assessment/my-progress-assessment.component\";\n\nconst ProgramGoalsTab = () => {\n const { user } = useAuth();\n\n const goal = useGoal();\n const [goalData, setGoalData] = useState([]);\n const [currentGoalActivities, setCurrentGoalActivities] = useState([]);\n\n const userTest = useUserTest(user.id);\n const [userTestData, setUserTestData] = useState(null);\n\n const { t, i18n } = useTranslation();\n const [dataIndex, setDataIndex] = useState(1);\n\n const [test, setTest] = useState(false);\n\n const [error, setError] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n\n const handleLeftArrowClick = () => {\n const newValue = dataIndex - 2;\n if (newValue < 1) return;\n setDataIndex(newValue);\n };\n const handleRightArrowClick = () => {\n const newValue = dataIndex + 2;\n if (newValue > userTestData.length - 1) return;\n setDataIndex(newValue);\n };\n\n useEffect(() => {\n if (goal.error || userTest.error) {\n setErrorMessage(`${goal.error || userTest.error}`);\n setError(true);\n }\n }, [goal.error, userTest.error]);\n\n useEffect(() => {\n if (!userTest.error && userTest.data) {\n const data = userTest.data;\n const uniqueDates = new Set(data.map((x) => x.createdAt));\n const chartDays = Array.from(uniqueDates)\n .map((x) => moment(x))\n .sort((a, b) => a.toDate().getTime() - b.toDate().getTime())\n .map((x) => {\n return {\n date: x.toDate(),\n models: data.filter((y) => moment(y.createdAt).isSame(x)),\n };\n });\n setUserTestData(chartDays);\n }\n }, [userTest.data]);\n\n useEffect(() => {\n if (userTestData && userTestData.length) {\n setCurrentGoalActivities(userTestData[userTestData.length - 1].models.map((x: UserTest) => x.goalActivity));\n } else {\n setCurrentGoalActivities([]);\n }\n }, [userTestData]);\n\n useEffect(() => {\n if (goal.data && !goal.error) {\n setGoalData(goal.data);\n }\n }, [goal.data]);\n\n function nextTestDate(): Date {\n if (userTestData && userTestData.length) {\n return new Date(\n new Date(userTestData[userTestData.length - 1].date).setDate(\n new Date(userTestData[userTestData.length - 1].date).getDate() + 28,\n ),\n );\n } else {\n return null;\n }\n }\n\n function isNextTestAvailable(): boolean {\n const nextDate = nextTestDate();\n if (nextDate) {\n const now = moment();\n const next = moment(nextDate);\n return now.isSame(next, \"day\") || now.toDate().getTime() > next.toDate().getTime();\n } else {\n return false;\n }\n }\n\n return (\n <>\n {test ? (\n \n ) : (\n \"\"\n )}\n {isNextTestAvailable() ? (\n
      \n
      \n

      {t(\"goals.add.label\")}

      \n setTest(true)} appearance={\"primary\"}>\n {t(\"goals.add.button\")}\n \n
      \n
      \n ) : (\n \"\"\n )}\n {!userTestData ? (\n <>\n ) : !userTestData.length ? (\n
      \n
      \n
      \n

      {t(\"goals.intro.title\")}

      \n

      {t(\"goals.intro.subtitle\")}

      \n
      \n setTest(true)}\n appearance={goalData.length ? \"primary\" : \"disabled\"}\n >\n {t(\"goals.intro.button\")}\n \n
      \n
      \n
      \n ) : (\n
      \n
      \n
      \n
      \n

      {t(\"goals.intro.title\")}

      \n {userTestData.length > 1 && (\n
      \n \n

      \n {getDateRangeForChartBarData(\n userTestData.slice(dataIndex === 1 ? 0 : dataIndex, dataIndex + 2),\n i18n.resolvedLanguage === \"lv\" ? lv : null,\n i18n.resolvedLanguage === \"lv\" ? \"dd. MMM\" : \"dd MMM\",\n )}\n

      \n \n
      \n )}\n
      \n
      \n
      \n \n {t(\"goals.report.label.abilities\")}\n
      \n\n
      \n \n {t(\"goals.report.label.satisfaction\")}\n
      \n
      \n
      \n\n
      \n
      \n
      \n \n
      \n 10\n
      \n 9\n
      \n 8\n
      \n \n 7\n \n
      \n \n 6\n \n
      \n \n 5\n \n
      \n \n 4\n \n
      \n \n 3\n \n
      \n \n 2\n \n
      \n \n 1\n \n
      \n \n 0\n \n
      \n
      \n
      \n \n {\n return accumulator + obj.currentMark;\n }, 0) / userTestData[0].models.length\n }\n satisfaction={\n userTestData[0].models.reduce((accumulator: number, obj: UserTest) => {\n return accumulator + obj.aimMark;\n }, 0) / userTestData[0].models.length\n }\n date={userTestData[0].date}\n title={t(\"goals.test.first\")}\n />\n {userTestData.slice(dataIndex, dataIndex + 2).map((day: ChartBarData, index: number) => {\n return (\n {\n return accumulator + obj.currentMark;\n }, 0) / day.models.length\n }\n satisfaction={\n day.models.reduce((accumulator: number, obj: UserTest) => {\n return accumulator + obj.aimMark;\n }, 0) / day.models.length\n }\n date={day.date}\n title={userTestData.length - 1 === dataIndex + index ? t(\"goals.test.last\") : null}\n />\n );\n })}\n
      \n
      \n
      \n
      \n
      \n )}\n {nextTestDate() && !isNextTestAvailable() ? (\n
      \n
      \n

      \n {\" \"}\n {t(\"goals.test.next\")}{\" \"}\n \n {\n format(nextTestDate(), i18n.resolvedLanguage === \"lv\" ? \"dd. MMMM\" : \"MMMM dd\", {\n locale: i18n.resolvedLanguage === \"lv\" ? lv : null,\n }).split(\"-\")[0]\n }\n \n

      \n setTest(true)}\n appearance={isNextTestAvailable() ? \"primary\" : \"disabled\"}\n >\n {t(\"goals.add.button\")}\n \n
      \n
      \n ) : (\n \"\"\n )}\n {currentGoalActivities.length ? : \"\"}\n
      \n \n );\n};\n\nexport default ProgramGoalsTab;\n","import { FunctionComponent, useState } from \"react\";\nimport Layout from \"../../components/layout/layout.component\";\n\nimport Moods from \"./tabs/my-mood/my-mood.tab\";\nimport Activity from \"./tabs/activity/activity.tab\";\nimport Goals from \"./tabs/program-goals/program-goals.tab\";\n\nimport { Tab } from \"@headlessui/react\";\nimport { useTranslation } from \"react-i18next\";\nimport classNames from \"classnames\";\n\nexport const Progress: FunctionComponent = () => {\n const { t } = useTranslation();\n\n let [categories] = useState({\n \"goals.title\": [\n {\n id: 1,\n component: ,\n },\n ],\n \"exercise_time.screen.title\": [\n {\n id: 1,\n component: ,\n },\n ],\n \"mood.segment.button\": [\n {\n id: 1,\n component: ,\n },\n ],\n });\n return (\n \n \n \n {Object.keys(categories).map((category) => (\n \n classNames(\n \" w-full py-12 text-xl bg-white leading-5 font-bold\",\n \"focus:outline-none border-silver\",\n selected\n ? \"bg-tone text-active border-l border-r \"\n : \"text-dark hover:bg-tone border-b over:text-active\",\n )\n }\n >\n {t(category)}\n \n ))}\n \n \n {Object.values(categories).map((posts, idx) => (\n \n
      \n {Array.isArray(posts) ? posts.map((post) =>
      {post.component}
      ) : null}\n
      \n \n ))}\n
      \n
      \n
      \n );\n};\n\nexport default Progress;\n","import { Formik } from \"formik\";\nimport * as Yup from \"yup\";\nimport { useTranslation } from \"react-i18next\";\nimport User from \"../../types/models/user\";\nimport VigoInput from \"../vigo-input/vigo-input.component\";\nimport VigoPhoneInput from \"../vigo-phone-input/vigo-phone-input.component\";\nimport VigoDatePicker from \"../vigo-datepicker/vigo-datepicker.component\";\nimport VigoSelect, { VigoSelectOption } from \"../vigo-select/vigo-select.component\";\nimport { useEffect } from \"react\";\n// import UserGender from \"../../types/enums/user-gender\";\nimport UserStrokeType from \"../../types/enums/user-stroke-type\";\nimport UserStrokeSide from \"../../types/enums/user-stroke-side\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\n// import VigoRadio from \"../vigo-radio/vigo-radio.component\";\nimport VigoRadioButton from \"../vigo-radio-button/vigo-radio-button.component\";\nimport UserService from \"../../services/user/user.service\";\nimport i18next from \"i18next\";\n\nclass OnboardingFormProps {\n initialValues?: User;\n onSubmit: (data: Partial) => Promise;\n}\n\nfunction OnboardingForm(props: OnboardingFormProps) {\n const { t } = useTranslation();\n\n const { initialValues, onSubmit } = props;\n\n const Schema = Yup.object().shape(\n {\n first: Yup.string().required(\"Required\"),\n last: Yup.string().required(\"Required\"),\n formOfAddress: Yup.string().required(\"Required\"),\n gender: Yup.number().required(\"Required\"),\n placeOfResidence: Yup.string().required(\"Required\"),\n email: Yup.string().required(\"Required\"),\n login: Yup.string()\n .required(\"Required\")\n .test(\"checkExistingLogin\", \"Login already taken\", async (value) => {\n if (value === initialValues.login) {\n return true;\n }\n const exist = await UserService.checkLogin(value);\n return !exist;\n }),\n strokeType: Yup.string().required(\"Required\"),\n strokeSide: Yup.string().required(\"Required\"),\n strokeDate: Yup.string().required(\"Required\"),\n dob: Yup.string().required(\"Required\"),\n acceptedTermsAndConditions: Yup.boolean().oneOf([true], \"Required\"),\n password: Yup.string().required(\"profile.form.error.password\"),\n passwordConfirmation: Yup.string()\n .when(\"password\", {\n is: (val: any) => !!val,\n then: Yup.string().required(\"profile.form.error.password\"),\n otherwise: Yup.string().notRequired(),\n })\n .oneOf([Yup.ref(\"password\"), null], \"profile.form.error.confirmpassword\"),\n },\n [[\"password\", \"passwordConfirmation\"]],\n );\n\n useEffect(() => {\n i18next.changeLanguage(initialValues.localeId === \"lv_LV\" ? \"lv\" : \"en\");\n }, [initialValues]);\n // const genderOptions: VigoSelectOption[] = Object.values(UserGender).map((g) => ({\n // label: t(`general.gender.${g}`),\n // value: g,\n // }));\n\n const strokeTypeOptions: VigoSelectOption[] = Object.values(UserStrokeType).map((st) => ({\n label: t(`general.stroketype.${st}`),\n value: st,\n }));\n\n const strokeSideOptions: VigoSelectOption[] = Object.values(UserStrokeSide).map((ss) => ({\n label: t(`general.strokeside.${ss}`),\n value: ss,\n }));\n\n return (\n <>\n {\n delete values.passwordConfirmation;\n await onSubmit(values);\n setSubmitting(false);\n }}\n validationSchema={Schema}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleSubmit,\n isSubmitting,\n setValues,\n setFieldValue,\n dirty,\n isValid,\n /* and other goodies */\n }) => (\n
      \n
      \n
      \n

      {t(\"profile.form.title\")}

      \n

      {t(\"profile.form.details\")}

      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n setFieldValue(\"dob\", date)}\n maxDate={values.strokeDate ? new Date(values.strokeDate) : new Date(Date.now())}\n minDate={new Date(1900, 1, 1)}\n />\n
      \n
      \n \n
      \n
      \n \n setValues({\n ...values,\n phone: phone,\n })\n }\n value={values[\"phone\"]}\n name={t(\"profile.form.phonenumber\")}\n />\n
      \n
      \n \n
      \n
      \n
      \n {t(\"profile.form.gender\")}\n
      \n
      \n setFieldValue(\"gender\", 1)}\n />\n setFieldValue(\"gender\", 2)}\n />\n
      \n
      \n
      \n

      {t(\"profile.form.strokeinformation\")}

      \n
      \n
      \n setFieldValue(\"strokeDate\", date)}\n maxDate={new Date()}\n minDate={new Date(values.dob)}\n />\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n

      {t(\"profile.form.changepassword\")}

      \n
      \n
      \n \n \n {t(errors.login)}\n \n
      \n
      \n \n
      \n
      \n \n \n {t(errors.passwordConfirmation)}\n \n
      \n
      \n
      \n
      \n setFieldValue(\"acceptedTermsAndConditions\", !values.acceptedTermsAndConditions)}\n value=\"\"\n />\n

      \n {t(\"general.button.confirm\")}{\" \"}\n \n {t(\"profile.form.termsofuse\")}\n \n

      \n
      \n
      \n \n {isSubmitting ? (\n \n ) : (\n t(\"profile.form.submit\")\n )}\n \n
      \n
      \n
      \n )}\n \n \n );\n}\n\nexport default OnboardingForm;\n","import {useQuery} from \"react-query\";\nimport UserService from \"../../services/user/user.service\";\n\nconst useOnboardingUser = (hash: string) => {\n return useQuery(\n ['users', 'hash'],\n () => UserService.getUserByHash(hash),\n {staleTime: 30000}\n );\n};\n\nexport default useOnboardingUser;\n","import OnboardingForm from \"../..//components/onboarding-form/onboarding-form.component\";\nimport UserService from \"../../services/user/user.service\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport useOnboardingUser from \"../../hooks/useOnboardingUser/useOnboardingUser\";\nimport { useContext } from \"react\";\nimport AuthContext from \"../../contexts/auth/auth.context\";\nimport LoadingComponent from \"../../components/loading/loading.component\";\n\nfunction OnboardingPage() {\n const history = useHistory();\n const location = useLocation();\n const { login: performLogin } = useContext(AuthContext);\n const validationHash = location.search.match(/hash=([^&]*)/) ? location.search.match(/hash=([^&]*)/)[1] : null;\n const { data: user } = useOnboardingUser(validationHash);\n\n const handleSubmit = async (data: any) => {\n await UserService.completeRegistration(validationHash, data);\n await performLogin(data.login, data.password);\n history.push(\"/profile\");\n };\n\n if (!user) {\n return ;\n }\n return (\n
      \n \n
      \n );\n}\n\nexport default OnboardingPage;\n","import { Fragment, useEffect, useRef, useState } from \"react\";\nimport { CloseWhiteIcon, VideoPlayIcon } from \"../../assets/icons\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport useVideoExercise from \"../../hooks/useVideoExercise/useVideoExercise\";\nimport VideoExercise from \"../../types/models/video-exercise\";\nimport { Dialog, Transition } from \"@headlessui/react\";\nimport { useTranslation } from \"react-i18next\";\nimport {ErrorModal} from \"../vigo-modals\";\nimport { useVideoPlayer } from \"../../hooks/useVideoPlayer/useVideoPlayer\";\n\nenum VideoLocalizationScene {\n Title,\n Intro,\n Stats,\n ExerciseTitle,\n ExerciseDemo,\n ExerciseStart,\n Exercise,\n Final,\n}\n\nconst TitleScreen = (props: any) => {\n const title = props.videoExercise.localizations[0].title;\n\n useEffect(() => {\n setTimeout(() => {\n if (props.videoExercise.introVideoUrl) {\n props.setScene(VideoLocalizationScene.Intro);\n } else {\n props.setScene(VideoLocalizationScene.ExerciseTitle);\n }\n }, 5000);\n }, []);\n\n return (\n <>\n
      \n
      \n \n ​\n \n props.setOpen(false)}\n >\n \"close\"\n \n
      \n
      \n

      {title}

      \n
      \n
      \n
      \n
      \n \n );\n};\n\nconst IntroVideo = (props: any) => {\n const { videoRef, playing, handlePlayClick, handlePlay } = useVideoPlayer();\n\n const videoUrl = props.videoExercise.introVideoUrl;\n\n const onVideoEnded = () => {\n props.setScene(VideoLocalizationScene.ExerciseTitle);\n };\n\n return (\n <>\n \n props.setOpen(false)}\n >\n \"close\"/\n \n { !playing &&\n \n \"close\"/\n \n }\n \n
      \n \n );\n};\n\nconst MinuteScreen = (props: any) => {\n const {t} = useTranslation();\n const minutes = 1;\n const exercises = 2;\n\n useEffect(() => {\n setTimeout(() => {\n props.setScene(VideoLocalizationScene.ExerciseTitle);\n }, 5000);\n }, []);\n\n function minutesString(): string {\n return minutes > 1 ? t(\"general.text.minutes\") : t(\"general.text.minute\");\n }\n\n function exercisesString(): string {\n return exercises > 1 ? t(\"video.stats.label.exercises\") : t(\"video.stats.label.exercise\");\n }\n\n return (\n <>\n
      \n
      \n
      \n
      \n props.setOpen(false)}\n >\n \"close\"\n \n
      \n {minutes}\n

      {minutesString()}

      \n
      \n
      \n
      \n
      \n {exercises}\n

      {exercisesString()}

      \n
      \n
      \n
      \n
      \n
      \n \n );\n};\n\nconst ExerciseScreen = (props: any) => {\n const { t } = useTranslation();\n\n useEffect(() => {\n setTimeout(() => {\n props.setScene(VideoLocalizationScene.ExerciseDemo);\n }, 5000);\n }, []);\n\n function screenTitle(): string {\n return t(\"video.message.exercise\", { index: props.exerciseIndex + 1 });\n }\n\n return (\n <>\n
      \n
      \n \n ​\n \n props.setOpen(false)}\n >\n \"close\"\n \n
      \n
      \n

      {screenTitle()}

      \n
      \n
      \n
      \n
      \n \n );\n};\n\nconst DemoVideo = (props: any) => {\n const { videoRef, audioRef, playing, handlePlayClick, handlePlay } = useVideoPlayer();\n const { t } = useTranslation();\n const videoUrl = props.videoExercise.videoExerciseVideoExerciseItems[props.exerciseIndex]\n .videoExerciseItem.demoVideoUrl;\n const audioUrl = props.videoExercise.videoExerciseVideoExerciseItems[props.exerciseIndex]\n .videoExerciseItem.localizations[0].audioUrl;\n\n const onVideoEnded = () => {\n props.setScene(VideoLocalizationScene.ExerciseStart);\n };\n\n return (\n <>\n
      \n
      \n {t(\"video.label.demonstration\")}\n
      \n props.setOpen(false)}\n >\n \"close\"\n \n\n { !playing &&\n \n \"close\"/\n \n }\n\n \n \n
      \n \n );\n};\n\nconst DoItTogetherScreen = (props: any) => {\n const { t } = useTranslation();\n\n useEffect(() => {\n setTimeout(() => {\n props.setScene(VideoLocalizationScene.Exercise);\n }, 5000);\n }, []);\n\n return (\n <>\n
      \n
      \n \n ​\n \n props.setOpen(false)}\n >\n \"close\"\n \n
      \n
      \n

      {t(\"video.message.do_together\")}

      \n
      \n
      \n
      \n
      \n \n );\n};\n\nconst MainVideo = (props: any) => {\n const { videoRef, audioRef, playing, handlePlayClick, handlePlay } = useVideoPlayer()\n const isLastExercise = props.exerciseIndex === (props.videoExercise.videoExerciseVideoExerciseItems.length - 1);\n const audioUrl = \"https://storage.googleapis.com/vigoaudios/video_exercise_music.mp3\";\n const videoUrl = props.videoExercise.videoExerciseVideoExerciseItems[props.exerciseIndex]\n .videoExerciseItem.rawExerciseVideoUrl;\n\n function calcPercentWatched(): number {\n const video = document.getElementsByTagName(\"video\")[0];\n let totalPlayed = 0;\n for (let i = 0; i < video.played.length; i++) {\n totalPlayed += video.played.end(i) - video.played.start(i);\n }\n return video.duration ? totalPlayed / video.duration * 100 : 0;\n }\n\n const close = () => {\n if (isLastExercise) {\n props.message.percentWatched = calcPercentWatched();\n }\n props.setOpen(false);\n };\n\n const [currentTime, setCurrentTime] = useState(0);\n const [duration, setDuration] = useState(0);\n\n const onTimeUpdate = (event: any) => {\n if (event.currentTarget.currentTime) {\n setCurrentTime(event.currentTarget.currentTime);\n }\n };\n\n const onLoadedMetadata = (event: any) => {\n if (event.currentTarget.duration) {\n setDuration(event.currentTarget.duration);\n }\n };\n\n const onVideoEnded = () => {\n if (props.exerciseIndex < props.videoExercise.videoExerciseVideoExerciseItems.length - 1) {\n props.setExerciseIndex(props.exerciseIndex + 1);\n props.setScene(VideoLocalizationScene.ExerciseTitle);\n } else {\n props.setScene(VideoLocalizationScene.Final);\n }\n };\n\n return (\n <>\n
      \n \n \"close\"\n \n { !playing &&\n \n \"close\"/\n \n }\n
      \n \n );\n};\n\nconst YouDidItScreen = (props: any) => {\n const { t } = useTranslation();\n\n useEffect(() => {\n setTimeout(() => {\n close();\n }, 5000);\n }, []);\n\n const close = () => {\n props.message.percentWatched = 100;\n props.setOpen(false);\n };\n\n return (\n <>\n
      \n
      \n \n ​\n \n \n \"close\"\n \n
      \n
      \n

      {t(\"video.message.you_did_it\")}

      \n
      \n
      \n
      \n
      \n \n );\n};\n\nconst VideoLocalizationContainer = (props: any) => {\n const { user } = useAuth();\n const { t } = useTranslation();\n\n const videoExerciseData = useVideoExercise(props.message.videoExerciseId, user.localeId);\n const [videoExercise, setVideoExercise] = useState(null);\n\n const [scene, setScene] = useState(VideoLocalizationScene.Title);\n const [exerciseIndex, setExerciseIndex] = useState(0);\n\n const [error, setError] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n if (videoExerciseData.error) {\n setErrorMessage(`${videoExerciseData.error}`);\n setError(true)\n } else if (videoExerciseData.data && !videoExercise) {\n setVideoExercise(videoExerciseData.data);\n }\n }, [videoExerciseData.data, videoExerciseData.error]);\n\n return (\n <>\n \n\n props.setOpen(false)}\n >\n \"close\"\n \n {videoExercise && (\n <>\n {scene === VideoLocalizationScene.Title && (\n \n )}\n {scene === VideoLocalizationScene.Intro && (\n \n )}\n {scene === VideoLocalizationScene.Stats && (\n \n )}\n {scene === VideoLocalizationScene.ExerciseTitle && (\n \n )}\n {scene === VideoLocalizationScene.ExerciseDemo && (\n \n )}\n {scene === VideoLocalizationScene.ExerciseStart && (\n \n )}\n {scene === VideoLocalizationScene.Exercise && (\n \n )}\n {scene === VideoLocalizationScene.Final && (\n \n )}\n \n )}\n \n );\n};\n\nconst VideoLocalization = (props: any) => {\n const cancelButtonRef = useRef(null);\n return (\n
      \n
      \n \n props.setOpen(false)}\n >\n
      \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
      \n \n
      \n \n
      \n \n
      \n
      \n
      \n );\n};\n\nexport default VideoLocalization;\n","import VideoExercise from \"../../types/models/video-exercise\";\nimport AbstractService from \"../abstract/abstract.service\";\n\nclass VideoExerciseService extends AbstractService {\n API_SEGMENT = \"video-exercises\";\n\n async getVideoExercise(id: number, localeId: string) {\n const config = { headers: { 'Accept-Language': localeId } };\n const result = await this.axios.get(`${this.API_SEGMENT}/${id}`, config);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n}\n\nexport default new VideoExerciseService();\n","import { useQuery } from \"react-query\";\nimport VideoExerciseService from \"../../services/video-exercises/video-exercises.service\";\n\nconst useVideoExercise = (id: number, localeId: string) => {\n return useQuery([\"videoExercise\", id], () => VideoExerciseService.getVideoExercise(id, localeId), {\n staleTime: 30000,\n });\n};\n\nexport default useVideoExercise;\n","import { useRef, useState } from \"react\";\n\nexport function useVideoPlayer() {\n const videoRef = useRef(null);\n const audioRef = useRef(null);\n const [playing, setPlaying] = useState(false);\n\n const handlePlayClick = () => {\n if(!videoRef?.current) return;\n\n videoRef.current.play();\n audioRef?.current?.play();\n }\n\n const handlePlay = () => {\n setPlaying(true);\n }\n\n return { videoRef, audioRef, playing, handlePlay, handlePlayClick };\n}\n","import AbstractService from \"../abstract/abstract.service\";\nimport WordGame from \"../../types/models/word-game\";\n\nclass WordGameService extends AbstractService {\n API_SEGMENT = \"word-games\";\n\n async fetch(letters: string[], localeId: string) {\n const config = { headers: { 'Accept-Language': localeId } };\n const path = `/random?limit=10&letters=${letters.join('&letters=')}`\n const result = await this.axios.get(`${this.API_SEGMENT}${path}`, config);\n if ((result.status >= 200) && (result.status < 300)) {\n return result.data;\n } else {\n throw new Error(`${result.statusText}: ${result.status}`)\n }\n }\n}\n\nexport default new WordGameService();\n","import { useQuery } from \"react-query\";\nimport WordGameService from \"../../services/word-game/word-game.service\";\n\nconst useWordGames = (letters: string[], localeId: string) => {\n return useQuery([\"wordGames\"], () => WordGameService.fetch(letters, localeId), {\n staleTime: 10000,\n });\n};\n\nexport default useWordGames;\n","import { Fragment, useEffect, useRef, useState } from \"react\";\nimport { Dialog, Transition } from \"@headlessui/react\";\nimport {CloseWhiteIcon, FinalIcon} from \"../../assets/icons\";\nimport VigoButton from \"../vigo-button/vigo-button.component\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport useWordGames from \"../../hooks/useWordGames/useWordGames\";\nimport WordGameResponse from \"../../types/models/word-game-response\";\nimport WordGame from \"../../types/models/word-game\";\nimport { useTranslation } from \"react-i18next\";\nimport {ErrorModal} from \"../vigo-modals\";\n\nconst QuestionComponent = (props: any) => {\n const { user } = useAuth();\n const wordGames = useWordGames(props.message.speechGame, user.localeId);\n\n const [data, setData] = useState([]);\n const [index, setIndex] = useState(-1);\n const [checkedData, setCheckedData] = useState([]);\n\n const [error, setError] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n if (wordGames.data && wordGames.data.length) {\n setData(wordGames.data);\n setIndex(0);\n } else if (wordGames.error) {\n setErrorMessage(`${wordGames.error}`);\n setError(true)\n }\n }, [wordGames.data, wordGames.error]);\n\n useEffect(() => {\n setCheckedData([]);\n }, [index]);\n\n const playAudioResponse = (isCorrect: boolean) => {\n const scr = isCorrect\n ? \"https://storage.googleapis.com/vigoaudios/wordgame_correct.mp3\"\n : \"https://storage.googleapis.com/vigoaudios/wordgame_incorrect.mp3\";\n const audio = new Audio(scr);\n audio.play();\n };\n\n const resetQuestions = () => {\n wordGames.refetch();\n setIndex(-1);\n };\n\n const checkResponse = (r: WordGameResponse) => {\n if (!checkedData.includes(r) && !checkedData.find((x) => x.isCorrect)) {\n playAudioResponse(r.isCorrect);\n setCheckedData([...checkedData, r]);\n if (r.isCorrect) {\n setTimeout(() => {\n setIndex(index + 1);\n }, 3000);\n }\n }\n };\n\n return index < 0 ? (\n <>\n \n\n props.setOpen(false)}\n >\n \"close\"\n \n \n ) : index < data.length ? (\n
      \n \n
      \n

      \n {data[index].description}\n

      \n
      \n
      \n {data[index].responses.map((r: WordGameResponse, index) => (\n checkResponse(r)}\n >\n {r.title}\n \n ))}\n
      \n
      \n ) : (\n \n );\n};\n\nconst FinalComponent = (props: any) => {\n const { t } = useTranslation();\n const audioSrc = \"https://storage.googleapis.com/vigoaudios/wordgame_gameover.mp3\";\n\n return (\n <>\n
      \n )}\n {!expandImage && (\n setExpandImage(!expandImage)}\n className=\"relative block w-full rounded-t-2xl overflow-hidden\"\n >\n
      \n \n
      \n
      \n \"Expand\"\n
      \n \n )}\n \n ) : (\n <>\n \n
      \n \"imageas\"\n
      \n \n \n )}\n \n );\n};\n\nexport default MessageImage;\n","import { VideoPlayIcon } from \"../../assets/icons\";\n\nconst MessageVideo = (props: any) => {\n return (\n <>\n {\n props.handleVideoOpen(props.message);\n }}\n className=\"relative block w-full rounded-t-2xl overflow-hidden\"\n >\n
      \n \n
      \n\n
      \n \"Video\n
      \n \n \n );\n};\n\nexport default MessageVideo;\n","import { VideoPlayIcon } from \"../../assets/icons\";\n\nconst MessageSpeech = (props: any) => {\n return (\n {\n props.handleSpeechGameOpen(props.message);\n }}\n className=\"relative block w-full rounded-t-2xl overflow-hidden\"\n >\n
      \n \"imageas\"\n
      \n\n
      \n \"Video\n
      \n \n );\n};\n\nexport default MessageSpeech;\n","import { useState } from \"react\";\nimport Answer from \"../../types/models/answer\";\n\nconst AnswerExgrade = (props: any) => {\n const initialIndex = props.answer.exgrade.findIndex((x: Answer) => x.isSelected);\n const [selectedIndex, setSelectedIndex] = useState(initialIndex);\n\n function marginLeft(index: number) {\n switch (index) {\n case 0:\n return 10;\n case 1:\n return 120;\n case 2:\n return 195;\n case 3:\n return 292;\n case 4:\n return 400;\n case 5:\n return 510;\n default:\n return 0;\n }\n }\n\n if (props.isOutgoing) {\n return (\n <>\n
        \n {props.answer.exgrade.map((item: Answer, index: any) => {\n return (\n selectedIndex\n ? \"h-20 w-24 mr-1 text-6xl py-2 px-1 bg-sky text-center text-active cursor-default\"\n : \"h-20 w-24 mr-1 text-6xl py-2 px-1 bg-active text-white text-center cursor-default\"\n }\n >\n {item.statisticsValue}\n \n );\n })}\n
      \n
      \n {props.answer.exgrade.map((_item: any, index: any) => {\n return (\n \n {selectedIndex === index && props.answer.exgrade[selectedIndex].phrase}\n

      \n );\n })}\n
      \n \n );\n } else {\n return (\n <>\n
        \n {props.answer.exgrade.map((item: Answer, index: any) => {\n return (\n {\n setSelectedIndex(index);\n }}\n >\n {item.statisticsValue}\n \n );\n })}\n
      \n
      \n {props.answer.exgrade.map((_item: any, index: any) => {\n return (\n \n {selectedIndex === index && props.answer.exgrade[selectedIndex].phrase}\n

      \n );\n })}\n
      \n {selectedIndex > -1 && (\n
      \n {\n props.answer.exgrade[selectedIndex].isSelected = true;\n props.handleAnswer(props.answer.exgrade[selectedIndex]);\n props.handleOutgoing(props.answer);\n }}\n >\n \n {props.answer.phrase}\n \n \n
      \n )}\n \n );\n }\n};\n\nexport default AnswerExgrade;\n","import { useQuery } from \"react-query\";\nimport UserService from \"../../services/user/user.service\";\n\nconst useDailyPlan = (userId: number, localeId: string) => {\n return useQuery([\"dailyPlan\", userId, localeId], () => UserService.fetchDailyPlan(userId, localeId), {\n staleTime: 30000,\n });\n};\n\nexport default useDailyPlan;\n","import AbstractService from \"../abstract/abstract.service\";\nimport DailyPlanModuleStatus from \"../../types/enums/daily-plan-module-status\";\n\nclass DailyPlanModuleService extends AbstractService {\n API_SEGMENT = \"user-daily-plan-modules\";\n\n async putStatus(id: number, status: DailyPlanModuleStatus) {\n const url = `${this.API_SEGMENT}/${id}/status/${status}`;\n return this.axios.put(url);\n }\n\n async putFeedback(id: number, feedback: number) {\n const params = {\n feedback: feedback,\n };\n const url = `${this.API_SEGMENT}/${id}`;\n return this.axios.put(url, params);\n }\n}\n\nexport default new DailyPlanModuleService();\n","import User from \"./user\";\n\nclass Inventories {\n add?: string;\n remove?: string;\n}\n\nexport function calculateInventories(user: User, inventories: Inventories): string {\n const existing = user.inventories?.split(',') ?? [];\n const toAdd = inventories.add?.split(',') ?? [];\n const toRemove = inventories.remove?.split(',') ?? [];\n const added = new Set(existing.concat(toAdd));\n const removed = Array.from(added).filter(x => !toRemove.includes(x));\n return removed.join(',');\n}\n\nexport default Inventories;\n","enum UniversalModuleType {\n Shame = \"shame\",\n Exgrade = \"exgrade\",\n Loginback = \"loginback\",\n TooEasy = \"phys-too-easy\",\n TooHard = \"phys-too-hard\",\n}\nexport default UniversalModuleType;","import { useEffect, useRef } from 'react'\n\nfunction useInterval(callback: () => void, delay: number | null) {\n const savedCallback = useRef(callback)\n\n // Remember the latest callback if it changes.\n useEffect(() => {\n savedCallback.current = callback\n }, [callback])\n\n // Set up the interval.\n useEffect(() => {\n // Don't schedule if no delay is specified.\n // Note: 0 is a valid value for delay.\n if (!delay && delay !== 0) {\n return\n }\n\n const id = setInterval(() => savedCallback.current(), delay)\n\n return () => clearInterval(id)\n }, [delay])\n}\n\nexport default useInterval\n","import { Fragment, useRef } from \"react\";\nimport {CloseWhiteIcon, VideoPlayIcon} from \"../../assets/icons\";\nimport { Dialog, Transition } from \"@headlessui/react\";\nimport {useVideoPlayer} from \"../../hooks/useVideoPlayer/useVideoPlayer\";\n\nconst VideoContainer = (props: any) => {\n const { playing, videoRef, handlePlay, handlePlayClick } = useVideoPlayer();\n\n function calcPercentWatched(): number {\n const video = document.getElementsByTagName(\"video\")[0];\n let totalPlayed = 0;\n for (let i = 0; i < video.played.length; i++) {\n totalPlayed += video.played.end(i) - video.played.start(i);\n }\n return video.duration ? totalPlayed / video.duration * 100 : 0;\n }\n\n const close = () => {\n props.message.percentWatched = calcPercentWatched()\n props.setOpen(false);\n };\n\n return (\n <>\n
      \n \n \n \"close\"\n \n { !playing &&\n \n \"close\"/\n \n }\n
      \n \n );\n};\n\nconst Video = (props: any) => {\n const cancelButtonRef = useRef(null);\n return (\n
      \n
      \n \n props.setOpen(false)}\n >\n
      \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n ​\n \n \n
      \n \n
      \n \n
      \n \n
      \n
      \n
      \n );\n};\n\nexport default Video;\n","import {useEffect, useState} from \"react\";\nimport {Logo, MinusIcon, PlusIcon} from \"../../assets/icons\";\nimport VideoLocalization from \"../../components/video-localization/video-localization.component\";\nimport SpeechGame from \"../../components/speech-game/speech-game.component\";\nimport Message, {fillLackingValuesIfNeeded} from \"../../types/models/message\";\nimport Answer from \"../../types/models/answer\";\nimport AnswerMood from \"../../components/answer-mood/answer-mood.component\";\nimport AnswerQuiz from \"../../components/answer-quiz/answer-quiz.component\";\nimport AnswerPhrase from \"../../components/answer-phrase/answer-phrase.component\";\nimport Module from \"../../types/models/module\";\nimport Intent from \"../../types/models/intent\";\nimport MessageText from \"../../components/message-text/message-text.component\";\nimport MessageImage from \"../../components/message-image/message-image.component\";\nimport MessageVideo from \"../../components/message-video/message-video.component\";\nimport MessageSpeech from \"../../components/message-speech/message-speech.component\";\nimport AnswerExgrade from \"../../components/answer-exgrade/answer-exgrade.component\";\nimport Layout from \"../../components/layout/layout.component\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport useDailyPlan from \"../../hooks/useDailyPlan/useDailyPlan\";\nimport DailyPlanData from \"../../types/models/daily-plan-data\";\nimport DailyPlanService from \"../../services/daily-plan/daily-plan.service\";\nimport DailyPlanModuleService from \"../../services/daily-plan-module/daily-plan-module.service\";\nimport UserService from \"../../services/user/user.service\";\nimport UserDataService from \"../../services/user-data/user-data.service\";\nimport {calculateInventories} from \"../../types/models/inventories\";\nimport DailyPlanModuleStatus from \"../../types/enums/daily-plan-module-status\";\nimport LocalStorageService from \"../../services/local-storage/local-storage.service\";\nimport UniversalModuleType from \"../../types/enums/universal-module-type\";\nimport UserConvoSpeed from \"../../types/enums/user-convo-speed\";\nimport useInterval from \"../../hooks/useInterval/useInterval\";\nimport Video from \"../../components/video/video.component\";\n\n// function Fader(props: any) {\n// const [opacity, setOpacity] = useState(0);\n// useEffect(() => {\n// setTimeout(() => {\n// setOpacity(1);\n// }, props.delay);\n// }, [props.delay, props.messages]);\n// return (\n// \n// {props.children}\n//
      \n// );\n// }\n\nexport const HomePage = () => {\n const { user } = useAuth();\n const dailyPlan = useDailyPlan(user?.id, user?.localeId);\n const [dailyPlanData, setDailyPlanData] = useState(null);\n\n useEffect(() => {\n if (dailyPlanData) {\n if (!dailyPlanData.dailyPlan.isStarted) {\n const dailyPlanModule = dailyPlanData.dailyPlan.userDailyPlanModules[0];\n if (dailyPlanModule) {\n setMessages([]);\n LocalStorageService.messages = [];\n startModule(dailyPlanModule.module, dailyPlanModule.id);\n }\n } else if (!messages.length && !intent) {\n const dailyPlanModule = dailyPlanData.dailyPlan.nextDailyPlanModule();\n if (dailyPlanModule) {\n startUniversalModule(UniversalModuleType.Loginback);\n }\n }\n }\n }, [dailyPlanData]);\n\n useEffect(() => {\n if (dailyPlan.data) {\n setDailyPlanData(dailyPlan.data);\n }\n }, [dailyPlan.error, dailyPlan.data]);\n\n const [openSpeechGame, setOpenSpeechGame] = useState(false);\n const [speechGameMessage, setSpeechGameMessage] = useState(null);\n\n const [openVideoLocalization, setOpenVideoLocalization] = useState(false);\n const [videoLocalizationMessage, setVideoLocalizationMessage] = useState(null);\n\n const [openVideo, setOpenVideo] = useState(false);\n const [videoMessage, setVideoMessage] = useState(null);\n\n useEffect(() => {\n if (!openVideoLocalization && videoLocalizationMessage && intent?.isPaused) {\n startShameOrExgrade(videoLocalizationMessage)\n }\n }, [openVideoLocalization]);\n\n useEffect(() => {\n if (intent?.isPaused) {\n if (!openVideo && videoMessage) {\n if (videoMessage.isExercise) {\n startShameOrExgrade(videoMessage)\n } else if (intent) {\n const newIntent = intent;\n newIntent.isPaused = false;\n setIntent(newIntent);\n LocalStorageService.intent = newIntent;\n setIsTicking(true);\n }\n }\n }\n }, [openVideo]);\n\n useEffect(() => {\n if (!openVideo && videoMessage && intent?.isPaused) {\n const newIntent = intent;\n newIntent.isPaused = false;\n setIntent(newIntent);\n LocalStorageService.intent = newIntent;\n setIsTicking(true);\n }\n }, [openSpeechGame]);\n\n function isExercising(): boolean {\n return openSpeechGame || openVideoLocalization || (openVideo && videoMessage?.isExercise);\n }\n\n const [textSize, setTextSize] = useState(1.4);\n\n const [dailyPlanModuleId, setDailyPlanModuleId] = useState(() => {\n return LocalStorageService.dailyPlanModuleId;\n });\n\n const [module, setModule] = useState(() => {\n return LocalStorageService.module;\n });\n\n const [intent, setIntent] = useState(() => {\n return LocalStorageService.intent;\n });\n\n const [messages, setMessages] = useState(() => {\n return LocalStorageService.messages;\n });\n\n function getAnswers() {\n const answers = intent?.transformedAnswers;\n if (answers && answers.length) {\n if (!intent.messages || !intent.messages.length) {\n return answers;\n }\n }\n return [];\n }\n\n const [firstScroll, setFirstScroll] = useState(false);\n\n useEffect(() => {\n if (messages.length) {\n setTimeout(() => {\n window.scrollTo({\n top: document.body.scrollHeight - window.innerHeight,\n behavior: firstScroll ? \"smooth\" : \"auto\",\n });\n setFirstScroll(true);\n }, firstScroll ? 200 : 0);\n }\n }, [messages]);\n\n useEffect(() => {\n setIsTicking(!!intent);\n }, [intent]);\n\n const handleAnswer = async (answer: Answer) => {\n if (user?.callRequestAvailable\n && answer.statisticsType === \"exgrade\"\n && (answer.statisticsValue === 1 || answer.statisticsValue === 6)) {\n switch (answer.statisticsValue) {\n case 1:\n startUniversalModule(UniversalModuleType.TooHard);\n break;\n case 6:\n startUniversalModule(UniversalModuleType.TooEasy);\n break;\n default: break;\n }\n } else {\n let newIntent = answer.nextIntentId ? module?.intentById(answer.nextIntentId) : null;\n if (!newIntent) {\n newIntent = intent;\n newIntent.answers = [];\n }\n setIntent(newIntent);\n LocalStorageService.intent = newIntent;\n }\n setIsTicking(true);\n\n if (answer.statisticsType\n && (answer.statisticsType === UniversalModuleType.TooEasy\n || answer.statisticsType === UniversalModuleType.TooHard)) {\n await UserService.postCallRequest(module.internalTitle);\n } else if (answer.statisticsValue && answer.statisticsType) {\n const userData = {\n title: answer.phrase,\n value: answer.statisticsValue,\n type: answer.statisticsType,\n }\n await UserDataService.createUserData(userData, user.id);\n\n if (answer.statisticsType === \"exgrade\" && dailyPlanModuleId) {\n await DailyPlanModuleService.putFeedback(dailyPlanModuleId, answer.statisticsValue);\n }\n }\n\n if (answer.inventories) {\n const inventories = calculateInventories(user, answer.inventories);\n await UserService.updateUser(user.id, { inventories: inventories });\n }\n };\n\n const sendStatsInterval = 15;\n useInterval(() => {\n if (dailyPlanData && dailyPlanData.dailyPlan) {\n DailyPlanService.sendTimeStats(dailyPlanData.dailyPlan.id, sendStatsInterval, isExercising());\n }\n },sendStatsInterval * 1000,\n )\n\n const [isTicking, setIsTicking] = useState(false);\n useInterval(() => {\n checkIntent()\n },isTicking ? tickInterval() : null,\n )\n\n const checkIntent = async () => {\n if (intent && !intent.isPaused) {\n if (intent.isStartIntent) {\n const newIntent = intent;\n newIntent.isStartIntent = false;\n setIntent(newIntent);\n LocalStorageService.intent = newIntent;\n await putStatusIfNeeded(dailyPlanModuleId, DailyPlanModuleStatus.InProgress);\n\n setIsTicking(true);\n } else if (intent.messages && intent.messages.length) {\n const newMessage = fillLackingValuesIfNeeded(intent.messages[0], module);\n const newMessages = [...messages, newMessage];\n\n const newIntent = intent;\n newIntent.isPaused = !!newMessage.videoUrl || !!newMessage.videoExerciseId || !!newMessage.speechGame;\n newIntent.messages = intent.messages.slice(1, intent.messages.length);\n\n setIntent(newIntent);\n LocalStorageService.intent = newIntent;\n\n setMessages(newMessages);\n LocalStorageService.messages = newMessages;\n\n setIsTicking(true);\n } else {\n if (!intent.answers || !intent.answers.length) {\n if (intent.nextIntentId) {\n const newIntent = module?.intentById(intent.nextIntentId);\n if (newIntent) {\n setIntent(newIntent);\n LocalStorageService.intent = newIntent;\n\n setIsTicking(true);\n }\n } else if (intent.isTerminating || intent.isExiting) {\n const status = intent.isTerminating ? DailyPlanModuleStatus.Completed : DailyPlanModuleStatus.Exited;\n const newIntent = intent;\n newIntent.isTerminating = false;\n newIntent.isExiting = false;\n\n setIntent(newIntent);\n LocalStorageService.intent = newIntent;\n\n await putStatusIfNeeded(dailyPlanModuleId, status);\n if (dailyPlanModuleId) {\n await UserService.postHistory(user.id, dailyPlanModuleId);\n }\n\n const next = dailyPlanData?.dailyPlan.nextDailyPlanModule(dailyPlanModuleId);\n if (next) {\n await startModule(next.module, next.id);\n }\n }\n }\n }\n }\n };\n\n function tickInterval(): number {\n const multiplier = (messages && messages.length && messages[messages.length - 1].image) ? 2 : 1;\n switch (user.convoSpeed) {\n case UserConvoSpeed.Slow: return 6000 * multiplier;\n case UserConvoSpeed.Medium: return 3000 * multiplier;\n case UserConvoSpeed.Fast: return 1500 * multiplier;\n }\n }\n\n const putStatusIfNeeded = async (dailyPlanModuleId: number, status: DailyPlanModuleStatus) => {\n const dailyPlanModule = dailyPlanData.dailyPlan.userDailyPlanModules.find(x => x.id === dailyPlanModuleId);\n if (dailyPlanModule && dailyPlanModule.canChangeStatusTo(status)) {\n await DailyPlanModuleService.putStatus(dailyPlanModuleId, status);\n await dailyPlan.refetch();\n }\n };\n\n const startShameOrExgrade = (message: Message) => {\n const percentage = message.percentage ?? 80;\n startUniversalModule(\n (message.percentWatched >= percentage) ? UniversalModuleType.Exgrade : UniversalModuleType.Shame\n );\n };\n\n const startUniversalModule = (type: UniversalModuleType) => {\n const universalModule = dailyPlanData.universalModule(type);\n if (universalModule) {\n startModule(universalModule, dailyPlanModuleId);\n }\n };\n\n const startModule = async (module: Module, dpModuleId?: number) => {\n setDailyPlanModuleId(dpModuleId);\n LocalStorageService.dailyPlanModuleId = dpModuleId;\n\n setModule(module);\n LocalStorageService.module = module;\n\n const intent = module.startIntent;\n setIntent(intent);\n LocalStorageService.intent = intent;\n\n setIsTicking(true);\n };\n\n const increaseTextSize = () => {\n if (textSize < 1.8) {\n setTextSize(textSize + 0.2);\n }\n };\n const decreaseTextSize = () => {\n if (textSize > 0.8) {\n setTextSize(textSize - 0.2);\n }\n };\n const TextSizePercent = () => {\n const textSizePercent = Math.floor(textSize * 100);\n if (textSizePercent === 140) {\n return \"100%\";\n } else if (textSizePercent === 160) {\n return \"110%\";\n } else if (textSizePercent === 179) {\n return \"120%\";\n } else if (textSizePercent === 199) {\n return \"130%\";\n } else if (textSizePercent === 120) {\n return \"90%\";\n } else if (textSizePercent === 100) {\n return \"80%\";\n } else if (textSizePercent === 80) {\n return \"70%\";\n }\n };\n\n const handleOutgoing = (answer: Answer) => {\n const outgoingMessage = { answer: answer };\n const newMessages = [...messages, outgoingMessage];\n setMessages(newMessages);\n LocalStorageService.messages = newMessages;\n };\n\n const handleVideoOpen = (message: Message) => {\n setVideoMessage(message);\n setOpenVideo(true);\n };\n\n const handleVideoLocalizationOpen = (message: Message) => {\n setVideoLocalizationMessage(message);\n setOpenVideoLocalization(true);\n };\n\n const handleSpeechGameOpen = (message: Message) => {\n setSpeechGameMessage(message);\n setOpenSpeechGame(true);\n };\n\n function AnswerComponent(answer: Answer, isOutgoing: boolean) {\n if (answer.quiz) {\n return (\n \n );\n } else if (answer.exgrade && answer.phrase) {\n return (\n \n );\n } else if (answer.mood) {\n return (\n \n );\n } else if (answer.phrase) {\n return (\n \n );\n }\n }\n\n function MessageComponent(message: any) {\n if (message.answer) {\n return AnswerComponent(message.answer, true);\n } else if (message.text) {\n return ;\n } else if (message.image) {\n return ;\n } else if (message.videoExerciseId) {\n return ;\n } else if (message.videoUrl) {\n return ;\n } else if (message.speechGame && message.speechGame.length) {\n return ;\n }\n }\n\n return (\n \n \n\n \n\n \n
      \n \"Logo\"\n
      \n
      \n {messages.map((item: any, index: any) => {\n return
      0 && \"py-2\"}>{MessageComponent(item)}
      ;\n })}\n {getAnswers().map((item: any, index: any) => {\n return (\n
      0 && \"py-2\"}>\n {AnswerComponent(item, false)}\n
      \n );\n })}\n
      \n {intent?.isStartIntent ? (\n
      \n
      \n
      \n
      \n
      \n ) : null}\n
      \n
      \n
      \n
      \n
      \n
      \n

      {TextSizePercent()}

      \n {/* make current text size 100% and incremant and decremant by 10% */}\n
      \n \"plus\"\n
      \n
      \n \"minus\"\n
      \n
      \n
      \n
      \n );\n};\n\nexport default HomePage;\n","import { LeftArrowLongIcon, RightArrowLongIcon } from \"../../assets/icons\";\nimport { useState } from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst Card = (props: any) => {\n const image = props.image;\n const title = props.title;\n const index = props.index;\n const isNew = props.new;\n console.log(index);\n return (\n
      \n \n \"\"\n {isNew && (\n

      \n Jauns\n

      \n )}\n

      {title}

      \n
      \n
      \n );\n};\n\nconst AdviceComponent = (props: any) => {\n const data = props.data;\n\n const [dataIndex, setDataIndex] = useState(0);\n const handleLeftArrowClick = () => {\n if (dataIndex === 0) return;\n setDataIndex(dataIndex - 3);\n };\n const handleRightArrowClick = () => {\n if (dataIndex >= data.length - 3) return;\n setDataIndex(dataIndex + 3);\n };\n\n return (\n
      \n
      \n
      \n
      \n

      {props.title}

      \n
      \n
      \n {\n // hide if dataIndex === 0\n dataIndex !== 0 && (\n \n \"Left\n \n )\n }\n\n Nākamie\n {\n // hide if dataIndex === data.length - 3\n dataIndex !== data.length - 3 && (\n \n \n \n )\n }\n
      \n
      \n
      \n
      \n {data.slice(dataIndex, dataIndex + 3).map((item: any, index: number) => (\n \n ))}\n
      \n
      \n
      \n
      \n );\n};\n\nexport default AdviceComponent;\n\nAdviceComponent.propTypes = {\n data: PropTypes.array.isRequired,\n title: PropTypes.string.isRequired,\n};\n","import Advice from \"../../components/advice/advice.component\";\nimport Layout from \"../../components/layout/layout.component\";\n\nconst MeditationData = [\n {\n id: 1,\n title: \"Meditation 1\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: true,\n },\n {\n id: 2,\n title: \"Meditation 2\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 3,\n title: \"Meditation 3\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 4,\n title: \"Meditation 4\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 5,\n title: \"Meditation 5\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 6,\n title: \"Meditation 6\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 7,\n title: \"Meditation 7\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 8,\n title: \"Meditation 8\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 9,\n title: \"Meditation 9\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n {\n id: 10,\n title: \"Meditation 10\",\n image: \"https://storage.googleapis.com/vigothumbnails/speech-games.png\",\n new: false,\n },\n];\n\nconst AdvicePage = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default AdvicePage;\n","import {Fragment, useEffect, useRef, useState} from \"react\";\nimport {Dialog, Transition} from \"@headlessui/react\";\nimport {JitsiMeeting} from \"@jitsi/react-sdk\";\nimport useAuth from \"../../hooks/useAuth/useAuth\";\nimport * as jose from \"jose\";\nimport {IJitsiMeetingProps} from \"@jitsi/react-sdk/lib/types\";\n\nasync function generateJwt(options: IJitsiMeetingProps): Promise {\n try {\n const secret = new TextEncoder().encode(process.env.REACT_APP_JITSI_SECRET);\n const alg = \"HS256\";\n\n const jwt = await new jose.SignJWT(options as any)\n .setProtectedHeader({ alg })\n .setSubject(process.env.REACT_APP_JITSI_DOMAIN)\n .setIssuer(process.env.REACT_APP_JITSI_APP_ID)\n .setProtectedHeader({ typ: \"JWT\", alg: \"HS256\" })\n .setAudience(process.env.REACT_APP_JITSI_APP_ID)\n .setExpirationTime(15000069230)\n .setNotBefore(1500006923)\n .sign(secret);\n\n console.log(jwt);\n\n return jwt;\n } catch (e){\n\n }\n}\n\nexport const VideoCall = (props: { open: boolean, onClose: any }) => {\n const cancelButtonRef = useRef(null);\n const { user } = useAuth();\n const [jwt, setJwt] = useState(null);\n const [jitsiOptions, setJitsiOptions] = useState({\n domain: process.env.REACT_APP_JITSI_DOMAIN,\n roomName: user.id.toString(),\n configOverwrite: {\n startAudioOnly: false,\n startWithAudioMuted: false,\n startWithVideoMuted: false,\n hideConferenceSubject: true,\n disableModeratorIndicator: true,\n prejoinPageEnabled: false,\n remoteVideoMenu: {\n disabled: true,\n disableKick: true,\n disableGrantModerator: true,\n disablePrivateChat: true,\n },\n securityUi: {\n hideLobbyButton: true,\n },\n toolbarButtons: [\"camera\", \"hangup\", \"microphone\"],\n notifications: [],\n },\n interfaceConfigOverwrite: {\n DISABLE_JOIN_LEAVE_NOTIFICATIONS: true\n },\n userInfo: {\n displayName: user.first,\n email: user.email\n },\n getIFrameRef: (iframeRef: any) => { iframeRef.style.height = '100vh'; },\n onReadyToClose: () => props.onClose(),\n jwt: undefined\n });\n const jwtOptions: any = {\n context: {\n user: {\n email: user.email,\n name: user.first,\n },\n },\n room: user.id,\n };\n\n useEffect(() => {\n async function getToken() {\n const jwt = await generateJwt(jwtOptions);\n setJwt(jwt);\n setJitsiOptions({ ...jitsiOptions, jwt })\n }\n getToken().then();\n }, []);\n\n\n if(!props.open || !jwt) return <>\n\n console.log(jitsiOptions);\n\n return (\n
      \n
      \n \n props.onClose(false)}\n >\n
      \n \n \n \n {/* trick the browser into centering the modal contents. */}\n \n \n
      \n \n
      \n \n
      \n \n
      \n
      \n
      \n )\n}","import { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport {CheckIcon, VideoIcon} from \"../../../../assets/icons\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport userService from \"../../../../services/user/user.service\";\nimport VigoButton from \"../../../../components/vigo-button/vigo-button.component\";\nimport useDailyPlan from \"../../../../hooks/useDailyPlan/useDailyPlan\";\nimport { SuccessModal, ErrorModal } from \"../../../../components/vigo-modals/\";\nimport LocalStorageService from \"../../../../services/local-storage/local-storage.service\";\nimport DailyPlanModule from \"../../../../types/models/daily-plan-module\";\nimport {VideoCall} from \"../../../../components/video-call/video-call.component\";\n\nfunction PlanForToday() {\n const { user, refreshState } = useAuth();\n const { t } = useTranslation();\n const dailyPlan = useDailyPlan(user.id, user.localeId);\n const [dataItems, setDataItems] = useState([]);\n const [callRequestStatus, setCallRequestStatus] = useState(false);\n const [videoCall, setVideoCall] = useState(false);\n\n const [callRequestSuccessModal, setCallRequestSuccessModal] = useState(false);\n const [callRequestErrorModal, setCallRequestErrorModal] = useState(false);\n const [callRequestErrorMessage, setCallRequestErrorMessage] = useState('');\n\n const [errorModal, setErrorModal] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n const handleCallRequest = async () => {\n setCallRequestStatus(false);\n await userService.postCallRequest()\n .then(function (response) {\n setCallRequestSuccessModal(true);\n })\n .catch(function (error) {\n setCallRequestErrorMessage(`${error}`);\n setCallRequestErrorModal(true);\n });\n\n await refreshState();\n };\n\n const handleVideoCallClick = async () => {\n setVideoCall(true)\n }\n\n const handleVideoCallClose = async () => {\n setVideoCall(false)\n }\n\n const handleDataItemClick = async (dailyPlanModule: DailyPlanModule) => {\n if (dailyPlanModule && dailyPlanModule.module) {\n LocalStorageService.dailyPlanModuleId = dailyPlanModule.id;\n LocalStorageService.module = dailyPlanModule.module;\n LocalStorageService.intent = dailyPlanModule.module.startIntent;\n window.location.href = \"/home\";\n }\n };\n\n useEffect(() => {\n setCallRequestStatus(user.callRequestAvailable);\n }, [user]);\n\n useEffect(() => {\n if (dailyPlan.error) {\n setErrorMessage(`${dailyPlan.error}`);\n setErrorModal(true);\n } else {\n if (dailyPlan.data && dailyPlan.data.dailyPlan && dailyPlan.data.dailyPlan.userDailyPlanModules) {\n setDataItems(dailyPlan.data.dailyPlan.userDailyPlanModules.filter((x) => x.module.showInDailyPlan));\n } else {\n setDataItems([]);\n }\n }\n }, [dailyPlan.data, dailyPlan.error]);\n\n function numOfExercises(): string {\n return t(\"plan.text.title\", {\n number: dataItems.length,\n text: dataItems.length === 1 ? t(\"plan.text.task\") : t(\"plan.text.tasks\"),\n });\n }\n\n function doctorFullName(): string {\n if (user.doctor) {\n return `${user.doctor.first} ${user.doctor.last}`;\n } else {\n return \"\";\n }\n }\n\n return (\n <>\n {/* Videos Section */}\n \n \n \n
      \n
      \n
      \n

      {numOfExercises()}

      \n
      \n
      \n {dataItems.map((x, i) =>\n x.isCompleted ? (\n \n ) : (\n \n ),\n )}\n
      \n
      \n
        \n {dataItems.map((item, index) => (\n
      • handleDataItemClick(item)} key={index} className=\"relative cursor-pointer\">\n
        \n \n
        \n \n {item.isCompleted ? (\n \n ) : null}\n
        \n
        \n
        \n

        \n {item.module.localizedTitle}\n

        \n
      • \n ))}\n
      \n
      \n {/* CTA SECTOION */}\n
      \n
      \n
      \n \n
      \n
      \n

      {t(\"call.doctor.title\")}

      \n
      \n

      {doctorFullName()}

      \n
      \n
      \n \n {t(\"call.doctor.button\")}\n \n \n \n \n \n
      \n
      \n
      \n
      \n \n );\n}\n\nexport default PlanForToday;\n","import { useQuery } from \"react-query\";\nimport UserService from \"../../services/user/user.service\";\n\nconst useDailyPlanHistory = (key: string, localeId: string) => {\n return useQuery([key], () => UserService.fetchDailyPlanHistory(key, localeId), {\n staleTime: 5000,\n });\n};\n\nexport default useDailyPlanHistory;\n","import { useTranslation } from \"react-i18next\";\nimport { StarTransparentIcon, StarIcon } from \"../../../../assets/icons\";\nimport { useEffect, useState } from \"react\";\nimport useDailyPlanHistory from \"../../../../hooks/useDailyPlanHistory/useDailyPlanHistory\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport DailyPlanHistoryItem from \"../../../../types/models/daily-plan-history-item\";\nimport moment from \"moment\";\nimport LocalStorageService from \"../../../../services/local-storage/local-storage.service\";\nimport UserService from \"../../../../services/user/user.service\";\n\nfunction History() {\n const { user } = useAuth();\n const { t } = useTranslation();\n const { status, data, error, refetch } = useDailyPlanHistory(\"history\", user.localeId);\n const [dataItems, setDataItems] = useState([]);\n\n const handleDataItemClick = async (item: DailyPlanHistoryItem) => {\n if (item.userDailyPlanModule && item.userDailyPlanModule.module) {\n LocalStorageService.dailyPlanModuleId = item.userDailyPlanModule.id;\n LocalStorageService.module = item.userDailyPlanModule.module;\n LocalStorageService.intent = item.userDailyPlanModule.module.startIntent;\n window.location.href = \"/home\";\n }\n };\n\n const toggleFavorites = async (item: DailyPlanHistoryItem) => {\n await UserService.toggleFavorites(user.id, item.userDailyPlanModule.id, !item.userDailyPlanModule.isFavorite);\n await refetch();\n };\n\n useEffect(() => {\n if (data && data.length) {\n setDataItems(data);\n }\n }, [status, data]);\n\n function daysSince(item: DailyPlanHistoryItem): number {\n if (user.strokeDate) {\n const strokeDate = moment(user.strokeDate);\n const itemDate = moment(item.createdAt);\n return itemDate.diff(strokeDate, 'day');\n }\n return 0;\n }\n\n return (\n
        \n {dataItems.map((item) => (\n
      • handleDataItemClick(item)} key={item.id} className=\"relative mb-12\">\n {\n <>\n

        \n {t(\"history.label.days\", { value: daysSince(item) })}\n

        \n
        \n \n
        \n \n toggleFavorites(item)}\n src={item.userDailyPlanModule.isFavorite ? StarIcon : StarTransparentIcon}\n alt=\"Check Icon\"\n />\n
        \n
        \n

        \n {item.userDailyPlanModule.module.localizedTitle}\n

        \n
        \n \n }\n
      • \n ))}\n
      \n );\n}\n\nexport default History;\n","import { StarIcon } from \"../../../../assets/icons\";\nimport { useEffect, useState } from \"react\";\nimport useDailyPlanHistory from \"../../../../hooks/useDailyPlanHistory/useDailyPlanHistory\";\nimport useAuth from \"../../../../hooks/useAuth/useAuth\";\nimport LocalStorageService from \"../../../../services/local-storage/local-storage.service\";\nimport DailyPlanHistoryItem from \"../../../../types/models/daily-plan-history-item\";\nimport UserService from \"../../../../services/user/user.service\";\n\nfunction Favorites() {\n const { user } = useAuth();\n const { status, data, error, refetch } = useDailyPlanHistory(\"favorites\", user.localeId);\n const [dataItems, setDataItems] = useState([]);\n\n const handleDataItemClick = async (item: DailyPlanHistoryItem) => {\n if (item.userDailyPlanModule && item.userDailyPlanModule.module) {\n LocalStorageService.dailyPlanModuleId = item.userDailyPlanModule.id;\n LocalStorageService.module = item.userDailyPlanModule.module;\n LocalStorageService.intent = item.userDailyPlanModule.module.startIntent;\n window.location.href = \"/home\";\n }\n };\n\n const removeFromFavorites = async (item: DailyPlanHistoryItem) => {\n await UserService.toggleFavorites(user.id, item.userDailyPlanModule.id, false);\n await refetch();\n };\n\n useEffect(() => {\n if (data) {\n setDataItems(data);\n }\n }, [status, data]);\n\n return (\n
      \n
        \n {dataItems.map((item) => (\n
      • handleDataItemClick(item)} key={item.id} className=\"relative cursor-pointer\">\n {\n <>\n
        \n \n
        \n \n removeFromFavorites(item)}\n src={StarIcon}\n alt=\"Check Icon\"\n />\n
        \n
        \n
        \n

        \n {item.userDailyPlanModule.module.localizedTitle}\n

        \n \n }\n
      • \n ))}\n
      \n
      \n );\n}\n\nexport default Favorites;\n","import { FunctionComponent, useState } from \"react\";\nimport Layout from \"../../components/layout/layout.component\";\n\nimport { Tab } from \"@headlessui/react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport PlanForToday from \"./tabs/plan-for-today/plan-for-today.tab\";\nimport History from \"./tabs/history/history.tab\";\nimport Favorites from \"./tabs/favorites/favorites.tab\";\nimport classNames from \"classnames\";\n\nexport const Daily: FunctionComponent = () => {\n const { t } = useTranslation();\n\n let [categories] = useState({\n \"plan.segment.button\": [\n {\n id: 1,\n component: ,\n },\n ],\n \"favorites.segment.button\": [\n {\n id: 2,\n component: ,\n },\n ],\n \"history.segment.button\": [\n {\n id: 3,\n component: ,\n },\n ],\n });\n return (\n \n \n \n {Object.keys(categories).map((category) => (\n \n classNames(\n \" w-full py-12 text-xl bg-white leading-5 font-bold\",\n \"focus:outline-none border-silver\",\n selected\n ? \"bg-tone text-active border-l border-r \"\n : \"text-dark hover:bg-tone border-b over:text-active\",\n )\n }\n >\n {t(category)}\n \n ))}\n \n \n {Object.values(categories).map((posts, idx) => (\n \n
      \n {Array.isArray(posts) ? posts.map((post) =>
      {post.component}
      ) : null}\n
      \n \n ))}\n
      \n
      \n
      \n );\n};\n\nexport default Daily;\n","import LoginResponse from \"../../types/classes/login-response\";\nimport AbstractService from \"../abstract/abstract.service\";\n\nclass AuthService extends AbstractService {\n API_SEGMENT = \"/auth\";\n\n login(login: string, password: string) {\n return this.axios\n .post(`${this.API_SEGMENT}/login`, {\n login,\n password\n })\n .then(res => {\n return res.data;\n });\n }\n\n getCurrentUser() {\n const userStr = localStorage.getItem(\"user\");\n if (userStr) return JSON.parse(userStr);\n\n return null;\n }\n}\n\nexport default new AuthService();\n","import { ReactNode, useState } from \"react\";\nimport AuthContext, { AuthContextState } from \"../../contexts/auth/auth.context\";\nimport AuthService from \"../../services/auth/auth.service\";\nimport UserService from \"../../services/user/user.service\";\nimport LocalStorageService from \"../../services/local-storage/local-storage.service\";\n// import { useHistory } from \"react-router-dom\";\nimport User from \"../../types/models/user\";\nimport Subscription from \"../../types/models/subscription\";\n// import subscriptionService from \"../../services/subscription/subscription.service\";\nimport i18next from \"i18next\";\n\nfunction AuthProvider(props: { children: ReactNode }) {\n const [user, setUser] = useState(null);\n const [subscription, setSubscription] = useState(null);\n const [isLoggedIn, setIsLoggedIn] = useState(false);\n // const history = useHistory();\n\n const handleLogin = async (login: string, password: string) => {\n const tokens = await AuthService.login(login, password);\n LocalStorageService.updateTokens(tokens);\n const user = await UserService.getUserByToken();\n setUser(user);\n // const subscription = await subscriptionService.getLatestSubscription();\n // setSubscription(subscription);\n await i18next.changeLanguage(user.localeId === \"lv_LV\" ? \"lv\" : \"en\");\n setIsLoggedIn(true);\n window.location.href = \"/welcome\";\n };\n\n const handleLogout = () => {\n LocalStorageService.clearTokens();\n LocalStorageService.clearChatData();\n setSubscription(null);\n setUser(null);\n setIsLoggedIn(false);\n // history.push(\"/\");\n window.location.href = \"/\";\n };\n\n const handleRefreshState = async () => {\n const user = await UserService.getUserByToken();\n setSubscription(subscription);\n setUser(user);\n setIsLoggedIn(true);\n };\n\n const value: AuthContextState = {\n user,\n isLoggedIn,\n login: handleLogin,\n logout: handleLogout,\n refreshState: handleRefreshState,\n };\n\n return {props.children};\n}\n\nexport default AuthProvider;\n","import React, {ReactNode} from \"react\";\nimport {QueryClient, QueryClientProvider} from \"react-query\";\n\n\nfunction QueryProvider(props: { children: ReactNode }) {\n const queryClient = new QueryClient();\n\n return (\n \n {props.children}\n \n );\n}\n\nexport default QueryProvider;\n","import { Component } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport IUser from \"./types/user.type\";\nimport 'reflect-metadata';\n\nimport ProfilePage from \"./pages/profile/profile.page\";\nimport ProtectedRoute from \"./containers/protected-route/protected-route.component\";\nimport LoginPage from \"./pages/login/login.page\";\nimport WelcomePage from \"./pages/welcome/welcome.page\";\nimport ProgressPage from \"./pages/progress/progress.page\";\nimport OnboardingPage from \"./pages/onboarding/onboarding.page\";\nimport HomePage from \"./pages/home/home.page\";\nimport AdvicePage from \"./pages/advice/advice.page\";\nimport DailyPlanPage from \"./pages/daily-plan/daily-plan.page\";\nimport AuthProvider from \"./containers/auth-provider/auth-provider.component\";\nimport QueryProvider from \"./containers/query-provider/query-provider.component\";\n\ntype Props = {};\n\ntype State = {\n showModeratorBoard: boolean;\n showAdminBoard: boolean;\n currentUser: IUser | undefined;\n};\n\nclass App extends Component {\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor(props: Props) {\n super(props);\n }\n\n componentDidMount() {\n // EventBus.on(\"logout\", this.logOut);\n }\n\n componentWillUnmount() {\n // EventBus.remove(\"logout\", this.logOut);\n }\n\n render() {\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\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import i18next from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nimport HttpApi from \"i18next-http-backend\";\n\ni18next\n .use(initReactI18next)\n .use(LanguageDetector)\n .use(HttpApi)\n .init({\n supportedLngs: [\"en\", \"lv\"],\n fallbackLng: \"en\",\n detection: {\n order: [\"localStorage\", \"cookie\", \"htmlTag\", \"sessionStorage\", \"navigator\", \"path\", \"subdomain\"],\n caches: [\"localStorage\"],\n },\n backend: {\n loadPath: \"/assets/locales/{{lng}}/translation.json\",\n },\n });\n","import { Suspense } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport \"./assets/fonts/Formular-Black.otf\";\nimport \"./assets/fonts/Formular-BlackItalic.otf\";\nimport \"./assets/fonts/Formular-Bold.otf\";\nimport \"./assets/fonts/Formular-BoldItalic.otf\";\nimport \"./assets/fonts/Formular-Italic.otf\";\nimport \"./assets/fonts/Formular-Light.otf\";\nimport \"./assets/fonts/Formular-LightItalic.otf\";\nimport \"./assets/fonts/Formular-Medium.otf\";\nimport \"./assets/fonts/Formular-MediumItalic.otf\";\nimport \"./assets/fonts/Formular-Regular.otf\";\n\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport LoadingComponent from \"./components/loading/loading.component\";\nimport { RotateModal } from \"./components/vigo-modals\";\nimport \"./i18n\";\n\nconst loadingMarkup = ;\n\nReactDOM.render(\n \n \n \n \n \n ,\n document.getElementById(\"root\"),\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}