{"version":3,"sources":["../../src/index.ts","assets/dashboard/simple-arrow-up.svg","assets/input/search-icon.png","assets/common/arrow-main-right.svg","assets/dashboard/arrow-white-left.svg","assets/dashboard/arrow-green-right.svg","assets/common/randomIcon.svg","assets/common/logo.svg","assets/header/notificationsActive.svg","assets/header/notifications.svg","assets/header/settings.svg","assets/header/logout.svg","assets/header/profile.png","assets/signup/plus.svg","assets/signup/minus.svg","assets/navbar/home.svg","assets/navbar/export.svg","assets/navbar/stats.svg","assets/navbar/import.svg","assets/navbar/importGreen.svg","assets/navbar/media.svg","assets/navbar/calendar.svg","assets/navbar/users.svg","assets/navbar/trainee_tm.svg","assets/navbar/mobile_trainee_tm.svg","assets/navbar/chat.svg","assets/navbar/settings.svg","assets/signup/avatar.svg","assets/signup/user.svg","assets/signup/userActive.svg","assets/signup/book.svg","assets/signup/bookActive.svg","assets/signup/phone.svg","assets/signup/phoneActive.svg","assets/signup/envelope.svg","assets/signup/envelopeActive.svg","assets/signup/location.svg","assets/signup/locationActive.svg","assets/signup/alert.svg","assets/signup/PlusBorderGreen.svg","assets/signup/termsCheckMark.svg","assets/common/file.svg","assets/common/image.svg","assets/common/editStroke.svg","assets/common/deleteStroke.svg","assets/common/editFill.svg","assets/common/deleteFill.svg","assets/common/X.svg","assets/program-request/leftCellBackground.png","assets/program-request/rightCellBackground.png","assets/program-request/fitnessLevel.svg","assets/program-request/injures.svg","assets/program-request/environment.svg","assets/program-request/equipment.svg","assets/program-request/health.svg","assets/program-request/focus.svg","assets/program-request/programLength.svg","assets/program-request/time.svg","assets/program-request/type.svg","assets/program-request/goal.svg","assets/program-request/male.svg","assets/program-request/female.svg","assets/specialities/crossfit.svg","assets/specialities/triathlon.svg","assets/specialities/fbb.svg","assets/specialities/strength.svg","assets/specialities/physio.svg","assets/specialities/yoga.svg","assets/specialities/multi.svg","assets/specialities/marathon.svg","assets/specialities/postpartum.svg","assets/specialities/prenetalPrep.svg","assets/specialities/running.svg","assets/common/message.svg","assets/common/messageActive.svg","assets/dashboard/programRequests.svg","assets/dashboard/activeCustomers.svg","assets/dashboard/monthlyIncome.svg","assets/common/arrowUpGreen.svg","assets/profile/personal.svg","assets/profile/personalActive.svg","assets/profile/pricing.svg","assets/profile/pricingActive.svg","assets/profile/billing.svg","assets/profile/billingActive.svg","assets/profile/settings.svg","assets/profile/settingsActive.svg","assets/profile/edit.svg","assets/profile/editGreen.svg","assets/profile/ID.svg","assets/profile/meal.svg","assets/profile/music.svg","assets/profile/addPortfolioItem.svg","assets/profile/download.svg","assets/common/inputArrowLight.svg","assets/common/inputArrowDark.svg","assets/common/alertRed.svg","assets/common/alertYellow.svg","assets/common/copy.svg","assets/common/copyActive.svg","assets/common/editGrey.svg","assets/common/deleteGrey.svg","assets/common/sortNone.svg","assets/common/sortDesc.svg","assets/common/sortAsc.svg","assets/common/videoSign.svg","assets/common/videoSignGrey.svg","assets/program-request/empty-requests.svg","assets/set-password/password-input.svg","assets/common/binSimpleGrey.svg","assets/common/binSimpleDark.svg","assets/common/editSimpleGrey.svg","assets/common/download-mini.svg","assets/common/comment.svg","assets/common/checkMark.svg","assets/common/dragIcon.svg","assets/common/plusSimple.svg","assets/input/optionPlus.svg","assets/input/optionPlusActive.svg","assets/input/optionView.svg","assets/input/optionViewDark.svg","assets/input/optionViewDarkCrossed.svg","assets/input/optionViewActive.svg","assets/common/search.svg","assets/common/upload.svg","assets/common/clock.svg","assets/program/weight.svg","assets/program/height.svg","assets/program/age.svg","assets/common/loader.svg","assets/common/gridLayout.svg","assets/common/listLayout.svg","assets/common/arrowDownWhite.svg","assets/common/arrowUpDark.svg","assets/common/arrowUpLight.svg","assets/dashboard/table-sort.svg","assets/dashboard/status-done.svg","assets/dashboard/status-missed.svg","assets/dashboard/status-new.svg","assets/dashboard/attachment.svg","assets/dashboard/attachments-new.svg","assets/dashboard/comment-new.svg","assets/dashboard/workout-empty.svg","assets/dashboard/dumbell.svg","assets/common/arrow-left.svg","assets/common/camera.svg","assets/common/messageBtn.svg","assets/day-popup/dumbell.svg","assets/day-popup/dumbellActive.svg","assets/day-popup/videoCamera.svg","assets/day-popup/videoCameraActive.svg","assets/day-popup/messageDay.svg","assets/day-popup/messageDayActive.svg","assets/day-popup/RestDayCup.svg","assets/day-popup/RestDayCupActive.svg","assets/day-popup/meetingLocation.svg","assets/day-popup/copyDay.svg","assets/day-popup/pasteDay.svg","assets/signin/arrow-down-big.svg","assets/common/move.svg","assets/common/addComment.svg","assets/common/verticalDots.svg","assets/common/verticalDotsActive.svg","assets/common/editWeekBlock.svg","assets/common/restDayBoy.svg","assets/program-request/ticket.png","assets/common/logo-short.svg","assets/common/chat-m.svg","assets/common/notif-m.svg","assets/common/burger-menu.svg","assets/common/close.svg","assets/sidebar/calendar.svg","assets/sidebar/cloud.svg","assets/sidebar/home.svg","assets/sidebar/image.svg","assets/sidebar/pulse.svg","assets/sidebar/save.svg","assets/sidebar/settings.svg","assets/sidebar/users.svg","assets/header/go-back-mobile.svg","assets/common/redBin.svg","assets/common/arrow-right.svg","assets/common/respMessage.svg","assets/navbar/chat-mob.svg","assets/navbar/coupon-mob.svg","assets/common/collapse.svg","assets/common/expand.svg","assets/common/pasteColumn.svg","assets/common/WhiteCheck.svg","assets/sidebar/list.svg","assets/common/left-arrow-page.svg","assets/common/right-arrow-page.svg","assets/common/up.svg","assets/common/down.svg","assets/signup/fitnessGirlSignup.png","assets/signup/FitnessGirlSignup2.png","assets/signup/fitnessBoySignup.png","assets/signup/FitnessgirlNew.png","assets/signup/cropBackground.png","assets/signin/background.png","assets/set-password/background.png","assets/common/logo-white.png","assets/temp/temp-program-1.jpg","assets/temp/temp-program-1-opacity.png","assets/temp/temp-program-2.png","assets/temp/temp-program-3.jpg","assets/empty-state/empty-trainees.png","assets/empty-state/empty-groups.png","assets/empty-state/empty-templates.png","assets/dashboard/homeBanner.png","assets/program/delete-program.svg","assets/program/edit-program.svg","assets/chat/chat-attachment.svg","assets/chat/chat-send-button.svg","assets/program/minimize.png","assets/finance/dollar.svg","services/apollo.js","constants/urls.js","hooks/registerCoach.js","constants/strings.js","hooks/uploadCredentials.js","hooks/addressAutoComplete.js","hooks/coachPersonalInfo.js","hooks/pricing.js","hooks/signin.js","constants/icons.js","components/loader/components.jsx","components/loader/Loader.jsx","hooks/routing.js","hooks/program.js","hooks/exercise.js","services/organizationContext.jsx","hooks/group.js","constants/workoutBlocks.js","constants/programLengthOptions.js","constants/enums.js","hooks/utils.js","hooks/results.js","services/utils.js","hooks/coachProgram.js","hooks/template.js","hooks/earnings.js","hooks/trainees.js","hooks/organisation.js","components/input/components.jsx","components/input/CustomInput.jsx","components/button/components.jsx","components/button/CustomButton.jsx","schemas/signup/coachProfile.js","constants/images.js","pages/sign-up/components.jsx","components/input/CustomInputFile.jsx","components/crop-image/components.jsx","components/crop-image/CropImageModal.jsx","services/MobileContext.jsx","pages/sign-up/CoachSignUpPersonalInfo.jsx","components/input/CustomInputCheck.jsx","components/input/CustomInputNumber.jsx","components/credentials-upload/components.jsx","components/credentials-upload/ProcessGroup.jsx","components/credentials-upload/CredentialsUpload.jsx","pages/sign-up/CoachSignUpProfessionalInfo.jsx","pages/sign-up/CoachSignUpResult.jsx","components/dashboard/components.jsx","hooks/programRequest.js","components/dashboard/ProgramRequestRow.jsx","components/dashboard/ProgramList.jsx","services/OneSignal.js","services/NotificationContext.jsx","components/dashboard/DashboardProgramRequests.jsx","components/magic-scroll/components.jsx","components/magic-scroll/MagicScroll.jsx","components/empty-template/components.jsx","components/empty-template/EmptyTemplate.jsx","components/progress-line/components.jsx","components/progress-line/ProgressLine.jsx","components/media-modal/components.jsx","components/media-modal/MediaModal.jsx","components/add-exercise-modal.jsx/components.jsx","components/add-exercise-modal.jsx/AddExerciseModal.jsx","components/calendar-results-modal/components.jsx","components/add-calendar-modal/components.jsx","components/add-calendar-modal/WorkoutBlockTable.jsx","components/input/CustomTextArea.jsx","components/calendar-results-modal/ResultTable.jsx","components/calendar-results-modal/SingleTraineeResults.jsx","components/tooltip/components.jsx","components/tooltip/CustomTooltip.jsx","components/add-calendar-modal/AddBlockCommentTooltip.jsx","components/add-calendar-modal/BlockActionsStack.jsx","components/add-calendar-modal/WorkoutBlock.jsx","hooks/calendar.js","components/calendar-results-modal/CalendarResultsModal.jsx","components/dashboard/RespWorkoutInfo.jsx","components/are-you-sure-modal/components.jsx","components/are-you-sure-modal/AreYouSureModal.jsx","components/input/CustomSearch.jsx","components/input/CustomInputClock.jsx","components/input/CustomInputDropdown.jsx","components/add-calendar-modal/Exercise.jsx","components/add-calendar-modal/EdittingWorkoutBlockV2.jsx","components/dashboard/WorkoutBlockEditModal.jsx","components/dashboard/RespWorkoutPage.jsx","components/dashboard/DashboardWorkoutList.jsx","components/request-modal/components.jsx","components/request-modal/ExplainRejectionModal.jsx","hooks/programRequestPreview.js","components/request-modal/ProgramRequest.jsx","pages/home/components.jsx","pages/home/ProgramRequestCard.jsx","components/request-modal/RespProgramRequest.jsx","pages/home/Home.jsx","components/header/components.jsx","components/notifications/components.jsx","components/header/FixedHeader.jsx","components/notifications/NotificatiosnModal.jsx","components/header/Header.jsx","services/ChatManager.js","services/ChatContext.jsx","services/chat-helpers.js","components/header/MobileHeader.jsx","components/avatar/components.jsx","components/avatar/MobileAvatar.jsx","components/sidebar/components.jsx","components/sidebar/MobileSidebarItem.jsx","components/sidebar/MobileSidebar.jsx","components/sidebar/Sidebar.jsx","components/layout/components.jsx","components/layout/layout.jsx","pages/export/Export.jsx","pages/stats/Stats.jsx","pages/media/Media.jsx","pages/calendar/Calendar.jsx","pages/profile/components.jsx","components/trainee-card/components.jsx","components/radio/components.jsx","components/radio/RadioButton.jsx","components/workout-message-modal/components.jsx","components/workout-message-modal/MessageIcon.jsx","components/workout-message-modal/IconsModal.jsx","components/workout-message-modal/WorkoutMessageModal.jsx","pages/program-template/components.jsx","components/programs-header/components.jsx","components/programs-header/SelectStatus.jsx","components/react-select-witness/components.jsx","components/react-select-witness/ReactSelectWitness.jsx","pages/program-template/TemplateFilter.jsx","components/trainee-card/TemplateCard.jsx","components/choose-template-modal/components.jsx","components/choose-template-modal/ChooseTemplateModal.jsx","services/CalendarDragContext.jsx","components/add-calendar-modal/EdittingWorkoutBlock.jsx","schemas/program/coachProgram.js","components/add-calendar-modal/WorkoutDropbox.jsx","components/add-calendar-modal/AddCalendarModal.jsx","components/confirm-modal/ConfirmModal.jsx","components/program-calendar/components.jsx","components/program-calendar/DayDropdownV2.jsx","components/program-calendar/HoverActions.jsx","components/program-calendar/SecondaryContentTooltip.jsx","components/program-calendar/ProgramCalendarDayV3.jsx","components/meeting-modal/components.jsx","schemas/meeting/meeting.js","components/meeting-modal/MeetingModal.jsx","components/add-calendar-modal/AddMessageTooltip.jsx","components/add-calendar-modal/AddMeetingTooltip.jsx","components/add-calendar-modal/WeekDayColumn.jsx","components/add-calendar-modal/AddCalendarWeekModal.jsx","components/alert-modal/components.jsx","components/alert-modal/AlertModalGeneral.jsx","schemas/coupon/coupon.js","components/coupon-modal/ExtensionCouponModal.jsx","components/download-workout-modal/components.jsx","components/download-workout-modal/Assistant-Bold-bold.js","components/download-workout-modal/Assistant-Regular-normal.js","components/download-workout-modal/useLandscape.js","components/download-workout-modal/usePortrait.js","components/download-workout-modal/useDownloadWorkoutAsPDF.jsx","components/add-group-modal.jsx/components.jsx","components/download-workout-modal/DownloadWorkoutModal.jsx","components/program-calendar/ProgramCalendar.jsx","schemas/group/groupSchema.js","components/add-group-modal.jsx/AddGroupModal.jsx","components/trainee-card/ParticipantCard.jsx","components/checkbox/Checkbox.jsx","pages/chat/components.jsx","pages/chat/AttachmentButton.jsx","pages/chat/Message.jsx","pages/chat/MessageList.jsx","pages/program/components.jsx","components/cancel-program-modal/components.jsx","components/cancel-program-modal/CancelProgramModal.jsx","components/alert-modal/AlertModal.jsx","components/trainee-info-modal/components.jsx","components/trainee-info-modal/TraineeInfoModal.jsx","pages/program/Program.jsx","theme.js","components/input/CustomEditableInfo.jsx","components/edit-personal-info-modal/components.jsx","components/edit-personal-info-modal/EditAboutMeModal.jsx","pages/profile/CoachProfilePersonal.jsx","components/advanced-price-modal/components.jsx","components/advanced-price-modal/AdvancedPriceModal.jsx","components/program-code-modal/components.jsx","components/progress-line/ProgressLineOrganization.jsx","components/program-code-modal/ProgramCodeModal.jsx","components/coupon-table/components.jsx","components/coupon-table/MobileDetailCouponItem.jsx","components/coupon-table/MobileCouponDetailsModal.jsx","components/coupon-table/CouponTable.jsx","components/coupon-table/DetailCouponTable.jsx","pages/profile/CoachProfilePricing.jsx","pages/profile/CoachProfileSettings.jsx","pages/profile/CoachProfile.jsx","components/trainee-card/TraineeCard.jsx","components/react-select-witness/ReactSelectMulti.jsx","components/programs-header/ProgramsHeader.jsx","pages/trainees/Trainees.jsx","pages/sign-in/components.jsx","pages/sign-in/SignIn.jsx","pages/groups/GroupCard.jsx","pages/groups/Groups.jsx","components/avatar/Avatar.jsx","pages/chat/ConversationItem.jsx","pages/chat/ConversationNew.jsx","pages/chat/Participant.jsx","pages/chat/MessageHeader.jsx","pages/chat/Chat.jsx","pages/not-found/NotFound.jsx","pages/program-template/ProgramTemplate.jsx","pages/terms/TermsOfService.jsx","schemas/template/template.js","components/add-template-modal.jsx/components.jsx","components/add-template-modal.jsx/AddTemplateModal.jsx","pages/templates/Templates.jsx","pages/video-call/components.jsx","pages/video-call/VideoCall.jsx","pages/forgot-password/components.jsx","pages/forgot-password/ForgotPassword.jsx","pages/forgot-password/ResetPassword.jsx","components/finance/components.jsx","components/finance/FinanceTableRow.jsx","pages/finance/components.jsx","pages/finance/Finance.jsx","pages/all-trainees/components.jsx","pages/all-trainees/AllTrainees.jsx","pages/exercises/components.jsx","hooks/exercisePage.js","pages/exercises/PaginatedNumbers.jsx","pages/exercises/VideoPreview.jsx","pages/exercises/Exercises.jsx","App.js","components/alert-snack/components.jsx","components/alert-snack/AlertSnack.jsx","index.js"],"names":["module","exports","uploadLink","createUploadLink","uri","process","headers","authLink","setContext","_","rest","token","localStorage","getItem","lang","authorization","language","uploadLinkWithAuth","concat","errorLink","onError","graphQLErrors","networkError","forEach","message","locations","path","console","log","JSON","stringify","cache","InMemoryCache","dataIdFromObject","o","uid","ApolloClient","link","ApolloLink","from","connectToDevTools","URLS","sign_up_coach","sign_up_coach_personal","sign_up_coach_professional","sign_up_coach_result","sign_in","set_password","home","export","stats","templates","media","calendar","trainees","all_trainees","groups","program","template","groupProgram","messages","settings","profile","notifications","logout","terms","videoCall","forgotPassword","resetPassword","finance","exercises","useRegisterCoach","history","useHistory","useQuery","meQuery","me","data","meLoading","loading","meError","error","getSpecialitiesQuery","specialities","specialitiesLoading","specialitiesError","useMutation","createCoachPersonalMutation","createCoachPersonal","submitPersonalForm","values","a","setSubmitting","setErrors","fullName","idNumber","phone","email","address","image","variables","record","getCurrentUser","coach","registeredCoach","setItem","createPersonalInfo","push","find","x","createCoachProfessionalMutation","createCoachProfessional","submitProfessionalForm","experience","playlist","meal","about","files","filePayload","map","group","ids","diplomas","dip","filter","name","diplomaIds","tomorrow","Date","setDate","getDate","removeItem","sessionStorage","createProfessionalInfo","getInitialValuesPersonal","user","undefined","preview","profileImage","url","agreedTerms","getInitialValuesProfessional","spec","backToPersonalPage","location","pathname","replace","currentLanguage","strings","EN","new_coach_registration_form","personal_info","id","phone_number","continue","upload_profile_image","i_agree_to","terms_and_conditions","terms_of_service","privacy_policy","and","professional_info","training_specialities","please_select_all_specialities","years_of_experience","how_many_years_coaching","diplomas_and_credentials","provide_all_credentials","favorite_playlist","favorite_meal","share_playlist","share_meal","tell_about_yourself","describe_personal_story","type_here","back","submit_form","type_name_of_spec","attach_files","save","required","coach_credentials","your_request_success","your_request_approved","we_will_contact_in_day","please_check_email","if_question_contact_us","contact_us","new_program_request","health_and_fitness","fitness_level","injures","training_environment","available_equipment","health_status","focus_on","program_details","program_length","workout_time","desired_agenda","training_type","training_goals","notes","total_price","decline_request","chat_with","approve_request","close","contact_admin","edit_personal_info","e_mail","gender","age","height","weight","favorite_meal_camel","favorite_playlist_camel","edit_about_me","cannot_change_professional_info","if_u_want_to_change_professional_info","cannot_change_personal_info","if_u_want_to_change_personal_info","user_not_found","invalid_token","useUploadCredentials","onChange","useState","activeIndex","setActiveIndex","groupNameError","setGroupNameError","STRINGS","credentials","setCredentials","currentGroupName","setCurrentGroupName","currentDiplomas","setCurrentFiles","uploadDiplomaMutation","onCompleted","existingTempDiplomaIndex","findIndex","tempId","uploadDiploma","currentDiplomasClone","file","useEffect","chooseCredentialToEdit","index","saveCredential","currCredential","length","credentialsClone","deleteCredential","splice","deleteFile","addFiles","e","persist","diploma","uniqid","curr","Array","target","prettifyFileSize","s","toFixed","useAddressAutoComplete","autoComplete","addListener","refToListen","setRefToListen","inputRef","useRef","createRef","callback","script","document","createElement","type","readyState","onreadystatechange","onload","src","getElementsByTagName","appendChild","loadScript","autoCompleteRef","window","google","maps","places","Autocomplete","current","setFields","handleScriptLoad","node","setHandleAdressChoose","handler","getPlace","formatted_address","useCoachPersonalInfo","setLoading","setOpenModal","orgCoachesFilters","meRefetch","refetch","alert","useAlert","spData","skip","role","ttData","getTrainingTypesQuery","useMemo","getSpecialities","sp","trainingTypes","getTrainingTypes","tt","speciality","editCoachMutation","editCoach","editOrganisationMutation","editOrg","submitEditCoach","blob","pdfBlob","organisation","description","optimisticResponse","__typename","filename","mimetype","compressedUrl","encoding","pdfImage","uploadPortfolioMutation","uploadPortfolio","uploadportfolioItems","Promise","resolve","reject","alreadyReadFiles","reader","FileReader","onloadend","result","readAsDataURL","then","optimisticAddedFiles","portfolio","update","proxy","readQuery","query","writeQuery","deletePortfolioMutation","deletePortfolio","getOrgCoachesQuery","orgCoaches","loadingOrgCoaches","getInitialValuesAbout","currentCoach","isAdmin","handleDeletePortfolio","success","err","messae","currentOrganization","usePricing","getPricesQuery","programPrices","defaultPrices","fetchedPrices","getPrices","prices","defaultPrice","p11","p12","p13","p21","p22","p23","p31","p32","p33","addPricingMutation","addPricing","addProgramPricing","createOrUpdateAdminCodeMutation","refetchQueries","createOrUpdateAdminCode","createOrUpdateProgramDetailsCouponMutation","getProgramDetailsCouponsQuery","createOrUpdateProgramDetailsCoupon","createAdminCode","daysOfTraining","price","programLength","title","validUntil","available","coachFee","coaches","t","value","parseInt","monthlySum","coachesUids","Object","keys","discountType","amount","Number","eror","deleteAdminCodeMutation","deleteAdminCode","deleteCoupon","useSignin","setPasswordMutation","setPassword","submitSetPassword","setStep","password","verifyEmailMutation","verifyEmail","submitVerifyEmail","signInMutation","signIn","signInAndRedirect","signedCoach","submitSignIn","signOut","apolloClient","clearStore","icons","Logo","RandomIcon","NotificationsActiveIcon","NotificationsIcon","SettingsIcon","LogoutIcon","ProfileImage","PlusIcon","MinusIcon","HomeIcon","ExportIcon","StatsIcon","ImportIcon","ImportIconGreen","MediaIcon","CalendarIcon","UsersIcon","MobileTraineeIcon","TraineeIcon","ChatIcon","SettingsIconSide","ListTrainees","AvatarDefaultImage","UserIcon","UserActiveIcon","BookIcon","BookActiveIcon","PhoneIcon","PhoneActiveIcon","EnvelopeIcon","EnvelopeActiveIcon","LocationIcon","LocationActiveIcon","AlertIcon","DiplomaPlus","TermsCheckMark","File","Image","X","EditStroke","DeleteStroke","EditFill","DeleteFill","LeftCellBackground","RightCellBackground","FitnessLevel","Injures","Environment","Equipment","Health","Focus","ProgramLength","Time","Type","Goal","Male","Female","Crossfit","Triathlon","Fbb","Strength","Physio","Yoga","Multi","Marathon","Postpartum","PrenetalPrep","Running","Message","MessageActive","ProgramRequests","ActiveCustomers","MonthlyIncome","ArrowUpGreen","ProfilePersonal","ProfilePersonalActive","ProfilePricing","ProfilePricingActive","ProfileBilling","ProfileBillingActive","ProfileSettings","ProfileSettingsActive","Edit","EditGreen","ID","Meal","Music","AddPortfolioItem","Download","InputArrowLight","InputArrowDark","AlertRed","AlertYellow","Copy","CopyActive","EditGrey","DeleteGrey","SortNone","SortDesc","SortAsc","VideoSign","VideoSignGrey","EmptyIcon","PasswordIcon","BinSimpleGrey","EditSimpleGrey","Comment","CheckMark","DragIcon","PlusSimple","OptionPlus","OptionPlusActive","OptionView","OptionViewDark","OptionViewDarkCrossed","OptionViewActive","Search","Upload","Clock","Weight","Height","Age","Loader","GridLayout","ListLayout","ArrowMainRight","ArrowDownWhite","ArrowUpDark","ArrowUpLight","TableSortSvg","StatusDone","StatusMissed","StatusNew","AttachmentSvg","EmptyWorkoutSvg","ArrowLeft","MessageBtn","CameraIcon","Dumbell","DumbellActive","VideoCamera","VideoCameraActive","MessageDay","MessageDayActive","MeetingLocation","RestDayCup","RestDayCupActive","CopyDay","PasteDay","ArrowDownIcon","Move","AddComment","VerticalDots","VerticalDotsActive","EditWeekBlock","RestDayBoy","Ticket","LogoShort","ChatMobile","NotificationMobile","Burger","Close","CalendarMobile","Cloud","HomeMobile","ImageMobile","Pulse","Save","Settings","User","GoBack","SimpleArrowUp","dumbellSvg","RedBin","ArrowRight","RespMessage","ChatSidemenuMobile","CouponSidemenuMobile","AttachmentsNewSvg","DownloadMini","CommentNewSvg","Collapse","Expand","PasteColumn","WhiteCheck","BinSimpleDark","LeftArrowPage","RightArrowPage","UpPage","DownPage","Spin","keyframes","LoaderContainer","styled","div","LoaderSign","ICONS","LoaderText","fontSize","padding","style","useRouting","PrivateRoute","Component","component","authed","render","props","status","to","PublicRoute","useCallback","RegistrationRoute","AdminRoute","useProgram","programId","useLocation","queryData","qs","parse","search","substr","defaultTab","tab","isGroup","urlProgramDay","day","urlTraineeUid","trainee_id","programOrGroup","setProgramOrGroup","getProgramQuery","split","fetchPolicy","getProgram","notifyOnNetworkStatusChange","programLoading","refetchProgram","getCoachGroupQuery","getGroup","groupLoading","refetchGroup","startsWith","code","refetchProgramOrGroup","editCoachProgramMutation","editCoachProgram","handleCoachProgramUpdate","date","coachProgram","beginningDate","useApolloClient","updateCalendarCache","newCalendar","cancelParticipantMutation","cancelParticipant","cancelParticipantFromGroup","traineeUid","coachProgramUid","useExercise","searchText","setSearchText","getExercisesQuery","sortField","sortOrder","exercisesLoading","exercisesRefetch","createCoachExerciseMutation","createCoachExercise","createLoading","editCoachExerciseMutation","editExercise","editLoading","createNewExercise","video","youtubeVideoId","category","setting","edited","editCoachExercise","added","OrganizationContext","createContext","OrganizationProvider","children","isOrganization","setIsOrganization","contextValue","Provider","useGroup","groupDigits","searchName","setSearchName","coachProgramStatus","setCoachProgramStatus","useContext","getCoachGroupsQuery","groupsLoading","getOrgGroupsQuery","orgGroups","orgGroupsLoading","orgGroupsRefetch","checkProgramCodeQuery","digits","groupByDigits","createCoachGroupMutation","createCoachGroup","createGroup","setLaoding","closeModal","groupImage","participants","uidSpreader","coachUid","addedGroup","createOrUpdateGroup","removeOrganisationGroupMutation","removeOrganisationGroup","removeGroup","refetchGroups","getGroups","getOrgGroups","BLOCKS","CLASSICSTRENGTH","attributes","block_title","label","textValue","itemName","PILATESR","AMRAP","totalTime","shortLabel","RFT","rounds","RNFT","INTERVALS","valueAttribute","intervals","workTime","restTime","STRENGTH","sets","interval","asNeeded","SUPERSETS","EMOM","roundTime","RUN","REST","CUSTOM","text","LENGTH_OPTIONS","ExerciseType","ExerciseCategory","CoachProgramStatus","ProgramStatus","ProgramType","WorkoutStatus","WorkoutBlockType","QUALITYSETS","INTERVAL","BlockExerciseUnit","BlockExerciseWeightType","KG","PERCENTAGE","CalendarType","CoachProgramStatusUI","APPROVED","ONGOING","DECLINED","ENDED","workoutStatuses","useUtils","sortByOrder","b","order","getWorkoutBlocksByWorkout","workout","currentBlocks","workoutBlocks","block","nullableAttributes","customAttributes","attr","initialType","indexOf","Math","floor","slice","nullValueAttributes","ex","results","trainee","sort","sortByWorkoutStatus","formatNumber","num","Intl","NumberFormat","format","programLengthValueToOption","filteredOptions","op","useResults","coachCommentMutation","coachComment","submitFeedback","feedbacks","workoutStatusUid","workoutComment","workoutUid","feedbacksArr","workoutBlockUid","coachFeedback","lengthToDays","lengthEnum","workoutToMin","useDebounce","delay","debouncedValue","setDebouncedValue","setTimeout","clearTimeout","checkTzDST","timezone","timezoneMoment","tz","isDST","useCoachProgram","programTemplateUid","setCalendarDayLoading","getCopiedWorkout","copiedWorkoutExists","setCopiedWorkoutExists","setCopiedWorkout","source","sourceCoachProgramUid","sourceTemplateUid","getCopiedWeek","copiedWeekExists","setCopiedWeekExists","setCopiedWeek","sourceStart","handleLocalStorageChange","copiedWorkout","copiedWeek","addEventListener","removeEventListener","programDays","setProgramDays","messageDay","setMessageOpen","openMessageModal","closeMessageModal","calendarMatrix","setCalendarMatrix","createCalendarMutation","createCalendar","editWorkoutMutation","editWorkout","deleteMeetingMutation","deleteMeeting","editCalendarMutation","handleCalendarUpdate","createNewCalendar","v","shouldNotify","editExistingWorkout","addRestDay","programDay","beforeFunc","programTemplate","saveWorkoutDay","beforeMessage","afterMessage","blocks","blocksReadyToSubmit","dataToSubmit","i","videoRequested","isWarmUp","comment","m","exerciseId","exercise","reps","quantity","unit","weightType","numberOfSets","generateCalendarMatrix","currStartDate","currEpoch","getTime","startDateWeekDay","getDay","currprogramLength","weeksToShow","ceil","week","currDayDate","cellToBeAdded","getMonth","getFullYear","placeProgramDays","programDaysArr","resultText","blockAttachment","preparedAttributes","preparedExercises","copyWorkoutMutation","copyWorkout","pasteLoading","pasteWorkout","info","templateUid","pasteWeek","targetStart","callBack","all","deleteCalendarMutation","deleteCalendar","deleteLoading","substractDays","days","handleDeleteCalendar","selectedProgram","setSelectedProgram","handleProgramDelete","WORKOUT","MESSAGE","MEETING","calendarDay","item","faceMeetingUid","faceMeeting","onlineMeetingUid","onlineMeeting","tempError","selectedMessage","setSelectedMessage","submitMessageDay","messageDetails","messageType","calendarMessage","customMessage","icon","handleCreateMeeting","meeting","substring","tzCode","paid","useTemplate","initialFilter","calendarLoading","setCalendarLoading","templateFilter","setTemplateFilter","delayedName","templateName","updateFilter","key","templateLength","getProgramTemplateQuery","loadingProgramTemplate","refetchProgramTemplate","getProgramTemplatesQuery","programName","trainingType","programTemplates","programTemplatesLoading","refetchProgramTemplates","getCustomTemplatesQuery","searchBy","partialRefetch","customTemplates","customTemplatesLoading","createCoachProgramTemplateMutation","createProgramTemplate","templateChangeLoading","createTemplate","isGlobal","addedTemp","createOrUpdateProgramTemplate","deleteProgramTemplateMutaton","deleteProgramTemplate","deleteTemplate","uploadTemplateMutaton","uploadProgramTemplate","uploadTemplate","programUid","val","coachProgramTemplateUid","getProgramTemplate","meData","readOnly","getProgramTemplates","getCustomTemplates","useEarnings","getCoachEarningsQuery","coachData","coachEarningsLoading","getOrgEarningsQuery","orgData","orgEarningsLoading","getOrgEarnings","getCoachEarnings","earningsLoading","today","moment","earnings","years","earning","year","month","monthlyIncome","programs","chartData","income","currentMonthIncome","useTrainees","traineeName","setTraineeName","getCoachTraineesQuery","coachTrainees","coachTraineesLoading","getOrganisationTraineeQuery","organisationTrainees","organisationTraineesLoading","traineeObject","getOrganisationTrainees","traineesLoading","getCoachTrainees","useOrganisation","updateOrganisationMutation","updateOrganisation","setCoachFee","finally","InputWrapper","outlined","fill","borderRadius","isActive","theme","borderColor","focusBorderColor","color","margin","backgroundColor","focusBackgroundColor","grow","InputWrapperClock","small","disabled","InputUpperLabel","InputIcon","StyledInput","input","placeholderFontSize","InputError","InputErrorIcon","CheckInputWrapper","little","checked","primary","CheckInputIcon","CheckInputTitle","multiWord","NumberInputWrapper","NumberInputButton","nonPositive","plus","NumberInputArrowsContainer","NumberInputArrow","right","NumberInputInput","FileInputInput","FileInputLabel","noHover","UploadCloud","EditableInfoContainer","EditableInfoInput","EditableInfoIcon","StyledSelect","active","choices","LoadingContainer","OptionContainer","StyledOption","isFocused","isNew","OptionButtonsContainer","OptionButton","isView","SelectContainer","SelectArrow","StyledTextAreaWrapper","errorBorder","StyledTextAreaError","StyledTextArea","textarea","rows","InputUnit","Suffix","span","CustomInput","green","placeholder","activeIcon","enableShowPasswordToggle","onToggleShowPassword","onBlur","prefix","errorIcon","iconStyles","onKeyDown","endAdornment","suffix","setIsActive","ref","onFocus","novalidate","StyledButton","button","outlineColor","fontFamily","bold","hoverBackground","hoverOutlineColor","css","CustomButton","border","onClick","Yup","trim","min","matches","oneOf","of","optional","positive","SignupPersonalSchema","shape","SignupProfessionalSchema","EditAboutMeSchema","SetPaswordEmailStepSchema","SetPaswordPasswordStepSchema","repassword","SignInSchema","images","FitnessGirlSignupImageFirst","FitnessGirlSignupImage","FitnessBoySignupImage","CropBackground","TempProgram1","TempProgram2","TempProgram3","SigninBackground","LogoImage","PasswordBackground","EmptyTrainees","EmptyGroups","EmptyTemplates","HomeBanner","TempProgram1Opacity","FitnessGirlNew","SignUpContainer","LeftPhotoBackground","LeftPhotoBackgroundLine","LeftPhoto","top","IMAGES","size","position","FormContainer","FormHeading","FormSubHeading","ProfileimageLine","Profileimage","PersonalFormWrapper","TermsAndConditionsBold","TermsAndConditions","ProfessionalFormWrapper","SubmitButtonWrapper","FieldHeading","FieldTip","SpecialitiesWrapper","YearsWrapper","AboutTextArea","AboutButtonsWrapper","AboutButtonWrapper","TermsCheck","ResultName","ResultSentence","WeWillContact","ContactUsText","ContactButtonWrapper","CenteringContainer","ProfileImageContainer","ErrorMessage","PseudoCkeckForFlex","CustomInputFile","accept","multiple","inputId","htmlFor","onDragOver","preventDefault","onDrop","dataTransfer","CropContainer","ModalHeading","ButtonsWrapper","EditSaveButtonWrapper","AutocropButtonWrapper","FlexWrapper","customStyles","overlay","zIndex","content","width","left","justifyContent","bottom","marginRight","transform","CropImageModal","onSubmit","aspect","crop","setCrop","initialCrop","setInitialCrop","imageDimentions","setImageDimensions","cropImage","img","canvas","ctx","getContext","scaleX","w","scaleY","h","drawImage","y","toBlob","toDataURL","onRequestClose","isOpen","contentLabel","ariaHideApp","newCrop","minHeight","minWidth","onImageLoaded","initialSize","MobileContext","isMobile","innerWidth","menuOpen","toggleMenu","MobileProvider","setIsMobile","setMenuOpen","resizeFunc","CoachSignUpPersonalInfo","modalImage","setModalImage","modalImageFile","setModalImageFile","initialValues","validationSchema","setFieldValue","errors","touched","isSubmitting","field","marginBottom","ev","href","CustomInputCheck","checkedIcon","onCheck","CustomInputNumber","onDecrement","onIncriment","arrows","upperlabel","arrowStyles","evt","ProgressAnimation","ProgressComplete","AppearAnimation","WholeWrapper","UploadedCredWrapper","GreyButton","EditDeleteButton","hoverIcon","ProcessBox","SingleFileWrapper","SingleFileIcon","FileProgressContainer","uploaded","FileProgressBar","FileSize","SingleFileCancelX","ProcessBoxButtonWrapper","ProcessBoxInputWrapper","SaveButtonContainer","DiplomasPlusButton","ProcessGroup","CredentialsUpload","cred","CoachSignUpProfessionalInfo","reverse","currentValue","creds","CoachSignUpResult","useTimer","expiryTimestamp","onExpire","warn","seconds","minutes","hours","clicked","setClicked","encodeURI","marginTop","ProgramRequestsContainer","laptopL","ProgramRequestsHeader","ProgramRequestsSeeAll","ProgramRequestsNavBar","ProgramRequestsNavItem","ProgramRequestsList","ProgramRequestsRowContainer","ProgramRequestsRowPrimaryText","ProgramRequestsRowSecondaryText","PlaceholderContainer","PlaceholderText","PlaceholderIcon","WorkoutTable","table","WorkoutTh","th","ThText","WorkoutTd","td","TdText","StatusIcon","HC","justify","AttachmentsCount","AttachmentIcon","TabContainer","ActiveBorder","TabName","TabValue","Avatar","WorkoutInfoWrapper","TraineeInfoWrapper","TraineeName","WorkoutNameWrapper","DumbellIcon","WorkoutPageWrapper","WorkoutPageHeader","WorkoutPageBackArrow","WorkoutPageAvatar","WorkoutPageImg","WorkoutPageTraineeName","WorkoutPageName","WorkoutPageContent","WorkoutPageMessage","WorkoutPageMessageHeader","WorkoutPageMessageIcon","WorkoutPageMessageText","useProgramRequest","statusOpts","setStatus","changeProgramStatusMutation","changeStatus","changeStatusLoading","changeProgramStatus","groupUid","acceptedProgram","red_url","getProgramsQuery","requestStatus","programType","skipQuery","programRequests","programRequestsLoading","programRequestsRefetch","cancelFreeProgramMutation","cancelFreeProgram","cancelProgram","getPrograms","ProgramRequestRow","request","openRequest","createdTime","approvedDate","textAlign","toLowerCase","Placeholder","alt","ProgramList","items","isLoading","noItemsText","handleClick","OneSignal","installServiceWorker","navigator","serviceWorker","register","init","appId","allowLocalhostAsSecureOrigin","autoResubscribe","NotificationContext","NotificationProvider","getUnreadCountQuery","unreadCount","refetchUnreadCount","setNotifications","getNotificationsQuery","getNotifications","safeFetch","showSlidedownPrompt","on","registerForPushNotifications","setDefaultNotificationUrl","origin","sendTag","setSubscription","event","addListenerForNotificationOpened","getTags","tags","deleteTags","notificationMarkAsReadMutation","notificationMarkAsRead","markAsRead","notification","updateComment","isRead","notificationMarkAllAsReadMutation","notificationMarkAllAsRead","markAllAsRead","getUnreadCount","statuses","DashboardProgramRequests","setActive","ScrollContainer","ScrollItemsList","ScrollItem","ArrowButton","ArrowButtonLeft","ArrowLeftIcon","ArrowRightIcon","ArrowButtonRight","MagicScroll","itemsToDisplay","ItemComponent","firstItem","onLeftClick","onRightClick","keyExtractor","toString","activeDate","onTabClick","noArrows","containerWidth","setContainerWidth","scrollToItem","elem","getElementById","scrollIntoView","inline","ro","ResizeObserver","entries","myDiv","entry","contentRect","observe","unobserve","itemStyles","activeKey","MagicScrollItem","className","TemplateContainer","TemplateImage","TemplateGridSquare","TemplatePrimaryText","TemplateSecondaryText","EmptyTemplate","primaryText","secondarytext","buttonText","onButtonClick","imageSize","hideImageGrid","OrgWholeWrapper","OrgLineWrapper","OrgValuesWrapper","OrgValuesPercentage","ProgressTrack","noEndpoints","ProgressBar","percentage","ChartLegend","ChartLegendProgress","ProgressLine","total","progress","part","round","CloseIcon","MediaModal","onClose","maxWidth","maxHeight","controls","autoPlay","display","ModalHeader","noborder","centered","ModalCloseX","ModalMain","ModalColumn","FieldTitle","ReplaceVideo","UploadVideoIcon","ChoosePartWrapper","ChoosePartWrapperScrollable","ChoosePartItem","ChoosePartRadio","VideoWrapper","black","AddVideoWrapper","AddVideoWrapperDashed","DragFileIcon","DragFileText","BoldSpan","ModalFooter","ButtonWrapper","getVideoPreview","inputFile","setValue","AddExerciseModal","modalOpen","submitModal","videoOpen","setVideoOpen","changeCallback","editedExercise","opacity","frameborder","allow","allowfullscreen","embeded","match","convertYoutubeLinkToEmbedded","ModalContent","ParticipantContent","WorkoutName","EntireMessageHeading","WorkoutBlockResult","BlockExercisesSide","BlockExercisesHeader","BlockExercisesRest","BlockExercisesHeaderLabel","HeaderLabelCheckmark","BlockResults","BlockResultsTable","BlockResultsTH","BlockResultsRow","tr","BlockResultsTD","HoverIndicator","FlexTDContent","BlockFeedbackSide","BlockFeedback","BlockFeedbackContent","FeedbackHeading","FeedbackTextAreaWrapper","BlockFeedbackHeader","BLockAttachment","att","BLockAttachmentVideo","PlayPlaceholder","EntireMessageWrapper","BlocksWrapper","EntireGroupResultsWrapper","EntireGroupResults","EntireGroupHeader","EntireGroupHeading","EntireGroupContent","GroupWorkoutsWrapper","GroupParticipantsHeader","GroupParticipantsContent","GroupParticipantRow","GroupParticipantImage","GroupParticipantName","GroupParticipantResultIndicator","IndicatorDone","IndicatorGeneral","IndividualTraineeHeader","IndividualTraineeHeaderMain","IndividualTraineePic","IndividualTraineeHeaderSide","IndividualTraineeBackIcon","IndividualTraineeBack","NoResults","WorkoutBlockComment","CommentText","ResultsTitle","mt","mb","EyeContainer","AttachmentsList","ResultsContainer","ColumnsWrapper","main","ModalHeaderCenterLine","LeftSideBlock","scrollable","LeftSideBlockTitle","LeftSideBlockOptional","MessageCheck","MessageCheckBox","ContentContainer","ContentWrapper","WorkoutBlockDropBox","isRest","WorkoutBlockDropBoxDashed","WorkoutBlockDropBoxPlus","TooltipWorkoutBlock","TooltipBlocksWrapper","RightColumnContainer","WorkoutBlocksBoxScrollable","WorkoutBlocksBox","DraggableSign","WorkoutBlocksContainer","WorkoutBlockItem","PseudoWorkoutBlock","WorkoutBlockForm","mobile","WorkoutBlockHeader","WorkoutBlockHeaderIconsWrapper","WorkoutBlockHeaderIcon","edit","duplicate","move","WorkoutBlockFooter","AttrCheckBox","WorkoutBlockApplyButton","WeekBlockFooter","WeekBlockAddComment","beforeAfter","WeekBlockAddCommentPreview","WeekBlockAddCommentTitle","WeekBlockAddCommentButtons","WeekBlockAddCommentIcon","WeekBlockAddCommentText","WorkoutBlockContent","AttributeWrapper","ExercisesWrapper","AttributeLabel","flexGrow","AttributeUnit","AsNeeded","AsNeededCheck","AttributeBullet","clock","ExerciseWrapper","beingDragged","draggingOver","ExerciseLabel","ExerciseIndex","transparent","hide","ExerciseOpenButton","bin","ExerciseContent","DeleteExerciseIcon","nonAbsolute","WorkoutBlockTable","WorkoutBlockTableColumnLeft","WorkoutBlockTableAttributeRow","WorkoutBlockTableAttributeNum","WorkoutBlockTableAttributeLabel","WorkoutBlockTableColumnRight","WorkoutBlockWorkoutRow","CustomBlockDescriptionLine","CustomBlockDescription","WorkoutBlockWorkoutIndex","WorkoutBlockWorkoutName","WorkoutBlockWorkoutNameBold","WorkoutBlockWorkoutValue","WorkoutBlockWorkoutPilatesrValue","WorkoutBlockWorkoutPilatesrNameValue","WorkoutBlockAdditionalAttrWrapper","WorkoutBlockAdditionalAttr","WorkoutBlockOrderArrow","down","nonClickable","BeforeExitModal","show","BeforeExitModalContents","ExerciseTitle","CalendarWeekWrapper","CalendarWeekHeader","WeekHeaderFlexWrapper","WeekTitle","NeighbourWeekArrow","WeekRange","WeekContent","WeekDayColumnWrapper","collapsed","WeekDayHeader","WeekDayNumbering","WeekDayDay","HeaderButtons","HeaderButton","open","WeekDayName","BlockActionsStackWrapper","BlockActionsStackMenu","BlockActionsStackItem","BlockActionsStackIcon","WeekDayCheckRest","MessagesRelativeBox","CommentsOuterWrapper","noBorder","WeekRestBoy","ColumnTopButtons","ColumnTopButton","ColumnTopButtonIcon","DragDropWrapper","Blink","DropIndexIndicator","TooltipFooter","exerciseView","setExerciseView","flex","alignItems","flexDirection","CustomTextArea","rowCount","wrapperStyle","ResultTable","setOrRoundAttr","blockRows","arrayofHeadings","heading","j","row","col","SingleTraineeResults","exit","refetchCalendars","openMedia","setOpenMedia","initialFeedbacks","toBeReturned","currFeedback","join","overflowX","endsWith","cursor","TooltipWrapper","below","TooltipTriangleBorder","triangleLeft","TooltipTriangle","CustomTooltip","AddBlockCommentTooltip","initialValue","addCommentOpen","setAddCommentOpen","blockComment","setBlockComment","addCommentRef","handleClickOutside","contains","pointerEvents","beforeMessageChecked","background","afterMessageChecked","marginLeft","BlockActionsStack","actions","setIsOpen","menuRef","backgroundImage","ac","action","WorkoutBlock","setEditting","deleteSelf","orderDown","orderUp","isFirst","isLast","immutable","duplicateSelf","nonDeletable","paddingTop","useCalendar","startDate","endDate","calendarUid","getCalendarsQuery","calendars","calendarsLoading","getCalendarByUidQuery","refetchCalendar","refetchCalendarsRange","getCalendarsRange","rangeStart","rangeEnd","calendarsRange","getCalendars","getCalendarByUid","overflow","CalendarResultsModal","chosenIndividual","setChosenIndividual","submitting","isArray","doneBy","urlTrainee","RespWorkoutInfo","time","avatarUrl","initials","workoutName","neg","ModalHeaderLines","ModalPrimaryText","ModalSecondaryText","ModalSecondaryQuestion","ButtonsFlexWrapper","AreYouSureModal","headingText","contentText","choiceQuestion","rejectModal","rejectText","submitText","paddings","CustomSearch","onSelect","options","createNew","viewOption","noIcon","menuStyle","styles","container","provided","backgroundSize","backgroundPosition","paddingRight","backgroundRepeat","control","boxShadow","menu","autoFocus","opt","createOptionPosition","formatCreateLabel","userInput","onInputChange","defaultValue","controlShouldRenderValue","openMenuOnFocus","inputValue","components","DropdownIndicator","ClearIndicator","LoadingIndicator","Option","__isNew__","selectOption","stopPropagation","captureMenuScroll","keyEvent","charCode","keyCode","CustomInputClock","maxTime","onArrowChange","currVAl","coeff","currMins","currSecs","updatedValueInSecs","minutePlaceholder","secondPlaceholder","clearIcon","clockIcon","maxDetail","test","CustomInputDropdown","optionStyles","menuStyles","valueStyles","optionComponent","returnEntire","setisOpen","wrapperRef","Opt","Exercise","swapExercises","setExerciseAdding","remove","setDraggingBlock","draggingEx","setDraggingEx","draggingOverEx","setDraggingOverEx","onDragLeave","draggable","onDrag","onDragEnd","textTransform","EdittingWorkoutBlock","setTouched","handleCancel","exerciseAdding","blockIndex","tempExercise","paddingLeft","workM","workS","exercisesToAdd","outline","initialSearch","editedGlobal","exerciseIndex","setsQuantity","getExercises","run","walk","searchInput","option","WorkoutBlockEditModal","validateForm","preventExerciseAdding","contentPadding","RespWorkoutPage","toBeDeleted","setToBeDeleted","edittingBlock","setEdittingBlock","iniatialBlocks","weekDays","statusNames","NEW","DONE","UNDONE","Item","getWeek","middleDate","mod","DashboardWorkoutList","thisWeek","lastWeek","nextWeek","setItems","setFirstItem","nextDay","currentIndex","lastDate","newWeekMid","newWeek","prevDay","firstDate","handleTabClick","newIndex","getCoachWorkoutsQuery","getCoachWorkouts","reduce","acc","subItem","dateIndicator","resultModalDay","setResultModalDay","openWorkout","setOpenWorkout","WorkoutRow","first","last","avatar","count","blockAcc","resutlAcc","countWorkoutAttachments","OnlineMeetingRow","isOnline","arrivingGMT","utcOffset","localGMT","guess","hourDiff","add","calculateLocalTimeRelevantToTimezone","zone","timezones","utc","ModalContentMain","ModalSubHeading","ArrowIcon","ModalRow","upper","RowTitle","UpperRowCell","mid","UpperRowCellLine","ProfilePic","ProfileName","GenderIcon","ParameterRow","ParameterCell","MiddleRowCell","BottomRowCell","RespModalFooterWrapper","ModalButtonsRow","ModalButtonWrapper","TotalPriceGreen","TotalPriceBold","MiddleRowCellIcon","MiddleRowCellKey","MiddleRowCellValue","ModalTextArea","ModalGroupSide","GroupDetailsHeading","GroupImageWrapper","GroupImage","GroupName","GroupParticipants","GroupAbout","TicketIcon","TicketDigits","TicketNote","RespContainer","BackIcon","RespModalHeader","header","ModalTitle","h2","BannerWrapper","Box","AvatarRow","RespContentContainer","BlockLabelContainer","LabelIcon","LabelContentContainer","FitnessDataRow","FitnessDataWrapper","RespNote","PriceRow","PriceData","CoachRowName","CoachRowImage","ExplainRejectionModal","useProgramRequestPreview","explanationModalOpen","setExplanationModalOpen","handleChat","groupPrice","getGroupPriceQuery","monthsLeft","getGroupPrice","orgFee","groupCoachMonthly","monthlyPrice","adminFee","totalPrice","MON","TUE","WED","THUR","FRI","SAT","SUN","ProgramRequest","checkProgramCode","alignSelf","fitnessLevel","place","injury","injuryDetails","equipments","eq","otherEquipment","healthCondition","healthConditionDetails","workoutLength","d","ttype","goals","note","paddingBottom","financial","fee","Dashboard","DashboardSummaryBox","DashboardMainBox","DashboardMainItem","DashboardBanner","DashboardBannerContent","BannerAvatar","pic","BannerImg","BannerText","BannerPrimaryText","BannerSecondaryText","DashboardBannerBackLine","ProfileWrapper","BannerWelcomeText","RespCard","TitleContainer","RespCardTitle","LoaderWrapper","SeeAllReqText","ProgramReqContainer","ProgramReqTitle","ProgramReqDesc","ProgramReqArrowIcon","BadgeContainer","BadgeWrapper","React","memo","clickHandler","arrowIcon","FitnessData","desc","this","ProgramRequestBlock","RespProgramRequest","refetchProgramRequests","generateFitnessDataArray","generateProgramDetailsArray","Home","requestModal","setRequestModal","isReqOpen","setIsReqOpen","currentUser","urlRequestId","handleSelectProgramRequest","queryObj","request_id","HeaderContainer","HeaderLink","HeaderMain","SideButtonsRelativeBox","SideButtonsAbsoluteBox","MobileHeaderContainer","HeaderSection","HeaderIcon","HeaderRight","BurgerIcon","HeaderLeft","ml","mr","GoBackIcon","FixedHeaderContainer","FIxedHeaderText","Dummy","Dot","NotificationsWrapper","NotificationsSection","SectionTitle","previous","MarkAsRead","NotificationRow","NotificationImage","NotificationStatus","NotificationText","NotificationDate","NotificationTextTitle","NotificationTextSubTitle","Fixedheader","handleBack","borderTop","NotificationsModal","mrd","assign","redirectUrl","imageUrl","subTitle","createdAt","fromNow","Header","notificationsOpen","setNotificationsOpen","CometChatManager","instance","initialized","authorized","region","myUserId","connect","onConversationUpdate","onConversationAdd","conversationLimit","buildConversationsRequest","conversations","fetchConversations","initialConversations","subscribeToMessages","subscribeToGroup","groupId","onMessage","messageLimit","subscribedGroupId","buildMessagesRequest","fetchMessages","initialMessages","findConversationByGroupId","CometChat","RECEIVER_TYPE","GROUP","USER","lastMessage","fetchUser","cometChatUser","newConversation","Conversation","createFromCometChatUser","fetchGroupUnreadMessageCount","unreadMessagesCount","limit","builder","MessagesRequestBuilder","withId","setGUID","setUID","messagesRequest","setLimit","build","conversationsRequest","ConversationsRequestBuilder","buildUsersRequest","searchString","usersRequest","UsersRequestBuilder","setSearchKeyword","getUser","String","fetchNext","cometChatConversations","conversation","createFromCometChatConversation","newConversations","localConversation","fetchPrevious","cometChatMessages","createFromCometChatMessage","fetchAllUnreadMessageCount","getUnreadMessageCountForAllUsers","unreadUsers","getUnreadMessageCountForAllGroups","unreadGroups","userId","getUnreadMessageCountForGroup","getUnreadMessageCountForUser","addMessageListener","messagesListenerId","MessageListener","onTextMessageReceived","textMessage","handleMessageReceived","onMediaMessageReceived","mediaMessage","unsubscribeFromGroup","unsubscribeFromMessages","removeMessageListener","cometChatMessage","receiverId","receiverType","unreadMessageCount","messageId","sendTextMessage","overrideReceiver","TextMessage","sendMessage","sendMediaMessage","MediaMessage","existing","getConversation","cometChatConversation","searchGroups","cometChatUsers","users","random","getInstance","initialize","appSetting","AppSettingsBuilder","subscribePresenceForAllUsers","setRegion","login","authToken","conversationType","conversationWith","guid","lastActiveAt","cometchatUser","receiver","sender","otherCometchatUser","attachment","sentAt","isOwned","customData","fileUrl","ChatContext","schema","Entity","idAttribute","SORT_MESSAGES","ChatProvider","loadingConversations","setLoadingCoversations","setConversations","currentConversation","setCurrentConversation","currentMessages","setCurrentMessages","loadingMessages","setLoadingMessages","fetchingMoreMessages","setFetchingMoreMessages","sendingMessage","setSendingMessage","hasMoreMessages","setHasMoreMessages","totalUnreadCount","setTotalUnreadCount","chatInstance","ChatManager","updateTotalUnread","handleConversationUpdate","toggleCurrentConversation","handleMessageUpdate","MESSAGE_TYPE","FILE","includes","IMAGE","VIDEO","fetchMoreMessages","moreMessages","cometchatToken","next","serializeConversations","MobileHeader","AvatarContainer","AvatarImage","AvatarCredentials","MobileAvatarContainer","MobileAvatarImage","MobileAvatarCredentials","MobileAvatar","toUpperCase","SidebarContainer","SidebarLink","LinkHoverTooltip","ChatUnreadIndicator","MobileSidebarContainer","MobileSidebarContent","SidebarRow","NameContainer","CoachTitle","CoachName","ItemsContainer","ItemContainer","ItemIcon","ItemText","LogoutContainer","LogoutText","handleNavigate","MobileSidebar","Sidebar","LayoutContainer","MainArea","Layout","innerComponent","Export","Stats","Media","Calendar","ProfileContainer","ProfileNavigation","ProfileMainEdgeColumn","bg","ProfileMainCenterColumn","ProfileNavHeading","ProfileNavLink","ProfileImageBlock","PdfImageBlock","ProfileImageFrame","PdfImageFrame","ProfileId","ProfileIdInfo","PdfImage","CameraIconPdf","BorderLabel","BorderLabelEditIcon","LabeledInfoBlock","ChangesSavedIcon","LoadingDot","ChangesSaved","autoSize","PhysicalInfoBox","PhysicalInfoItem","PhysicalInfoItemLabel","PersonalInfoContainer","AboutContainer","PDFContainer","ScrollableContainer","ProfessionalInfoContainer","ProfessionalInfoItem","ProfessionalInfoItemLabel","ProfessionalInfoGreenCircle","ProfessionalInfoItemValue","ExperienceWrapper","PseudoSpeciality","CredentialItem","DownloadButton","PortfolioScroll","PortfolioWrapper","PortfolioItemWrapper","blur","addBlock","DeleteSign","PseudoPortfolioItem","PricingWrapper","PricingHeader","PricingHeaderItem","ProfileCode","ProfileCodeValue","FlexWrapperSpaceBet","AddCouponButton","AddCouponButtonMobileText","AddCouponButtonPlus","PricingListWrapper","PricingListHeading","ProgramsWrapper","SingleProgramWrapper","PseudoSingleProgram","ProgramImage","ProgramImageFade","ProgramImageLines","ProgramName","PriceHeading","PriceInputWrapper","AdvencedOptions","SettingsWrapper","SettingsInfoBlock","SettingsInputLabel","LanguageWrapper","LanguageLabel","TraineesWrapper","SettingUnits","UnitBlock","UnitContainer","Pusher","TermsAndPrivacy","StyledLink","CoachesWrapper","CoachFeeWrapper","CoachFeeInput","CardContainer","TemplateCardContainer","withoutFooterButton","PseudoTraineeCard","PseudoTemplateCard","PseudoParticipantCard","CardHeader","backgroundUrl","CardHeaderIconCell","StatusCircle","MessengerIcon","TrashIcon","TrashIconImg","ViewIcon","ViewIconImg","MessengerIconImg","cancelBtn","DeleteEditOrgGroup","DuplicateIconCorner","DuplicateIconImg","HeaderProfileCell","profilePic","CardBody","ParticipantCardBody","CardName","CardLevel","CardInfo","CardInfoRow","CardInfoText","CardFooter","FooterLine","ParticipantCardFooter","ParticipantHealthCell","ParticipantHealthCellValue","ParticipantPhysicsWrapper","ParticipantPhysic","physIcon","flexEnd","TraineeRow","TraineeTD","TraineeRowProfilePic","MobileCardWrapper","MobileProfilePic","MobileCardBody","MobileCardInfoText","RadioWrapper","RadioIcon","selected","RadioText","RadioButton","buttonStyle","textStyle","hideMb","HeaderText","Body","AreaHeaderRow","IconButton","OptWrapper","Footer","IconsBody","IconWrapper","IconContainer","Icon","ErrorText","MessageIcon","modalStyles","IconsModal","apply","appliedIcon","getIconsQuery","setSelected","toggle","handleChoose","getIcons","letterSpacing","lineHeight","errorMessages","MessageOption","MessageValue","WorkoutMessageModal","existingMessage","getCalendarMessagesQuery","setMessageType","setMessage","setText","setIcon","isIconsOpen","setIsIconsOpen","toggleIconsModal","setError","checkErrors","handleMessageCreate","handleSubmit","toLocaleLowerCase","onAfterClose","getCalendarMessages","Container","Content","TemplateHeader","TemplateInputWrapper","TemplateLengthItem","require","default","TraineesFilters","FiltersTitle","LayoutOption","grid","FiltersForm","FiltersFormTitlte","OptionName","OptionCircle","OptionRow","Value","getValue","ValueContainer","hasValue","state","isSelected","valueContainer","SelectStatus","IndicatorSeparator","SingleValue","isSearchable","isDisabled","ValuesWrapper","AbsoluteWrapper","ValueLabel","MultiValueDeleteX","OptionsHeading","OptionWrapper","CheckBox","circleBg","circleBorder","MultiValueItem","MultiValueName","MultiValueCircle","OptionOption","OptionCheck","dropDownMaxHeight","indicatorsContainer","singleValue","dropdownIndicator","multiValue","menuList","isRt1","CheckBoxOption","getStyles","ReactSelectWitness","isMulti","checkBoxes","onDeleteOne","maxSelected","currentInnerValue","setCurrentInnerValue","menuIsOpen","setMenuIsOpen","warningActive","setWarningActive","selectRef","r","classPrefix","onMenuOpen","onMenuClose","removeSelected","hideSelectedOptions","closeMenuOnSelect","backspaceRemovesValue","persistMultiPlaceholder","Menu","TemplateFilter","modalLayout","specList","templateLengthMonth","TemplateCard","layout","hideDuplicate","copyOpen","setCopyOpen","duplicateTemplateMutation","duplicateTemplate","handleDuplicate","trainingTypesShortened","TemplateCardsPart","TemplateCardsScrollable","TemplateCardsWrapper","ChooseTemplateModal","selectedTemplate","programRequest","CalendarDragContext","CalendarDragProvider","isDragging","setIsDragging","attributeName","attributeType","attributeValue","when","nullable","attribute","blockName","blockType","BlockSchema","CalendarSchema","max","CoachFeeSchema","WorkoutDropbox","noText","draggingBlock","pushCallback","tooltipOpen","setTooltipOpen","dropBoxRef","editingBlockIndex","exes","uniqueExercises","filledBlock","onMouseOver","onMouseOut","AddCalendarModal","showBeforeExitModal","setShowBeforeExitModal","formikRef","hasUnsavedChanges","innerRef","enableReinitialize","insert","clone","previousOne","nextOne","red","onDragStart","MessageText","ConfirmModal","cancelText","okText","statusToBorderColor","CalendarContainer","ButtonText","CalendarHeading","CalendarBeginning","CalendarBeginningDateWrapper","CalendarUploadTemplate","CalendarUploadIcon","CalendarMain","CalendarHeadingTableWrapper","CalendarHeadingTable","RelativeBox","CalendarTableWrapper","CalendarTable","CopyWeekButton","paste","CalendarThead","thead","CalendarTh","CalendarTd","CalendarDayNum","isToday","CalendarDayPlusIcon","isOepn","CalendarDayTitle","clickable","Ellipsis","DayContainer","DayHeader","DayBody","DayFooter","DayFooterText","DayWorkout","CalendarDayDate","DropdownContainer","DropdownContainerSmall","HoverButtons","HoverContainer","showDroppable","showReady","HoverButton","EmptyActions","CardSecondaryContent","CardSecondaryContentButton","CardSecondaryContentButtonIcon","TooltipHeader","TooltipHeaderIcon","TooltipBody","TooltipPrimaryContent","TooltipSecondaryContent","DayDropdownContent","HoveredTitle","DayDropdownButton","DayDropdownButtonIcon","BadgeName","BadgeValue","Badge","DayDropdown","isFirstRow","buttonSize","hidden","buttonProps","HoverActions","onDelete","onEdit","showEdit","showDelete","droppable","workoutId","isAbove","setIsAbove","updateCalendarDayMutation","updateCalendarDay","client","handleDrop","readFragment","fragment","getProgramCalendarFragment","fragmentName","writeFragment","criteria","editIcon","deleteIcon","SecondaryContentTooltip","primaryContent","secondaryContent","onEditClick","onDeleteClick","hideActions","ProgramCalendarDay","firstRow","openModal","openMessage","copied","handleCopy","openMeetingModal","openOnlineMeetingModal","hideDate","handleDownload","isPast","thatday","isAfter","downloadWorkout","colorStatus","doneStatuses","statusForColor","statusToText","isDropOpen","setIsDropOpen","closeDrop","openMessageEdit","openMessageCreate","openWorkoutEdit","openWorkoutCreate","dropdownItems","hideTop","Boolean","hideMid","allHidden","openDrop","messageIcon","openEditMeeting","ModalInput","PersonalMeetingSchema","LiveMeetingSchema","MeetingModal","editCalendar","DateTimeFormat","resolvedOptions","timeZone","textOverflow","whiteSpace","AddMessageTooltip","addMessageOpen","setAddMessageOpen","setCustomMessage","reinitialize","discardChanges","validate","currErr","invalid","borderWidth","AddMeetingTooltip","userTimezone","addMeetingOpen","setAddMeetingOpen","setTimezone","setLocation","weekDaysShort","WeekDayColumn","existingWorkout","submitDay","weekDay","dayContent","deleteDraggingBlock","setDeleteDraggingBlock","handleColumnPaste","copiedColumn","setCopiedColumn","isTemplate","setCollapsed","activeDragOverIndex","setActiveDragOverIndex","hasChanged","initial","least","isBefore","ONLINE_MEETING","FACE_MEETING","clientY","innerHeight","AddCalendarWeekModal","weekN","setWeekN","formikrefs","changeIndexModalOpen","setChangeIndexModalOpen","getDates","weekNumber","getExistingWorkouts","weekStartDate","weekCalendars","cal","existingWorkouts","pasteFromPreviousWeek","prevWeek","prevWeekCalendar","prevWeekExistingWorkouts","prevWeekFormValues","createFormValues","pasteFormData","checkAllOnUnsavedChanges","unsavedChanges","promises","submitAll","validationPromises","res","constructor","timeout","changed","submitForm","contentRef","scrollBy","behavior","catch","AlertModal","handleOk","is","coachesObj","DiscountCouponSchema","exclusive","params","parent","ProgramCouponSchema","ExtensionCouponSchema","ExtensionCouponModal","programRequestUid","coupon","confirmOpen","setConfirmOpen","createExtensionCouponMutation","createExtensionCoupon","updateExtensionCouponMutation","updateExtensionCoupon","handleCreate","jsPDF","API","events","addFileToVFS","addFont","calculateBlockDimensionsForLandscape","maxTextWidth","pageHeight","numberOfColumns","doc","setFontSize","columns","setFont","titleText","titleHeight","getTextDimensions","currentColumn","lines","exerciseText","exDimensions","newSunText","descriptions","reverseHebrewWords","subTextDimensions","exHeight","Error","requiredHeight","usedColumns","calculateBlockHeightAndWidthForLandscape","blockWidth","withContinue","blocksPerPage","blockHeight","numberOfRows","textWidth","numberOfColumnsUsed","numberOfColumnsInBlock","tryToFitBlockInContinue","numberOfAvilibleColumnsInBlockWidth","addBlockToPage","currentPage","pageWidth","column","getNumberOfBlocks","numberOfUsedColumns","getNumberOfColumnsUsed","currentColumnIdx","fixWhiteSpace","totalColumns","whiteSpaceForEachColumn","getNumberOfColumnsWidth","fixWhiteSpaceBetweenColumns","BLOCK_MARGIN","fixWhiteSpaceBetweenRows","getBlocksLocationPerPageForLanscape","pages","addBlockToPageLandscape","maxNumberOfColumns","isEmptyPage","pop","firstAlphabetCharType","char","hebrewRegex","segments","segment","word","splitAndProcessText","UseLandscape","dateStr","getFontList","internal","pageSize","getWidth","getHeight","page","pageIndex","addPage","setFillColor","rect","addImage","setTextColor","xOffset","yOffset","roundedRect","currentColumnXOffset","textYOffset","titleDimensions","renderTitle","textDimensions","textHeight","setLineDash","line","drawBlock","getColumnHeight","fixWhiteSpaceInCurrentPage","fixWhiteSpaceInCurrentColumn","addANewPage","pageWeight","addBlockToCurrentColumn","spaceToAdd","handleBlockInFullPageSize","isFullPage","maxBlocksInPage","curBlocksInPage","addBlockToPageRecursive","handleBlockInColumnSize","addANewColumn","calculateNumberOfBlocksInPage","calculateBlockHeightForPortrait","textSplited","firstColumnHeight","secondColumnHeight","getBlocksLocationPerPageForPortrait","calculateBlockHeightAndWidthForPortrait","usePortrait","numberOfBlockPerPage","currentColumnHeight","remainingHeight","subText","formatTime","remainingSeconds","padStart","convertBlocks","classicStrengthBlock","pilatesRBlock","intervalBlock","amrapBlock","rftBlock","strengthBlock","superSetsBlock","emomBlock","runBlock","restBlock","customBlock","getBlockTitle","getCustomLines","getRestLines","getRunLines","getEmomLines","getSuperSetLines","getStrengthLines","getRftLines","getAmrapLines","numberOfRounds","getRunWeight","getRunWeightUnit","getWeight","getWeightUnit","getIntervalLines","getClassicStrengthLines","getPilatesRLines","worktime","charAt","useDownloadWorkoutAsPDF","orientation","UsePortrait","FieldWrapper","CernteredContentFlex","DaysContainer","DayWrapper","DownloadWorkoutModal","setOrientation","now","setWorkoutName","imageBase64","setImageBase64","setNumberOfBlocksPerPage","fetch","method","mode","response","arrayBuffer","buffer","URL","createObjectURL","Blob","newNum","handleFontSize","prv","ProgramCalendar","isOngoing","extensionCoupon","daysCountUntilEnd","nonChangableDate","firstDay","edittingDay","setEdditingDay","openResults","setOpenResults","openDownloadModal","setOpenDownloadModal","templateOpenModal","setTemplateOpenModal","meetingModalContent","setMeetingModalContent","addCalendarModalWeek","setAddCalendarModalWeek","todayRef","currentWeek","setCurrentWeek","pasteWeekArgs","setpasteWeekArgs","pasteWorkoutArgs","setpasteWorkoutArgs","closeWorkoutModal","closeResultsModal","closeDownloadModal","sureMessage","dateInputValue","extModal","setExtModal","textDecoration","isSame","GroupSchema","AddGroupModal","userSpecialities","withSpecs","specials","currentParticipants","getOrgCoaches","ParticipantCard","participant","handleOpenMoreInfo","hasUnread","Text","Checkbox","ChatContainer","ChatColumn","ConversationsHeader","ConversationsHeaderText","ChatDetailsHeader","ChatDetailsHeaderText","SearchWrapper","SearchIcon","SearchIconPng","SearchInput","ConversationsList","ConversationItemContainer","ConversationItemColumn","ConversationItemName","ConversationItemLastMessage","ConversationItemInfo","ConversationItemTime","ConversationItemUnreadIndicator","BorderIndicator","userAgent","AvatarName","MessageListContainer","MessageContainer","MessageContent","rtl","hasAvatar","ChatFooter","AttachmentButtonIcon","SendButton","SendIcon","MessageInputContainer","MessageSentAt","MessageVideo","MessageImage","Loading","SendingIndicator","FetchingIndicator","ChatUserInfo","ChatInfoRow","ChatUserName","ChatInfoMetaContainer","ChatInfoMetaRow","ChatInfoMetaIcon","ChatInfoMetaName","ChatInfoMeta","RequestWrapper","ParticipantContainer","PartName","PartNameWrapper","StyledTextarea","TextareaAutosize","MobileList","Paper","MessageHeaderContainer","HeaderInfo","InfoCol","center","InfoTitle","InfoSubTitle","AttachmentButton","handleFileOpen","click","showAvatar","updatedAt","TEXT","MessageList","hideHeader","endedFourOrMoreDaysAgo","fourDaysAgo","subtract","messageText","setMessageText","handleMessageSend","setScrolled","messageListBottomRef","scrolled","handleScrollToTop","scrollTop","onScroll","maxRows","shiftKey","StatusBar","StatusTitle","StatusText","StatusMessageContainer","StatusMessage","isDue","Sidemenu","SideHeader","AvatarContent","TraineeNameTitle","TraineeNameSubTitle","SideContent","SideInfo","InfoHeader","InfoHeaderText","InfoHeaderEditIcon","Cell","CellTitle","CellText","Row","InfoCell","cellProps","MinBtnContainer","MinBtnIcon","MinimizeButton","MinIcon","ContentHeader","Tabs","TabText","TabBorder","Tab","ButotnContainer","GroupIdBadge","OpacityAnimation","ParticipantOfSlider","ParticipantSliderItem","CancelProgramModal","typeText","mailHref","submitButtonText","TraineeInfoModal","Program","edittingGroup","setEdditingGroup","sliderIndex","setSliderIndex","sendGroupProgramModal","setSendGroupProgramModal","setTab","statusLoading","setStatusLoading","cancelModal","setCancelModal","traineeInfoModalContent","setTraineeInfoModalContent","sendProgramMutation","resetStore","sendProgram","handleSendProgram","diffHours","diff","convId","convo","msLeft","st","flexWrap","flexShrink","screenSizes","tablet","laptopS","laptopM","desktopS","desktopM","Theme","CustomEditableInfo","EditAboutMeModal","getInitialValues","CoachProfilePersonal","portfolioToBeDeleted","setPortfolioToBeDeleted","openFile","setOpenFile","download","rel","Fragment","PricingTable","PricingTableTh","PricingTableLeftColumnTd","PricingTableTd","ButtonContainer","AdvancedPriceModal","vals","frequency","CloseX","DaysWrapper","CoachRow","CoachRowCheck","CoachList","ProgressLineOrganization","maxValue","minValue","ProgramCodeModal","isDiscount","isProgram","ttUids","setTTUids","delayedSearchName","xx","fromEntries","borderLeft","PricingTableWrapper","PricingTableHeadTR","PricingTableTR","PricingTableTdCopy","PricingTableTdAction","SortSpecification","asc","ListItemContainer","ItemValue","ValueText","ItemDetails","ItemCode","ItemTypes","TrainingType","ItemHeader","HeaderTitle","ModalBody","ModalCode","InfoContainer","InfoValue","Info","MobileDetailCouponItem","openCouponModal","handleOpen","MobileCouponDetailsModal","isDetails","usage","CouponTable","setEdditingCode","coupons","setCoupon","closeCouponModal","select","execCommand","DetailCouponTable","deleteUid","setDeleteUid","copyCodeToClipboard","deleteProgramDetailCoupon","deleteProgramDetail","handleDelete","CoachProfilePricing","activeTab","setActiveTab","activeCode","setActiveCode","activeProgram","setActiveProgram","priceLoading","setPriceLoading","organisationLoading","setOrganisationLoading","detailsCouponsLoading","PricingList","isNaN","DiscoutCodes","ProgramCodes","getProgramDetailsCoupons","clearIndicator","indicatorSeparator","CoachProfileSettings","languages","unitWeight","unitLength","CoachProfile","destructed","ignoreQueryPrefix","sub_tab","subActive","TraineeCard","handleEdit","programMonths","couponCode","cancelDisabled","itemBg","MultiValue","ReactSelectMulti","blurInputOnSelect","borderRight","ProgramsHeader","additionalButton","setLayout","statusFilter","nameFilter","onlyStatus","AnIcon","sortingOrder","Trainees","sortedTrainees","borderCollapse","borderSpacing","SignInWrapper","SignInColumn","minResolution","WelcomeAbsolute","NonFlexWrapper","DoNotHaveAcount","SignUpLink","SignInCell","collSpan","rowSpan","generatedStyle","ErrorAuth","AuthErrorIcon","ForgotPasswordLinkWrapper","ForgotPasswordLink","ShowPasswordIcon","SignIn","showPassword","setShowPassword","showPasswordIcon","autocomplete","GroupCard","Groups","modalGroup","setmModalGroup","groupToBeDeleted","setGroupToBeDeleted","submitGroup","ConversationItem","ConversationNew","Participant","MessageHeader","goBack","chatImage","imageName","Chat","searchTerm","setSearchTerm","delayedTerm","convos","lowered","loc","newConv","groupData","finder","c","overflowY","NotFound","ProgramTemplate","deleteModal","setDeleteModal","TermsOfService","class","TemplateSchema","AddTemplateModal","Templates","addTemplateModal","setAddTemplateModal","CallContainer","CallContent","BeforeCallContainer","ReadyText","VideoCall","useRouteMatch","joined","setJoined","sessionID","callSettings","CallSettingsBuilder","enableDefaultLayout","setSessionID","setIsAudioOnlyCall","startCall","OngoingCallListener","onCallEnded","call","Title","SubTitle","ForgotPassword","apiError","setApiError","sendResetPasswordLinkMutation","sendResetPasswordLink","sent","setSent","submit","ResetPassword","didReset","setDidReset","resetPasswordMutation","setPasswordToOrgMutation","setPasswordToOrg","resetError","setPass","setPasswordToCoach","smallText","FinanceTableRow","numOfTrainees","gridColumn","boxSizing","payDay","traineeAvatar","FinanceMinimalPreview","FinanceChart","FinanceChartContent","FinanceTable","FinanceMainGrid","FinanceTableHeader","FinanceTableHeaderText","NotDollarSign","DollarSignSVG","SimpleLineChart","ResponsiveContainer","AreaChart","XAxis","dataKey","displayName","axisLine","YAxis","CartesianGrid","strokeDasharray","Tooltip","Area","stroke","objectFit","perHour","circleBrdr","StatusBorder","AllTrainees","ONETOONE","targetProgram","target_url","ExercisesFilters","ExercisesRow","ExercisesTD","LeftIconImg","UpIconImg","DownIconImg","RightIconImg","VideoIconImg","useExercisePage","getExercisesPaginatedQuery","PaginatedNumbers","curPage","setCurrentNumber","maxPage","list","VideoPreview","videoUrl","availableTypes","availableCategories","Exercises","filters","setFilters","borderBottom","fontWeight","getExercisesPaginated","App","exact","Finance","sign_up","types","Wrapper","CloseBtn","AlertSnack","root","Modal","setAppElement","AlertOptions","positions","BOTTOM_CENTER","containerStyle","ReactDOM","StrictMode"],"mappings":"41GAAA,OAqIA,a,wn/jBCrIAA,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,k7K,gFCAjBD,EAAOC,QAAU,IAA0B,8C,2DCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,+C,4FCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,cCA3CD,EAAOC,QAAU,85M,gBCAjBD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,+B,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,iD,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,gC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,uC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,mD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,iC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,2C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,cCA3CD,EAAOC,QAAU,spK,gBCAjBD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,qC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,mC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,sC,gBCA3CD,EAAOC,QAAU,IAA0B,oC,gBCA3CD,EAAOC,QAAU,IAA0B,yC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,gC,gBCA3CD,EAAOC,QAAU,IAA0B,kC,kBCA3CD,EAAOC,QAAU,IAA0B,+C,gBCA3CD,EAAOC,QAAU,IAA0B,gD,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,cCA3CD,EAAOC,QAAU,suG,gBCAjBD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,wC,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,oD,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,wC,qBCA3CD,EAAOC,QAAU,IAA0B,4C,gBCA3CD,EAAOC,QAAU,IAA0B,0C,gBCA3CD,EAAOC,QAAU,IAA0B,6C,gBCA3CD,EAAOC,QAAU,IAA0B,8C,gBCA3CD,EAAOC,QAAU,IAA0B,sC,kBCA3CD,EAAOC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AAa,oCAPV,wDAAH,wDAkBlB,MAAO,CAAE8L,oBAAmBQ,oBAAmBE,eAAcC,QAN7C,WACdra,aAAauH,WAAW,SACxB+S,GAAaC,aACb3W,EAAQmC,KAAKlE,GAAKK,UAGkD6X,sB,85HCwHlES,GAAQ,CACZC,UACAC,gBAEAC,6BACAC,uBACAC,kBACAC,gBACAC,kBAEAC,cACAC,eAEAC,cACAC,gBACAC,eACAC,gBACAC,qBACAC,eACAC,kBACAC,eACAC,uBACAC,iBACAC,cACAC,sBACAC,kBAEAC,wBACAC,cACAC,oBACAC,cACAC,oBACAC,eACAC,qBACAC,kBACAC,wBACAC,kBACAC,wBACAC,eAEAC,iBACAC,oBACAC,UACAC,WACAC,OACAC,gBACAC,kBACAC,cACAC,gBAEAC,wBACAC,yBACAC,kBACAC,aACAC,iBACAC,eACAC,YACAC,WACAC,mBACAC,UACAC,UACAC,UACAC,UACAC,YAEAC,cACAC,eACAC,SACAC,cACAC,YACAC,UACAC,WACAC,cACAC,gBACAC,kBACAC,aAEAC,aACAC,mBAEAC,qBACAC,qBACAC,mBACAC,kBAEAC,qBACAC,2BACAC,oBACAC,0BACAC,oBACAC,0BACAC,qBACAC,2BACAC,UACAC,eACAC,QACAC,UACAC,WACAC,sBACAC,cACAC,qBACAC,oBACAC,cACAC,iBACAC,UACAC,gBACAC,cACAC,gBACAC,cACAC,cACAC,aACAC,eACAC,mBACAC,eACAC,kBACAC,mBACAC,oBACAC,aACAC,eACAC,cACAC,gBACAC,gBACAC,sBACAC,gBACAC,oBACAC,2BACAC,sBACAC,YACAC,YACAC,WACAC,YACAC,YACAC,SACAC,YACAC,gBACAC,gBACAC,oBACAC,oBACAC,iBACAC,kBACAC,kBACAC,gBACAC,kBACAC,eACAC,mBACAC,qBACAC,eACAC,gBAEAC,gBACAC,aACAC,mBACAC,iBACAC,uBACAC,gBACAC,sBACAC,qBACAC,gBACAC,sBACAC,aACAC,cACAC,mBACAC,UACAC,gBACAC,kBACAC,wBACAC,mBACAC,gBACAC,YACAC,eACAC,gBACA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","file":"static/js/main.e29c6854.chunk.js","sourcesContent":["import './graphql.d';\n\n// queries\nimport meQuery from './queries/me.gql';\nimport getUsersQuery from './queries/get-users.gql';\nimport getRolesQuery from './queries/get-roles.gql';\nimport getSpecialitiesQuery from './queries/get-specialities.gql';\nimport getSpecialityQuery from './queries/get-speciality.gql';\nimport getDiplomasQuery from './queries/get-diplomas.gql';\nimport getAllCoachesQuery from './queries/get-coaches.gql';\nimport getCoachesForOrganisationQuery from './queries/get-coaches-for-organisation.gql';\nimport getCoachByIdQuery from './queries/get-coach.gql';\nimport getTraineeByIdQuery from './queries/get-trainee.gql';\nimport getAllTraineesQuery from './queries/get-trainees.gql';\nimport getExercisesQuery from './queries/get-exercises.gql';\nimport getExercisesPaginatedQuery from './queries/get-exercises-paginated.gql';\nimport getExerciseByIdQuery from './queries/get-exercise.gql';\nimport getProgramsQuery from './queries/get-programs.gql';\nimport getProgramQuery from './queries/get-program.gql';\nimport getPricesQuery from './queries/get-prices.gql';\nimport getGoalsQuery from './queries/get-goals.gql';\nimport getGoalQuery from './queries/get-goal.gql';\nimport getCouponsQuery from './queries/get-coupons.gql';\nimport getCouponQuery from './queries/get-coupon.gql';\nimport getTrainingTypesQuery from './queries/get-training-types.gql';\nimport getTrainingTypeQuery from './queries/get-training-type.gql';\nimport getCalendarMessagesQuery from './queries/get-calendar-messages.gql';\nimport getCalendarMessageQuery from './queries/get-calendar-message.gql';\nimport getIconsQuery from './queries/get-icons.gql';\nimport getCoachGroupsQuery from './queries/get-coach-groups.gql';\nimport getGroupsForAdminQuery from './queries/get-groups-for-admin.gql';\nimport getGroupForAdminQuery from './queries/get-group-for-admin.gql';\nimport getOrgGroupsQuery from './queries/get-org-groups.gql';\nimport getCoachGroupQuery from './queries/get-coach-group.gql';\nimport checkProgramCodeQuery from './queries/check-program-code.gql';\nimport getTraineeByUserQuery from './queries/get-user-trainee.gql';\nimport getProgramPaymentsQuery from './queries/get-program-payments.gql';\nimport getNotificationsQuery from './queries/get-notifications.gql';\nimport getCoachWorkoutsQuery from './queries/get-coach-workouts.gql';\nimport getProgramTemplatesQuery from './queries/get-program-templates.gql';\nimport getProgramTemplateQuery from './queries/get-program-template.gql';\nimport getCoachProgramsQuery from './queries/get-coach-programs.gql';\nimport getCustomTemplatesQuery from './queries/get-custom-templates.gql';\nimport getUnreadCountQuery from './queries/get-unread-count.gql';\nimport getEarningsQuery from './queries/get-earnings.gql';\nimport getProgramDetailsCouponsQuery from './queries/get-details-coupons.gql';\nimport getProgramsForAdminQuery from './queries/get-programs-for-admin.gql';\nimport getDashboardDataQuery from './queries/get-dashboard-data.gql';\nimport getCoachEarningsQuery from './queries/get-coach-earnings.gql';\nimport getOrgEarningsQuery from './queries/get-org-earnings.gql';\nimport getGroupPriceQuery from './queries/get-group-price.gql';\nimport getCalendarsQuery from './queries/get-calendars.gql';\nimport getCalendarByUidQuery from './queries/get-calendar-by-uid.gql';\nimport getOrgCoachesQuery from './queries/get-org-coaches.gql';\nimport getOrganisationsQuery from './queries/get-organisations.gql';\nimport getOrganisationQuery from './queries/get-organisation.gql';\nimport getCoachTraineesQuery from './queries/get-coach-trainees.gql';\nimport getOrganisationTraineeQuery from './queries/get-organisation-trainees.gql';\n\n// mutations\nimport createCoachPersonalMutation from './mutations/signup/coach-personal.gql';\nimport createCoachProfessionalMutation from './mutations/signup/coach-professional.gql';\nimport createOrUpdateAdminCodeMutation from './mutations/coupon/create-or-edit-coupon.gql';\nimport deleteAdminCodeMutation from './mutations/coupon/delete-coupon.gql';\nimport editCoachMutation from './mutations/profile/coach-edit.gql';\nimport uploadDiplomaMutation from './mutations/uploads/upload-diploma.gql';\nimport editCoachFromAdminMutation from './mutations/coach/edit_coach_from_admin.gql';\nimport deleteCoachMutation from './mutations/coach/delete_coach.gql';\nimport createSpecialityMutation from './mutations/speciality/create-speciality.gql';\nimport editSpecialityMutation from './mutations/speciality/edit-speciality.gql';\nimport deleteSpecialityMutation from './mutations/speciality/delete-speciality.gql';\nimport createExerciseMutation from './mutations/exercise/create-exercise.gql';\nimport createCoachExerciseMutation from './mutations/exercise/create-coach-exercise.gql';\nimport editCoachExerciseMutation from './mutations/exercise/edit-coach-exercise.gql';\nimport editExerciseMutation from './mutations/exercise/edit-exercise.gql';\nimport deleteExerciseMutation from './mutations/exercise/delete-exercise.gql';\nimport addPricingMutation from './mutations/pricing/add-pricing.gql';\nimport changeProgramStatusMutation from './mutations/program/change-program-status.gql';\nimport setPasswordMutation from './mutations/coach/set_password.gql';\nimport verifyEmailMutation from './mutations/coach/verify_email.gql';\nimport signInMutation from './mutations/coach/sign_in.gql';\nimport uploadPortfolioMutation from './mutations/profile/coach-upload-portfolio.gql';\nimport createCalendarMutation from './mutations/program/create-calendar.gql';\nimport createGoalMutation from './mutations/goal/create-goal.gql';\nimport editGoalMutation from './mutations/goal/edit-goal.gql';\nimport deleteGoalMutation from './mutations/goal/delete-goal.gql';\nimport createTrainingTypeMutation from './mutations/training-type/create-training-type.gql';\nimport editTrainingTypeMutation from './mutations/training-type/edit-training-type.gql';\nimport deleteTrainingTypeMutation from './mutations/training-type/delete-training-type.gql';\nimport createCalendarMessageMutation from './mutations/calendar-message/create-calendar-message.gql';\nimport createProgramCalendarMutation from './mutations/calendar/create-program-calendar.gql';\nimport deleteCalendarMessageMutation from './mutations/calendar-message/delete-calendar-message.gql';\nimport editCalendarMessageMutation from './mutations/calendar-message/edit-calendar-message.gql';\nimport deleteCalendarMutation from './mutations/calendar/delete-calendar.gql';\nimport editCalendarMutation from './mutations/calendar/edit-calendar.gql';\nimport sendProgramMutation from './mutations/program/send-program.gql';\nimport editWorkoutMutation from './mutations/workout/edit-workout.gql';\nimport editCoachProgramMutation from './mutations/program/edit-coach-program.gql';\nimport createCoachGroupMutation from './mutations/coach-group/create-coach-group.gql';\nimport removeGroupMutation from './mutations/coach-group/remove-coach-group.gql';\nimport updateCalendarDayMutation from './mutations/calendar/update-calendar-day.gql';\nimport coachCommentMutation from './mutations/feedbacks/coach-comment.gql';\nimport createCoachProgramTemplateMutation from './mutations/template/create-program-template.gql';\nimport deleteProgramTemplateMutaton from './mutations/template/delete-template.gql';\nimport uploadTemplateMutaton from './mutations/template/upload-template.gql';\nimport notificationMarkAsReadMutation from './mutations/notification/notification-mark-as-read.gql';\nimport notificationMarkAllAsReadMutation from './mutations/notification/notification-mark-all-as-read.gql';\nimport sendResetPasswordLinkMutation from './mutations/user/send-reset.gql';\nimport resetPasswordMutation from './mutations/user/reset-password.gql';\nimport deleteMeetingMutation from './mutations/calendar/delete-meeting.gql';\nimport duplicateTemplateMutation from './mutations/template/duplicate-template.gql';\nimport createOrUpdateProgramDetailsCouponMutation from './mutations/coupon/create-detail-coupon.gql';\nimport createExtensionCouponMutation from './mutations/coupon/create-extension-coupon.gql';\nimport updateExtensionCouponMutation from './mutations/coupon/update-extension-coupon.gql';\nimport deleteProgramDetailCoupon from './mutations/coupon/delete-detail-coupon.gql';\nimport deletePortfolioMutation from './mutations/profile/delete-portfolio.gql';\nimport copyWorkoutMutation from './mutations/workout/copy-workout.gql';\nimport createOrganisationMutation from './mutations/organisation/create-organisation.gql';\nimport updateOrganisationMutation from './mutations/organisation/update-organisation.gql';\nimport removeOrganisationMutation from './mutations/organisation/remove-organisation.gql';\nimport addCoachesToOrganisationMutation from './mutations/organisation/add-coaches-to-org.gql';\nimport setPasswordToOrgMutation from './mutations/organisation/set-password-org.gql';\nimport editOrganisationMutation from './mutations/organisation/edit-organisation.gql';\nimport cancelProgramByAdminMutation from './mutations/program/cancel-program-admin.gql';\nimport removeOrganisationGroupMutation from './mutations/organisation/remove-organisation-group.gql';\nimport cancelFreeProgramMutation from './mutations/program/cancel-free-program.gql';\nimport cancelParticipantMutation from './mutations/program/cancel-participant.gql';\nimport blockTraineeMutation from './mutations/trainee/block-trainee.gql';\n\n// subscriptions\nimport newNotificationSubscription from './subscriptions/new-notification.gql';\n\n// fragments\nimport { getProgramCalendarFragment } from './read-fragments';\n\nexport {\n meQuery,\n getRolesQuery,\n getUsersQuery,\n getDashboardDataQuery,\n getSpecialitiesQuery,\n getSpecialityQuery,\n getGoalsQuery,\n getGoalQuery,\n getTraineeByIdQuery,\n getCouponsQuery,\n getAllTraineesQuery,\n getCouponQuery,\n getProgramsForAdminQuery,\n getCoachesForOrganisationQuery,\n getGroupForAdminQuery,\n getCustomTemplatesQuery,\n createOrUpdateAdminCodeMutation,\n deleteAdminCodeMutation,\n deleteCoachMutation,\n getGroupsForAdminQuery,\n createGoalMutation,\n editGoalMutation,\n deleteGoalMutation,\n getTrainingTypesQuery,\n getTrainingTypeQuery,\n createTrainingTypeMutation,\n editTrainingTypeMutation,\n deleteTrainingTypeMutation,\n createCoachPersonalMutation,\n createCoachProfessionalMutation,\n editCoachMutation,\n uploadDiplomaMutation,\n getAllCoachesQuery,\n editCoachFromAdminMutation,\n getCoachByIdQuery,\n getDiplomasQuery,\n getExercisesQuery,\n createSpecialityMutation,\n editSpecialityMutation,\n deleteSpecialityMutation,\n createExerciseMutation,\n createCoachExerciseMutation,\n getExerciseByIdQuery,\n deleteExerciseMutation,\n editExerciseMutation,\n editCoachExerciseMutation,\n getProgramsQuery,\n getProgramQuery,\n getPricesQuery,\n addPricingMutation,\n changeProgramStatusMutation,\n setPasswordMutation,\n verifyEmailMutation,\n signInMutation,\n uploadPortfolioMutation,\n createCalendarMutation,\n getCalendarMessagesQuery,\n getCalendarMessageQuery,\n getIconsQuery,\n createCalendarMessageMutation,\n createProgramCalendarMutation,\n deleteCalendarMessageMutation,\n editCalendarMessageMutation,\n deleteCalendarMutation,\n editCalendarMutation,\n sendProgramMutation,\n editWorkoutMutation,\n editCoachProgramMutation,\n createCoachGroupMutation,\n getCoachGroupsQuery,\n getOrgGroupsQuery,\n getCoachGroupQuery,\n getTraineeByUserQuery,\n checkProgramCodeQuery,\n updateCalendarDayMutation,\n getProgramCalendarFragment,\n getCoachWorkoutsQuery,\n coachCommentMutation,\n getProgramPaymentsQuery,\n createCoachProgramTemplateMutation,\n getNotificationsQuery,\n newNotificationSubscription,\n getProgramTemplatesQuery,\n getProgramTemplateQuery,\n deleteProgramTemplateMutaton,\n getCoachProgramsQuery,\n uploadTemplateMutaton,\n notificationMarkAsReadMutation,\n notificationMarkAllAsReadMutation,\n getUnreadCountQuery,\n sendResetPasswordLinkMutation,\n resetPasswordMutation,\n deleteMeetingMutation,\n duplicateTemplateMutation,\n getEarningsQuery,\n createOrUpdateProgramDetailsCouponMutation,\n createExtensionCouponMutation,\n updateExtensionCouponMutation,\n getProgramDetailsCouponsQuery,\n deleteProgramDetailCoupon,\n removeGroupMutation,\n deletePortfolioMutation,\n getCoachEarningsQuery,\n getOrgEarningsQuery,\n getGroupPriceQuery,\n getCalendarsQuery,\n getCalendarByUidQuery,\n copyWorkoutMutation,\n getOrgCoachesQuery,\n getOrganisationsQuery,\n getOrganisationQuery,\n createOrganisationMutation,\n updateOrganisationMutation,\n removeOrganisationMutation,\n addCoachesToOrganisationMutation,\n setPasswordToOrgMutation,\n editOrganisationMutation,\n cancelProgramByAdminMutation,\n removeOrganisationGroupMutation,\n cancelFreeProgramMutation,\n cancelParticipantMutation,\n blockTraineeMutation,\n getCoachTraineesQuery,\n getOrganisationTraineeQuery,\n getExercisesPaginatedQuery\n};\n","module.exports = __webpack_public_path__ + \"static/media/simple-arrow-up.5685203d.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/arrow-main-right.b61023a6.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-white-left.b457ad0d.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-green-right.bd95fa88.svg\";","module.exports = __webpack_public_path__ + \"static/media/randomIcon.d7acbf4d.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo.0ba2110d.svg\";","module.exports = __webpack_public_path__ + \"static/media/notificationsActive.b5e803fd.svg\";","module.exports = __webpack_public_path__ + \"static/media/notifications.de2cdb81.svg\";","module.exports = __webpack_public_path__ + \"static/media/settings.e65495c3.svg\";","module.exports = __webpack_public_path__ + \"static/media/logout.6e8fac2e.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/plus.0269b918.svg\";","module.exports = __webpack_public_path__ + \"static/media/minus.73d73288.svg\";","module.exports = __webpack_public_path__ + \"static/media/home.1e9ce544.svg\";","module.exports = __webpack_public_path__ + \"static/media/export.36bc2f27.svg\";","module.exports = __webpack_public_path__ + \"static/media/stats.e78c20f8.svg\";","module.exports = __webpack_public_path__ + \"static/media/import.22e839ba.svg\";","module.exports = __webpack_public_path__ + \"static/media/importGreen.48f47eeb.svg\";","module.exports = __webpack_public_path__ + \"static/media/media.b80ea62a.svg\";","module.exports = __webpack_public_path__ + \"static/media/calendar.97535e74.svg\";","module.exports = __webpack_public_path__ + \"static/media/users.1c13d3b2.svg\";","module.exports = __webpack_public_path__ + \"static/media/trainee_tm.efd43625.svg\";","module.exports = __webpack_public_path__ + \"static/media/mobile_trainee_tm.d7109e17.svg\";","module.exports = __webpack_public_path__ + \"static/media/chat.c4b8a2b6.svg\";","module.exports = __webpack_public_path__ + \"static/media/settings.c07425ee.svg\";","module.exports = __webpack_public_path__ + \"static/media/avatar.ace2f8c0.svg\";","module.exports = __webpack_public_path__ + \"static/media/user.30057435.svg\";","module.exports = __webpack_public_path__ + \"static/media/userActive.d6a0746e.svg\";","module.exports = __webpack_public_path__ + \"static/media/book.ad256325.svg\";","module.exports = __webpack_public_path__ + \"static/media/bookActive.13a7103c.svg\";","module.exports = __webpack_public_path__ + \"static/media/phone.30cab4ad.svg\";","module.exports = __webpack_public_path__ + \"static/media/phoneActive.8764ffa9.svg\";","module.exports = __webpack_public_path__ + \"static/media/envelope.4fe4e551.svg\";","module.exports = __webpack_public_path__ + \"static/media/envelopeActive.ab59daf8.svg\";","module.exports = __webpack_public_path__ + \"static/media/location.a32d56e9.svg\";","module.exports = __webpack_public_path__ + \"static/media/locationActive.ae3796b0.svg\";","module.exports = __webpack_public_path__ + \"static/media/alert.0a4d5c10.svg\";","module.exports = __webpack_public_path__ + \"static/media/PlusBorderGreen.51c77558.svg\";","module.exports = __webpack_public_path__ + \"static/media/termsCheckMark.89ee978e.svg\";","module.exports = __webpack_public_path__ + \"static/media/file.2bb26d47.svg\";","module.exports = __webpack_public_path__ + \"static/media/image.4836b64d.svg\";","module.exports = __webpack_public_path__ + \"static/media/editStroke.81e759ae.svg\";","module.exports = __webpack_public_path__ + \"static/media/deleteStroke.dc14e5ea.svg\";","module.exports = __webpack_public_path__ + \"static/media/editFill.ba6a4fd5.svg\";","module.exports = __webpack_public_path__ + \"static/media/deleteFill.9aeb36c0.svg\";","module.exports = __webpack_public_path__ + \"static/media/X.8c8afd44.svg\";","module.exports = __webpack_public_path__ + \"static/media/leftCellBackground.6a756a80.png\";","module.exports = __webpack_public_path__ + \"static/media/rightCellBackground.cd8065b2.png\";","module.exports = __webpack_public_path__ + \"static/media/fitnessLevel.cb9dce1d.svg\";","module.exports = __webpack_public_path__ + \"static/media/injures.e16bb8e7.svg\";","module.exports = __webpack_public_path__ + \"static/media/environment.5309c1bb.svg\";","module.exports = __webpack_public_path__ + \"static/media/equipment.d7013882.svg\";","module.exports = __webpack_public_path__ + \"static/media/health.1e0b4d52.svg\";","module.exports = __webpack_public_path__ + \"static/media/focus.e396db4a.svg\";","module.exports = __webpack_public_path__ + \"static/media/programLength.b1897798.svg\";","module.exports = __webpack_public_path__ + \"static/media/time.d69d4b69.svg\";","module.exports = __webpack_public_path__ + \"static/media/type.1f2964b3.svg\";","module.exports = __webpack_public_path__ + \"static/media/goal.ab7765b9.svg\";","module.exports = __webpack_public_path__ + \"static/media/male.d6c98437.svg\";","module.exports = __webpack_public_path__ + \"static/media/female.03798421.svg\";","module.exports = __webpack_public_path__ + \"static/media/crossfit.e8acfbb4.svg\";","module.exports = __webpack_public_path__ + \"static/media/triathlon.17cda72c.svg\";","module.exports = __webpack_public_path__ + \"static/media/fbb.6390dc3b.svg\";","module.exports = __webpack_public_path__ + \"static/media/strength.0d0fc990.svg\";","module.exports = __webpack_public_path__ + \"static/media/physio.d2232d67.svg\";","module.exports = __webpack_public_path__ + \"static/media/yoga.38082a7b.svg\";","module.exports = __webpack_public_path__ + \"static/media/multi.f5c45a4b.svg\";","module.exports = __webpack_public_path__ + \"static/media/marathon.e3c9ee33.svg\";","module.exports = __webpack_public_path__ + \"static/media/postpartum.184e9ad0.svg\";","module.exports = __webpack_public_path__ + \"static/media/prenetalPrep.6fe3c107.svg\";","module.exports = __webpack_public_path__ + \"static/media/running.b7f7604f.svg\";","module.exports = __webpack_public_path__ + \"static/media/message.cbace9af.svg\";","module.exports = __webpack_public_path__ + \"static/media/messageActive.302e0541.svg\";","module.exports = __webpack_public_path__ + \"static/media/programRequests.b3b06793.svg\";","module.exports = __webpack_public_path__ + \"static/media/activeCustomers.f79df9c1.svg\";","module.exports = __webpack_public_path__ + \"static/media/monthlyIncome.366ad327.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrowUpGreen.559df9ad.svg\";","module.exports = __webpack_public_path__ + \"static/media/personal.fa2209c6.svg\";","module.exports = __webpack_public_path__ + \"static/media/personalActive.9e3eec81.svg\";","module.exports = __webpack_public_path__ + \"static/media/pricing.1a890bf5.svg\";","module.exports = __webpack_public_path__ + \"static/media/pricingActive.dc8d8264.svg\";","module.exports = __webpack_public_path__ + \"static/media/billing.368fa2ce.svg\";","module.exports = __webpack_public_path__ + \"static/media/billingActive.d2938673.svg\";","module.exports = __webpack_public_path__ + \"static/media/settings.df61f1b0.svg\";","module.exports = __webpack_public_path__ + \"static/media/settingsActive.bea1e511.svg\";","module.exports = __webpack_public_path__ + \"static/media/edit.b3d5d658.svg\";","module.exports = __webpack_public_path__ + \"static/media/editGreen.1be0960f.svg\";","module.exports = __webpack_public_path__ + \"static/media/ID.1b1f8211.svg\";","module.exports = __webpack_public_path__ + \"static/media/meal.e2257fd7.svg\";","module.exports = __webpack_public_path__ + \"static/media/music.7d8017e2.svg\";","module.exports = __webpack_public_path__ + \"static/media/addPortfolioItem.30e38929.svg\";","module.exports = __webpack_public_path__ + \"static/media/download.79c94224.svg\";","module.exports = __webpack_public_path__ + \"static/media/inputArrowLight.7bd5ece2.svg\";","module.exports = __webpack_public_path__ + \"static/media/inputArrowDark.ded8cc3b.svg\";","module.exports = __webpack_public_path__ + \"static/media/alertRed.19e65d9b.svg\";","module.exports = __webpack_public_path__ + \"static/media/alertYellow.af460dae.svg\";","module.exports = __webpack_public_path__ + \"static/media/copy.e631f1e0.svg\";","module.exports = __webpack_public_path__ + \"static/media/copyActive.caa2a066.svg\";","module.exports = __webpack_public_path__ + \"static/media/editGrey.61a39d0f.svg\";","module.exports = __webpack_public_path__ + \"static/media/deleteGrey.fed567e7.svg\";","module.exports = __webpack_public_path__ + \"static/media/sortNone.5aeb50f3.svg\";","module.exports = __webpack_public_path__ + \"static/media/sortDesc.2bae501f.svg\";","module.exports = __webpack_public_path__ + \"static/media/sortAsc.966c3acd.svg\";","module.exports = __webpack_public_path__ + \"static/media/videoSign.0126d2e5.svg\";","module.exports = __webpack_public_path__ + \"static/media/videoSignGrey.e5be288d.svg\";","module.exports = __webpack_public_path__ + \"static/media/empty-requests.00269844.svg\";","module.exports = __webpack_public_path__ + \"static/media/password-input.33b2fd65.svg\";","module.exports = __webpack_public_path__ + \"static/media/binSimpleGrey.292dcf53.svg\";","module.exports = __webpack_public_path__ + \"static/media/binSimpleDark.7515318e.svg\";","module.exports = __webpack_public_path__ + \"static/media/editSimpleGrey.8c7818e5.svg\";","module.exports = __webpack_public_path__ + \"static/media/download-mini.35748991.svg\";","module.exports = __webpack_public_path__ + \"static/media/comment.09bd1c08.svg\";","module.exports = __webpack_public_path__ + \"static/media/checkMark.1c54083c.svg\";","module.exports = __webpack_public_path__ + \"static/media/dragIcon.132757e5.svg\";","module.exports = __webpack_public_path__ + \"static/media/plusSimple.1c47ec45.svg\";","module.exports = __webpack_public_path__ + \"static/media/optionPlus.0d59f0da.svg\";","module.exports = __webpack_public_path__ + \"static/media/optionPlusActive.20135769.svg\";","module.exports = __webpack_public_path__ + \"static/media/optionView.e22b3ce4.svg\";","module.exports = __webpack_public_path__ + \"static/media/optionViewDark.7b4f53ad.svg\";","module.exports = __webpack_public_path__ + \"static/media/optionViewDarkCrossed.8a084806.svg\";","module.exports = __webpack_public_path__ + \"static/media/optionViewActive.38389e92.svg\";","module.exports = __webpack_public_path__ + \"static/media/search.a728870a.svg\";","module.exports = __webpack_public_path__ + \"static/media/upload.4a82a5f7.svg\";","module.exports = __webpack_public_path__ + \"static/media/clock.c2aba9b3.svg\";","module.exports = __webpack_public_path__ + \"static/media/weight.3c1f587f.svg\";","module.exports = __webpack_public_path__ + \"static/media/height.fdf6e353.svg\";","module.exports = __webpack_public_path__ + \"static/media/age.16b1194d.svg\";","module.exports = __webpack_public_path__ + \"static/media/loader.f62ba570.svg\";","module.exports = __webpack_public_path__ + \"static/media/gridLayout.b1d7f0ba.svg\";","module.exports = __webpack_public_path__ + \"static/media/listLayout.94e9cc0f.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrowDownWhite.1872d33e.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrowUpDark.7b16f6bc.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrowUpLight.93835040.svg\";","module.exports = __webpack_public_path__ + \"static/media/table-sort.6b0cd139.svg\";","module.exports = __webpack_public_path__ + \"static/media/status-done.2c50fb68.svg\";","module.exports = __webpack_public_path__ + \"static/media/status-missed.094305d4.svg\";","module.exports = __webpack_public_path__ + \"static/media/status-new.f3b468fc.svg\";","module.exports = __webpack_public_path__ + \"static/media/attachment.d40d3c3a.svg\";","module.exports = __webpack_public_path__ + \"static/media/attachments-new.9d2e5fa1.svg\";","module.exports = __webpack_public_path__ + \"static/media/comment-new.e99143ed.svg\";","module.exports = __webpack_public_path__ + \"static/media/workout-empty.0a756ae5.svg\";","module.exports = __webpack_public_path__ + \"static/media/dumbell.1fdd62c0.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-left.9d6fed61.svg\";","module.exports = __webpack_public_path__ + \"static/media/camera.101613ec.svg\";","module.exports = __webpack_public_path__ + \"static/media/messageBtn.a2a2cc4e.svg\";","module.exports = __webpack_public_path__ + \"static/media/dumbell.abb1743e.svg\";","module.exports = __webpack_public_path__ + \"static/media/dumbellActive.e7676c7e.svg\";","module.exports = __webpack_public_path__ + \"static/media/videoCamera.579b2730.svg\";","module.exports = __webpack_public_path__ + \"static/media/videoCameraActive.02a51fad.svg\";","module.exports = __webpack_public_path__ + \"static/media/messageDay.fa737893.svg\";","module.exports = __webpack_public_path__ + \"static/media/messageDayActive.b92781e9.svg\";","module.exports = __webpack_public_path__ + \"static/media/RestDayCup.e853a29b.svg\";","module.exports = __webpack_public_path__ + \"static/media/RestDayCupActive.b5c016fb.svg\";","module.exports = __webpack_public_path__ + \"static/media/meetingLocation.0756a9d7.svg\";","module.exports = __webpack_public_path__ + \"static/media/copyDay.f65b50dc.svg\";","module.exports = __webpack_public_path__ + \"static/media/pasteDay.a87992ac.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-down-big.ee07d5db.svg\";","module.exports = __webpack_public_path__ + \"static/media/move.b83b5b34.svg\";","module.exports = __webpack_public_path__ + \"static/media/addComment.6c764cae.svg\";","module.exports = __webpack_public_path__ + \"static/media/verticalDots.3e515480.svg\";","module.exports = __webpack_public_path__ + \"static/media/verticalDotsActive.1681abe7.svg\";","module.exports = __webpack_public_path__ + \"static/media/editWeekBlock.bce3f302.svg\";","module.exports = __webpack_public_path__ + \"static/media/restDayBoy.0b205d7a.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/logo-short.e0a26f7d.svg\";","module.exports = __webpack_public_path__ + \"static/media/chat-m.9a33d2c4.svg\";","module.exports = __webpack_public_path__ + \"static/media/notif-m.faf998f7.svg\";","module.exports = __webpack_public_path__ + \"static/media/burger-menu.773aa723.svg\";","module.exports = __webpack_public_path__ + \"static/media/close.934c4baa.svg\";","module.exports = __webpack_public_path__ + \"static/media/calendar.0bad9d98.svg\";","module.exports = __webpack_public_path__ + \"static/media/cloud.736ee415.svg\";","module.exports = __webpack_public_path__ + \"static/media/home.56552af3.svg\";","module.exports = __webpack_public_path__ + \"static/media/image.7069ac69.svg\";","module.exports = __webpack_public_path__ + \"static/media/pulse.cd4d55b2.svg\";","module.exports = __webpack_public_path__ + \"static/media/save.2c319424.svg\";","module.exports = __webpack_public_path__ + \"static/media/settings.f7d85c75.svg\";","module.exports = __webpack_public_path__ + \"static/media/users.bf1f6949.svg\";","module.exports = __webpack_public_path__ + \"static/media/go-back-mobile.366d2cb1.svg\";","module.exports = __webpack_public_path__ + \"static/media/redBin.fcf2f70d.svg\";","module.exports = __webpack_public_path__ + \"static/media/arrow-right.93bab7c5.svg\";","module.exports = __webpack_public_path__ + \"static/media/respMessage.e6ef201c.svg\";","module.exports = __webpack_public_path__ + \"static/media/chat-mob.409b6c5b.svg\";","module.exports = __webpack_public_path__ + \"static/media/coupon-mob.34a5f3db.svg\";","module.exports = __webpack_public_path__ + \"static/media/collapse.26e88d62.svg\";","module.exports = __webpack_public_path__ + \"static/media/expand.81b8ddf5.svg\";","module.exports = __webpack_public_path__ + \"static/media/pasteColumn.352e7ae3.svg\";","module.exports = __webpack_public_path__ + \"static/media/WhiteCheck.e107f7cb.svg\";","module.exports = __webpack_public_path__ + \"static/media/list.7da6f7a2.svg\";","module.exports = __webpack_public_path__ + \"static/media/left-arrow-page.d1356d45.svg\";","module.exports = __webpack_public_path__ + \"static/media/right-arrow-page.bea8bc3a.svg\";","module.exports = __webpack_public_path__ + \"static/media/up.1bf3087c.svg\";","module.exports = __webpack_public_path__ + \"static/media/down.28f30160.svg\";","module.exports = __webpack_public_path__ + \"static/media/fitnessGirlSignup.d25247be.png\";","module.exports = __webpack_public_path__ + \"static/media/FitnessGirlSignup2.7b8c2938.png\";","module.exports = __webpack_public_path__ + \"static/media/fitnessBoySignup.bbb28590.png\";","module.exports = __webpack_public_path__ + \"static/media/FitnessgirlNew.92e3015b.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAABHNCSVQICAgIfAhkiAAACU5JREFUeJzt2NFpQCEQRcE1Ldh/r2nhQSTKYaaAy/4dceasbc+ePXv27Nn7/72fw4MAwAWCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAWtm9u0jAIC3nH4c2LNnz549e/Y+7PlyB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgIA1M/v2EQDAW04/DuzZs2fPnj17H/Z8uQNAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0DAmpl9+wgA4C2nHwf27NmzZ8+evQ97vtwBIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgYM3Mvn0EAPCW048De/bs2bNnz96HPV/uABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAELBmZt8+AgB4y+nHgT179uzZs2fvw54vdwAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAhYM7NvHwEAvOX048CePXv27Nmz92HPlzsABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAErJnZt48AAN5y+nFgz549e/bs2fuw58sdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAtbM7NtHAABvOf04sGfPnj179ux92PPlDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAFrZvbtIwCAt5x+HNizZ8+ePXv2Puz5cgeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4CANTP79hEAwFtOPw7s2bNnz549ex/2fLkDQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAwJqZffsIAOAtpx8H9uzZs2fPnr0Pe77cASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIGDNzL59BADwltOPA3v27NmzZ8/ehz1f7gAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABCwZmbfPgIAeMvpx4E9e/bs2bNn78OeL3cACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIWDOzbx8BALzl9OPAnj179uzZs/dhz5c7AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABKyZ2bePAADecvpxYM+ePXv27Nn7sOfLHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAALWzOzbRwAAbzn9OLBnz549e/bsfdjz5Q4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABa2b27SMAgLecfhzYs2fPnj179j7s+XIHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAAEEHgABBB4AAQQeAgDUz+/YRAMBbTj8O7NmzZ8+ePXsf9ny5A0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQICgA0CAoANAgKADQMCamX37CADgLacfB/bs2bNnz569D3u+3AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBA0AEgQNABIEDQASBgzcy+fQQA8JbTjwN79uzZs2fP3oc9X+4AECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQsGZm3z4CAHjL6ceBPXv27NmzZ+/Dni93AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACFgzs28fAQC85fTjwJ49e/bs2bP3Yc+XOwAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AAQIOgAECDoABAg6AASsmdm3jwAA3nL6cWDPnj179uzZ+7Dnyx0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQACBB0AAgQdAAIEHQAC1szs20cAAG85/TiwZ8+ePXv27H3Y8+UOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAYIOAAGCDgABgg4AAWtm9u0jAIC/+QW4ZzPc1H3SYwAAAABJRU5ErkJggg==\"","module.exports = __webpack_public_path__ + \"static/media/background.942b3693.png\";","module.exports = __webpack_public_path__ + \"static/media/background.119d8d9b.png\";","module.exports = __webpack_public_path__ + \"static/media/logo-white.d094039a.png\";","module.exports = __webpack_public_path__ + \"static/media/temp-program-1.425af3b2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/temp-program-1-opacity.094cf214.png\";","module.exports = __webpack_public_path__ + \"static/media/temp-program-2.0e7b0bb1.png\";","module.exports = __webpack_public_path__ + \"static/media/temp-program-3.06120c66.jpg\";","module.exports = __webpack_public_path__ + \"static/media/empty-trainees.383fe9c4.png\";","module.exports = __webpack_public_path__ + \"static/media/empty-groups.07073805.png\";","module.exports = __webpack_public_path__ + \"static/media/empty-templates.b819e7ba.png\";","module.exports = __webpack_public_path__ + \"static/media/homeBanner.25b63f64.png\";","module.exports = __webpack_public_path__ + \"static/media/delete-program.e1cd0dcb.svg\";","module.exports = __webpack_public_path__ + \"static/media/edit-program.888499c9.svg\";","module.exports = __webpack_public_path__ + \"static/media/chat-attachment.092638ce.svg\";","module.exports = __webpack_public_path__ + \"static/media/chat-send-button.bb8baa17.svg\";","module.exports = __webpack_public_path__ + \"static/media/minimize.40cb8a5b.png\";","module.exports = __webpack_public_path__ + \"static/media/dollar.7682f515.svg\";","import { ApolloClient } from 'apollo-client';\nimport { InMemoryCache } from 'apollo-cache-inmemory';\nimport { createUploadLink } from 'apollo-upload-client';\nimport { setContext } from 'apollo-link-context';\nimport { onError } from 'apollo-link-error';\nimport { ApolloLink, split } from 'apollo-link';\nimport { WebSocketLink } from 'apollo-link-ws';\nimport { getMainDefinition } from 'apollo-utilities';\n\nconst uri = process.env.REACT_APP_API_URL;\nconst wsUrl = process.env.REACT_APP_SUB_URL;\n\nconst uploadLink = createUploadLink({\n uri,\n headers: {\n 'Access-Control-Allow-Origin': '*',\n },\n});\n\n// const wsLink = new WebSocketLink({\n// uri: wsUrl,\n// options: {\n// reconnect: true,\n// connectionParams: () => {\n// const token = localStorage.getItem('token');\n// return {\n// authorization: token ? `Bearer ${token}` : '',\n// };\n// },\n// },\n// });\n\n// const link = split(\n// // split based on operation type\n// ({ query }) => {\n// const definition = getMainDefinition(query);\n// return definition.kind === 'OperationDefinition' && definition.operation === 'subscription';\n// },\n// wsLink,\n// uploadLink,\n// );\n\nconst authLink = setContext((_, { headers, ...rest }) => {\n const token = localStorage.getItem('token');\n const lang = localStorage.getItem('lang') || 'en';\n return {\n headers: {\n ...headers,\n authorization: token ? `Bearer ${token}` : '',\n language: lang,\n },\n ...rest,\n };\n});\n\nconst uploadLinkWithAuth = authLink.concat(uploadLink);\n\nconst errorLink = onError(({ graphQLErrors, networkError }) => {\n if (graphQLErrors)\n graphQLErrors.forEach(({ message, locations, path }) => {\n console.log('TCL: errorLink -> message', message);\n\n console.log(\n `[GraphQL error]: Message: ${JSON.stringify(message)}, Location: ${JSON.stringify(\n locations,\n )}, Path: ${path}`,\n );\n });\n\n if (networkError) {\n console.log('[Network error]:', networkError);\n }\n});\n\nconst cache = new InMemoryCache({\n dataIdFromObject: (o) => o.uid,\n});\n\nexport default new ApolloClient({\n cache,\n link: ApolloLink.from([errorLink, uploadLinkWithAuth]),\n connectToDevTools: true,\n});\n","const URLS = {\n sign_up_coach: '/signup/coach',\n sign_up_coach_personal: '/signup/coach/personal-info',\n sign_up_coach_professional: '/signup/coach/professional-info',\n sign_up_coach_result: '/signup/coach/result',\n sign_in: '/signin',\n set_password: '/set-password',\n //sidebar\n home: '/home',\n export: '/export',\n stats: '/stats',\n templates: '/templates',\n media: '/media',\n calendar: '/calendar',\n trainees: '/trainees',\n all_trainees: '/all_trainees',\n groups: '/groups',\n program: '/program/:id',\n template: '/template/:id',\n groupProgram: '/program/:id?group=true',\n messages: '/messages',\n settings: '/settings',\n // header\n profile: '/profile',\n notifications: '/notifications',\n logout: '/logout',\n terms: '/terms-of-service',\n videoCall: '/video-call/:id',\n forgotPassword: '/forgot-password',\n resetPassword: '/reset-password',\n finance: '/finance',\n exercises: '/exercises',\n};\n\nexport default URLS;\n","import { useMutation, useQuery } from '@apollo/react-hooks';\nimport { useHistory } from 'react-router-dom';\n\nimport URLS from '../constants/urls';\nimport {\n meQuery,\n getSpecialitiesQuery,\n createCoachPersonalMutation,\n createCoachProfessionalMutation,\n} from '@witness/graphql';\n\nconst useRegisterCoach = () => {\n const history = useHistory();\n\n const backToPersonalPage = () => {\n if (history.location.pathname !== URLS.sign_up_coach_personal) {\n history.replace(URLS.sign_up_coach_personal);\n }\n };\n\n const { data: me, loading: meLoading, error: meError } = useQuery(meQuery);\n\n const getInitialValuesPersonal = () => {\n return {\n fullName: me?.getCurrentUser?.coach?.fullName || '',\n idNumber: me?.getCurrentUser?.coach?.idNumber || '',\n phone: me?.getCurrentUser?.coach?.phone || '',\n email: me?.getCurrentUser?.user?.email || '',\n address: me?.getCurrentUser?.coach?.address || '',\n image: undefined,\n preview: me?.getCurrentUser?.coach?.profileImage?.url || undefined,\n agreedTerms: false,\n };\n };\n const getInitialValuesProfessional = () => {\n return {\n specialities: me?.getCurrentUser?.coach?.specialities?.map((spec) => spec?.uid) || [],\n experience: me?.getCurrentUser?.coach?.experience || 0,\n about: me?.getCurrentUser?.coach?.about || '',\n files: [],\n };\n };\n\n const { data: specialities, loading: specialitiesLoading, error: specialitiesError } = useQuery(\n getSpecialitiesQuery,\n );\n\n const [createCoachPersonal] = useMutation(createCoachPersonalMutation);\n\n const submitPersonalForm = async (values, { setSubmitting, setErrors }) => {\n const { fullName, idNumber, phone, email, address, image } = values;\n try {\n const registeredCoach = await createCoachPersonal({\n variables: {\n record: {\n uid: me?.getCurrentUser?.coach?.uid,\n fullName,\n idNumber,\n phone,\n email,\n address,\n },\n profile: {\n image,\n },\n },\n });\n localStorage.setItem('token', registeredCoach?.data?.createPersonalInfo?.token);\n history.push(URLS.sign_up_coach_professional);\n setSubmitting(false);\n } catch (err) {\n if (err?.graphQLErrors?.find((x) => x.message === 'coach_already_exists')) {\n setErrors({ email: 'Email already exists' });\n }\n }\n };\n\n const [createCoachProfessional] = useMutation(createCoachProfessionalMutation);\n\n const submitProfessionalForm = async (values, { setSubmitting }) => {\n const { specialities, experience, playlist, meal, about, files } = values;\n const filePayload = files?.map((group) => {\n const ids = group?.diplomas?.map((dip) => dip.uid)?.filter((x) => !!x);\n return { name: group?.name, diplomaIds: ids };\n });\n const registeredCoach = await createCoachProfessional({\n variables: {\n record: {\n specialities,\n experience,\n playlist,\n meal,\n about,\n },\n files: filePayload,\n },\n });\n const tomorrow = new Date();\n tomorrow.setDate(tomorrow?.getDate() + 1);\n localStorage.removeItem('token');\n sessionStorage.setItem('name', registeredCoach?.data?.createProfessionalInfo?.fullName);\n sessionStorage.setItem('expirationTime', tomorrow);\n history.push(URLS.sign_up_coach_result);\n setSubmitting(false);\n };\n\n return {\n me,\n meLoading,\n specialities,\n specialitiesLoading,\n specialitiesError,\n getInitialValuesPersonal,\n getInitialValuesProfessional,\n submitPersonalForm,\n submitProfessionalForm,\n backToPersonalPage,\n meError,\n };\n};\n\nexport default useRegisterCoach;\n","const currentLanguage = process.env.lang || 'EN';\n\nconst strings = {\n EN: {\n // coach signup personal\n new_coach_registration_form: 'New Coach Registration Form',\n personal_info: 'Personal Info',\n name: 'Name',\n id: 'ID',\n phone_number: 'Phone Number',\n email: 'E-mail',\n address: 'Address',\n continue: 'Continue',\n upload_profile_image: 'Upload your profile image',\n i_agree_to: 'I Agree to Witness ',\n terms_and_conditions: 'Terms & Conditions ',\n terms_of_service:'Terms of Service ',\n privacy_policy: 'Privacy Policy',\n and: 'and ',\n\n // coach signup professional\n professional_info: 'Professional Info',\n training_specialities: 'TRAINING SPECIALITIES',\n please_select_all_specialities:\n 'Please select all the areas you are certified and qualified to train customres',\n years_of_experience: 'YEARS OF EXPERIENCE',\n how_many_years_coaching: 'How many years are you working as a Coach?',\n diplomas_and_credentials: 'DIPLOMAS & CREDENTIALS',\n provide_all_credentials:\n 'For each training speciality you chose, please provide all diplomas, certificates & courses you performed',\n favorite_playlist: 'FAVORITE PLAYLIST',\n favorite_meal: 'FAVORITE MEAL',\n share_playlist: 'Share your favorite playlist',\n share_meal: 'Share your favorite meal',\n tell_about_yourself: 'TELL ABOUT YOURSELF',\n describe_personal_story:\n 'Describe your personal story, your proffessional path and anything else you want to share with potential customers to know you better.',\n type_here: 'Type Here...',\n back: 'Back',\n submit_form: 'Submit Form',\n\n // upload credentials\n type_name_of_spec: 'Type name of speciality',\n attach_files: 'Attach Files',\n save: 'Save',\n required: 'Required',\n coach_credentials: 'Coach Credentials',\n\n // coach signup result\n your_request_success: 'Your request is being processed',\n your_request_approved: 'Your request was approved',\n we_will_contact_in_day: 'We will contact you ASAP',\n please_check_email: 'Please check the email we sent you',\n if_question_contact_us: 'Feel free to contact our support team in the meantime',\n contact_us: 'Contact us',\n\n // program request\n new_program_request: 'NEW PROGRAM REQUEST',\n health_and_fitness: 'Health & Fitness',\n fitness_level: 'Fitness Level',\n injures: 'Injuries',\n training_environment: 'Training Environment',\n available_equipment: 'Available Equipment',\n health_status: 'Health Status',\n focus_on: 'Focus On',\n program_details: 'Program Details',\n program_length: 'Program Length',\n workout_time: 'Workout time',\n desired_agenda: 'Desired Agenda',\n training_type: 'Training Types',\n training_goals: 'Training Goals',\n notes: 'Notes',\n total_price: 'TOTAL PRICE:',\n decline_request: 'Decline Request',\n chat_with: 'Chat with ',\n approve_request: 'Approve Request',\n\n // modal\n close: 'Close',\n contact_admin: 'Contact Admin',\n\n // edit personal info\n edit_personal_info: 'EDIT YOUR PERSONAL INFO',\n e_mail: 'E-mail',\n gender: 'Gender',\n age: 'Age',\n height: 'Height (cm)',\n weight: 'Weight (kg)',\n favorite_meal_camel: 'Favorite Meal',\n favorite_playlist_camel: 'Favorite Playlist',\n\n // edit about me\n edit_about_me: 'EDIT \"ABOUT ME\"',\n\n // you cannot edit professional info\n cannot_change_professional_info: 'You Can’t change your Professional Info',\n if_u_want_to_change_professional_info:\n 'If you want to change information in this section, please, contact our Admin',\n\n // you cannot edit personal info\n cannot_change_personal_info: 'You Can’t change your Personal Info',\n if_u_want_to_change_personal_info:\n 'If you want to change information in this section, please, contact our Admin',\n \n user_not_found: 'User was not found',\n invalid_token: 'Token is invalid or expired',\n },\n};\n\nexport default strings[currentLanguage];\n","import { useEffect, useState } from 'react';\nimport { useMutation } from '@apollo/react-hooks';\nimport { uploadDiplomaMutation } from '@witness/graphql';\nimport uniqid from 'uniqid';\nimport STRINGS from '../constants/strings';\n\nconst useUploadCredentials = (onChange = () => {}) => {\n const [activeIndex, setActiveIndex] = useState(-1);\n const [groupNameError, setGroupNameError] = useState('');\n const [credentials, setCredentials] = useState([\n { name: STRINGS.coach_credentials, diplomas: [] },\n ]);\n const [currentGroupName, setCurrentGroupName] = useState('');\n const [currentDiplomas, setCurrentFiles] = useState([]);\n\n const [uploadDiploma] = useMutation(uploadDiplomaMutation, {\n onCompleted(data) {\n const existingTempDiplomaIndex = currentDiplomas.findIndex(\n (x) => x.tempId === data.uploadDiploma.tempId,\n );\n const currentDiplomasClone = [...currentDiplomas];\n if (existingTempDiplomaIndex > -1 && currentDiplomas[existingTempDiplomaIndex]) {\n currentDiplomasClone[existingTempDiplomaIndex].uid = data.uploadDiploma.file.id;\n }\n setCurrentFiles(currentDiplomasClone);\n },\n });\n\n useEffect(() => {\n if (currentGroupName) {\n setGroupNameError('');\n }\n }, [currentGroupName]);\n\n useEffect(() => {\n onChange(credentials);\n }, [credentials]);\n\n const chooseCredentialToEdit = (index) => {\n const success = saveCredential();\n if (!success) {\n return;\n }\n const currCredential = credentials[index];\n setCurrentFiles([...currCredential.diplomas]);\n setCurrentGroupName(currCredential.name);\n setActiveIndex(index);\n };\n\n const saveCredential = () => {\n if (activeIndex < 0 || (!currentDiplomas.length && !currentGroupName)) {\n return 1;\n }\n if (!currentGroupName) {\n setGroupNameError(STRINGS.required);\n return 0;\n }\n const credentialsClone = [...credentials];\n credentialsClone[activeIndex] = {\n name: currentGroupName,\n diplomas: currentDiplomas,\n };\n setCredentials(credentialsClone);\n setActiveIndex(-1);\n setCurrentFiles([]);\n setCurrentGroupName('');\n setGroupNameError('');\n return 1;\n };\n\n const deleteCredential = (index) => {\n if (index === 0) {\n return;\n }\n const credentialsClone = [...credentials];\n credentialsClone.splice(index, 1);\n if (activeIndex === index) {\n setActiveIndex(-1);\n setCurrentFiles([]);\n setCurrentGroupName('');\n }\n setCredentials(credentialsClone);\n };\n\n const deleteFile = (index) => {\n const currentDiplomasClone = [...currentDiplomas];\n currentDiplomasClone.splice(index, 1);\n setCurrentFiles(currentDiplomasClone);\n };\n\n const addFiles = async (e) => {\n e.persist();\n for (const diploma of Array.from(e.target.files)) {\n const tempId = uniqid('temp-');\n setCurrentFiles((curr) => [...curr, { diploma, tempId }]);\n uploadDiploma({\n variables: {\n file: {\n diploma,\n tempId,\n },\n },\n });\n }\n };\n\n const prettifyFileSize = (s) => {\n const bytesInKB = 1024;\n const bytesInMB = 1024 * 1024;\n if (s > bytesInMB) {\n return (s / bytesInMB).toFixed(2) + ' Mb';\n } else if (s > bytesInKB) {\n return (s / bytesInKB).toFixed(2) + ' Kb';\n } else {\n return s + ' b';\n }\n };\n\n return {\n activeIndex,\n setActiveIndex,\n groupNameError,\n currentGroupName,\n setCurrentGroupName,\n currentDiplomas,\n addFiles,\n deleteFile,\n credentials,\n saveCredential,\n deleteCredential,\n chooseCredentialToEdit,\n prettifyFileSize,\n };\n};\n\nexport default useUploadCredentials;\n","import { useState } from 'react';\nimport { useEffect, useRef } from 'react';\n\nconst useAddressAutoComplete = () => {\n let autoComplete = { addListener: () => {} };\n\n const loadScript = (url, callback) => {\n let script = document.createElement('script');\n script.type = 'text/javascript';\n // console.log('loading');\n\n if (script.readyState) {\n script.onreadystatechange = function () {\n if (script.readyState === 'loaded' || script.readyState === 'complete') {\n script.onreadystatechange = null;\n callback();\n }\n // console.log('ready');\n };\n } else {\n script.onload = () => callback();\n }\n\n script.src = url;\n document.getElementsByTagName('head')[0].appendChild(script);\n };\n\n const handleScriptLoad = (autoCompleteRef) => {\n autoComplete = new window.google.maps.places.Autocomplete(autoCompleteRef.current);\n autoComplete.setFields(['address_components', 'formatted_address']);\n };\n const [refToListen, setRefToListen] = useState(false);\n\n let inputRef = useRef(null);\n const autoCompleteRef = (node) => {\n inputRef.current = node;\n setRefToListen(node);\n };\n\n const createRef = () => {\n // console.log(inputRef);\n loadScript(\n `https://maps.googleapis.com/maps/api/js?key=${process.env.REACT_APP_GOOGLE_MAPS_KEY}&libraries=places`,\n () => handleScriptLoad(inputRef),\n );\n };\n\n const setHandleAdressChoose = (handler) => {\n autoComplete.addListener('place_changed', () => {\n // console.log('PLACE CHANGED');\n handler(autoComplete.getPlace().formatted_address);\n });\n };\n\n useEffect(() => {\n // console.log(refToListen);\n if (refToListen) {\n createRef();\n }\n }, [refToListen, createRef]);\n\n return { autoCompleteRef, setHandleAdressChoose };\n};\n\nexport default useAddressAutoComplete;\n","import { useMutation, useQuery } from '@apollo/react-hooks';\nimport {\n meQuery,\n editCoachMutation,\n uploadPortfolioMutation,\n getSpecialitiesQuery,\n getTrainingTypesQuery,\n deletePortfolioMutation,\n getOrgCoachesQuery,\n editOrganisationMutation,\n} from '@witness/graphql';\nimport { useMemo } from 'react';\nimport { useAlert } from 'react-alert';\n\nconst useCoachPersonalInfo = ({\n setLoading = () => {},\n setOpenModal = () => {},\n orgCoachesFilters = {},\n}) => {\n const { data: me, loading: meLoading, error: meError, refetch: meRefetch } = useQuery(meQuery);\n\n const alert = useAlert();\n\n const { data: spData } = useQuery(getSpecialitiesQuery, {\n skip: me?.getCurrentUser?.user?.role?.name !== 'admin',\n });\n const { data: ttData } = useQuery(getTrainingTypesQuery, {\n skip: me?.getCurrentUser?.user?.role?.name !== 'admin',\n });\n\n const specialities = useMemo(() => {\n if (me?.getCurrentUser?.user?.role?.name === 'admin') {\n if (spData && ttData) {\n return spData.getSpecialities.map((sp) => ({\n ...sp,\n trainingTypes: ttData.getTrainingTypes.filter((tt) => tt.speciality.id === sp.id),\n }));\n }\n\n return [];\n }\n\n return me?.getCurrentUser?.coach?.specialities || [];\n }, [spData, ttData, me]);\n\n const getInitialValuesPersonal = () => {\n if (me?.getCurrentUser?.organisation?.uid) {\n return {\n fullName: me?.getCurrentUser?.organisation?.fullName || '',\n address: me?.getCurrentUser?.organisation?.address || '',\n };\n }\n return {\n fullName: me?.getCurrentUser?.coach?.fullName || '',\n address: me?.getCurrentUser?.coach?.address || '',\n phone: me?.getCurrentUser?.coach?.phone || '',\n idNumber: me?.getCurrentUser?.coach?.idNumber || '',\n gender: me?.getCurrentUser?.coach?.gender || '',\n age: me?.getCurrentUser?.coach?.age || null,\n height: me?.getCurrentUser?.coach?.height || null,\n weight: me?.getCurrentUser?.coach?.weight || null,\n meal: me?.getCurrentUser?.coach?.meal || '',\n playlist: me?.getCurrentUser?.coach?.playlist || '',\n };\n };\n\n const getInitialValuesAbout = () => {\n if (me?.getCurrentUser?.organisation?.uid) {\n return {\n about: me?.getCurrentUser?.organisation?.about || ``,\n };\n }\n return {\n about: me?.getCurrentUser?.coach?.about || ``,\n };\n };\n\n const [editCoach] = useMutation(editCoachMutation);\n const [editOrg] = useMutation(editOrganisationMutation);\n\n const submitEditCoach = async (values, { setSubmitting, setErrors, blob, pdfBlob}) => {\n setOpenModal(null);\n setLoading(true);\n try {\n if (me?.getCurrentUser?.organisation?.uid) {\n await editOrg({\n variables: {\n record: {\n name: values?.fullName || undefined,\n description: values?.about || undefined,\n image: values?.image || undefined,\n address: values?.address || undefined,\n },\n },\n });\n } else {\n await editCoach({\n variables: {\n record: {\n ...values,\n },\n },\n optimisticResponse: {\n __typename: 'Mutation',\n editCoach: blob && pdfBlob ? {\n ...me?.getCurrentUser?.coach,\n __typename: 'Coach',\n profileImage: {\n __typename: 'File',\n uid: 'temp',\n id: 'temp',\n url: blob,\n filename: 'profile.img',\n mimetype: '',\n compressedUrl: blob,\n encoding: '',\n },\n pdfImage:{\n __typename: 'File',\n uid: 'temp',\n id: 'temp',\n url: pdfBlob,\n filename: 'pdf.img',\n mimetype: '',\n compressedUrl: pdfBlob,\n encoding: '',\n }\n }\n : blob ? {\n ...me?.getCurrentUser?.coach,\n __typename: 'Coach',\n profileImage: {\n __typename: 'File',\n uid: 'temp',\n id: 'temp',\n url: blob,\n filename: 'profile.img',\n mimetype: '',\n compressedUrl: blob,\n encoding: '',\n }\n } : pdfBlob ? {\n ...me?.getCurrentUser?.coach,\n __typename: 'Coach',\n pdfImage:{\n __typename: 'File',\n uid: 'temp',\n id: 'temp',\n url: pdfBlob,\n filename: 'pdf.img',\n mimetype: '',\n compressedUrl: pdfBlob,\n encoding: '',\n }\n } : {\n ...me?.getCurrentUser?.coach,\n __typename: 'Coach',\n ...values,\n },\n },\n });\n }\n\n setSubmitting(false);\n await meRefetch();\n setLoading(false);\n } catch (err) {\n if (err.graphQLErrors?.find((x) => x.message === 'coach_already_exists')) {\n setErrors({ email: 'Email already exists' });\n }\n }\n };\n\n const [uploadPortfolio] = useMutation(uploadPortfolioMutation);\n\n const uploadportfolioItems = async (values) => {\n setLoading(true);\n new Promise((resolve, reject) => {\n const alreadyReadFiles = [];\n Array.from(values).map((file) => {\n const reader = new FileReader();\n reader.onloadend = function () {\n alreadyReadFiles.push({\n url: reader.result,\n __typename: 'File',\n id: 'tempid',\n mimetype: 'text/',\n encoding: '7bit',\n filename: 'filename-temp',\n });\n if (alreadyReadFiles.length >= Array.from(values).length) {\n resolve({\n uid: 'temp-0b72-41e9-8d91-4326ba973cc6',\n __typename: 'Portfolio',\n files: alreadyReadFiles,\n });\n }\n };\n if (file) {\n reader.readAsDataURL(file);\n } else {\n }\n return 1;\n });\n }).then(async (optimisticAddedFiles) => {\n await uploadPortfolio({\n variables: {\n record: {\n portfolio: values,\n },\n },\n optimisticResponse: {\n __typename: 'Mutation',\n uploadPortfolio: optimisticAddedFiles,\n },\n update: (proxy, { data: { uploadPortfolio } }) => {\n const data = proxy.readQuery({ query: meQuery });\n proxy.writeQuery({\n query: meQuery,\n data: {\n ...data,\n getCurrentUser: {\n ...data.getCurrentUser,\n coach: {\n uid: me?.getCurrentUser?.coach?.id,\n ...data.getCurrentUser.coach,\n __typename: 'Coach',\n portfolio: [...me?.getCurrentUser?.coach?.portfolio, uploadPortfolio],\n },\n },\n },\n });\n },\n });\n setLoading(false);\n });\n };\n\n const [deletePortfolio] = useMutation(deletePortfolioMutation);\n\n const handleDeletePortfolio = (uid) => {\n try {\n deletePortfolio({\n variables: {\n record: {\n uid,\n },\n },\n }).then(() => {\n meRefetch();\n alert.success('Item Has been Successfully Deleted');\n });\n } catch (err) {\n alert.error(err?.messae);\n }\n };\n const { data: orgCoaches, loading: loadingOrgCoaches } = useQuery(getOrgCoachesQuery, {\n variables: {\n record: orgCoachesFilters,\n },\n });\n\n return {\n getInitialValuesPersonal,\n getInitialValuesAbout,\n currentCoach: !meLoading &&\n !meError && {\n ...me?.getCurrentUser?.coach,\n email: me?.getCurrentUser?.user?.email,\n specialities,\n },\n submitEditCoach,\n uploadportfolioItems,\n isAdmin: me?.getCurrentUser?.user?.role?.name === 'admin',\n handleDeletePortfolio,\n currentOrganization: me?.getCurrentUser?.organisation,\n orgCoaches,\n loadingOrgCoaches,\n };\n};\n\nexport default useCoachPersonalInfo;\n","import {\n getPricesQuery,\n addPricingMutation,\n createOrUpdateAdminCodeMutation,\n deleteAdminCodeMutation,\n meQuery,\n createOrUpdateProgramDetailsCouponMutation,\n getProgramDetailsCouponsQuery,\n} from '@witness/graphql';\nimport { useQuery, useMutation } from '@apollo/react-hooks';\nimport { useMemo } from 'react';\nimport useCoachPersonalInfo from './coachPersonalInfo';\n\nconst usePricing = ({ setLoading } = {}) => {\n const { data: programPrices, refetch } = useQuery(getPricesQuery);\n const { currentOrganization } = useCoachPersonalInfo({});\n\n const defaultPrices = useMemo(() => {\n const result = {};\n let fetchedPrices = programPrices?.getPrices;\n if (currentOrganization?.uid) {\n fetchedPrices = currentOrganization.prices;\n }\n fetchedPrices &&\n fetchedPrices.map((program) => {\n const defaultPrice =\n program.p11 === program.p12 &&\n program.p11 === program.p13 &&\n program.p11 === program.p21 &&\n program.p11 === program.p22 &&\n program.p11 === program.p23 &&\n program.p11 === program.p31 &&\n program.p11 === program.p32 &&\n program.p11 === program.p33\n ? program.p11\n : 'Custom';\n result[program?.uid] = defaultPrice;\n return 1;\n });\n return result;\n }, [programPrices, currentOrganization]);\n\n const [addPricing] = useMutation(addPricingMutation);\n\n const addProgramPricing = async (values) => {\n setLoading(true);\n await addPricing({\n variables: {\n record: {\n ...values,\n },\n },\n });\n refetch();\n setLoading(false);\n };\n\n const [createOrUpdateAdminCode] = useMutation(createOrUpdateAdminCodeMutation, {\n refetchQueries: [{ query: meQuery }],\n });\n\n const [createOrUpdateProgramDetailsCoupon] = useMutation(\n createOrUpdateProgramDetailsCouponMutation,\n {\n refetchQueries: [{ query: getProgramDetailsCouponsQuery }],\n },\n );\n\n const createAdminCode = (values) => {\n try {\n if (values.type === 'programCode') {\n const {\n uid,\n daysOfTraining,\n price,\n programLength,\n trainingTypes,\n title,\n validUntil,\n available,\n coachFee,\n coaches,\n } = values;\n\n createOrUpdateProgramDetailsCoupon({\n variables: {\n record: {\n uid,\n trainingTypes: trainingTypes.map((t) => t.value),\n programLength: parseInt(programLength),\n monthlySum: parseInt(price),\n daysOfTraining,\n name: title,\n validUntil: new Date(validUntil),\n available: parseInt(available),\n coachesUids: coaches ? Object.keys(coaches)?.filter((x) => coaches[x]) : null,\n coachFee,\n },\n },\n });\n return;\n }\n const {\n uid,\n title,\n description,\n discountType,\n amount,\n validUntil,\n available,\n coaches,\n coachFee,\n } = values;\n createOrUpdateAdminCode({\n variables: {\n record: {\n uid,\n title,\n description,\n validUntil,\n discountType: discountType?.value,\n amount: Number(amount),\n available: Number(available),\n coachesUids: coaches ? Object.keys(coaches)?.filter((x) => coaches[x]) : null,\n coachFee,\n },\n },\n });\n } catch (err) {\n alert.eror(err.message);\n }\n };\n\n const [deleteAdminCode] = useMutation(deleteAdminCodeMutation, {\n refetchQueries: [{ query: meQuery }],\n });\n const deleteCoupon = (uid) => {\n deleteAdminCode({\n variables: {\n record: {\n uid,\n },\n },\n });\n };\n\n return {\n programPrices: programPrices?.getPrices?.length\n ? programPrices?.getPrices\n : currentOrganization?.prices,\n addProgramPricing,\n defaultPrices,\n createAdminCode,\n deleteCoupon,\n };\n};\n\nexport default usePricing;\n","import { useMutation } from '@apollo/react-hooks';\nimport { useHistory } from 'react-router-dom';\nimport { setPasswordMutation, signInMutation, verifyEmailMutation } from '@witness/graphql';\nimport apolloClient from '../services/apollo';\nimport URLS from '../constants/urls';\n\nconst useSignin = () => {\n const history = useHistory();\n\n const [setPassword] = useMutation(setPasswordMutation);\n\n const submitSetPassword = async (values, { setErrors, setStep }) => {\n const { email, password } = values;\n try {\n await setPassword({\n variables: {\n record: {\n email,\n password,\n },\n },\n });\n history.push(URLS.sign_in);\n } catch (err) {\n if (err.graphQLErrors.find((x) => x.message === 'user_not_found')) {\n setErrors({ email: 'Email does not exist' });\n setStep('email');\n }\n }\n };\n\n const [verifyEmail] = useMutation(verifyEmailMutation);\n\n const submitVerifyEmail = async (values, { setErrors, setStep }) => {\n const { email } = values;\n try {\n await verifyEmail({\n variables: {\n record: { email },\n },\n });\n setStep('password');\n } catch (err) {\n if (err.graphQLErrors.find((x) => x.message === 'user_not_found')) {\n setErrors({ email: 'Email does not exist' });\n }\n }\n };\n\n const [signIn] = useMutation(signInMutation);\n\n const signInAndRedirect = async (values) => {\n const signedCoach = await signIn({\n variables: {\n record: values,\n },\n });\n localStorage.setItem('token', signedCoach?.data?.signIn?.token);\n history.push(\n signedCoach?.data?.signIn?.user?.role?.name === 'admin' ? URLS.templates : URLS.home,\n );\n };\n\n const submitSignIn = async (values, { setErrors }) => {\n try {\n await signInAndRedirect(values)\n } catch (err) {\n if (err.graphQLErrors.find((x) => x.message === 'invalid_credentials')) {\n setErrors({ credentials: 'Email or password are invalid' });\n } else {\n setErrors({ credentials: 'Please, verify your email first' });\n }\n }\n };\n\n const signOut = () => {\n localStorage.removeItem('token');\n apolloClient.clearStore();\n history.push(URLS.sign_in);\n };\n\n return { submitSetPassword, signInAndRedirect, submitSignIn, signOut, submitVerifyEmail };\n};\n\nexport default useSignin;\n","import RandomIcon from '../assets/common/randomIcon.svg';\nimport Logo from '../assets/common/logo.svg';\n// header\nimport NotificationsActiveIcon from '../assets/header/notificationsActive.svg';\nimport NotificationsIcon from '../assets/header/notifications.svg';\nimport SettingsIcon from '../assets/header/settings.svg';\nimport LogoutIcon from '../assets/header/logout.svg';\nimport ProfileImage from '../assets/header/profile.png';\n// input\nimport PlusIcon from '../assets/signup/plus.svg';\nimport MinusIcon from '../assets/signup/minus.svg';\n// sidebar\nimport HomeIcon from '../assets/navbar/home.svg';\nimport ExportIcon from '../assets/navbar/export.svg';\nimport StatsIcon from '../assets/navbar/stats.svg';\nimport ImportIcon from '../assets/navbar/import.svg';\nimport ImportIconGreen from '../assets/navbar/importGreen.svg';\nimport MediaIcon from '../assets/navbar/media.svg';\nimport CalendarIcon from '../assets/navbar/calendar.svg';\nimport UsersIcon from '../assets/navbar/users.svg';\nimport TraineeIcon from '../assets/navbar/trainee_tm.svg';\nimport MobileTraineeIcon from '../assets/navbar/mobile_trainee_tm.svg';\nimport ChatIcon from '../assets/navbar/chat.svg';\nimport SettingsIconSide from '../assets/navbar/settings.svg';\n// coach signup personal\nimport AvatarDefaultImage from '../assets/signup/avatar.svg';\nimport UserIcon from '../assets/signup/user.svg';\nimport UserActiveIcon from '../assets/signup/userActive.svg';\nimport BookIcon from '../assets/signup/book.svg';\nimport BookActiveIcon from '../assets/signup/bookActive.svg';\nimport PhoneIcon from '../assets/signup/phone.svg';\nimport PhoneActiveIcon from '../assets/signup/phoneActive.svg';\nimport EnvelopeIcon from '../assets/signup/envelope.svg';\nimport EnvelopeActiveIcon from '../assets/signup/envelopeActive.svg';\nimport LocationIcon from '../assets/signup/location.svg';\nimport LocationActiveIcon from '../assets/signup/locationActive.svg';\nimport AlertIcon from '../assets/signup/alert.svg';\n// coach signup professional\nimport DiplomaPlus from '../assets/signup/PlusBorderGreen.svg';\nimport TermsCheckMark from '../assets/signup/termsCheckMark.svg';\nimport File from '../assets/common/file.svg';\nimport Image from '../assets/common/image.svg';\nimport EditStroke from '../assets/common/editStroke.svg';\nimport DeleteStroke from '../assets/common/deleteStroke.svg';\nimport EditFill from '../assets/common/editFill.svg';\nimport DeleteFill from '../assets/common/deleteFill.svg';\nimport X from '../assets/common/X.svg';\n// program request\nimport LeftCellBackground from '../assets/program-request/leftCellBackground.png';\nimport RightCellBackground from '../assets/program-request/rightCellBackground.png';\nimport FitnessLevel from '../assets/program-request/fitnessLevel.svg';\nimport Injures from '../assets/program-request/injures.svg';\nimport Environment from '../assets/program-request/environment.svg';\nimport Equipment from '../assets/program-request/equipment.svg';\nimport Health from '../assets/program-request/health.svg';\nimport Focus from '../assets/program-request/focus.svg';\nimport ProgramLength from '../assets/program-request/programLength.svg';\nimport Time from '../assets/program-request/time.svg';\nimport Type from '../assets/program-request/type.svg';\nimport Goal from '../assets/program-request/goal.svg';\nimport Male from '../assets/program-request/male.svg';\nimport Female from '../assets/program-request/female.svg';\n// specialities\nimport Crossfit from '../assets/specialities/crossfit.svg';\nimport Triathlon from '../assets/specialities/triathlon.svg';\nimport Fbb from '../assets/specialities/fbb.svg';\nimport Strength from '../assets/specialities/strength.svg';\nimport Physio from '../assets/specialities/physio.svg';\nimport Yoga from '../assets/specialities/yoga.svg';\nimport Multi from '../assets/specialities/multi.svg';\nimport Marathon from '../assets/specialities/marathon.svg';\nimport Postpartum from '../assets/specialities/postpartum.svg';\nimport PrenetalPrep from '../assets/specialities/prenetalPrep.svg';\nimport Running from '../assets/specialities/running.svg';\n// trainee card\nimport Message from '../assets/common/message.svg';\nimport MessageActive from '../assets/common/messageActive.svg';\n// dashboard\nimport ProgramRequests from '../assets/dashboard/programRequests.svg';\nimport ActiveCustomers from '../assets/dashboard/activeCustomers.svg';\nimport MonthlyIncome from '../assets/dashboard/monthlyIncome.svg';\nimport ArrowUpGreen from '../assets/common/arrowUpGreen.svg';\n// profile\nimport ProfilePersonal from '../assets/profile/personal.svg';\nimport ProfilePersonalActive from '../assets/profile/personalActive.svg';\nimport ProfilePricing from '../assets/profile/pricing.svg';\nimport ProfilePricingActive from '../assets/profile/pricingActive.svg';\nimport ProfileBilling from '../assets/profile/billing.svg';\nimport ProfileBillingActive from '../assets/profile/billingActive.svg';\nimport ProfileSettings from '../assets/profile/settings.svg';\nimport ProfileSettingsActive from '../assets/profile/settingsActive.svg';\nimport Edit from '../assets/profile/edit.svg';\nimport EditGreen from '../assets/profile/editGreen.svg';\nimport ID from '../assets/profile/ID.svg';\nimport Meal from '../assets/profile/meal.svg';\nimport Music from '../assets/profile/music.svg';\nimport AddPortfolioItem from '../assets/profile/addPortfolioItem.svg';\nimport Download from '../assets/profile/download.svg';\nimport InputArrowLight from '../assets/common/inputArrowLight.svg';\nimport InputArrowDark from '../assets/common/inputArrowDark.svg';\nimport AlertRed from '../assets/common/alertRed.svg';\nimport AlertYellow from '../assets/common/alertYellow.svg';\nimport Copy from '../assets/common/copy.svg';\nimport CopyActive from '../assets/common/copyActive.svg';\nimport EditGrey from '../assets/common/editGrey.svg';\nimport DeleteGrey from '../assets/common/deleteGrey.svg';\nimport SortNone from '../assets/common/sortNone.svg';\nimport SortDesc from '../assets/common/sortDesc.svg';\nimport SortAsc from '../assets/common/sortAsc.svg';\nimport VideoSign from '../assets/common/videoSign.svg';\nimport VideoSignGrey from '../assets/common/videoSignGrey.svg';\nimport EmptyIcon from '../assets/program-request/empty-requests.svg';\nimport PasswordIcon from '../assets/set-password/password-input.svg';\nimport BinSimpleGrey from '../assets/common/binSimpleGrey.svg';\nimport BinSimpleDark from '../assets/common/binSimpleDark.svg';\nimport EditSimpleGrey from '../assets/common/editSimpleGrey.svg';\nimport DownloadMini from '../assets/common/download-mini.svg';\nimport Comment from '../assets/common/comment.svg';\nimport CheckMark from '../assets/common/checkMark.svg';\nimport DragIcon from '../assets/common/dragIcon.svg';\nimport PlusSimple from '../assets/common/plusSimple.svg';\nimport OptionPlus from '../assets/input/optionPlus.svg';\nimport OptionPlusActive from '../assets/input/optionPlusActive.svg';\nimport OptionView from '../assets/input/optionView.svg';\nimport OptionViewDark from '../assets/input/optionViewDark.svg';\nimport OptionViewDarkCrossed from '../assets/input/optionViewDarkCrossed.svg';\nimport OptionViewActive from '../assets/input/optionViewActive.svg';\nimport Search from '../assets/common/search.svg';\nimport Upload from '../assets/common/upload.svg';\nimport Clock from '../assets/common/clock.svg';\nimport Weight from '../assets/program/weight.svg';\nimport Height from '../assets/program/height.svg';\nimport Age from '../assets/program/age.svg';\nimport Loader from '../assets/common/loader.svg';\nimport GridLayout from '../assets/common/gridLayout.svg';\nimport ListLayout from '../assets/common/listLayout.svg';\nimport ArrowMainRight from '../assets/common/arrow-main-right.svg';\nimport ArrowDownWhite from '../assets/common/arrowDownWhite.svg';\nimport ArrowUpDark from '../assets/common/arrowUpDark.svg';\nimport ArrowUpLight from '../assets/common/arrowUpLight.svg';\nimport TableSortSvg from '../assets/dashboard/table-sort.svg';\nimport StatusDone from '../assets/dashboard/status-done.svg';\nimport StatusMissed from '../assets/dashboard/status-missed.svg';\nimport StatusNew from '../assets/dashboard/status-new.svg';\nimport AttachmentSvg from '../assets/dashboard/attachment.svg';\nimport AttachmentsNewSvg from '../assets/dashboard/attachments-new.svg';\nimport CommentNewSvg from '../assets/dashboard/comment-new.svg';\nimport EmptyWorkoutSvg from '../assets/dashboard/workout-empty.svg';\nimport dumbellSvg from '../assets/dashboard/dumbell.svg';\nimport ArrowLeft from '../assets/common/arrow-left.svg';\nimport CameraIcon from '../assets/common/camera.svg';\nimport MessageBtn from '../assets/common/messageBtn.svg';\nimport Dumbell from '../assets/day-popup/dumbell.svg';\nimport DumbellActive from '../assets/day-popup/dumbellActive.svg';\nimport VideoCamera from '../assets/day-popup/videoCamera.svg';\nimport VideoCameraActive from '../assets/day-popup/videoCameraActive.svg';\nimport MessageDay from '../assets/day-popup/messageDay.svg';\nimport MessageDayActive from '../assets/day-popup/messageDayActive.svg';\nimport RestDayCup from '../assets/day-popup/RestDayCup.svg';\nimport RestDayCupActive from '../assets/day-popup/RestDayCupActive.svg';\nimport MeetingLocation from '../assets/day-popup/meetingLocation.svg';\nimport CopyDay from '../assets/day-popup/copyDay.svg';\nimport PasteDay from '../assets/day-popup/pasteDay.svg';\nimport ArrowDownIcon from '../assets/signin/arrow-down-big.svg';\nimport Move from '../assets/common/move.svg';\nimport AddComment from '../assets/common/addComment.svg';\nimport VerticalDots from '../assets/common/verticalDots.svg';\nimport VerticalDotsActive from '../assets/common/verticalDotsActive.svg';\nimport EditWeekBlock from '../assets/common/editWeekBlock.svg';\nimport RestDayBoy from '../assets/common/restDayBoy.svg';\nimport Ticket from '../assets/program-request/ticket.png';\nimport LogoShort from '../assets/common/logo-short.svg';\nimport ChatMobile from '../assets/common/chat-m.svg';\nimport NotificationMobile from '../assets/common/notif-m.svg';\nimport Burger from '../assets/common/burger-menu.svg';\nimport Close from '../assets/common/close.svg';\nimport CalendarMobile from '../assets/sidebar/calendar.svg';\nimport Cloud from '../assets/sidebar/cloud.svg';\nimport HomeMobile from '../assets/sidebar/home.svg';\nimport ImageMobile from '../assets/sidebar/image.svg';\nimport Pulse from '../assets/sidebar/pulse.svg';\nimport Save from '../assets/sidebar/save.svg';\nimport Settings from '../assets/sidebar/settings.svg';\nimport User from '../assets/sidebar/users.svg';\nimport GoBack from '../assets/header/go-back-mobile.svg';\nimport RedBin from '../assets/common/redBin.svg';\nimport SimpleArrowUp from '../assets/dashboard/simple-arrow-up.svg';\nimport ArrowRight from '../assets/common/arrow-right.svg';\nimport RespMessage from '../assets/common/respMessage.svg';\nimport ChatSidemenuMobile from '../assets/navbar/chat-mob.svg';\nimport CouponSidemenuMobile from '../assets/navbar/coupon-mob.svg';\nimport Collapse from '../assets/common/collapse.svg';\nimport Expand from '../assets/common/expand.svg';\nimport PasteColumn from '../assets/common/pasteColumn.svg';\nimport WhiteCheck from '../assets/common/WhiteCheck.svg';\nimport ListTrainees from '../assets/sidebar/list.svg';\nimport LeftArrowPage from '../assets/common/left-arrow-page.svg';\nimport RightArrowPage from '../assets/common/right-arrow-page.svg';\nimport UpPage from '../assets/common/up.svg';\nimport DownPage from '../assets/common/down.svg';\n\nconst icons = {\n Logo,\n RandomIcon,\n // header\n NotificationsActiveIcon,\n NotificationsIcon,\n SettingsIcon,\n LogoutIcon,\n ProfileImage,\n // input\n PlusIcon,\n MinusIcon,\n // sidebar\n HomeIcon,\n ExportIcon,\n StatsIcon,\n ImportIcon,\n ImportIconGreen,\n MediaIcon,\n CalendarIcon,\n UsersIcon,\n MobileTraineeIcon,\n TraineeIcon,\n ChatIcon,\n SettingsIconSide,\n ListTrainees,\n // coach signup personal\n AvatarDefaultImage,\n UserIcon,\n UserActiveIcon,\n BookIcon,\n BookActiveIcon,\n PhoneIcon,\n PhoneActiveIcon,\n EnvelopeIcon,\n EnvelopeActiveIcon,\n LocationIcon,\n LocationActiveIcon,\n AlertIcon,\n // coach signup professional\n DiplomaPlus,\n TermsCheckMark,\n File,\n Image,\n X,\n EditStroke,\n DeleteStroke,\n EditFill,\n DeleteFill,\n // program request\n LeftCellBackground,\n RightCellBackground,\n FitnessLevel,\n Injures,\n Environment,\n Equipment,\n Health,\n Focus,\n ProgramLength,\n Time,\n Type,\n Goal,\n Male,\n Female,\n // specialities\n Crossfit,\n Triathlon,\n Fbb,\n Strength,\n Physio,\n Yoga,\n Multi,\n Marathon,\n Postpartum,\n PrenetalPrep,\n Running,\n // trainee card\n Message,\n MessageActive,\n // dashboard\n ProgramRequests,\n ActiveCustomers,\n MonthlyIncome,\n ArrowUpGreen,\n //profile\n ProfilePersonal,\n ProfilePersonalActive,\n ProfilePricing,\n ProfilePricingActive,\n ProfileBilling,\n ProfileBillingActive,\n ProfileSettings,\n ProfileSettingsActive,\n Edit,\n EditGreen,\n ID,\n Meal,\n Music,\n AddPortfolioItem,\n Download,\n InputArrowLight,\n InputArrowDark,\n AlertRed,\n AlertYellow,\n Copy,\n CopyActive,\n EditGrey,\n DeleteGrey,\n SortNone,\n SortDesc,\n SortAsc,\n VideoSign,\n VideoSignGrey,\n EmptyIcon,\n PasswordIcon,\n BinSimpleGrey,\n EditSimpleGrey,\n Comment,\n CheckMark,\n DragIcon,\n PlusSimple,\n OptionPlus,\n OptionPlusActive,\n OptionView,\n OptionViewDark,\n OptionViewDarkCrossed,\n OptionViewActive,\n Search,\n Upload,\n Clock,\n Weight,\n Height,\n Age,\n Loader,\n GridLayout,\n ListLayout,\n ArrowMainRight,\n ArrowDownWhite,\n ArrowUpDark,\n ArrowUpLight,\n TableSortSvg,\n StatusDone,\n StatusMissed,\n StatusNew,\n AttachmentSvg,\n EmptyWorkoutSvg,\n ArrowLeft,\n MessageBtn,\n // calendar day actions\n CameraIcon,\n Dumbell,\n DumbellActive,\n VideoCamera,\n VideoCameraActive,\n MessageDay,\n MessageDayActive,\n MeetingLocation,\n RestDayCup,\n RestDayCupActive,\n CopyDay,\n PasteDay,\n ArrowDownIcon,\n Move,\n AddComment,\n VerticalDots,\n VerticalDotsActive,\n EditWeekBlock,\n RestDayBoy,\n Ticket,\n LogoShort,\n ChatMobile,\n NotificationMobile,\n Burger,\n Close,\n CalendarMobile,\n Cloud,\n HomeMobile,\n ImageMobile,\n Pulse,\n Save,\n Settings,\n User,\n GoBack,\n SimpleArrowUp,\n dumbellSvg,\n RedBin,\n ArrowRight,\n RespMessage,\n ChatSidemenuMobile,\n CouponSidemenuMobile,\n AttachmentsNewSvg,\n DownloadMini,\n CommentNewSvg,\n Collapse,\n Expand,\n PasteColumn,\n WhiteCheck,\n BinSimpleDark,\n LeftArrowPage,\n RightArrowPage,\n UpPage,\n DownPage,\n};\n\nexport default icons;\n","import styled, { keyframes } from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nconst Spin = keyframes`\n 0% {\n transform: rotate(0)\n }\n 12.5% {\n transform: rotate(45deg)\n }\n 25% {\n transform: rotate(90deg)\n }\n 37.5% {\n transform: rotate(135deg)\n }\n 50% {\n transform: rotate(180deg)\n }\n 62.5% {\n transform: rotate(225deg)\n }\n 75% {\n transform: rotate(270deg)\n }\n 87.5% {\n transform: rotate(315deg)\n }\n 100% {\n transform: rotate(360deg)\n }\n`;\n\nexport const LoaderContainer = styled.div`\n width: 100%;\n max-height: 100%;\n height: 100vh;\n flex-grow: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: 10% 0;\n`;\n\nexport const LoaderSign = styled.div`\n width: 6.4rem;\n height: 6.4rem;\n background-image: url(${ICONS.Loader});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-bottom: 4.8rem;\n animation: ${Spin} 800ms infinite;\n animation-timing-function: steps(1);\n`;\n\nexport const LoaderText = styled.div`\n font-family: Space-r;\n font-size: 2rem;\n line-height: 3rem;\n color: #050000;\n`;\n","import React from 'react';\nimport { LoaderContainer, LoaderSign, LoaderText } from './components';\n\nconst Loader = ({ fontSize, height, padding }) => {\n return (\n \n \n Loading, Please, Wait\n \n );\n};\n\nexport default Loader;\n","import React, { useCallback } from 'react';\nimport { Redirect, Route } from 'react-router-dom';\n\nimport Loader from '../components/loader/Loader';\nimport URLS from '../constants/urls';\nimport useRegisterCoach from './registerCoach';\n\nconst useRouting = () => {\n const { me, meLoading } = useRegisterCoach();\n\n const RegistrationRoute = ({ component: Component, ...rest }) => {\n const { me, meLoading } = useRegisterCoach();\n const authed = !!localStorage.getItem('token');\n return (\n \n meLoading ? (\n \n ) : me?.getCurrentUser?.coach?.status === 'APPROVED' ? (\n \n ) : authed ? (\n \n ) : (\n \n )\n }\n />\n );\n };\n\n const PrivateRoute = ({ component: Component, ...rest }) => {\n const { me, meLoading } = useRegisterCoach();\n const authed = !!localStorage.getItem('token');\n return (\n \n meLoading ? (\n \n ) : !authed ||\n (me?.getCurrentUser?.coach?.status !== 'APPROVED' &&\n !me?.getCurrentUser?.organisation?.uid) ? (\n \n ) : (\n \n )\n }\n />\n );\n };\n\n const PublicRoute = useCallback(\n ({ component: Component, ...rest }) => {\n const authed = !!localStorage.getItem('token');\n return (\n \n !authed || me?.getCurrentUser?.coach?.status !== 'APPROVED' ? (\n \n ) : (\n \n )\n }\n />\n );\n },\n [me],\n );\n\n const AdminRoute = useCallback(\n ({ component: Component, ...rest }) => {\n return (\n \n meLoading ? (\n \n ) : me?.getCurrentUser?.coach?.status === 'APPROVED' ||\n me?.getCurrentUser?.user?.role?.name === 'admin' ? (\n \n ) : (\n \n )\n }\n />\n );\n },\n [me, meLoading],\n );\n\n return { PrivateRoute, PublicRoute, RegistrationRoute, AdminRoute };\n};\n\nexport default useRouting;\n","import {\n getProgramQuery,\n getCoachGroupQuery,\n editCoachProgramMutation,\n cancelParticipantMutation,\n} from '@witness/graphql';\nimport { useApolloClient, useMutation, useQuery } from '@apollo/react-hooks';\nimport { useState, useEffect, useCallback, useMemo } from 'react';\nimport qs from 'querystring';\nimport { useHistory, useLocation } from 'react-router-dom';\n\nconst useProgram = ({ programId } = {}) => {\n const location = useLocation();\n const history = useHistory();\n\n const { defaultTab, isGroup, urlProgramDay, urlTraineeUid } = useMemo(() => {\n const queryData = qs.parse(location.search.substr(1));\n return {\n defaultTab: queryData.tab || 'program',\n isGroup: queryData.group === 'true',\n urlProgramDay: queryData.day,\n urlTraineeUid: queryData.trainee_id,\n };\n }, [location.search]);\n\n const [programOrGroup, setProgramOrGroup] = useState(null);\n\n const {\n data: program,\n loading: programLoading,\n refetch: refetchProgram,\n } = useQuery(getProgramQuery, {\n variables: {\n record: {\n uid: programId || location.pathname.split('?')[0].split('/')[2],\n },\n },\n skip: isGroup || !(programId || location.pathname.split('?')[0].split('/')[2]),\n fetchPolicy: 'no-cache',\n onCompleted: (a) => {\n setProgramOrGroup(a.getProgram);\n },\n notifyOnNetworkStatusChange: true,\n });\n\n const {\n data: group,\n loading: groupLoading,\n refetch: refetchGroup,\n } = useQuery(getCoachGroupQuery, {\n variables: {\n record: {\n uid: location.pathname.split('?')[0].split('/')[2],\n },\n },\n skip: !isGroup,\n fetchPolicy: 'no-cache',\n onCompleted: (a) => {\n setProgramOrGroup(a.getGroup);\n },\n notifyOnNetworkStatusChange: true,\n });\n\n useEffect(() => {\n if (\n program?.getProgram?.type === 'GROUP' &&\n location.pathname.startsWith('/program') &&\n location.pathname !== `/program/${program.getProgram.code.group.uid}?group=true`\n ) {\n history.push(`/program/${program.getProgram.code.group.uid}?group=true`);\n }\n }, [program, history, location]);\n\n useEffect(() => {\n if (isGroup && group) {\n setProgramOrGroup(group.getGroup);\n }\n\n if (!isGroup && program) {\n setProgramOrGroup(program.getProgram);\n }\n }, [isGroup, group, program]);\n\n const refetchProgramOrGroup = useCallback(() => {\n if (program) {\n refetchProgram();\n } else {\n refetchGroup();\n }\n }, [program, refetchGroup, refetchProgram]);\n\n const [editCoachProgram] = useMutation(editCoachProgramMutation);\n const handleCoachProgramUpdate = useCallback(\n async (date) => {\n try {\n if (\n date &&\n date !== programOrGroup?.coachProgram?.beginningDate &&\n programOrGroup?.coachProgram?.uid\n ) {\n await editCoachProgram({\n variables: {\n record: {\n uid: programOrGroup?.coachProgram?.uid,\n beginningDate: new Date(date),\n },\n },\n });\n refetchProgramOrGroup();\n }\n } catch (err) {\n console.log('did not updated', err);\n }\n },\n [editCoachProgram, programOrGroup, refetchProgramOrGroup],\n );\n\n const apolloClient = useApolloClient();\n const updateCalendarCache = useCallback(\n (newCalendar) => {\n if (program) {\n apolloClient.writeQuery({\n query: getProgramQuery,\n variables: {\n record: {\n uid: location.pathname.split('?')[0].split('/')[2],\n },\n },\n data: {\n ...program,\n getProgram: {\n ...program.getProgram,\n coachProgram: {\n ...program.getProgram.coachProgram,\n calendar: newCalendar,\n },\n },\n },\n });\n } else {\n apolloClient.writeQuery({\n query: getCoachGroupQuery,\n variables: {\n record: {\n uid: location.pathname.split('?')[0].split('/')[2],\n },\n },\n data: {\n ...group,\n getGroup: {\n ...group.getGroup,\n coachProgram: {\n ...group.getGroup.coachProgram,\n calendar: newCalendar,\n },\n },\n },\n });\n }\n },\n [apolloClient, program, group, location.pathname],\n );\n\n const [cancelParticipant] = useMutation(cancelParticipantMutation);\n\n const cancelParticipantFromGroup = async (traineeUid, coachProgramUid) => {\n try {\n await cancelParticipant({\n variables: {\n record: {\n traineeUid,\n coachProgramUid,\n },\n },\n });\n refetchProgramOrGroup();\n } catch (err) {\n console.log();\n }\n };\n\n return {\n program: programOrGroup,\n programLoading: programLoading || groupLoading,\n isGroup,\n defaultTab,\n urlProgramDay,\n urlTraineeUid,\n refetch: refetchProgramOrGroup,\n handleCoachProgramUpdate,\n updateCalendarCache,\n cancelParticipantFromGroup,\n };\n};\n\nexport default useProgram;\n","import {\n createCoachExerciseMutation,\n editCoachExerciseMutation,\n getExercisesQuery,\n} from '@witness/graphql';\nimport { useQuery, useMutation } from '@apollo/react-hooks';\nimport { useState, useEffect } from 'react';\n\nconst useExercise = () => {\n const [searchText, setSearchText] = useState(null);\n\n const { data: exercises, loading: exercisesLoading, refetch: exercisesRefetch } = useQuery(\n getExercisesQuery,\n {\n variables: {\n record: {\n searchText,\n sortField:'title',\n sortOrder:'ASC'\n },\n },\n },\n );\n\n const [createCoachExercise, { loading: createLoading }] = useMutation(\n createCoachExerciseMutation,\n );\n const [editExercise, { loading: editLoading }] = useMutation(editCoachExerciseMutation);\n\n const createNewExercise = async ({ id, title, type, video, preview, youtubeVideoId, category, setting}) => {\n if (id) {\n const edited = await editExercise({\n variables: {\n record: {\n uid: id,\n title,\n category,\n setting,\n type,\n video: (preview && video) || null,\n youtubeVideoId,\n },\n },\n });\n return edited?.data?.editExercise || edited?.data?.editCoachExercise;\n } else {\n const added = await createCoachExercise({\n variables: {\n record: {\n title,\n type,\n category,\n setting,\n video,\n youtubeVideoId,\n },\n },\n });\n return added?.data?.createCoachExercise;\n }\n };\n\n useEffect(() => {\n exercisesRefetch();\n }, [searchText, exercisesRefetch]);\n\n return {\n exercises,\n searchText,\n setSearchText,\n exercisesLoading,\n createNewExercise,\n loading: createLoading || editLoading,\n };\n};\n\nexport default useExercise;\n","import React, { createContext, useEffect, useMemo, useState } from 'react';\nimport { useCoachPersonalInfo } from '../hooks';\n\nexport const OrganizationContext = createContext(null);\n\nexport const OrganizationProvider = ({ children }) => {\n const [isOrganization, setIsOrganization] = useState(false);\n\n const { currentOrganization } = useCoachPersonalInfo({});\n\n useEffect(() => {\n if (currentOrganization?.uid) {\n setIsOrganization(true);\n }\n }, [currentOrganization, setIsOrganization]);\n\n const contextValue = useMemo(() => ({ isOrganization }), [isOrganization]);\n\n return (\n {children}\n );\n};\n","import { useMutation, useQuery } from '@apollo/react-hooks';\nimport { useContext, useCallback, useState } from 'react';\nimport moment from 'moment';\nimport {\n createCoachGroupMutation,\n getCoachGroupsQuery,\n getTrainingTypesQuery,\n checkProgramCodeQuery,\n getOrgGroupsQuery,\n removeOrganisationGroupMutation,\n} from '@witness/graphql';\nimport { useHistory } from 'react-router-dom';\nimport { OrganizationContext } from '../services/organizationContext';\n\nconst useGroup = (props = {}) => {\n const { groupDigits } = props;\n\n const [searchName, setSearchName] = useState(null);\n const [coachProgramStatus, setCoachProgramStatus] = useState(props?.coachProgramStatus || []);\n\n const { isOrganization } = useContext(OrganizationContext);\n\n const history = useHistory();\n\n const { data: groups, loading: groupsLoading, refetch } = useQuery(getCoachGroupsQuery, {\n variables: {\n record: {\n searchName,\n coachProgramStatus: coachProgramStatus?.map((a) => a.value) || undefined,\n },\n },\n skip: isOrganization,\n });\n const { data: orgGroups, loading: orgGroupsLoading, refetch: orgGroupsRefetch } = useQuery(\n getOrgGroupsQuery,\n {\n variables: {\n record: {\n searchName,\n coachProgramStatus: coachProgramStatus?.map((a) => a.value) || undefined,\n },\n },\n skip: !isOrganization,\n },\n );\n\n const { data: groupByDigits } = useQuery(checkProgramCodeQuery, {\n variables: {\n record: {\n digits: groupDigits,\n },\n },\n skip: !groupDigits,\n fetchPolicy: 'no-cache',\n });\n\n const [createCoachGroup] = useMutation(createCoachGroupMutation);\n const { data: trainingTypes } = useQuery(getTrainingTypesQuery);\n\n const createGroup = async (values, setErrors, setLaoding, closeModal) => {\n setLaoding(true);\n const {\n uid,\n name,\n groupImage,\n price,\n participants,\n programLength,\n trainingTypes,\n description,\n daysOfTraining,\n beginningDate,\n coach,\n // startDate,\n // endDate,\n } = values;\n // let calculatedLength = programLength;\n const uidSpreader = { uid };\n // if (!programLength) {\n // calculatedLength = moment(endDate).diff(moment(startDate), 'days');\n // }\n try {\n const addedGroup = await createCoachGroup({\n variables: {\n record: {\n ...uidSpreader,\n name,\n groupImage,\n price: Number(price),\n participants: Number(participants),\n programLength: programLength?.value,\n trainingTypes: trainingTypes?.map((x) => x.value) || [],\n description,\n daysOfTraining,\n coachUid: coach?.value,\n beginningDate,\n },\n },\n });\n setLaoding(false);\n if (!isOrganization) {\n refetch().then(() => {\n if (addedGroup?.data?.createOrUpdateGroup?.uid) {\n closeModal();\n history.push(`/program/${addedGroup?.data?.createOrUpdateGroup?.uid}?group=true`);\n }\n });\n } else {\n orgGroupsRefetch();\n closeModal();\n }\n } catch (err) {\n if (err.graphQLErrors?.find((x) => x.message === 'group_name_already_exists')) {\n setErrors({ name: 'Name is already used' });\n } else {\n console.log(err.message);\n closeModal();\n }\n }\n };\n\n const [removeOrganisationGroup] = useMutation(removeOrganisationGroupMutation);\n\n const removeGroup = async (uid) => {\n try {\n await removeOrganisationGroup({\n variables: {\n record: {\n uid,\n },\n },\n });\n refetch();\n orgGroupsRefetch();\n } catch (err) {\n console.log();\n }\n };\n\n const refetchGroups = useCallback(() => {\n if (isOrganization) {\n orgGroupsRefetch();\n } else {\n refetch();\n }\n }, [isOrganization, refetch, orgGroupsRefetch]);\n\n return {\n createGroup,\n trainingTypes,\n groups: groups?.getGroups || orgGroups?.getOrgGroups,\n searchName,\n setSearchName,\n coachProgramStatus,\n setCoachProgramStatus,\n groupsLoading: isOrganization ? orgGroupsLoading : groupsLoading,\n groupByDigits,\n removeGroup,\n refetchGroups\n };\n};\n\nexport default useGroup;\n","const BLOCKS = {\n CLASSICSTRENGTH: {\n name: 'Classic Strength',\n type: 'CLASSICSTRENGTH',\n attributes: {\n block_title: {\n label: 'Block Title',\n value: 'Classic Strength',\n textValue: 'Classic Strength',\n name: 'block_title',\n type: 'text',\n itemName: 'title',\n },\n },\n },\n PILATESR: {\n name: 'Pilates Reformer',\n type: 'PILATESR',\n attributes: {\n block_title: {\n label: 'Block Title',\n value: 'Pilates Reformer',\n textValue: 'Pilates Reformer',\n name: 'block_title',\n type: 'text',\n itemName: 'title',\n },\n },\n },\n AMRAP: {\n name: 'AMRAP',\n type: 'AMRAP',\n fullName: 'As Many Rounds As Possible',\n attributes: {\n totalTime: {\n label: 'Total Time (mm:ss)',\n shortLabel: 'Total Time',\n value: '00:01:00',\n name: 'totalTime',\n type: 'clock',\n itemName: 'Total',\n },\n },\n },\n RFT: {\n name: 'Work for Time',\n type: 'RFT',\n attributes: {\n rounds: {\n label: 'Number of Rounds',\n value: 3,\n name: 'rounds',\n itemName: 'rounds',\n },\n },\n },\n RNFT: {\n name: 'Work not for Time',\n type: 'RNFT',\n attributes: {\n rounds: {\n label: 'Number of Rounds',\n value: 3,\n name: 'rounds',\n itemName: 'rounds',\n },\n },\n },\n INTERVALS: {\n name: 'Work/Rest',\n type: 'INTERVALS',\n // uniqueExercises: true,\n valueAttribute: 'intervals',\n // indexPrefix: 'Interval',\n attributes: {\n intervals: {\n label: 'Number of Rounds',\n value: 3,\n name: 'intervals',\n itemName: 'rounds',\n },\n workTime: {\n label: 'Work Time',\n value: '00:00:40',\n type: 'clock',\n name: 'workTime',\n itemName: 'Work Time',\n },\n restTime: {\n label: 'Rest Time',\n value: '00:00:20',\n type: 'clock',\n name: 'restTime',\n itemName: 'Rest Time',\n },\n },\n },\n STRENGTH: {\n name: 'Strength Sets',\n type: 'STRENGTH',\n attributes: {\n sets: {\n label: 'Number of Sets',\n value: 3,\n name: 'sets',\n itemName: 'Sets',\n },\n interval: {\n label: 'Rest Time (mm:ss)',\n shortLabel: 'Rest Time',\n value: '00:01:00',\n name: 'interval',\n asNeeded: false,\n type: 'clock',\n itemName: 'Rest Time',\n },\n },\n },\n SUPERSETS: {\n name: 'Super Sets',\n type: 'SUPERSETS',\n attributes: {\n sets: {\n label: 'Number of Sets',\n value: 3,\n name: 'sets',\n itemName: 'Sets',\n },\n interval: {\n label: 'Rest Time (mm:ss)',\n shortLabel: 'Rest Time',\n value: '00:01:00',\n name: 'interval',\n asNeeded: false,\n type: 'clock',\n itemName: 'Rest Time',\n },\n },\n },\n // QUALITYSETS: {\n // name: 'Quality Sets',\n // type: 'QUALITYSETS',\n // attributes: {\n // sets: {\n // label: 'Number of Sets',\n // value: 3,\n // name: 'sets',\n // itemName: 'Sets',\n // },\n // },\n // },\n EMOM: {\n name: 'EMOM',\n type: 'EMOM',\n attributes: {\n roundTime: {\n label: 'Round Time (mm:ss)',\n shortLabel: 'Round Time',\n value: '00:01:00',\n name: 'roundTime',\n type: 'clock',\n itemName: 'Total',\n },\n rounds: {\n label: 'Number of Rounds',\n value: 3,\n name: 'rounds',\n itemName: 'rounds',\n },\n },\n },\n RUN: {\n name: 'Run',\n type: 'RUN',\n // nullableAttributes: ['pace'],\n attributes: {\n rounds: {\n label: 'Number of Rounds',\n value: 1,\n name: 'rounds',\n itemName: 'rounds',\n },\n block_title: {\n label: 'Block Title',\n value: 'Run',\n textValue: 'Run',\n name: 'block_title',\n type: 'text',\n itemName: 'title',\n },\n // unit: {\n // label: 'Unit',\n // value: null,\n // textValue: 'Time',\n // name: 'unit',\n // type: 'clock',\n // itemName: 'Unit',\n // },\n // pace: {\n // label: 'Pace (optional)',\n // value: null,\n // name: 'pace',\n // type: 'nullable',\n // itemName: 'Pace',\n // textValue: 'km/h',\n // },\n },\n },\n REST: {\n name: 'Rest',\n type: 'REST',\n attributes: {\n rest: {\n label: 'Rest Time (mm:ss)',\n shortLabel: 'Rest Time',\n value: '00:01:00',\n name: 'rest',\n type: 'clock',\n itemName: 'Rest',\n },\n block_title: {\n label: 'Block Title',\n value: 'Rest',\n textValue: 'Rest',\n name: 'block_title',\n type: 'text',\n itemName: 'title',\n },\n },\n },\n CUSTOM: {\n name: 'Custom',\n type: 'CUSTOM',\n attributes: {\n block_title: {\n label: 'Block Title',\n value: 'Custom',\n textValue: 'Custom',\n name: 'block_title',\n type: 'text',\n itemName: 'title',\n },\n text: {\n label: 'Description',\n value: '',\n textValue: '',\n name: 'text',\n type: 'text',\n itemName: 'Text',\n },\n },\n },\n};\n\nexport default BLOCKS;\n","const LENGTH_OPTIONS = [\n { label: '1 month', value: 30 },\n { label: '2 months', value: 60 },\n { label: '3 months', value: 90 },\n { label: '4 months', value: 120 },\n { label: '5 months', value: 150 },\n { label: '6 months', value: 180 },\n { label: '7 months', value: 210 },\n { label: '8 months', value: 240 },\n { label: '9 months', value: 270 },\n { label: '10 months', value: 300 },\n { label: '11 months', value: 330 },\n { label: '12 months', value: 360 },\n]\n\nexport default LENGTH_OPTIONS;","export const ExerciseType = {\n UPPERBODY: 'UPPERBODY',\n LOWERBODY: 'LOWERBODY',\n CORE: 'CORE',\n STRETCH: 'STRETCH',\n MULTI: 'MULTI',\n PILATESR: \"PILATESR\",\n};\n\nexport const ExerciseCategory = [\n { id: 'WARMPUP', name: 'Warm Up' },\n { id: 'ARTICULATION', name: 'Articulation' },\n { id: 'CORE', name: 'Core' },\n { id: 'EXTENSION', name: 'Extension' },\n { id: 'ARMS', name: 'Arms' },\n { id: 'LOWERBODY', name: 'Lower Body' },\n { id: 'BOOTY', name: 'Booty' },\n { id: 'TOTALBODY', name: 'Total Body' },\n { id: 'SPINEMOBILITY', name: 'Spine Mobility' },\n { id: 'FLOW', name: 'Flow' },\n]\n\nexport const status = {\n LEAD: 'LEAD',\n PENDING: 'PENDING',\n APPROVED: 'APPROVED',\n DECLINED: 'DECLINED',\n};\n\nexport const CoachProgramStatus = {\n APPROVED: 'APPROVED',\n ONGOING: 'ONGOING',\n DECLINED: 'DECLINED',\n ENDED: 'ENDED',\n};\n\nexport const RoleName = {\n coach: 'coach',\n trainee: 'trainee',\n org: 'organisation',\n};\n\nexport const Gender = {\n MALE: 'MALE',\n FEMALE: 'FEMALE',\n};\n\nexport const FitnessLevel = {\n BEGINNER: 'BEGINNER',\n INTERMEDIATE: 'INTERMEDIATE',\n ADVANCED: 'ADVANCED',\n EXPERT: 'EXPERT',\n};\n\nexport const ProgramStatus = {\n PENDING: 'PENDING',\n APPROVED: 'APPROVED',\n DECLINED: 'DECLINED',\n CANCELLED: 'CANCELLED',\n};\n\nexport const ProgramType = {\n ONETOONE: 'ONETOONE',\n GROUP: 'GROUP',\n};\n\nexport const WorkoutLength = {\n halfHour: '30 Minutes',\n oneHourOrLess: '45-60 Minutes',\n oneHourOrMore: '60-90 Minutes',\n};\n\nexport const ProgramLength = {\n oneMonth: 30,\n twoMonth: 60,\n threeMonth: 90,\n};\n\nexport const WorkoutType = {\n WORKOUT: 'WORKOUT',\n REST: 'REST',\n};\n\nexport const WorkoutStatus = {\n NEW: 'NEW',\n DONE: 'DONE',\n UNDONE: 'UNDONE',\n};\n\nexport const WorkoutBlockType = {\n RFT: 'RFT',\n RNFT: 'RNFT',\n AMRAP: 'AMRAP',\n STRENGTH: 'STRENGTH',\n SUPERSETS: 'SUPER SETS',\n QUALITYSETS: 'QUALITY SETS',\n REST: 'REST',\n EMOM: 'EMOM',\n CUSTOM: 'CUSTOM',\n RUN: 'RUN',\n INTERVAL: 'INTERVALS',\n CLASSICSTRENGTH: 'CLASSICSTRENGTH',\n PILATESR: 'PILATESR',\n};\n\nexport const BlockExerciseUnit = {\n REPS: 'REPS',\n SECONDS: 'SECONDS',\n METERS: 'METERS',\n MINUTES: 'MINUTES',\n KILOMETERS: 'KILOMETERS',\n CALORIES: 'CALORIES',\n};\n\nexport const BlockExerciseWeightType = {\n KG: 'KG',\n PERCENTAGE: 'PERCENTAGE',\n};\n\nexport const CalendarType = {\n WORKOUT: 'WORKOUT',\n REST: 'REST',\n MESSAGE: 'MESSAGE',\n};\n\nexport const CoachProgramStatusUI = {\n APPROVED: 'Pending',\n ONGOING: 'In progress',\n DECLINED: 'Canceled',\n ENDED: 'Finished',\n};\n","import BLOCKS from '../constants/workoutBlocks';\nimport LENGTH_OPTIONS from '../constants/programLengthOptions'\nimport { WorkoutBlockType, WorkoutStatus } from '../constants/enums';\n\nconst workoutStatuses = {\n [WorkoutStatus.DONE]: 2,\n [WorkoutStatus.NEW]: 1,\n [WorkoutStatus.UNDONE]: 0,\n};\n\nconst useUtils = () => {\n const sortByOrder = (a, b) => a.order - b.order;\n\n const sortByWorkoutStatus = (a, b) => workoutStatuses[b?.type] - workoutStatuses[a?.type];\n\n const getWorkoutBlocksByWorkout = (workout, traineeUid) => {\n const currentBlocks = workout?.workoutBlocks;\n return currentBlocks\n ?.map((block) => {\n const nullableAttributes = BLOCKS[block?.type]?.nullableAttributes && [\n ...BLOCKS[block?.type]?.nullableAttributes,\n ];\n const attributes =\n block?.customAttributes?.map((attr) => {\n const initialType = BLOCKS[block?.type]?.attributes?.[attr?.name]?.type;\n if (initialType === 'nullable') {\n const index = nullableAttributes.indexOf(attr?.name);\n if (index !== -1) {\n nullableAttributes.splice(index, 1);\n }\n }\n const type =\n attr?.name === 'unit'\n ? attr?.textValue === 'Time'\n ? 'clock'\n : 'number'\n : initialType;\n return {\n ...BLOCKS[block?.type]?.attributes?.[attr?.name],\n ...attr,\n asNeeded:\n typeof BLOCKS[block?.type]?.attributes?.[attr?.name]?.asNeeded === 'boolean'\n ? !attr?.value\n : undefined,\n value:\n type === 'clock'\n ? `00:${('0' + Math.floor(attr?.value / 60)).slice(-2)}:${(\n '0' +\n (attr?.value % 60)\n ).slice(-2)}`\n : type === 'text'\n ? attr?.textValue\n : attr?.value,\n type,\n };\n }) || [];\n const nullValueAttributes =\n nullableAttributes?.map((x) => BLOCKS[block?.type]?.attributes?.[x]) || [];\n const exercises =\n block.type !== WorkoutBlockType.CLASSICSTRENGTH\n ? block.exercises\n : block?.exercises?.map((ex) => ({\n ...ex,\n restTime: ex.restTime\n ? `00:${('0' + Math.floor(ex.restTime / 60)).slice(-2)}:${(\n '0' +\n (ex.restTime % 60)\n ).slice(-2)}`\n : '00:00:00',\n }));\n return {\n ...block,\n ...BLOCKS?.[block?.type],\n exercises,\n attributes: [...attributes, ...nullValueAttributes],\n\n results: block?.results?.filter((x) => x?.trainee?.uid === traineeUid),\n };\n })\n .sort(sortByOrder);\n };\n\n const formatNumber = (num) => {\n return new Intl.NumberFormat('en-IN').format(num);\n };\n \n const programLengthValueToOption = (value) => {\n const filteredOptions = LENGTH_OPTIONS.filter(op => op.value == value)\n if (filteredOptions) {\n return filteredOptions[0]\n } else {\n return null\n }\n }\n\n return { getWorkoutBlocksByWorkout, sortByWorkoutStatus, formatNumber, programLengthValueToOption };\n};\n\nexport default useUtils;\n","import { useMutation } from '@apollo/react-hooks';\nimport { coachCommentMutation } from '@witness/graphql';\n\nconst useResults = () => {\n const [coachComment] = useMutation(coachCommentMutation);\n\n const submitFeedback = async (values) => {\n const { feedbacks, workoutStatusUid, traineeUid, workoutComment, workoutUid } = values;\n const feedbacksArr = Object.keys(feedbacks)?.map((workoutBlockUid) => ({\n workoutBlockUid,\n traineeUid,\n coachFeedback: feedbacks?.[workoutBlockUid],\n }));\n await coachComment({\n variables: {\n record: { workoutUid, workoutComment, workoutStatusUid },\n feedbacks: feedbacksArr,\n },\n });\n };\n\n return { submitFeedback };\n};\n\nexport default useResults;\n","import { useState, useEffect } from 'react';\nimport moment from 'moment';\nimport timezoneMoment from 'moment-timezone';\n\nexport const lengthToDays = (lengthEnum) => {\n switch (lengthEnum) {\n case 'oneMonth':\n return 30;\n case 'twoMonth':\n return 60;\n case 'threeMonth':\n return 90;\n default:\n return lengthEnum;\n }\n};\n\nexport const workoutToMin = (lengthEnum) => {\n switch (lengthEnum) {\n case 'halfHour':\n return '30';\n case 'oneHourOrLess':\n return '45-60';\n default:\n return '60-90';\n }\n};\n\nexport const create_UUID = () => {\n let dt = Date.now();\n\n const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (dt + Math.random() * 16) % 16 | 0;\n dt = Math.floor(dt / 16);\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n\n return uuid;\n};\n\nexport const useDebounce = (value, delay) => {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n};\n\nexport const checkTzDST = (timezone) => {\n if (!timezone) return false;\n const m = timezoneMoment().tz(timezone);\n return m.isDST();\n};\n\n/*\n @args\n time - 12:00\n timezone - Europe/Berlin\n*/\nexport const calculateLocalTimeRelevantToTimezone = (time, timezone = 'Asia/Jerusalem') => {\n let arrivingGMT = timezoneMoment().tz(timezone).utcOffset();\n let localGMT = timezoneMoment().utcOffset();\n if (checkTzDST(timezone)) {\n arrivingGMT--;\n }\n if (checkTzDST(timezoneMoment.tz.guess())) {\n localGMT--;\n }\n const hourDiff = (localGMT - arrivingGMT) / 60;\n const today = moment().format('YYYY-MM-DD');\n\n return moment(`${today} ${time}`).add(hourDiff, 'h').format('HH:mm');\n};\n","import {\n createCalendarMutation,\n deleteCalendarMutation,\n deleteMeetingMutation,\n editCalendarMutation,\n editWorkoutMutation,\n copyWorkoutMutation,\n} from '@witness/graphql';\nimport { useMutation } from '@apollo/react-hooks';\nimport { useState, useEffect, useCallback } from 'react';\nimport { lengthToDays } from '../services/utils';\nimport { CalendarType } from '../constants/enums';\nimport { create_UUID } from '../services/utils';\nimport { useAlert } from 'react-alert';\nconst useCoachProgram = ({\n beginningDate,\n programLength,\n calendar,\n coachProgramUid,\n programTemplateUid,\n refetch,\n updateCalendarCache,\n setCalendarDayLoading = () => {},\n} = {}) => {\n const getCopiedWorkout = useCallback(() => {\n return JSON.parse(localStorage.getItem('copiedWorkout'));\n }, []);\n\n const [copiedWorkoutExists, setCopiedWorkoutExists] = useState(!!getCopiedWorkout());\n const setCopiedWorkout = useCallback(\n (source) => {\n localStorage.setItem(\n 'copiedWorkout',\n JSON.stringify({\n source,\n sourceCoachProgramUid: coachProgramUid,\n sourceTemplateUid: programTemplateUid,\n }),\n );\n setCopiedWorkoutExists(true);\n },\n [setCopiedWorkoutExists, coachProgramUid, programTemplateUid],\n );\n\n const getCopiedWeek = useCallback(() => {\n return JSON.parse(localStorage.getItem('copiedWeek'));\n }, []);\n const [copiedWeekExists, setCopiedWeekExists] = useState(!!getCopiedWeek());\n\n const setCopiedWeek = useCallback(\n (sourceStart) => {\n if (sourceStart) {\n localStorage.setItem(\n 'copiedWeek',\n JSON.stringify({\n sourceStart,\n sourceCoachProgramUid: coachProgramUid,\n sourceTemplateUid: programTemplateUid,\n }),\n );\n setCopiedWeekExists(true);\n } else {\n localStorage.removeItem('copiedWeek');\n setCopiedWeekExists(false);\n }\n },\n [coachProgramUid, programTemplateUid],\n );\n\n useEffect(() => {\n const handleLocalStorageChange = () => {\n const copiedWorkout = getCopiedWorkout();\n setCopiedWorkoutExists(!!copiedWorkout);\n const copiedWeek = getCopiedWeek();\n setCopiedWeekExists(!!copiedWeek);\n };\n window.addEventListener('storage', handleLocalStorageChange);\n return () => {\n window.removeEventListener('storage', handleLocalStorageChange);\n };\n }, []);\n const [programDays, setProgramDays] = useState([]);\n const [messageDay, setMessageOpen] = useState(null);\n const openMessageModal = useCallback((day) => setMessageOpen(day), []);\n const closeMessageModal = useCallback(() => setMessageOpen(null), []);\n const [calendarMatrix, setCalendarMatrix] = useState([]);\n\n const [createCalendar, { loading: createLoading }] = useMutation(createCalendarMutation);\n const [editWorkout, { loading: editLoading }] = useMutation(editWorkoutMutation);\n const [deleteMeeting] = useMutation(deleteMeetingMutation);\n const [handleCalendarUpdate] = useMutation(editCalendarMutation);\n const alert = useAlert();\n\n const createNewCalendar = useCallback(\n async (v, shouldNotify = true) => {\n try {\n await createCalendar(v);\n if (shouldNotify) {\n alert.success('Changes Saved !');\n }\n return true;\n } catch (err) {\n if (shouldNotify) {\n if (err.graphQLErrors.find((x) => x.message === 'date_not_valid')) {\n alert.error('You Cannot Add a Past Day');\n } else {\n alert.error('Changes Cannot Be Saved');\n }\n return false;\n }\n }\n },\n [createCalendar, alert],\n );\n const editExistingWorkout = useCallback(\n async (v, shouldNotify = true) => {\n try {\n await editWorkout(v);\n if (shouldNotify) {\n alert.success('Changes Saved !');\n }\n } catch (err) {\n if (shouldNotify) {\n if (err.graphQLErrors.find((x) => x.message === 'date_not_valid')) {\n alert.error('You Cannot Change a Past Day');\n } else {\n alert.error('Something Went Wrong');\n }\n }\n }\n },\n [editWorkout, alert],\n );\n\n const addRestDay = async (programDay, beforeFunc = () => {}, shouldNotify = true) => {\n beforeFunc();\n\n // updateCalendarCache([\n // ...(calendar || []),\n // {\n // customMessage: null,\n // icon: null,\n // message: null,\n // programDay,\n // type: CalendarType.REST,\n // uid: create_UUID(),\n // workout: null,\n // __typename: 'Calendar',\n // },\n // ]);\n\n await createNewCalendar(\n {\n variables: {\n calendar: {\n coachProgram: coachProgramUid,\n programTemplate: programTemplateUid,\n type: CalendarType.REST,\n programDay,\n },\n },\n },\n shouldNotify,\n ).then(refetch);\n };\n\n const saveWorkoutDay = useCallback(\n async (programDay, values, uid, shouldNotify = true) => {\n const { name, type, beforeMessage, afterMessage, blocks, blocksReadyToSubmit } = values;\n const dataToSubmit = {\n name,\n type,\n beforeMessage,\n afterMessage,\n blocks:\n blocksReadyToSubmit ||\n blocks?.map((block, i) => {\n const { type, videoRequested, isWarmUp, comment, attributes, exercises } = block;\n return {\n type,\n order: i + 1,\n videoRequested,\n isWarmUp,\n comment,\n customAttributes: attributes\n ?.filter((x) => x?.value)\n ?.map((attr) => {\n let value = attr.value;\n\n let textValue = attr.textValue;\n if (attr.type === 'clock') {\n const [, m, s] = attr.value.split(':');\n value = attr?.asNeeded ? 0 : Number(m) * 60 + Number(s);\n } else if (attr.type === 'text') {\n textValue = attr?.value;\n value = -1;\n } else {\n value = Number(attr.value);\n }\n\n return {\n name: attr.name,\n value,\n textValue,\n };\n }),\n exercises: exercises?.map((ex, i) => {\n console.log(ex.restTime, 'rest time');\n return {\n exerciseId: ex?.exercise?.id,\n reps: ex.reps,\n notes: ex.notes,\n setting: ex.setting,\n quantity: ex.quantity,\n unit: ex.unit,\n weight: ex.weight,\n weightType: ex.weightType,\n order: i + 1,\n numberOfSets: ex.numberOfSets,\n restTime: ex.restTime\n ? Number(ex.restTime.split(':')?.[1]) * 60 + Number(ex.restTime.split(':')?.[2])\n : undefined,\n };\n }),\n };\n }),\n };\n\n return uid\n ? await editExistingWorkout(\n {\n variables: {\n calendar: {\n type: CalendarType.WORKOUT,\n coachProgram: coachProgramUid,\n programTemplate: programTemplateUid,\n programDay: Math.floor(programDay),\n },\n workout: {\n uid,\n ...dataToSubmit,\n },\n },\n },\n shouldNotify,\n ).then((success) => {\n refetch();\n return success;\n })\n : await createNewCalendar(\n {\n variables: {\n calendar: {\n type: CalendarType.WORKOUT,\n coachProgram: coachProgramUid,\n programTemplate: programTemplateUid,\n programDay: Math.floor(programDay),\n },\n workout: dataToSubmit,\n },\n },\n shouldNotify,\n ).then((success) => {\n refetch();\n return success;\n });\n },\n [createNewCalendar, editExistingWorkout, programTemplateUid, coachProgramUid, refetch],\n );\n const generateCalendarMatrix = useCallback(() => {\n const currStartDate = new Date(beginningDate || new Date());\n const currEpoch = currStartDate.getTime();\n const startDateWeekDay = currStartDate.getDay();\n const result = [];\n const currprogramLength = programLength || 0;\n const weeksToShow = Math.ceil((currprogramLength + startDateWeekDay) / 7);\n for (const i of new Array(weeksToShow * 7).keys()) {\n const week = Math.floor(i / 7);\n const day = i % 7;\n if (day === 0) {\n result[week] = [];\n }\n if (i < startDateWeekDay || i > currprogramLength + startDateWeekDay - 1) {\n result[week][day] = null;\n } else {\n const currDayDate = new Date(currEpoch + (i - startDateWeekDay) * 86400000);\n const cellToBeAdded = {\n date: `${currDayDate.getDate()}.${\n currDayDate.getMonth() + 1\n }.${currDayDate.getFullYear()}`,\n index: i - startDateWeekDay + 1,\n };\n result[week][day] = cellToBeAdded;\n }\n }\n\n return result;\n }, [programLength, beginningDate]);\n\n const placeProgramDays = useCallback(() => {\n const length = lengthToDays(programLength) + 1;\n const programDaysArr = new Array(length);\n for (const day of calendar) {\n const index = day?.programDay;\n if (index > -1 && index < length) {\n if (programDaysArr[index]) {\n programDaysArr[index][day?.type] = day;\n } else {\n programDaysArr[index] = {\n [day?.type]: day,\n };\n }\n }\n }\n setProgramDays(programDaysArr);\n return programDaysArr;\n }, [calendar, programLength]);\n\n useEffect(() => {\n setCalendarMatrix(generateCalendarMatrix());\n }, [programLength, beginningDate]);\n\n useEffect(() => {\n if (calendar?.length) {\n placeProgramDays();\n } else {\n setProgramDays([]);\n }\n }, [calendar]);\n\n const prepareWorkoutToPaste = useCallback((copiedWorkout) => {\n const { name, type, beforeMessage, afterMessage, workoutBlocks } = copiedWorkout;\n const blocks = workoutBlocks?.map((workout) => {\n const {\n uid,\n __typename,\n coachFeedback,\n resultText,\n results,\n customAttributes,\n exercises,\n blockAttachment,\n ...rest\n } = workout;\n const preparedAttributes = customAttributes?.map((attr) => {\n const { uid, __typename, ...rest } = attr;\n return rest;\n });\n const preparedExercises = exercises?.map((attr, i) => {\n const { uid, __typename, exercise, ...rest } = attr;\n return {\n ...rest,\n exerciseId: exercise?.id,\n order: i + 1,\n };\n });\n return {\n ...rest,\n customAttributes: preparedAttributes,\n exercises: preparedExercises,\n };\n });\n return {\n name,\n type,\n beforeMessage,\n afterMessage,\n blocks,\n };\n }, []);\n\n const [copyWorkout, { loading: pasteLoading }] = useMutation(copyWorkoutMutation);\n\n const pasteWorkout = useCallback(\n async (target) => {\n const copiedWorkout = getCopiedWorkout();\n\n alert.info('Copying...');\n\n return copyWorkout({\n variables: {\n record: {\n ...(copiedWorkout || {}),\n target,\n coachProgramUid,\n templateUid: programTemplateUid,\n },\n },\n })\n .then(refetch)\n .then(() => alert.success('Copied Successfully!'));\n },\n [copyWorkout, getCopiedWorkout, refetch, alert, coachProgramUid, programTemplateUid],\n );\n\n const pasteWeek = useCallback(\n async (targetStart, callBack = () => {}) => {\n const copiedWeek = getCopiedWeek();\n\n alert.info('Copying...');\n console.log(copiedWeek, targetStart);\n return Promise.all(\n [0, 1, 2, 3, 4, 5, 6].map((a, i) => {\n console.log('---', copiedWeek.sourceStart + i, '--', targetStart + i, '---');\n if (targetStart + i > 0 && targetStart + i <= programLength) {\n try {\n copyWorkout({\n variables: {\n record: {\n sourceCoachProgramUid: copiedWeek?.sourceCoachProgramUid,\n sourceTemplateUid: copiedWeek?.sourceTemplateUid,\n source: copiedWeek.sourceStart + i,\n target: targetStart + i,\n coachProgramUid,\n templateUid: programTemplateUid,\n },\n },\n })\n .then(refetch)\n .then(callBack);\n } catch (err) {\n alert.error(`Something went wrong !`);\n }\n }\n return 1;\n }),\n )\n .then(refetch)\n .then(callBack)\n .then(() => alert.success('Copied SuccessFully !'));\n },\n [copyWorkout, refetch, alert, coachProgramUid, programTemplateUid, getCopiedWeek],\n );\n\n const [deleteCalendar, { loading: deleteLoading }] = useMutation(deleteCalendarMutation);\n const substractDays = useCallback(\n (days) => {\n var date = new Date(beginningDate);\n date.setDate(date.getDate() + days);\n return date;\n },\n [beginningDate],\n );\n const handleDeleteCalendar = useCallback(\n async (id) => {\n try {\n await deleteCalendar({\n variables: {\n id,\n },\n }).then(refetch);\n } catch (err) {\n console.log(err);\n }\n },\n [deleteCalendar, refetch],\n );\n\n const [selectedProgram, setSelectedProgram] = useState(null);\n const handleProgramDelete = useCallback(async () => {\n const { WORKOUT, MESSAGE, REST, MEETING } = selectedProgram || {};\n\n const calendarDay = WORKOUT || MESSAGE || REST || MEETING;\n\n if (calendarDay) {\n updateCalendarCache(calendar?.filter((item) => item.uid !== calendarDay.uid) || []);\n setSelectedProgram(null);\n try {\n await deleteCalendar({\n variables: {\n id: calendarDay.uid,\n beginningDate: substractDays(calendarDay.programDay),\n },\n });\n\n if (MEETING) {\n await deleteMeeting({\n variables: {\n record: {\n faceMeetingUid: MEETING.faceMeeting?.uid,\n onlineMeetingUid: MEETING.onlineMeeting?.uid,\n },\n },\n });\n }\n\n refetch();\n } catch (err) {\n const tempError = err.graphQLErrors?.find((x) => x.path[0] === 'deleteCalendar').message;\n alert.error(tempError);\n }\n }\n }, [selectedProgram, deleteCalendar, updateCalendarCache, refetch, calendar, deleteMeeting]);\n\n const [selectedMessage, setSelectedMessage] = useState(null);\n useEffect(\n () => setCalendarDayLoading(createLoading || editLoading || deleteLoading),\n [createLoading, editLoading, deleteLoading, setCalendarDayLoading],\n );\n\n // const duplicateWeek = useCallback(\n // async (weekIndex, request = 'copy') => {\n // const _programDays = placeProgramDays();\n // const _calendarMatrix = generateCalendarMatrix();\n // const daysDiff =\n // weekIndex * 7 -\n // _calendarMatrix[0].reduce((acc, value) => (acc += value === null ? 1 : 0), 0) +\n // 1;\n // const copiedWeek = getCopiedWeek();\n // if (request === 'paste') {\n // const duplicatorFuncton = async (weekDay, i) => {\n // let dayIndex = daysDiff + i;\n // const { WORKOUT, MESSAGE, REST } = _programDays[dayIndex] || {};\n // const calendarToDelete = WORKOUT || MESSAGE || REST;\n // if (calendarToDelete) {\n // deleteCalendar({ variables: { id: calendarToDelete?.uid } }).then(refetch);\n // }\n\n // if (weekDay?.WORKOUT?.workout) {\n // return copyWorkout({\n // variables: {\n // record: {\n // calendarUid: weekDay?.WORKOUT?.uid,\n // target: dayIndex,\n // },\n // },\n // skip: !weekDay?.WORKOUT?.uid,\n // });\n // } else if (_programDays[weekDay?.index]?.REST) {\n // addRestDay(dayIndex);\n // return true;\n // }\n // return true;\n // };\n\n // const duplicateAndGetStatuses = () =>\n // Promise.all(copiedWeek.map((weekDay, i) => duplicatorFuncton(weekDay, i)));\n // const successStatusOfDays = await duplicateAndGetStatuses();\n\n // const hasSuccess = successStatusOfDays.indexOf(true) !== -1;\n // const hasFailed = successStatusOfDays.indexOf(false) !== -1;\n // if (hasSuccess && hasFailed) {\n // alert.error('Changes Have Been Saved PARTIALLY');\n // } else if (hasFailed) {\n // alert.error('Changes Cannot Be Saved');\n // } else if (hasSuccess) {\n // alert.success('Changes Saved !');\n // }\n // } else if (request === 'copy') {\n // const getDayToCopy = (weekDay) => {\n // return _programDays[weekDay?.index];\n // };\n // const copyWeek = () => _calendarMatrix[weekIndex].map((weekDay) => getDayToCopy(weekDay));\n // const weekToCopy = copyWeek();\n // console.log('ck', weekToCopy);\n // setCopiedWeek(weekToCopy);\n // }\n // },\n // [pasteWorkout, copiedWeekExists, calendar],\n // );\n\n const submitMessageDay = useCallback(\n async (programDay, v) => {\n const messageDetails =\n v?.messageType === 0\n ? {\n calendarMessage: v?.message.id,\n }\n : {\n customMessage: v?.customMessage,\n icon: v?.icon?.id,\n };\n\n if (v?.uid) {\n await handleCalendarUpdate({\n variables: {\n record: {\n uid: v?.uid,\n ...messageDetails,\n },\n },\n });\n } else {\n await createCalendar({\n variables: {\n calendar: {\n ...messageDetails,\n type: CalendarType.MESSAGE,\n coachProgram: coachProgramUid,\n programTemplate: programTemplateUid,\n programDay,\n },\n },\n });\n }\n refetch();\n },\n [createCalendar, handleCalendarUpdate, refetch, coachProgramUid, programTemplateUid],\n );\n\n const handleCreateMeeting = useCallback(\n async (index, values) => {\n try {\n if (values?.uid) {\n await handleCalendarUpdate({\n variables: {\n record: {\n uid: values.uid,\n },\n meeting: {\n date: values.date?.substring(3),\n timezone: values.timezone.tzCode,\n paid: false,\n location: values.location,\n onlineMeetingUid: values?.onlineMeetingUid,\n faceMeetingUid: values?.faceMeetingUid,\n },\n },\n });\n } else {\n await createCalendar({\n variables: {\n calendar: {\n type: 'MEETING',\n programDay: index,\n coachProgram: coachProgramUid,\n programTemplate: programTemplateUid,\n },\n meeting: {\n date: values.date.substring(3),\n timezone: values.timezone.tzCode,\n paid: false,\n location: values.location,\n },\n },\n });\n }\n\n if (typeof refetch === 'function') {\n refetch();\n }\n } catch (err) {\n console.log(err);\n }\n },\n [createCalendar, coachProgramUid, refetch, handleCalendarUpdate, programTemplateUid],\n );\n\n return {\n calendarMatrix,\n programDays,\n addRestDay,\n messageDay,\n openMessageModal,\n closeMessageModal,\n saveWorkoutDay,\n copiedWorkout: copiedWorkoutExists,\n setCopiedWorkout,\n pasteWorkout,\n selectedProgram,\n setSelectedProgram,\n handleProgramDelete,\n selectedMessage,\n setSelectedMessage,\n copiedWeek: copiedWeekExists,\n submitMessageDay,\n handleCreateMeeting,\n handleDeleteCalendar,\n pasteLoading,\n pasteWeek,\n setCopiedWeek,\n };\n};\n\nexport default useCoachProgram;\n","import {\n createCoachProgramTemplateMutation,\n getProgramTemplateQuery,\n getProgramTemplatesQuery,\n deleteProgramTemplateMutaton,\n getCustomTemplatesQuery,\n uploadTemplateMutaton,\n meQuery,\n} from '@witness/graphql';\nimport { useApolloClient, useMutation, useQuery } from '@apollo/react-hooks';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useCallback, useMemo, useState } from 'react';\nimport { useDebounce } from '../services/utils';\n\nconst useTemplate = ({ initialFilter } = {}) => {\n const location = useLocation();\n const history = useHistory();\n const [calendarLoading, setCalendarLoading] = useState(false);\n\n const [templateFilter, setTemplateFilter] = useState(initialFilter || {});\n const delayedName = useDebounce(templateFilter?.templateName, 500);\n\n const updateFilter = (key, value) => {\n if (key === 'templateLength' && value === templateFilter?.templateLength) {\n setTemplateFilter((curr) => ({ ...curr, templateLength: undefined }));\n } else {\n setTemplateFilter((curr) => ({ ...curr, [key]: value }));\n }\n };\n\n const {\n data: programTemplate,\n loading: loadingProgramTemplate,\n refetch: refetchProgramTemplate,\n } = useQuery(getProgramTemplateQuery, {\n variables: {\n record: {\n uid: location.pathname.split('?')[0].split('/')[2],\n },\n },\n fetchPolicy: 'no-cache',\n skip:\n location.pathname.split('?')[0].split('/')[1] !== 'template' ||\n !location.pathname.split('?')[0].split('/')[2],\n });\n\n const {\n data: programTemplates,\n loading: programTemplatesLoading,\n refetch: refetchProgramTemplates,\n } = useQuery(getProgramTemplatesQuery, {\n variables: {\n filter: {\n programName: delayedName,\n programLength: templateFilter?.templateLength,\n trainingType: templateFilter?.trainingType?.value,\n },\n },\n fetchPolicy: 'network-only',\n });\n\n const { data: customTemplates, loading: customTemplatesLoading } = useQuery(\n getCustomTemplatesQuery,\n {\n variables: {\n filter: {\n programName: delayedName,\n programLength: templateFilter?.templateLength,\n trainingType: templateFilter?.trainingType?.value,\n },\n },\n skip: templateFilter?.searchBy?.value !== 'programs',\n partialRefetch: templateFilter?.searchBy?.value === 'programs',\n fetchPolicy: 'network-only',\n },\n );\n\n const [createProgramTemplate, { loading: templateChangeLoading }] = useMutation(\n createCoachProgramTemplateMutation,\n );\n\n const createTemplate = async (values, { setErrors }) => {\n const { templateName, templateLength, trainingTypes, uid, isGlobal } = values;\n try {\n const addedTemp = await createProgramTemplate({\n variables: {\n record: {\n uid,\n trainingTypes: trainingTypes?.map((a) => a.value),\n programName: templateName,\n programLength: templateLength,\n isGlobal,\n },\n },\n });\n history.push(`/template/${addedTemp?.data?.createOrUpdateProgramTemplate?.uid}`);\n } catch (err) {\n if (err.graphQLErrors.find((x) => x.message === 'template_name_already_exists')) {\n setErrors({ templateName: 'Name is already used' });\n }\n }\n };\n\n const [deleteProgramTemplate] = useMutation(deleteProgramTemplateMutaton);\n const deleteTemplate = async (uid) => {\n await deleteProgramTemplate({\n variables: {\n record: {\n uid,\n },\n },\n });\n history.push(`/templates`);\n };\n\n const [uploadProgramTemplate] = useMutation(uploadTemplateMutaton);\n const uploadTemplate = async (programUid, val, alert, programLength) => {\n alert.info(`The Template Is Being Uploaded`);\n try {\n await uploadProgramTemplate({\n variables: {\n record: {\n coachProgramUid: programUid,\n templateUid: val?.type === 'template' ? val?.id : undefined,\n coachProgramTemplateUid: val?.type === 'program' ? val?.id : undefined,\n programLength\n },\n },\n });\n alert.success(`Program Updated Successfully!`);\n } catch (err) {\n alert.error(`Something went wrong`);\n }\n };\n\n const apolloClient = useApolloClient();\n\n const updateCalendarCache = useCallback(\n (newCalendar) => {\n apolloClient.writeQuery({\n query: getProgramTemplateQuery,\n variables: {\n record: {\n uid: programTemplate?.uid,\n },\n },\n data: {\n ...programTemplate,\n getProgramTemplate: {\n ...programTemplate.getProgramTemplate,\n calendar: newCalendar,\n },\n },\n });\n },\n [apolloClient, programTemplate],\n );\n\n const { data: meData } = useQuery(meQuery);\n\n const readOnly = useMemo(() => {\n return programTemplate?.getProgramTemplate?.coach?.uid !== meData?.getCurrentUser?.coach?.uid;\n }, [programTemplate, meData]);\n\n return {\n programTemplates: programTemplates?.getProgramTemplates,\n programTemplatesLoading,\n refetchProgramTemplates,\n programTemplate: programTemplate?.getProgramTemplate,\n refetchProgramTemplate,\n loadingProgramTemplate,\n createTemplate,\n deleteTemplate,\n updateCalendarCache,\n templateChangeLoading: templateChangeLoading || loadingProgramTemplate || calendarLoading,\n setCalendarLoading,\n customTemplates: customTemplates?.getCustomTemplates,\n customTemplatesLoading,\n uploadTemplate,\n updateFilter,\n templateFilter,\n readOnly,\n };\n};\n\nexport default useTemplate;\n","import { getCoachEarningsQuery, getOrgEarningsQuery } from '@witness/graphql';\nimport { useQuery } from '@apollo/react-hooks';\nimport { useContext, useMemo } from 'react';\nimport moment from 'moment';\nimport { OrganizationContext } from '../services/organizationContext';\n\nconst useEarnings = () => {\n const { isOrganization } = useContext(OrganizationContext);\n const { data: coachData, loading: coachEarningsLoading } = useQuery(getCoachEarningsQuery);\n\n const { data: orgData, loading: orgEarningsLoading } = useQuery(getOrgEarningsQuery);\n\n const [data, earningsLoading] = useMemo(() => {\n if (isOrganization) {\n return [orgData?.getOrgEarnings, orgEarningsLoading];\n } else {\n return [coachData?.getCoachEarnings, coachEarningsLoading];\n }\n }, [isOrganization, orgData, coachData, orgEarningsLoading, coachEarningsLoading]);\n\n const today = moment();\n\n const earnings = useMemo(() => {\n const years = {};\n if (!data?.length) {\n return {};\n }\n data.map((earning) => {\n years[earning.year] = {\n ...years[earning.year],\n [earning.month]: {\n monthlyIncome:\n (years[earning.year]?.[earning.month]?.monthlyIncome || 0) +\n (earning.coachFee || earning.amount),\n programs: [...(years[earning.year]?.[earning.month]?.programs || []), earning],\n },\n };\n return 1;\n });\n return years;\n }, [data]);\n\n const chartData = useMemo(() => {\n const result = [{ name: '', income: 0 }];\n Object.keys(earnings).map((year) =>\n Object.keys(earnings[year]).map((month) => {\n return result.push({\n name: `${month}.${year.substr(2, 2)}`,\n income: earnings?.[year]?.[month]?.monthlyIncome,\n });\n }),\n );\n return result;\n }, [earnings]);\n\n return {\n earningsLoading,\n earnings,\n today: today.format('MMMM, YYYY'),\n currentMonthIncome:\n earnings[today?.format('YYYY')]?.[today?.format('M')]?.monthlyIncome?.toFixed(2),\n chartData,\n };\n};\n\nexport default useEarnings;\n","import { useQuery } from '@apollo/react-hooks';\nimport { getCoachTraineesQuery, getOrganisationTraineeQuery } from '@witness/graphql';\nimport { useContext, useState } from 'react';\nimport { OrganizationContext } from '../services/organizationContext';\nimport { useDebounce } from '../services/utils';\n\nconst useTrainees = ({ initialFilter } = {}) => {\n const { isOrganization } = useContext(OrganizationContext);\n const [traineeName, setTraineeName] = useState('');\n const delayedName = useDebounce(traineeName, 500);\n\n const { data: coachTrainees, loading: coachTraineesLoading } = useQuery(getCoachTraineesQuery, {\n variables: {\n record: {\n searchName: delayedName,\n },\n },\n skip: isOrganization,\n });\n const { data: organisationTrainees, loading: organisationTraineesLoading } = useQuery(\n getOrganisationTraineeQuery,\n {\n variables: {\n record: {\n searchName: delayedName,\n },\n },\n skip: !isOrganization,\n },\n );\n let traineeObject = {\n traineeName,\n setTraineeName,\n };\n if (isOrganization) {\n traineeObject = {\n ...traineeObject,\n trainees: organisationTrainees?.getOrganisationTrainees,\n traineesLoading: organisationTraineesLoading,\n };\n }\n if (!isOrganization) {\n traineeObject = {\n ...traineeObject,\n trainees: coachTrainees?.getCoachTrainees,\n traineesLoading: coachTraineesLoading,\n };\n }\n return traineeObject;\n};\n\nexport default useTrainees;\n","import { useMutation } from '@apollo/react-hooks';\nimport {\n updateOrganisationMutation\n} from '@witness/graphql';\n\nconst useOrganisation = ({ setLoading }) => {\n const [updateOrganisation] = useMutation(updateOrganisationMutation);\n\n const setCoachFee = async (uid, coachFee) => {\n setLoading(true);\n updateOrganisation({\n variables: {\n record: {\n uid,\n coachFee,\n },\n },\n }).finally(() => {\n console.log('doneee')\n setLoading(false)\n })\n };\n\n return {\n setCoachFee\n };\n};\n\nexport default useOrganisation;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\n// text input\n\nexport const InputWrapper = styled.div`\n width: 100%;\n min-height: 4rem;\n height: ${({ height }) => (height ? height : '60px')};\n border: ${({ outlined, fill }) => (outlined && !fill ? '1px solid #05000033' : 'none')};\n border-bottom: ${({ outlined, fill }) =>\n !outlined && !fill ? '1px solid #05000033' : outlined ? '1px solid #05000033' : 'none'};\n border-radius: ${({ outlined, fill, borderRadius }) =>\n outlined && borderRadius ? borderRadius : outlined || fill ? '12px' : '0'};\n border-color: ${({ isActive, error, outlined, theme, borderColor, focusBorderColor }) =>\n error\n ? theme.color.error\n : isActive && focusBorderColor\n ? focusBorderColor\n : !isActive && outlined\n ? borderColor\n : isActive && !outlined\n ? '#050000cc'\n : '#05000033'};\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: ${({ fontSize }) => (fontSize ? fontSize : '1.6rem')};\n margin: ${({ margin }) => (margin ? margin : '1rem 0 2rem 0')};\n padding: ${({ padding }) => (padding ? padding : '0')};\n background: ${({ backgroundColor, isActive, focusBackgroundColor }) =>\n isActive && focusBackgroundColor\n ? focusBackgroundColor\n : backgroundColor\n ? backgroundColor\n : 'transparent'};\n flex-grow: ${({ grow }) => (grow ? '1' : 'none')};\n position: relative;\n text-overflow: ellipsis;\n`;\nexport const InputWrapperClock = styled.div`\n height: ${({ small }) => (small ? '3.2rem' : '4rem')};\n opacity: ${({ disabled }) => (disabled ? '40%' : 1)};\n pointer-events: ${({ disabled }) => (disabled ? 'none' : 'auto')};\n border: ${({ error, theme, borderColor }) =>\n error ? `1px solid ${theme.color.error}` : `1px solid ${borderColor || '#05000033'}`};\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: ${({ fontSize }) => fontSize || '1.8rem'};\n width: fit-content;\n font-family: 'Space-r';\n & > * .react-time-picker__clock--open,\n .react-time-picker__button {\n display: none;\n }\n & > * .react-time-picker__wrapper,\n .react-time-picker__inputGroup__input {\n border: none;\n }\n & > * input,\n span {\n font-family: 'Space-r';\n outline: none;\n text-align: center;\n font-size: ${({ fontSize }) => fontSize || '1.8rem'};\n }\n & > * .react-time-picker__inputGroup {\n min-width: auto;\n }\n & > * .react-time-picker__inputGroup__input--hasLeadingZero {\n max-width: ${({ fontSize }) => (fontSize ? '0.8rem' : '1.1rem')};\n }\n position: relative;\n`;\n\nexport const InputUpperLabel = styled.div`\n position: absolute;\n top: -0.2rem;\n left: 0.6rem;\n font-family: Roboto-m;\n font-size: 1rem;\n line-height: 1.2rem;\n color: #37333366;\n background: white;\n padding: 0 0.25rem;\n height: 2px;\n display: flex;\n align-items: center;\n`;\nexport const InputIcon = styled.div`\n width: 20px;\n height: 20px;\n background-image: ${({ icon }) => (icon ? `url(${icon})` : 'none')};\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n margin: ${({ outlined }) => (outlined ? '0 Calc(2rem - 16px) 0 2rem' : '0 0 10px 0')};\n`;\n\nexport const StyledInput = styled.input`\n line-height: 40px;\n padding: 0 min(12%, 1.6rem);\n border: none;\n outline: none;\n background: none;\n flex-grow: 1;\n overflow: hidden;\n position: relative;\n font-size: 1.4rem;\n color: ${({ color }) => (color ? color : '#050000')};\n display: flex;\n align-items: center;\n &::placeholder {\n font-size: ${({ placeholderFontSize }) =>\n placeholderFontSize ? placeholderFontSize : 'inherit'};\n }\n`;\n\nexport const InputError = styled.div`\n color: ${({ theme }) => theme.color.error};\n font-size: 1rem;\n font-weight: 800;\n padding: 0 12px 0 0;\n display: flex;\n align-items: center;\n white-space: nowrap;\n`;\nexport const InputErrorIcon = styled.div`\n width: 14px;\n height: 14px;\n background-image: url(${ICONS.AlertIcon});\n background-position: center;\n background-size: contain;\n margin: ${({ margin }) => (margin ? margin : '0 0 0 8px')};\n background-repeat: no-repeat;\n`;\n\n// check input\n\nexport const CheckInputWrapper = styled.div`\n display: flex;\n align-items: center;\n width: ${({ little }) => (little ? 'fit-content' : '164px')};\n max-width: 164px;\n min-width: ${({ little }) => (little ? 'fit-content' : 'Calc(25% - 9px)')};\n height: ${({ little }) => (little ? '4rem' : '44px')};\n padding: 0.6rem 1.2rem 0.6rem 0.6rem;\n border-radius: 8px;\n border: ${({ checked, theme }) =>\n checked ? `1px solid ${theme.color.primary}` : '1px solid transparent'};\n background: ${({ checked }) => (checked ? '#ffffff' : '#fafafa')};\n margin: ${({ little }) => (little ? '0 0 0.8rem 0.6rem' : '4px 6px 4px 0;')};\n cursor: pointer;\n flex-grow: 1;\n`;\nexport const CheckInputIcon = styled.div`\n min-width: ${({ little }) => (little ? '28px' : '32px')};\n height: ${({ little }) => (little ? '28px' : '32px')};\n border-radius: 8px;\n background: ${({ checked, theme, little }) =>\n little ? 'transparent' : checked ? theme.color.primary : '#ffffff'};\n background-image: ${({ icon }) => (icon ? `url(${icon})` : '')};\n background-repeat: no-repeat;\n background-position: center;\n background-size: 55%;\n margin-right: 2px;\n`;\nexport const CheckInputTitle = styled.div`\n flex-grow: 1;\n font-size: ${({ multiWord }) => (multiWord ? '1.2rem' : '1.4rem')};\n color: #050000;\n opacity: ${({ checked }) => (checked ? 1 : 0.6)};\n text-align: center;\n`;\n// number input\n\nexport const NumberInputWrapper = styled.div`\n width: 100%;\n border-radius: 8px;\n border: ${({ disabled }) => (disabled ? 'none' : '1.2px solid #05000022')};\n background: ${({ disabled }) => (disabled ? '#fafafa' : 'none')};\n padding: 6px;\n display: flex;\n justify-content: space-between;\n min-height: 40px;\n`;\n\nexport const NumberInputButton = styled.div`\n width: 32px;\n height: 32px;\n border-radius: 8px;\n background: #fafafa;\n background-position: center;\n background-size: 80%;\n cursor: ${({ nonPositive }) => (nonPositive ? 'no-drop' : 'pointer')};\n background-image: ${({ plus }) => (plus ? `url(${ICONS.PlusIcon})` : `url(${ICONS.MinusIcon})`)};\n opacity: 50%;\n &:hover {\n opacity: 100%;\n }\n`;\n\nexport const NumberInputArrowsContainer = styled.div``;\nexport const NumberInputArrow = styled.div`\n width: ${({ small }) => (small ? '13px' : '16px')};\n height: ${({ small }) => (small ? '6px' : '9px')};\n margin: 2px 0;\n background-image: url(${ICONS.InputArrowLight});\n transform: ${({ plus }) => (plus ? `rotate(180deg)` : `none`)};\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n cursor: pointer;\n &:hover {\n background-image: ${({ nonPositive }) =>\n nonPositive ? `url(${ICONS.InputArrowLight})` : `url(${ICONS.InputArrowDark})`};\n }\n margin-right: ${({ right, small }) => (right ? '0' : small ? '0.2rem' : '1rem')};\n margin-left: ${({ right, small }) => (right ? (small ? '0.2rem' : '1rem') : '0')};\n`;\n\nexport const NumberInputInput = styled.input`\n flex-grow: 1;\n text-align: center;\n border: none;\n outline: none;\n min-width: 20px;\n width: Calc(100% - 88px);\n background: transparent;\n`;\n\n// file input\nexport const FileInputInput = styled.input`\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n overflow: hidden;\n padding: 0;\n position: absolute !important;\n white-space: nowrap;\n width: 1px;\n`;\nexport const FileInputLabel = styled.label`\n border-radius: inherit;\n position: absolute !important;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n opacity: ${({ noHover }) => (noHover ? 0 : 1)};\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 4;\n &:hover {\n background-color: #00000011;\n /* opacity: ${({ noHover }) => (noHover ? 0 : 1)}; */\n }\n`;\nexport const UploadCloud = styled.div`\n width: 24px;\n height: 24px;\n background-image: url(${ICONS.ImportIcon});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n opacity: 60%;\n`;\n\n// editable info\nexport const EditableInfoContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n border-radius: 8px;\n border: 1px solid #f1f0f0;\n background: #ffffff;\n margin: 1.2rem 0;\n`;\n\nexport const EditableInfoInput = styled.input`\n flex-grow: 1;\n background: transparent;\n border: none;\n outline: none;\n color: #050000e6;\n line-height: 2.4rem;\n font-size: 1.4rem;\n padding: 1.2rem 1.2rem;\n font-family: Roboto-r;\n`;\n\nexport const EditableInfoIcon = styled.div`\n padding: 2.4rem;\n border-right: 1px solid #f1f0f0;\n background-image: url(${({ icon }) => icon});\n background-position: center;\n background-repeat: no-repeat;\n background-size: min(2.4rem, 36%) auto;\n font-family: Space-b;\n`;\n\n// invisible input\n\nexport const InvisibleInputWrapper = styled.div`\n position: relative;\n width: 100%;\n font-size: inherit;\n font-family: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const InvisibleInputSingleChoice = styled.div`\n font-size: inherit;\n font-family: inherit;\n opacity: ${({ active }) => (active ? '1' : '0.6')};\n cursor: pointer;\n`;\n\nexport const InvisibleInputChoices = styled.div`\n font-size: inherit;\n font-family: inherit;\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: space-around;\n align-items: center;\n`;\n\nexport const InvisibleInput = styled.input`\n width: 100%;\n max-width: 48px;\n border: none;\n font-size: inherit;\n font-family: inherit;\n text-align: center;\n background: transparent;\n outline: none;\n padding: 4px;\n border-bottom: 1px solid transparent;\n &:focus {\n border-bottom: 1px solid #05000066;\n color: ${({ choices }) => (choices ? 'transparent' : 'inherit')};\n }\n`;\n\n// select\n\nexport const StyledSelect = styled.div`\n width: 100%;\n /* line-height: 40px; */\n display: flex;\n align-items: center;\n padding: 0 16px 0 12px;\n border: none;\n outline: none;\n background: none;\n flex-grow: 1;\n overflow: hidden;\n position: relative;\n font-size: 1.4rem;\n color: ${({ color }) => (color ? color : '#373333')};\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n margin-top: 1px;\n`;\n\nexport const LoadingContainer = styled.div`\n font-size: 1.4rem;\n font-family: Space-r;\n width: 100%;\n line-height: 2rem;\n padding: 1rem;\n text-align: center;\n`;\nexport const OptionContainer = styled.div`\n width: Calc(100% + 2px);\n max-height: 100px;\n position: absolute;\n top: Calc(100% + 2px);\n left: -1px;\n border: 1px solid #37333322;\n border-radius: 6px;\n z-index: 4444;\n overflow-y: auto;\n background: #ffffff;\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\n\nexport const StyledOption = styled.div`\n opacity: 80%;\n cursor: pointer;\n font-size: 1.4rem;\n padding: 0.4rem 1rem 0.4rem 1.4rem;\n font-family: Roboto-r;\n color: ${({ color }) => (color ? color : '#050000')};\n width: 100%;\n opacity: ${({ isFocused }) => (isFocused ? '1' : '0.8')};\n background: ${({ isFocused }) => (isFocused ? '#00ff911a' : '#ffffff')};\n display: flex;\n justify-content: space-between;\n align-items: center;\n ${({ isFocused }) =>\n isFocused\n ? `\n & > * .option-plus {\n background-image: url(${ICONS.OptionPlusActive});\n }\n & > * .option-view {\n background-image: url(${ICONS.OptionViewActive});\n }`\n : ``}\n &:hover {\n opacity: 100%;\n background: #00ff911f;\n & > * .option-plus {\n background-image: url(${ICONS.OptionPlusActive});\n }\n & > * .option-view {\n background-image: url(${ICONS.OptionViewActive});\n }\n }\n line-height: ${({ isNew }) => (isNew ? '4.8rem' : '2.4rem')};\n border-bottom: ${({ isNew }) => (isNew ? '0.5px solid #0500001a' : 'none')};\n`;\n\nexport const OptionButtonsContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const OptionButton = styled.div`\n padding: 1rem;\n margin-left: 0.6rem;\n background-image: url(${({ isView }) => (isView ? ICONS.OptionView : ICONS.OptionPlus)});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n`;\n\nexport const SelectContainer = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n position: relative;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n`;\n\nexport const SelectArrow = styled.div`\n position: absolute;\n content: '';\n width: 1.6rem;\n height: 100%;\n top: 0;\n right: 16px;\n background-image: url(${ICONS.InputArrowLight});\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n pointer-events: ${({ disabled }) => (disabled ? 'none' : 'auto')};\n &:hover {\n background-image: url(${ICONS.InputArrowDark});\n }\n`;\n\n// text area\n\nexport const StyledTextAreaWrapper = styled.div`\n padding: 0.5rem;\n width: 100%;\n border-radius: 8px;\n border: 1px solid\n ${({ theme, errorBorder, borderColor }) =>\n errorBorder ? theme.color.error : borderColor || '#d2d1d1'};\n`;\n\nexport const StyledTextAreaError = styled.div`\n color: ${({ theme }) => theme.color.error};\n font-size: 1rem;\n font-weight: 800;\n padding: 1rem 0;\n display: flex;\n align-items: center;\n`;\n\nexport const StyledTextArea = styled.textarea`\n border: none;\n min-width: 100%;\n flex-grow: 1;\n background: transparent;\n min-height: ${({ rows }) => (rows ? `Calc(4 * 2.4rem + 4.6rem)` : '100%')};\n max-height: ${({ rows }) => (rows ? `Calc(${rows} * 2.4rem + 4.6rem)` : '100%')};\n padding: 1.7rem 1.9rem 2.9rem 1.9rem;\n outline: none;\n max-width: 100%;\n font-family: Roboto-r;\n font-size: 1.4rem;\n line-height: 2.4rem;\n color: #050000cc;\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.8;\n }\n`;\n\n// multi check\n\nexport const CMultiCheckScrollable = styled.div`\n border: none;\n width: 100%;\n height: 100%;\n overflow-y: auto;\n padding: 0 1.6rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n opacity: ${({ disabled }) => (disabled ? '0.6' : '1')};\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\n\nexport const CMultiCheckItem = styled.div`\n width: 100%;\n margin-bottom: Calc(1.7rem - 4px);\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n line-height: 2rem;\n color: #05000099;\n &:last-child {\n margin: 0;\n }\n`;\n\nexport const CMultiCheckItemMark = styled.div`\n padding: 1.05rem;\n border-radius: 8px;\n border: 1px solid #05000044;\n margin-right: 1.6rem;\n border: ${({ active, theme }) =>\n active ? `1px solid ${theme.color.primary}` : '1px solid #05000044'};\n background: ${({ active, theme }) => (active ? theme.color.primary : 'transparent')};\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n background-image: ${({ active }) => (active ? `url(${ICONS.TermsCheckMark})` : 'none')};\n cursor: ${({ active }) => (active ? `url(${ICONS.TermsCheckMark})` : 'none')};\n cursor: pointer;\n`;\n\nexport const InputUnit = styled.div`\n font-family: Roboto-l;\n font-size: 1.2rem;\n color: #969494;\n padding-right: 0.8rem;\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: flex-end;\n opacity: ${({ disabled }) => (disabled ? 0.6 : 1)};\n`;\n\nexport const Suffix = styled.span`\n margin-right: 10px;\n`\n","import React, { useState } from 'react';\n\nimport { InputWrapper, InputIcon, StyledInput, InputError, InputErrorIcon, Suffix } from './components';\n\nconst CustomInput = ({\n height,\n backgroundColor,\n focusBackgroundColor,\n borderRadius,\n outlined,\n green,\n fontSize,\n placeholder,\n icon,\n activeIcon,\n enableShowPasswordToggle,\n onToggleShowPassword,\n margin,\n value,\n onChange,\n error,\n type,\n fill,\n inputRef,\n color,\n borderColor,\n placeholderFontSize,\n onBlur = () => {},\n prefix = '',\n errorIcon = true,\n iconStyles,\n onKeyDown,\n endAdornment,\n suffix,\n ...rest\n}) => {\n const [isActive, setIsActive] = useState(false);\n return (\n \n {icon ? (\n \n ) : (\n <>\n )}\n onChange(e.target.value.replace(prefix, ''))}\n onFocus={() => setIsActive(true)}\n onBlur={() => {\n setIsActive(false);\n onBlur();\n }}\n type={type || 'text'}\n novalidate\n color={color}\n onKeyDown={onKeyDown}\n {...rest}\n />\n\n { endAdornment }\n\n {error ? (\n \n {error}\n {errorIcon && }\n \n ) : (\n <>\n )}\n\n { suffix && {suffix} }\n \n );\n};\n\nexport default CustomInput;\n","import styled from 'styled-components';\nimport { css } from 'styled-components';\n\nexport const StyledButton = styled.button`\n width: 100%;\n min-height: 40px;\n max-height: 100%;\n height: ${({ height }) => (height ? height : '56px')};\n background: ${({ backgroundColor, green, theme }) =>\n backgroundColor ? backgroundColor : green ? theme.color.primary : '#f1f0f0'};\n border-radius: ${({ borderRadius }) => (borderRadius ? borderRadius : '12px')};\n display: flex;\n border: ${({ outlined, outlineColor, theme }) =>\n outlined ? `1px solid ${outlineColor || theme.color.primary}` : '1px solid transparent'};\n align-items: center;\n justify-content: center;\n outline: none;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Roboto-m')};\n font-size: ${({ fontSize }) => (fontSize ? fontSize : '1.6rem')};\n font-weight: ${({ bold }) => (bold ? 600 : 200)};\n color: ${({ color }) => color};\n box-sizing: border-box;\n cursor: pointer;\n &:hover {\n opacity: 80%;\n ${({ hoverBackground, hoverOutlineColor }) =>\n hoverBackground || hoverOutlineColor\n ? css`\n background: ${hoverBackground};\n border-color: ${hoverOutlineColor};\n opacity: 1;\n `\n : ''}\n }\n &:active {\n opacity: 100%;\n }\n &:disabled {\n cursor: not-allowed;\n }\n`;\n","import React from 'react';\n\nimport { StyledButton } from './components';\n\nconst CustomButton = ({\n height,\n backgroundColor,\n borderRadius,\n border,\n onClick,\n green,\n children,\n type,\n disabled,\n bold,\n fontSize,\n outlined,\n outlineColor,\n color,\n hoverBackground,\n hoverOutlineColor,\n fontFamily,\n ...rest\n}) => {\n return (\n \n {children}\n \n );\n};\n\nexport default CustomButton;\n","import * as Yup from 'yup';\n\nconst fullName = Yup.string().trim().required('Required').min(2, 'Too Short');\nconst idNumber = Yup.string().trim().required('Required');\nconst phone = Yup.string()\n .trim()\n .required('Required')\n .matches(/\\+?\\d+/, 'Invalid');\nconst email = Yup.string().trim().required('Required').email('Invalid');\nconst password = Yup.string().trim().required('Required');\n\nconst address = Yup.string().trim().required('Required');\nconst preview = Yup.mixed().required('Required');\nconst agreedTerms = Yup.bool().oneOf([true], 'Field must be checked');\nconst specialities = Yup.array()\n .of(Yup.string().required())\n .required('Choose at least 1 speciality');\nconst experience = Yup.number().required('Required');\nconst playlist = Yup.string().required('Required');\nconst meal = Yup.string().required('Required');\nconst about = Yup.string().optional();\nconst files = Yup.array();\nconst gender = Yup.string().oneOf(['FEMALE', 'MALE']);\nconst age = Yup.number().required('Required').min(18, 'invalid');\nconst height = Yup.number().required('Required').positive('Invalid');\nconst weight = Yup.number().required('Required').positive('Invalid');\n\nexport const SignupPersonalSchema = Yup.object().shape({\n fullName,\n idNumber,\n phone,\n email,\n address,\n preview,\n agreedTerms,\n});\n\nexport const SignupProfessionalSchema = Yup.object().shape({\n specialities,\n experience,\n about,\n files,\n});\n\nexport const EditPersonalInfoSchema = Yup.object().shape({\n fullName,\n address,\n phone,\n idNumber,\n gender,\n age,\n height,\n weight,\n meal,\n playlist,\n});\n\nexport const EditAboutMeSchema = Yup.object().shape({\n about,\n});\n\nexport const SetPaswordEmailStepSchema = Yup.object().shape({\n email,\n});\n\nexport const SetPaswordPasswordStepSchema = Yup.object().shape({\n password,\n repassword: Yup.string()\n .required('Required')\n .oneOf([Yup.ref('password'), null], 'No match'),\n});\n\nexport const SignInSchema = Yup.object().shape({\n email,\n password,\n});\n","import FitnessGirlSignupImageFirst from '../assets/signup/fitnessGirlSignup.png';\nimport FitnessGirlSignupImage from '../assets/signup/FitnessGirlSignup2.png';\nimport FitnessBoySignupImage from '../assets/signup/fitnessBoySignup.png';\nimport FitnessGirlNew from '../assets/signup/FitnessgirlNew.png';\nimport CropBackground from '../assets/signup/cropBackground.png';\nimport SigninBackground from '../assets/signin/background.png';\nimport PasswordBackground from '../assets/set-password/background.png';\nimport LogoImage from '../assets/common/logo-white.png';\n\nimport TempProgram1 from '../assets/temp/temp-program-1.jpg';\nimport TempProgram1Opacity from '../assets/temp/temp-program-1-opacity.png';\nimport TempProgram2 from '../assets/temp/temp-program-2.png';\nimport TempProgram3 from '../assets/temp/temp-program-3.jpg';\n\nimport EmptyTrainees from '../assets/empty-state/empty-trainees.png';\nimport EmptyGroups from '../assets/empty-state/empty-groups.png';\nimport EmptyTemplates from '../assets/empty-state/empty-templates.png';\n\nimport HomeBanner from '../assets/dashboard/homeBanner.png';\n\nconst images = {\n FitnessGirlSignupImageFirst,\n FitnessGirlSignupImage,\n FitnessBoySignupImage,\n CropBackground,\n TempProgram1,\n TempProgram2,\n TempProgram3,\n SigninBackground,\n LogoImage,\n PasswordBackground,\n EmptyTrainees,\n EmptyGroups,\n EmptyTemplates,\n HomeBanner,\n TempProgram1Opacity,\n FitnessGirlNew,\n};\n\nexport default images;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\nimport IMAGES from '../../constants/images';\n\nexport const SignUpContainer = styled.div`\n display: flex;\n min-height: 100vh;\n`;\n\nexport const LeftPhotoBackground = styled.div`\n flex-grow: 1;\n background: #fafafa;\n position: relative;\n display: flex;\n justify-content: space-around;\n`;\n\nexport const Logo = styled.div`\n flex-grow: 1;\n background-image: url(${ICONS.Logo});\n background-position: top;\n background-size: 64px 122px;\n background-repeat: no-repeat;\n`;\n\nexport const LeftPhotoBackgroundLine = styled.div`\n flex-grow: 1;\n border-left: 1px solid #05000033;\n display: flex;\n justify-content: center;\n padding-top: 40px;\n &:first-child {\n border: none;\n }\n`;\n\nexport const LeftPhoto = styled.div`\n position: absolute;\n top: ${({ top }) => (top ? top : '32px')};\n width: 100%;\n height: ${({ height }) => (height ? height : 'Calc(100% - 32px)')};\n background: transparent;\n background-image: ${({ image }) =>\n image ? `url(${image})` : `url(${IMAGES.FitnessGirlSignupImageFirst})`};\n background-size: ${({ size }) => (size ? size : '90% auto')};\n background-position: ${({ position }) => (position ? position : 'center 10px')};\n background-repeat: no-repeat;\n`;\n\nexport const FormContainer = styled.div`\n width: 45%;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-right: 3%;\n padding-top: Calc(7.1vh - 11.6px);\n`;\n\nexport const FormHeading = styled.div`\n font-size: 3rem;\n opacity: 80%;\n text-align: center;\n letter-spacing: 1.4px;\n font-family: Gotham-r;\n`;\n\nexport const FormSubHeading = styled.div`\n font-family: Roboto-m;\n width: 80%;\n text-align: center;\n font-size: 1.8rem;\n min-height: 18px;\n line-height: Calc(10.3vh - 16.89px);\n letter-spacing: 0;\n opacity: 70%;\n`;\n\nexport const ProfileimageLine = styled.div`\n width: 128px;\n height: 128px;\n margin: Calc(3.6vh - 6.07px);\n padding: 8px;\n border-radius: 50%;\n border: ${({ theme, error }) =>\n error ? `1px solid ${theme.color.error}` : `2px solid ${theme.color.primary}`};\n cursor: pointer;\n`;\n\nexport const Profileimage = styled.div`\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-image: ${(props) =>\n props.src\n ? `url(${props.src})`\n : `url(\"https://icon-library.com/images/no-profile-picture-icon-female/no-profile-picture-icon-female-3.jpg\")`};\n background-size: cover;\n background-position: center;\n`;\n\nexport const PersonalFormWrapper = styled.div`\n min-width: 300px;\n max-width: 500px;\n width: 80%;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 4;\n`;\n\nexport const TermsAndConditionsBold = styled.a`\n font-size: 1.4rem;\n min-height: 14px;\n line-height: Calc(1.9vh - 3.11px);\n font-family: Roboto-m;\n cursor: pointer;\n &:hover {\n text-decoration: underline;\n }\n`;\nexport const TermsAndConditions = styled.div`\n font-size: 1.4rem;\n line-height: 16px;\n font-family: Roboto-l;\n color: #373333;\n`;\n\nexport const ProfessionalFormWrapper = styled.div`\n min-width: 300px;\n max-width: 700px;\n width: 90%;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 10px;\n`;\n\nexport const SubmitButtonWrapper = styled.div`\n width: 100%;\n margin: Calc(3.9vh - 6.4px) 0;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const FieldHeading = styled.div`\n font-size: 1.6rem;\n line-height: 44px;\n letter-spacing: 1.25px;\n width: 100%;\n position: relative;\n font-family: Roboto-m;\n &::after {\n font-weight: 800;\n position: absolute;\n left: -12px;\n top: 2px;\n color: ${({ theme }) => theme.color.error};\n content: '*';\n display: ${({ error }) => (error ? 'block' : 'none')};\n }\n`;\n\nexport const FieldTip = styled.div`\n font-size: 1.4rem;\n line-height: 16px;\n font-family: Roboto-l;\n color: #050000;\n opacity: 64%;\n`;\n\nexport const SpecialitiesWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n margin: 22px 0 24px 0;\n`;\n\nexport const YearsWrapper = styled.div`\n width: 164px;\n margin: 28px 0 24px 0;\n`;\n\nexport const FlexWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const FavoritesWrapper = styled.div`\n /* flex-grow: 1; */\n max-width: 100%;\n min-width: 228px;\n width: Calc(50% - 6px);\n`;\n\nexport const AboutTextArea = styled.textarea`\n border: 1px solid #05000033;\n font-family: Roboto-l;\n border-radius: 8px;\n margin: 24px 0 0;\n width: 100%;\n height: 88px;\n outline: none;\n padding: 16px;\n font-weight: 600;\n min-width: 100%;\n max-width: 100%;\n min-height: 88px;\n`;\n\nexport const AboutButtonsWrapper = styled.div`\n width: 100%;\n margin: 28px 0;\n display: flex;\n justify-content: space-between;\n`;\nexport const AboutButtonWrapper = styled.div`\n width: Calc(50% - 6px);\n`;\nexport const TermsCheck = styled.div`\n width: 25px;\n height: 25px;\n border-radius: 8px;\n margin-right: 12px;\n cursor: pointer;\n border: ${({ checked, error, theme }) =>\n checked\n ? '1px solid transparent'\n : error\n ? `1px solid ${theme.color.error}`\n : '1px solid #05000033'};\n background: ${({ checked }) => (checked ? '#00ff91' : 'transparent')};\n background-image: ${({ checked }) => (checked ? `url(${ICONS.TermsCheckMark})` : '')};\n background-size: cover;\n background-position: center;\n`;\n\n// result page\n\nexport const ResultName = styled.div`\n width: 100%;\n font-size: 3.8rem;\n color: #00ff91;\n text-align: center;\n font-weight: 1000;\n margin-top: 196px;\n letter-spacing: 1.4px;\n opacity: 80%;\n`;\nexport const ResultSentence = styled.div`\n width: 100%;\n font-size: 2.4rem;\n line-height: 44px;\n color: #050000;\n text-align: center;\n font-weight: 800;\n letter-spacing: 1.2px;\n opacity: 80%;\n`;\n\nexport const WeWillContact = styled.div`\n width: 100%;\n font-size: 2.4rem;\n line-height: 44px;\n color: #050000;\n text-align: center;\n font-weight: 600;\n letter-spacing: 0.4px;\n opacity: 80%;\n`;\n\nexport const ContactUsText = styled.div`\n width: 100%;\n font-size: 1.4rem;\n line-height: 20px;\n color: #05000099;\n text-align: center;\n letter-spacing: 0.4px;\n margin-top: 44px;\n`;\n\nexport const ContactButtonWrapper = styled.div`\n width: 164px;\n margin-top: 24px;\n`;\nexport const Timer = styled.div`\n width: 100%;\n padding: 60px;\n font-family: 'Space-r';\n font-size: 8rem;\n letter-spacing: 8px;\n color: #373333;\n text-align: center;\n`;\n\nexport const CenteringContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n margin: Calc(7.2vh - 12px) 0 0 0;\n`;\nexport const ProfileImageContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\n\nexport const ErrorMessage = styled.div`\n display: flex;\n color: ${({ theme }) => theme.color.error};\n margin-top: ${({ margin }) => (margin ? margin : '8px')};\n font-size: 1.2rem;\n line-height: 16px;\n`;\n\nexport const InputErrorIcon = styled.div`\n width: 14px;\n height: 14px;\n background-image: url(${ICONS.AlertIcon});\n background-position: center;\n background-size: contain;\n margin-right: 8px;\n`;\n\nexport const PseudoCkeckForFlex = styled.div`\n width: 164px;\n min-width: Calc(25% - 9px);\n flex-grow: 1;\n`;\n","import React from 'react';\n\nimport { FileInputInput, FileInputLabel, UploadCloud } from './components';\n\nconst CustomInputFile = ({\n onChange = () => {},\n accept,\n noHover,\n multiple,\n inputId = 'file',\n children,\n disabled,\n}) => {\n return (\n <>\n \n {\n e.preventDefault();\n }}\n onDrop={(e) => {\n e.preventDefault();\n onChange(e.dataTransfer.files);\n }}\n >\n \n {children}\n \n \n );\n};\n\nexport default CustomInputFile;\n","import styled from 'styled-components';\nimport IMAGES from '../../constants/images';\n\nexport const CropContainer = styled.div`\n width: 100%;\n align-items: center;\n height: 60vh;\n background: white;\n margin: auto;\n display: flex;\n justify-content: center;\n background: #00000055;\n background-image: url(${IMAGES.CropBackground});\n & .ReactCrop__crop-selection {\n border: none;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em #00000055;\n }\n & .ReactCrop__image {\n max-height: 60vh;\n }\n`;\n\nexport const ModalHeading = styled.div`\n font-size: 1.4rem;\n line-height: 1.6rem;\n font-family: Roboto-l;\n color: #050000;\n opacity: 64%;\n padding: 24px 0 0;\n text-align: center;\n width: 100%;\n`;\n\nexport const ButtonsWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 20px;\n`;\n\nexport const EditSaveButtonWrapper = styled.div`\n width: 148px;\n margin-left: 12px;\n`;\n\nexport const AutocropButtonWrapper = styled.div`\n width: 196px;\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n`;\n","import React, { useState } from 'react';\nimport Modal from 'react-modal';\nimport ReactCrop from 'react-image-crop';\nimport 'react-image-crop/dist/ReactCrop.css';\n\nimport {\n CropContainer,\n ModalHeading,\n ButtonsWrapper,\n EditSaveButtonWrapper,\n FlexWrapper,\n AutocropButtonWrapper,\n} from './components';\nimport CustomButton from '../button/CustomButton';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#000000bb',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: '80vh',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst CropImageModal = ({ image, closeModal, onSubmit }) => {\n const [crop, setCrop] = useState({ aspect: 1 });\n const [initialCrop, setInitialCrop] = useState({});\n const [imageDimentions, setImageDimensions] = useState(null);\n\n const onImageLoaded = (image) => {\n const { width, height } = image;\n setImageDimensions({ w: width, h: height });\n const initialSize = Math.min(width, height) - 40;\n const x = (width - initialSize) / 2;\n const y = (height - initialSize) / 2;\n setCrop((curr) => ({ ...curr, width: initialSize, height: initialSize, x, y }));\n setInitialCrop((curr) => ({\n ...curr,\n width: initialSize + 40,\n height: initialSize + 40,\n x: x - 20,\n y: y - 20,\n }));\n return false;\n };\n\n const cropImage = async () => {\n const img = new Image();\n img.onload = async () => {\n const canvas = document.createElement('canvas');\n canvas.width = crop.width;\n canvas.height = crop.height;\n const ctx = canvas.getContext('2d');\n const scaleX = img.width / imageDimentions.w;\n const scaleY = img.height / imageDimentions.h;\n ctx.drawImage(\n img,\n crop.x * scaleX,\n crop.y * scaleY,\n crop.width * scaleX,\n crop.height * scaleY,\n 0,\n 0,\n crop.width,\n crop.height,\n );\n const [file, blob] = await new Promise((resolve, reject) => {\n canvas.toBlob(\n (blob) => {\n const file = new File([blob], 'filenametttt');\n resolve([file, canvas.toDataURL()]);\n },\n 'image/jpeg',\n 1,\n );\n });\n\n onSubmit(file, blob);\n closeModal();\n };\n img.src = image;\n };\n\n return (\n {}}\n isOpen={!!image}\n style={customStyles}\n contentLabel=\"Crop Image\"\n ariaHideApp={false}\n >\n \n setCrop(newCrop)}\n minHeight={100}\n minWidth={100}\n onImageLoaded={onImageLoaded}\n />\n \n Crop Your Image Before Saving\n \n \n setCrop((curr) => ({ ...curr, ...initialCrop }))}\n >\n Autocrop\n \n \n \n \n \n Cancel\n \n \n \n \n Save\n \n \n \n \n \n );\n};\n\nexport default CropImageModal;\n","import React, { createContext, useCallback, useEffect, useMemo, useState } from 'react';\n\nconst MOBILE_WIDTH = 600;\n\nexport const MobileContext = createContext({\n isMobile: window.innerWidth <= MOBILE_WIDTH,\n menuOpen: false,\n toggleMenu: () => false,\n});\n\nexport const MobileProvider = ({ children }) => {\n const [isMobile, setIsMobile] = useState(window.innerWidth <= MOBILE_WIDTH);\n const [menuOpen, setMenuOpen] = useState(false);\n const toggleMenu = useCallback(() => {\n setMenuOpen((curr) => !curr);\n }, []);\n\n useEffect(() => {\n const resizeFunc = (e) => setIsMobile(e.target.innerWidth <= MOBILE_WIDTH);\n\n window.addEventListener('resize', resizeFunc);\n\n return () => window.removeEventListener('resize', resizeFunc);\n }, []);\n\n const contextValue = useMemo(() => ({ isMobile, menuOpen, toggleMenu }), [\n isMobile,\n menuOpen,\n toggleMenu,\n ]);\n\n return {children};\n};\n","import React, { useContext, useState } from 'react';\nimport { Formik, Form, Field } from 'formik';\n\nimport { useRegisterCoach, useAddressAutoComplete } from '../../hooks/index';\nimport STRINGS from '../../constants/strings';\nimport ICONS from '../../constants/icons';\nimport CustomInput from '../../components/input/CustomInput';\nimport CustomButtom from '../../components/button/CustomButton';\nimport { SignupPersonalSchema } from '../../schemas/signup/coachProfile';\nimport {\n SignUpContainer,\n LeftPhoto,\n FormContainer,\n FormHeading,\n FormSubHeading,\n ProfileimageLine,\n Profileimage,\n PersonalFormWrapper,\n SubmitButtonWrapper,\n LeftPhotoBackground,\n LeftPhotoBackgroundLine,\n Logo,\n TermsCheck,\n FieldTip,\n CenteringContainer,\n ProfileImageContainer,\n TermsAndConditions,\n TermsAndConditionsBold,\n ErrorMessage,\n InputErrorIcon,\n} from './components';\nimport CustomInputFile from '../../components/input/CustomInputFile';\nimport CropImageModal from '../../components/crop-image/CropImageModal';\nimport { MobileContext } from '../../services/MobileContext';\n\nconst CoachSignUpPersonalInfo = () => {\n const { isMobile } = useContext(MobileContext);\n\n const { meLoading, submitPersonalForm, getInitialValuesPersonal } = useRegisterCoach();\n const [modalImage, setModalImage] = useState(null);\n const [modalImageFile, setModalImageFile] = useState(null);\n const { autoCompleteRef, setHandleAdressChoose } = useAddressAutoComplete();\n\n return (\n \n {!isMobile && (\n \n \n \n \n \n \n \n \n \n )}\n \n {STRINGS.new_coach_registration_form}\n {STRINGS.personal_info}\n \n {!meLoading && (\n \n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n \n {({ field }) => (\n \n setModalImage(null)}\n onSubmit={(file, blob) => {\n setFieldValue(field.name, file);\n setFieldValue('preview', blob);\n }}\n />\n \n \n {\n setModalImageFile(e.target.files[0]);\n var reader = new FileReader();\n reader.readAsDataURL(e.target.files[0]);\n reader.onload = (ev) => {\n setModalImage(ev.target.result);\n };\n }}\n />\n \n \n {(touched.preview && errors.preview && (\n \n \n {errors.preview}\n \n )) || {STRINGS.upload_profile_image}}\n \n )}\n \n \n {({ field }) => (\n setFieldValue(field.name, val)}\n error={touched.fullName && errors.fullName}\n />\n )}\n \n \n {({ field }) => (\n setFieldValue(field.name, val)}\n error={touched.idNumber && errors.idNumber}\n />\n )}\n \n \n {({ field }) => (\n setFieldValue(field.name, val)}\n error={touched.phone && errors.phone}\n type=\"number\"\n />\n )}\n \n \n {({ field }) => (\n setFieldValue(field.name, val)}\n error={touched.email && errors.email}\n />\n )}\n \n \n {({ field }) => (\n <>\n {setHandleAdressChoose((val) => setFieldValue(field.name, val))}\n setFieldValue(field.name, val)}\n error={touched.address && errors.address}\n />\n \n )}\n \n \n {({ field }) => (\n \n setFieldValue(field.name, !field.value)}\n />\n \n {STRINGS.i_agree_to}\n \n {STRINGS.terms_of_service}\n \n {STRINGS.and}\n \n {STRINGS.privacy_policy}\n \n \n \n )}\n \n \n \n {STRINGS.continue}\n \n \n
\n )}\n \n )}\n
\n
\n
\n );\n};\n\nexport default CoachSignUpPersonalInfo;\n","import React from 'react';\n\nimport { CheckInputWrapper, CheckInputIcon, CheckInputTitle } from './components';\n\nconst CustomInputCheck = ({ checked, icon, checkedIcon, title, little, onCheck }) => {\n return (\n \n \n 18}>\n {title}\n \n \n );\n};\n\nexport default CustomInputCheck;\n","import React from 'react';\n\nimport {\n NumberInputWrapper,\n NumberInputButton,\n NumberInputInput,\n InputWrapper,\n StyledInput,\n NumberInputArrowsContainer,\n NumberInputArrow,\n InputUpperLabel,\n InputUnit,\n} from './components';\n\nconst CustomInputNumber = ({\n onDecrement,\n onIncriment,\n onChange,\n value,\n disabled,\n arrows,\n height,\n color,\n fontSize,\n borderRadius,\n error,\n upperlabel,\n unit,\n arrowStyles,\n ...rest\n}) => {\n return (\n <>\n {arrows ? (\n \n {upperlabel && {upperlabel}}\n onChange(e.target.value)}\n onKeyDown={(evt) =>\n (evt.key === 'e' || evt.key === '-' || evt.key === '+') && evt.preventDefault()\n }\n type=\"number\"\n color={color}\n />\n {unit && {unit}}\n \n \n 0 && onDecrement) || (() => {})}\n nonPositive={!value > 0}\n />\n \n \n ) : (\n \n {!disabled && 0} />}\n \n (e.target.value || e.target.value === 0) &&\n !disabled &&\n onChange(Number(e.target.value))\n }\n value={value}\n min={0}\n disabled={disabled}\n />\n {!disabled && }\n \n )}\n \n );\n};\n\nexport default CustomInputNumber;\n","import styled, { keyframes, css } from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nconst ProgressAnimation = keyframes`\n 0% {\n width: 46px;\n padding-right: 46px;\n }\n 100% {\n width: 46px;\n }\n`;\n\nconst ProgressComplete = keyframes`\n 0% {\n width: 46px;\n padding-right: 8px;\n }\n 100% {\n width: 46px;\n padding-right: 0px;\n }\n`;\n\nconst AppearAnimation = keyframes`\n 0% {\n width: 0;\n height: 0;\n }\n 99% {\n width: 0;\n height: 0;\n }\n 100% {\n width: auto;\n }\n`;\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n padding: 12px 0;\n`;\n\nexport const UploadedCredWrapper = styled.div`\n width: 100%;\n padding: 8px 24px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: #fafafa;\n border-radius: 8px;\n line-height: 24px;\n font-size: 1.4rem;\n color: #050000cc;\n margin-top: 12px;\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const GreyButton = styled.div`\n width: 24px;\n height: 24px;\n border-radius: 6px;\n background: #f1f0f0;\n background-image: ${({ icon }) => (icon ? `url(${icon})` : `url(${ICONS.File})`)};\n background-position: center;\n background-size: 50%;\n background-repeat: no-repeat;\n margin-left: 6px;\n`;\n\nexport const EditDeleteButton = styled.div`\n width: 32px;\n height: 32px;\n border-radius: 8px;\n background-image: ${({ icon }) => `url(${icon})`};\n &:hover {\n background-image: ${({ hoverIcon }) => `url(${hoverIcon})`};\n }\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n cursor: pointer;\n margin-left: 8px;\n`;\n\nexport const ProcessBox = styled.div`\n width: 100%;\n border-radius: 8px;\n padding: 24px;\n border: 1px solid #05000033;\n margin-top: 20px;\n`;\n\nexport const SingleFileWrapper = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.2rem;\n color: #292929;\n justify-content: space-between;\n margin: 12px 0;\n`;\n\nexport const SingleFileIcon = styled.div`\n width: 10px;\n height: 10px;\n background-image: ${({ type }) =>\n type === 'image' ? `url(${ICONS.Image})` : `url(${ICONS.File})`};\n background-position: center;\n background-size: contain;\n opacity: 80%;\n margin-right: 12px;\n background-repeat: no-repeat;\n`;\n\nexport const FileProgressContainer = styled.div`\n width: ${({ uploaded }) => (uploaded ? '0' : '46px')};\n padding-right: ${({ uploaded }) => (uploaded ? '0' : '8px')};\n height: 2px;\n border-radius: 1px;\n font-size: 1.2rem;\n background: #cccccc;\n overflow: hidden;\n animation-name: ${({ uploaded }) =>\n uploaded\n ? css`\n ${ProgressComplete}\n `\n : css`\n ${ProgressAnimation}\n `};\n animation-duration: ${({ uploaded, size }) => (uploaded ? '0.2s' : `${size / (1024 * 1024)}s`)};\n`;\n\nexport const FileProgressBar = styled.div`\n height: 100%;\n width: 100%;\n border-radius: 1px;\n background: ${({ theme }) => theme.color.primary};\n`;\n\nexport const FileSize = styled.div`\n width: auto;\n overflow: hidden;\n animation: ${AppearAnimation} 0.3s;\n`;\n\nexport const SingleFileCancelX = styled.div`\n width: 10px;\n height: 10px;\n background-image: url(${ICONS.X});\n background-position: center;\n background-size: contain;\n margin-left: 12px;\n background-repeat: no-repeat;\n cursor: pointer;\n`;\n\nexport const ProcessBoxButtonWrapper = styled.div`\n width: 164px;\n height: 44px;\n position: relative;\n`;\n\nexport const ProcessBoxInputWrapper = styled.div`\n flex-grow: 1;\n margin-right: 12px;\n`;\n\nexport const SaveButtonContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n margin-top: 28px;\n`;\n\nexport const DiplomasPlusButton = styled.div`\n width: 48px;\n height: 48px;\n background-image: url(${ICONS.DiplomaPlus});\n background-size: contain;\n background-position: left;\n margin: 12px 0;\n cursor: pointer;\n`;\n","import React from 'react';\n\nimport STRINGS from '../../constants/strings';\nimport CustomInput from '../input/CustomInput';\nimport CustomButton from '../button/CustomButton';\nimport CustomInputFile from '../input/CustomInputFile';\nimport {\n FlexWrapper,\n ProcessBox,\n ProcessBoxButtonWrapper,\n ProcessBoxInputWrapper,\n SingleFileWrapper,\n SingleFileIcon,\n SingleFileCancelX,\n SaveButtonContainer,\n FileProgressContainer,\n FileProgressBar,\n FileSize,\n} from './components';\n\nconst ProcessGroup = ({\n currentGroupName,\n setCurrentGroupName,\n groupNameError,\n currentDiplomas,\n addFiles,\n deleteFile,\n saveCredential,\n prettifyFileSize,\n}) => {\n return (\n \n \n \n setCurrentGroupName(a)}\n />\n \n \n \n {}}\n >\n {STRINGS.attach_files}\n \n \n \n {currentDiplomas.map((record, i) => (\n \n \n \n {record?.diploma?.name}\n \n \n \n \n \n {record?.uid && {prettifyFileSize(record?.diploma?.size)}}\n deleteFile(i)} />\n \n \n ))}\n {!!currentDiplomas?.length && (\n \n \n !x.uid)}\n >\n {STRINGS.save}\n \n \n \n )}\n \n );\n};\n\nexport default ProcessGroup;\n","import React from 'react';\n\nimport { useUploadCredentials } from '../../hooks';\nimport ProcessGroup from './ProcessGroup';\nimport ICONS from '../../constants/icons';\nimport {\n WholeWrapper,\n UploadedCredWrapper,\n FlexWrapper,\n GreyButton,\n EditDeleteButton,\n DiplomasPlusButton,\n} from './components';\n\nconst CredentialsUpload = ({ onChange }) => {\n const {\n activeIndex,\n setActiveIndex,\n groupNameError,\n currentGroupName,\n setCurrentGroupName,\n currentDiplomas,\n addFiles,\n deleteFile,\n credentials,\n saveCredential,\n deleteCredential,\n chooseCredentialToEdit,\n prettifyFileSize,\n } = useUploadCredentials(onChange);\n\n return (\n \n {credentials?.map((cred, i) => {\n return (\n <>\n {activeIndex === i ? (\n \n ) : (\n \n {cred.name}\n \n {cred.diplomas?.map((dip) =>\n dip.diploma.type?.split('/')[0] === 'image' ? (\n \n ) : (\n \n ),\n )}\n chooseCredentialToEdit(i)}\n />\n {i !== 0 && (\n deleteCredential(i)}\n />\n )}\n \n \n )}\n \n );\n })}\n {credentials.length === activeIndex ? (\n <>\n \n \n ) : (\n {\n saveCredential();\n setActiveIndex(credentials.length);\n }}\n />\n )}\n \n );\n};\n\nexport default CredentialsUpload;\n","import React, { useContext } from 'react';\nimport { Formik, Form, Field } from 'formik';\n\nimport { useRegisterCoach } from '../../hooks/index';\nimport STRINGS from '../../constants/strings';\nimport IMAGES from '../../constants/images';\nimport CustomInput from '../../components/input/CustomInput';\nimport CustomButtom from '../../components/button/CustomButton';\nimport CustomInputCheck from '../../components/input/CustomInputCheck';\nimport CustomInputNumber from '../../components/input/CustomInputNumber';\nimport CredentialsUpload from '../../components/credentials-upload/CredentialsUpload';\nimport { SignupProfessionalSchema } from '../../schemas/signup/coachProfile';\nimport {\n SignUpContainer,\n LeftPhoto,\n FormContainer,\n FormHeading,\n FormSubHeading,\n ProfessionalFormWrapper,\n FieldTip,\n LeftPhotoBackground,\n LeftPhotoBackgroundLine,\n FieldHeading,\n SpecialitiesWrapper,\n YearsWrapper,\n FlexWrapper,\n FavoritesWrapper,\n AboutTextArea,\n AboutButtonWrapper,\n AboutButtonsWrapper,\n Logo,\n ErrorMessage,\n InputErrorIcon,\n PseudoCkeckForFlex,\n} from './components';\nimport { MobileContext } from '../../services/MobileContext';\n\nconst CoachSignUpProfessionalInfo = () => {\n const { isMobile } = useContext(MobileContext);\n\n const {\n meLoading,\n meError,\n specialities,\n specialitiesLoading,\n specialitiesError,\n getInitialValuesProfessional,\n backToPersonalPage,\n submitProfessionalForm,\n } = useRegisterCoach();\n\n return (\n \n {!isMobile && (\n \n \n \n \n \n \n \n \n \n )}\n \n {STRINGS.new_coach_registration_form}\n {STRINGS.professional_info}\n \n {!(meLoading || meError) && (\n \n {({ setFieldValue, errors, touched, isSubmitting }) => (\n
\n \n {({ field }) => (\n <>\n {STRINGS.training_specialities}\n {STRINGS.please_select_all_specialities}\n \n {!specialitiesLoading &&\n !specialitiesError &&\n specialities?.getSpecialities\n ?.slice(0)\n ?.reverse()\n ?.map((spec, i) => {\n const index = field.value?.indexOf(spec.id);\n return (\n -1}\n onCheck={() => {\n if (index > -1) {\n const currentValue = [...field.value];\n currentValue.splice(index, 1);\n setFieldValue(field.name, currentValue);\n } else {\n setFieldValue(field.name, [...field.value, spec.id]);\n }\n }}\n />\n );\n })}\n \n \n \n \n {touched.specialities && errors.specialities && (\n \n \n {errors.specialities}\n \n )}\n \n \n )}\n \n \n {({ field }) => (\n <>\n {STRINGS.years_of_experience}\n {STRINGS.how_many_years_coaching}\n \n setFieldValue(field.name, val)}\n onIncriment={() => setFieldValue(field.name, Number(field.value) + 1)}\n onDecrement={() =>\n setFieldValue(\n field.name,\n Number(field.value) - ((field.value >= 1 && 1) || 0),\n )\n }\n />\n \n \n )}\n \n \n {({ field }) => (\n <>\n {STRINGS.diplomas_and_credentials}\n {STRINGS.provide_all_credentials}\n setFieldValue(field.name, creds)} />\n \n )}\n \n \n {({ field }) => (\n <>\n {STRINGS.tell_about_yourself} (Optional)\n {STRINGS.describe_personal_story}\n setFieldValue(field.name, e.target.value)}\n />\n {touched.about && errors.about && (\n \n \n {errors.about}\n \n )}\n \n )}\n \n \n \n \n {STRINGS.back}\n \n \n \n \n {STRINGS.submit_form}\n \n \n \n
\n )}\n \n )}\n
\n
\n
\n );\n};\n\nexport default CoachSignUpProfessionalInfo;\n","import React, { useContext, useState } from 'react';\nimport { useTimer } from 'react-timer-hook';\n\nimport STRINGS from '../../constants/strings';\nimport IMAGES from '../../constants/images';\nimport CustomButton from '../../components/button/CustomButton';\nimport {\n SignUpContainer,\n LeftPhoto,\n FormContainer,\n ResultSentence,\n WeWillContact,\n ContactUsText,\n ResultName,\n LeftPhotoBackground,\n LeftPhotoBackgroundLine,\n ContactButtonWrapper,\n Timer,\n Logo,\n} from './components';\nimport { MobileContext } from '../../services/MobileContext';\n\nconst CoachSignUpResult = () => {\n const { isMobile } = useContext(MobileContext);\n\n const { seconds, minutes, hours } = useTimer({\n expiryTimestamp: new Date(sessionStorage.getItem('expirationTime')),\n onExpire: () => console.warn('onExpire called'),\n });\n const [clicked, setClicked] = useState(false);\n return (\n \n {!isMobile && (\n \n \n \n \n \n \n \n \n \n )}\n \n {sessionStorage.getItem('name')}\n {/* {STRINGS.your_request_success}\n {`${hours}:${minutes}:${seconds}`}\n {STRINGS.we_will_contact_in_day} */}\n {STRINGS.your_request_approved}\n {STRINGS.please_check_email}\n {STRINGS.if_question_contact_us}\n \n \n setClicked(true)}\n >\n {STRINGS.contact_us}\n \n \n \n {clicked && (\n <>\n \n Nothing happened on click?\n \n \n This is our email address -{' '}\n support@witnesstofitness.com\n \n \n Please contact us and we will get back to you ASAP\n \n \n )}\n \n \n );\n};\n\nexport default CoachSignUpResult;\n","import styled, { css } from 'styled-components';\nimport ICONS from '../../constants/icons';\n\n// Summary block\n\nexport const SummaryBlockContainer = styled.div`\n width: Calc((100% - 40px) / 3);\n height: 120px;\n background: #ffffff;\n padding: 32px 46px 32px 24px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n ${(props) => props.theme.laptopL`\n padding: 24px 46px 24px 24px;\n height: 100px;\n `}\n`;\n\nexport const SummaryBlockIcon = styled.div`\n width: 54px;\n height: 54px;\n border-radius: 12px;\n background-image: url(${({ icon }) => icon});\n background-size: contain;\n background-position: center;\n`;\n\nexport const SummaryBlockMain = styled.div`\n flex-grow: 1;\n margin: 0 20px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const SummaryBlockTitle = styled.div`\n font-family: Roboto-m;\n line-height: 24px;\n color: #373333;\n`;\n\nexport const SummaryStats = styled.div`\n display: flex;\n font-family: Roboto-r;\n font-size: 1.2rem;\n color: #05000066;\n line-height: 24px;\n align-items: center;\n`;\n\nexport const SummaryStatsChange = styled.div`\n padding: 0 18px 0 0;\n font-family: Space-r;\n font-size: 1.4rem;\n line-height: 2.4rem;\n color: #050000cc;\n background-image: url(${ICONS.ArrowUpGreen});\n background-position: right center;\n background-repeat: no-repeat;\n background-size: auto 50%;\n background-repeat: no-repeat;\n margin-right: 6px;\n`;\n\nexport const SummaryStatsValue = styled.div`\n font-family: Space-r;\n font-size: 4rem;\n line-height: 6.2rem;\n color: #373333;\n`;\n\n// program requests\n\nexport const ProgramRequestsContainer = styled.div`\n width: 100%;\n background: #ffffff;\n`;\n\nexport const ProgramRequestsHeader = styled.div`\n width: 100%;\n height: 64px;\n padding: 20px 24px 20px 20px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-family: Roboto-m;\n line-height: 24px;\n color: #373333;\n`;\n\nexport const ProgramRequestsSeeAll = styled.div`\n font-family: Gotham-r;\n font-size: 1.4rem;\n line-height: 24px;\n color: #05000099;\n cursor: pointer;\n &:hover {\n text-decoration: underline;\n }\n`;\n\nexport const ProgramRequestsNavBar = styled.div`\n width: 100%;\n height: 80px;\n display: flex;\n border-top: 1px solid #0500001f;\n border-bottom: 1px solid #0500001f;\n overflow-x: auto;\n`;\n\nexport const ProgramRequestsNavItem = styled.div`\n flex-grow: 1;\n /* min-width: 20%; */\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 1.2rem;\n color: ${({ active }) => (active ? '#050000' : '#05000099')};\n background: ${({ active }) => (active ? '#ffffff' : '#fafafa')};\n position: relative;\n border-right: 1px solid #0500001f;\n text-align: center;\n text-transform: capitalize;\n &:last-child {\n border-right: none;\n }\n &::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 3px;\n border-radius: 1px;\n background: ${({ theme }) => theme.color.primary};\n top: -2px;\n display: ${({ active }) => (active ? 'block' : 'none')};\n }\n cursor: pointer;\n`;\n\nexport const ProgramRequestsList = styled.div`\n width: 100%;\n padding: 4px 24px;\n\n @media (max-width: 600px) {\n padding: 0;\n }\n`;\n\n// program request row\n\nexport const ProgramRequestsRowContainer = styled.div`\n width: 100%;\n height: 44px;\n margin: 18px 0 36px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-right: 2px solid\n ${({ theme, status }) =>\n status === 'APPROVED'\n ? theme.color.primary\n : status === 'PENDING'\n ? '#FFCC00'\n : theme.color.error};\n padding-right: 14px;\n cursor: pointer;\n`;\n\nexport const ProgramRequestsRowPrimaryText = styled.span`\n font-family: Roboto-r;\n line-height: 24px;\n color: #050000cc;\n text-transform: capitalize;\n`;\n\nexport const ProgramRequestsRowSecondaryText = styled.span`\n font-family: ${({ num }) => (num ? 'Space-r' : 'Roboto-r')};\n font-size: 1.2rem;\n line-height: 16px;\n color: #05000066;\n`;\n\nexport const PlaceholderContainer = styled.div`\n width: 100%;\n height: 44px;\n margin: 18px 0 36px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-right: 14px;\n padding-top: 90px;\n padding-bottom: 90px;\n`;\n\nexport const PlaceholderText = styled.span`\n color: #050000;\n font-family: Space-r;\n font-size: 16px;\n letter-spacing: 0;\n line-height: 24px;\n text-align: center;\n`;\n\nexport const PlaceholderIcon = styled.img`\n margin-bottom: 24px;\n`;\n\nexport const WorkoutTable = styled.table`\n width: 100%;\n border-collapse: collapse;\n`;\n\nexport const WorkoutTh = styled.th`\n text-align: left;\n color: #050000;\n font-family: Roboto-m;\n font-size: 1.4rem;\n font-weight: 500;\n letter-spacing: 0;\n line-height: 2.4rem;\n padding: 3.1rem 0 1.8rem 0;\n &:last-child {\n text-align: right;\n }\n`;\n\nexport const ThText = styled.span`\n opacity: 0.4;\n`;\n\nexport const ThIcon = styled.div`\n display: inline-block;\n background-image: url(${ICONS.TableSortSvg});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 1.2rem;\n width: 1rem;\n margin-left: 4px;\n cursor: pointer;\n`;\n\nexport const WorkoutTd = styled.td`\n border-top: 0.5px solid rgba(5, 0, 0, 0.12);\n text-align: left;\n padding: 1.9rem 0;\n`;\n\nexport const TdText = styled.span`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.6rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n`;\n\nconst iconByStatus = ({ status }) => {\n switch (status) {\n case 'Done':\n return ICONS.StatusDone;\n case 'Missed':\n return ICONS.StatusMissed;\n default:\n return ICONS.StatusNew;\n }\n};\n\nexport const StatusIcon = styled.div`\n display: inline-block;\n background-image: url(${iconByStatus});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 1.5rem;\n width: 1.5rem;\n margin-right: 1.1rem;\n\n @media (max-width: 600px) {\n width: 18px;\n height: 18px;\n margin-right: 26px;\n }\n`;\n\nexport const HC = styled.div`\n display: flex;\n align-items: center;\n justify-content: ${({ justify }) => justify};\n`;\n\nexport const AttachmentsCount = styled.span`\n color: #373333;\n font-family: 'Space-r';\n font-size: 1.6rem;\n letter-spacing: 0;\n line-height: 2.4rem;\n text-align: center;\n`;\n\nexport const AttachmentIcon = styled.div`\n display: inline-block;\n background-image: url(${ICONS.AttachmentSvg});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n height: 1.6rem;\n width: 0.7rem;\n margin-left: 4px;\n margin-right: 1.6rem;\n`;\n\nexport const TabContainer = styled.div`\n background-color: ${({ active }) => (active ? 'white' : 'rgba(0, 255, 145, 0.07)')};\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n position: relative;\n\n &:hover {\n background-color: ${({ active }) => (active ? 'white' : 'rgba(0, 255, 145, 0.035)')};\n }\n\n @media (max-width: 600px) {\n background-color: rgba(0, 255, 145, 0.2);\n /* background-color: ${({ active }) => (active ? 'white' : 'rgba(0, 255, 145, 0.2)')}; */\n flex: ${({ active }) => (active ? 1 : 0)};\n }\n`;\n\nexport const ActiveBorder = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 3px;\n background-color: #00ff91;\n\n @media (max-width: 600px) {\n background-color: transparent;\n }\n`;\n\nexport const TabName = styled.span`\n opacity: 0.6;\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.8rem;\n margin-top: 1.2rem;\n\n @media (max-width: 600px) {\n opacity: 0.5;\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.5px;\n margin-top: 16px;\n }\n`;\n\nexport const TabValue = styled.span`\n color: #050000;\n font-family: 'Space-r';\n font-size: 2rem;\n letter-spacing: 0;\n line-height: 3rem;\n text-align: center;\n opacity: ${({ active }) => (active ? 1 : 0.8)};\n margin-top: 0.8rem;\n\n @media (max-width: 600px) {\n font-size: 20px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: center;\n margin-top: 0;\n }\n`;\n\nexport const Avatar = styled.div`\n width: ${({ size }) => size};\n height: ${({ size }) => size};\n background-image: url(${({ src }) => src});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;\n font-family: 'Gotham-r';\n font-size: 0.8rem;\n letter-spacing: 0;\n line-height: 1rem;\n align-items: center;\n justify-content: center;\n display: flex;\n flex-shrink: 0;\n margin-right: 1.4rem;\n border-radius: 5px;\n\n ${({ src }) =>\n !src &&\n css`\n background-color: #f1f0f0;\n color: #373333;\n user-select: none;\n `}\n`;\n\nexport const EmptyText = styled.span`\n font-family: Space-r;\n font-size: 2rem;\n line-height: 2.8rem;\n margin: 4.8rem auto;\n text-align: center;\n`;\n\nexport const WorkoutInfoWrapper = styled.div`\n padding: 24px 20px;\n width: 100%;\n border-bottom: 1px solid rgba(5, 0, 0, 0.12);\n`;\n\nexport const TraineeInfoWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const TraineeName = styled.div`\n font-family: Roboto-r;\n font-size: 16px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.1px;\n text-align: left;\n color: #373333;\n margin-right: auto;\n`;\n\nexport const WorkoutNameWrapper = styled.div`\n font-family: Roboto-r;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.3px;\n text-align: left;\n color: #373333;\n display: flex;\n margin-top: 12px;\n align-items: center;\n`;\n\nexport const DumbellIcon = styled.img`\n margin-right: 20px;\n height: 24px;\n`;\n\n// Mobile Workout Page\nexport const WorkoutPageWrapper = styled.div`\n width: 100%;\n height: 100vh;\n max-height: 100vh;\n overflow-y: auto;\n background: #f1f0f0;\n position: fixed;\n z-index: 13;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\nexport const WorkoutPageHeader = styled.div`\n width: 100%;\n height: 60px;\n border-bottom: 1px solid #00000024;\n background: #fff;\n margin-bottom: 52px;\n`;\nexport const WorkoutPageBackArrow = styled.div`\n width: 24px;\n height: 24px;\n background-image: url(${ICONS.ArrowLeft});\n background-position: left center;\n background-repeat: no-repeat;\n background-size: contain;\n margin: 16px;\n`;\nexport const WorkoutPageAvatar = styled.div`\n width: 72px;\n height: 72px;\n padding: 6px;\n margin-right: 0;\n border: ${({ theme }) => `1px solid ${theme.color.primary}`};\n position: absolute;\n z-index: 14;\n border-radius: 50%;\n top: 24px;\n background: #fff;\n`;\n\nexport const WorkoutPageImg = styled.img`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n`;\n\nexport const WorkoutPageTraineeName = styled.div`\n font-size: 13px;\n line-height: 16px;\n font-family: Roboto-b;\n`;\n\nexport const WorkoutPageName = styled.div`\n font-size: 18px;\n line-height: 24px;\n font-family: Space-r;\n`;\n\nexport const WorkoutPageContent = styled.div`\n height: 100%;\n width: 100%;\n padding: 24px 16px 14px;\n height: fit-content;\n`;\n\nexport const WorkoutPageMessage = styled.div`\n width: 100%;\n background: white;\n border-radius: 4px;\n box-shadow: 0 0 3px rgba(74, 74, 74, 0.12);\n margin-bottom: 10px;\n`;\n\nexport const WorkoutPageMessageHeader = styled.div`\n width: 100%;\n border-radius: 4px 4px 0 0;\n padding: 12px 20px;\n border-bottom: 1px solid #4a4a4a22;\n font-family: Roboto-m;\n font-size: 14px;\n color: #050000cc;\n display: flex;\n align-items: center;\n text-transform: uppercase;\n`;\n\nexport const WorkoutPageMessageIcon = styled.div`\n width: 20px;\n height: 20px;\n background-image: url(${ICONS.RespMessage});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: left center;\n margin-right: 16px;\n position: relative;\n &::after {\n position: absolute;\n content: '';\n width: 8px;\n height: 8px;\n background: ${({ theme }) => theme.color.primary};\n border-radius: 50%;\n top: -1px;\n right: -1px;\n }\n`;\n\nexport const WorkoutPageMessageText = styled.div`\n width: 100%;\n border-radius: 0 0 4px 4px;\n padding: 12px 20px;\n font-family: Roboto-r;\n font-size: 14px;\n line-height: 22px;\n color: #373333cc;\n font-style: italic;\n`;\n","import { useContext, useMemo, useState } from 'react';\nimport {\n getProgramsQuery,\n changeProgramStatusMutation,\n getOrgProgramsQuery,\n cancelFreeProgramMutation\n} from '@witness/graphql';\nimport { useQuery, useMutation } from '@apollo/react-hooks';\nimport { CoachProgramStatus } from '../constants/enums';\nimport { useDebounce } from '../services/utils';\nimport { useHistory } from 'react-router-dom';\nimport { useAlert } from 'react-alert';\nimport { OrganizationContext } from '../services/organizationContext';\n\nconst useProgramRequest = (props) => {\n const { isOrganization } = useContext(OrganizationContext);\n const alert = useAlert();\n const history = useHistory();\n const statusOpts = useMemo(\n () => [\n { label: 'In progress', value: CoachProgramStatus.ONGOING },\n { label: 'Pending', value: CoachProgramStatus.APPROVED },\n { label: 'Canceled', value: CoachProgramStatus.DECLINED },\n { label: 'Finished', value: CoachProgramStatus.ENDED },\n ],\n [],\n );\n\n const [traineeName, setTraineeName] = useState('');\n const delayedName = useDebounce(traineeName, 500);\n\n const [status, setStatus] = useState(props?.coachProgramStatus || []);\n\n const [changeStatus, { loading: changeStatusLoading }] = useMutation(changeProgramStatusMutation);\n const changeProgramStatus = async (values, groupUid) => {\n try {\n const acceptedProgram = await changeStatus({\n variables: {\n record: {\n ...values,\n },\n },\n });\n if (acceptedProgram?.data?.changeProgramStatus?.status === 'APPROVED') {\n const red_url = groupUid\n ? `/program/${groupUid}?group=true`\n : `/program/${acceptedProgram?.data?.changeProgramStatus?.uid}`;\n history.push(red_url);\n }\n } catch (err) {\n if (err.graphQLErrors.find((x) => x.message === 'program_not_relative')) {\n alert.error('Request has already been cancelled');\n } else {\n alert.error('Something Went Wrong');\n }\n }\n };\n const {\n data: programRequests,\n loading: programRequestsLoading,\n refetch: programRequestsRefetch,\n } = useQuery(getProgramsQuery, {\n variables: {\n record: {\n coachProgramStatus: status?.map((a) => a.value) || undefined,\n status: props?.requestStatus,\n type: props?.programType,\n searchName: delayedName,\n },\n },\n skip: props?.skipQuery,\n });\n\n const [cancelFreeProgram] = useMutation(cancelFreeProgramMutation);\n\n const cancelProgram = async (uid) => {\n try {\n await cancelFreeProgram({\n variables: {\n record: {\n uid,\n },\n },\n });\n programRequestsRefetch();\n } catch (err) {\n console.log();\n }\n };\n\n return {\n changeProgramStatus,\n programRequestsLoading,\n programRequestsRefetch,\n programRequests: programRequests?.getPrograms,\n status,\n setStatus,\n statusOpts,\n traineeName,\n setTraineeName,\n changeStatusLoading,\n cancelProgram\n };\n};\n\nexport default useProgramRequest;\n","import React, { useMemo } from 'react';\nimport moment from 'moment';\n\nimport {\n ProgramRequestsRowContainer,\n ProgramRequestsRowPrimaryText,\n ProgramRequestsRowSecondaryText,\n} from './components';\n\nconst ProgramRequestRow = ({ request, openRequest }) => {\n const createdTime = useMemo(() => {\n if (!request) return '';\n const { approvedDate } = request;\n if (!approvedDate) return '';\n return moment(approvedDate).format('DD/MM/YYYY');\n }, [request]);\n return (\n \n
\n {`${\n (request.trainingTypes?.length &&\n (request.trainingTypes?.length > 1\n ? request.trainingTypes?.[0]?.speciality?.name\n : request.trainingTypes?.[0]?.name)) ||\n request.trainingType?.name\n } Program`}\n
\n {/* {`${request.programLength} days - ${request.daysOfTraining?.length} days p/week`} */}\n \n {request?.trainee?.fullName}\n \n
\n
\n \n {request.status === 'PENDING' ? 'New' : request.status?.toLowerCase()}\n \n
\n {createdTime}\n
\n
\n );\n};\n\nexport default ProgramRequestRow;\n","import React, { useCallback, useContext, useMemo } from 'react';\nimport ProgramRequestRow from './ProgramRequestRow';\nimport { PlaceholderText, PlaceholderContainer, PlaceholderIcon } from './components';\nimport icons from '../../constants/icons';\nimport { useHistory } from 'react-router-dom';\nimport { OrganizationContext } from '../../services/organizationContext';\n\nconst Placeholder = ({ title, icon }) => (\n \n {!!icon && }\n {title}\n \n);\n\nconst ProgramList = ({ items, status, isLoading, openRequest }) => {\n const noItemsText = useMemo(() => {\n return status\n ? `You don't have any ${status.toLowerCase()} requests`\n : \"You don't have any requests yet\";\n }, [status]);\n\n const history = useHistory();\n const { isOrganization } = useContext(OrganizationContext);\n\n const handleClick = useCallback(\n (item) => {\n if (item.status === 'APPROVED' && !isOrganization) {\n if (item?.type === 'GROUP') {\n history.push(`/program/${item?.coachProgram?.group?.uid}?group=true`);\n } else {\n history.push(`/program/${item.uid}`);\n }\n } else {\n openRequest(item);\n }\n },\n [openRequest, history, isOrganization],\n );\n\n if (isLoading) {\n return ;\n }\n\n if (!items?.length) {\n return ;\n }\n return items?.map((item) => (\n handleClick(item)} />\n ));\n};\n\nexport default ProgramList;\n","export const OneSignal = window.OneSignal || [];\n\nif (OneSignal.installServiceWorker) {\n OneSignal.installServiceWorker();\n} else if (navigator.serviceWorker) {\n navigator.serviceWorker.register(\n `/OneSignalSDKWorker.js?appId=${process.env.REACT_APP_SIGNAL_KEY}`,\n );\n}\n\nconst init = () => {\n try {\n OneSignal.init({\n appId: process.env.REACT_APP_SIGNAL_KEY,\n allowLocalhostAsSecureOrigin: true,\n autoResubscribe: true,\n });\n } catch (err) {\n console.log(\"Can't initialize one signal\");\n console.log(err);\n }\n};\n\ninit();\n","import React, { createContext, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useMutation, useQuery } from '@apollo/react-hooks';\nimport {\n getNotificationsQuery,\n notificationMarkAsReadMutation,\n notificationMarkAllAsReadMutation,\n meQuery,\n getUnreadCountQuery,\n} from '@witness/graphql';\nimport { OneSignal } from './OneSignal';\n\nexport const NotificationContext = createContext(null);\n\nexport const NotificationProvider = ({ children }) => {\n const { data: meData, loading: meLoading } = useQuery(meQuery);\n const { data: unreadCount, refetch: refetchUnreadCount } = useQuery(getUnreadCountQuery);\n const [notifications, setNotifications] = useState();\n const { refetch } = useQuery(getNotificationsQuery, {\n notifyOnNetworkStatusChange: true,\n onCompleted: (val) => {\n setNotifications(val?.getNotifications);\n refetchUnreadCount();\n },\n });\n const safeFetch = useCallback(async () => {\n try {\n await refetch();\n } catch (err) {\n console.log('notification refetch:', err);\n }\n }, [refetch]);\n\n useEffect(() => {\n if (!meLoading) {\n if (meData?.getCurrentUser?.user) {\n OneSignal.push(() => {\n OneSignal.showSlidedownPrompt();\n\n OneSignal.on('popoverAllowClick', () => {\n OneSignal.registerForPushNotifications();\n });\n });\n\n OneSignal.push(() => {\n OneSignal.setDefaultNotificationUrl(window.location.origin);\n OneSignal.sendTag('user_uid', meData.getCurrentUser.user.uid);\n OneSignal.setSubscription(true);\n });\n\n OneSignal.push(() => {\n OneSignal.on('notificationDisplay', (event) => {\n // new notification received\n setNotifications((curr) => [event?.data, ...curr]);\n console.log('notif event', event);\n console.warn('OneSignal notification displayed:', event);\n });\n });\n\n OneSignal.push(() => {\n OneSignal.addListenerForNotificationOpened((data) => {\n // user clicked on notification\n console.log('Received NotificationOpened:');\n console.log(data);\n });\n });\n\n window.addEventListener('focus', safeFetch);\n } else {\n OneSignal.push(() => {\n OneSignal.setSubscription(false);\n OneSignal.getTags((tags) => {\n OneSignal.deleteTags(Object.keys(tags));\n });\n });\n\n window.removeEventListener('focus', safeFetch);\n }\n }\n\n return () => {\n window.removeEventListener('focus', safeFetch);\n };\n }, [meData, meLoading, safeFetch]);\n\n const [notificationMarkAsRead] = useMutation(notificationMarkAsReadMutation);\n const markAsRead = useCallback(\n async (notification) => {\n await notificationMarkAsRead({\n variables: { uid: notification?.uid },\n notificationMarkAsRead: {\n __typename: 'Mutation',\n updateComment: {\n ...notification,\n __typename: 'OneSignalMessageData ',\n isRead: true,\n },\n },\n });\n safeFetch();\n },\n [notificationMarkAsRead, safeFetch],\n );\n\n const [notificationMarkAllAsRead] = useMutation(notificationMarkAllAsReadMutation);\n const markAllAsRead = useCallback(async () => {\n await notificationMarkAllAsRead();\n safeFetch();\n }, [notificationMarkAllAsRead, safeFetch]);\n const contextValue = useMemo(\n () => ({ notifications, markAsRead, markAllAsRead, unreadCount: unreadCount?.getUnreadCount }),\n [notifications, markAsRead, markAllAsRead, unreadCount],\n );\n return (\n {children}\n );\n};\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\n\nimport {\n ProgramRequestsContainer,\n ProgramRequestsHeader,\n ProgramRequestsSeeAll,\n ProgramRequestsNavBar,\n ProgramRequestsNavItem,\n ProgramRequestsList,\n} from './components';\nimport useProgramRequest from '../../hooks/programRequest';\nimport ProgramList from './ProgramList';\nimport { ProgramStatus } from '../../constants/enums';\nimport { NotificationContext } from '../../services/NotificationContext';\n\nconst statuses = [\n { label: 'All', value: null },\n { label: 'New', value: ProgramStatus.PENDING },\n { label: 'Approved', value: ProgramStatus.APPROVED },\n { label: 'Declined', value: ProgramStatus.DECLINED },\n { label: 'Cancelled', value: ProgramStatus.CANCELLED },\n];\n\nconst DashboardProgramRequests = ({ openRequest }) => {\n const [active, setActive] = useState('PENDING');\n const { programRequests, programRequestsLoading, programRequestsRefetch } = useProgramRequest({\n requestStatus: active,\n });\n const { notifications } = useContext(NotificationContext);\n useMemo(() => {\n notifications?.length && programRequestsRefetch();\n }, [programRequestsRefetch, notifications]);\n\n return (\n \n \n PROGRAM REQUESTS\n {/* See All */}\n \n \n {statuses.map((status) => (\n setActive(status.value)}\n >\n {status.label}\n \n ))}\n \n \n \n \n \n );\n};\n\nexport default DashboardProgramRequests;\n","import styled from 'styled-components';\nimport ArrowLeftIcon from '../../assets/dashboard/arrow-white-left.svg';\nimport ArrowRightIcon from '../../assets/dashboard/arrow-green-right.svg';\n\nexport const ScrollContainer = styled.div`\n width: 100%;\n position: relative;\n`;\n\nexport const ScrollItemsList = styled.div`\n height: 100%;\n min-width: 10px;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n`;\n\nexport const ScrollItem = styled.div`\n height: 100%;\n display: inline-block;\n`;\n\nexport const ArrowButton = styled.div`\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n width: 2.5rem;\n height: 2.5rem;\n cursor: pointer;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 1;\n`;\n\nexport const ArrowButtonLeft = styled(ArrowButton)`\n left: 2.4rem;\n background-image: url(${ArrowLeftIcon});\n &:hover {\n background-image: url(${ArrowRightIcon});\n transform: translateY(-50%) scaleX(-1);\n }\n`;\n\nexport const ArrowButtonRight = styled(ArrowButton)`\n right: 2.4rem;\n background-image: url(${ArrowLeftIcon});\n transform: translateY(-50%) scaleX(-1);\n &:hover {\n background-image: url(${ArrowRightIcon});\n transform: translateY(-50%);\n }\n`;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n ArrowButtonLeft,\n ArrowButtonRight,\n ScrollContainer,\n ScrollItem,\n ScrollItemsList,\n} from './components';\n\nconst MagicScroll = ({\n itemsToDisplay = 1,\n items = [],\n ItemComponent,\n firstItem,\n onLeftClick,\n onRightClick,\n keyExtractor = (item) => item && item.toString(),\n activeDate,\n onTabClick,\n noArrows = false,\n}) => {\n const [containerWidth, setContainerWidth] = useState(0);\n\n const scrollToItem = useCallback(() => {\n if (firstItem || firstItem === 0) {\n setTimeout(() => {\n const id = keyExtractor(firstItem);\n const elem = document.getElementById(id);\n if (elem) {\n elem.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n }, 10);\n }\n }, [firstItem, keyExtractor]);\n\n useEffect(() => {\n const div = document.getElementById('magic-scroll');\n\n const ro = new ResizeObserver((entries) => {\n const myDiv = entries.find((entry) => entry.target === div);\n setContainerWidth(myDiv.contentRect.width);\n });\n\n ro.observe(div);\n\n return () => ro.unobserve(div);\n }, []);\n\n const itemStyles = useMemo(() => {\n scrollToItem();\n return {\n width: `${containerWidth / itemsToDisplay}px`,\n };\n }, [itemsToDisplay, containerWidth, scrollToItem]);\n\n const activeKey = useMemo(() => keyExtractor(activeDate), [keyExtractor, activeDate]);\n const MagicScrollItem = useCallback(\n ({ id, item, active }) => (\n onTabClick(item)}>\n \n \n ),\n [itemStyles, activeKey, onTabClick],\n );\n\n useEffect(scrollToItem, [scrollToItem]);\n\n return (\n \n {!noArrows && (\n <>\n \n \n \n )}\n \n {items.map((item, i) => {\n const key = keyExtractor(item, i);\n return ;\n })}\n \n \n );\n};\n\nexport default MagicScroll;\n","import styled from 'styled-components';\n\nexport const TemplateContainer = styled.div`\n width: 100%;\n height: 100%;\n min-height: 'fit-content';\n flex-grow: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding: 5rem 2rem;\n`;\n\nexport const TemplateImage = styled.div`\n width: ${({ size }) => size || '29rem'};\n height: ${({ size }) => size || '29rem'};\n border-radius: 50%;\n border: 1rem solid #ffffff;\n box-shadow: 0 0 0 3px #00ff91;\n background-image: url(${({ url }) => url});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n`;\n\nexport const TemplateGridSquare = styled.div`\n width: 33%;\n border-right: 1px solid #ffffff80;\n border-top: 1px solid #ffffff80;\n flex-grow: 1;\n`;\n\nexport const TemplatePrimaryText = styled.div`\n font-family: Space-r;\n font-size: 2rem;\n line-height: 2.8rem;\n margin: 4.8rem auto 1.6rem;\n text-align: center;\n`;\n\nexport const TemplateSecondaryText = styled.div`\n font-family: Roboto-l;\n font-size: 1.6rem;\n line-height: 2.4rem;\n color: #05000099;\n max-width: 48.8rem;\n text-align: center;\n`;\n","import React from 'react';\nimport {\n TemplateContainer,\n TemplateGridSquare,\n TemplateImage,\n TemplatePrimaryText,\n TemplateSecondaryText,\n} from './components';\nimport CustomButton from '../button/CustomButton';\n\nconst EmptyTemplate = ({\n primaryText,\n secondarytext,\n buttonText,\n onButtonClick,\n image,\n imageSize,\n hideImageGrid,\n}) => {\n return (\n \n \n {!hideImageGrid && (\n <>\n \n \n \n \n \n \n \n \n \n \n )}\n \n {primaryText}\n {secondarytext && {secondarytext}}\n {buttonText && (\n \n {buttonText}\n \n )}\n \n );\n};\n\nexport default EmptyTemplate;\n","import styled from 'styled-components';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n padding: 2rem 10rem;\n`;\n\nexport const OrgWholeWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n`;\nexport const OrgLineWrapper = styled.div`\n padding-top: 2.8rem;\n flex-grow: 1;\n\n & * .input-range__track {\n background: #fafafa;\n box-shadow: 0 0 1px 1px #f1f0f0 inset;\n border-radius: 4px;\n height: 8px;\n position: relative;\n display: flex;\n }\n & * .input-range__track--active {\n background: #00ff91;\n border-radius: 4px;\n box-shadow: none;\n border: none;\n }\n & * .input-range__label-container {\n display: none;\n }\n & * .input-range__slider {\n background: #00ff8d;\n position: absolute;\n right: -8px;\n border-radius: 50%;\n width: 26px;\n height: 26px;\n border: 7px solid #ffffff;\n box-shadow: 0 0 10px 0 #00ff8dbb;\n margin-top: -10px;\n cursor: pointer;\n }\n`;\nexport const OrgValuesWrapper = styled.div`\n border: 1px solid #05000012;\n background: #ffffff;\n padding: 1rem 1.6rem;\n border-radius: 6px;\n display: flex;\n align-items: center;\n position: relative;\n margin-left: 2rem;\n &::after {\n content: '';\n position: absolute;\n left: -6px;\n display: block;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 6px 5px 0;\n border-color: transparent #ffffff transparent transparent;\n }\n &::before {\n content: '';\n position: absolute;\n left: -7px;\n display: block;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 6px 7px 6px 0;\n border-color: transparent #05000012 transparent transparent;\n }\n`;\n\nexport const OrgValuesPercentage = styled.div`\n color: #11e470;\n font-size: 1.4rem;\n font-family: Roboto-m;\n`;\nexport const OrgValuesNumeric = styled.div`\n color: #373333;\n font-size: 1.4rem;\n font-family: Roboto-b;\n display: flex;\n align-items: center;\n position: relative;\n padding-left: 2.5rem;\n &::before {\n content: '';\n position: absolute;\n display: block;\n height: 2rem;\n width: 0.5px;\n background: #05000012;\n left: 1.2rem;\n }\n`;\n\nexport const ProgressTrack = styled.div`\n width: 100%;\n height: 0.8rem;\n background: #fafafa;\n /* border: 1px solid #f1f0f0; */\n box-shadow: 0 0 1px 1px #f1f0f0 inset;\n border-radius: 0.25rem;\n position: relative;\n display: flex;\n align-items: center;\n &::after {\n content: '';\n background: #fafafa;\n position: absolute;\n right: -0.6rem;\n border-radius: 50%;\n padding: 0.5rem;\n border: 0.1rem solid #f1f0f0;\n z-index: 10;\n display: ${({ noEndpoints }) => (noEndpoints ? 'none' : 'block')};\n }\n`;\n\nexport const ProgressBar = styled.div`\n width: ${({ percentage }) => percentage}%;\n height: 100%;\n border-radius: 0.4rem;\n background: #00ff91;\n position: relative;\n display: flex;\n align-items: center;\n &::after {\n content: '';\n background: #00ff8d;\n position: absolute;\n right: -0.8rem;\n border-radius: 50%;\n padding: 0.4rem;\n border: 0.7rem solid #ffffff;\n box-shadow: 0 0 10px 0 #00ff8dbb;\n z-index: 11;\n display: ${({ noEndpoints }) => (noEndpoints ? 'none' : 'block')};\n }\n &::before {\n content: '';\n background: #15df68;\n position: absolute;\n left: -0.8rem;\n border-radius: 50%;\n padding: 0.4rem;\n border: 0.4rem solid #00ff8d;\n z-index: 11;\n display: ${({ noEndpoints }) => (noEndpoints ? 'none' : 'block')};\n }\n`;\n\nexport const ProgressBarHandler = styled.div`\n content: '';\n background: #00ff8d;\n position: absolute;\n right: -0.8rem;\n border-radius: 50%;\n padding: 0.4rem;\n border: 0.7rem solid #ffffff;\n box-shadow: 0 0 10px 0 #00ff8dbb;\n z-index: 11;\n cursor: pointer;\n`;\n\nexport const ChartLegend = styled.div`\n width: 100%;\n & div.end_points {\n font-family: Space-r;\n font-size: 1.8rem;\n color: #373333;\n line-height: 3.6rem;\n }\n & div.end_points_org {\n font-family: Roboto-m;\n font-size: 1.4rem;\n color: #37333366;\n line-height: 2.4rem;\n margin: 4px 2px 0 2px;\n }\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n`;\n\nexport const ChartLegendProgress = styled.div`\n position: absolute;\n width: 10rem;\n top: 0.8rem;\n left: ${({ percentage }) => `Calc(${percentage}% - 5rem)`};\n font-family: Space-b;\n font-size: 1.4rem;\n line-height: 2rem;\n color: #373333;\n text-align: center;\n z-index: 1111;\n & > div {\n width: 100%;\n text-align: center;\n font-family: Roboto-r;\n font-size: 1.2rem;\n line-height: 1.6rem;\n color: #373333;\n }\n`;\n","import React from 'react';\nimport { useMemo } from 'react';\n\nimport {\n ProgressTrack,\n WholeWrapper,\n ProgressBar,\n ChartLegend,\n ChartLegendProgress,\n} from './components';\n\nconst ProgressLine = ({ total, progress }) => {\n const percentage = useMemo(() => {\n const part = Math.round((progress / total) * 100);\n if (part < 0) return 0;\n if (part > 100) return 100;\n return part;\n }, [progress, total]);\n return (\n \n \n \n \n \n
0%
\n \n {percentage !== 0 && percentage !== 100 && (\n <>\n {percentage}%
of Trainees
\n \n )}\n
\n
100%
\n
\n
\n );\n};\n\nexport default ProgressLine;\n","import styled from 'styled-components';\nimport icons from '../../constants/icons';\nimport IMAGES from '../../constants/images';\n\nexport const CropContainer = styled.div`\n width: 100%;\n align-items: center;\n height: 60vh;\n background: white;\n margin: auto;\n display: flex;\n justify-content: center;\n background: #00000055;\n background-image: url(${IMAGES.CropBackground});\n & .ReactCrop__crop-selection {\n border: none;\n border-radius: 50%;\n box-shadow: 0 0 0 9999em #00000055;\n }\n & .ReactCrop__image {\n max-height: 60vh;\n }\n`;\n\nexport const ModalHeading = styled.div`\n font-size: 1.4rem;\n line-height: 1.6rem;\n font-family: Roboto-l;\n color: #050000;\n opacity: 64%;\n padding: 24px 0 0;\n text-align: center;\n width: 100%;\n`;\n\nexport const ButtonsWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 20px;\n`;\n\nexport const EditSaveButtonWrapper = styled.div`\n width: 148px;\n margin-left: 12px;\n`;\n\nexport const AutocropButtonWrapper = styled.div`\n width: 196px;\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n`;\n\nexport const CloseIcon = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n border-radius: 1.6rem;\n background-image: url(${icons.Close});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n cursor: pointer;\n position: absolute;\n top: 0.8rem;\n right: 0.8rem;\n background-color: #ffffff40;\n z-index: 1;\n &:hover {\n background-color: #ffffff;\n }\n`;\n","import React from 'react';\nimport Modal from 'react-modal';\nimport CustomButton from '../button/CustomButton';\nimport { CloseIcon } from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#000000bb',\n zIndex: 44444444,\n },\n content: {\n backgroundColor: 'transparent',\n zIndex: '255',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst MediaModal = ({ url, type, onClose, deleteFile }) => {\n return (\n \n \n {type === 'image' ? (\n \"media_modal_image\"\n ) : (\n \n \n \n )}\n {deleteFile && Delete}\n \n );\n};\n\nexport default MediaModal;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 7.5%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Space-r')};\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n font-size: 1.8rem;\n padding: 4px 28px;\n min-height: 28px;\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n text-align: ${({ centered }) => (centered ? 'center' : 'left')};\n`;\n\nexport const ArrowIcon = styled.div`\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: #d2d1d1;\n background-image: url('');\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n margin: 3.5rem auto 2rem;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const ModalMain = styled.div`\n width: 100%;\n display: flex;\n padding: 2.2rem 3.2rem 3.2rem;\n`;\n\nexport const ModalColumn = styled.div`\n width: ${({ left }) => (left ? '30%' : '70%')};\n padding-left: ${({ left }) => (left ? '0' : '3.2rem')};\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n`;\nexport const FlexWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const FieldTitle = styled.div`\n font-family: Roboto-m;\n font-size: 1.6rem;\n line-height: 2rem;\n color: #37333399;\n margin-bottom: 1.6rem;\n padding: 1rem 0.4rem 0;\n`;\n\nexport const ReplaceVideo = styled.div`\n font-family: Roboto-l;\n font-size: 1.4rem;\n line-height: 2rem;\n color: #373333;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.6rem;\n`;\n\nexport const UploadVideoIcon = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n background-image: url(${ICONS.Upload});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin: 0 0.4rem 0 0.8rem;\n cursor: pointer;\n position: relative;\n`;\n\nexport const ChoosePartWrapper = styled.div`\n width: 100%;\n border-radius: 8px;\n border: 1px solid #05000033;\n padding: 1rem 0.2rem;\n ${({ disabled }) => (disabled ? `\n opacity: 0.6;\n pointer-events: none;\n ` : '')};\n`;\n\nexport const ChoosePartWrapperScrollable = styled.div`\n width: 100%;\n padding: 1rem 1.8rem;\n max-height: 12.4rem;\n overflow: auto;\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\n\nexport const ChoosePartItem = styled.div`\n display: flex;\n align-items: center;\n font-family: Roboto-r;\n font-size: 1.4rem;\n color: #05000099;\n margin-bottom: 1.6rem;\n &:last-child {\n margin: 0;\n }\n`;\n\nexport const ChoosePartRadio = styled.div`\n width: 2.5rem;\n height: 2.5rem;\n border: ${({ active, theme }) =>\n active ? `4px solid ${theme.color.primary}` : '1px solid #0500003d'};\n margin-right: 1.6rem;\n border-radius: 50%;\n cursor: pointer;\n`;\n\nexport const VideoWrapper = styled.div`\n width: 100%;\n flex-grow: 1;\n cursor: pointer;\n background-size: cover;\n background-position: center;\n position: relative;\n border-radius: 8px;\n background: ${({ black }) => (black ? 'black' : 'white')};\n overflow: hidden;\n`;\n\nexport const VideoSign = styled.div`\n background-image: url(${ICONS.VideoSign});\n background-size: auto 25%;\n background-position: center;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n position: absolute;\n z-index: 11;\n &:hover {\n transform: scale(1.1);\n }\n`;\n\nexport const AddVideoWrapper = styled.div`\n width: 100%;\n height: 100%;\n border: 1px solid ${({ theme }) => theme.color.primary};\n border-radius: 8px;\n padding: 0.6rem;\n position: relative;\n background: white;\n`;\n\nexport const AddVideoWrapperDashed = styled.div`\n width: 100%;\n height: 100%;\n border: 1px dashed #d2d1d1;\n border-radius: 8px;\n padding: 0.6rem;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n line-height: 2rem;\n`;\n\nexport const DragFileIcon = styled.div`\n width: 4.6rem;\n height: 3.2rem;\n background-image: url(${ICONS.ImportIconGreen});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n`;\n\nexport const DragFileText = styled.div`\n font-family: Roboto-r;\n color: #4a4a4a;\n font-size: 1.4rem;\n padding-top: 1.4rem;\n`;\n\nexport const BoldSpan = styled.span`\n font-family: Roboto-m;\n font-size: 1.4rem;\n color: #373333;\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 0 3.2rem 3.2rem;\n`;\n\nexport const ButtonWrapper = styled.div`\n min-width: 14.4rem;\n height: 4.4rem;\n`;\n","import React from 'react';\nimport { Formik, Field, Form } from 'formik';\nimport { useState } from 'react';\nimport Modal from 'react-modal';\n\nimport CustomInputFile from '../input/CustomInputFile';\nimport {ExerciseCategory, ExerciseType} from '../../constants/enums';\nimport MediaModal from '../media-modal/MediaModal';\nimport CustomButton from '../button/CustomButton';\nimport CustomInput from '../input/CustomInput';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalMain,\n ModalFooter,\n ButtonWrapper,\n ModalCloseX,\n ModalColumn,\n FieldTitle,\n ChoosePartWrapper,\n ChoosePartItem,\n ChoosePartRadio,\n VideoWrapper,\n AddVideoWrapper,\n AddVideoWrapperDashed,\n VideoSign,\n ReplaceVideo,\n UploadVideoIcon,\n FlexWrapper,\n BoldSpan,\n DragFileText,\n DragFileIcon,\n ChoosePartWrapperScrollable,\n} from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '11111111',\n },\n content: {\n zIndex: '111111111',\n width: '44%',\n maxWidth: '772px',\n minWidth: '320px',\n height: 'fit-content',\n maxHeight: 'Calc(100% - 40px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst getVideoPreview = (inputFile, setValue) => {\n let reader = new FileReader();\n reader.onloadend = function () {\n setValue(reader.result);\n return;\n };\n reader.readAsDataURL(inputFile);\n};\n\nconst AddExerciseModal = ({\n modalOpen,\n closeModal,\n submitModal,\n initialValues,\n loading,\n readOnly,\n}) => {\n const [videoOpen, setVideoOpen] = useState(false);\n\n // console.log('init', initialValues);\n\n function convertYoutubeLinkToEmbedded(url) {\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = url.match(regExp);\n\n return match && match[2].length === 11 ? match[2] : null;\n }\n\n const initialType = initialValues?.type ? initialValues?.type : ExerciseType.CORE;\n\n return (\n closeModal(initialValues?.searchText || '')}\n isOpen={modalOpen}\n style={customStyles}\n contentLabel=\"Alert\"\n ariaHideApp={false}\n >\n \n \n {readOnly ? 'VIEW EXERCISE' : initialValues?.id ? 'EDIT EXERCISE' : 'NEW EXERCISE'}\n closeModal(initialValues?.searchText || '')}>X\n \n {\n const { changeCallback, ...values } = v;\n if (changeCallback) {\n changeCallback(values);\n submitModal(\n values,\n true,\n !initialValues?.editedExercise && !(initialValues?.coach || !initialValues?.id),\n );\n } else {\n submitModal(values);\n }\n closeModal('');\n }}\n >\n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n \n setVideoOpen(false)}\n />\n \n Exercise name\n \n {({ field }) => (\n {\n setFieldValue(field.name, val);\n }}\n error={errors[field.name]}\n />\n )}\n \n {initialType === 'PILATESR' &&\n <>\n Category\n \n {({ field }) => (\n \n \n {ExerciseCategory.map((category) => {\n return \n setFieldValue(field.name, category.id)}\n />\n {category.name}\n \n })}\n \n \n )}\n \n Setting\n \n {({ field }) => (\n {\n setFieldValue(field.name, val);\n }}\n error={errors[field.name]}\n />\n )}\n \n }\n Choose Body Part\n \n {({ field }) => (\n \n \n \n setFieldValue(field.name, ExerciseType.LOWERBODY)}\n />\n Lower Body\n \n \n setFieldValue(field.name, ExerciseType.UPPERBODY)}\n />\n Upper Body\n \n \n setFieldValue(field.name, ExerciseType.CORE)}\n />\n Core\n \n \n setFieldValue(field.name, ExerciseType.STRETCH)}\n />\n Stretch\n \n \n setFieldValue(field.name, ExerciseType.MULTI)}\n />\n Multi\n \n \n setFieldValue(field.name, ExerciseType.PILATESR)}\n />\n PILATESR\n \n \n \n )}\n \n \n \n {values?.video || values?.youtubeVideoId ? (\n \n Video\n \n Replace with your Video{' '}\n \n {\n setFieldValue('preview', null);\n getVideoPreview(val.target.files?.[0], (v) =>\n setFieldValue('preview', v),\n );\n setFieldValue('youtubeVideoId', null);\n setFieldValue('video', val.target.files?.[0]);\n }}\n />\n \n \n \n ) : (\n Exercise Doesn’t have Video Yet\n )}\n \n {values?.youtubeVideoId ? (\n \n ) : values.preview || values?.video?.mimetype?.split('/')[0] === 'video' ? (\n <>\n \n \n \n setVideoOpen(true)} />\n \n ) : (\n \n \n \n \n Drag Your Video Here, or Browse{' '}\n \n {\n getVideoPreview(val?.[0] || val.target.files?.[0], (v) =>\n setFieldValue('preview', v),\n );\n setFieldValue('video', val?.[0] || val.target.files?.[0]);\n setFieldValue('youtubeVideoId', null);\n }}\n disabled={readOnly}\n />\n \n \n )}\n \n \n {({ field }) => (\n {\n const embeded = convertYoutubeLinkToEmbedded(val);\n if (embeded) {\n setFieldValue('video', null);\n setFieldValue('preview', null);\n setFieldValue(field.name, embeded);\n } else {\n setFieldValue(field.name, null);\n }\n }}\n error={errors[field.name]}\n />\n )}\n \n \n \n \n {!readOnly && (\n \n \n Save & Use\n \n \n )}\n \n
\n )}\n \n
\n \n );\n};\n\nexport default AddExerciseModal;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n min-height: Calc(100vh - 64px);\n background: #fafafa;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n min-height: 6rem;\n display: flex;\n align-items: center;\n line-height: 2.4rem;\n font-family: Space-r;\n border-bottom: 1px solid #0500002a;\n font-size: 2.2rem;\n padding: 0 2.8rem;\n justify-content: space-between;\n`;\n\nexport const ModalContent = styled.div`\n width: 100%;\n padding: 0 3.2rem;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const ParticipantContent = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n ${({ group }) =>\n group\n ? `\n background: #ffffff;\n padding: 0 1.6rem 1.6rem;\n border-radius: 8px;\n box-shadow: 0 0 1px 1px #0500000a;\n `\n : ''}\n`;\n\nexport const WorkoutName = styled.div`\n width: 33%;\n border-right: 1px solid #0500001a;\n border-left: 1px solid #0500001a;\n padding: 3rem;\n font-family: Roboto-m;\n font-size: 2.2rem;\n line-height: 2.4rem;\n color: #050000cc;\n text-align: center;\n align-self: center;\n & > span {\n font-size: 2.2rem;\n line-height: 2.4rem;\n font-family: Gotham-r;\n padding-right: 2.2rem;\n }\n`;\n\nexport const EntireMessageHeading = styled.div`\n width: Calc(33% + 2rem);\n border-right: 1px solid #0500001a;\n border-left: 1px solid #0500001a;\n padding: 3.2rem 1rem 2.6rem;\n font-family: Space-r;\n font-size: 1.8rem;\n line-height: 2.1rem;\n color: #050000cc;\n text-align: center;\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 3.2rem;\n`;\n\nexport const ModalHeaderCenterLine = styled.div`\n width: 1px;\n height: 100%;\n background: #0500001a;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\n// workout block result box\n\nexport const WorkoutBlockResult = styled.div`\n width: 100%;\n background: #f1f0f0;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);\n display: flex;\n margin-bottom: 1.6rem;\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nexport const BlockExercisesSide = styled.div`\n flex-grow: 1;\n max-width: 67%;\n`;\n\nexport const BlockExercisesHeader = styled.div`\n height: 6.4rem;\n display: flex;\n align-items: center;\n font-family: Roboto-m;\n padding: 0 2.4rem;\n border-bottom: 1px solid #cccccccc;\n`;\n\nexport const BlockExercisesRest = styled.div`\n height: 6rem;\n display: flex;\n align-items: center;\n font-family: Roboto-m;\n padding: 0 2.4rem;\n`;\n\nexport const BlockExercisesHeaderLabel = styled.div`\n background: #ffffff;\n padding: 0.6rem 1.2rem;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #050000cc;\n margin: 0 1.6rem;\n display: flex;\n align-items: center;\n border-radius: 8px;\n`;\n\nexport const HeaderLabelCheckmark = styled.div`\n width: 1.6rem;\n height: 1.6rem;\n background-image: url(${ICONS.CheckMark});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 0.8rem;\n`;\n\nexport const BlockResults = styled.div`\n width: 100%;\n padding: 1.2rem 2.4rem;\n flex-grow: 1;\n`;\n\nexport const BlockResultsTable = styled.table`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0 0.6rem;\n text-align: left;\n margin-right: 0.8rem;\n`;\n\nexport const BlockResultsTH = styled.th`\n padding: 1.2rem 3.1rem;\n font-family: Roboto-m;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #4a4a4acc;\n text-transform: capitalize;\n &:first-child {\n max-width: fit-content;\n width: 3rem;\n padding: 2rem;\n }\n /* &:last-child {\n width: 4rem;\n max-width: fit-content;\n } */\n &:nth-child(2) {\n padding-left: 2.3rem;\n }\n`;\n\nexport const BlockResultsRow = styled.tr`\n width: 100%;\n background: white;\n margin: 0.6rem;\n border-radius: 4px;\n position: relative;\n &:hover {\n box-shadow: 0px 0px 3px 1px #00000012;\n }\n &:hover * .hover_indicator {\n display: block;\n }\n &:hover * .hoverable_view_icon {\n background-image: url(${ICONS.EnvelopeActiveIcon});\n }\n &:hover > * {\n font-family: Roboto-r;\n }\n`;\n\nexport const BlockResultsTD = styled.td`\n padding: 1.8rem 2rem 1.8rem 3.2rem;\n text-align: left;\n font-family: Roboto-l;\n font-size: 1.4rem;\n line-height: 2rem;\n position: relative;\n &:nth-child(2) {\n /* border-right: 2px solid #f1f0f0; */\n /* border-left: 2px solid #f1f0f0; */\n padding: 1.8rem 2rem;\n }\n &:first-child {\n padding: 0 1rem;\n border-radius: 4px 0 0 4px;\n text-align: center;\n }\n &:last-child {\n border-radius: 0 4px 4px 0;\n /* padding-right: 3.2rem; */\n }\n`;\n\nexport const HoverIndicator = styled.div`\n position: absolute;\n height: ${({ height }) => height || '76%'};\n width: ${({ width }) => width || '4px'};\n left: 0;\n border-radius: 0 10rem 10rem 0;\n top: ${({ height }) => (height ? `Calc((100% - ${height})/2)` : '12%')};\n background: ${({ theme }) => theme.color.primary};\n display: none;\n`;\n\nexport const HistoryViewEye = styled.div`\n width: 1.5rem;\n height: 1.5rem;\n margin-left: 0.4rem;\n background-image: url(${ICONS.EnvelopeIcon});\n background-size: 90% auto;\n background-position: center;\n background-repeat: no-repeat;\n`;\n\nexport const FlexTDContent = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n cursor: pointer;\n`;\n\nexport const BlockFeedbackSide = styled.div`\n width: Calc(33.5% + 0.5px);\n padding: 0.8rem 0.8rem 0.8rem 0;\n`;\n\nexport const BlockFeedback = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n border-radius: 8px;\n border: 0.5px solid rgba(5, 0, 0, 0.1);\n`;\n\nexport const BlockFeedbackContent = styled.div`\n width: 100%;\n flex-grow: 1;\n padding: 2.4rem 2.4rem 1.8rem;\n display: flex;\n flex-direction: column;\n position: relative;\n &::before {\n content: '';\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 12px 11px 12px 0;\n border-color: transparent rgba(5, 0, 0, 0.1) transparent transparent;\n position: absolute;\n right: 100%;\n top: Calc(50% - 12px);\n }\n &::after {\n content: '';\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 12px 10px 12px 0;\n border-color: transparent #ffffff transparent transparent;\n position: absolute;\n right: 100%;\n top: Calc(50% - 12px);\n }\n`;\n\nexport const FeedbackHeading = styled.div`\n font-size: 1.4rem;\n color: #4a4a4a;\n line-height: 2.1rem;\n font-family: Roboto-m;\n margin-bottom: 1.2rem;\n`;\n\nexport const FeedbackTextAreaWrapper = styled.div`\n flex-grow: 1;\n`;\n\nexport const BlockFeedbackHeader = styled.div`\n height: 5.5rem;\n display: flex;\n align-items: center;\n font-family: Roboto-r;\n padding: 0 2.4rem;\n font-size: 1.4rem;\n color: #4a4a4a;\n border-bottom: 1px solid #0500001a;\n`;\n\nexport const BLockAttachment = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n background: #f1f0f0;\n background-image: url(${({ att }) => att});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 0.8rem;\n cursor: pointer;\n border-radius: 4px;\n`;\n\nexport const BLockAttachmentVideo = styled.video`\n height: 3.2rem;\n background: #f1f0f0;\n background-image: url(${({ att }) => att});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 4px;\n`;\n\nexport const PlayPlaceholder = styled.div`\n background-image: url(${ICONS.VideoSignGrey});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n`;\n\nexport const ResultVideoButton = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n background-image: url(${ICONS.VideoSignGrey});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 1.6rem;\n`;\n\nexport const EntireMessageWrapper = styled.div`\n width: 100%;\n padding: 1.2rem;\n box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.12);\n border-radius: 8px;\n`;\n\nexport const BlocksWrapper = styled.div`\n width: 100%;\n border-radius: 8px;\n`;\n\n// group results\n\nexport const EntireGroupResultsWrapper = styled.div`\n width: 100%;\n padding: 0 1.6rem 1.6rem;\n`;\n\nexport const EntireGroupResults = styled.div`\n width: 100%;\n border-radius: 8px;\n background: #ffffff;\n box-shadow: 0 0 1px 1px rgba (0, 0, 0, 0.04);\n`;\n\nexport const EntireGroupHeader = styled.div`\n width: 100%;\n height: 4.8rem;\n position: relative;\n border-bottom: 1px solid #0500002a;\n margin-bottom: 2.4rem;\n display: flex;\n justify-content: center;\n`;\n\nexport const EntireGroupHeading = styled.div`\n padding: 1.2rem 1.6rem;\n line-height: 2rem;\n position: absolute;\n font-size: 1.8rem;\n letter-spacing: 0.1rem;\n color: #4a4a4a;\n bottom: -2.2rem;\n background: #ffffff;\n`;\n\nexport const EntireGroupContent = styled.div`\n padding: 0.8rem 1.6rem;\n`;\n\nexport const GroupWorkoutsWrapper = styled.div`\n padding: 3.2rem;\n`;\n\nexport const GroupParticipantsHeader = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n font-family: Roboto-m;\n position: relative;\n padding-right: 1.6rem;\n align-items: center;\n & > div {\n font-family: Roboto-m;\n }\n &::after {\n content: '';\n position: absolute;\n width: 1.4rem;\n height: 2.8rem;\n right: -1rem;\n background-image: url(${ICONS.Logo});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n }\n`;\n\nexport const GroupParticipantsContent = styled.div`\n padding: 4rem 3.2rem;\n`;\n\nexport const GroupParticipantRow = styled.div`\n padding: 0.8rem 1.2rem;\n width: 100%;\n display: flex;\n align-items: center;\n background: #ffffff;\n border: 1px solid #f1f0f0;\n border-radius: 8px;\n margin-bottom: 1.2rem;\n cursor: pointer;\n position: relative;\n &:hover {\n border-color: ${({ theme }) => theme.color.primary};\n }\n &:hover > .hover_indicator {\n display: block;\n }\n`;\n\nexport const GroupParticipantImage = styled.div`\n width: 4.8rem;\n height: 4.8rem;\n border-radius: 8px;\n background: #cececeaa;\n margin-right: 1.2rem;\n color: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Roboto-b;\n font-size: 1.4rem;\n text-transform: uppercase;\n`;\n\nexport const GroupParticipantName = styled.div`\n flex-grow: 1;\n font-size: 1.8rem;\n line-height: 2.4rem;\n color: #373333;\n`;\n\nexport const GroupParticipantResultIndicator = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const IndicatorDone = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n background-image: url(${ICONS.Logo});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n`;\n\nexport const IndicatorGeneral = styled.div`\n width: 0.8rem;\n height: 0.8rem;\n border-radius: 50%;\n background: ${({ status, theme }) => (status === 'UNDONE' ? theme.color.error : '#FFCC00')};\n`;\n\nexport const IndividualTraineeHeader = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const IndividualTraineeHeaderMain = styled.div`\n width: Calc(33% + 2rem);\n padding: 2rem;\n border-right: 1px solid #0500001a;\n border-left: 1px solid #0500001a;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: Calc(33% + 2rem);\n & > span {\n font-family: Gotham-r;\n font-size: 1.8rem;\n color: #4a4a4a;\n padding: 0 1.2rem;\n }\n`;\n\nexport const IndividualTraineePic = styled.div`\n width: 5.2rem;\n height: 5.2rem;\n border-radius: 50%;\n border: 2px solid #ffffff;\n box-shadow: 0 0 2px 2px #00ff91;\n background: #cececeaa;\n color: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Roboto-b;\n font-size: 1.4rem;\n text-transform: uppercase;\n`;\n\nexport const IndividualTraineeHeaderSide = styled.div`\n flex-grow: 1;\n width: 100%;\n`;\n\nexport const IndividualTraineeBackIcon = styled.div`\n width: 2.4rem;\n height: 2rem;\n background-image: url(${ICONS.ArrowLeft});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 1.2rem;\n`;\n\nexport const IndividualTraineeBack = styled.div`\n font-size: 1.4rem;\n padding: 1.2rem;\n cursor: pointer;\n display: flex;\n align-items: center;\n`;\n\nexport const NoResults = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Space-r;\n color: #373333cc;\n padding: 2.2rem;\n`;\n\nexport const WorkoutBlockComment = styled.div`\n min-height: 2.5rem;\n margin-top: 2rem;\n display: flex;\n`;\n\nexport const CommentText = styled.span`\n opacity: 0.8;\n font-family: Roboto-l;\n font-size: 14px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n`;\n\nexport const ToggleDetailsLink = styled.span`\n margin-left: 1.2rem;\n cursor: pointer;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #050000cc;\n text-decoration: underline;\n`;\n\nexport const ResultsTitle = styled.div`\n color: #050000;\n font-size: 1.4rem;\n font-family: Roboto-r;\n margin-top: ${({ mt }) => mt};\n margin-bottom: ${({ mb }) => mb};\n display: flex;\n align-items: center;\n`;\n\nexport const EyeContainer = styled.div`\n display: inline-block;\n opacity: 80%;\n cursor: pointer;\n\n &:hover {\n opacity: 100%;\n & > .option-view {\n background-image: url(${ICONS.OptionViewActive});\n }\n }\n`;\n\nexport const AttachmentsList = styled.div`\n display: flex;\n margin-top: 1.2rem;\n`;\n\nexport const AttachmentIcon = styled.div`\n width: 2.4rem;\n min-width: 2.4rem;\n height: 2.4rem;\n background-image: url(${({ src }) => src || ICONS.AttachmentsNewSvg});\n background-size: 1.6rem;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 6px;\n border: solid 0.6px #c2c0c0;\n background-color: #fcfcfc;\n margin-right: 1.2rem;\n`;\n\nexport const ResultsContainer = styled.div`\n background-color: #f8f7f7;\n border-radius: 8px;\n padding: 1.2rem;\n box-shadow: 0 1px 3px 0 rgb(74 74 74 / 12%);\n`;\n","import styled, { keyframes } from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ColumnsWrapper = styled.div`\n width: 100%;\n max-height: Calc(100% - 11.4rem);\n flex-grow: 1;\n background: #ffffff;\n display: flex;\n`;\n\nexport const ModalColumn = styled.div`\n width: ${({ main }) => (main ? '50%' : '25%')};\n flex-grow: 1;\n border-right: ${({ left }) => (left ? '1px solid #05000033' : 'none')};\n border-left: ${({ right }) => (right ? '1px solid #05000033' : 'none')};\n background: ${({ left }) => (left ? '#ffffff' : '#F1F0F0')};\n display: flex;\n flex-direction: column;\n height: 100%;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n min-height: 6rem;\n display: flex;\n align-items: center;\n line-height: 2.4rem;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Space-b')};\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n font-size: 2.2rem;\n padding: 0 2.8rem;\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n text-align: ${({ centered }) => (centered ? 'center' : 'left')};\n background: #ffffff;\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #ffffff;\n padding: 3.2rem;\n border-top: 1px solid #05000033;\n`;\n\nexport const ModalHeaderCenterLine = styled.div`\n width: 1px;\n height: 100%;\n background: #05000033;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const LeftSideBlock = styled.div`\n width: 100%;\n padding: 2rem 3.2rem 3.8rem;\n border-bottom: 1px solid #05000033;\n &:last-child {\n border-bottom: none;\n }\n overflow: ${({ scrollable }) => (scrollable ? 'auto' : 'hidden')};\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\n\nexport const LeftSideBlockTitle = styled.div`\n font-size: 1.6rem;\n font-family: Roboto-r;\n line-height: 2.1rem;\n margin: 1.6rem 0;\n display: flex;\n align-items: center;\n`;\n\nexport const LeftSideBlockOptional = styled.span`\n font-size: 1.4rem;\n font-family: Roboto-r;\n line-height: 2.1rem;\n color: #0500004d;\n margin-left: 0.8rem;\n letter-spacing: 0.08rem;\n`;\n\nexport const MessageCheck = styled.div`\n color: ${({ active }) => (active ? '#050000cc' : '#05000066')};\n line-height: 2.1rem;\n display: flex;\n align-items: center;\n margin: 22px 0 12px;\n cursor: pointer;\n & > .checkbox {\n background-image: url(${({ active }) => (active ? ICONS.TermsCheckMark : 'none')});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n border-color: ${({ theme, active }) => (active ? theme.color.primary : '#05000033')};\n }\n overflow: hidden;\n`;\n\nexport const MessageCheckBox = styled.div`\n width: 20px;\n height: 20px;\n border-radius: 6px;\n border: 1px solid #05000033;\n margin-right: 16px;\n`;\n\nexport const ContentContainer = styled.div`\n padding: 2rem 2.4rem;\n max-height: 100%;\n height: 100%;\n overflow-y: auto;\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\n\nexport const ContentWrapper = styled.div`\n max-height: Calc(100% - 6rem);\n height: 100%;\n width: 100%;\n padding: 1.2rem 0.8rem;\n position: relative;\n`;\n\nexport const WorkoutBlockDropBox = styled.div`\n width: 100%;\n padding-bottom: 24%;\n background: #ffffff;\n min-height: 104px;\n border-radius: 12px;\n position: relative;\n display: ${({ isRest }) => (isRest ? 'none' : 'block')};\n`;\n\nexport const WorkoutBlockDropBoxDashed = styled.div`\n position: absolute;\n width: ${({ week }) => (week ? '100%' : 'Calc(100% - 1.2rem)')};\n height: ${({ week }) => (week ? '100%' : 'Calc(100% - 1.2rem)')};\n top: ${({ week }) => (week ? '0' : '0.6rem')};\n left: ${({ week }) => (week ? '0' : '0.6rem')};\n border: 1px dashed #96949499;\n border-radius: 10px;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: flex-end;\n font-family: Space-r;\n font-size: 1.4rem;\n line-height: 2.4rem;\n padding: ${({ week }) => (week ? '0.6rem 1rem' : '2rem')};\n border-color: ${({ error, theme }) => (error ? theme.color.error : '#96949455')};\n color: ${({ error, theme }) => (error ? theme.color.error : '#0500004d')};\n &:hover {\n border-color: ${({ error, theme }) => (error ? theme.color.error : '#15df68')};\n }\n cursor: pointer;\n`;\n\nexport const WorkoutBlockDropBoxPlus = styled.div`\n width: 24px;\n height: 24px;\n background-image: url(${ICONS.PlusSimple});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n margin-bottom: 0.4rem;\n position: relative;\n pointer-events: none;\n`;\n\nexport const TooltipWorkoutBlock = styled.div`\n opacity: 80%;\n cursor: pointer;\n font-size: 1.4rem;\n padding: 0 1.4rem;\n font-family: Roboto-r;\n overflow: hidden;\n color: #050000;\n width: 100%;\n background: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n &:hover {\n opacity: 100%;\n background: #00ff911f;\n }\n line-height: 3.6rem;\n`;\n\nexport const TooltipBlocksWrapper = styled.div`\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n height: 100%;\n overflow: auto;\n max-height: 21rem;\n`;\n\nexport const RightColumnContainer = styled.div`\n width: 100%;\n padding: 0.8rem;\n flex-grow: 1;\n max-height: Calc(100% - 6rem);\n`;\n\nexport const WorkoutBlocksBoxScrollable = styled.div`\n width: 100%;\n max-height: 100%;\n height: 100%;\n background: white;\n padding: 1.2rem 0.2rem;\n border-radius: 8px;\n`;\n\nexport const WorkoutBlocksBox = styled.div`\n padding: 1.4rem;\n overflow: auto;\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n width: 100%;\n height: 100%;\n /* height: Calc(100% - 6rem);\n min-height: Calc(100% - 6rem); */\n display: flex;\n align-items: center;\n flex-direction: column;\n font-family: Gotham-r;\n line-height: 2.4rem;\n color: #4a4a4acc;\n`;\n\nexport const DraggableSign = styled.div`\n min-width: 48px;\n min-height: 48px;\n border-radius: 50%;\n background: #f1f0f0;\n margin-bottom: 2rem;\n background-image: url(${ICONS.DragIcon});\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n`;\n\nexport const WorkoutBlocksContainer = styled.div`\n width: 100%;\n margin-top: 3.2rem;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n`;\n\nexport const WorkoutBlockItem = styled.div`\n width: Calc(50% - 1.6rem);\n height: 6.4rem;\n margin-bottom: 1.6rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid transparent;\n border-radius: 8px;\n cursor: move;\n font-size: 1.4rem;\n line-height: 1.8rem;\n padding: 1.4rem 1.6rem 1rem;\n text-align: center;\n border-color: ${({ active, theme }) => (active ? theme.color.primary : 'transparent')};\n background: ${({ active }) => (active ? '#ffffff' : '#f1f0f0')};\n color: ${({ active }) => (active ? '#050000' : '#373333')};\n`;\n\nexport const PseudoWorkoutBlock = styled.div`\n width: Calc(50% - 1.6rem);\n`;\n\nexport const WorkoutBlockForm = styled.div`\n width: 100%;\n background: white;\n border-radius: ${({ mobile }) => (mobile ? '4px' : '12px')};\n box-shadow: 0 0 3px rgba(74, 74, 74, 0.12);\n margin-bottom: ${({ week }) => (week ? '0.8rem' : '1.6rem')};\n`;\n\nexport const WorkoutBlockHeader = styled.div`\n width: 100%;\n border-radius: ${({ mobile }) => (mobile ? '4px 4px 0 0' : '12px 12px 0 0')};\n padding: ${({ week, mobile }) =>\n mobile ? '12px 8px 10px 20px' : week ? '1.6rem 1.2rem 1.6rem 0.8rem' : '2.2rem 2.4rem'};\n border-bottom: 1px solid #4a4a4a22;\n font-family: Space-b;\n font-size: 1.6rem;\n line-height: ${({ week }) => (week ? '1.8rem' : '2.4rem')};\n color: #050000cc;\n justify-content: space-between;\n display: flex;\n align-items: center;\n`;\n\nexport const WorkoutBlockHeaderIconsWrapper = styled.div`\n align-items: center;\n display: flex;\n`;\n\nexport const WorkoutBlockHeaderIcon = styled.div`\n width: 2rem;\n height: 2rem;\n background-image: ${({ edit, duplicate, move }) =>\n edit\n ? `url(${ICONS.EditSimpleGrey})`\n : duplicate\n ? `url(${ICONS.Copy})`\n : move\n ? `url(${ICONS.Move})`\n : `url(${ICONS.BinSimpleGrey})`};\n background-size: contain;\n background-position: center;\n margin: 0 0.4rem;\n background-repeat: no-repeat;\n cursor: pointer;\n`;\n\nexport const WorkoutBlockFooter = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n padding-top: 1.6rem;\n`;\n\nexport const AttrCheckBox = styled.div`\n width: ${({ week }) => (week ? '1.4rem' : '1.8rem')};\n height: ${({ week }) => (week ? '1.4rem' : '1.8rem')};\n border-radius: 5px;\n border: 1px solid #05000033;\n margin-right: ${({ week }) => (week ? '1rem' : '1.2rem')};\n background-color: ${({ theme, active }) => (active ? theme.color.primary : 'transparent')};\n background-image: url(${({ active }) => (active ? ICONS.TermsCheckMark : 'none')});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n border-color: ${({ theme, active }) => (active ? theme.color.primary : '#05000033')};\n cursor: pointer;\n`;\n\nexport const WorkoutBlockApplyButton = styled.div`\n width: 124px;\n height: 40px;\n`;\n\nexport const WeekBlockFooter = styled.div`\n width: 100%;\n padding: 0.8rem 1rem 1rem 0.8rem;\n display: flex;\n justify-content: space-between;\n border-top: 1px solid #05000020;\n align-items: center;\n margin-top: 0.6rem;\n position: relative;\n @media (max-width: 600px) {\n justify-content: center;\n }\n`;\n\nexport const WeekBlockAddComment = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n cursor: pointer;\n margin-right: 0.6rem;\n background: #fff;\n min-width: ${({ preview, beforeAfter }) => (preview || beforeAfter ? '100%' : '2rem')};\n border-radius: 6px;\n @media (max-width: 600px) {\n max-width: 100%;\n margin-right: 0;\n padding: 0 6px;\n }\n`;\nexport const WeekBlockAddCommentPreview = styled.div`\n width: 100%;\n font-size: 1.2rem;\n line-height: 1.4rem;\n color: #373333;\n padding: 1rem 1rem 1.4rem;\n text-align: center;\n`;\nexport const WeekBlockAddCommentTitle = styled.div`\n width: 100%;\n font-size: 1.2rem;\n line-height: 1.4rem;\n color: #373333;\n padding: 0 0.8rem;\n`;\nexport const WeekBlockAddCommentButtons = styled.div`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n`;\n\nexport const WeekBlockAddCommentIcon = styled.div`\n min-width: 1.6rem;\n min-height: 1.6rem;\n background-image: url(${ICONS.AddComment});\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n`;\n\nexport const WeekBlockAddCommentText = styled.div`\n font-size: 1rem;\n color: #373333;\n overflow: hidden;\n text-overflow: ellipsis;\n max-height: 1.2rem;\n line-height: 1.2rem;\n white-space: nowrap;\n max-width: Calc(100% - 2.2rem);\n flex-grow: 1;\n pointer-events: none;\n margin-left: 0.6rem;\n`;\n\nexport const WorkoutBlockContent = styled.div`\n padding: ${({ week }) => (week ? '0.8rem 0.6rem' : '4rem 2.6rem 3.2rem')};\n width: 100%;\n @media (max-width: 600px) {\n padding: 16px;\n }\n display: flex;\n flex-direction: column;\n order: 2;\n & > * {\n order: 2;\n }\n & > *.block_title {\n order: 1;\n }\n`;\n\nexport const AttributeWrapper = styled.div`\n margin-bottom: ${({ week }) => (week ? 0 : '1.6rem')};\n display: flex;\n align-items: flex-start;\n ${({ week }) =>\n week\n ? `\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: center;\n `\n : ``};\n`;\n\nexport const ExercisesWrapper = styled.div`\n width: 100%;\n border-radius: 8px;\n background: #f8f7f7cc;\n border: 1px solid #0500000d;\n margin-top: 1.6rem;\n`;\nexport const FlexWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n`;\n\nexport const AttributeLabel = styled.div`\n display: flex;\n align-items: center;\n font-size: ${({ week }) => (week ? '1.1rem' : '1.4rem')};\n color: #050000cc;\n line-height: 2.1rem;\n padding: ${({ small, week }) => (week ? '0' : small ? '1rem 2rem 1rem 0' : '1rem 0')};\n flex-grow: ${({ flexGrow }) => (flexGrow ? '1' : 'none')};\n width: ${({ flexGrow, small, week }) =>\n week ? 'fit-content' : flexGrow ? '100%' : small ? '12rem' : '30%'};\n min-width: ${({ small, week }) => (week ? 'fit-content' : small ? '12rem' : '18.6rem')};\n`;\nexport const AttributeUnit = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n color: #050000cc;\n line-height: 4rem;\n padding-left: 1rem;\n`;\n\nexport const AsNeeded = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n color: #050000cc;\n line-height: 2.1rem;\n`;\n\nexport const AsNeededCheck = styled.div`\n width: 1.6rem;\n height: 1.6rem;\n border-radius: 30%;\n border: 1px solid ${({ checked, theme }) => (checked ? theme.color.primary : '#0500003e')};\n margin-right: 0.8rem;\n margin-left: 2rem;\n cursor: pointer;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-image: url(${({ checked }) => checked && ICONS.TermsCheckMark});\n`;\n\nexport const AttributeBullet = styled.div`\n width: ${({ clock, week }) => (clock ? '12px' : week ? '6px' : '8px')};\n height: ${({ clock, week }) => (clock ? '12px' : week ? '6px' : '8px')};\n min-width: ${({ clock, week }) => (clock ? '12px' : week ? '6px' : '8px')};\n min-height: ${({ clock, week }) => (clock ? '12px' : week ? '6px' : '8px')};\n margin: ${({ clock }) => (clock ? '0' : '2px')};\n border-radius: 50%;\n background: ${({ theme, clock }) => (clock ? 'transparent' : theme.color.primary)};\n background-image: url(${ICONS.Clock});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 1.2rem;\n`;\n\nexport const ExerciseWrapper = styled.div`\n width: 100%;\n display: ${({ week }) => (week ? 'block' : 'flex')};\n margin-bottom: 1.6rem;\n align-items: center;\n box-shadow: ${({ beingDragged }) => (beingDragged ? 'inset 0px 0px 6px 6px #00000004' : 'none')};\n opacity: ${({ beingDragged }) => (beingDragged ? '0.5' : '1')};\n ${({ week }) =>\n week\n ? `\n margin-bottom: 0;\n border-bottom: 0.3px solid #0000000d;\n &:last-child {\n border-bottom: none;\n };\n padding: 1.6rem 0.8rem;\n `\n : ''};\n border-top: ${({ draggingOver, theme }) =>\n draggingOver ? `2px solid ${theme.color.primary}` : 'none'};\n`;\n\nexport const ExerciseLabel = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n line-height: 2.1rem;\n font-family: Roboto-l;\n color: #373333cc;\n min-width: ${({ week }) => (week ? '100%' : ' 18.6rem')};\n width: 30%;\n margin-bottom: ${({ week }) => (week ? '0.8rem' : '0')};\n`;\n\nexport const ExerciseIndex = styled.span`\n font-size: 1.4rem;\n line-height: 2.1rem;\n font-family: Space-r;\n padding-right: 1rem;\n color: ${({ transparent }) => (transparent ? '#ffffff00' : '#050000')};\n display: ${({ hide }) => (hide ? 'none' : 'flex')};\n align-items: center;\n`;\n\nexport const ExerciseOpenButton = styled.span`\n min-width: 2.4rem;\n min-height: 2.4rem;\n background-image: url(${({ bin }) => (bin ? ICONS.BinSimpleGrey : ICONS.OptionView)});\n background-position: center;\n background-repeat: no-repeat;\n background-size: ${({ bin }) => (bin ? 'auto 1.5rem' : 'contain')};\n margin-right: 0.5rem;\n cursor: pointer;\n`;\n\nexport const ExerciseContent = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n position: relative;\n flex-wrap: ${({ week }) => (week ? 'wrap' : 'nowrap')};\n justify-content: space-between;\n`;\n\nexport const DeleteExerciseIcon = styled.div`\n width: 1.8rem;\n height: ${({ nonAbsolute }) => (nonAbsolute ? '2rem' : '100%')};\n background-image: url(${ICONS.BinSimpleGrey});\n background-size: 92% auto;\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n position: ${({ nonAbsolute }) => (nonAbsolute ? 'auto' : 'absolute')};\n left: Calc(100% + 0.3rem);\n &:hover {\n background-size: 100% auto;\n }\n`;\n\nexport const ExerciseWeight = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n`;\n\nexport const WorkoutBlockTable = styled.div`\n width: 100%;\n border-radius: 4px;\n background: ${({ week }) => (week ? 'transparent' : 'white')};\n display: flex;\n flex-direction: ${({ week }) => (week ? 'column' : 'row')};\n`;\n\nexport const WorkoutBlockTableColumnLeft = styled.div`\n width: ${({ week }) => (week ? '100%' : '42%')};\n border-radius: 8px 0 0 8px;\n border-right: 1px solid #0500000a;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\nexport const WorkoutBlockTableAttributeRow = styled.div`\n width: 100%;\n height: ${({ week }) => (week ? '2.4rem' : '3.6rem')};\n padding: ${({ week }) => (week ? '0 0.6rem' : '0 1.7rem')};\n display: flex;\n align-items: center;\n border-top: ${({ week }) => (week ? 'none' : '1px solid #0500000a')};\n &:first-child {\n border-top: none;\n }\n`;\nexport const WorkoutBlockTableAttributeNum = styled.span`\n font-size: ${({ week }) => (week ? '1.4rem' : '1.6rem')};\n font-family: Space-b;\n color: #05000099;\n line-height: 2.4rem;\n padding-right: 0.8rem;\n`;\nexport const WorkoutBlockTableAttributeLabel = styled.span`\n padding-right: 0.8rem;\n font-size: ${({ week }) => (week ? '1.2rem' : '1.4rem')};\n font-family: Space-b;\n font-family: Roboto-m;\n color: #05000099;\n line-height: 2.4rem;\n`;\nexport const WorkoutBlockTableColumnRight = styled.div`\n flex-grow: 1;\n border-radius: 0 8px 8px 0;\n padding: ${({ week }) => (week ? '0.4rem 0.6rem' : '0.4rem 1.2rem 0.4rem 1.7rem')};\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nexport const WorkoutBlockWorkoutRow = styled.div`\n width: 100%;\n margin: 0.4rem 0;\n background: ${({ week }) => (week ? 'transparent' : 'white')};\n flex-wrap: ${({ week }) => (week ? 'wrap' : 'no-wrap')};\n border-radius: 8px;\n height: ${({ week }) => (week ? 'auto' : 'auto')};\n display: flex;\n align-items: center;\n justify-content: ${({ type }) => (type ? \"space-between\" : \"flex-start\")};\n padding: ${({ week }) => (week ? '0' : '1rem 1.6rem')};\n`;\nexport const CustomBlockDescriptionLine = styled.div`\n width: 100%;\n font-size: 1.4rem;\n font-family: Roboto-m;\n color: #05000099;\n line-height: 2.4rem;\n overflow: hidden;\n min-height: 2.4rem;\n`;\nexport const CustomBlockDescription = styled.div`\n width: 100%;\n margin: 0.4rem 0;\n font-size: 1.4rem;\n font-family: Roboto-m;\n color: #05000099;\n line-height: 2.4rem;\n padding: 1rem 1.6rem;\n overflow: hidden;\n`;\nexport const WorkoutBlockWorkoutIndex = styled.span`\n padding-right: 1.2rem;\n font-family: Space-r;\n font-size: 1.2rem;\n`;\nexport const WorkoutBlockWorkoutName = styled.span`\n padding-right: 1.4rem;\n font-family: Roboto-r;\n font-size: 1.2rem;\n color: #05000099;\n`;\n\nexport const WorkoutBlockWorkoutNameBold = styled.span`\n padding-right: 1.4rem;\n font-family: Space-b;\n font-size: 1.4rem;\n color: #05000099;\n`;\n\nexport const WorkoutBlockWorkoutValue = styled.span`\n padding-right: 1.4rem;\n font-family: Roboto-l;\n font-size: 1.2rem;\n color: #373333cc;\n`;\n\nexport const WorkoutBlockWorkoutPilatesrValue = styled.span`\n padding-right: 1.4rem;\n font-family: Roboto-l;\n font-size: 1.2rem;\n color: #373333cc;\n border-radius: 8px;\n padding: 4px;\n border: 1.5px solid #E6E5E5;\n margin: 4px;\n flex: 3;\n`;\n\nexport const WorkoutBlockWorkoutPilatesrNameValue = styled.span`\n padding-right: 1.4rem;\n font-family: Roboto-l;\n font-size: 1.2rem;\n color: #373333cc;\n flex: 1;\n`;\n\nexport const WorkoutBlockComment = styled.div`\n padding-left: 3.6rem;\n min-height: 2.5rem;\n font-family: Roboto-l;\n font-size: 1.4rem;\n line-height: 2.1rem;\n background-image: url(${ICONS.Comment});\n background-size: 2.5rem auto;\n background-position: 0 0;\n background-repeat: no-repeat;\n margin-top: 2rem;\n`;\nexport const WorkoutBlockAdditionalAttrWrapper = styled.div`\n margin-top: ${({ week }) => (week ? '2.4rem' : '4rem')};\n display: flex;\n flex-direction: column;\n align-items: ${({ week }) => (week ? 'flex-start' : 'flex-end')};\n`;\n\nexport const WorkoutBlockAdditionalAttr = styled.div`\n padding-left: ${({ week }) => (week ? '2rem' : '2.8rem')};\n font-family: Roboto-r;\n font-size: ${({ week }) => (week ? '1.2rem' : '1.4rem')};\n line-height: ${({ week }) => (week ? '1.8rem' : '2.1rem')};\n background-image: url(${ICONS.CheckMark});\n background-size: ${({ week }) => (week ? '1.2rem auto' : '1.6rem auto')};\n margin-left: ${({ week }) => (week ? '0.8rem' : '0')};\n background-position: 0 center;\n background-repeat: no-repeat;\n`;\n\nexport const WorkoutBlockOrderArrow = styled.div`\n min-width: ${({ small }) => (small ? '2.4rem' : '3.2rem')};\n min-height: ${({ small }) => (small ? '2.4rem' : '3.2rem')};\n border-radius: 8px;\n border: 1px solid #f1f0f0;\n margin-right: ${({ small }) => (small ? '0.4rem' : '4px')};\n background-image: url(${ICONS.ArrowUpLight});\n transform: ${({ down }) => (down ? 'rotate(180deg)' : 'none')};\n background-size: auto 50%;\n background-repeat: no-repeat;\n background-position: center;\n &:last-child {\n margin-right: 2rem;\n }\n ${({ nonClickable }) =>\n nonClickable\n ? `\n opacity: 0.6;\n pointer-events: none;\n `\n : `\n &:hover {\n background: #f1f0f0;\n background-image: url(${ICONS.ArrowUpDark});\n background-size: auto 50%;\n background-repeat: no-repeat;\n background-position: center;\n }\n cursor: pointer;\n `}\n`;\n\nexport const BeforeExitModal = styled.div`\n display: ${({ show }) => (show ? 'block' : 'none')};\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n background-color: rgba(0, 0, 0, 0.3);\n`;\n\nexport const BeforeExitModalContents = styled.div`\n width: 90vw;\n min-width: 300px;\n max-width: 450px;\n height: 150px;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: #ffffff;\n display: grid;\n grid-template-columns: 50% 50%;\n border-radius: 5px;\n padding: 15px;\n box-sizing: border-box;\n & > span {\n text-align: center;\n grid-column: 1 / span 2;\n margin-bottom: 10px;\n }\n`;\n\nexport const ExerciseTitle = styled.span`\n &:hover {\n text-decoration: underline;\n }\n cursor: pointer;\n font-size: 1.4rem;\n line-height: 2.1rem;\n font-family: Space-b;\n color: #373333cc;\n margin-right: 0.5rem;\n flex-grow: 1;\n`;\n\n// calendar week\n\nexport const CalendarWeekWrapper = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const CalendarWeekHeader = styled.div`\n width: 100%;\n height: 7.2rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #05000033;\n`;\n\nexport const WeekHeaderFlexWrapper = styled.div`\n display: flex;\n align-items: center;\n padding: 0.8rem 2.4rem;\n min-width: 30rem;\n flex: 1;\n &:last-child {\n justify-content: flex-end;\n }\n`;\n\nexport const WeekTitle = styled.div`\n display: flex;\n align-items: center;\n padding: 0 1.6rem;\n border-left: 1px solid #05000033;\n border-right: 1px solid #05000033;\n height: 100%;\n`;\n\nexport const NeighbourWeekArrow = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n border-radius: 50%;\n background: #f1f0f0;\n margin: 1.2rem 2.4rem;\n cursor: pointer;\n background-image: url(${ICONS.ArrowLeft});\n background-size: 60% auto;\n background-repeat: no-repeat;\n background-position: center;\n &:last-child {\n transform: rotate(180deg);\n }\n`;\n\nexport const WeekRange = styled.div`\n font-family: Space-r;\n font-size: 2.2.rem;\n line-height: 3.2rem;\n color: #373333;\n text-transform: uppercase;\n`;\n\nexport const WeekContent = styled.div`\n background: #f2f2f2;\n flex-grow: 1;\n display: flex;\n justify-content: space-between;\n padding: 1.6rem 2rem;\n`;\n\nexport const WeekDayColumnWrapper = styled.div`\n flex-grow: 1;\n flex-basis: 200px;\n min-width: ${({ collapsed }) => (collapsed ? '6.8rem' : 'Calc((100% - 8.4rem) / 7)')};\n background: #f8f8f8;\n border-radius: 8px;\n margin: 0 0.4rem;\n max-width: ${({ collapsed }) => (collapsed ? '6rem' : 'auto')};\n &:hover {\n & * .drop-box {\n display: flex;\n }\n & * .rest-boy {\n display: none;\n }\n }\n ${({ readOnly }) =>\n readOnly\n ? `\n pointer-events: none;\n opacity: 0.6;\n cursor: not-allowed;\n `\n : ''}\n`;\n\nexport const WeekDayHeader = styled.div`\n width: 100%;\n height: 12rem;\n background: #fff;\n border-radius: 8px 8px 0 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n border: 1px solid #e5e5e5;\n padding: 1.6rem;\n position: relative;\n &:hover {\n & > .hide-a-day {\n display: flex;\n }\n }\n`;\n\nexport const WeekDayNumbering = styled.div`\n font-size: 1.8rem;\n line-height: 2.6rem;\n text-transform: uppercase;\n color: #373333;\n font-family: Space-r;\n`;\n\nexport const WeekDayDay = styled.div`\n font-size: 1.4rem;\n line-height: 2.4rem;\n color: #373333;\n`;\n\nexport const HeaderButtons = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 1.2rem;\n`;\n\nexport const HeaderButton = styled.div`\n width: 2.4rem;\n height: 2.4rem;\n margin: 0 0.8rem;\n border-radius: 0.8rem;\n border: 1px solid #f1f0f0;\n background-image: url(${({ icon }) => icon});\n background-size: auto 64%;\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n border-color: ${({ open, theme }) => (open ? theme.color.primary : '#f1f0f0')};\n position: relative;\n &::after {\n content: '';\n display: ${({ active, open }) => (!open && active ? 'block' : 'none')};\n position: absolute;\n width: 0.6rem;\n height: 0.6rem;\n border-radius: 50%;\n background: ${({ theme }) => theme.color.primary};\n top: -0.2rem;\n right: -0.2rem;\n }\n`;\n\nexport const WeekDayName = styled.div`\n width: 100%;\n padding: 0.4 0.8rem;\n border: 1px solid #e5e5e5;\n background: ${({ status }) =>\n status === 'DONE' ? '#00ff9140' : status === 'UNDONE' ? '#f50a4f33' : 'transparent'};\n`;\n\nexport const BlockActionsStackWrapper = styled.div`\n position: relative;\n`;\nexport const BlockActionsStackMenu = styled.div`\n position: absolute;\n top: Calc(100% + 0.8rem);\n background: #fff;\n border: 1px solid #96949440;\n border-radius: 0.8rem;\n padding: 0.4rem;\n z-index: 1233131322;\n`;\nexport const BlockActionsStackItem = styled.div`\n padding: 0.6rem;\n color: #646161;\n border-radius: 0.6rem;\n font-size: 1.2rem;\n line-height: 1.2rem;\n display: flex;\n align-items: center;\n min-width: fit-content;\n width: 100%;\n white-space: nowrap;\n cursor: pointer;\n &:hover {\n background: #f1f0f060;\n }\n`;\nexport const BlockActionsStackIcon = styled.div`\n width: 1.6rem;\n height: 1.6rem;\n background-image: url(${({ icon }) => icon});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 0.8rem;\n`;\nexport const WeekDayCheckRest = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.2rem;\n color: #373333;\n padding: 0.8rem 0;\n`;\nexport const MessagesRelativeBox = styled.div`\n position: relative;\n margin-bottom: 0.8rem;\n`;\nexport const CommentsOuterWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n border: ${({ noBorder }) => (noBorder ? '1px solid transparent' : '1px solid #c3c2c264')};\n width: 100%;\n border-radius: 6px;\n padding: 0.6rem;\n &:hover {\n border-color: ${({ theme }) => theme?.color?.primary};\n }\n opacity: ${({ op }) => (op ? '0.6' : 1)};\n`;\nexport const WeekRestBoy = styled.div`\n display: flex;\n width: 100%;\n padding: 40% 0;\n background-image: url(${ICONS.RestDayBoy});\n background-size: min(80%, 124) auto;\n background-position: center;\n background-repeat: no-repeat;\n`;\nexport const ColumnTopButtons = styled.div`\n position: absolute;\n right: ${({ collapsed }) => (collapsed ? 'auto' : '0.8rem')};\n top: 0.8rem;\n display: none;\n`;\nexport const ColumnTopButton = styled.div`\n border-radius: 50%;\n cursor: pointer;\n background: #f1f0f0;\n margin-left: 0.8rem;\n padding: 0.2rem;\n &:first-child {\n margin-left: 0;\n }\n`;\n\nexport const ColumnTopButtonIcon = styled.div`\n background-image: url(${({ icon }) => icon});\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n width: 1.4rem;\n height: 1.4rem;\n`;\nexport const DragDropWrapper = styled.div`\n display: flex;\n justify-content: center;\n position: relative;\n /* background: ${({ draggingOver }) => (draggingOver ? 'red' : '#ffd0d0')}; */\n opacity: ${({ beingDragged }) => (beingDragged ? 0.4 : 1)};\n`;\nconst Blink = keyframes`\n 0% {\n opacity: 0.6;\n width: Calc(60% - 0.8rem);\n }\n 80% {\n opacity: 1;\n }\n 100% {\n width: Calc(100% + 1rem);\n }\n`;\nexport const DropIndexIndicator = styled.div`\n position: absolute;\n background: ${({ theme }) => theme.color.primary};\n height: 0.32rem;\n border-radius: 40rem;\n width: Calc(100% + 1rem);\n animation: ${Blink} 800ms linear infinite;\n top: -0.5rem;\n`;\nexport const TooltipFooter = styled.div`\n display: flex;\n justify-content: flex-end;\n align-items: center;\n margin-top: 3.2rem;\n`;\n","import React, { useState } from 'react';\nimport { BlockExerciseWeightType, WorkoutBlockType } from '../../constants/enums';\nimport AddExerciseModal from '../add-exercise-modal.jsx/AddExerciseModal';\nimport { EyeContainer } from '../calendar-results-modal/components';\nimport { OptionButton } from '../input/components';\nimport {\n AttributeBullet,\n WorkoutBlockTable as WorkoutBlockTableContainer,\n WorkoutBlockTableAttributeLabel,\n WorkoutBlockTableAttributeNum,\n WorkoutBlockTableAttributeRow,\n WorkoutBlockTableColumnLeft,\n WorkoutBlockTableColumnRight,\n WorkoutBlockWorkoutIndex,\n WorkoutBlockWorkoutName,\n WorkoutBlockWorkoutRow,\n WorkoutBlockWorkoutValue,\n CustomBlockDescription,\n CustomBlockDescriptionLine,\n WorkoutBlockWorkoutPilatesrValue,\n WorkoutBlockWorkoutPilatesrNameValue, WorkoutBlockWorkoutNameBold,\n} from './components';\n\nconst WorkoutBlockTable = ({ block, week }) => {\n const [exerciseView, setExerciseView] = useState(null);\n\n return (\n \n {block.type !== WorkoutBlockType.CUSTOM && block.type !== WorkoutBlockType.CLASSICSTRENGTH && block.type !== WorkoutBlockType.PILATESR && (\n \n {block.type !== WorkoutBlockType.REST && !week && }\n {block?.attributes?.map(\n (attr) =>\n !!attr?.value &&\n attr?.name !== 'block_title' && (\n \n {!week && }\n {attr.type === 'clock' ? (\n <>\n \n {`${attr.name === 'unit' ? `Total ${attr?.textValue}` : attr.itemName}: ${\n attr?.asNeeded ? 'As Needed' : ''\n }`}\n \n\n {block.type !== WorkoutBlockType.REST && (\n \n {attr?.asNeeded ? '' : attr?.value?.slice(-5)}\n \n )}\n \n ) : (\n <>\n \n {attr.value}\n \n {/* {attr.name === 'pace' && (\n \n {attr.textValue}\n \n )} */}\n \n {attr.name === 'unit' ? 'meters' : attr.itemName}\n \n \n )}\n \n ),\n )}\n\n {block.type !== WorkoutBlockType.REST && !week && }\n \n )}\n {/* {block.type === WorkoutBlockType.RUN ? (\n
\n \n {block?.attributes?.map((attr) => (\n <>\n {attr?.value && attr?.value !== -1 ? (\n \n \n \n {(attr.name === 'unit' && `Total ${attr?.textValue}`) || attr.itemName}:\n \n \n {(attr.name === 'unit' &&\n (attr.type === 'number'\n ? `${formatNumber(attr?.value)} meters`\n : `${attr?.value?.slice(-5)}`)) ||\n ` ${attr?.value} km/h`}\n \n \n ) : (\n <>\n )}\n \n ))}\n \n
\n ) : ( */}\n \n {block.type === WorkoutBlockType.REST && (\n \n \n {block?.attributes?.[0]?.value?.slice(-5)}\n \n \n )}\n\n {block.type === WorkoutBlockType.CUSTOM &&\n block?.attributes?.map(\n (attr) =>\n attr?.name === 'text' && (\n \n {attr?.value?.split('\\n').map((i) => (\n {i}\n ))}\n \n ),\n )}\n {block?.exercises?.map((ex, i) => (\n <>\n \n {week && }\n {(!week || block.type === WorkoutBlockType.STRENGTH) && (\n \n {block.type === WorkoutBlockType.STRENGTH ? `Set ${i + 1}:` : i + 1}\n \n )}\n\n {block.type !== WorkoutBlockType.STRENGTH && block.type !== WorkoutBlockType.PILATESR &&(\n {`${ex?.exercise?.title}:`}\n )}\n {block?.type === WorkoutBlockType.CLASSICSTRENGTH && (\n <>\n {`${ex.numberOfSets} sets`}\n |\n \n )}\n {block?.type !== WorkoutBlockType.PILATESR && ({`${\n ex?.quantity\n } ${ex?.unit.toLowerCase()}`})}\n\n {!!ex?.weight && (\n <>\n |\n {`${ex?.weight} ${\n ex?.weightType\n ? ex?.weightType === BlockExerciseWeightType.KG\n ? (block.type === WorkoutBlockType.RUN && 'km/h') || 'kg weight'\n : (block.type === WorkoutBlockType.RUN && 'min/km') || '% weight'\n : ''\n }`}\n \n )}\n {block?.type === WorkoutBlockType.CLASSICSTRENGTH && (\n <>\n |\n {`${ex.restTime.slice(\n -5,\n )} rest`}\n \n )}\n {block?.type === WorkoutBlockType.PILATESR && (\n <>\n
\n {`${ex?.exercise?.title}:`}\n\n
\n
\n Setting\n {`${ex.setting}`}\n
\n
\n Reps\n {`${ex.reps}`}\n
\n
\n Notes\n {`${ex.notes}`}\n
\n
\n
\n \n )}\n\n \n {\n setExerciseView(ex?.exercise);\n }}\n />\n \n
\n {block?.type === WorkoutBlockType.CLASSICSTRENGTH &&
\n Notes\n {`${ex.notes}`}\n
}\n \n ))}\n
\n {/* )} */}\n\n setExerciseView(null)}\n initialValues={exerciseView}\n readOnly\n />\n
\n );\n};\n\nexport default WorkoutBlockTable;\n","import React from 'react';\n\nimport {\n StyledTextArea,\n StyledTextAreaWrapper,\n StyledTextAreaError,\n InputErrorIcon,\n} from './components';\n\nconst CustomTextArea = ({\n placeholder,\n onChange,\n value,\n error,\n rowCount = 15,\n wrapperStyle,\n errorIcon,\n errorBorder,\n borderColor,\n ...rest\n}) => {\n return (\n <>\n \n onChange(e.target.value)}\n />\n \n {error && (\n \n {errorIcon && }\n {error}\n \n )}\n \n );\n};\n\nexport default CustomTextArea;\n","import React, { useMemo } from 'react';\n\nimport { WorkoutBlockType } from '../../constants/enums';\nimport {\n BlockResultsTable,\n BlockResultsTH,\n BlockResultsRow,\n BlockResultsTD,\n HoverIndicator,\n NoResults,\n} from './components';\n\nconst ResultTable = ({ block }) => {\n console.log(block, '----');\n const [setOrRoundAttr, blockRows] = useMemo(\n () => [\n block?.type === WorkoutBlockType.RFT\n ? { name: 'total times', value: 1 }\n : block?.type === WorkoutBlockType.AMRAP\n ? { name: 'Total Number of Roundss', value: 1 }\n : block?.type === WorkoutBlockType.RUN\n ? {\n name: 'Times',\n value: 1,\n }\n : block?.customAttributes?.find((x) => x.name === 'sets' || x.name === 'rounds') || {\n name: 'times',\n value: 1,\n },\n block?.type === WorkoutBlockType.STRENGTH\n ? [block?.exercises?.[0]]\n : block?.type === WorkoutBlockType?.RUN\n ? [{ exercise: { title: 'Total Time' } }]\n : block?.exercises,\n ],\n [block],\n );\n\n const arrayofHeadings = useMemo(() => new Array(setOrRoundAttr.value).fill(1), [setOrRoundAttr]);\n return (\n <>\n {!block?.results?.[0]?.value?.length ? (\n No Results Yet\n ) : (\n \n \n \n {block?.type !== WorkoutBlockType.AMRAP && Name}\n {arrayofHeadings?.map((heading, j) => (\n {`${setOrRoundAttr?.name?.substr(\n 0,\n setOrRoundAttr?.name?.length - 1,\n )} ${\n ((setOrRoundAttr?.name === 'rounds' || setOrRoundAttr?.name === 'sets') && j + 1) ||\n ''\n }`}\n ))}\n \n \n {block?.type === WorkoutBlockType.AMRAP ? (\n \n \n \n \n \n {`${block?.results?.[0]?.value?.[0]?.[0]}` || '-'}\n \n \n ) : block?.type === WorkoutBlockType.RFT ? (\n block?.results?.[0]?.value?.map((round, row) => (\n \n \n \n \n \n {`${block?.customAttributes?.find((x) => x.name === 'rounds')?.value} Rounds`}\n \n \n {`${('0' + Math.floor(round?.[0] / 60)).slice(-2)}:${(\n '0' +\n (round?.[0] % 60)\n ).slice(-2)}` || '-'}\n \n \n ))\n ) : (\n blockRows?.map((exercise, row) => (\n \n \n \n {block?.type !== WorkoutBlockType?.RUN && row + 1}\n \n {exercise?.exercise?.title}\n {arrayofHeadings?.map((a, col) => (\n \n {block?.type === WorkoutBlockType.STRENGTH\n ? block?.results?.[0]?.value?.length > 1\n ? `${block?.results?.[0]?.value?.[1]?.[col]}kg (${block?.results?.[0]?.value?.[0]?.[col]} reps)`\n : block?.results?.[0]?.value?.[0]?.[col] + 'kg'\n : block?.type === WorkoutBlockType.CLASSICSTRENGTH\n ? `${block?.results?.[0]?.value?.[1]?.[row]}kg (${block?.results?.[0]?.value?.[0]?.[row]} reps)`\n : block?.type === 'SUPERSETS'\n ? arrayofHeadings?.length &&\n block?.results?.[0]?.value?.[col + arrayofHeadings?.length]?.[row]\n ? `${\n block?.results?.[0]?.value?.[col + arrayofHeadings?.length]?.[row]\n }kg (${block?.results?.[0]?.value?.[col]?.[row]}reps)`\n : block?.results?.[0]?.value?.[col]?.[row] + 'reps'\n : block?.type === WorkoutBlockType?.RUN\n ? `${(\n '0' + Math.floor(block?.results?.[0]?.value?.[col]?.[row] / 60)\n ).slice(-2)}:${(\n '0' +\n (block?.results?.[0]?.value?.[col]?.[row] % 60)\n ).slice(-2)}`\n : block?.results?.[0]?.value?.[col]?.[row] || '-'}\n \n ))}\n {/* \n \n View \n \n */}\n \n ))\n )}\n \n \n )}\n \n );\n};\n\nexport default ResultTable;\n","import React, { useState, useMemo } from 'react';\nimport { Field, Form, Formik } from 'formik';\n\nimport WorkoutBlockTable from '../add-calendar-modal/WorkoutBlockTable';\nimport { WorkoutBlockType } from '../../constants/enums';\nimport CustomTextArea from '../input/CustomTextArea';\nimport { useResults, useUtils } from '../../hooks';\nimport MediaModal from '../media-modal/MediaModal';\nimport CustomButton from '../button/CustomButton';\nimport ResultTable from './ResultTable';\n\nimport {\n ModalFooter,\n ModalContent,\n WorkoutBlockResult,\n BlockExercisesSide,\n BlockFeedbackSide,\n BlockExercisesHeader,\n BlockExercisesHeaderLabel,\n HeaderLabelCheckmark,\n BlockResults,\n BlockFeedback,\n BlockFeedbackContent,\n BlockExercisesRest,\n BlockFeedbackHeader,\n FeedbackHeading,\n FeedbackTextAreaWrapper,\n EntireMessageHeading,\n EntireMessageWrapper,\n BlocksWrapper,\n BLockAttachment,\n BLockAttachmentVideo,\n ParticipantContent,\n IndividualTraineeHeaderMain,\n IndividualTraineePic,\n IndicatorDone,\n IndividualTraineeHeader,\n IndividualTraineeHeaderSide,\n IndividualTraineeBack,\n IndividualTraineeBackIcon,\n WorkoutBlockComment,\n PlayPlaceholder,\n ResultsTitle,\n AttachmentsList,\n AttachmentIcon,\n ResultsContainer,\n CommentText,\n} from './components';\nimport ICONS from '../../constants/icons';\n\nconst SingleTraineeResults = ({\n day,\n isGroup,\n trainee,\n exit,\n refetchProgram,\n setSubmitting,\n closeModal,\n alert,\n refetchCalendars,\n}) => {\n const [openMedia, setOpenMedia] = useState(null);\n\n const { getWorkoutBlocksByWorkout } = useUtils();\n const workoutBlocks = useMemo(() => getWorkoutBlocksByWorkout(day?.workout, trainee?.uid), [\n day,\n getWorkoutBlocksByWorkout,\n trainee,\n ]);\n\n const status = useMemo(\n () => day?.workout?.status?.find((x) => trainee?.uid && x?.trainee?.uid === trainee?.uid),\n [day, trainee],\n );\n\n const initialFeedbacks = useMemo(() => {\n const toBeReturned = {};\n if (workoutBlocks?.length) {\n workoutBlocks.map((block) => {\n const currFeedback = block?.results?.[0]?.coachFeedback;\n if (currFeedback) {\n toBeReturned[block?.uid] = currFeedback;\n }\n return 1;\n });\n }\n return toBeReturned;\n }, [workoutBlocks]);\n\n const { submitFeedback } = useResults();\n\n return (\n {\n if (!isGroup) {\n alert.info(`We are sending your feedback to ${trainee?.fullName}`);\n closeModal();\n }\n setSubmitting(true);\n try {\n console.log('try');\n await submitFeedback(v);\n console.log('next');\n alert.success(`Your feedbacks were successfully sent to ${trainee?.fullName}`);\n refetchProgram();\n refetchCalendars();\n setSubmitting(false);\n exit();\n } catch (err) {\n console.log('catch', err);\n alert.error(err.message);\n setSubmitting(false);\n }\n }}\n >\n {({ setFieldValue }) => (\n
\n \n setOpenMedia(null)} />\n \n {isGroup && (\n \n \n \n \n Back\n \n \n \n \n {trainee?.fullName\n ?.split(' ')\n .map((a) => a.substr(0, 1))\n ?.join('')}\n \n {trainee?.fullName}\n \n \n \n \n )}\n \n {workoutBlocks?.map((block, index) => (\n <>\n {block?.type === WorkoutBlockType.REST ? (\n \n \n REST\n \n \n ) : (\n \n \n \n {block?.type}\n {block?.isWarmUp && (\n \n \n Warmup\n \n )}\n \n \n Results\n\n \n
\n \n
\n {block?.results?.[0]?.resultText && (\n \n \n {block?.results?.[0]?.resultText}\n \n )}\n\n {block?.results?.[0]?.blockAttachment?.files?.length && (\n \n \n {block?.results?.[0]?.blockAttachment?.files?.map((att) => {\n const link = att?.compressedUrl || att?.url || '';\n\n if (\n link.toLowerCase().endsWith('.mov') ||\n link.toLowerCase().endsWith('.mp4')\n ) {\n return (\n \n setOpenMedia({\n url: att?.url,\n type: att?.mimetype?.split('/')?.[0],\n })\n }\n >\n \n \n \n \n \n );\n }\n\n return (\n \n setOpenMedia({\n url: att?.url,\n type: att?.mimetype?.split('/')?.[0],\n })\n }\n />\n );\n })}\n \n )}\n
\n\n \n Details\n \n\n \n {block?.comment && (\n {block?.comment}\n )}\n
\n
\n \n \n \n \n Leave Feedback\n \n {({ field }) => (\n \n setFieldValue(field.name, v)}\n />\n \n )}\n \n \n \n \n
\n )}\n \n ))}\n
\n Type Message about entire Workout\n \n \n {({ field }) => (\n setFieldValue(field.name, v)}\n />\n )}\n \n \n \n \n Send Comments\n \n \n
\n
\n
\n )}\n \n );\n};\n\nexport default SingleTraineeResults;\n","import styled from 'styled-components';\n\nexport const TooltipWrapper = styled.div`\n width: 26rem;\n width: 100%;\n border-radius: 12px;\n background: #ffffff;\n border: 0.5px solid #96949444;\n padding: 2.2rem 2rem;\n font-size: 1.4rem;\n font-family: Roboto-l;\n position: absolute;\n z-index: 111;\n ${({ below }) =>\n below\n ? `\n top: Calc(100% + 0.4rem);\n `\n : `\n bottom: Calc(100% + 0.4rem);\n `};\n right: -12.1rem;\n line-height: 2.1rem;\n display: none;\n pointer-events: auto;\n`;\n\nexport const TooltipTriangleBorder = styled.div`\n width: 0;\n height: 0;\n border-style: solid;\n border-width: ${({ below }) => (below ? '0 8px 8px 8px' : '8px 8px 0 8px')};\n border-color: ${({ below }) =>\n below\n ? 'transparent transparent #96949444 transparent'\n : '#96949444 transparent transparent transparent'};\n position: absolute;\n ${({ below }) =>\n below\n ? `\n bottom: 100%;\n `\n : `\n top: 100%;\n `};\n left: ${({ triangleLeft }) => triangleLeft || 'Calc(50% - 8px)'};\n`;\n\nexport const TooltipTriangle = styled.div`\n width: 0;\n height: 0;\n border-style: solid;\n border-width: ${({ below }) => (below ? '0 7px 8px 7px' : '8px 7px 0 7px')};\n border-color: ${({ below }) =>\n below\n ? 'transparent transparent #ffffff transparent'\n : '#ffffff transparent transparent transparent'};\n position: absolute;\n left: ${({ triangleLeft }) =>\n triangleLeft ? `Calc(${triangleLeft} + 1px)` : ' Calc(50% - 7px)'};\n ${({ below }) =>\n below\n ? `\n bottom: Calc(100% - 1px);\n `\n : `\n top: Calc(100% - 1px);\n `};\n`;\n","import React from 'react';\nimport { TooltipWrapper, TooltipTriangle, TooltipTriangleBorder } from './components';\n\nconst CustomTooltip = ({ below, children, triangleLeft, ...rest }) => {\n return (\n \n \n \n {children}\n \n );\n};\n\nexport default CustomTooltip;\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport CustomButton from '../button/CustomButton';\nimport CustomTooltip from '../tooltip/CustomTooltip';\nimport CustomTextArea from '../input/CustomTextArea';\n\nimport {\n WeekBlockAddComment,\n WeekBlockAddCommentIcon,\n WeekBlockAddCommentText,\n WeekBlockAddCommentTitle,\n WeekBlockAddCommentButtons,\n WeekBlockAddCommentPreview,\n AttributeLabel,\n AttrCheckBox,\n CommentsOuterWrapper,\n} from './components';\n\nconst AddBlockCommentTooltip = ({ onSubmit, initialValue, preview, beforeAfter, isMobile }) => {\n const [addCommentOpen, setAddCommentOpen] = useState(false);\n const [blockComment, setBlockComment] = useState(initialValue);\n\n const addCommentRef = useRef(null);\n const handleClickOutside = (event) => {\n if (!isMobile && addCommentRef.current && !addCommentRef.current.contains(event.target)) {\n setAddCommentOpen(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false);\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, []);\n\n return (\n \n \n {preview ? (\n {initialValue}\n ) : (\n <>\n {beforeAfter ? (\n <>\n \n \n setBlockComment((curr) => ({\n ...curr,\n beforeMessageChecked: !blockComment?.beforeMessageChecked,\n }))\n }\n />\n Message before workout\n \n {blockComment?.beforeMessageChecked && (\n setBlockComment((curr) => ({ ...curr, beforeMessage: v }))}\n value={blockComment?.beforeMessage}\n />\n )}\n \n \n setBlockComment((curr) => ({\n ...curr,\n afterMessageChecked: !blockComment?.afterMessageChecked,\n }))\n }\n />\n Message after workout\n \n {blockComment?.afterMessageChecked && (\n setBlockComment((curr) => ({ ...curr, afterMessage: v }))}\n value={blockComment?.afterMessage}\n />\n )}\n \n ) : (\n <>\n Create comment for this block\n\n setBlockComment(v)}\n value={blockComment}\n />\n \n )}\n \n {\n setBlockComment('');\n setAddCommentOpen(false);\n }}\n >\n Discard\n \n {\n onSubmit(blockComment);\n setAddCommentOpen(false);\n }}\n >\n Save\n \n \n \n )}\n \n {!addCommentOpen || !isMobile ? (\n setAddCommentOpen((curr) => !curr)}\n noBorder={!beforeAfter}\n op={\n beforeAfter &&\n !initialValue?.beforeMessage &&\n !initialValue?.afterMessage &&\n !addCommentOpen\n }\n >\n \n {(!beforeAfter || !addCommentOpen) && (\n \n {beforeAfter\n ? initialValue?.beforeMessage ||\n initialValue?.afterMessage ||\n 'Message before/after workout'\n : initialValue || 'Add Comments & Indications'}\n \n )}\n \n ) : (\n onSubmit(v)}\n value={initialValue}\n />\n )}\n \n );\n};\n\nexport default AddBlockCommentTooltip;\n","import React, { useEffect, useRef, useState } from 'react';\nimport ICONS from '../../constants/icons'\nimport { BlockActionsStackWrapper, WorkoutBlockHeaderIcon, BlockActionsStackIcon, BlockActionsStackMenu, BlockActionsStackItem } from './components';\n\n\nconst BlockActionsStack = ({actions}) => { \n\n const [isOpen, setIsOpen] = useState(false)\n\n const menuRef= useRef()\n \n const handleClickOutside = (event) => {\n if (menuRef.current && !menuRef.current.contains(event.target)) {\n setIsOpen(false);\n }\n };\n \n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false);\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, []);\n \n return(\n <>\n \n setIsOpen(curr => !curr)} style={{backgroundImage: `url(${isOpen ? ICONS.VerticalDotsActive : ICONS.VerticalDots})`, width: '2.2rem', height: '2.2rem'}}/>\n {isOpen &&\n \n {actions?.map( ac =>\n {\n ac.action(); \n setIsOpen(false)\n }}>\n \n {ac.title}\n \n )}\n \n }\n \n \n )\n}\n\nexport default BlockActionsStack;","import React from 'react';\n\nimport { WorkoutBlockType } from '../../constants/enums';\nimport ICONS from '../../constants/icons';\nimport AddBlockCommentTooltip from './AddBlockCommentTooltip';\nimport BlockActionsStack from './BlockActionsStack';\n\nimport {\n WorkoutBlockForm,\n WorkoutBlockHeader,\n WorkoutBlockContent,\n WorkoutBlockAdditionalAttr,\n WorkoutBlockAdditionalAttrWrapper,\n WorkoutBlockHeaderIconsWrapper,\n WorkoutBlockHeaderIcon,\n WorkoutBlockOrderArrow,\n WorkoutBlockComment,\n WeekBlockFooter,\n} from './components';\nimport WorkoutBlockTable from './WorkoutBlockTable';\n\nconst WorkoutBlock = ({\n block,\n mobile,\n setEditting,\n deleteSelf,\n orderDown,\n orderUp,\n isFirst,\n isLast,\n immutable,\n duplicateSelf,\n week,\n nonDeletable,\n}) => {\n return (\n \n \n \n {!immutable && !week && (\n <>\n \n \n \n )}\n {week && !mobile && (\n \n )}\n {`${block?.attributes?.find((x) => x.name === 'block_title')?.value || block?.name} ${\n (block?.type === WorkoutBlockType.STRENGTH &&\n !!block?.exercises?.length &&\n `- ${block?.exercises?.[0].exercise?.title}`) ||\n ''\n }`}\n \n\n {!immutable && (!week || mobile) && (\n \n {!mobile && duplicateSelf(block)} duplicate />}\n \n {!nonDeletable && }\n \n )}\n {week && !mobile && (\n \n \n duplicateSelf(block) },\n ]}\n />\n \n )}\n \n \n \n {!week && block?.comment && {block?.comment}}\n {(block?.videoRequested || block?.isWarmUp) && (\n \n
\n {block?.videoRequested && (\n Video Requested\n )}\n {block?.isWarmUp && (\n Warmup\n )}\n
\n
\n )}\n
\n {week && block?.comment && (\n \n {}} />\n \n )}\n
\n );\n};\n\nexport default WorkoutBlock;\n","import { getCalendarsQuery, getCalendarByUidQuery } from '@witness/graphql';\nimport { useQuery } from '@apollo/react-hooks';\nimport { useMemo } from 'react';\n\nconst useCalendar = ({ coachProgramUid, startDate, endDate, calendarUid }) => {\n const { data: calendars, loading: calendarsLoading, refetch: refetchCalendars } = useQuery(\n getCalendarsQuery,\n {\n variables: {\n record: {\n coachProgramUid,\n startDate,\n endDate,\n },\n },\n skip: !coachProgramUid || typeof startDate !== 'number',\n fetchPolicy: 'network-only',\n },\n );\n\n const { data: calendar, loading: calendarLoading, refetch: refetchCalendar } = useQuery(\n getCalendarByUidQuery,\n {\n variables: {\n uid: calendarUid,\n },\n skip: coachProgramUid || !calendarUid,\n fetchPolicy: 'network-only',\n },\n );\n\n const { refetch: refetchCalendarsRange } = useQuery(getCalendarsQuery, {\n fetchPolicy: 'network-only',\n skip: true\n });\n \n const getCalendarsRange = async (rangeStart, rangeEnd) => {\n try {\n const { data: calendarsRange } = await refetchCalendarsRange(\n {\n record: {\n coachProgramUid,\n startDate: rangeStart,\n endDate: rangeEnd,\n },\n }\n );\n return calendarsRange\n } catch (err) {\n console.log('Error while querying calendars', err);\n }\n }\n\n const state = useMemo(\n () => ({\n calendars: coachProgramUid ? calendars?.getCalendars : calendar?.getCalendarByUid,\n calendarsLoading: coachProgramUid ? calendarsLoading : calendarLoading,\n refetchCalendars: coachProgramUid\n ? refetchCalendars\n : calendarUid\n ? refetchCalendar\n : () => {},\n getCalendarsRange\n }),\n [\n coachProgramUid,\n calendar,\n calendarUid,\n calendarLoading,\n calendars,\n calendarsLoading,\n refetchCalendar,\n refetchCalendars,\n getCalendarsRange\n ],\n );\n\n return state;\n};\n\nexport default useCalendar;\n","import React, { useMemo, useState } from 'react';\nimport Modal from 'react-modal';\n\nimport { WorkoutStatus } from '../../constants/enums';\nimport ProgressLine from '../progress-line/ProgressLine';\nimport SingleTraineeResults from './SingleTraineeResults';\nimport WorkoutBlock from '../add-calendar-modal/WorkoutBlock';\n\nimport { useUtils } from '../../hooks';\n\nimport {\n WholeWrapper,\n ModalHeader,\n ModalCloseX,\n WorkoutName,\n EntireGroupResults,\n EntireGroupHeader,\n EntireGroupHeading,\n EntireGroupResultsWrapper,\n EntireGroupContent,\n WorkoutBlockResult,\n BlockExercisesSide,\n BlockExercisesHeader,\n BlockFeedbackSide,\n BlockFeedback,\n BlockFeedbackHeader,\n GroupWorkoutsWrapper,\n GroupParticipantsHeader,\n GroupParticipantsContent,\n GroupParticipantRow,\n GroupParticipantImage,\n GroupParticipantName,\n GroupParticipantResultIndicator,\n IndicatorDone,\n IndicatorGeneral,\n HoverIndicator,\n} from './components';\nimport Loader from '../loader/Loader';\nimport { useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport useCalendar from '../../hooks/calendar';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 3333,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n overflow: 'hidden auto',\n },\n content: {\n width: '74%',\n maxWidth: '1320px',\n minWidth: '1080px',\n minHeight: 'Calc(100vh - 64px)',\n height: 'fit-content',\n borderRadius: '8px',\n overflow: 'hidden',\n pointerEvents: 'all',\n background: 'white',\n margin: '4rem auto',\n position: 'static',\n padding: 0,\n },\n};\n\nconst CalendarResultsModal = ({\n name,\n closeModal,\n refetchProgram,\n loading,\n alert,\n urlTraineeUid,\n coachProgramUid,\n day,\n}) => {\n const { getWorkoutBlocksByWorkout, sortByWorkoutStatus } = useUtils();\n const [chosenIndividual, setChosenIndividual] = useState(null);\n const [submitting, setSubmitting] = useState(false);\n const history = useHistory();\n\n const { calendars, calendarsLoading, refetchCalendars } = useCalendar({\n coachProgramUid,\n startDate: day?.programDay,\n calendarUid: day?.uid,\n });\n\n const WORKOUT = useMemo(() => {\n if (Array.isArray(calendars)) {\n return calendars?.find((x) => x.type === 'WORKOUT');\n }\n\n return calendars;\n }, [calendars]);\n\n const workoutBlocks = useMemo(\n () => getWorkoutBlocksByWorkout(WORKOUT?.workout),\n [WORKOUT, getWorkoutBlocksByWorkout],\n );\n const [participants, doneBy] = useMemo(\n () => [\n WORKOUT?.workout?.status?.filter((x) => !!x.trainee)?.length,\n WORKOUT?.workout?.status?.filter((x) => !!x.trainee && x.type === WorkoutStatus.DONE)?.length,\n ],\n [WORKOUT],\n );\n\n useEffect(() => {\n const urlTrainee = WORKOUT?.workout?.status?.find((x) => x?.trainee?.uid === urlTraineeUid);\n setChosenIndividual((curr) => urlTrainee?.trainee || curr);\n }, [urlTraineeUid, WORKOUT]);\n\n const location = useLocation();\n\n const isGroup = useMemo(() => location?.search === '?group=true', [location]);\n\n return (\n <>\n {\n closeModal();\n history.push(`${history?.location?.pathname}${isGroup ? '?group=true' : ''}`);\n }}\n isOpen={!!day}\n style={customStyles}\n contentLabel=\"Program Request\"\n ariaHideApp={false}\n >\n
\n {loading || submitting || calendarsLoading ? (\n \n ) : (\n \n \n {name ? `${name} - ` : ''}\n {`Day ${day?.programDay}`}\n X\n \n \n Workout Name: {day?.workout?.name}\n \n {isGroup && !chosenIndividual ? (\n \n \n \n Completed Workout\n \n \n \n \n \n Workouts\n \n {console.log(workoutBlocks)}\n {workoutBlocks?.map((block) => (\n \n ))}\n \n \n \n \n \n \n Trainees\n
{`${doneBy}/${participants}`}
\n
\n
\n \n {day?.workout?.status\n ?.filter((status) => status.trainee)\n .sort(sortByWorkoutStatus)\n ?.map((status) => (\n setChosenIndividual(status?.trainee)}\n >\n \n \n {status?.trainee?.fullName\n ?.split(' ')\n ?.map((a) => a.substr(0, 1))\n .join('')}\n \n \n {status?.trainee?.fullName}\n \n \n {status?.type === WorkoutStatus.DONE ? (\n \n ) : (\n \n )}\n \n \n ))}\n \n
\n
\n
\n
\n
\n
\n ) : (\n setChosenIndividual(null)}\n refetchProgram={refetchProgram}\n setSubmitting={setSubmitting}\n closeModal={closeModal}\n refetchCalendars={refetchCalendars}\n />\n )}\n
\n )}\n
\n \n \n );\n};\n\nexport default CalendarResultsModal;\n","import React, { useMemo } from 'react';\n\nimport icons from '../../constants/icons';\nimport CustomButton from '../button/CustomButton';\nimport {\n Avatar,\n DumbellIcon,\n StatusIcon,\n TraineeInfoWrapper,\n TraineeName,\n WorkoutInfoWrapper,\n WorkoutNameWrapper,\n} from './components';\n\nconst RespWorkoutInfo = ({\n data,\n status,\n name,\n time,\n avatarUrl,\n initials,\n onButtonClick,\n buttonText,\n location,\n workoutName,\n}) => {\n const icon = useMemo(() => {\n if (time) {\n return location ? icons.LocationIcon : icons.VideoCamera;\n }\n\n return icons.dumbellSvg;\n }, [location, time]);\n\n return (\n \n \n \n {initials}\n \n\n {name}\n\n {!location ? (\n \n onButtonClick({\n day: data?.uid,\n name,\n })\n }\n >\n {buttonText}\n \n ) : (\n {location}\n )}\n \n\n \n \n {workoutName}\n \n\n \n {time ? (\n time\n ) : (\n <>\n {status}\n \n )}\n \n \n );\n};\n\nexport default RespWorkoutInfo;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n border-radius: 12px;\n height: fit-content;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 72px;\n display: flex;\n align-items: center;\n border-bottom: 1px solid #05000020;\n justify-content: center;\n position: relative;\n margin-bottom: 34px;\n &::after {\n content: '';\n width: ${({ neg }) => (neg ? '61px' : '5.8rem')};\n height: ${({ neg }) => (neg ? '61px' : '5.8rem')};\n background: ${({ theme, neg }) => (neg ? '#f9f9f9' : theme.color.primary)};\n border-radius: 50%;\n background-image: url(${({ neg }) => (neg ? ICONS.RedBin : ICONS.ArrowMainRight)});\n background-position: center;\n background-repeat: no-repeat;\n position: absolute;\n bottom: -50%;\n border: ${({ neg }) => (neg ? '1px solid #efefef' : '1rem solid #ffffff')};\n transform: ${({ neg }) => (neg ? 'none' : 'rotate(90deg)')};\n }\n @media (max-width: 600px) {\n height: 54px;\n }\n`;\n\nexport const ModalHeaderLines = styled.div`\n width: 50%;\n height: 100%;\n border-left: 1px solid #05000020;\n border-right: 1px solid #05000020;\n`;\n\nexport const ModalMain = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n padding: 0 36px 16px;\n`;\n\nexport const ModalPrimaryText = styled.div`\n font-family: Gotham-r;\n font-size: 2.4rem;\n line-height: 3.6rem;\n color: #4a4a4a;\n text-align: center;\n padding: 1.4rem 0 2.6rem;\n`;\n\nexport const ModalSecondaryText = styled.div`\n font-size: 16px;\n line-height: 2.4rem;\n text-align: center;\n width: 100%;\n padding: 0 6.2rem 4rem;\n color: #848181;\n & > span {\n font-family: Roboto-m;\n color: #4a4a4a;\n }\n`;\n\nexport const ModalSecondaryQuestion = styled.div`\n font-size: 16px;\n line-height: 24px;\n text-align: center;\n color: #050000;\n font-family: Roboto-m;\n`;\n\nexport const ButtonsFlexWrapper = styled.div`\n display: flex;\n align-items: center;\n margin: 2.4rem 0 1.6rem;\n width: 100%;\n justify-content: center;\n`;\n\nexport const ButtonWrapper = styled.div`\n max-width: 14rem;\n height: 4rem;\n margin: 0 0.8rem;\n flex-grow: 1;\n`;\n","import React from 'react';\nimport Modal from 'react-modal';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalHeaderLines,\n ModalPrimaryText,\n ModalMain,\n ModalSecondaryText,\n ButtonsFlexWrapper,\n ButtonWrapper,\n ModalSecondaryQuestion,\n} from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '44444445',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n overflow: 'hidden auto',\n },\n content: {\n background: 'transparent',\n zIndex: '11111111',\n width: 'Calc(100% - 20px)',\n maxWidth: '588px',\n minWidth: '300px',\n height: 'fit-content',\n top: '10px',\n minHeight: 'Calc(100vh - 20px)',\n display: 'flex',\n alignItems: 'center',\n left: 'max(10px, Calc(50% - 294px))',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n pointerEvents: 'all',\n },\n};\n\nconst AreYouSureModal = ({\n modalOpen,\n closeModal,\n submitModal,\n headingText,\n contentText,\n choiceQuestion,\n rejectModal,\n rejectText,\n submitText,\n neg,\n paddings,\n}) => {\n return (\n \n \n \n \n \n \n {headingText && {headingText}}\n {contentText && {contentText}}\n {choiceQuestion && {choiceQuestion}}\n \n \n \n {rejectText || 'No'}\n \n \n \n {\n submitModal();\n closeModal();\n }}\n >\n {submitText || 'Yes'}\n \n \n \n \n \n \n );\n};\n\nexport default AreYouSureModal;\n","import React from 'react';\nimport CreatableSelect from 'react-select/creatable';\nimport ICONS from '../../constants/icons';\n\nimport {\n InputError,\n InputErrorIcon,\n InputWrapper,\n StyledOption,\n OptionButtonsContainer,\n OptionButton,\n} from './components';\n\nconst CustomSearch = ({\n backgroundColor,\n outlined,\n fontSize,\n placeholder,\n value,\n onChange,\n type,\n borderColor,\n onSelect,\n loading,\n options = [],\n error,\n errorIcon = true,\n createNew,\n viewOption,\n initialValue,\n noIcon,\n menuStyle,\n ...rest\n}) => {\n return (\n \n ({\n ...provided,\n width: '100%',\n backgroundImage: (error && !value) || noIcon ? '' : `url(${ICONS.Search})`,\n backgroundSize: 'auto 2rem',\n backgroundPosition: 'right',\n paddingRight: !noIcon ? '2.2rem' : 0,\n backgroundRepeat: 'no-repeat',\n marginRight: noIcon ? 0 : '1rem',\n }),\n control: (provided) => ({\n ...provided,\n boxShadow: 'none',\n border: 0,\n backgroundColor: 'tranparent',\n }),\n menu: (provided) => ({\n ...provided,\n display: value ? 'block' : 'none',\n ...menuStyle,\n }),\n placeholder: (provided) => ({\n ...provided,\n fontFamily: 'Roboto-l',\n fontSize: '1.4rem',\n color: '#0500004d',\n }),\n }}\n placeholder={placeholder}\n autoFocus\n options={options.map((opt) => ({ label: opt.title, value: opt.id, ...opt }))}\n createOptionPosition={'first'}\n formatCreateLabel={(userInput) => `Create new exercise: ${userInput}`}\n onInputChange={onChange}\n defaultValue={initialValue}\n value={value}\n controlShouldRenderValue={false}\n openMenuOnFocus\n inputValue={value}\n isLoading={loading}\n components={{\n DropdownIndicator: null,\n ClearIndicator: null,\n LoadingIndicator: null,\n Option: (props) => (\n props?.selectOption(props?.data)}\n >\n {props.children}\n {!props?.data?.__isNew__ &&\n (props.data?.gender === 'FEMALE' ? ' (Female)' : ' (Male)')}\n {!props?.data?.__isNew__ && (\n \n \n {\n e.stopPropagation();\n viewOption(props.data);\n }}\n />\n \n )}\n \n ),\n }}\n // clearable={true}\n // onSelectResetsInput={true}\n captureMenuScroll={false}\n onKeyDown={(keyEvent) => {\n if ((keyEvent.charCode || keyEvent.keyCode) === 13) {\n keyEvent.preventDefault();\n }\n }}\n onChange={(a) => {\n if (a.__isNew__) {\n createNew(a?.value);\n } else {\n onSelect(a);\n }\n }}\n on\n />\n {error ? (\n \n {error}\n {errorIcon && }\n \n ) : (\n <>\n )}\n \n );\n};\n\nexport default CustomSearch;\n","import React from 'react';\nimport TimePicker from 'react-time-picker';\n\nimport {\n InputWrapperClock,\n NumberInputArrowsContainer,\n NumberInputArrow,\n InputUpperLabel,\n} from './components';\n\nconst CustomInputClock = ({\n onChange,\n value,\n disabled,\n noArrows,\n height,\n color,\n fontSize,\n borderRadius,\n error,\n upperlabel,\n hours,\n maxTime,\n small,\n borderColor,\n ...rest\n}) => {\n const onArrowChange = (currVAl, coeff) => {\n if (!value) {\n onChange('00:00:01');\n } else {\n const [, currMins, currSecs] = currVAl?.split(':');\n const valueInSecs = Number(currMins) * 60 + Number(currSecs || 0);\n const updatedValueInSecs = valueInSecs + coeff;\n if (updatedValueInSecs <= (hours ? 1439 : 3599) && updatedValueInSecs >= 0) {\n onChange(\n `00:${('0' + Math.floor(updatedValueInSecs / 60)).slice(-2)}:${(\n '0' +\n (updatedValueInSecs % 60)\n ).slice(-2)}`,\n );\n }\n }\n };\n return (\n <>\n \n {upperlabel && {upperlabel}}\n {!noArrows && (\n \n onArrowChange(value, 60)}\n plus\n nonPositive={Number(value?.split(':')?.[1]) === (hours ? 23 : 59)}\n />\n onArrowChange(value, -60)}\n nonPositive={Number(value?.split(':')?.[1]) === 0}\n />\n \n )}\n \n {!noArrows && (\n \n onArrowChange(value, 1)}\n plus\n nonPositive={/0{1,2}:0{1,2}:0{1,2}/.test(value)}\n right\n />\n onArrowChange(value, -1)}\n nonPositive={/[0-9]{1,2}:59:59/.test(value)}\n right\n />\n \n )}\n \n \n );\n};\n\nexport default CustomInputClock;\n","import React, { useState, useEffect, useRef, useMemo } from 'react';\n\nimport {\n InputWrapper,\n StyledSelect,\n SelectContainer,\n SelectArrow,\n StyledOption,\n OptionContainer,\n LoadingContainer,\n} from './components';\n\nconst CustomInputDropdown = ({\n height,\n borderRadius,\n fontSize,\n value,\n onChange,\n color,\n options,\n disabled,\n optionStyles,\n menuStyles,\n valueStyles,\n optionComponent,\n placeholder,\n arrowStyles,\n returnEntire,\n borderColor,\n loading,\n ...rest\n}) => {\n const [isOpen, setisOpen] = useState(false);\n const wrapperRef = useRef(null);\n const handleClickOutside = (event) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target)) {\n setisOpen(false);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false);\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, []);\n\n const Opt = useMemo(() => {\n return (\n optionComponent ||\n (({ opt }) => (\n onChange(!returnEntire && opt?.value ? opt.value : opt)}\n >\n {opt?.label ? opt?.label : opt.toLowerCase()}\n \n ))\n );\n }, [optionComponent, onChange, optionStyles, returnEntire]);\n\n return (\n \n {\n if (!disabled) {\n setisOpen((curr) => !curr);\n }\n }}\n ref={wrapperRef}\n disabled={disabled}\n >\n \n {value || placeholder}\n \n\n \n \n {loading ? (\n Loading\n ) : (\n options?.map((opt, index) =>\n (opt?.value ? opt.value : opt) === value ? (\n false\n ) : (\n onChange(opt?.value ? opt?.value : opt)}\n />\n ),\n )\n )}\n \n \n \n );\n};\n\nexport default CustomInputDropdown;\n","import {Field} from 'formik';\nimport React, {useContext} from 'react';\nimport {BlockExerciseUnit, BlockExerciseWeightType, WorkoutBlockType,} from '../../constants/enums';\nimport {MobileContext} from '../../services/MobileContext';\nimport CustomInputClock from '../input/CustomInputClock';\nimport CustomInputDropdown from '../input/CustomInputDropdown';\nimport CustomInputNumber from '../input/CustomInputNumber';\nimport {\n DeleteExerciseIcon,\n ExerciseContent,\n ExerciseIndex,\n ExerciseLabel,\n ExerciseOpenButton,\n ExerciseTitle,\n ExerciseWrapper,\n WorkoutBlockHeaderIcon,\n WorkoutBlockOrderArrow,\n} from './components';\nimport {FieldTitle} from \"../add-exercise-modal.jsx/components\";\nimport CustomTextArea from \"../input/CustomTextArea\";\n\nconst Exercise = ({\n block,\n i,\n index,\n ex,\n swapExercises,\n setExerciseAdding,\n setFieldValue,\n touched,\n errors,\n remove,\n week,\n setDraggingBlock,\n draggingEx,\n setDraggingEx,\n draggingOverEx,\n setDraggingOverEx,\n move,\n}) => {\n const { isMobile } = useContext(MobileContext);\n return (\n <>\n {\n if (typeof draggingEx === 'number') {\n e.preventDefault();\n setDraggingOverEx(i);\n }\n }}\n onDragLeave={() => setDraggingOverEx(null)}\n onDrop={() => {\n move(draggingEx, draggingOverEx >= draggingEx ? draggingOverEx - 1 : draggingOverEx);\n setDraggingOverEx(null);\n setDraggingEx(null);\n }}\n >\n {\n setDraggingBlock(null);\n setDraggingEx(i);\n }}\n onDragEnd={() => {\n setDraggingEx(null);\n }}\n >\n \n {i + 1}\n {week && !isMobile && (\n \n )}\n \n {!week && (\n <>\n swapExercises(index, i, i - 1)}\n small\n nonClickable={i === 0}\n />\n swapExercises(index, i, i + 1)}\n nonClickable={i === block.exercises.length - 1}\n />\n \n )}\n \n setExerciseAdding({\n ...ex?.exercise,\n changeCallback: (v) => setFieldValue(`blocks[${index}].exercises[${i}].exercise`, v),\n })\n }\n >\n {(block?.type !== WorkoutBlockType.STRENGTH && (ex?.exercise?.title || 'undefined')) ||\n `Set ${i + 1}`}\n \n {!isMobile && (\n \n setExerciseAdding({\n ...ex?.exercise,\n changeCallback: (v) =>\n setFieldValue(`blocks[${index}].exercises[${i}].exercise`, v),\n })\n }\n />\n )}\n {!isMobile && block?.type !== WorkoutBlockType.STRENGTH && week && (\n remove(i)} bin />\n )}\n \n \n {block?.type === WorkoutBlockType.CLASSICSTRENGTH && (\n \n {({ field }) => (\n setFieldValue(field.name, Number(v))}\n value={field.value}\n onDecrement={() => setFieldValue(field.name, Number(field.value - 1))}\n onIncriment={() => setFieldValue(field.name, Number(field.value + 1))}\n error={\n touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.quantity\n }\n />\n )}\n \n )}\n\n {(block?.type === WorkoutBlockType.PILATESR) && (\n
\n
\n
\n Setting\n
\n
\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n error={ touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.setting}\n />\n )}\n \n
\n
\n\n
\n
\n Reps\n
\n
\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n error={ touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.reps}\n />\n )}\n \n
\n
\n\n
\n
\n Notes\n
\n
\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n error={ touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.notes}\n />\n )}\n \n
\n
\n\n
\n )}\n\n {block?.type !== WorkoutBlockType.PILATESR && \n {({ field }) => (\n setFieldValue(field.name, Number(v))}\n value={field.value}\n onDecrement={() => setFieldValue(field.name, Number(field.value - 1))}\n onIncriment={() => setFieldValue(field.name, Number(field.value + 1))}\n error={\n touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.quantity\n }\n />\n )}\n }\n {block?.type !== WorkoutBlockType.CLASSICSTRENGTH && block?.type !== WorkoutBlockType.PILATESR && (\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n placeholder=\"-unit-\"\n error={touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.unit}\n />\n )}\n \n )}\n {block?.type !== WorkoutBlockType.PILATESR && (\n {({ field }) => (\n // \n setFieldValue(field.name, Number(v))}\n value={field.value}\n onDecrement={() => setFieldValue(field.name, Number(field.value - 1))}\n onIncriment={() => setFieldValue(field.name, Number(field.value + 1))}\n error={touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.weight}\n />\n // \n )}\n )}\n {block?.type !== WorkoutBlockType.PILATESR && (\n {({ field }) => (\n setFieldValue(field.name, v)}\n value={\n [\n {\n value: BlockExerciseWeightType.KG,\n label: block.type === WorkoutBlockType.RUN ? 'km/h' : 'kg',\n },\n {\n value: BlockExerciseWeightType.PERCENTAGE,\n label: block.type === WorkoutBlockType.RUN ? 'min/km' : '%',\n },\n ].find((e) => e.value === field.value).label\n }\n error={\n touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.weightType\n }\n />\n )}\n )}\n {block.type === WorkoutBlockType.CLASSICSTRENGTH && (\n \n {({ field }) => (\n <>\n setFieldValue(field.name, v)}\n value={\n typeof field.value === 'string'\n ? field?.value\n : `00:${Math.floor(field.value / 60)}:${field.value % 60}`\n }\n error={\n touched?.blocks?.[index] && errors?.blocks?.[index]?.attributes?.[i]?.value\n }\n />\n \n )}\n \n )}\n {block?.type !== WorkoutBlockType.STRENGTH && !week && (\n remove(i)} />\n )}\n
\n \n {block?.type === WorkoutBlockType.CLASSICSTRENGTH &&
\n
\n Notes\n
\n
\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n error={ touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.notes}\n />\n )}\n \n
\n
}\n \n );\n};\n\nexport default Exercise;\n","import React, { useContext, useState } from 'react';\nimport { Field, FieldArray } from 'formik';\n\nimport CustomInput from '../input/CustomInput';\nimport CustomSearch from '../input/CustomSearch';\nimport CustomButton from '../button/CustomButton';\nimport CustomTextArea from '../input/CustomTextArea';\nimport CustomInputClock from '../input/CustomInputClock';\nimport CustomInputDropdown from '../input/CustomInputDropdown';\nimport AddExerciseModal from '../add-exercise-modal.jsx/AddExerciseModal';\nimport BlockActionsStack from './BlockActionsStack';\nimport {\n WorkoutBlockType,\n BlockExerciseUnit,\n BlockExerciseWeightType,\n} from '../../constants/enums';\n\nimport { useExercise } from '../../hooks';\n\nimport {\n WorkoutBlockForm,\n WorkoutBlockHeader,\n WorkoutBlockContent,\n AttributeWrapper,\n AttributeBullet,\n AttributeLabel,\n WorkoutBlockFooter,\n WorkoutBlockApplyButton,\n AttrCheckBox,\n ExerciseWrapper,\n ExerciseIndex,\n ExerciseContent,\n WorkoutBlockHeaderIconsWrapper,\n WorkoutBlockHeaderIcon,\n DeleteExerciseIcon,\n FlexWrapper,\n AsNeeded,\n AsNeededCheck,\n WeekBlockFooter,\n ExercisesWrapper,\n ModalCloseX,\n} from './components';\nimport Exercise from './Exercise';\nimport AddBlockCommentTooltip from './AddBlockCommentTooltip';\nimport ICONS from '../../constants/icons';\nimport { MobileContext } from '../../services/MobileContext';\n\nconst EdittingWorkoutBlock = ({\n block,\n index,\n setFieldValue,\n errors,\n touched,\n deleteSelf,\n setTouched,\n week,\n handleCancel,\n onSubmit,\n setDraggingBlock,\n}) => {\n const { exercises, exercisesLoading, searchText, setSearchText, createNewExercise, loading } =\n useExercise();\n const [exerciseAdding, setExerciseAdding] = useState(null);\n\n const swapExercises = (blockIndex, x, y) => {\n const exercises = [...block.exercises];\n const tempExercise = exercises[x];\n exercises[x] = exercises[y];\n exercises[y] = tempExercise;\n setFieldValue(`blocks[${index}].exercises`, exercises);\n };\n const { isMobile } = useContext(MobileContext);\n const [draggingEx, setDraggingEx] = useState(null);\n const [draggingOverEx, setDraggingOverEx] = useState(null);\n return (\n \n \n \n {week && !isMobile && (\n \n )}\n {block?.name}\n \n \n {isMobile ? (\n X\n ) : week ? (\n {} },\n ]}\n />\n ) : (\n \n )}\n \n \n \n {block?.attributes?.map((attr, i) => (\n \n \n {!week && }\n {(week && attr?.shortLabel) || attr?.label}\n \n\n \n {({ field }) => (\n <>\n {attr?.type === 'clock' ? (\n \n {\n setFieldValue(field.name, v);\n if (block?.exercises?.length > 0 && attr.name === 'workTime') {\n const [, workM, workS] = v?.split(':');\n const quantity = Number(workM) * 60 + Number(workS);\n block.exercises.map((ex, j) => {\n setFieldValue(`blocks[${index}].exercises[${j}].quantity`, quantity);\n });\n }\n }}\n disabled={attr?.asNeeded}\n value={attr?.asNeeded ? undefined : field.value}\n error={\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.attributes?.[i]?.value\n }\n />\n {!week && typeof attr?.asNeeded === 'boolean' && (\n \n \n setFieldValue(\n `blocks[${index}].attributes[${i}].asNeeded`,\n !attr.asNeeded,\n )\n }\n />\n As Needed\n \n )}\n \n ) : attr?.name === 'text' ? (\n setFieldValue(field.name, v)}\n value={field.value}\n errorIcon={null}\n errorBorder\n error={\n !!(\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.attributes?.[i]?.value\n )\n }\n />\n ) : (\n <>\n {\n setFieldValue(field.name, v);\n if (\n block?.exercises?.length &&\n block?.type === WorkoutBlockType.STRENGTH &&\n attr?.name === 'sets' &&\n v > 0\n ) {\n if (block?.exercises?.length > v) {\n setFieldValue(\n `blocks[${index}].exercises`,\n block?.exercises?.slice(0, v),\n );\n } else if (block?.exercises?.length < v) {\n const exercisesToAdd = new Array(v - block?.exercises?.length).fill({\n ...block?.exercises?.[0],\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n });\n setFieldValue(`blocks[${index}].exercises`, [\n ...block?.exercises,\n ...exercisesToAdd,\n ]);\n }\n }\n }}\n outlined\n height={week ? '3.2rem' : '4rem'}\n borderRadius=\"8px\"\n value={field.value}\n style={{\n minWidth: week ? '5.6rem' : '9.4rem',\n width: week ? '5.6rem' : '9.4rem',\n margin: 0,\n textAlign: attr?.type === 'text' ? 'left' : 'center',\n outline: 'none',\n fontFamily: 'Space-r',\n flexGrow: attr?.type === 'text' ? '1' : '0',\n maxHeight: week ? '100%' : '4rem',\n minHeight: week ? '100%' : '4rem',\n }}\n borderColor=\"transparent\"\n focusBorderColor=\"transparent\"\n backgroundColor=\"#f1f0f0cc\"\n error={\n touched?.blocks?.[index] &&\n !!errors?.blocks?.[index]?.attributes?.[i]?.value\n }\n errorIcon={false}\n />\n \n )}\n \n )}\n \n \n ))}\n {block?.type !== WorkoutBlockType.REST && block?.type !== WorkoutBlockType.CUSTOM && (\n <>\n (\n \n {\n setExerciseAdding(null);\n setSearchText(initialSearch);\n }}\n submitModal={async (v, edited, editedGlobal) => {\n const exercise = await createNewExercise(v);\n if (edited && editedGlobal) {\n const exerciseIndex = block.exercises.findIndex(\n (e) => e.exercise.id === exercise.editedExercise,\n );\n setFieldValue(\n `blocks[${index}].exercises[${exerciseIndex}].exercise`,\n exercise,\n );\n return;\n } else if (edited) {\n return;\n }\n if (block?.type === WorkoutBlockType.STRENGTH) {\n const setsQuantity = block?.attributes?.find(\n (x) => (x.name = 'sets'),\n )?.value;\n const exercisesToAdd = new Array(Number(setsQuantity)).fill({\n exercise: v,\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n });\n setFieldValue(`blocks[${index}].exercises`, exercisesToAdd);\n } else {\n const numberOfSets =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH ? 3 : null;\n const restTime =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH ? '00:00:30' : null;\n push({\n exercise: { ...v, ...exercise },\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n numberOfSets,\n restTime,\n });\n }\n setExerciseAdding(null);\n setSearchText('');\n }}\n initialValues={exerciseAdding}\n loading={loading}\n />\n {block?.type === WorkoutBlockType.STRENGTH && !!block?.exercises?.length && (\n \n \n \n \n {block?.exercises?.[0].exercise?.title || false}\n \n {!isMobile && (\n setFieldValue(`blocks[${index}].exercises`, [])}\n />\n )}\n \n \n )}\n\n {block?.exercises?.map((ex, i) => (\n \n ))}\n\n {/* {block?.uniqueExercises &&\n block?.exercises?.map((ex, subIndex) =>\n ex.exercise ? (\n {\n const { exercise, ...rest } = v;\n setFieldValue(`blocks[${index}].exercises[${subIndex}]`, rest);\n }}\n />\n ) : (\n \n \n {block?.indexPrefix} {subIndex + 1}\n \n \n {(block?.type !== WorkoutBlockType.STRENGTH ||\n !block?.exercises?.length) && (\n {\n setFieldValue(`blocks[${index}].exercises[${subIndex}]`, {\n exercise: v,\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n });\n }}\n createNew={(searchInput) =>\n setExerciseAdding({ title: searchInput, searchText })\n }\n viewOption={(option) =>\n setExerciseAdding({ ...option, searchText })\n }\n error={Boolean(\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.exercises[subIndex],\n )}\n />\n )}\n \n \n ),\n )} */}\n {/* {!block?.uniqueExercises && ( */}\n {!isMobile && (\n {\n if (typeof draggingEx === 'number') {\n e.preventDefault();\n setDraggingOverEx(-1);\n }\n }}\n onDragLeave={() => setDraggingOverEx(null)}\n onDrop={() => {\n move(draggingEx, block?.exercises?.length);\n setDraggingOverEx(null);\n setDraggingEx(null);\n }}\n >\n \n {block?.type !== WorkoutBlockType.STRENGTH && block?.exercises?.length + 1}\n \n {block?.type === WorkoutBlockType.RUN ? (\n \n {\n push({\n exercise: v,\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n });\n }}\n options={exercises?.getExercises\n ?.filter(\n (x) =>\n !!{ run: true, walk: true, rest: true }[x.title?.toLowerCase()] &&\n !x.coach,\n )\n .map((ex) => ({\n ...ex,\n label: ex.title,\n value: ex.uid,\n }))}\n style={{\n margin: '0',\n fontSize: '1.4rem',\n border: 'none',\n maxHeight: week ? '2.4rem' : '4rem',\n minHeight: week ? '2.4rem' : '4rem',\n width: 'auto',\n flexGrow: 1,\n }}\n error={\n !block?.exercises?.length &&\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.exercises\n }\n />\n \n ) : (\n \n {(block?.type !== WorkoutBlockType.STRENGTH ||\n !block?.exercises?.length) && (\n {\n if (action === 'input-change' || action === 'set-value') {\n setSearchText(v);\n }\n }}\n menuStyle={\n week\n ? {\n maxWidth: 'Calc(100% + 2.4rem)',\n minWidth: 'Calc(100% + 2.4rem)',\n left: '-1.6rem',\n }\n : {}\n }\n onSelect={(v) => {\n if (block?.type === WorkoutBlockType.STRENGTH) {\n const setsQuantity = block?.attributes?.find(\n (x) => x.name === 'sets',\n )?.value;\n const exercisesToAdd = new Array(Number(setsQuantity)).fill({\n exercise: v,\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.REPS,\n weightType: BlockExerciseWeightType.KG,\n });\n setFieldValue(`blocks[${index}].exercises`, exercisesToAdd);\n } else {\n const [, workM, workS] =\n block?.type === WorkoutBlockType.INTERVAL\n ? block?.attributes\n ?.find((x) => x.name === 'workTime')\n ?.value?.split(':')\n : '';\n const quantity =\n block?.type === WorkoutBlockType.INTERVAL\n ? workM * 60 + Number(workS)\n : 1;\n const unit =\n block.type === WorkoutBlockType.RUN ||\n block.type === WorkoutBlockType.INTERVAL\n ? BlockExerciseUnit.SECONDS\n : BlockExerciseUnit.REPS;\n const numberOfSets =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH ? 3 : null;\n const restTime =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH\n ? '00:00:30'\n : null;\n push({\n exercise: v,\n quantity,\n weight: 0,\n unit,\n weightType: BlockExerciseWeightType.KG,\n numberOfSets,\n restTime,\n });\n }\n }}\n createNew={(searchInput) =>\n setExerciseAdding({ title: searchInput, searchText })\n }\n viewOption={(option) => setExerciseAdding({ ...option, searchText })}\n options={exercises?.getExercises || []}\n value={searchText || ''}\n style={{\n margin: '0',\n fontSize: '1.4rem',\n border: 'none',\n maxHeight: week ? '2.4rem' : '4rem',\n minHeight: week ? '2.4rem' : '4rem',\n }}\n loading={exercisesLoading}\n error={\n !block?.exercises?.length &&\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.exercises\n }\n />\n )}\n \n )}\n \n )}\n {/* )} */}\n \n )}\n >\n {!week && (\n \n \n \n Comments & Indications\n \n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n error={touched?.blocks?.[index] && errors?.blocks?.[index]?.comment}\n />\n )}\n \n \n )}\n \n )}\n \n
\n {block?.type !== 'REST' && (\n <>\n {index === 0 && (\n \n {({ field }) => (\n \n setFieldValue(field.name, !field.value)}\n />\n Mark this block as Warmup\n \n )}\n \n )}\n \n {({ field }) => (\n \n setFieldValue(field.name, !field.value)}\n />\n Request Video\n \n )}\n \n \n )}\n
\n {!week && (\n \n {\n await setTouched({ blocks: { [index]: true } });\n const invalid = !!errors?.blocks?.[index];\n if (!invalid) {\n setFieldValue('editingBlockIndex', null);\n }\n }}\n >\n Apply\n \n \n )}\n
\n
\n {week && (\n \n setFieldValue(`blocks[${index}].comment`, v)}\n isMobile={isMobile}\n />\n {!isMobile && (\n {\n await setTouched({ blocks: { [index]: true } });\n const invalid = !!errors?.blocks?.[index];\n if (!invalid) {\n setFieldValue('editingBlockIndex', null);\n }\n }}\n >\n Done\n \n )}\n \n )}\n {isMobile && (\n \n \n Save Changes\n \n \n )}\n
\n );\n};\n\nexport default EdittingWorkoutBlock;\n","import { Field, Form, Formik } from 'formik';\nimport React from 'react';\nimport Modal from 'react-modal';\nimport EdittingWorkoutBlock from '../add-calendar-modal/EdittingWorkoutBlockV2';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '111111',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n overflow: 'hidden auto',\n },\n content: {\n background: 'transparent',\n zIndex: '11111111',\n width: 'Calc(100% - 20px)',\n maxWidth: '588px',\n minWidth: '300px',\n height: 'fit-content',\n top: '10px',\n minHeight: 'Calc(100vh - 20px)',\n display: 'flex',\n alignItems: 'center',\n left: 'max(10px, Calc(50% - 294px))',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n pointerEvents: 'all',\n },\n};\n\nconst WorkoutBlockEditModal = ({ modalOpen, closeModal, submitModal, initialValues }) => {\n return (\n \n \n {({ setFieldValue, values }) => (\n
\n \n {({ field }) => (\n {}}\n deleteSelf={() => {}}\n preventExerciseAdding\n week\n contentPadding=\"16px\"\n handleCancel={closeModal}\n onSubmit={() => submitModal(values)}\n />\n )}\n \n
\n )}\n
\n \n );\n};\n\nexport default WorkoutBlockEditModal;\n","import React, { useMemo, useState } from 'react';\nimport { CalendarType } from '../../constants/enums';\nimport { useCoachProgram, useUtils } from '../../hooks';\nimport WorkoutBlock from '../add-calendar-modal/WorkoutBlock';\nimport AreYouSureModal from '../are-you-sure-modal/AreYouSureModal';\n\nimport {\n WorkoutPageWrapper,\n WorkoutPageHeader,\n WorkoutPageBackArrow,\n WorkoutPageAvatar,\n WorkoutPageImg,\n WorkoutPageTraineeName,\n WorkoutPageName,\n WorkoutPageContent,\n WorkoutPageMessage,\n WorkoutPageMessageHeader,\n WorkoutPageMessageIcon,\n WorkoutPageMessageText,\n} from './components';\nimport WorkoutBlockEditModal from './WorkoutBlockEditModal';\n\nconst RespWorkoutPage = ({ trainee, back, day, coachProgramUid, refetch }) => {\n const { getWorkoutBlocksByWorkout } = useUtils();\n const { saveWorkoutDay } = useCoachProgram({ coachProgramUid });\n const [toBeDeleted, setToBeDeleted] = useState(null);\n const [edittingBlock, setEdittingBlock] = useState(null);\n const iniatialBlocks = useMemo(() => getWorkoutBlocksByWorkout(day?.workout), [\n day,\n getWorkoutBlocksByWorkout,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n name: day?.workout?.name,\n beforeMessage: day?.workout?.beforeMessage,\n afterMessage: day?.workout?.afterMessage,\n type: CalendarType.WORKOUT,\n blocks: iniatialBlocks || [],\n };\n }, [day, iniatialBlocks]);\n\n return (\n \n \n \n \n \n \n \n {trainee?.name}\n {day?.workout?.name}\n\n {edittingBlock && (\n setEdittingBlock(null)}\n initialValues={initialValues}\n submitModal={(v) => {\n saveWorkoutDay(day?.programDay, v, day?.workout?.uid).then(refetch);\n setEdittingBlock(null);\n }}\n />\n )}\n {toBeDeleted && (\n {\n const blocks = [...initialValues?.blocks];\n blocks.splice(toBeDeleted?.index, 1);\n saveWorkoutDay(day?.programDay, { ...initialValues, blocks }, day?.workout?.uid).then(\n refetch,\n );\n }}\n closeModal={() => setToBeDeleted(null)}\n />\n )}\n \n {initialValues?.beforeMessage && (\n \n \n \n MESSAGE BEFORE WORKOUT\n \n {initialValues?.beforeMessage}\n \n )}\n {initialValues?.blocks?.map((block, i) => (\n setToBeDeleted({ name: block?.type, index: i })}\n setEditting={() => setEdittingBlock(i + 1)}\n />\n ))}\n {initialValues?.afterMessage && (\n \n \n \n MESSAGE AFTER WORKOUT\n \n {initialValues?.afterMessage}\n \n )}\n \n \n );\n};\n\nexport default RespWorkoutPage;\n","import React, { useCallback, useContext, useMemo, useState } from 'react';\nimport moment from 'moment';\nimport { useQuery } from '@apollo/react-hooks';\nimport { getCoachWorkoutsQuery } from '@witness/graphql';\nimport { useAlert } from 'react-alert';\nimport { Link, useHistory } from 'react-router-dom';\nimport timezones from 'timezones-list';\n\nimport CustomButton from '../button/CustomButton';\nimport MagicScroll from '../magic-scroll/MagicScroll';\nimport {\n ProgramRequestsContainer,\n ProgramRequestsHeader,\n ProgramRequestsList,\n ProgramRequestsNavBar,\n ProgramRequestsSeeAll,\n WorkoutTable,\n WorkoutTh,\n ThText,\n WorkoutTd,\n TdText,\n StatusIcon,\n HC,\n AttachmentsCount,\n AttachmentIcon,\n TabContainer,\n TabName,\n TabValue,\n ActiveBorder,\n Avatar,\n WorkoutInfoWrapper,\n TraineeInfoWrapper,\n TraineeName,\n WorkoutNameWrapper,\n DumbellIcon,\n} from './components';\nimport Loader from '../../components/loader/Loader';\nimport EmptyTemplate from '../empty-template/EmptyTemplate';\nimport ICONS from '../../constants/icons';\nimport CalendarResultsModal from '../calendar-results-modal/CalendarResultsModal';\nimport { calculateLocalTimeRelevantToTimezone } from '../../services/utils';\nimport { MobileContext } from '../../services/MobileContext';\nimport RespWorkoutInfo from './RespWorkoutInfo';\nimport RespWorkoutPage from './RespWorkoutPage';\nimport { OrganizationContext } from '../../services/organizationContext';\n\nconst weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n\nconst statusNames = {\n NEW: 'Planned',\n DONE: 'Done',\n UNDONE: 'Missed',\n};\n\nconst Item = ({ item, active }) => (\n \n {active && }\n {weekDays[item.getDay()]}\n {item.getDate()}\n \n);\n\nconst getWeek = (middleDate) => {\n const modifiers = [-3, -2, -1, 0, 1, 2, 3];\n\n return modifiers.map((mod) => {\n const date = new Date(middleDate);\n date.setDate(date.getDate() + mod);\n return date;\n });\n};\n\nconst keyExtractor = (item) => moment(item).format('YYYY/MM/DD');\n\nconst countWorkoutAttachments = (workout) => {\n return workout?.workoutBlocks?.reduce((blockAcc, block) => {\n const x = block.results?.reduce((resutlAcc, result) => {\n const y = result.blockAttachment?.files?.length;\n\n return resutlAcc + (y || 0);\n }, 0);\n\n return blockAcc + (x || 0);\n }, 0);\n};\n\nconst DashboardWorkoutList = () => {\n const { isMobile } = useContext(MobileContext);\n const { isOrganization } = useContext(OrganizationContext);\n const history = useHistory();\n\n const [items, setItems] = useState(() => {\n const date = new Date();\n const thisWeek = getWeek(date);\n\n date.setDate(date.getDate() - 7);\n const lastWeek = getWeek(date);\n\n date.setDate(date.getDate() + 14);\n const nextWeek = getWeek(date);\n return [...lastWeek, ...thisWeek, ...nextWeek];\n });\n\n const [firstItem, setFirstItem] = useState(items[7]);\n\n const nextDay = useCallback(() => {\n const key = keyExtractor(firstItem);\n const currentIndex = items.findIndex((item) => keyExtractor(item) === key);\n setFirstItem(items[currentIndex + 1]);\n\n if (currentIndex === items.length - 7) {\n const lastDate = items[items.length - 1];\n const newWeekMid = new Date(lastDate);\n newWeekMid.setDate(newWeekMid.getDate() + 4);\n const newWeek = getWeek(newWeekMid);\n\n setItems([...items, ...newWeek]);\n }\n }, [items, firstItem]);\n\n const prevDay = useCallback(() => {\n const key = keyExtractor(firstItem);\n const currentIndex = items.findIndex((item) => keyExtractor(item) === key);\n setFirstItem(items[currentIndex - 1]);\n\n if (currentIndex === 1) {\n const firstDate = items[0];\n const newWeekMid = new Date(firstDate);\n newWeekMid.setDate(newWeekMid.getDate() - 4);\n const newWeek = getWeek(newWeekMid);\n\n setItems([...newWeek, ...items]);\n }\n }, [items, firstItem]);\n\n const handleTabClick = useCallback(\n (item) => {\n const key = keyExtractor(item);\n const newIndex = items.findIndex((i) => keyExtractor(i) === key) - 3;\n setFirstItem(items[newIndex]);\n\n if (newIndex < 4) {\n const firstDate = items[0];\n const newWeekMid = new Date(firstDate);\n newWeekMid.setDate(newWeekMid.getDate() - 4);\n const newWeek = getWeek(newWeekMid);\n\n setItems([...newWeek, ...items]);\n }\n\n if (newIndex > items.length - 8) {\n const lastDate = items[items.length - 1];\n const newWeekMid = new Date(lastDate);\n newWeekMid.setDate(newWeekMid.getDate() + 4);\n const newWeek = getWeek(newWeekMid);\n\n setItems([...items, ...newWeek]);\n }\n },\n [items],\n );\n\n const activeDate = useMemo(() => {\n const active = new Date(firstItem);\n active.setDate(active.getDate() + 3);\n return moment(active).format('YYYY/MM/DD');\n }, [firstItem]);\n\n const { data, loading, refetch } = useQuery(getCoachWorkoutsQuery, {\n variables: {\n record: {\n date: activeDate,\n },\n },\n fetchPolicy: 'no-cache',\n skip: isOrganization,\n });\n\n const days = useMemo(() => {\n if (Array.isArray(data?.getCoachWorkouts)) {\n return data.getCoachWorkouts.reduce((acc, item) => {\n const _ = item?.calendar?.forEach((subItem) => {\n if (subItem.type === 'WORKOUT') {\n acc[subItem.uid] = subItem;\n }\n });\n return acc;\n }, {});\n }\n\n return {};\n }, [data]);\n\n const dateIndicator = useMemo(() => moment(activeDate).format('MMMM YYYY'), [activeDate]);\n\n const [resultModalDay, setResultModalDay] = useState({ day: '', name: '' });\n const [openWorkout, setOpenWorkout] = useState(null);\n\n const alert = useAlert();\n\n const WorkoutRow = useCallback(\n ({ item, data, coachProgramUid }) => {\n console.log('workout', item);\n if (!((item.group && item.group.name) || item.trainee?.fullName)) {\n return <>;\n }\n // temp1.calendar[0].type\n const name = item.group ? item.group.name : item.trainee?.fullName;\n\n const [first, last] = name?.split(' ') || ['', ''];\n const initials = `${first ? first[0] : ''}${last ? last[0] : first[0]}`;\n\n const avatarUrl = item.group\n ? item.group.groupImage?.compressedUrl || item.group.groupImage?.url\n : item.trainee.avatar?.compressedUrl || item.trainee.avatar?.url;\n\n const workout = data?.workout;\n\n const status = statusNames[workout?.status?.[0]?.type];\n\n const workoutName = workout?.name;\n\n const count = countWorkoutAttachments(workout);\n\n if (isMobile) {\n return (\n \n setOpenWorkout({\n trainee: { name, avatarUrl, initials },\n workout,\n day: data?.uid,\n coachProgramUid,\n })\n }\n />\n );\n }\n\n return (\n \n \n \n \n {status || statusNames.NEW}\n \n \n \n
\n \n {initials}\n \n {name}\n
\n
\n \n {workoutName}\n \n \n \n \n {count ? '+' + count :
-
}\n
\n\n {!!count && }\n\n \n setResultModalDay({\n day: data?.uid,\n name,\n })\n }\n >\n View\n \n
\n
\n \n );\n },\n [isMobile],\n );\n\n const OnlineMeetingRow = useCallback(\n ({ item, data }) => {\n const name = item.group ? item.group.name : item.trainee?.fullName;\n\n const [first, last] = name?.split(' ') || ['', ''];\n const initials = `${first ? first[0] : ''}${last ? last[0] : first[0]}`;\n\n const avatarUrl = item.group\n ? item.group.groupImage?.compressedUrl || item.group.groupImage?.url\n : item.trainee.avatar?.compressedUrl || item.trainee.avatar?.url;\n\n const isOnline = !!data.onlineMeeting;\n const meeting = isOnline ? data.onlineMeeting : data.faceMeeting;\n const time = calculateLocalTimeRelevantToTimezone(meeting.date, meeting.timezone);\n const zone = timezones.find((tz) => tz.tzCode === meeting.timezone);\n\n if (isMobile) {\n return (\n history.push(`/video-call/${meeting.uid}`)}\n buttonText={isOnline ? 'Join Call' : ''}\n location={!isOnline ? meeting.location : ''}\n />\n );\n }\n\n return (\n \n \n \n {isOnline ? 'Video call' : 'Meeting'}\n \n \n \n
\n \n {initials}\n \n {name}\n
\n
\n \n \n {time} (GMT{zone.utc})\n \n \n \n \n {isOnline ? (\n \n \n Join Call\n \n \n ) : (\n meeting.location\n )}\n \n \n \n );\n },\n [history, isMobile],\n );\n\n return (\n \n {resultModalDay.day && (\n setResultModalDay({ day: '', name: '' })}\n alert={alert}\n refetchProgram={refetch}\n />\n )}\n\n {isMobile && openWorkout && (\n setOpenWorkout(null)}\n >\n )}\n\n \n TRAINEE'S WORKOUTS\n {dateIndicator}\n \n \n \n \n\n \n {loading && (\n \n \n \n )}\n {!loading && Array.isArray(data?.getCoachWorkouts) && data.getCoachWorkouts.length > 0 && (\n \n {!isMobile && (\n \n \n \n Status\n {/* */}\n \n \n Full Name\n {/* */}\n \n \n Workout\n {/* */}\n \n \n Attached Files\n {/* */}\n \n \n \n )}\n \n {data.getCoachWorkouts.map((item) => {\n return item?.calendar?.map((calendar) => {\n if (calendar.type === 'WORKOUT') {\n return (\n \n );\n }\n\n return ;\n });\n })}\n \n \n )}\n\n {!loading && (!Array.isArray(data?.getCoachWorkouts) || !data?.getCoachWorkouts.length) && (\n \n )}\n \n \n );\n};\n\nexport default DashboardWorkoutList;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 7.5%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Space-r')};\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n font-size: 1.8rem;\n padding: 4px 28px;\n min-height: 28px;\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n text-align: ${({ centered }) => (centered ? 'center' : 'left')};\n`;\n\nexport const ModalContent = styled.div`\n width: 100%;\n display: flex;\n height: 100%;\n flex-grow: 1;\n`;\n\nexport const ModalContentMain = styled.div`\n flex-grow: 1;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalSubHeading = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: Roboto-r;\n font-size: 1.6rem;\n line-height: 2.4rem;\n justify-content: center;\n color: #848181;\n`;\n\nexport const ArrowIcon = styled.div`\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: #d2d1d1;\n background-image: url(${ICONS.ArrowDownWhite});\n background-position: center;\n background-size: 60%;\n transform: rotate(90deg);\n background-repeat: no-repeat;\n margin: 3.5rem auto 2rem;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const ModalRow = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid #05000033;\n flex-grow: ${({ grow }) => (grow ? '1' : 'unset')};\n height: ${({ upper }) => (upper ? '18.7%' : 'auto')};\n min-height: ${({ bottom }) => (!bottom ? '144px' : '116px')};\n max-height: 33%;\n position: relative;\n float: left;\n &:last-child {\n border-bottom: none;\n }\n`;\n\nexport const RowTitle = styled.div`\n position: absolute;\n height: 3.2rem;\n z-index: 1111;\n top: -16px;\n left: Calc(50% - 88px);\n background: #ffffff;\n width: 176px;\n border: 0.5px solid #05000033;\n border-radius: 8px;\n font-family: Space-r;\n font-size: 1.4rem;\n line-height: 3.2rem;\n text-align: center;\n background: #fafafa;\n`;\n\nexport const UpperRowCell = styled.div`\n flex-grow: 1;\n min-width: Calc(100% / 3 - 0.5px);\n border-right: ${({ mid }) => (mid ? '1px solid #05000033' : 'none')};\n border-left: ${({ mid }) => (mid ? '1px solid #05000033' : 'none')};\n background-image: ${({ background }) => `url(${background})`};\n background-size: cover;\n background-position: center;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding-bottom: ${({ mid }) => (mid ? '1.6rem' : '0')};\n`;\n\nexport const UpperRowCellLine = styled.div`\n width: 1px;\n height: 100%;\n background: #05000033;\n margin: auto;\n`;\n\nexport const ProfilePic = styled.div`\n width: 5.6rem;\n height: 5.6rem;\n border: 4px solid #f1f0f0;\n background: #d8d8d8;\n border-radius: 50%;\n background-image: ${({ image }) => `url(${image})`};\n background-size: cover;\n background-position: center;\n margin: Calc(1.5vh - 4.4px) auto Calc(1.5vh - 6.4px);\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#ffffff')};\n text-transform: uppercase;\n font-size: 1.4rem;\n\n @media (max-width: 600px) {\n width: 80px;\n height: 80px;\n font-size: 20px;\n margin: 0;\n }\n`;\n\nexport const ProfileName = styled.div`\n width: 100%;\n font-family: Gotham-r;\n line-height: max(20px, Calc(2vh - 5.8px));\n color: #4a4a4a;\n letter-spacing: 1px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: Calc(1.5vh - 6.4px);\n\n @media (max-width: 600px) {\n align-items: unset;\n margin-bottom: 8px;\n justify-content: unset;\n font-size: 16px;\n }\n`;\n\nexport const GenderIcon = styled.div`\n width: 1.4rem;\n height: 1.4rem;\n background-image: ${({ gender }) =>\n gender === 'MALE' ? `url(${ICONS.Male})` : `url(${ICONS.Female})`};\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n margin: 0 6px;\n\n @media (max-width: 600px) {\n justify-content: unset;\n width: 16px;\n height: 16px;\n }\n`;\n\nexport const ParameterRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n @media (max-width: 600px) {\n justify-content: unset;\n }\n`;\n\nexport const ParameterCell = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.2rem;\n font-family: ${({ val }) => (val ? 'Space-b' : 'Roboto-l')};\n color: ${({ val }) => (val ? '#323232' : '#464646')};\n margin: ${({ val }) => (val ? '0 8px' : '0 1.6')};\n\n @media (max-width: 600px) {\n font-size: 13px;\n }\n`;\n\nexport const MiddleRowCell = styled.div`\n flex: 1;\n min-width: Calc(100% / 6);\n flex-grow: ${({ grow }) => (grow ? grow : 1)};\n border-right: ${({ last }) => (last ? 'none' : '1px solid #05000033')};\n height: 100%;\n padding: Calc(5vh - 8px) 0 Calc(2vh - 2.2px);\n`;\n\nexport const BottomRowCell = styled.div`\n flex: 1;\n border-right: ${({ last }) => (last ? 'none' : '1px solid #05000033')};\n flex-grow: ${({ grow }) => (grow ? grow : 1)};\n height: 100%;\n text-align: center;\n font-size: 1.4rem;\n line-height: 2.1rem;\n font-family: Roboto-l;\n min-width: Calc(100% / 6);\n padding: ${({ grow }) => (grow === '4' ? '32px 44px 12px' : 0)};\n background: ${({ grow }) => (!grow ? '#fafafa' : 'transparent')};\n`;\n\nexport const RespModalFooterWrapper = styled.div`\n @media (max-width: 600px) {\n width: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n }\n`;\n\nexport const ModalFooter = styled.div`\n text-align: center;\n padding: 1.2% 0 1.5%;\n border-top: 1px solid #05000033;\n\n @media (max-width: 600px) {\n text-align: left;\n padding: 0 0 2.4rem;\n border-top: none;\n background-color: #fff;\n }\n`;\n\nexport const ModalButtonsRow = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n height: max(40px, 5.12vh);\n margin: 1.1% 0;\n\n @media (max-width: 600px) {\n flex-wrap: wrap;\n height: unset;\n }\n`;\nexport const ModalButtonWrapper = styled.div`\n width: 195px;\n height: 100%;\n margin: 0 24px;\n\n @media (max-width: 600px) {\n height: 48px;\n flex: 1;\n margin: ${({ margin }) => margin};\n }\n`;\n\nexport const TotalPriceGreen = styled.span`\n font-family: Space-b;\n font-size: 2.4rem;\n line-height: 2.4rem;\n color: #00b972;\n padding: 2px 12px;\n\n @media (max-width: 600px) {\n padding: 0 8px;\n font-size: 18px;\n }\n`;\n\nexport const TotalPriceBold = styled.span`\n font-family: Gotham-r;\n font-size: 1.7rem;\n line-height: 2.4rem;\n letter-spacing: 0.6px;\n color: #373333;\n & > span.declined {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: ${({ theme }) => theme.color.error};\n }\n & > span.approved {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: #00b972;\n }\n\n @media (max-width: 600px) {\n margin-right: auto;\n font-size: 13px;\n }\n`;\n\nexport const MiddleRowCellIcon = styled.div`\n width: max(28px, Calc(4.3vh - 10px));\n height: max(28px, Calc(4.3vh - 10px));\n background-image: ${({ icon }) => `url(${icon})`};\n border: 0.5px solid rgba(0, 185, 114, 0.6);\n border-radius: 6px;\n margin: auto;\n background-repeat: no-repeat;\n background-position: center;\n\n @media (max-width: 600px) {\n width: 40px;\n min-width: 40px;\n height: 40px;\n margin: unset;\n }\n`;\n\nexport const MiddleRowCellKey = styled.div`\n width: 100%;\n text-align: center;\n font-size: 1.4rem;\n padding: Calc(1.5vh - 4.4px) min(26px, Calc(4.5vh - 18px)) Calc(0.75vh - 2.2px);\n\n @media (max-width: 600px) {\n text-align: left;\n font-family: Roboto-r;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 16px;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n padding: 0 0 6px;\n }\n`;\n\nexport const MiddleRowCellValue = styled.div`\n width: 100%;\n text-align: center;\n font-size: 1.4rem;\n font-family: Roboto-l;\n padding: 0 min(26px, Calc(4.5vh - 18px));\n line-height: max(18px, Calc(2vh - 5.8px));\n\n @media (max-width: 600px) {\n /* font-family: Roboto-r; */\n font-size: 14px;\n /* font-weight: 300; */\n font-stretch: normal;\n font-style: normal;\n line-height: 21px;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n padding: 0 0 6px;\n }\n`;\n\nexport const ModalMain = styled.div`\n padding: ${({ padding }) => (padding ? padding : '3.6rem')};\n`;\nexport const ModalTextArea = styled.div`\n max-height: 100%;\n width: 100%;\n`;\n\nexport const FlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div`\n width: Calc(50% - 12px);\n height: 4.8rem;\n margin-top: ${({ marginTop }) => (marginTop ? marginTop : '1.6rem')};\n`;\n\n// group parts\n\nexport const ModalGroupSide = styled.div`\n width: 32%;\n background: #f1f0f0;\n height: 100%;\n padding: 2.4rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n border-right: 1px solid #05000033;\n`;\n\nexport const GroupDetailsHeading = styled.div`\n width: 100%;\n background: rgba(255, 255, 255, 0.6);\n font-family: Space-r;\n font-size: 1.6rem;\n line-height: 2.4rem;\n letter-spacing: 0.1rem;\n padding: 1.6rem;\n text-align: center;\n border-radius: 8px;\n`;\n\nexport const GroupImageWrapper = styled.div`\n width: 11.2rem;\n height: 11.2rem;\n border-radius: 50%;\n background: #ffffff;\n padding: 0.4rem;\n border: 4px solid ${({ theme }) => theme.color.primary};\n margin: 2.4rem 2.4rem 2rem;\n`;\n\nexport const GroupImage = styled.div`\n width: 100%;\n height: 100%;\n background: #f1f0f0;\n background-image: url(${({ groupImage }) => groupImage});\n background-size: cover;\n background-position: center;\n border-radius: 50%;\n`;\n\nexport const GroupName = styled.div`\n font-family: Gotham-r;\n font-size: 1.8rem;\n line-height: 2.4rem;\n color: #4a4a4a;\n margin-bottom: 2rem;\n letter-spacing: 0.1rem;\n min-height: 2.4rem;\n`;\n\nexport const GroupParticipants = styled.div`\n font-family: Roboto-r;\n font-size: 1.4rem;\n line-height: 2.4rem;\n color: #323232;\n margin-bottom: 2.8rem;\n & > span {\n line-height: 2.4rem;\n color: #464646;\n font-family: Space-b;\n font-size: 1.6rem;\n padding: 0 1.6rem;\n }\n`;\n\nexport const GroupAbout = styled.div`\n font-family: Roboto-l;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #050000;\n padding: 0 2.2rem;\n flex-grow: 1;\n display: flex;\n align-items: center;\n text-align: center;\n`;\n\nexport const TicketIcon = styled.div`\n width: 21.3rem;\n height: 12.9rem;\n background-image: url(${ICONS.Ticket});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n margin: 0 6px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n z-index: 1;\n\n @media (max-width: 600px) {\n width: 109px;\n height: 60px;\n }\n`;\n\nexport const TicketDigits = styled.span`\n height: 2.9rem;\n width: 11%.4rem;\n color: #050000;\n font-family: Space-b;\n font-size: 2rem;\n font-weight: bold;\n letter-spacing: 0.2rem;\n line-height: 2.9rem;\n\n @media (max-width: 600px) {\n height: unset;\n width: unset;\n font-size: 12px;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.95px;\n text-align: right;\n color: #000000;\n }\n`;\n\nexport const TicketNote = styled.span`\n height: 2.4rem;\n width: 6.7rem;\n opacity: 0.6;\n color: #373333;\n font-family: 'Space-r';\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 2.4rem;\n text-align: center;\n\n @media (max-width: 600px) {\n height: unset;\n width: unset;\n font-size: 9px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: right;\n color: #000000;\n }\n`;\n\n// mobile\nexport const RespContainer = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n background-color: rgb(247, 246, 246);\n overflow-y: auto;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n`;\n\nexport const BackIcon = styled.img`\n object-fit: contain;\n width: 24px;\n`;\n\nexport const RespModalHeader = styled.header`\n height: 60px;\n display: flex;\n align-items: center;\n padding: 16px 16px 20px;\n text-transform: uppercase;\n background-color: #fff;\n`;\n\nexport const ModalTitle = styled.h2`\n margin-left: 34px;\n font-family: Space-r;\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: 1px;\n text-align: left;\n color: #050000;\n`;\n\nexport const BannerWrapper = styled.div`\n background-image: url(${ICONS.LeftCellBackground});\n background-size: cover;\n background-position: center;\n min-height: 120px;\n display: flex;\n flex-wrap: wrap;\n`;\n\nexport const Box = styled.div`\n flex: 1 0 50%;\n height: 50%;\n border: 1px solid rgba(0, 0, 0, 0.2);\n &:nth-child(1) {\n border-left: none;\n border-top: none;\n }\n &:nth-child(2) {\n border-left: none;\n border-right: none;\n border-top: none;\n }\n &:nth-child(3) {\n border: none;\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n }\n &:nth-child(4) {\n border: none;\n }\n`;\n\nexport const AvatarRow = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: -40px;\n margin-bottom: 24px;\n`;\n\nexport const RespContentContainer = styled.div`\n padding: 0 32px;\n`;\n\nexport const BlockLabelContainer = styled.div`\n height: 32px;\n position: relative;\n padding: 0 12px 0 25px;\n border-radius: 8px;\n border: solid 0.5px rgba(0, 0, 0, 0.2);\n background-color: #ffffff;\n font-family: Space-r;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: center;\n color: #373333;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 0 32px 0 24px;\n margin-top: ${({ mt }) => mt || 0}px;\n margin-bottom: ${({ mb }) => mb || 0}px;\n\n &::after {\n z-index: -1;\n content: '';\n width: 100vw;\n height: 0.5px;\n background-color: rgba(0, 0, 0, 0.2);\n position: absolute;\n top: calc(50% - (0.5px / 2));\n left: -32px;\n }\n`;\n\nexport const LabelIcon = styled.img`\n width: 20px;\n height: 20px;\n transform: ${({ isOpen }) => (isOpen ? 'rotate(0deg)' : 'rotate(180deg)')};\n`;\n\nexport const LabelContentContainer = styled.div`\n margin: 32px 0 40px;\n`;\n\nexport const FitnessDataRow = styled.div`\n display: flex;\n margin: 0 24px 24px;\n`;\n\nexport const FitnessDataWrapper = styled.div`\n margin-left: 16px;\n`;\n\nexport const FitnessDataLabel = styled.div`\n font-family: Roboto-r;\n margin-bottom: 6px;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n`;\n\nexport const RespNote = styled.div`\n font-family: Roboto-r;\n font-size: 14px;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n`;\n\nexport const PriceRow = styled.div`\n padding: 16px 24px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-left: none;\n border-right: none;\n`;\n\nexport const PriceData = styled.span`\n font-family: Roboto-r;\n font-size: 13px;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #323232;\n display: flex;\n align-items: center;\n`;\nexport const CoachRowName = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0.8rem;\n &:last-child {\n border: none;\n }\n`;\nexport const CoachRowImage = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n margin-right: 1.6rem;\n background-image: url(${({ img }) => img});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 4px;\n`;\n","import React from 'react';\nimport 'react-image-crop/dist/ReactCrop.css';\nimport { Formik, Field, Form } from 'formik';\nimport Modal from 'react-modal';\n\nimport CustomTextArea from '../input/CustomTextArea';\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalMain,\n FlexWrapper,\n ButtonWrapper,\n ModalTextArea,\n ModalSubHeading,\n ArrowIcon,\n} from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111111111',\n },\n content: {\n zIndex: '11111111111',\n width: '32%',\n maxWidth: '556px',\n minWidth: '320px',\n height: 'fit-content',\n maxHeight: 'Calc(100% - 40px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst ExplainRejectionModal = ({ modalOpen, closeModal, submitModal }) => {\n return (\n \n \n \n \n DESCRIBE WHY THE REQUEST WAS REJECTED\n \n \n Customer will get your message\n \n \n \n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n \n {({ field }) => (\n \n setFieldValue(field.name, val)}\n error={errors[field.name]}\n />\n \n )}\n \n \n \n \n Cancel\n \n \n \n \n Send\n \n \n \n
\n )}\n
\n
\n
\n \n );\n};\n\nexport default ExplainRejectionModal;\n","import { useCallback, useMemo, useState } from 'react';\nimport { useHistory } from 'react-router';\n\nimport URLS from '../constants/urls';\nimport useGroup from './group';\nimport useProgramRequest from './programRequest';\nimport { getGroupPriceQuery } from '@witness/graphql';\nimport { useQuery } from '@apollo/client';\n\nconst useProgramRequestPreview = ({ content }) => {\n const [explanationModalOpen, setExplanationModalOpen] = useState(false);\n const { changeProgramStatus, changeStatusLoading } = useProgramRequest();\n const weekDays = {\n MON: 'Monday',\n TUE: 'Tuesday',\n WED: 'Wednesday',\n THUR: 'Thursday',\n FRI: 'Friday',\n SAT: 'Saturday',\n SUN: 'Sunday',\n };\n\n const history = useHistory();\n const handleChat = useCallback(() => {\n history.push(URLS.messages, {\n trainee: content?.trainee,\n });\n }, [history, content]);\n\n const isGroup = useMemo(() => {\n if (content?.type === 'GROUP') return true;\n return false;\n }, [content]);\n\n const { data: groupPrice } = useQuery(getGroupPriceQuery, {\n variables: {\n record: { uid: content?.uid },\n },\n skip: !isGroup,\n });\n const { groupByDigits } = useGroup({ groupDigits: content?.code?.digits });\n const [totalPrice, monthlyPrice, monthsLeft, orgFee] = useMemo(() => {\n const monthsLeft = isGroup\n ? groupPrice?.getGroupPrice?.monthsLeft\n : content?.programLength / 30;\n if (!isGroup) {\n if (!content?.organisation?.uid) {\n return [\n Math.round((content?.monthlySum || 0) * monthsLeft),\n (content?.monthlySum || 0)?.toFixed(2),\n monthsLeft,\n ];\n }\n return [\n Math.round((content?.coachFee || 0) * monthsLeft),\n (content?.coachFee || 0)?.toFixed(2),\n monthsLeft,\n ];\n } else if (content?.organisation) {\n console.log('beee', groupPrice?.getGroupPrice);\n return [\n (groupPrice?.getGroupPrice?.coachFee || 0) * monthsLeft,\n groupPrice?.getGroupPrice?.coachFee || 0,\n monthsLeft,\n groupPrice?.getGroupPrice?.orgFee || 0,\n ];\n }\n\n const groupCoachMonthly =\n groupPrice?.getGroupPrice?.monthlyPrice -\n (content?.adminFee || 0) -\n (content?.organisation ? content?.price : 0);\n\n return [\n groupCoachMonthly * groupPrice?.getGroupPrice?.monthsLeft,\n groupCoachMonthly,\n monthsLeft,\n ];\n\n // const programStartDate = groupByDigits?.checkProgramCode?.group?.coachProgram?.beginningDate;\n\n // const programGeneralLength = groupByDigits?.checkProgramCode?.group?.programLength;\n // const groupMonthlyPrice = groupByDigits?.checkProgramCode?.group?.price;\n // const beginningDate = moment(programStartDate);\n // const totalMonths = programGeneralLength / 30;\n // if (programStartDate && beginningDate.isBefore()) {\n // const requestSentDate = moment(content?.approvedDate);\n // const endDate = beginningDate.add(programGeneralLength, 'days');\n // const daysLeft = endDate.diff(requestSentDate, 'days');\n // const ratio = daysLeft / programGeneralLength;\n // const total = Math.ceil(groupMonthlyPrice * ratio * totalMonths);\n // return [total, (total / Math.ceil(totalMonths)).toFixed(2)];\n // } else {\n // const total = Math.round(groupMonthlyPrice * totalMonths);\n // return [total, (total / Math.ceil(totalMonths)).toFixed(2)];\n // }\n }, [content, isGroup, groupPrice]);\n\n return {\n explanationModalOpen,\n setExplanationModalOpen,\n changeProgramStatus,\n isGroup,\n groupByDigits,\n weekDays,\n totalPrice,\n monthlyPrice,\n orgFee,\n handleChat,\n changeStatusLoading,\n monthsLeft,\n };\n};\n\nexport default useProgramRequestPreview;\n","import React, { useContext } from 'react';\nimport Modal from 'react-modal';\n\nimport ExplainRejectionModal from './ExplainRejectionModal';\nimport CustomButton from '../button/CustomButton';\nimport STRINGS from '../../constants/strings';\nimport ICONS from '../../constants/icons';\nimport { workoutToMin } from '../../services/utils';\nimport useProgramRequestPreview from '../../hooks/programRequestPreview';\n\nimport {\n WholeWrapper,\n ModalHeader,\n ModalRow,\n UpperRowCell,\n MiddleRowCell,\n BottomRowCell,\n ModalFooter,\n TotalPriceBold,\n TotalPriceGreen,\n ModalButtonWrapper,\n ModalButtonsRow,\n RowTitle,\n UpperRowCellLine,\n MiddleRowCellIcon,\n MiddleRowCellKey,\n MiddleRowCellValue,\n ProfilePic,\n ProfileName,\n GenderIcon,\n ParameterRow,\n ParameterCell,\n ModalCloseX,\n ModalGroupSide,\n ModalContentMain,\n ModalContent,\n GroupDetailsHeading,\n GroupImageWrapper,\n GroupImage,\n GroupName,\n GroupParticipants,\n GroupAbout,\n TicketIcon,\n TicketDigits,\n TicketNote,\n CoachRowName,\n CoachRowImage,\n} from './components';\nimport { OrganizationContext } from '../../services/organizationContext';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 11111111,\n },\n content: {\n width: '74%',\n maxWidth: '1320px',\n minWidth: '980px',\n height: 'Calc(82vh + 30px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst ProgramRequest = ({ content, closeModal }) => {\n const {\n explanationModalOpen,\n setExplanationModalOpen,\n changeProgramStatus,\n isGroup,\n groupByDigits,\n weekDays,\n totalPrice,\n monthsLeft,\n monthlyPrice,\n orgFee,\n handleChat,\n changeStatusLoading,\n } = useProgramRequestPreview({ content });\n\n const { isOrganization } = useContext(OrganizationContext);\n console.log('programRequest - ', content);\n return (\n \n \n {\n setExplanationModalOpen(false);\n }}\n submitModal={({ message }) => {\n changeProgramStatus({ uid: content?.uid, status: 'DECLINED', message }, isGroup);\n\n closeModal();\n }}\n />\n \n {content?.status === 'DECLINED'\n ? 'DECLINED PROGRAM REQUEST'\n : content?.status === 'CANCELLED'\n ? 'CANCELLED PROGRAM REQUEST'\n : STRINGS.new_program_request}\n X\n \n \n {isGroup && (\n \n Group Details\n \n \n \n {groupByDigits?.checkProgramCode?.group?.name}\n \n Number of participants:\n {` ${\n groupByDigits?.checkProgramCode?.group?.coachProgram?.participants?.length || '0'\n } / ${groupByDigits?.checkProgramCode?.group?.participants || '0'}`}\n \n \n {groupByDigits?.checkProgramCode?.group?.description || 'Loading...'}\n \n \n )}\n \n \n \n {!isGroup && }\n \n \n \n {content?.trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')\n .substring(0, 3)}\n \n \n {content?.trainee?.fullName}\n \n \n \n \n {STRINGS.weight}\n {`${content?.trainee?.weight}`}\n \n \n {STRINGS.height}\n {content?.trainee?.height}\n \n \n {STRINGS.age}\n {content?.trainee?.age}\n \n \n \n \n {!isGroup && (\n \n )}\n {!!content?.code && (\n \n \n #{`000${Math.floor(content?.code?.digits / 1000)}`.slice(-3)}-\n {`000${content?.code?.digits % 1000}`.slice(-3)}\n \n Code Used\n \n )}\n \n \n \n {STRINGS.health_and_fitness}\n \n \n {STRINGS.fitness_level}\n {content?.fitnessLevel}\n \n {!isGroup && (\n \n \n {STRINGS.training_environment}\n {content?.place?.join(', ')}\n \n )}\n \n \n {STRINGS.injures}\n {`${content?.injury || ''}${\n (content?.injuryDetails && '. ' + content?.injuryDetails) || ''\n }`}\n \n {!isGroup && (\n \n \n {STRINGS.available_equipment}\n \n {content?.equipments?.map((eq) => eq.name).join(', ')}\n {!!content?.equipments?.length && content?.otherEquipment && ', '}\n {content?.otherEquipment}\n {!(content?.equipments?.length || content?.otherEquipment) &&\n \"Trainee didn't mention any available equipment\"}\n \n \n )}\n \n \n {STRINGS.health_status}\n \n {(content?.healthCondition && content?.healthConditionDetails) || 'Healthy'}\n \n \n \n {!isGroup && (\n \n {STRINGS.program_details}\n \n \n {STRINGS.program_length}\n {content?.programLength} days\n \n \n \n {STRINGS.workout_time} \n \n {workoutToMin(content?.workoutLength)} min\n \n \n \n \n {STRINGS.desired_agenda}\n \n {content?.daysOfTraining?.map((d) => weekDays[d]).join(', ')}\n \n \n \n \n {STRINGS.training_type}\n \n {content?.trainingTypes?.map((ttype) => ttype?.name)?.join(', ') ||\n content?.trainingType?.name}\n \n \n \n \n {STRINGS.training_goals}\n \n {content?.goals?.map((eq) => eq.name).join(', ')}\n \n \n \n )}\n \n {STRINGS.notes}\n {!isGroup && }\n \n
{content?.note || 'No Additional Notes'}
\n
\n {!isGroup && }\n
\n
\n
\n {isOrganization && (\n \n \n \n {content?.coach?.fullName}\n \n {(content?.status === 'APPROVED' || content?.status === 'PENDING') && (\n
\n {STRINGS.total_price}\n {`₪${(monthlyPrice + orgFee) * monthsLeft}`}\n {`(₪ ${monthlyPrice * monthsLeft} will be paid to the coach)`}\n
\n )}\n
\n )}\n {content?.status === 'DECLINED' ||\n content?.status === 'CANCELLED' ||\n content?.status === 'APPROVED' ? (\n <>\n \n \n REQUEST WAS{' '}\n \n {content?.status}\n \n \n \n \n ) : (\n !isOrganization && (\n \n {STRINGS.total_price}\n {`₪${totalPrice}`}\n {`(₪ ${monthlyPrice} p/month)`}\n {!content?.organisation?.uid && (\n \n * a fee of {content?.coach?.financial?.fee}% will be discounted from this amount\n \n )}\n {content?.status === 'PENDING' && !isOrganization && (\n \n \n {\n setExplanationModalOpen(true);\n }}\n >\n {STRINGS.decline_request}\n \n \n \n {STRINGS.chat_with + (content?.trainee?.fullName || 'Trainee')}\n \n \n {\n await changeProgramStatus(\n {\n uid: content?.uid,\n status: 'APPROVED',\n },\n isGroup && groupByDigits?.checkProgramCode?.group?.uid,\n );\n closeModal();\n }}\n >\n {STRINGS.approve_request}\n \n \n \n )}\n \n )\n )}\n
\n \n );\n};\n\nexport default ProgramRequest;\n","import styled from 'styled-components';\nimport IMAGES from '../../constants/images';\n\nexport const Dashboard = styled.div`\n display: flex;\n flex-direction: column;\n max-width: calc(100vw - 160px);\n`;\nexport const DashboardSummaryBox = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const DashboardMainBox = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n margin-top: 20px;\n`;\n\nexport const DashboardSummaryItem = styled.div`\n width: Calc((100% - 40px) / 3);\n height: 120px;\n background: #ffffff;\n`;\n\nexport const DashboardMainItem = styled.div`\n width: ${({ grow }) =>\n grow === 1 ? 'Calc((100% - 40px) / 3)' : 'Calc((100% - 40px) / 3 * 2 + 20px)'};\n background: #ffffff;\n`;\n\nexport const DashboardBanner = styled.div`\n width: 100%;\n height: 15.8rem;\n background: white;\n background-image: url(${IMAGES.HomeBanner});\n background-repeat: no-repeat;\n background-position: right;\n background-size: auto 101%;\n border-radius: 4px;\n box-shadow: 0 1px 3px rgba(74, 74, 74, 0.12);\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: relative;\n`;\n\nexport const DashboardBannerContent = styled.div`\n width: 100%;\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 3rem 6.2rem 3rem 3.8rem;\n`;\n\nexport const BannerAvatar = styled.div`\n width: 10rem;\n height: 10rem;\n background-image: url(${({ pic }) => pic});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n border: ${({ theme }) => `4px solid ${theme.color.primary}`};\n margin-right: 3.2rem;\n border-radius: 50%;\n\n @media (max-width: 600px) {\n width: 88px;\n height: 88px;\n padding: 8px;\n margin-right: 0;\n border: ${({ theme }) => `1px solid ${theme.color.primary}`};\n }\n`;\n\nexport const BannerImg = styled.img`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 50%;\n`;\n\nexport const BannerText = styled.div`\n flex-grow: 1;\n`;\n\nexport const BannerPrimaryText = styled.div`\n line-height: 4.8rem;\n font-family: Gotham-r;\n font-size: 2rem;\n color: #373333;\n letter-spacing: 0.2rem;\n\n @media (max-width: 600px) {\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.31;\n letter-spacing: 1px;\n text-align: left;\n color: #4a4a4a;\n }\n`;\n\nexport const BannerSecondaryText = styled.div`\n line-height: 2.4rem;\n font-family: Roboto-m;\n font-size: 1.6rem;\n color: #373333;\n opacity: 0.6;\n`;\n\nexport const DashboardBannerBackLine = styled.div`\n flex-grow: 1;\n height: 100%;\n border-right: 1px solid #05000012;\n &:last-child {\n border: none;\n }\n`;\n\n// mobile\nexport const RespContainer = styled.div`\n padding: 0 16px;\n`;\n\nexport const ProfileWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 32px 0 3px;\n margin-bottom: 40px;\n`;\n\nexport const BannerWelcomeText = styled.div`\n font-family: Roboto-r;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.31;\n letter-spacing: 1px;\n text-align: left;\n color: #4a4a4a;\n margin: 21px 0 4px;\n`;\n\nexport const RespCard = styled.div`\n border-radius: 4px;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.12);\n background-color: #ffffff;\n margin-top: ${({ mt }) => (mt ? mt : 0)}px;\n margin-bottom: ${({ mb }) => (mb ? mb : 0)}px;\n`;\n\nexport const TitleContainer = styled.div`\n padding: 20px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const RespCardTitle = styled.div`\n font-family: Roboto-r;\n font-size: 14px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: 1px;\n text-align: left;\n color: #373333;\n text-transform: uppercase;\n margin-right: auto;\n`;\n\nexport const LoaderWrapper = styled.div`\n display: flex;\n justify-content: center;\n`;\n\nexport const SeeAllReqText = styled.div`\n padding: 12px 0 14px;\n display: flex;\n justify-content: center;\n border-top: 0.5px solid rgba(0, 0, 0, 0.15);\n font-family: Roboto-r;\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.3px;\n color: #050000;\n`;\n\nexport const ProgramReqContainer = styled.div`\n padding: 20px;\n border-top: 0.5px solid rgba(0, 0, 0, 0.15);\n border-left: 3px solid ${({ theme }) => theme?.color?.primary};\n display: flex;\n justify-content: space-between;\n`;\n\nexport const ArrowIcon = styled.img`\n transform: ${({ isOpen }) => (isOpen ? 'rotate(0deg)' : 'rotate(180deg)')};\n`;\n\nexport const ProgramReqTitle = styled.div`\n font-family: Roboto-r;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.3px;\n text-align: left;\n color: #373333;\n margin-bottom: 5px;\n`;\n\nexport const ProgramReqDesc = styled.div`\n opacity: 0.5;\n font-family: Roboto-r;\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 0.5px;\n text-align: left;\n color: #050000;\n`;\n\nexport const ProgramReqArrowIcon = styled.img`\n opacity: 0.5;\n transform: rotate(90deg);\n`;\n\nexport const BadgeContainer = styled.div`\n padding: 2px;\n border-radius: 8px;\n border: solid 1px ${({ theme }) => theme.color?.primary};\n background-color: #ffffff;\n margin-right: 11px;\n`;\n\nexport const BadgeWrapper = styled.div`\n padding: 0 10px 0 9px;\n border-radius: 6.5px;\n background-color: #00ff91;\n font-family: Roboto-r;\n font-size: 15px;\n font-weight: 500;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.6;\n letter-spacing: 2px;\n text-align: left;\n color: #373333;\n`;\n","import React from 'react';\n\nimport {\n ProgramReqArrowIcon,\n ProgramReqContainer,\n ProgramReqDesc,\n ProgramReqTitle,\n} from './components';\nimport arrowIcon from '../../assets/dashboard/simple-arrow-up.svg';\nimport moment from 'moment';\n\nconst ProgramRequestCard = ({ item, clickHandler = () => {} }) => (\n {\n e.stopPropagation();\n clickHandler(item);\n }}\n >\n {console.log(item)}\n
\n \n {(item.trainingTypes?.length &&\n (item.trainingTypes?.length > 1\n ? item.trainingTypes?.[0]?.speciality?.name\n : item.trainingTypes?.[0]?.name)) ||\n item.trainingType?.name}{' '}\n Program\n \n\n \n {item.trainee?.fullName}\n \n \n {item.programLength / 30} month - {item?.daysOfTraining?.length} days p/week\n \n {item?.approvedDate && (\n {moment(item?.approvedDate).format('DD/MM/YYYY')}\n )}\n
\n\n \n \n);\n\nexport default React.memo(ProgramRequestCard);\n","import React, { useState } from 'react';\n\nimport ExplainRejectionModal from './ExplainRejectionModal';\nimport CustomButton from '../button/CustomButton';\nimport STRINGS from '../../constants/strings';\nimport ICONS from '../../constants/icons';\nimport { workoutToMin } from '../../services/utils';\n\nimport {\n AvatarRow,\n BackIcon,\n BannerWrapper,\n Box,\n ModalTitle,\n ProfilePic,\n RespContainer,\n RespModalHeader,\n TicketIcon,\n TicketDigits,\n TicketNote,\n ProfileName,\n GenderIcon,\n ParameterRow,\n ParameterCell,\n RespContentContainer,\n TotalPriceBold,\n ModalButtonsRow,\n ModalButtonWrapper,\n MiddleRowCellIcon,\n MiddleRowCellKey,\n MiddleRowCellValue,\n BlockLabelContainer,\n LabelContentContainer,\n LabelIcon,\n FitnessDataRow,\n FitnessDataWrapper,\n RespNote,\n ModalFooter,\n TotalPriceGreen,\n PriceRow,\n PriceData,\n RespModalFooterWrapper,\n} from './components';\nimport useProgramRequestPreview from '../../hooks/programRequestPreview';\n\nfunction FitnessData(icon, label, desc) {\n this.icon = icon;\n this.label = label;\n this.desc = desc;\n}\n\nconst generateFitnessDataArray = (content) => {\n return [\n new FitnessData(ICONS.FitnessLevel, STRINGS.fitness_level, content?.fitnessLevel),\n new FitnessData(\n ICONS.Injures,\n STRINGS.injures,\n `${content?.injury || ''}${(content?.injuryDetails && '. ' + content?.injuryDetails) || ''}`,\n ),\n new FitnessData(ICONS.Environment, STRINGS.training_environment, content?.place?.join(', ')),\n new FitnessData(\n ICONS.Equipment,\n STRINGS.available_equipment,\n `${content?.equipments?.map((eq) => eq.name).join(', ')}\n ${!!content?.equipments?.length && content?.otherEquipment && ', '}\n ${content?.otherEquipment}\n ${\n !(content?.equipments?.length || content?.otherEquipment) &&\n \"Trainee didn't mention any available equipment\"\n }`,\n ),\n new FitnessData(\n ICONS.Health,\n STRINGS.health_status,\n (content?.healthCondition && content?.healthConditionDetails) || 'Healthy',\n ),\n new FitnessData(\n ICONS.Focus,\n STRINGS.training_goals,\n content?.goals?.map((eq) => eq.name).join(', '),\n ),\n ].filter((i) => i.desc);\n};\n\nconst generateProgramDetailsArray = (content, weekDays) =>\n [\n new FitnessData(ICONS.ProgramLength, STRINGS.program_length, `${content?.programLength} days`),\n new FitnessData(\n ICONS.Time,\n STRINGS.workout_time,\n `${workoutToMin(content?.workoutLength)} min`,\n ),\n new FitnessData(\n ICONS.Type,\n STRINGS.desired_agenda,\n content?.daysOfTraining?.map((d) => weekDays[d]).join(', '),\n ),\n new FitnessData(\n ICONS.Goal,\n STRINGS.training_type,\n `${\n content?.trainingTypes?.map((ttype) => ttype?.name)?.join(', ') ||\n content?.trainingType?.name\n }`,\n ),\n new FitnessData(\n ICONS.Focus,\n STRINGS.training_goals,\n content?.goals?.map((eq) => eq.name).join(', '),\n ),\n ].filter((i) => i?.desc);\n\nconst ProgramRequestBlock = ({ title, mt, mb, children }) => {\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <>\n setIsOpen(!isOpen)}>\n {title}\n \n \n {isOpen && {children}}\n \n );\n};\n\nconst RespProgramRequest = ({ content, closeModal, refetchProgramRequests }) => {\n const {\n explanationModalOpen,\n setExplanationModalOpen,\n changeProgramStatus,\n isGroup,\n groupByDigits,\n weekDays,\n totalPrice,\n monthlyPrice,\n handleChat,\n changeStatusLoading,\n } = useProgramRequestPreview({ content });\n\n return (\n \n \n \n New Program Request\n \n\n \n \n \n \n \n \n\n \n \n \n {content?.trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')\n .substring(0, 3)}\n \n\n {!!content?.code && (\n \n \n #{`000${Math.floor(content?.code?.digits / 1000)}`.slice(-3)}-\n {`000${content?.code?.digits % 1000}`.slice(-3)}\n \n Code Used\n \n )}\n \n\n \n {content?.trainee?.fullName}\n \n \n \n \n {STRINGS.weight}\n {`${content?.trainee?.weight}`}\n \n \n {STRINGS.height}\n {content?.trainee?.height}\n \n \n {STRINGS.age}\n {content?.trainee?.age}\n \n \n \n\n \n {generateFitnessDataArray(content)?.map?.((item) => {\n return (\n \n \n \n {item.label}\n {item.desc}\n \n \n );\n })}\n \n\n \n {generateProgramDetailsArray(content, weekDays)?.map?.((item) => {\n return (\n \n \n \n {item.label}\n {item.desc}\n \n \n );\n })}\n \n\n \n \n {content?.note || 'No Additional Notes'}\n \n \n \n \n \n {STRINGS.total_price}\n \n {`₪${totalPrice}`}\n {`(₪${monthlyPrice} p/month)`}\n \n \n {content?.status === 'PENDING' && (\n \n \n {\n setExplanationModalOpen(true);\n }}\n >\n {STRINGS.decline_request}\n \n \n \n {STRINGS.chat_with + (content?.trainee?.fullName || 'Trainee')}\n \n \n {\n await changeProgramStatus(\n {\n uid: content?.uid,\n status: 'APPROVED',\n },\n isGroup && groupByDigits?.checkProgramCode?.group?.uid,\n );\n closeModal();\n }}\n >\n {STRINGS.approve_request}\n \n \n \n )}\n \n \n\n {\n setExplanationModalOpen(false);\n }}\n submitModal={({ message }) => {\n changeProgramStatus({ uid: content?.uid, status: 'DECLINED', message }, isGroup).then(\n () => {\n refetchProgramRequests();\n },\n );\n closeModal();\n }}\n />\n \n );\n};\n\nexport default RespProgramRequest;\n","import React, { useState, useEffect, useMemo, useContext, useCallback } from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport qs from 'querystring';\n\nimport DashboardProgramRequests from '../../components/dashboard/DashboardProgramRequests';\nimport DashboardWorkoutList from '../../components/dashboard/DashboardWorkoutList';\nimport ProgramRequest from '../../components/request-modal/ProgramRequest';\nimport CustomButton from '../../components/button/CustomButton';\nimport { useCoachPersonalInfo, useProgram } from '../../hooks';\nimport {\n DashboardSummaryBox,\n Dashboard,\n DashboardMainBox,\n DashboardMainItem,\n DashboardBanner,\n DashboardBannerBackLine,\n DashboardBannerContent,\n BannerAvatar,\n BannerText,\n BannerPrimaryText,\n BannerSecondaryText,\n RespContainer,\n ProfileWrapper,\n BannerImg,\n BannerWelcomeText,\n RespCard,\n TitleContainer,\n RespCardTitle,\n BadgeContainer,\n BadgeWrapper,\n ArrowIcon,\n LoaderWrapper,\n SeeAllReqText,\n} from './components';\nimport { MobileContext } from '../../services/MobileContext';\nimport { useQuery } from '@apollo/client';\nimport { ProgramStatus } from '../../constants/enums';\nimport { getProgramsQuery } from '@witness/graphql';\nimport { LoaderSign } from '../../components/loader/components';\nimport ProgramRequestCard from './ProgramRequestCard';\nimport arrowIcon from '../../assets/dashboard/simple-arrow-up.svg';\nimport RespProgramRequest from '../../components/request-modal/RespProgramRequest';\nimport { OrganizationContext } from '../../services/organizationContext';\n\nconst Home = () => {\n const [requestModal, setRequestModal] = useState(null);\n const [isReqOpen, setIsReqOpen] = useState(false);\n const { currentCoach, currentOrganization } = useCoachPersonalInfo(() => {});\n const { isMobile } = useContext(MobileContext);\n const { isOrganization } = useContext(OrganizationContext);\n\n const currentUser = useMemo(\n () => (isOrganization ? currentOrganization : currentCoach),\n [isOrganization, currentCoach, currentOrganization],\n );\n\n const {\n data: programRequests,\n loading: programRequestsLoading,\n refetch,\n } = useQuery(getProgramsQuery, {\n variables: {\n record: {\n status: ProgramStatus.PENDING,\n },\n },\n skip: !isMobile,\n notifyOnNetworkStatusChange: true,\n });\n const history = useHistory();\n\n const urlRequestId = useMemo(\n () => history?.location?.search?.split('request_id=')?.[1]?.split('&')?.[0],\n [history.location.search],\n );\n\n const { program } = useProgram({ programId: urlRequestId });\n useEffect(() => {\n if (program?.status === 'APPROVED') {\n if (program?.type === 'GROUP' && program?.coachProgram?.group?.uid) {\n if (program?.coachProgram?.group?.uid) {\n history.push(`/program/${program?.coachProgram?.group?.uid}?group=true`);\n }\n } else {\n history.push(`/program/${program?.uid}`);\n }\n } else {\n setRequestModal(program);\n }\n }, [program, history]);\n\n const handleNewProgramRequestsToggle = () => {\n setIsReqOpen(!isReqOpen);\n };\n\n const handleSelectProgramRequest = useCallback(\n (item) => {\n if (item.status === 'APPROVED') {\n if (item?.type === 'GROUP') {\n history.push(`/program/${item?.coachProgram?.group?.uid}?group=true`);\n } else {\n history.push(`/program/${item.uid}`);\n }\n } else {\n setRequestModal(item);\n }\n console.log(item);\n },\n [setRequestModal, history],\n );\n\n if (isMobile) {\n return (\n \n {!!requestModal && (\n {\n setRequestModal(null);\n const queryObj = qs.parse(history.location.search.substring(1));\n delete queryObj.request_id;\n history.push(history?.location?.pathname + '?' + qs.stringify(queryObj));\n }}\n />\n )}\n \n \n \n \n\n Welcome Back,\n\n {!isOrganization && (\n {`Coach ${\n currentUser?.fullName?.split(' ')?.[0]\n }!`}\n )}\n \n\n \n \n new Program Requests\n\n {programRequests?.getPrograms?.length > 0 && (\n \n +{programRequests?.getPrograms?.length}\n \n )}\n\n \n \n {isReqOpen && (\n <>\n {programRequests?.getPrograms?.length > 0 ? (\n <>\n {programRequestsLoading ? (\n \n \n \n ) : (\n programRequests?.getPrograms?.map?.((item) => (\n \n ))\n )}\n {/* See all requests */}\n \n ) : (\n There are no requests at the moment\n )}\n \n )}\n \n {!isOrganization && (\n \n \n \n )}\n \n );\n }\n\n return (\n \n {!!requestModal && (\n {\n setRequestModal(null);\n const queryObj = qs.parse(history.location.search.substring(1));\n delete queryObj.request_id;\n history.push(history?.location?.pathname + '?' + qs.stringify(queryObj));\n }}\n />\n )}\n \n \n \n \n \n {`Welcome${isOrganization ? ' back' : ', coach'} ${\n (!isOrganization && currentUser?.fullName?.split(' ')?.[0]) || ''\n }!`}\n \n Please, feel free to edit Your Personal and Professional Details any time\n \n \n \n \n Edit Profile\n \n \n \n \n \n \n \n \n \n \n \n {/* \n \n */}\n \n \n \n \n \n {!isOrganization && (\n \n \n \n )}\n \n \n );\n};\nexport default Home;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const HeaderContainer = styled.div`\n width: 100%;\n height: 80px;\n border-bottom: 1px solid #05000040;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const Logo = styled.div`\n width: 80px;\n height: 100%;\n border-right: 1px solid #05000040;\n background-image: url(${ICONS.Logo});\n background-size: 38%;\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n min-width: 80px;\n`;\n\nexport const HeaderLink = styled.div`\n width: 100px;\n height: 79px;\n display: flex;\n justify-content: center;\n align-items: center;\n border-right: 0.5px solid #05000010;\n position: relative;\n &::after {\n content: '';\n display: ${(props) => (props.isActive ? 'block' : 'none')};\n position: absolute;\n width: 100%;\n height: 3px;\n background: ${({ theme }) => theme.color.primary};\n opacity: 0.5;\n bottom: -2px;\n border-radius: 2px;\n }\n background-image: ${({ icon }) => (icon ? `url(${icon})` : '')};\n background-size: 26%;\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n`;\n\nexport const HeaderMain = styled.div`\n flex-grow: 1;\n display: flex;\n border-right: 1px solid #05000040;\n background: #fdfdfd;\n`;\n\nexport const ProfilePic = styled.div`\n width: 44px;\n height: 44px;\n background-image: ${({ img }) => (img ? `url(${img})` : `url(${ICONS.ProfileImage})`)};\n background-size: cover;\n background-position: center;\n border-radius: 8px;\n`;\n\nexport const SideButtonsRelativeBox = styled.div`\n position: relative;\n width: ${({ isOrganization }) => (isOrganization ? '300px' : '400px')};\n`;\nexport const SideButtonsAbsoluteBox = styled.div`\n display: flex;\n align-items: center;\n position: absolute;\n width: 100%;\n height: 100%;\n background: white;\n z-index: 102;\n`;\n\nexport const MobileHeaderContainer = styled.div`\n width: 100%;\n height: 60px;\n background-color: #ffffff;\n border-bottom: 1px solid #05000040;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const HeaderSection = styled.div`\n display: flex;\n`;\n\nexport const HeaderIcon = styled.div`\n width: 28px;\n height: 28px;\n background-image: url(${({ src }) => src});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n display: inline-block;\n`;\n\nexport const HeaderRight = styled.div`\n width: 64px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-left: 1px solid #00000026;\n position: relative;\n`;\n\nexport const BurgerIcon = styled.div`\n width: 36px;\n height: 36px;\n background-image: url(${ICONS.Burger});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n display: inline-block;\n border-radius: 6px;\n background-color: #504d4d0f;\n :active {\n background-color: #504d4d4d;\n }\n`;\n\nexport const HeaderLeft = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: ${({ ml }) => ml}px;\n margin-right: ${({ mr }) => mr}px;\n`;\n\nexport const GoBackIcon = styled.div`\n width: 24px;\n height: 24px;\n background-image: url(${ICONS.GoBack});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n display: inline-block;\n border-radius: 6px;\n margin: 16px;\n :active {\n background-color: #504d4d4d;\n }\n`;\n\nexport const FixedHeaderContainer = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: 60px;\n background-color: white;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-bottom: 4px;\n border-bottom: 1px solid #0000001a;\n z-index: 1;\n`;\n\nexport const FIxedHeaderText = styled.div`\n font-family: Space-r;\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: 1px;\n text-align: left;\n color: #050000;\n`;\n\nexport const Dummy = styled.div`\n width: 24px;\n height: 24px;\n margin: 16px;\n`;\n\nexport const Dot = styled.div`\n position: absolute;\n width: 8px;\n height: 8px;\n border-radius: 4px;\n background-color: red;\n display: inline-block;\n right: ${({ right }) => right}px;\n top: ${({ top }) => top}px;\n`;\n","import styled from 'styled-components';\n\nexport const NotificationsWrapper = styled.div`\n width: 100%;\n max-height: 100%;\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 4px;\n }\n overflow-y: auto;\n padding-bottom: 6.4rem;\n`;\n\nexport const NotificationsSection = styled.div`\n width: 100%;\n border-bottom: 1px solid #05000012;\n &:last-child {\n border-bottom: none;\n }\n`;\n\nexport const SectionTitle = styled.div`\n padding: 2.8rem 2.8rem 1.4rem 3.2rem;\n font-family: Roboto-m;\n line-height: 2.4rem;\n color: ${({ previous }) => (previous ? '#05000080' : '#050000')};\n text-transform: uppercase;\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n`;\n\nexport const MarkAsRead = styled.div`\n font-family: Roboto-r;\n line-height: 2rem;\n font-size: 1.2rem;\n text-decoration: underline;\n text-transform: none;\n cursor: pointer;\n user-select: none;\n opacity: 0.8;\n &:active {\n opacity: 0.6;\n }\n`;\n\nexport const NotificationRow = styled.div`\n width: 100%;\n padding: 1.8rem 3.2rem;\n /* display: flex;\n justify-content: space-between;\n align-items: center; */\n &:hover {\n background: #f7f7f7;\n }\n cursor: pointer;\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n justify-content: center;\n /* align-items: center; */\n flex-grow: 1;\n`;\n\nexport const NotificationImage = styled.div`\n min-width: 3.6rem;\n min-height: 3.6rem;\n width: 3.6rem;\n height: 3.6rem;\n border-radius: 8px;\n background: #f1f0f0;\n background-image: url(${({ image }) => image});\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n margin-right: 2rem;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: #05000033;\n text-transform: uppercase;\n font-size: 1.2rem;\n`;\n\nexport const NotificationStatus = styled.div`\n position: absolute;\n right: -5px;\n top: -3px;\n width: 1.2rem;\n height: 1.2rem;\n border-radius: 50%;\n border: 2px solid white;\n background: ${({ status, theme }) =>\n status === 'RED' ? theme.color.error : status === 'GREEN' ? theme.color.primary : '#FFCC00'};\n`;\n\nexport const NotificationText = styled.div`\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #373333;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n`;\n\nexport const NotificationDate = styled.div`\n font-size: 1.2rem;\n line-height: 1.2rem;\n color: #4a4a4acc;\n min-width: 8.8rem;\n text-align: right;\n width: 100%;\n min-width: fit-content;\n`;\n\nexport const NotificationTextTitle = styled.span`\n color: #050000;\n font-family: Roboto-b;\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.8rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 200px;\n min-width: fit-content;\n`;\n\nexport const NotificationTextSubTitle = styled.span`\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.8rem;\n /* white-space: nowrap; */\n /* overflow: hidden; */\n /* text-overflow: ellipsis; */\n max-width: 200px;\n`;\n","import React from 'react';\nimport { GoBackIcon, FixedHeaderContainer, FIxedHeaderText, Dummy } from './components';\n\nconst Fixedheader = ({ title, handleBack }) => {\n return (\n \n \n {title}\n \n \n );\n};\n\nexport default Fixedheader;\n","import React, { useContext, useMemo } from 'react';\nimport Modal from 'react-modal';\nimport moment from 'moment';\n\nimport { NotificationContext } from '../../services/NotificationContext';\nimport EmptyTemplate from '../empty-template/EmptyTemplate';\nimport icons from '../../constants/icons';\nimport {\n FlexWrapper,\n NotificationDate,\n NotificationImage,\n NotificationRow,\n NotificationsSection,\n NotificationStatus,\n NotificationsWrapper,\n NotificationText,\n NotificationTextTitle,\n SectionTitle,\n MarkAsRead,\n NotificationTextSubTitle,\n} from './components';\nimport { MobileContext } from '../../services/MobileContext';\nimport Fixedheader from '../header/FixedHeader';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '100',\n },\n content: {\n zIndex: '101',\n width: '400px',\n maxWidth: '400px',\n height: 'Calc(100vh - 79px)',\n top: '79px',\n bottom: 0,\n left: 'auto',\n right: 0,\n color: '#050000',\n border: 'none',\n borderRadius: 0,\n borderTop: '1px solid #05000030',\n padding: '0.4rem 0.4rem 0',\n },\n};\n\nconst NotificationsModal = ({ modalOpen, closeModal = () => {} }) => {\n const { notifications, markAsRead: mrd, markAllAsRead } = useContext(NotificationContext);\n\n const { isMobile } = useContext(MobileContext);\n\n const styles = useMemo(() => {\n if (!isMobile) {\n return customStyles;\n }\n\n return Object.assign({}, customStyles, {\n content: {\n ...customStyles.content,\n top: '60px',\n bottom: 0,\n left: 0,\n right: 0,\n height: 'unset',\n width: 'unset',\n maxWidth: 'unset',\n },\n });\n }, [isMobile]);\n\n return (\n \n {notifications?.length ? (\n \n \n {isMobile ? (\n \n ) : (\n \n Notifications\n Mark all as read\n \n )}\n {notifications?.map((notification, i) => (\n \n mrd(notification)}>\n \n \n {!notification?.imageUrl &&\n notification?.fullName\n ?.split(' ')\n ?.map((x) => x.substr(0, 1))\n ?.join('')\n ?.substr(0, 3)}\n {!notification.isRead && }\n \n \n {notification?.title}\n {notification?.subTitle}\n \n {moment(notification?.createdAt).fromNow()}\n \n \n \n \n \n ))}\n \n \n ) : (\n \n )}\n \n );\n};\n\nexport default NotificationsModal;\n","import React, { useContext, useMemo } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport ICONS from '../../constants/icons';\nimport URLS from '../../constants/urls';\nimport {\n HeaderContainer,\n Logo,\n HeaderLink,\n HeaderMain,\n ProfilePic,\n SideButtonsRelativeBox,\n SideButtonsAbsoluteBox,\n} from './components';\nimport { useCoachPersonalInfo, useSignin } from '../../hooks';\nimport NotificationsModal from '../notifications/NotificatiosnModal';\nimport { useState } from 'react';\nimport { NotificationContext } from '../../services/NotificationContext';\nimport { OrganizationContext } from '../../services/organizationContext';\n\nconst Header = () => {\n const { pathname } = useLocation();\n const { currentCoach, currentOrganization } = useCoachPersonalInfo({});\n const { signOut } = useSignin();\n const [notificationsOpen, setNotificationsOpen] = useState(false);\n const { unreadCount } = useContext(NotificationContext);\n const { isOrganization } = useContext(OrganizationContext);\n\n const currentUser = useMemo(() => (isOrganization ? currentOrganization : currentCoach), [\n isOrganization,\n currentCoach,\n currentOrganization,\n ]);\n\n return (\n \n {notificationsOpen && (\n setNotificationsOpen(false)}\n />\n )}\n \n \n \n \n \n \n \n \n \n \n \n {!isOrganization && (\n
\n setNotificationsOpen((curr) => !curr)}\n />\n
\n )}\n \n \n \n \n \n \n
\n
\n
\n );\n};\n\nexport default Header;\n","import { CometChat } from '@cometchat-pro/chat';\n\nclass CometChatManager {\n instance = null;\n initialized = null;\n authorized = null;\n appId = null;\n region = null;\n myUserId = null;\n\n constructor() {\n // Unique ids\n this.messagesListenerId = Math.random() * 1000;\n\n // Define requests\n this.usersRequest = null;\n this.conversationsRequest = null;\n this.messagesRequest = null;\n\n // Listeners\n this.onMessage = null;\n this.onConversationUpdate = null;\n this.onConversationAdd = null;\n\n // Storage\n this.subscribedGroupId = null;\n this.conversations = [];\n }\n\n static getInstance = () => {\n if (!CometChatManager.instance) {\n CometChatManager.instance = new CometChatManager();\n }\n\n return CometChatManager.instance;\n };\n\n static initialize = async (appId, region) => {\n try {\n CometChatManager.appId = appId;\n CometChatManager.region = region;\n\n // Create settings\n const appSetting = new CometChat.AppSettingsBuilder()\n .subscribePresenceForAllUsers()\n .setRegion(region)\n .build();\n\n // Initialize chatkit\n const initialized = await CometChat.init(appId, appSetting);\n\n // Save initialized\n CometChatManager.initialized = initialized;\n\n return initialized;\n } catch (e) {\n console.log('CometChat.init', e);\n throw e;\n }\n };\n\n static login = async (authToken) => {\n try {\n // Initialized if not initialized\n if (!CometChatManager.initialized) {\n await CometChatManager.initialize(CometChatManager.appId, CometChatManager.region);\n }\n\n // Then login to cometchat using that authToken\n const user = await CometChat.login(authToken);\n\n // Save my user id\n CometChatManager.authorized = true;\n CometChatManager.myUserId = user.uid;\n\n return user;\n } catch (e) {\n console.log('CometChat.login', e);\n throw e;\n }\n };\n\n connect = async (settings) => {\n const { onConversationUpdate, onConversationAdd, conversationLimit } = settings;\n\n // Save onConversationUpdate listener\n this.onConversationUpdate = onConversationUpdate;\n this.onConversationAdd = onConversationAdd;\n\n // Build new conversations request (to clear old pagination)\n this.buildConversationsRequest(conversationLimit);\n\n // Clear previous conversations if exist\n if (this.conversations.length) this.conversations = [];\n\n // Fetch conversations\n const initialConversations = await this.fetchConversations(conversationLimit);\n\n // Listen to messages\n this.subscribeToMessages();\n\n return initialConversations;\n };\n\n subscribeToGroup = async (settings) => {\n const { groupId, onMessage, messageLimit, isGroup } = settings;\n\n // Update subscribed group message listener\n this.onMessage = onMessage;\n\n // Update subscribed group id\n this.subscribedGroupId = groupId;\n\n // Build new messages request\n this.buildMessagesRequest(groupId, messageLimit, isGroup);\n\n // Fetch messages for subscribed groupId\n const initialMessages = await this.fetchMessages();\n\n // Check if group exists in saved conversations\n const existing = await this.findConversationByGroupId(\n groupId,\n isGroup ? CometChat.RECEIVER_TYPE.GROUP : CometChat.RECEIVER_TYPE.USER,\n );\n if (!existing) {\n const lastMessage = initialMessages[initialMessages.length - 1];\n const cometChatUser = await this.fetchUser(groupId);\n const newConversation = Conversation.createFromCometChatUser(cometChatUser, lastMessage);\n newConversation.unreadMessagesCount = await this.fetchGroupUnreadMessageCount(\n groupId,\n newConversation.isGroup,\n );\n this.conversations.push(newConversation);\n if (this.onConversationAdd) this.onConversationAdd(newConversation);\n }\n\n return initialMessages;\n };\n\n buildMessagesRequest = (groupId, limit = 30, isGroup) => {\n const builder = new CometChat.MessagesRequestBuilder();\n\n const withId = isGroup ? builder.setGUID(groupId) : builder.setUID(groupId);\n\n this.messagesRequest = withId.setLimit(limit).build();\n };\n\n buildConversationsRequest = (limit = 30) => {\n this.conversationsRequest = new CometChat.ConversationsRequestBuilder().setLimit(limit).build();\n };\n\n buildUsersRequest = (searchString, limit = 50) => {\n this.usersRequest = new CometChat.UsersRequestBuilder()\n .setLimit(limit)\n .setSearchKeyword(searchString)\n // .joinedOnly(true)\n // .friendsOnly(true)\n .build();\n };\n\n static logout = async () => {\n CometChatManager.initialized = null;\n CometChatManager.authorized = null;\n CometChatManager.myUserId = null;\n CometChatManager.instance = null;\n\n return await CometChat.logout();\n };\n\n fetchUser = (groupId) => {\n try {\n // Fetch groups according to request\n return CometChat.getUser(String(groupId));\n } catch (e) {\n console.log('CometChat.fetchUser', e);\n throw e;\n }\n };\n\n fetchConversations = async (limit) => {\n try {\n // Build conversations request if not exists\n if (!this.conversationsRequest) this.buildConversationsRequest(limit);\n\n // Fetch conversations\n const cometChatConversations = await this.conversationsRequest.fetchNext();\n\n\n // Convert cometchat conversations to our format\n const conversations = cometChatConversations.map((conversation) => {\n return Conversation.createFromCometChatConversation(conversation);\n });\n\n // Find new conversations\n const newConversations = conversations.filter(\n (conversation) =>\n !this.conversations.find(\n (localConversation) => localConversation.groupId === conversation.groupId,\n ),\n );\n // Save conversations locally (add only new conversations)\n this.conversations = [...this.conversations, ...newConversations];\n\n return newConversations;\n } catch (e) {\n console.log('fetchConversations', e);\n throw e;\n }\n };\n\n fetchMessages = async () => {\n try {\n // Fetch messages\n const cometChatMessages = await this.messagesRequest.fetchPrevious();\n\n // Convert messages\n return cometChatMessages.map(Message.createFromCometChatMessage);\n } catch (e) {\n console.log('fetchMessages', e);\n return [];\n }\n };\n\n fetchAllUnreadMessageCount = async () => {\n const unreadUsers = await CometChat.getUnreadMessageCountForAllUsers();\n const unreadGroups = await CometChat.getUnreadMessageCountForAllGroups();\n\n let unreadMessagesCount = 0;\n Object.keys(unreadUsers).forEach((userId) => {\n unreadMessagesCount += unreadUsers[userId];\n });\n\n Object.keys(unreadGroups).forEach((groupId) => {\n unreadMessagesCount += unreadGroups[groupId];\n });\n\n return unreadMessagesCount;\n };\n\n fetchGroupUnreadMessageCount = async (groupId, isGroup) => {\n try {\n // Fetch unread messages count for group members\n const results = isGroup\n ? await CometChat.getUnreadMessageCountForGroup(groupId)\n : await CometChat.getUnreadMessageCountForUser(groupId);\n\n // Get unread messages count\n return results[groupId] ? results[groupId] : 0;\n } catch (e) {\n console.log('fetchGroupUnreadMessageCount', e);\n throw e;\n }\n };\n\n subscribeToMessages = (callback = null) => {\n // Listen to new live messages\n CometChat.addMessageListener(\n this.messagesListenerId,\n new CometChat.MessageListener({\n onTextMessageReceived: (textMessage) => {\n callback && callback(textMessage);\n this.handleMessageReceived(textMessage);\n },\n onMediaMessageReceived: (mediaMessage) => {\n callback && callback(mediaMessage);\n this.handleMessageReceived(mediaMessage);\n },\n }),\n );\n };\n\n unsubscribeFromGroup = () => {\n this.subscribedGroupId = null;\n };\n\n unsubscribeFromMessages = () => {\n // Remove listener\n CometChat.removeMessageListener(this.messagesListenerId);\n\n // Reset local variables\n // Requests\n this.usersRequest = null;\n this.conversationsRequest = null;\n this.messagesRequest = null;\n\n // Listeners\n this.onMessage = null;\n this.onConversationUpdate = null;\n this.onConversationAdd = null;\n\n // Storage\n this.subscribedGroupId = null;\n this.conversations = [];\n };\n\n handleMessageReceived = async (cometChatMessage) => {\n const message = Message.createFromCometChatMessage(cometChatMessage);\n const { groupId, user } = message;\n const receiverId =\n cometChatMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? groupId : user.id;\n\n // Update conversation unread messages counter\n const conversation = await this.findConversationByGroupId(\n receiverId,\n cometChatMessage.receiverType,\n );\n\n if (receiverId === this.subscribedGroupId) {\n // Trigger subscribed group onMessage listener\n if (this.onMessage) this.onMessage(message);\n }\n\n // First check if such conversation is fetched\n if (conversation) {\n // Update existing conversation (mutate, yes)\n conversation.lastMessage = message;\n conversation.unreadMessageCount = conversation.unreadMessageCount + 1;\n // Trigger onConversationUpdate\n if (this.onConversationUpdate) this.onConversationUpdate(conversation);\n } else {\n // Convert conversation\n const conversation = Conversation.createFromCometChatMessage(cometChatMessage);\n\n // Increase unreadMessageCount\n conversation.unreadMessageCount = await this.fetchGroupUnreadMessageCount(\n conversation.groupId,\n conversation.isGroup,\n );\n // Push this new conversation to local list\n this.conversations.push(conversation);\n // Trigger onConversationAdd\n if (this.onConversationAdd) this.onConversationAdd(conversation);\n }\n };\n\n markAsRead = (messageId, groupId, receiverType) => {\n CometChat.markAsRead(messageId, String(groupId), receiverType, String(groupId));\n this.fetchGroupUnreadMessageCount(groupId, receiverType === CometChat.RECEIVER_TYPE.GROUP).then(\n async (unreadMessageCount) => {\n // Find this conversation\n const conversation = await this.findConversationByGroupId(groupId, receiverType);\n // Update unread message count (with mutation)\n conversation.unreadMessageCount = unreadMessageCount;\n // Trigger conversation update\n if (this.onConversationUpdate) this.onConversationUpdate(conversation);\n },\n );\n };\n\n sendTextMessage = async (text, isGroup, overrideReceiver) => {\n // Build message object\n const textMessage = new CometChat.TextMessage(\n overrideReceiver || String(this.subscribedGroupId),\n text,\n isGroup ? CometChat.RECEIVER_TYPE.GROUP : CometChat.RECEIVER_TYPE.USER,\n );\n\n // Send message\n const cometChatMessage = await CometChat.sendMessage(textMessage);\n\n // Conver message\n const message = Message.createFromCometChatMessage(cometChatMessage);\n\n // Find subscribed conversation\n const conversation = await this.findConversationByGroupId(\n this.subscribedGroupId,\n isGroup ? CometChat.RECEIVER_TYPE.GROUP : CometChat.RECEIVER_TYPE.USER,\n );\n // Update last message\n conversation.lastMessage = message;\n // Trigger onConversationUpdate\n if (this.onConversationUpdate) this.onConversationUpdate(conversation);\n\n // Trigger onMessage\n if (this.onMessage) this.onMessage(message);\n\n return message;\n };\n\n sendMediaMessage = async ({ file, messageType, receiverType }) => {\n // Build message object\n const textMessage = new CometChat.MediaMessage(\n String(this.subscribedGroupId),\n file,\n messageType,\n receiverType,\n );\n\n // Send message\n const cometChatMessage = await CometChat.sendMediaMessage(textMessage);\n\n // Convert message\n const message = Message.createFromCometChatMessage(cometChatMessage);\n\n // Find subscribed conversation\n const conversation =\n (await this.findConversationByGroupId(this.subscribedGroupId, receiverType)) ||\n Conversation.createFromCometChatMessage(cometChatMessage);\n\n // Update last message\n conversation.lastMessage = message;\n // Trigger onConversationUpdate\n if (this.onConversationUpdate) this.onConversationUpdate(conversation);\n\n // Trigger onMessage\n if (this.onMessage) this.onMessage(message);\n\n return message;\n };\n\n findConversationByGroupId = async (groupId, type) => {\n const existing = this.conversations.find((conversation) => conversation.groupId === groupId);\n\n if (existing) {\n return existing;\n }\n\n const cometChatConversation = await CometChat.getConversation(groupId, type);\n\n return Conversation.createFromCometChatConversation(cometChatConversation);\n };\n\n searchGroups = async (searchString, limit = 50) => {\n // Build request\n this.buildUsersRequest(searchString, limit);\n\n // Fetch users\n const cometChatUsers = await this.usersRequest.fetchNext();\n\n // Convert users\n const users = cometChatUsers.map((user) => new User(user.uid, user.name, user.avatar));\n\n return users;\n };\n}\n\nclass Conversation {\n constructor(groupId, user, lastMessage = null, unreadMessageCount = 0, isGroup, createdAt) {\n this.groupId = groupId;\n this.user = user;\n this.lastMessage = lastMessage;\n this.unreadMessageCount = unreadMessageCount;\n this.isGroup = isGroup;\n this.createdAt = createdAt;\n }\n\n static createFromCometChatConversation = (cometChatConversation) => {\n const {\n conversationType,\n conversationWith,\n lastMessage,\n unreadMessageCount,\n } = cometChatConversation;\n const { uid, guid, name, avatar, icon, createdAt, lastActiveAt } = conversationWith;\n\n const isGroup = conversationType === CometChat.RECEIVER_TYPE.GROUP;\n\n const user = isGroup ? new User(guid, name, icon) : new User(uid, name, avatar);\n\n const message = lastMessage ? Message.createFromCometChatMessage(lastMessage) : null;\n\n return new Conversation(\n user.id,\n user,\n message,\n unreadMessageCount || 0,\n isGroup,\n isGroup ? createdAt : lastActiveAt,\n );\n };\n\n static createFromCometChatUser = (cometchatUser, lastMessage) => {\n const { uid, name, avatar } = cometchatUser;\n\n return new Conversation(uid, new User(uid, name, avatar), lastMessage, 0, false);\n };\n\n static createFromCometChatMessage = (cometChatMessage) => {\n const { receiver, sender, receiverType } = cometChatMessage;\n const otherCometchatUser = CometChatManager.myUserId === sender.uid ? receiver : sender;\n const { uid, guid, name, avatar, icon } = otherCometchatUser;\n\n const isGroup = receiverType === CometChat.RECEIVER_TYPE.GROUP;\n\n const user = isGroup ? new User(guid, name, icon) : new User(uid, name, avatar);\n\n return new Conversation(\n user.id,\n user,\n Message.createFromCometChatMessage(cometChatMessage),\n 0,\n isGroup,\n );\n };\n}\n\nclass User {\n constructor(id, name, avatar) {\n this.id = id;\n this.name = name;\n this.avatar = avatar;\n }\n}\n\nclass Message {\n constructor(id, groupId, text, type, attachment, sentAt, user, isOwned) {\n this.id = id;\n this.groupId = groupId;\n this.text = text;\n this.type = type;\n this.attachment = attachment;\n this.sentAt = sentAt;\n this.user = user;\n this.isOwned = isOwned;\n }\n\n static createFromCometChatMessage = (cometChatMessage) => {\n const {\n id,\n text,\n type,\n attachment,\n message,\n sentAt,\n sender,\n data,\n receiverId,\n } = cometChatMessage;\n\n const isOwned = CometChatManager.myUserId === sender.uid;\n\n if (cometChatMessage.category === 'custom') {\n return new Message(\n id,\n receiverId,\n cometChatMessage.data.text || cometChatMessage.data.customData.message,\n 'custom',\n cometChatMessage.data.customData.icon,\n sentAt,\n new User(sender.uid, sender.name, sender.avatar),\n isOwned,\n );\n }\n\n return new Message(\n id,\n receiverId,\n text || message,\n type,\n attachment ? attachment.fileUrl : data.url,\n sentAt,\n new User(sender.uid, sender.name, sender.avatar),\n isOwned,\n );\n };\n}\n\nexport default CometChatManager;\n","import React, { createContext, useEffect, useMemo, useCallback } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport { meQuery } from '@witness/graphql';\nimport ChatManager from './ChatManager';\nimport { useState } from 'react';\nimport { serializeConversations } from './chat-helpers';\nimport { CometChat } from '@cometchat-pro/chat';\n\nconst ChatContext = createContext(null);\n\nexport default ChatContext;\n\nconst CONVERSATION_LIMIT = 50;\nconst MESSAGE_LIMIT = 30;\nconst SORT_MESSAGES = (a, b) => a.sentAt - b.sentAt;\n\nexport const ChatProvider = ({ children }) => {\n const [loadingConversations, setLoadingCoversations] = useState(false);\n const [conversations, setConversations] = useState({});\n const [currentConversation, setCurrentConversation] = useState(null);\n const [currentMessages, setCurrentMessages] = useState([]);\n const [loadingMessages, setLoadingMessages] = useState(false);\n const [fetchingMoreMessages, setFetchingMoreMessages] = useState(false);\n const [sendingMessage, setSendingMessage] = useState(false);\n const [hasMoreMessages, setHasMoreMessages] = useState(true);\n const [totalUnreadCount, setTotalUnreadCount] = useState(0);\n\n const { data } = useQuery(meQuery);\n const chatInstance = useMemo(() => ChatManager.getInstance(), []);\n\n const updateTotalUnread = useCallback(() => {\n chatInstance.fetchAllUnreadMessageCount().then((count) => setTotalUnreadCount(count));\n }, [chatInstance]);\n\n const handleConversationUpdate = useCallback(\n (conversation) => {\n updateTotalUnread();\n setConversations((current) => {\n return {\n ...current,\n [conversation.groupId]: conversation,\n };\n });\n },\n [updateTotalUnread],\n );\n\n const toggleCurrentConversation = useCallback((conversation) => {\n setCurrentConversation((current) =>\n current && !conversation.isNew && current.groupId === conversation.groupId\n ? null\n : conversation,\n );\n\n setHasMoreMessages(true);\n }, []);\n\n const handleMessageUpdate = useCallback(\n (message) => {\n updateTotalUnread();\n setCurrentMessages((current) => [...current, message]);\n },\n [updateTotalUnread],\n );\n\n const sendTextMessage = useCallback(\n (text, isGroup) => {\n if (sendingMessage) {\n return new Promise();\n }\n\n setSendingMessage(true);\n return chatInstance\n .sendTextMessage(\n text,\n currentConversation?.isGroup,\n currentConversation?.isNew ? currentConversation.groupId : undefined,\n )\n .finally(() => setSendingMessage(false));\n },\n [chatInstance, currentConversation, sendingMessage],\n );\n\n const sendMediaMessage = useCallback(\n (file) => {\n if (sendingMessage) {\n return new Promise();\n }\n\n setSendingMessage(true);\n\n const receiverType = currentConversation.isGroup\n ? CometChat.RECEIVER_TYPE.GROUP\n : CometChat.RECEIVER_TYPE.USER;\n\n let messageType = CometChat.MESSAGE_TYPE.FILE;\n\n if (file.type.includes('image')) {\n messageType = CometChat.MESSAGE_TYPE.IMAGE;\n } else if (file.type.includes('video')) {\n messageType = CometChat.MESSAGE_TYPE.VIDEO;\n }\n\n return chatInstance\n .sendMediaMessage({\n file,\n messageType,\n receiverType,\n })\n .finally(() => setSendingMessage(false));\n },\n [chatInstance, currentConversation, sendingMessage],\n );\n\n const markAsRead = useCallback(async () => {\n if (currentConversation && currentConversation.unreadMessageCount) {\n const receiverType = currentConversation.isGroup\n ? CometChat.RECEIVER_TYPE.GROUP\n : CometChat.RECEIVER_TYPE.USER;\n\n await chatInstance.markAsRead(\n currentConversation.lastMessage.id,\n currentConversation.groupId,\n receiverType,\n currentConversation.groupId,\n );\n\n updateTotalUnread();\n }\n }, [chatInstance, currentConversation, updateTotalUnread]);\n\n const fetchMoreMessages = useCallback(() => {\n if (hasMoreMessages && !fetchingMoreMessages) {\n setFetchingMoreMessages(true);\n\n chatInstance\n .fetchMessages()\n .then((moreMessages) => {\n if (moreMessages.length < MESSAGE_LIMIT) {\n setHasMoreMessages(false);\n }\n\n setCurrentMessages((curr) => [...curr, ...moreMessages].sort(SORT_MESSAGES));\n })\n .finally(() => setFetchingMoreMessages(false));\n }\n }, [chatInstance, hasMoreMessages, fetchingMoreMessages]);\n\n const logout = useCallback(() => {\n setLoadingCoversations(false);\n setConversations({});\n setCurrentConversation(null);\n setCurrentMessages([]);\n setLoadingMessages(false);\n setSendingMessage(false);\n setHasMoreMessages(true);\n setTotalUnreadCount(0);\n\n ChatManager.logout();\n }, []);\n\n useEffect(() => {\n setCurrentMessages([]);\n if (currentConversation) {\n setLoadingMessages(true);\n chatInstance\n .subscribeToGroup({\n groupId: currentConversation.groupId,\n onMessage: handleMessageUpdate,\n messageLimit: MESSAGE_LIMIT,\n isGroup: currentConversation.isGroup,\n })\n .then((messages) => setCurrentMessages(messages))\n .finally(() => setLoadingMessages(false));\n }\n }, [currentConversation, chatInstance, handleMessageUpdate]);\n\n useEffect(() => {\n if (currentConversation && !currentConversation.isNew) {\n markAsRead();\n }\n }, [currentConversation, markAsRead]);\n\n useEffect(() => {\n if (data?.getCurrentUser?.user && !chatInstance.initialized) {\n setLoadingCoversations(true);\n ChatManager.login(data.getCurrentUser.user.cometchatToken)\n .then(() =>\n chatInstance.connect({\n onConversationUpdate: handleConversationUpdate,\n onConversationAdd: handleConversationUpdate,\n conversationLimit: CONVERSATION_LIMIT,\n }),\n )\n .then((conversations) => setConversations(serializeConversations(conversations)))\n .finally(() => setLoadingCoversations(false));\n }\n\n if (!data?.getCurrentUser?.user && chatInstance.initialized) {\n logout();\n }\n }, [data, chatInstance, handleConversationUpdate, logout]);\n\n useEffect(() => {\n updateTotalUnread();\n }, [updateTotalUnread]);\n\n const contextValue = useMemo(\n () => ({\n conversations,\n currentConversation,\n currentMessages,\n toggleCurrentConversation,\n sendTextMessage,\n markAsRead,\n sendMediaMessage,\n fetchMoreMessages,\n hasMoreMessages,\n loadingConversations,\n loadingMessages,\n sendingMessage,\n fetchingMoreMessages,\n setCurrentConversation,\n totalUnreadCount,\n }),\n [\n conversations,\n toggleCurrentConversation,\n currentConversation,\n currentMessages,\n sendTextMessage,\n markAsRead,\n sendMediaMessage,\n fetchMoreMessages,\n hasMoreMessages,\n loadingConversations,\n loadingMessages,\n sendingMessage,\n fetchingMoreMessages,\n setCurrentConversation,\n totalUnreadCount,\n ],\n );\n\n return {children};\n};\n","import { schema } from 'normalizr';\n\nexport const conversationSchema = new schema.Entity(\n 'conversations',\n {},\n { idAttribute: 'conversationId' },\n);\n\nexport const serializeConversations = (conversations = []) => {\n return conversations.reduce((acc, next) => {\n acc[next.groupId] = next;\n return acc;\n }, {});\n};\n","import React, { useContext, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport ICONS from '../../constants/icons';\nimport URLS from '../../constants/urls';\nimport ChatContext from '../../services/ChatContext';\nimport { MobileContext } from '../../services/MobileContext';\nimport NotificationsModal from '../notifications/NotificatiosnModal';\nimport {\n HeaderRight,\n HeaderIcon,\n HeaderSection,\n MobileHeaderContainer,\n BurgerIcon,\n HeaderLeft,\n Dot,\n} from './components';\n\nconst MobileHeader = () => {\n const { toggleMenu } = useContext(MobileContext);\n const { totalUnreadCount } = useContext(ChatContext);\n\n const [notificationsOpen, setNotificationsOpen] = useState(false);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {!!totalUnreadCount && }\n \n \n setNotificationsOpen(true)} />\n \n \n\n {notificationsOpen && (\n setNotificationsOpen(false)}\n />\n )}\n \n );\n};\n\nexport default MobileHeader;\n","import styled from 'styled-components';\n\nexport const AvatarContainer = styled.div`\n width: ${({ size }) => size};\n height: ${({ size }) => size};\n border-radius: 50%;\n border: 1px solid transparent;\n border-color: ${({ isOnline }) => isOnline && '#00FF91'};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const AvatarImage = styled.div`\n background-image: url(${({ src }) => src});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n width: 90%;\n height: 90%;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const AvatarCredentials = styled.span`\n color: #4a4a4a;\n font-family: 'Gotham-r';\n font-size: 3.2rem;\n letter-spacing: 0.2rem;\n line-height: 3.6rem;\n`;\n\nexport const MobileAvatarContainer = styled.div`\n width: ${({ size }) => size};\n height: ${({ size }) => size};\n border: 1px solid transparent;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nexport const MobileAvatarImage = styled.div`\n background-image: url(${({ src }) => src});\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n background-color: #504d4d0f;\n`;\n\nexport const MobileAvatarCredentials = styled.span`\n color: #4a4a4a;\n font-family: 'Gotham-r';\n font-size: 80%;\n line-height: 82%;\n letter-spacing: 2px;\n`;\n","import React, { useMemo } from 'react';\nimport { MobileAvatarContainer, MobileAvatarCredentials, MobileAvatarImage } from './components';\n\nconst MobileAvatar = ({ src, size, name }) => {\n const credentials = useMemo(() => {\n if (typeof name !== 'string') {\n return '';\n }\n\n const [first, last] = name.split(' ');\n\n return `${first ? first[0] : ''}${last ? last[0] : first[0]}`.toUpperCase();\n }, [name]);\n\n return (\n \n \n {src ? '' : credentials}\n \n \n );\n};\n\nexport default MobileAvatar;\n","import styled, { css } from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const SidebarContainer = styled.div`\n min-width: 80px;\n min-height: Calc(100vh - 80px);\n border-right: 1px solid #05000040;\n padding-top: 72px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const SidebarLink = styled.div`\n width: 42px;\n height: 42px;\n margin-bottom: 40px;\n border-radius: 4px;\n position: relative;\n &:last-child {\n border-bottom: none;\n }\n background-image: ${({ src }) => (src ? `url(${src})` : '')};\n background-size: 50%;\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n background-color: ${(props) => (props.isActive ? props.theme.color.primary : 'transparent')};\n opacity: ${(props) => (props.isActive ? '1' : '0.6')};\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n opacity: 1;\n & span {\n display: block;\n }\n }\n`;\n\nexport const LinkHoverTooltip = styled.span`\n position: absolute;\n display: block;\n white-space: nowrap;\n padding: 0.4rem 1.2rem;\n font-family: Roboto-r;\n color: #05000077;\n font-size: 1.4rem;\n background: #ededed;\n border-radius: 0.6rem;\n z-index: 1000;\n left: Calc(100% + 0.4rem);\n display: none;\n`;\n\nexport const ChatUnreadIndicator = styled.span`\n width: 0.8rem;\n height: 0.8rem;\n border-radius: 50%;\n background-color: ${({ theme }) => theme.color.error};\n position: absolute;\n top: 1rem;\n right: 1rem;\n`;\n\nexport const MobileSidebarContainer = styled.div`\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: #00000080;\n ${({ open }) =>\n open\n ? css`\n right: 0;\n `\n : css`\n width: 260px;\n left: -260px;\n `}\n transition: left 0.2s;\n z-index: 2;\n`;\n\nexport const MobileSidebarContent = styled.div`\n width: 260px;\n max-width: 100%;\n background-color: white;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const SidebarRow = styled.div`\n display: flex;\n border-bottom: 1px solid #0000001a;\n`;\n\nexport const CloseIcon = styled.div`\n width: 36px;\n height: 36px;\n background-image: url(${ICONS.Close});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n display: inline-block;\n border-radius: 6px;\n background-color: #504d4d0f;\n margin: 12px 14px;\n :active {\n background-color: #504d4d4d;\n }\n`;\n\nexport const AvatarContainer = styled.div`\n margin: 16px 16px 16px 20px;\n`;\n\nexport const NameContainer = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nexport const CoachTitle = styled.div`\n font-family: Roboto-r;\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: 0.5px;\n text-align: left;\n color: #050000;\n`;\n\nexport const CoachName = styled.div`\n font-family: Roboto-b;\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: 0.5px;\n text-align: left;\n color: #050000;\n`;\n\nexport const ItemsContainer = styled.div`\n display: flex;\n flex-direction: column;\n padding: 12px;\n flex-grow: 1;\n min-height: 112px;\n overflow-y: auto;\n`;\n\nexport const ItemContainer = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n border-radius: 6px;\n position: relative;\n :active {\n background-color: #504d4d4d;\n }\n`;\n\nexport const ItemIcon = styled.div`\n width: 24px;\n height: 24px;\n background-image: url(${({ src }) => src});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n display: inline-block;\n margin: 10px;\n`;\n\nexport const ItemText = styled.div`\n font-family: Roboto-r;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: 0.5px;\n text-align: left;\n color: #696666;\n display: inline-block;\n margin-left: 6px;\n`;\n\nexport const LogoutContainer = styled.div`\n display: flex;\n width: 100%;\n`;\n\nexport const LogoutText = styled.span`\n font-family: Roboto-b;\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.71;\n letter-spacing: 0.5px;\n text-align: center;\n color: #050000;\n`;\n","import React, { useCallback, useContext } from 'react';\nimport { useHistory } from 'react-router';\nimport { MobileContext } from '../../services/MobileContext';\nimport { ItemContainer, ItemIcon, ItemText } from './components';\n\nconst Item = ({ icon, text, url, to, children }) => {\n const { toggleMenu } = useContext(MobileContext);\n const history = useHistory();\n\n const handleNavigate = useCallback(() => {\n toggleMenu();\n history.push(to);\n }, [to, toggleMenu, history]);\n\n return (\n \n \n {text}\n {children}\n \n );\n};\n\nexport default Item;\n","import { useQuery } from '@apollo/client';\nimport { meQuery } from '@witness/graphql';\nimport React, { useContext } from 'react';\nimport { MobileContext } from '../../services/MobileContext';\nimport MobileAvatar from '../avatar/MobileAvatar';\nimport ICONS from '../../constants/icons';\nimport URLS from '../../constants/urls';\nimport {\n MobileSidebarContainer,\n MobileSidebarContent,\n SidebarRow,\n CloseIcon,\n AvatarContainer,\n CoachTitle,\n CoachName,\n NameContainer,\n ItemsContainer,\n LogoutContainer,\n LogoutText,\n} from './components';\nimport Item from './MobileSidebarItem';\nimport CustomButton from '../button/CustomButton';\nimport { useSignin } from '../../hooks';\nimport { Dot } from '../header/components';\nimport ChatContext from '../../services/ChatContext';\n\nconst MobileSidebar = () => {\n const { toggleMenu, menuOpen } = useContext(MobileContext);\n const { totalUnreadCount } = useContext(ChatContext);\n\n const { data } = useQuery(meQuery);\n const { signOut } = useSignin();\n\n return (\n \n \n \n \n \n \n \n \n \n \n Coach\n {data?.getCurrentUser?.coach?.fullName}\n \n \n \n \n {/* */}\n \n \n {!!totalUnreadCount && }\n \n \n\n \n \n Logout\n \n \n \n \n );\n};\n\nexport default MobileSidebar;\n","import React, { useContext } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\nimport { useQuery } from '@apollo/react-hooks';\nimport { meQuery } from '@witness/graphql';\n\nimport ICONS from '../../constants/icons';\nimport URLS from '../../constants/urls';\nimport ChatContext from '../../services/ChatContext';\nimport { SidebarLink, SidebarContainer, ChatUnreadIndicator, LinkHoverTooltip } from './components';\nimport { OrganizationContext } from '../../services/organizationContext';\n\nconst Sidebar = () => {\n let { pathname } = useLocation();\n const { totalUnreadCount } = useContext(ChatContext);\n const { isOrganization } = useContext(OrganizationContext);\n const { data } = useQuery(meQuery);\n\n return (\n \n {(data?.getCurrentUser?.user?.role?.name === 'coach' ||\n data?.getCurrentUser?.user?.role?.name === 'org') && (\n <>\n \n \n Home\n \n \n \n \n Programs\n \n \n \n \n Groups\n \n \n \n )}\n\n {/* \n \n \n \n \n \n \n \n \n \n \n \n \n \n */}\n {!isOrganization && (\n <>\n \n \n Templates\n \n \n \n \n Chat\n \n {totalUnreadCount > 0 && }\n \n {/* \n \n Finance\n \n */}\n \n )}\n \n \n All Trainees\n \n \n \n \n Finance\n \n \n \n \n Exercises\n \n \n {/* \n \n */}\n \n );\n};\n\nexport default Sidebar;\n","import styled from 'styled-components';\n\nexport const LayoutContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const MainArea = styled.div`\n width: 100%;\n background: #f7f6f6;\n flex-grow: 1;\n padding: ${({ isMobile }) => (isMobile ? 0 : 32)}px;\n max-width: ${({ isMobile }) => (isMobile ? '100%' : 'calc(100vw - 80px)')};\n`;\n","import React, { useContext } from 'react';\nimport { MobileContext } from '../../services/MobileContext';\n\nimport Header from '../header/Header';\nimport MobileHeader from '../header/MobileHeader';\nimport MobileSidebar from '../sidebar/MobileSidebar';\nimport Sidebar from '../sidebar/Sidebar';\n\nimport { LayoutContainer, MainArea } from './components';\n\nconst Layout = ({ innerComponent }) => {\n const { isMobile } = useContext(MobileContext);\n return (\n <>\n {isMobile ? :
}\n \n {isMobile ? : }\n {innerComponent()}\n \n \n );\n};\n\nexport default Layout;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst Export = () => {\n return (\n <>\n

Export page

\n go to signup page\n \n );\n};\n\nexport default Export;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst Stats = () => {\n return (\n <>\n

Stats page

\n go to Signup Page\n \n );\n};\n\nexport default Stats;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst Media = () => {\n return (\n <>\n

Media page

\n go to signup page\n \n );\n};\n\nexport default Media;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst Calendar = () => {\n return (\n <>\n

Calendar page

\n go to signup page\n \n );\n};\n\nexport default Calendar;\n","import styled, { keyframes, css } from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const ProfileContainer = styled.div`\n display: flex;\n background: #f1f0f0;\n border-radius: 4px;\n overflow: hidden;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.12);\n min-height: Calc(100vh - 144px);\n`;\n\nexport const ProfileNavigation = styled.div`\n min-width: 20%;\n max-width: 360px;\n background: #f1f0f0;\n padding: 12px;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ProfileMain = styled.div`\n height: 100%;\n min-height: 100vh;\n flex-grow: 1;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const ProfileMainEdgeColumn = styled.div`\n min-width: 21%;\n background: ${({ bg }) => bg || '#f9f9f9'};\n border-left: 2px solid #0500001f;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ProfileMainCenterColumn = styled.div`\n flex-grow: 1;\n border-left: 2px solid #0500001f;\n background: #ffffff;\n`;\n\nexport const ProfileNavHeading = styled.div`\n width: 100%;\n border-radius: 8px;\n background: #ffffff66;\n padding: 1.8rem 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Space-b;\n font-size: 2rem;\n margin-bottom: 4rem;\n`;\n\nexport const ProfileNavLink = styled.div`\n width: 100%;\n border-radius: 8px;\n background: ${({ active, theme }) => (active ? theme.color.primary : '#ffffff')};\n box-shadow: ${({ active }) => (active ? '0px 20px 20px -24px rgb(0 0 0 / 40%)' : 'none')};\n color: ${({ active }) => (active ? '#050000' : '#373333cc')};\n font-family: ${({ active }) => (active ? 'Roboto-m' : 'Roboto-r')};\n background-image: url(${({ icon, active, activeIcon }) => (active ? activeIcon : icon)});\n display: flex;\n justify-content: center;\n align-items: center;\n margin-bottom: 1.2rem;\n background-position: 1.8rem center;\n background-size: 1.6rem 2rem;\n background-repeat: no-repeat;\n padding: 2rem 3rem 2rem 5rem;\n cursor: pointer;\n text-align: center;\n`;\n\nexport const ProfileImageBlock = styled.div`\n width: 100%;\n padding: 3.6rem 18% 4.8rem;\n`;\n\nexport const PdfImageBlock = styled.div`\n width: 100%;\n padding: 3.6rem 30% 4.8rem;\n`;\nexport const ProfileImageFrame = styled.div`\n width: 100%;\n border: 3px solid ${({ theme }) => theme.color.primary};\n padding: 5%;\n border-radius: 50%;\n position: relative;\n`;\n\nexport const PdfImageFrame = styled.div`\n width: 100%;\n border: 3px solid ${({ theme }) => theme.color.primary};\n padding: 5%;\n position: relative;\n`;\nexport const ProfileId = styled.div`\n width: 15rem;\n border-radius: 8.8px;\n border: 3px solid ${({ theme }) => theme.color.primary};\n position: absolute;\n z-index: 11;\n background: #ffffff;\n font-family: Space-b;\n font-size: 1.8rem;\n line-height: 4rem;\n min-height: Calc(1.8rem + 20px);\n color: #373333;\n display: flex;\n justify-content: center;\n align-items: center;\n /* padding: 0.5rem 1rem; */\n margin: 0 Calc(50% - 8.5rem);\n bottom: -3%;\n`;\nexport const ProfileIdInfo = styled.div`\n width: 1.8rem;\n height: 1.8rem;\n border-radius: 50%;\n background: grey;\n margin-left: 0.8rem;\n font-family: Space-b;\n display: flex;\n align-items: center;\n font-size: 1rem;\n color: #4a4a4a;\n background: #c5c4c43d;\n border: 2px solid #9694943d;\n padding: 0.4rem;\n cursor: pointer;\n margin-bottom: ${({ marginBottom }) => (marginBottom ? marginBottom : '0')};\n position: relative;\n &:hover {\n background: ${({ theme }) => theme.color.primary};\n border-color: #15df68;\n }\n &:hover > .wit_tooltip {\n display: block;\n }\n`;\nexport const ProfileImage = styled.div`\n overflow: hidden;\n position: relative;\n width: 100%;\n border-radius: 50%;\n background-image: url(${({ image }) => image});\n padding: 50%;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: visible;\n`;\n\nexport const PdfImage = styled.div`\n overflow: hidden;\n position: relative;\n width: 100%;\n background-image: url(${({ image }) => image});\n padding: 50%;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: visible;\n`;\n\nexport const CameraIcon = styled.div`\n width: 26%;\n height: 26%;\n border: 2px solid ${({ theme }) => theme.color.primary};\n position: absolute;\n z-index: 122;\n background: #ffffff;\n border-radius: 50%;\n background-image: url(${ICONS.CameraIcon});\n background-size: 53% auto;\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n right: -16%;\n bottom: 12%;\n overflow: visible;\n`;\nexport const CameraIconPdf = styled.div`\n width: 26%;\n height: 26%;\n border: 2px solid ${({ theme }) => theme.color.primary};\n position: absolute;\n z-index: 122;\n background: #ffffff;\n border-radius: 50%;\n background-image: url(${ICONS.CameraIcon});\n background-size: 53% auto;\n background-position: center;\n background-repeat: no-repeat;\n cursor: pointer;\n right: -16%;\n bottom: -10%;\n overflow: visible;\n`;\n\nexport const BorderLabel = styled.div`\n padding: 0 1.2rem;\n background: inherit;\n font-family: Space-b;\n display: flex;\n align-items: center;\n color: #050000cc;\n position: absolute;\n top: -1.4rem;\n left: 26px;\n`;\n\nexport const BorderLabelEditIcon = styled.div`\n padding: 1rem;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n background-image: url(${ICONS.Edit});\n margin-left: 1.2rem;\n cursor: pointer;\n &:hover {\n background-image: url(${ICONS.EditGreen});\n }\n`;\n\nexport const LabeledInfoBlock = styled.div`\n width: 100%;\n background: inherit;\n border-top: 2px solid #0500001f;\n position: relative;\n flex-grow: 1;\n`;\n\nexport const ProfileName = styled.div`\n margin: 3.6rem 4rem 6.4rem 4rem;\n line-height: 3.6rem;\n font-family: Gotham-R;\n font-size: 3.2rem;\n color: #050000cc;\n`;\n\nexport const ChangesSavedIcon = styled.div`\n padding: 16px 7px;\n background-image: url(${ICONS.Logo});\n margin-right: 0.8rem;\n background-repeat: no-repeat;\n background-size: contain;\n background-position: top right;\n margin: 8px;\n`;\n\nconst Pulse = keyframes`\n 0%, 80%, 100% {\n padding: 0rem;\n margin: 0 0.9rem;\n }\n 40% {\n padding: 0.5rem;\n margin: 0 0.4rem;\n }\n`;\n\nexport const LoadingDot = styled.span`\n margin: 0 0.9rem;\n padding: 0;\n border-radius: 50%;\n background: #05000099;\n animation: ${Pulse} 1.4s infinite ease-in-out both;\n animation-delay: ${({ i }) => `${i * -0.16}s`};\n`;\nexport const ChangesSaved = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n color: #05000099;\n width: ${({ autoSize }) => (autoSize ? 'fit-content' : '100%')};\n height: ${({ autoSize }) => (autoSize ? 'fit-content' : '13.55rem')};\n /* margin: 2.6rem 4rem 5.4rem; */\n font-size: 1.8rem;\n`;\n\nexport const PhysicalInfoBox = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n border-bottom: 2px solid #0500001f;\n`;\n\nexport const PhysicalInfoItem = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n border-right: 1px solid #0500001f;\n padding: 3.6rem 0.8rem 2.4rem;\n font-size: 2rem;\n font-family: Space-b;\n width: 25%;\n &:last-child {\n border: none;\n }\n`;\n\nexport const PhysicalInfoItemLabel = styled.div`\n font-family: Roboto-l;\n font-size: 1.2rem;\n color: #4a4a4a;\n margin-top: 8px;\n text-align: center;\n height: 2.4rem;\n`;\n\nexport const PersonalInfoContainer = styled.div`\n width: 100%;\n padding: 1.2rem 2rem;\n`;\n\nexport const AboutContainer = styled.div`\n width: 100%;\n padding: 4.2rem 0.8rem 4.8rem;\n color: #050000cc;\n font-size: 1.4rem;\n`;\n\n\nexport const PDFContainer = styled.div`\n width: 100%;\n padding: 4.2rem 0.8rem 4.8rem;\n color: #050000cc;\n font-size: 1.4rem;\n height: 500;\n`;\n\nexport const ScrollableContainer = styled.div`\n width: 100%;\n max-height: 24.7rem;\n height: 100%;\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n overflow-y: auto;\n padding: 0 2.8rem;\n`;\n\nexport const ProfessionalInfoContainer = styled.div`\n width: 100%;\n padding: 4rem 4rem 0 4rem;\n`;\n\nexport const ProfessionalInfoItem = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n`;\n\nexport const ProfessionalInfoItemLabel = styled.div`\n width: 20rem;\n display: flex;\n padding: 1.2rem 2.4rem 1.2rem 0;\n align-items: center;\n font-family: Roboto-m;\n font-size: 1.4rem;\n color: #05000077;\n`;\n\nexport const ProfessionalInfoGreenCircle = styled.div`\n width: 8px;\n height: 8px;\n margin-right: 1.2rem;\n background: ${({ theme }) => theme.color.primary};\n border-radius: 50%;\n`;\n\nexport const ProfessionalInfoItemValue = styled.div`\n flex-grow: 1;\n padding: 0 0 2.4rem;\n display: flex;\n flex-wrap: wrap;\n max-width: Calc(100% - 20rem);\n`;\n\nexport const ExperienceWrapper = styled.div`\n width: 112px;\n`;\n\nexport const PseudoSpeciality = styled.div`\n width: 100px;\n flex-grow: 1;\n`;\n\nexport const CredentialItem = styled.div`\n width: 100%;\n background: #f9f9f9;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.6rem 0.8rem 0.6rem 1.6rem;\n font-size: 1.4rem;\n margin-bottom: 2.4rem;\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const DownloadButton = styled.div`\n width: 28px;\n height: 28px;\n background-image: ${`url(${ICONS.Download})`};\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n cursor: pointer;\n margin-left: 4px;\n`;\n\nexport const GreyButton = styled.div`\n width: 20px;\n height: 20px;\n border-radius: 6px;\n background: #f1f0f0;\n background-image: ${({ icon }) => (icon ? `url(${icon})` : `url(${ICONS.File})`)};\n background-position: center;\n background-size: 48%;\n background-repeat: no-repeat;\n margin-right: 4px;\n background-color: #ffffff;\n`;\n\nexport const PortfolioScroll = styled.div`\n height: 100%;\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n overflow-y: auto;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: 0 1rem;\n`;\n\nexport const PortfolioWrapper = styled.div`\n width: 100%;\n display: flex;\n padding: 4rem 0.6rem;\n flex-grow: 1;\n height: 100%;\n position: absolute;\n`;\n\nexport const PortfolioItemWrapper = styled.div`\n opacity: ${({ blur }) => (blur ? '0.5' : '1')};\n width: Calc(50% - 16px);\n margin: 0 0.8rem 1.6rem;\n padding-bottom: Calc(35% - 0.8rem);\n background: ${({ addBlock }) => (addBlock ? 'transparent' : 'black')};\n flex-grow: 1;\n border-radius: 8px;\n background-image: url(${({ image }) => image});\n background-size: ${({ size }) => (size ? size : 'cover')};\n background-position: center;\n background-repeat: no-repeat;\n position: relative;\n cursor: pointer;\n &:hover > #scalable {\n background-size: auto 30%;\n }\n`;\n\nexport const VideoSign = styled.div`\n background-image: url(${ICONS.VideoSign});\n background-size: auto 25%;\n background-position: center;\n background-repeat: no-repeat;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n position: absolute;\n z-index: 11;\n`;\n\nexport const DeleteSign = styled.div`\n width: 16px;\n height: 16px;\n background-image: url(${ICONS.BinSimpleGrey});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n top: 8px;\n right: 8px;\n position: absolute;\n z-index: 11;\n &:hover {\n transform: scale(1.2);\n }\n`;\n\nexport const PseudoPortfolioItem = styled.div`\n width: Calc(50% - 16px);\n margin: 0 0.8rem 1.6rem;\n`;\n\n// pricing & coupons\n\nexport const PricingWrapper = styled.div`\n width: 100%;\n background: #ffffff;\n`;\n\nexport const PricingHeader = styled.div`\n width: 100%;\n border-bottom: 2px solid #0500000b;\n height: fit-content;\n display: flex;\n`;\n\nexport const PricingHeaderItem = styled.div`\n width: ${({ isMobile }) => (isMobile ? '50%' : '172px')};\n border-right: 2px solid #0500000b;\n border-left: 2px solid transparent;\n padding: 2rem 0;\n text-align: center;\n line-height: 2rem;\n cursor: pointer;\n color: #373333;\n font-family: ${({ active }) => (active ? 'Roboto-m' : 'Roboto-r')};\n font-size: ${({ active }) => (active ? '1.8rem' : '1.6rem')};\n position: relative;\n &:last-child {\n border-left: ${({ isMobile }) => (isMobile ? '1px solid #0500000b' : '1px solid transparent')};\n border-right: ${({ isMobile }) => (isMobile ? '1px solid transparent' : '1px solid #0500000b')};\n }\n &::after {\n content: '';\n display: ${({ active }) => (active ? 'block' : 'none')};\n position: absolute;\n width: Calc(100% + 4px);\n height: 4px;\n background: #53ff8a;\n bottom: -2px;\n border-radius: 3px;\n left: -2px;\n }\n`;\n\nexport const ProfileCode = styled.div`\n font-family: Roboto-r;\n font-size: 1.6rem;\n line-height: 4.5rem;\n color: #05000066;\n padding: 1.2rem 3.2rem;\n margin: 1.4rem 0 2.2rem;\n display: flex;\n align-items: center;\n ${({ isMobile }) =>\n isMobile &&\n css`\n margin-top: 2.8rem;\n border-radius: 8px;\n border: solid 0.5px rgba(0, 0, 0, 0.15);\n width: calc(100% - 40px);\n justify-content: center;\n height: 48px;\n font-family: Roboto-r;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.62;\n letter-spacing: 0.4px;\n text-align: left;\n color: #373333;\n `}\n`;\n\nexport const ProfileCodeValue = styled.span`\n font-family: Space-b;\n font-size: 3rem;\n line-height: 4.5rem;\n color: #050000;\n padding-left: 2rem;\n padding-bottom: 0.4rem;\n ${({ isMobile }) =>\n isMobile &&\n css`\n font-family: Gotham-r;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: unset;\n letter-spacing: 1px;\n text-align: left;\n color: #4a4a4a;\n padding-bottom: 0;\n `}\n`;\n\nexport const FlexWrapperSpaceBet = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n ${({ isMobile }) =>\n isMobile &&\n css`\n flex-direction: column-reverse;\n `}\n`;\n\nexport const AddCouponButton = styled.button`\n border: none;\n outline: none;\n border-radius: 8px;\n background: ${({ theme }) => theme.color.primary};\n box-shadow: 0px 2rem 2rem -2rem rgb(0 0 0 / 40%);\n color: #050000;\n font-family: Roboto-m;\n font-size: 1.4rem;\n line-height: 2.4rem;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0.8rem 4rem;\n cursor: pointer;\n text-align: center;\n margin-right: 3.2rem;\n ${({ isMobile }) =>\n isMobile &&\n css`\n margin: 24px 20px 11px 20px;\n width: calc(100% - 40px);\n height: 48px;\n `}\n &:active {\n box-shadow: 0px 2rem 2rem -2.2rem rgb(0 0 0 / 40%);\n transform: scale(0.98);\n }\n`;\n\nexport const AddCouponButtonMobileText = styled.span`\n font-family: Roboto-b;\n font-size: 14px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: 0.5px;\n text-align: center;\n color: #050000;\n`;\n\nexport const AddCouponButtonPlus = styled.span`\n padding: 1.6rem;\n background-image: url(${ICONS.PlusIcon});\n background-repeat: no-repeat;\n background-size: 100%;\n background-position: center;\n margin-right: 0.8rem;\n cursor: pointer;\n`;\n\nexport const PricingListWrapper = styled.div`\n padding: 0 3.2rem;\n`;\n\nexport const PricingListHeading = styled.div`\n font-family: Roboto-m;\n font-size: 1.6rem;\n line-height: 2.4rem;\n color: #4a4a4a;\n`;\n\nexport const ProgramsWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n padding: 0 1.6rem;\n`;\n\nexport const SingleProgramWrapper = styled.div`\n width: Calc(33% - 3.2rem);\n min-width: 28rem;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n border-radius: 8px;\n background: #f1f0f0;\n margin: 0 1.6rem 3.2rem;\n`;\n\nexport const PseudoSingleProgram = styled.div`\n width: Calc(33% - 3.2rem);\n min-width: 28rem;\n flex-grow: 1;\n display: flex;\n margin: 0 1.6rem 3.2rem;\n`;\n\nexport const ProgramImage = styled.div`\n width: 100%;\n padding-bottom: 72%;\n background: #00000055;\n position: relative;\n background-image: ${({ image }) => `url(${image})`};\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n border-radius: 8px;\n border: 0.5px solid #d1d1d188;\n`;\n\nexport const ProgramImageFade = styled.div`\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background: #ffffff55;\n display: flex;\n justify-content: center;\n`;\n\nexport const ProgramImageLines = styled.div`\n width: 33%;\n height: 100%;\n border-right: 1px solid #05000066;\n border-left: 1px solid #05000066;\n`;\n\nexport const ProgramName = styled.div`\n position: absolute;\n text-transform: uppercase;\n width: 100%;\n height: 33%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n font-size: 2.1rem;\n line-height: 2.5rem;\n letter-spacing: 0.1rem;\n color: #ffffff;\n padding: 2rem 0;\n min-height: fit-content;\n background: #4a4a4a99;\n top: max(33%, 3.25rem);\n`;\n\nexport const PriceHeading = styled.div`\n font-family: Gotham-r;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #4a4a4a99;\n padding: 1.6rem 0 1.2rem;\n`;\n\nexport const PriceInputWrapper = styled.div`\n width: 80%;\n height: 8rem;\n border-radius: 8px;\n margin: auto;\n`;\n\nexport const AdvencedOptions = styled.div`\n margin: 1.6rem 0 3.2rem;\n font-family: Roboto-m;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #0500009a;\n cursor: pointer;\n border-bottom: 2px solid transparent;\n &:hover {\n border-bottom: 2px solid #37333399;\n }\n`;\n\n// preferences & settings\n\nexport const SettingsWrapper = styled.div`\n width: 100%;\n background: #ffffff;\n min-height: Calc(100vh - 144px);\n padding: 32px 0;\n`;\n\nexport const SettingsInfoBlock = styled.div`\n width: 100%;\n padding: 5.6rem 5.6rem 6.4rem;\n`;\n\nexport const SettingsInputLabel = styled.div`\n line-height: 2rem;\n font-size: 1.6rem;\n font-family: roboto-r;\n margin-bottom: 2.4rem;\n color: #05000099;\n`;\n\nexport const LanguageWrapper = styled.div`\n margin-bottom: 3.2rem;\n display: flex;\n align-items: center;\n`;\n\nexport const LanguageLabel = styled.div`\n padding: 0.8rem 2.6rem 0.8rem 2.4rem;\n border-radius: 8px;\n background: ${({ theme }) => theme.color.primary};\n margin: 0 0.4rem;\n font-family: Roboto-r;\n font-size: 1.6rem;\n line-height: 2rem;\n position: relative;\n &:before {\n cursor: pointer;\n position: absolute;\n content: '';\n right: -0.6rem;\n top: -0.5rem;\n width: 1.6rem;\n height: 1.6rem;\n background: #00000015;\n border-radius: 50%;\n }\n`;\n\nexport const MultiValueDeleteX = styled.div`\n cursor: pointer;\n position: absolute;\n content: '';\n right: -0.5rem;\n top: -0.5rem;\n width: 1.6rem;\n height: 1.6rem;\n background: red;\n background-image: url(${ICONS.PlusIcon});\n background-size: 120%;\n z-index: 224554;\n background-repeat: no-repeat;\n background-position: center;\n transform: rotate(45deg);\n &:hover {\n transform: scale(1.25) rotate(45deg);\n }\n`;\n\nexport const TraineesWrapper = styled.div`\n width: 16.4rem;\n height: 4.8rem;\n`;\n\nexport const SettingUnits = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const UnitBlock = styled.div`\n display: flex;\n align-items: center;\n margin-right: 3.6rem;\n`;\n\nexport const UnitContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.4rem 3.2rem;\n border-radius: 8px;\n border: 1px solid ${({ theme, active }) => (active ? theme?.color?.primary : '#CDCCCC')};\n box-shadow: inset 0px 0px 0px 1px\n ${({ theme, active }) => (active ? theme?.color?.primary : 'transparent')};\n line-height: 2rem;\n color: ${({ active }) => (active ? '#050000' : '#05000080')};\n margin-right: 1.2rem;\n cursor: pointer;\n`;\n\nexport const Pusher = styled.div`\n width: 100%;\n min-height: 12rem;\n display: flex;\n flex-grow: 1;\n`;\n\nexport const TermsAndPrivacy = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport const StyledLink = styled.a`\n font-size: 1.8rem;\n min-height: 1.8rem;\n font-family: Roboto-m;\n cursor: pointer;\n margin-top: 1.2rem;\n &:hover {\n text-decoration: underline;\n }\n`;\nexport const CoachesWrapper = styled.div`\n width: 100%;\n overflow-y: auto;\n padding: 3.2rem 2rem;\n`;\nexport const CoachRowName = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n padding: 1.6rem 0.8rem;\n border-bottom: 1px solid #05000012;\n &:last-child {\n border: none;\n }\n`;\nexport const CoachRowImage = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n margin-right: 1.6rem;\n background-image: url(${({ img }) => img});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 4px;\n`;\n\nexport const CoachFeeWrapper = styled.div`\n width: 20%;\n flex-grow: ${({ grow }) => (grow ? '1' : 'none')};\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-family: Roboto-m;\n font-size: 1.4rem;\n color: #37333399;\n margin-bottom: 4.4rem;\n padding: 0 1.6rem;\n margin-left: 1.6rem;\n`;\n\nexport const CoachFeeInput = styled.div`\n font-family: Roboto-m;\n font-size: 1.6rem;\n color: #37333399;\n`;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const CardContainer = styled.div`\n min-width: 220px;\n width: max(220px, Calc(90% / 6));\n max-width: 320px;\n flex-grow: 1;\n height: 35.6rem;\n border-radius: 8px;\n border: 1px solid rgba(5, 0, 0, 0.12);\n background: #ffffff;\n display: flex;\n flex-direction: column;\n margin: 1.2rem;\n overflow: hidden;\n`;\nexport const TemplateCardContainer = styled.div`\n min-width: 22rem;\n width: max(22rem, Calc(90% / 6));\n flex-grow: 1;\n /* height: 315px; */\n border-radius: 8px;\n border: 1px solid rgba(5, 0, 0, 0.12);\n background: #ffffff;\n display: flex;\n flex-direction: column;\n margin: 1.2rem;\n overflow: hidden;\n cursor: ${({ withoutFooterButton }) => (withoutFooterButton ? 'pointer' : 'inherit')};\n`;\n\nexport const PseudoTraineeCard = styled.div`\n min-width: 220px;\n max-width: 320px;\n width: max(220px, Calc(90% / 6));\n flex-grow: 1;\n margin: 12px;\n`;\n\nexport const PseudoTemplateCard = styled.div`\n min-width: max(22rem, Calc(100% / 6 - 2.4rem));\n width: Calc(100% / 6 - 2.4rem);\n flex-grow: 1;\n margin: 1.2rem;\n`;\n\nexport const PseudoParticipantCard = styled.div`\n min-width: 24rem;\n width: max(26rem, Calc(100% / 6 - 2.4rem));\n flex-grow: 1;\n margin: 12px;\n`;\n\nexport const CardHeader = styled.div`\n width: 100%;\n height: 60px;\n display: flex;\n border-bottom: 1px solid #05000016;\n position: relative;\n justify-content: center;\n background-image: url(${({ backgroundUrl }) => backgroundUrl});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n`;\n\nexport const CardHeaderIconCell = styled.div`\n flex: 1;\n flex-grow: 1;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const StatusCircle = styled.div`\n min-width: 14px;\n min-height: 14px;\n background: ${({ status, theme }) =>\n status === 'ONGOING'\n ? theme.color.primary\n : status === 'APPROVED'\n ? '#ffcc00'\n : status === 'DECLINED'\n ? theme.color.error\n : 'transparent'};\n border: 3px solid\n ${({ status, theme }) => (status === 'ENDED' ? theme.color.primary : 'transparent')};\n border-radius: 50%;\n`;\n\nexport const MessengerIcon = styled.div`\n cursor: pointer;\n width: 3.2rem;\n height: 3.2rem;\n &.hoverable_message_button:hover {\n background: #00ff91;\n }\n`;\n\nexport const TrashIcon = styled.div`\n cursor: pointer;\n width: 3.2rem;\n height: 3.2rem;\n margin-right: 1.6rem;\n border: 1px solid #f1f0f0;\n border-radius: 8px;\n &:hover {\n background: #f50a4faa;\n }\n`;\n\nexport const TrashIconImg = styled.div`\n width: 100%;\n height: 100%;\n background-image: url(${ICONS.BinSimpleDark});\n background-repeat: no-repeat;\n background-position: center;\n background-size: auto 56%;\n`;\n\nexport const ViewIcon = styled.div`\n cursor: pointer;\n width: 3.2rem;\n height: 3.2rem;\n margin-right: 1.6rem;\n border: 1px solid #f1f0f0;\n border-radius: 8px;\n &:hover {\n background: #00ff91;\n }\n`;\n\nexport const ViewIconImg = styled.div`\n width: 100%;\n height: 100%;\n background-image: url(${ICONS.OptionViewDark});\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n`;\n\nexport const MessengerIconImg = styled.div`\n width: 100%;\n height: 100%;\n background-image: ${({ cancelBtn, active }) =>\n cancelBtn\n ? `url(${ICONS.BinSimpleGrey})`\n : active\n ? `url(${ICONS.MessageActive})`\n : `url(${ICONS.Message})`};\n background-repeat: no-repeat;\n background-position: center;\n background-size: 60% auto;\n`;\nexport const DeleteEditOrgGroup = styled.span`\n padding: 1.6rem;\n cursor: pointer;\n &.edit {\n background-image: url(${ICONS.EditGrey});\n &:hover {\n background-image: url(${ICONS.EditFill});\n }\n &:active {\n background-image: url(${ICONS.EditStroke});\n }\n }\n &.del {\n background-image: url(${ICONS.DeleteGrey});\n &:hover {\n background-image: url(${ICONS.DeleteFill});\n }\n &:active {\n background-image: url(${ICONS.DeleteStroke});\n }\n }\n background-repeat: no-repeat;\n background-size: 100%;\n background-position: center;\n margin-right: 1rem;\n &:last-child {\n margin: 0;\n }\n`;\nexport const DuplicateIconCorner = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n border-radius: 0 8px 0 3px;\n border-radius: 6px;\n position: absolute;\n right: 0.8rem;\n padding: 0.5rem 0.4rem 0.4rem 0.5rem;\n top: 0.8rem;\n background: #ffffffcc;\n cursor: pointer;\n &:hover {\n transform: scale(1.05);\n background: #ffffffee;\n }\n &:hover > div {\n background-image: url(${ICONS.CopyActive});\n }\n`;\nexport const DuplicateIconImg = styled.div`\n width: 100%;\n height: 100%;\n background-image: url(${ICONS.Copy});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n background-size: 72% auto;\n &:hover {\n transform: scale(1.05);\n background-image: url(${ICONS.CopyActive});\n }\n`;\n\nexport const HeaderProfileCell = styled.div`\n flex: 1;\n flex-grow: 2;\n display: flex;\n justify-content: center;\n border-right: 1px solid #05000016;\n border-left: 1px solid #05000016;\n position: relative;\n`;\n\nexport const ProfilePic = styled.div`\n width: ${({ width }) => width || '8.8rem'};\n height: ${({ width }) => width || '8.8rem'};\n position: absolute;\n bottom: Calc(${({ width }) => width || '8.8rem'} / -2);\n border-radius: 50%;\n border: 4px solid #ffffff;\n box-shadow: 0 0 0 2px #d8d8d8;\n background-color: #d8d8d8;\n background-image: url(${({ profilePic }) => profilePic}) !important;\n background-size: cover !important;\n background-position: center !important;\n background-repeat: no-repeat !important;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#cccccc')};\n text-transform: uppercase;\n font-size: 2rem;\n color: white;\n`;\n\nexport const CardBody = styled.div`\n flex-grow: 1;\n padding: 60px 2.1rem 2.6rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const ParticipantCardBody = styled.div`\n flex-grow: 1;\n padding: 60px 1.4rem 2.6rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const CardName = styled.div`\n width: 100%;\n font-family: Gotham-r;\n color: #373333;\n text-align: center;\n margin: auto;\n margin-bottom: 24px;\n`;\n\nexport const CardLevel = styled.div`\n width: 100%;\n font-size: 1.2rem;\n font-family: Roboto-r;\n color: #373333;\n text-align: center;\n margin: auto;\n margin-bottom: 24px;\n`;\n\nexport const CardInfo = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-around;\n`;\n\nexport const CardInfoRow = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const CardInfoText = styled.div`\n font-family: ${({ val }) => (val ? 'Roboto-r' : 'Roboto-l')};\n min-width: ${({ val }) => (val ? '4rem' : 'fit-content')};\n max-width: ${({ val }) => (val ? '50%' : 'fit-content')};\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 1.2rem;\n line-height: 18px;\n color: #373333;\n`;\n\nexport const CardFooter = styled.div`\n width: 100%;\n min-height: fit-content;\n height: 10rem;\n border-top: 1px solid #05000016;\n display: flex;\n justify-content: space-evenly;\n position: relative;\n`;\n\nexport const FooterLine = styled.div`\n width: 1px;\n height: 100%;\n background: #05000016;\n`;\n\nexport const ButtonsWrapper = styled.div`\n position: absolute;\n width: 86%;\n height: Calc(100% - 2rem);\n top: 1rem;\n left: 7%;\n border-radius: 8px;\n`;\nexport const ButtonWrapper = styled.div`\n border-radius: 8px;\n background: #fff;\n &:hover {\n box-shadow: ${({ disabled }) => (disabled ? '' : '-1px 2px 6px 0px rgba(0, 0, 0, 0.2);')};\n }\n &:first-child {\n margin-bottom: 0.6rem;\n }\n`;\n\nexport const ParticipantCardFooter = styled.div`\n width: 100%;\n display: flex;\n border-top: 1px solid #05000016;\n`;\n\nexport const ParticipantHealthCell = styled.div`\n width: 50%;\n height: 9.8rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 2rem 1.2rem;\n border-left: 0.5px solid #05000010;\n &:first-child {\n border-left: none;\n border-right: 0.5px solid #05000010;\n }\n color: #37333399;\n font-family: Roboto-l;\n font-size: 1.2rem;\n`;\n\nexport const ParticipantHealthCellValue = styled.div`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.2rem;\n line-height: 1.8rem;\n margin-top: 4px;\n overflow: hidden;\n text-overflow: ellipsis;\n text-align: center;\n`;\n\nexport const ParticipantPhysicsWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-around;\n`;\n\nexport const ParticipantPhysic = styled.div`\n font-family: Space-b;\n font-size: 1.8rem;\n color: #373333cc;\n padding: 0 1rem 0 2.4rem;\n background-image: url(${({ physIcon }) => physIcon});\n background-repeat: no-repeat;\n background-position: left;\n background-size: 2rem auto;\n`;\n\n// list item styling\n\nexport const FlexTDContent = styled.div`\n display: flex;\n align-items: center;\n color: inherit;\n justify-content: ${({ flexEnd }) => (flexEnd ? 'flex-end' : 'flex-start')};\n position: relative;\n`;\n\nexport const HoverIndicator = styled.div`\n position: absolute;\n height: 116%;\n width: 3px;\n left: -3.2rem;\n border-radius: 0 10rem 10rem 0;\n top: -6%;\n display: block;\n background: ${({ theme }) => theme.color.primary};\n display: none;\n`;\n\nexport const TraineeRow = styled.tr`\n width: 100%;\n background: white;\n margin: 0.6rem;\n border-radius: 8px;\n position: relative;\n &:hover {\n box-shadow: 0px 0px 4px 2px #00000012;\n }\n &:hover * .hover_indicator {\n display: block;\n }\n &:hover * .hoverable_message_button {\n border-color: #00ff91 !important;\n transform: scale(1.05);\n }\n &:hover * .hoverable_view_button {\n border-color: ${({ theme }) => theme.color.primary} !important;\n transform: scale(1.02);\n }\n &:hover * .hoverable_cancel_button {\n border-color: #f50a4faa !important;\n transform: scale(1.02);\n }\n &:hover > * {\n color: #050000;\n }\n`;\n\nexport const TraineeTD = styled.td`\n padding: 1.4rem 0 1.4rem 3.2rem;\n text-align: left;\n color: #373333e6;\n &:first-child {\n border-radius: 8px 0 0 8px;\n }\n &:last-child {\n border-radius: 0 8px 8px 0;\n padding-right: 3.2rem;\n }\n`;\n\nexport const TraineeRowProfilePic = styled.div`\n width: 3.6rem;\n height: 3.6rem;\n border-radius: 0.8rem;\n background-color: #d8d8d8;\n background-image: url(${({ profilePic }) => profilePic});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#cccccc')};\n text-transform: uppercase;\n font-size: 1.5rem;\n color: white;\n margin-right: 2rem;\n`;\n\nexport const MobileCardWrapper = styled.div`\n width: 100%;\n background: #fff;\n margin: 1rem 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 2rem 1rem 1rem;\n border-radius: 0.8rem;\n`;\n\nexport const MobileProfilePic = styled.div`\n min-width: 7.2rem;\n min-height: 7.2rem;\n border-radius: 1.6rem;\n background-color: #d8d8d83e;\n background-image: url(${({ profilePic }) => profilePic}) !important;\n background-size: cover !important;\n background-position: center !important;\n background-repeat: no-repeat !important;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#cccccc')};\n text-transform: uppercase;\n font-size: 2rem;\n`;\n\nexport const MobileCardBody = styled.div`\n flex-grow: 1;\n padding: 0 1.6rem;\n`;\n\nexport const MobileCardInfoText = styled.div`\n font-family: Roboto-r;\n font-size: 1.2rem;\n line-height: 18px;\n color: #8d8d8d;\n`;\n","import styled from 'styled-components';\n\nexport const RadioWrapper = styled.div`\n display: flex;\n align-items: center;\n cursor: pointer;\n`;\n\nexport const RadioIcon = styled.div`\n box-sizing: border-box;\n background-color: white;\n width: ${({ selected }) => (selected ? '22px' : '19px')};\n height: ${({ selected }) => (selected ? '22px' : '19px')};\n border-radius: 50%;\n margin-right: ${({ selected }) => (selected ? '10px' : '13px')};\n margin-bottom: ${({ selected }) => (selected ? '0px' : '3px')};\n border: ${({ selected }) => (selected ? '4px solid #00FF91' : '1px solid rgba(5, 0, 0, 0.2)')};\n`;\n\nexport const RadioText = styled.span`\n opacity: 0.6;\n color: #373333;\n font-family: Roboto-m;\n font-size: 14px;\n letter-spacing: 0;\n line-height: 19px;\n`;\n","import React from 'react';\nimport { RadioWrapper, RadioIcon, RadioText } from './components';\n\nconst RadioButton = ({ text, selected, onClick, buttonStyle, textStyle }) => (\n \n \n {text}\n \n);\n\nexport default RadioButton;\n","import styled from 'styled-components';\n\nexport const Header = styled.div`\n height: 72px;\n display: flex;\n padding: 2.4rem 3.2rem;\n border-bottom: ${({ hideMb }) => (hideMb ? '' : '0.5px solid #d2d1d1')};\n`;\n\nexport const HeaderText = styled.span`\n color: #050000;\n font-family: 'Space-r';\n font-size: 1.6rem;\n letter-spacing: 0.89px;\n line-height: 2.4rem;\n margin-right: auto;\n`;\n\nexport const Body = styled.div`\n display: flex;\n flex-direction: column;\n padding: 2.9rem 3.2rem;\n padding-bottom: 0;\n`;\n\nexport const AreaHeaderRow = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 4.3rem;\n`;\n\nexport const IconButton = styled.div`\n opacity: 0.6;\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 1.9rem;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n :hover {\n opacity: 1;\n font-family: Roboto-m;\n color: #00ff91;\n }\n`;\n\nexport const OptWrapper = styled.div`\n display: flex;\n align-items: center;\n background-color: white;\n padding: 0.6rem 1.65rem;\n :hover {\n background-color: rgba(0, 255, 145, 0.1);\n > div > div {\n background-color: #00ff91;\n }\n }\n`;\n\nexport const OptIcon = styled.img`\n width: 36px;\n height: 36px;\n border-radius: 18px;\n background-color: #fafafa;\n margin-right: 1.2rem;\n`;\n\nexport const Footer = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 3.2rem;\n`;\n\nexport const IconsBody = styled.div`\n height: 392.5px;\n width: 472.5px;\n border: 0.5px solid #d2d1d1;\n border-radius: 8px;\n background-color: #ffffff;\n margin-left: auto;\n margin-right: auto;\n overflow-y: auto;\n padding: 1.625rem 1.125rem;\n`;\n\nexport const IconWrapper = styled.div`\n margin: ${({ margin }) => margin};\n height: ${({ size }) => size || 56}px;\n width: ${({ size }) => size || 56}px;\n display: inline-block;\n`;\n\nexport const IconContainer = styled.div`\n width: 100%;\n height: 100%;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${({ selected }) => (selected ? '#00FF91' : '#fafafa')};\n cursor: pointer;\n :hover {\n background-color: rgba(0, 255, 145, 0.6);\n }\n border: 1px solid transparent;\n border-color: ${({ error, theme }) => (error ? theme.color.error : 'transparent')};\n`;\n\nexport const Icon = styled.img`\n height: 50%;\n width: 50%;\n`;\n\nexport const ErrorText = styled.span`\n color: #f50a4f;\n font-family: Roboto-m;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 1.9rem;\n`;\n","import React from 'react';\nimport ICONS from '../../constants/icons';\nimport { IconContainer, IconWrapper, Icon } from './components';\n\nconst MessageIcon = ({ selected, onClick, src, size, margin, error }) => (\n \n \n \n \n \n);\n\nexport default MessageIcon;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport Modal from 'react-modal';\nimport { getIconsQuery } from '@witness/graphql';\nimport { useQuery } from '@apollo/react-hooks';\nimport CustomButton from '../button/CustomButton';\nimport { Header, HeaderText, IconsBody, Footer } from './components';\nimport { ModalCloseX } from '../request-modal/components';\nimport MessageIcon from './MessageIcon';\n\nconst modalStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 3334,\n },\n content: {\n // height: '515px',\n width: '536px',\n borderRadius: '12px',\n backgroundColor: '#FFFFFF',\n boxShadow: '0 4px 10px 0 rgba(74,74,74,0.12)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n // borderRadius: '8px',\n border: 'none',\n padding: '0',\n },\n};\n\nconst IconsModal = ({ isOpen, onRequestClose, apply, appliedIcon }) => {\n const { data } = useQuery(getIconsQuery);\n\n const [selected, setSelected] = useState('');\n const toggle = useCallback(\n (id) => {\n if (selected === id) {\n setSelected('');\n } else {\n setSelected(id);\n }\n },\n [selected],\n );\n\n const handleChoose = useCallback(() => {\n apply(selected);\n onRequestClose();\n }, [apply, selected, onRequestClose]);\n\n useEffect(() => {\n setSelected(isOpen ? appliedIcon : '');\n }, [isOpen, appliedIcon]);\n\n return (\n \n
\n CHOOSE ICON\n \n X\n \n
\n \n {data?.getIcons?.icons?.map((icon) => (\n toggle(icon)}\n src={icon?.file?.url}\n size={56}\n margin=\"0.8rem\"\n className=\"inner\"\n />\n ))}\n \n
\n \n Apply\n \n
\n
\n );\n};\n\nexport default IconsModal;\n","import React, { useEffect, useState } from 'react';\nimport Modal from 'react-modal';\nimport {\n getCalendarMessagesQuery,\n createCalendarMutation,\n editCalendarMutation,\n} from '@witness/graphql';\nimport { useMutation, useQuery } from '@apollo/react-hooks';\nimport CustomInputDropdown from '../input/CustomInputDropdown';\nimport CustomTextArea from '../input/CustomTextArea';\nimport RadioButton from '../radio/RadioButton';\nimport {\n Header,\n HeaderText,\n Body,\n AreaHeaderRow,\n IconButton,\n OptWrapper,\n Footer,\n ErrorText,\n} from './components';\nimport CustomButton from '../button/CustomButton';\nimport IconsModal from './IconsModal';\nimport { useCallback } from 'react';\nimport MessageIcon from './MessageIcon';\nimport { CalendarType } from '../../constants/enums';\n\nconst modalStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 3333,\n },\n content: {\n // height: '515px',\n width: '536px',\n borderRadius: '12px',\n backgroundColor: '#FFFFFF',\n boxShadow: '0 4px 10px 0 rgba(74,74,74,0.12)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n // borderRadius: '8px',\n border: 'none',\n padding: '0',\n },\n};\n\nconst menuStyles = {\n maxHeight: '180px',\n boxShadow: '0 4px 10px 0 rgba(74,74,74,0.12)',\n paddingTop: '1.8rem',\n paddingBottom: '1.8rem',\n};\n\nconst valueStyles = {\n color: '#373333',\n fontFamily: 'Roboto-r',\n fontSize: '1.6rem',\n letterSpacing: 0,\n};\n\nconst optionStyles = {\n ...valueStyles,\n height: '36px',\n display: 'flex',\n alignItems: 'center',\n lineHeight: '21px',\n};\n\nconst errorMessages = [\n 'Please select a message',\n \"You haven't specified a custom message text\",\n 'If there is a message in the past, It is OK to open it but not to save changes.',\n];\n\nconst MessageOption = ({ opt, onClick }) => (\n \n \n {opt.text}\n \n);\n\nconst MessageValue = ({ opt }) => (\n
\n \n {opt.text}\n
\n);\n\nconst WorkoutMessageModal = ({\n day,\n closeModal,\n existingMessage,\n program,\n refetchProgram,\n coachProgram,\n programTemplate,\n beginningDate,\n}) => {\n const { data } = useQuery(getCalendarMessagesQuery);\n\n const [messageType, setMessageType] = useState(existingMessage?.customMessage ? 1 : 0);\n const [message, setMessage] = useState(existingMessage || {});\n const [text, setText] = useState(existingMessage?.customMessage || '');\n\n const [icon, setIcon] = useState(existingMessage?.icon || '');\n const [isIconsOpen, setIsIconsOpen] = useState(false);\n const toggleIconsModal = useCallback(() => {\n if (messageType === 1) {\n setIsIconsOpen((s) => !s);\n }\n }, [messageType]);\n\n useEffect(() => {\n if (messageType === 0) {\n setText('');\n setIcon('');\n } else if (messageType === 1) {\n setMessage({});\n }\n }, [messageType]);\n\n const [error, setError] = useState('');\n const substractDays = useCallback(\n (days) => {\n const date = new Date(beginningDate);\n date.setDate(date.getDate() + days);\n return date;\n },\n [beginningDate],\n );\n const checkErrors = useCallback(() => {\n if (messageType === 0 && !message.id) {\n setError(errorMessages[0]);\n return true;\n } else if (messageType === 1 && !text) {\n setError(errorMessages[1]);\n return true;\n }\n return false;\n }, [message.id, messageType, text]);\n\n const [handleMessageCreate, { loading }] = useMutation(createCalendarMutation);\n const [handleMessageUpdate, { loading: editLoading }] = useMutation(editCalendarMutation);\n\n const handleSubmit = useCallback(async () => {\n if (!checkErrors()) {\n const messageDetails =\n messageType === 0\n ? {\n calendarMessage: message.id,\n }\n : {\n customMessage: text,\n icon: icon?.id,\n };\n\n // console.log({\n // ...messageDetails,\n // type: CalendarType.MESSAGE,\n // coachProgram,\n // programTemplate,\n // programDay: day.messageDay,\n // });\n\n if (existingMessage) {\n try {\n await handleMessageUpdate({\n variables: {\n record: {\n uid: existingMessage.uid,\n date: substractDays(day.messageDay),\n ...messageDetails,\n },\n },\n });\n refetchProgram();\n closeModal();\n } catch (err) {\n if (err.graphQLErrors?.find((x) => x.message.toLowerCase() === errorMessages[2].toLocaleLowerCase())) {\n setError(errorMessages[2]);\n refetchProgram();\n }\n }\n } else {\n await handleMessageCreate({\n variables: {\n calendar: {\n ...messageDetails,\n type: CalendarType.MESSAGE,\n coachProgram,\n programTemplate,\n programDay: day.messageDay,\n },\n },\n });\n closeModal();\n refetchProgram();\n }\n }\n }, [\n existingMessage,\n handleMessageCreate,\n handleMessageUpdate,\n icon,\n message.id,\n messageType,\n program,\n refetchProgram,\n text,\n day,\n closeModal,\n checkErrors,\n ]);\n\n useEffect(() => {\n if (error) {\n checkErrors();\n }\n }, [error, checkErrors]);\n\n // reset to defaults\n useEffect(() => {\n setMessageType(existingMessage?.customMessage ? 1 : 0);\n setMessage(existingMessage || {});\n setText(existingMessage?.customMessage || '');\n setIcon(existingMessage?.icon || '');\n setIsIconsOpen(false);\n setError('');\n }, [existingMessage]);\n\n return (\n {\n refetchProgram()\n }}\n onRequestClose={() => {\n closeModal(); \n }}\n isOpen={!!day}\n >\n
\n CREATE MESSAGE\n
\n \n setMessageType(0)}\n selected={messageType === 0}\n text=\"Choose Message\"\n />\n
\n : message?.text ? :''}\n onChange={(val) => setMessage(val)}\n disabled={messageType !== 0}\n optionStyles={optionStyles}\n menuStyles={menuStyles}\n valueStyles={valueStyles}\n placeholder=\"- message text -\"\n />\n
\n\n \n setMessageType(1)}\n selected={messageType === 1}\n text=\"Create Custom Message\"\n />\n\n {!icon?.id && (\n \n Choose Icon\n \n )}\n\n {icon?.id && }\n\n \n \n\n
\n setText(val)}\n // error={errors[field.name]}\n disabled={messageType !== 1}\n />\n
\n\n
\n {!!error && {error}}\n
\n \n\n
\n \n Cancel\n \n \n Save\n \n
\n \n );\n};\n\nexport default WorkoutMessageModal;\n","import styled from 'styled-components';\n\nexport const Container = styled.div`\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.12);\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n`;\n\nexport const Content = styled.div`\n display: flex;\n max-height: 78.9rem;\n flex-grow: 1;\n`;\n\nexport const TemplateHeader = styled.div`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n padding: 3.6rem 3rem 1rem 3rem;\n padding-top: 3.6rem;\n flex-direction: ${({ reverse }) => (reverse ? 'row-reverse' : 'row')};\n`;\n\nexport const TemplateInputWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: ${({ justify }) => justify || 'space-between'};\n & > span {\n padding: 0 1.2rem 0 0.6rem;\n }\n & > * .option_icon {\n display: none;\n }\n & > .css-1joejl3-container {\n margin: 0;\n }\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const TemplateLengthItem = styled.div`\n padding: 1.2rem;\n line-height: 1.6rem;\n font-size: 1.4rem;\n color: 1px solid ${({ checked }) => (checked ? '050000' : '#05000080')};\n border: ${({ checked, theme }) =>\n checked ? `2px solid ${theme.color.primary}` : '1px solid #cdcccc'};\n border-radius: 8px;\n margin-right: 1.2rem;\n cursor: pointer;\n min-width: 8.8rem;\n text-align: center;\n &:last-child {\n margin-right: 0;\n }\n ${({ disabled }) =>\n disabled && {\n cursor: 'default',\n backgroundColor: '#f2f2f2',\n }}\n`;\n","import { CoachProgramStatus } from '../../constants/enums';\nimport ICONS from '../../constants/icons';\n\nconst { default: styled } = require('styled-components');\n\nexport const TraineesFilters = styled.div`\n padding: 3.2rem 2.8rem;\n display: flex;\n border-bottom: 1px solid #e9eaed;\n box-sizing: border-box;\n justify-content: space-between;\n`;\n\nexport const FiltersTitle = styled.span`\n color: #4a4a4a;\n font-family: 'Gotham-r';\n font-size: 2rem;\n letter-spacing: 0;\n line-height: 1.9rem;\n & > span {\n padding: 0 0.8rem;\n font-size: 2rem;\n font-family: Space-r;\n color: #4a4a4a;\n letter-spacing: 0.1rem;\n }\n`;\n\nexport const LayoutOption = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n border: 1px solid ${({ checked, theme }) => (checked ? theme.color.primary : '#f1f0f0')};\n border-radius: 8px;\n background-image: url(${({ grid }) => (grid ? ICONS.GridLayout : ICONS.ListLayout)});\n background-size: 55%;\n background-position: center;\n background-repeat: no-repeat;\n &:last-child {\n margin-left: 1rem;\n }\n margin-left: 2rem;\n cursor: pointer;\n`;\n\nexport const FiltersForm = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const FiltersFormTitlte = styled.span`\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.6rem;\n font-weight: 500;\n letter-spacing: 0;\n line-height: 2.1rem;\n text-align: right;\n white-space: nowrap;\n`;\n\nexport const OptionName = styled.div`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n margin-left: 1.6rem;\n`;\n\nconst circleBg = ({ status }) => {\n switch (status) {\n case CoachProgramStatus.APPROVED:\n return '#FFCC00';\n case CoachProgramStatus.DECLINED:\n return '#F50A4F';\n case CoachProgramStatus.ONGOING:\n return '#00FF91';\n default:\n return 'transparent';\n }\n};\n\nconst circleBorder = ({ status }) =>\n status === CoachProgramStatus.ENDED ? '#00FF91' : 'transparent';\n\nexport const OptionCircle = styled.div`\n border: 2px solid ${circleBorder};\n background-color: ${circleBg};\n width: 1.2rem;\n height: 1.2rem;\n border-radius: 0.6rem;\n margin-left: 1.6rem;\n`;\n\nexport const OptionRow = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n`;\n","import React from 'react';\nimport ReactSelect, { components } from 'react-select';\nimport { OptionName, OptionCircle, OptionRow } from './components';\n\nconst Option = (props) => {\n return (\n \n \n {props.data.value && }\n {props.data.label}\n \n \n );\n};\n\nconst Value = (props) => {\n const data = props.getValue()[0];\n return (\n \n \n {data.value && }\n {props.hasValue && {data.label}}\n \n \n );\n};\n\nconst styles = ({ error }) => ({\n container: (provided) => ({\n ...provided,\n minWidth: '21rem',\n marginLeft: '1.55rem',\n height: '4.4rem',\n boxShadow: 'none',\n }),\n control: (provided) => ({\n ...provided,\n height: '4.4rem',\n borderRadius: '8px',\n boxShadow: 'none',\n borderColor: error ? '#F50A4F' : '#05000033',\n '&:hover': {\n borderColor: error ? '#F50A4F' : '#05000033',\n },\n }),\n option: (provided, state) => ({\n ...provided,\n paddingLeft: 0,\n paddingRight: 0,\n background: state.isSelected ? 'rgba(0,255,145,0.4)' : 'white',\n '&:hover': {\n background: state.isSelected ? 'rgba(0,255,145,0.4)' : 'rgba(0,255,145,0.1)',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n paddingLeft: 0,\n paddingRight: 0,\n }),\n});\n\nconst SelectStatus = ({ value, onChange, options, error, disabled, ...rest }) => {\n return (\n \n );\n};\n\nexport default SelectStatus;\n","import styled, { css, keyframes } from 'styled-components';\nimport { CoachProgramStatus } from '../../constants/enums';\nimport ICONS from '../../constants/icons';\n\nexport const ValuesWrapper = styled.div`\n width: 100%;\n position: relative;\n & * > .react-select__menu-list {\n background: red;\n }\n`;\n\nexport const AbsoluteWrapper = styled.div`\n position: absolute;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n padding: 0.1rem 0.4rem 0.4rem;\n`;\n\nexport const ValueLabel = styled.div`\n padding: 0.5rem 1rem 0.5rem 0.8rem;\n border-radius: 4px;\n background: rgba(0, 255, 145, 0.3);\n margin: 0.6rem 0.4rem 0;\n opacity: 0.8;\n font-family: Roboto-r;\n font-size: 1rem;\n color: #373333;\n line-height: 1.2rem;\n width: fit-content;\n position: relative;\n`;\n\nexport const MultiValueDeleteX = styled.div`\n cursor: pointer;\n position: absolute;\n content: '';\n right: -0.6rem;\n top: -0.6rem;\n width: 1.6rem;\n height: 1.6rem;\n background-image: url(${ICONS.PlusIcon});\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n transform: rotate(45deg);\n border-radius: 50%;\n &:hover {\n transform: scale(1.25) rotate(45deg);\n }\n`;\n\nexport const OptionsHeading = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 2.1rem auto 1.2rem;\n text-align: center;\n color: #323232;\n opacity: 0.6;\n font-family: Roboto-r;\n font-size: 1.3rem;\n line-height: 1.3rem;\n ${({ warn }) =>\n warn\n ? `\n color: #F50A4F;\n opacity: 1;\n `\n : ''}\n`;\n\nexport const OptionWrapper = styled.div`\n display: flex;\n align-items: center;\n padding: 0.8rem 2.8rem;\n cursor: pointer;\n`;\n\nexport const CheckBox = styled.div`\n cursor: pointer;\n width: 2.6rem;\n height: 2.5rem;\n border: 1px solid ${({ theme, checked }) => (checked ? theme.color.primary : '#05000033')};\n background: ${({ theme, checked }) => (checked ? theme.color.primary : '#ffffff')};\n background-image: ${({ checked }) => (checked ? `url(${ICONS.TermsCheckMark})` : 'url()')};\n background-position: center;\n background-repeat: no-repeat;\n background-size: 86% auto;\n border-radius: 8px;\n margin-right: 1.6rem;\n`;\nexport const CoachRowImage = styled.div`\n width: 2.4rem;\n height: 2.4rem;\n margin: 0 1.6rem 0 0;\n background-image: url(${({ img }) => img});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 4px;\n`;\n\nconst circleBg = ({ status }) => {\n switch (status) {\n case CoachProgramStatus.APPROVED:\n return '#FFCC00';\n case CoachProgramStatus.DECLINED:\n return '#F50A4F';\n case CoachProgramStatus.ONGOING:\n return '#00FF91';\n case CoachProgramStatus.ENDED:\n return '#fff';\n default:\n return '#52C1FF';\n }\n};\n\nconst circleBorder = ({ status }) => {\n switch (status) {\n case CoachProgramStatus.ENDED:\n return '2px solid #00FF91';\n default:\n return 'none';\n }\n};\n\nexport const MultiValueItem = styled.div`\n display: flex;\n align-items: center;\n max-width: fit-content;\n`;\n\nexport const MultiValueName = styled.div`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.6rem;\n margin-left: 0.8rem;\n`;\n\nexport const MultiValueCircle = styled.div`\n background-color: ${circleBg};\n border: ${circleBorder};\n width: 0.8rem;\n height: 0.8rem;\n border-radius: 0.4rem;\n`;\n\nexport const OptionCircle = styled.div`\n background-color: ${circleBg};\n border: ${circleBorder};\n width: 1.2rem;\n height: 1.2rem;\n border-radius: 0.6rem;\n margin-left: 1.6rem;\n`;\n\nexport const OptionOption = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n`;\nexport const OptionCheck = styled.div`\n border: 1px solid ${({ isSelected }) => (isSelected ? '#00FF91' : '#cdcccc')};\n background-color: ${({ isSelected }) => (isSelected ? '#00FF91' : '#fff')};\n width: 1.6rem;\n height: 1.6rem;\n border-radius: 0.4rem;\n cursor: pointer;\n margin: 1.2rem 0 1.2rem 1.6rem;\n background-image: url(${({ isSelected }) => (isSelected ? ICONS.WhiteCheck : 'none')});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n`;\n","import React, { useEffect } from 'react';\nimport Select, { components } from 'react-select';\n\nimport {\n ValueLabel,\n ValuesWrapper,\n AbsoluteWrapper,\n MultiValueDeleteX,\n CheckBox,\n OptionWrapper,\n OptionsHeading,\n CoachRowImage,\n} from './components';\nimport { useState } from 'react';\nimport CustomButton from '../button/CustomButton';\n\nconst customStyles = ({ error, margin, width, small, borderColor, dropDownMaxHeight }) => ({\n control: (provided) => ({\n ...provided,\n width: width,\n maxWidth: '100%',\n height: small ? '3.2rem' : '4.4rem',\n minHeight: '3.2rem',\n borderRadius: '8px',\n boxShadow: 'none',\n marginRight: margin,\n fontSize: '1.4rem',\n alignItems: 'center',\n borderColor: error ? '#F50A4F' : borderColor || '#05000033',\n '&:hover': {\n borderColor: error ? '#F50A4F' : '#05000033',\n },\n }),\n valueContainer: (provided) => ({\n ...provided,\n maxHeight: small ? '3rem' : '3.6rem',\n fontSize: '1.4rem',\n height: '3.6rem',\n }),\n input: (provided) => ({\n ...provided,\n maxHeight: small ? '3rem' : '3.6rem',\n fontSize: '1.4rem',\n }),\n indicatorsContainer: (provided) => ({\n ...provided,\n maxHeight: small ? '3rem' : '3.6rem',\n }),\n placeholder: (provided) => ({\n ...provided,\n fontSize: '1.4rem',\n }),\n singleValue: (provided) => ({\n ...provided,\n fontSize: '1.4rem',\n display: 'flex',\n alignItems: 'center',\n minHeight: '100&',\n overflow: 'show',\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n opacity: 0.4,\n }),\n multiValue: () => ({\n display: 'none',\n }),\n menu: (provided) => ({\n ...provided,\n marginTop: '0.2rem',\n }),\n menuList: (provided) => ({\n ...provided,\n maxHeight: dropDownMaxHeight ? dropDownMaxHeight : small ? '8.8rem' : provided.maxHeight,\n }),\n option: (provided, state) => ({\n ...provided,\n display: 'flex',\n alignItems: 'center',\n fontSize: small ? '1.4rem' : 'inherit',\n padding: small ? '0.4rem 0.8rem' : provided.padding,\n background: state.isSelected ? 'rgba(0,255,145,0.4)' : 'white',\n color: '#050000cc',\n cursor: 'pointer',\n '&:hover': {\n background: state.isSelected ? 'rgba(0,255,145,0.4)' : 'rgba(0,255,145,0.1)',\n },\n }),\n});\n\nconst Option = (props) => {\n return (\n \n {props.data?.img && }\n {props.children}\n \n );\n};\n\nconst CheckBoxOption = (props) => {\n return (\n ({})} styles={{}} isRt1={true}>\n \n \n {props.children}\n \n \n );\n};\n\nconst ReactSelectWitness = ({\n value,\n onChange,\n isMulti,\n options,\n error,\n checkBoxes = false,\n onDeleteOne = () => {},\n placeholder,\n maxSelected = 3,\n margin = '2.4rem',\n width = '38rem',\n disabled,\n small,\n borderColor,\n dropDownMaxHeight,\n ...rest\n}) => {\n const [currentInnerValue, setCurrentInnerValue] = useState(value);\n const [menuIsOpen, setMenuIsOpen] = useState(value);\n const [warningActive, setWarningActive] = useState(false);\n let selectRef = null;\n\n useEffect(() => {\n if (isMulti) {\n setCurrentInnerValue(value);\n }\n }, [isMulti, value]);\n\n const showWarning = () => {\n setWarningActive(true);\n setTimeout(() => setWarningActive(false), 200);\n };\n return (\n
\n (selectRef = r)}\n options={options}\n classPrefix=\"react-select\"\n multiple\n onBlur={() => selectRef && selectRef.blur()}\n onMenuOpen={() => {\n setCurrentInnerValue(value);\n setMenuIsOpen(true);\n }}\n onMenuClose={() => {\n setMenuIsOpen(false);\n }}\n removeSelected={false}\n hideSelectedOptions={false}\n closeMenuOnSelect={!isMulti}\n isMulti={isMulti}\n styles={customStyles({ error, margin, width, small, borderColor, dropDownMaxHeight })}\n value={isMulti && menuIsOpen ? currentInnerValue : value}\n onChange={(v) =>\n isMulti\n ? maxSelected && v?.length > maxSelected\n ? showWarning()\n : setCurrentInnerValue(v)\n : onChange(v)\n }\n backspaceRemovesValue={false}\n persistMultiPlaceholder={true}\n placeholder={placeholder}\n isDisabled={disabled}\n components={{\n ClearIndicator: false,\n IndicatorSeparator: false,\n Option: checkBoxes && isMulti ? CheckBoxOption : Option,\n ValueContainer: (props) => {\n const val = menuIsOpen ? currentInnerValue : value;\n return (\n \n {props.getValue()?.[0]?.img ? (\n \n \n {props.getValue()?.[0]?.label}\n \n ) : (\n props.children\n )}\n {isMulti && !!val?.length && (\n <>\n {`Selected ${val?.length} item${\n val?.length > 1 ? 's' : ''\n }`}\n \n )}\n \n );\n },\n Menu: (props) => {\n return (\n \n {isMulti &&\n ((maxSelected && (\n \n You can select up to {maxSelected} types\n \n )) ||
)}\n {props.children}\n {isMulti && (\n {\n onChange(currentInnerValue);\n selectRef && selectRef.blur();\n }}\n green\n type=\"button\"\n fontSize=\"1.4rem\"\n style={{\n maxWidth: 'fit-content',\n maxHeight: 'fit-content',\n height: 'fit-content',\n padding: '0.8rem 2.8rem',\n lineHeight: '2.2rem',\n margin: '1.2rem auto',\n }}\n >\n Done\n \n )}\n
\n );\n },\n }}\n />\n\n {isMulti && (\n \n \n {value?.map((a) => (\n \n {a?.label}\n {!disabled && onDeleteOne(a?.value)} />}\n \n ))}\n \n \n )}\n
\n );\n};\n\nexport default ReactSelectWitness;\n","import React from 'react';\nimport {\n FlexWrapper,\n TemplateHeader,\n TemplateInputWrapper,\n TemplateLengthItem,\n} from './components';\nimport { Field } from 'formik';\nimport CustomInput from '../../components/input/CustomInput';\nimport SelectStatus from '../../components/programs-header/SelectStatus';\nimport ReactSelectWitness from '../../components/react-select-witness/ReactSelectWitness';\nimport { useQuery } from '@apollo/react-hooks';\nimport { getTrainingTypesQuery } from '@witness/graphql';\nimport LENGTH_OPTIONS from '../../constants/programLengthOptions'\nimport { useUtils } from '../../hooks';\n\n\nconst TemplateFilter = ({ setFieldValue, modalLayout, values, specList, isAdmin, readOnly }) => {\n const { data: trainingTypes } = useQuery(getTrainingTypesQuery);\n const { programLengthValueToOption } = useUtils();\n\n return (\n <>\n \n \n <>\n {!modalLayout && Template Name}\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={values?.[field?.name]}\n disabled={readOnly}\n />\n )}\n \n \n \n {modalLayout && (\n \n Search By\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n disabled={readOnly}\n />\n )}\n \n \n )}\n \n {!modalLayout && (\n \n Training Type\n \n {({ field }) => (\n {\n if (v?.value !== field?.value?.value) {\n setFieldValue('trainingTypes', []);\n }\n setFieldValue(field?.name, v);\n }}\n backspaceRemovesValue={false}\n style={{ maxWidth: '20rem' }}\n disabled={readOnly}\n />\n )}\n \n \n )}\n {!modalLayout && (\n \n Subtype\n \n {({ field }) => (\n ({\n value: a?.id,\n label: a?.name,\n }))}\n placeholder=\"- Choose training types -\"\n isMulti={values?.speciality?.label === 'Strength'}\n checkBoxes={values?.speciality?.label === 'Strength'}\n value={field?.value}\n onChange={(v) => {\n if (values?.speciality?.label !== 'Strength') {\n setFieldValue(field?.name, [v]);\n } else if (!v || v?.length <= 3) {\n setFieldValue(field?.name, v);\n }\n }}\n onDeleteOne={(v) => {\n setFieldValue(\n field.name,\n field?.value?.filter((x) => x?.value !== v),\n );\n }}\n backspaceRemovesValue={false}\n style={{ maxWidth: '26rem' }}\n disabled={readOnly}\n />\n )}\n \n \n )}\n {modalLayout && (\n \n Training Type\n \n {({ field }) => (\n ({\n value: x?.id,\n label: x?.name,\n }))}\n placeholder=\"- Choose training type -\"\n value={field?.value}\n onChange={(v) => {\n setFieldValue(field?.name, v);\n }}\n style={{ maxWidth: '26rem' }}\n />\n )}\n \n \n )}\n \n Length\n \n {({ field }) => (\n \n { !readOnly && setFieldValue(field.name, v?.value) }}\n style={{ maxWidth: '26rem' }}\n />\n \n )}\n \n \n\n {isAdmin && (\n \n Visible\n \n {({ field }) => (\n \n setFieldValue(field.name, !values[field?.name])}\n />\n \n )}\n \n \n )}\n \n \n \n );\n};\n\nexport default TemplateFilter;\n","import { useMutation } from '@apollo/react-hooks';\nimport { duplicateTemplateMutation } from '@witness/graphql';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport IMAGES from '../../constants/images';\nimport AreYouSureModal from '../are-you-sure-modal/AreYouSureModal';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n TemplateCardContainer,\n CardHeader,\n ProfilePic,\n ParticipantCardBody,\n CardName,\n ParticipantCardFooter,\n ParticipantHealthCell,\n ParticipantHealthCellValue,\n CardFooter,\n FooterLine,\n ButtonWrapper,\n HoverIndicator,\n TraineeRowProfilePic,\n TraineeTD,\n FlexTDContent,\n TraineeRow,\n MessengerIcon,\n DuplicateIconImg,\n DuplicateIconCorner,\n ButtonsWrapper,\n} from './components';\n\nconst templateLengthMonth = {\n '30': '1 month',\n '60': '2 month',\n '90': '3 month',\n};\n\nconst TemplateCard = ({\n template,\n withoutFooterButton,\n selected,\n onSelect,\n layout,\n refetch,\n hideDuplicate,\n}) => {\n const history = useHistory();\n const [copyOpen, setCopyOpen] = useState(false);\n const [duplicateTemplate] = useMutation(duplicateTemplateMutation);\n const handleDuplicate = useCallback(async () => {\n try {\n await duplicateTemplate({\n variables: {\n uid: template?.uid,\n },\n });\n\n refetch();\n } catch (err) {\n console.log(err);\n }\n }, [duplicateTemplate, template, refetch]);\n\n const trainingTypesShortened = useMemo(() => {\n const name = template?.trainingTypes\n ?.map((a) => a?.name)\n ?.join(', ')\n .trim();\n if (!name) {\n return '';\n }\n\n if (name.length > 33) {\n return name.substring(0, 30) + '...';\n }\n\n return name;\n }, [template]);\n\n return (\n <>\n {layout === 'LIST' ? (\n \n \n \n \n \n {template?.name.substring(0, 1)}\n \n {template?.name}\n \n \n {template?.trainingTypes?.map((a) => a?.name)?.join(', ')}\n \n {templateLengthMonth[template?.programLength] || `${template?.programLength} days`}\n \n 08-10-20\n \n
\n {!hideDuplicate && (\n \n setCopyOpen(true)} />\n \n )}\n history.push(`template/${template?.uid}`)}\n style={{ marginLeft: '2rem' }}\n >\n View Template\n \n
\n
\n
\n ) : (\n \n \n {!hideDuplicate && (\n \n setCopyOpen(true)} />\n \n )}\n \n {!template?.image && template?.name?.substring(0, 1)}\n \n \n \n \n {template?.name}\n \n \n \n \n {trainingTypesShortened}\n \n \n \n {templateLengthMonth[template?.programLength] || `${template?.programLength} days`}\n \n \n \n \n {!withoutFooterButton && (\n \n \n history.push(`template/${template?.uid}`)}\n >\n View Template\n \n \n \n )}\n \n \n \n \n \n )}\n\n setCopyOpen(false)}\n submitModal={handleDuplicate}\n headingText={'Duplicate Template'}\n contentText={'Are you sure that you want to duplicate this template?'}\n />\n \n );\n};\n\nexport default TemplateCard;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 7.5%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Space-r')};\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n font-size: 1.6rem;\n padding: 4px 28px;\n min-height: 6.4rem;\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n text-align: ${({ centered }) => (centered ? 'center' : 'left')};\n`;\n\nexport const ModalContent = styled.div`\n width: 100%;\n display: flex;\n /* height: 100%; */\n flex-grow: 1;\n flex-direction: column;\n align-items: center;\n padding: 0 1rem;\n position: relative;\n`;\n\nexport const TemplateCardsPart = styled.div`\n width: 100%;\n display: flex;\n flex-grow: 1;\n padding: 1.6rem 2rem 0;\n max-height: Calc(82vh + 30px - 27rem);\n`;\n\nexport const TemplateCardsScrollable = styled.div`\n width: 100%;\n display: flex;\n background: #fafafa;\n border-radius: 8px;\n flex-grow: 1;\n padding: 1.6rem 0.4rem 2.4rem;\n max-height: 100%;\n &::before {\n content: '';\n position: absolute;\n bottom: 0;\n display: block;\n height: 1rem;\n width: Calc(100% - 6.4rem);\n max-width: 100%;\n z-index: 111111111;\n /* background: red; */\n box-shadow: 0px -1.4rem 3rem 0 #fafafa;\n }\n overflow: hidden;\n`;\n\nexport const TemplateCardsWrapper = styled.div`\n width: 100%;\n display: flex;\n height: 100%;\n flex-grow: 1;\n justify-content: space-around;\n flex-wrap: wrap;\n overflow-y: auto;\n padding: 0 1.2rem 1.2rem;\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\n\nexport const ModalContentMain = styled.div`\n flex-grow: 1;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalSubHeading = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: Roboto-r;\n font-size: 1.6rem;\n line-height: 2.4rem;\n justify-content: center;\n color: #848181;\n`;\n\nexport const ArrowIcon = styled.div`\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: #d2d1d1;\n background-image: url(${ICONS.ArrowDownWhite});\n background-position: center;\n background-size: 60%;\n transform: rotate(90deg);\n background-repeat: no-repeat;\n margin: 3.5rem auto 2rem;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const ModalRow = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid #05000033;\n flex-grow: ${({ grow }) => (grow ? '1' : 'unset')};\n height: ${({ upper }) => (upper ? '18.7%' : 'auto')};\n min-height: ${({ bottom }) => (!bottom ? '144px' : '116px')};\n max-height: 33%;\n position: relative;\n float: left;\n &:last-child {\n border-bottom: none;\n }\n`;\n\nexport const RowTitle = styled.div`\n position: absolute;\n height: 3.2rem;\n z-index: 1111;\n top: -16px;\n left: Calc(50% - 88px);\n background: #ffffff;\n width: 176px;\n border: 0.5px solid #05000033;\n border-radius: 8px;\n font-family: Space-r;\n font-size: 1.4rem;\n line-height: 3.2rem;\n text-align: center;\n background: #fafafa;\n`;\n\nexport const UpperRowCell = styled.div`\n flex-grow: 1;\n min-width: Calc(100% / 3 - 0.5px);\n border-right: ${({ mid }) => (mid ? '1px solid #05000033' : 'none')};\n border-left: ${({ mid }) => (mid ? '1px solid #05000033' : 'none')};\n background-image: ${({ background }) => `url(${background})`};\n background-size: cover;\n background-position: center;\n height: 100%;\n display: flex;\n justify-content: center;\n flex-direction: column;\n padding-bottom: 1.6rem;\n`;\n\nexport const UpperRowCellLine = styled.div`\n width: 1px;\n height: 100%;\n background: #05000033;\n margin: auto;\n`;\n\nexport const ProfilePic = styled.div`\n width: 5.6rem;\n height: 5.6rem;\n border: 4px solid #f1f0f0;\n background: #d8d8d8;\n border-radius: 50%;\n background-image: ${({ image }) => `url(${image})`};\n background-size: cover;\n background-position: center;\n margin: Calc(1.5vh - 4.4px) auto Calc(1.5vh - 6.4px);\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#ffffff')};\n text-transform: uppercase;\n font-size: 1.4rem;\n`;\n\nexport const ProfileName = styled.div`\n width: 100%;\n font-family: Gotham-r;\n line-height: max(20px, Calc(2vh - 5.8px));\n color: #4a4a4a;\n letter-spacing: 1px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: Calc(1.5vh - 6.4px);\n`;\n\nexport const GenderIcon = styled.div`\n width: 1.4rem;\n height: 1.4rem;\n background-image: ${({ gender }) =>\n gender === 'MALE' ? `url(${ICONS.Male})` : `url(${ICONS.Female})`};\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n margin: 0 6px;\n`;\n\nexport const ParameterRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n`;\nexport const ParameterCell = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.2rem;\n font-family: ${({ val }) => (val ? 'Space-b' : 'Roboto-l')};\n color: ${({ val }) => (val ? '#323232' : '#464646')};\n margin: ${({ val }) => (val ? '0 8px' : '0 1.6')};\n`;\n\nexport const MiddleRowCell = styled.div`\n flex: 1;\n min-width: Calc(100% / 6);\n flex-grow: ${({ grow }) => (grow ? grow : 1)};\n border-right: ${({ last }) => (last ? 'none' : '1px solid #05000033')};\n height: 100%;\n padding: Calc(5vh - 8px) 0 Calc(2vh - 2.2px);\n`;\n\nexport const BottomRowCell = styled.div`\n flex: 1;\n border-right: ${({ last }) => (last ? 'none' : '1px solid #05000033')};\n flex-grow: ${({ grow }) => (grow ? grow : 1)};\n height: 100%;\n text-align: center;\n font-size: 1.4rem;\n line-height: 2.1rem;\n font-family: Roboto-l;\n min-width: Calc(100% / 6);\n padding: ${({ grow }) => (grow === '4' ? '32px 44px 12px' : 0)};\n background: ${({ grow }) => (!grow ? '#fafafa' : 'transparent')};\n`;\n\nexport const ModalFooter = styled.div`\n text-align: center;\n justify-content: center;\n display: flex;\n padding: 3.2rem;\n`;\n\nexport const ModalButtonsRow = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n height: max(40px, 5.12vh);\n margin: 1.1% 0;\n`;\nexport const ModalButtonWrapper = styled.div`\n width: 195px;\n height: 100%;\n margin: 0 24px;\n`;\n\nexport const TotalPriceGreen = styled.span`\n font-family: Space-b;\n font-size: 2.4rem;\n line-height: 2.4rem;\n color: #00b972;\n padding: 2px 12px;\n`;\n\nexport const TotalPriceBold = styled.span`\n font-family: Gotham-r;\n font-size: 1.7rem;\n line-height: 2.4rem;\n letter-spacing: 0.6px;\n color: #373333;\n`;\n\nexport const MiddleRowCellIcon = styled.div`\n width: max(28px, Calc(4.3vh - 10px));\n height: max(28px, Calc(4.3vh - 10px));\n background-image: ${({ icon }) => `url(${icon})`};\n border: 0.5px solid rgba(0, 185, 114, 0.6);\n border-radius: 6px;\n margin: auto;\n background-repeat: no-repeat;\n background-position: center;\n`;\n\nexport const MiddleRowCellKey = styled.div`\n width: 100%;\n text-align: center;\n font-size: 1.4rem;\n padding: Calc(1.5vh - 4.4px) min(26px, Calc(4.5vh - 18px)) Calc(0.75vh - 2.2px);\n`;\n\nexport const MiddleRowCellValue = styled.div`\n width: 100%;\n text-align: center;\n font-size: 1.4rem;\n font-family: Roboto-l;\n padding: 0 min(26px, Calc(4.5vh - 18px));\n line-height: max(18px, Calc(2vh - 5.8px));\n`;\n\nexport const ModalMain = styled.div`\n padding: ${({ padding }) => (padding ? padding : '3.6rem')};\n`;\nexport const ModalTextArea = styled.div`\n max-height: 100%;\n width: 100%;\n`;\n\nexport const FlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div`\n width: Calc(50% - 12px);\n height: 4.8rem;\n margin-top: ${({ marginTop }) => (marginTop ? marginTop : '1.6rem')};\n`;\n\n// group parts\n\nexport const ModalGroupSide = styled.div`\n width: 32%;\n background: #f1f0f0;\n height: 100%;\n padding: 2.4rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n border-right: 1px solid #05000033;\n`;\n\nexport const GroupDetailsHeading = styled.div`\n width: 100%;\n background: rgba(255, 255, 255, 0.6);\n font-family: Space-r;\n font-size: 1.6rem;\n line-height: 2.4rem;\n letter-spacing: 0.1rem;\n padding: 1.6rem;\n text-align: center;\n border-radius: 8px;\n`;\n\nexport const GroupImageWrapper = styled.div`\n width: 11.2rem;\n height: 11.2rem;\n border-radius: 50%;\n background: #ffffff;\n padding: 0.4rem;\n border: 4px solid ${({ theme }) => theme.color.primary};\n margin: 2.4rem 2.4rem 2rem;\n`;\n\nexport const GroupImage = styled.div`\n width: 100%;\n height: 100%;\n background: #f1f0f0;\n background-image: url(${({ groupImage }) => groupImage});\n background-size: cover;\n background-position: center;\n border-radius: 50%;\n`;\n\nexport const GroupName = styled.div`\n font-family: Gotham-r;\n font-size: 1.8rem;\n line-height: 2.4rem;\n color: #4a4a4a;\n margin-bottom: 2rem;\n letter-spacing: 0.1rem;\n min-height: 2.4rem;\n`;\n\nexport const GroupParticipants = styled.div`\n font-family: Roboto-r;\n font-size: 1.4rem;\n line-height: 2.4rem;\n color: #323232;\n margin-bottom: 2.8rem;\n & > span {\n line-height: 2.4rem;\n color: #464646;\n font-family: Space-b;\n font-size: 1.6rem;\n padding: 0 1.6rem;\n }\n`;\n\nexport const GroupAbout = styled.div`\n font-family: Roboto-l;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #050000;\n padding: 0 2.2rem;\n flex-grow: 1;\n display: flex;\n align-items: center;\n text-align: center;\n`;\n\n// template\n","import { Field, Form, Formik } from 'formik';\nimport Modal from 'react-modal';\nimport React from 'react';\n\nimport TemplateFilter from '../../pages/program-template/TemplateFilter';\nimport { PseudoTemplateCard } from '../trainee-card/components';\nimport EmptyTemplate from '../empty-template/EmptyTemplate';\nimport TemplateCard from '../trainee-card/TemplateCard';\nimport CustomButton from '../button/CustomButton';\nimport IMAGES from '../../constants/images';\nimport { useTemplate } from '../../hooks';\nimport Loader from '../loader/Loader';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalFooter,\n ModalCloseX,\n ModalContent,\n TemplateCardsWrapper,\n TemplateCardsPart,\n TemplateCardsScrollable,\n} from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 111111111,\n },\n content: {\n width: '84%',\n maxWidth: '1400px',\n minWidth: '1140px',\n height: 'Calc(82vh + 30px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst ChooseTemplateModal = ({ modalOpen, closeModal, programUid, alert, refetch, programLength }) => {\n const {\n programTemplates,\n programTemplatesLoading,\n customTemplates,\n customTemplatesLoading,\n uploadTemplate,\n updateFilter,\n templateFilter,\n } = useTemplate({\n initialFilter: {\n templateLength: undefined,\n programType: { label: '- Choose -', value: undefined },\n searchBy: { label: 'Program Template', value: 'templates' },\n },\n });\n return (\n \n \n \n CHOOSE PROGRAM TEMPLATE\n X\n \n {\n closeModal();\n await uploadTemplate(programUid, v?.selectedTemplate, alert, programLength);\n refetch();\n }}\n >\n {({ setFieldValue }) => (\n \n \n \n\n \n \n {({ field }) => (\n \n \n {templateFilter?.searchBy?.value === 'templates' ? (\n <>\n {programTemplatesLoading ? (\n \n ) : !programTemplates?.length ? (\n <>\n {\n \n }\n \n ) : (\n \n {programTemplates?.map((template) => (\n \n setFieldValue(field.name, {\n id: template.uid,\n type: 'template',\n })\n }\n hideDuplicate\n />\n ))}\n\n \n \n \n \n \n \n )}\n \n ) : (\n <>\n {customTemplatesLoading ? (\n \n ) : !customTemplates?.length ? (\n <>\n {\n \n }\n \n ) : (\n \n {customTemplates?.map((program) => {\n return (\n \n setFieldValue(field.name, {\n id: program.uid,\n type: 'program',\n })\n }\n hideDuplicate\n />\n );\n })}\n\n \n \n \n \n \n \n )}\n \n )}\n \n \n )}\n \n \n \n \n \n Select Template\n \n \n \n )}\n \n \n \n );\n};\n\nexport default ChooseTemplateModal;\n","import React, { createContext, useMemo, useState } from 'react';\n\nconst CalendarDragContext = createContext(null);\n\nexport default CalendarDragContext;\n\nexport const CalendarDragProvider = ({ children, refetchCalendar }) => {\n const [isDragging, setIsDragging] = useState('');\n\n const contextValue = useMemo(() => ({ isDragging, setIsDragging, refetchCalendar }), [\n isDragging,\n refetchCalendar,\n ]);\n\n return (\n {children}\n );\n};\n","import React, { useState } from 'react';\nimport { Field, FieldArray } from 'formik';\n\nimport CustomInput from '../input/CustomInput';\nimport CustomSearch from '../input/CustomSearch';\nimport CustomButton from '../button/CustomButton';\nimport CustomTextArea from '../input/CustomTextArea';\nimport CustomInputClock from '../input/CustomInputClock';\nimport CustomInputDropdown from '../input/CustomInputDropdown';\nimport AddExerciseModal from '../add-exercise-modal.jsx/AddExerciseModal';\nimport {\n WorkoutBlockType,\n BlockExerciseUnit,\n BlockExerciseWeightType,\n} from '../../constants/enums';\n\nimport { useExercise } from '../../hooks';\n\nimport {\n WorkoutBlockForm,\n WorkoutBlockHeader,\n WorkoutBlockContent,\n AttributeWrapper,\n AttributeBullet,\n AttributeLabel,\n WorkoutBlockFooter,\n WorkoutBlockApplyButton,\n AttrCheckBox,\n ExerciseWrapper,\n ExerciseIndex,\n ExerciseContent,\n WorkoutBlockHeaderIconsWrapper,\n WorkoutBlockHeaderIcon,\n DeleteExerciseIcon,\n FlexWrapper,\n AsNeeded,\n AsNeededCheck,\n AttributeUnit,\n} from './components';\nimport Exercise from './Exercise';\n\nconst EdittingWorkoutBlock = ({\n block,\n index,\n setFieldValue,\n errors,\n touched,\n deleteSelf,\n setTouched,\n}) => {\n const { exercises, exercisesLoading, searchText, setSearchText, createNewExercise, loading } =\n useExercise();\n const [exerciseAdding, setExerciseAdding] = useState(null);\n\n const swapExercises = (blockIndex, x, y) => {\n const exercises = [...block.exercises];\n const tempExercise = exercises[x];\n exercises[x] = exercises[y];\n exercises[y] = tempExercise;\n setFieldValue(`blocks[${index}].exercises`, exercises);\n };\n\n // console.log('all', JSON.stringify(exercises?.getExercises));\n\n return (\n \n \n {block?.name}\n \n \n \n \n \n {block?.attributes?.map(\n (attr, i) =>\n attr?.name !== 'unit' && (\n \n \n \n {attr?.label}\n \n\n \n {({ field }) => (\n <>\n {attr?.type === 'clock' ? (\n \n {\n setFieldValue(field.name, v);\n if (block?.exercises?.length > 0 && attr.name === 'workTime') {\n const [, workM, workS] = v?.split(':');\n const quantity = Number(workM) * 60 + Number(workS);\n block.exercises.map((ex, j) => {\n setFieldValue(\n `blocks[${index}].exercises[${j}].quantity`,\n quantity,\n );\n });\n }\n }}\n disabled={attr?.asNeeded}\n value={attr?.asNeeded ? undefined : field.value}\n error={\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.attributes?.[i]?.value\n }\n />\n {typeof attr?.asNeeded === 'boolean' && (\n \n \n setFieldValue(\n `blocks[${index}].attributes[${i}].asNeeded`,\n !attr.asNeeded,\n )\n }\n />\n As Needed\n \n )}\n \n ) : attr?.name === 'text' ? (\n setFieldValue(field.name, v)}\n value={field.value}\n errorIcon={null}\n errorBorder\n error={\n !!(\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.attributes?.[i]?.value\n )\n }\n />\n ) : (\n <>\n {\n setFieldValue(field.name, v);\n if (\n block?.exercises?.length &&\n block?.type === WorkoutBlockType.STRENGTH &&\n attr?.name === 'sets' &&\n v > 0\n ) {\n if (block?.exercises?.length > v) {\n setFieldValue(\n `blocks[${index}].exercises`,\n block?.exercises?.slice(0, v),\n );\n } else if (block?.exercises?.length < v) {\n const exercisesToAdd = new Array(\n v - block?.exercises?.length,\n ).fill({\n ...block?.exercises?.[0],\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.REPS,\n weightType: BlockExerciseWeightType.KG,\n });\n setFieldValue(`blocks[${index}].exercises`, [\n ...block?.exercises,\n ...exercisesToAdd,\n ]);\n }\n }\n\n // if (v > 0 && block?.uniqueExercises) {\n // if (block?.exercises?.length > v) {\n // setFieldValue(\n // `blocks[${index}].exercises`,\n // block?.exercises?.slice(0, v),\n // );\n // } else if (block?.exercises?.length < v) {\n // const exercisesToAdd = new Array(v - block?.exercises?.length).fill(\n // {\n // quantity: 1,\n // weight: 0,\n // unit: BlockExerciseUnit.REPS,\n // weightType: BlockExerciseWeightType.KG,\n // },\n // );\n // setFieldValue(`blocks[${index}].exercises`, [\n // ...block?.exercises,\n // ...exercisesToAdd,\n // ]);\n // }\n // }\n }}\n outlined\n height=\"4rem\"\n borderRadius=\"8px\"\n value={field.value}\n style={{\n width: '9.4rem',\n margin: 0,\n textAlign: attr?.type === 'text' ? 'left' : 'center',\n outline: 'none',\n fontFamily: 'Space-r',\n flexGrow: attr?.type === 'text' ? '1' : '0',\n }}\n borderColor=\"transparent\"\n focusBorderColor=\"transparent\"\n backgroundColor=\"#f1f0f0cc\"\n error={\n touched?.blocks?.[index] &&\n !!errors?.blocks?.[index]?.attributes?.[i]?.value\n }\n errorIcon={false}\n />\n \n )}\n \n )}\n \n {/* {attr?.name === 'pace' && (\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n placeholder=\"-unit-\"\n error={\n touched?.blocks?.[index] && !!errors?.blocks?.[index]?.exercises?.[i]?.unit\n }\n />\n )}\n \n )} */}\n {attr?.name === 'unit' && attr?.textValue === 'Distance' && (\n meters\n )}\n \n ),\n )}\n {block?.type !== WorkoutBlockType.REST && block?.type !== WorkoutBlockType.CUSTOM && (\n <>\n (\n <>\n {\n setExerciseAdding(null);\n setSearchText(initialSearch);\n }}\n submitModal={async (v, edited, editedGlobal) => {\n const exercise = await createNewExercise(v);\n if (edited && editedGlobal) {\n const exerciseIndex = block.exercises.findIndex(\n (e) => e.exercise.id === exercise.editedExercise,\n );\n setFieldValue(\n `blocks[${index}].exercises[${exerciseIndex}].exercise`,\n exercise,\n );\n return;\n } else if (edited) {\n return;\n }\n if (block?.type === WorkoutBlockType.STRENGTH) {\n const setsQuantity = block?.attributes?.find(\n (x) => (x.name = 'sets'),\n )?.value;\n const exercisesToAdd = new Array(Number(setsQuantity)).fill({\n exercise: { ...v, ...exercise },\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n });\n setFieldValue(`blocks[${index}].exercises`, exercisesToAdd);\n } else if (block?.type === WorkoutBlockType.PILATESR) {\n push({\n exercise: { ...v, ...exercise },\n setting: v.setting || \"\",\n category: v.category || \"\",\n quantity: 1,\n weight: 0,\n notes: \"\",\n reps: \"1\",\n unit: BlockExerciseUnit.REPS,\n weightType: BlockExerciseWeightType.KG,\n });\n } else {\n const numberOfSets =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH ? 3 : null;\n const restTime =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH ? '00:00:30' : null;\n push({\n exercise: { ...v, ...exercise },\n quantity: 1,\n weight: 0,\n notes: \"\",\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n numberOfSets,\n restTime,\n });\n }\n }}\n initialValues={exerciseAdding}\n loading={loading}\n />\n {block?.type === WorkoutBlockType.STRENGTH && !!block?.exercises?.length && (\n \n \n \n \n {block?.exercises?.[0].exercise?.title || false}\n \n setFieldValue(`blocks[${index}].exercises`, [])}\n />\n \n \n )}\n {block?.exercises?.map((ex, i) => (\n \n ))}\n {/* {block?.uniqueExercises &&\n block?.exercises?.map((ex, subIndex) =>\n ex.exercise ? (\n {\n const { exercise, ...rest } = v;\n setFieldValue(`blocks[${index}].exercises[${subIndex}]`, rest);\n }}\n />\n ) : (\n \n \n {block?.indexPrefix} {subIndex + 1}\n \n \n {(block?.type !== WorkoutBlockType.STRENGTH ||\n !block?.exercises?.length) && (\n {\n setFieldValue(`blocks[${index}].exercises[${subIndex}]`, {\n exercise: v,\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n });\n }}\n createNew={(searchInput) =>\n setExerciseAdding({ title: searchInput, searchText })\n }\n viewOption={(option) =>\n setExerciseAdding({ ...option, searchText })\n }\n error={Boolean(\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.exercises[subIndex],\n )}\n />\n )}\n \n \n ),\n )} */}\n {/* {!block?.uniqueExercises && ( */}\n \n \n {block?.type !== WorkoutBlockType.STRENGTH && block?.exercises?.length + 1}\n \n {block?.type === WorkoutBlockType.RUN && (\n \n {\n push({\n exercise: v,\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.SECONDS,\n weightType: BlockExerciseWeightType.KG,\n });\n }}\n loading={exercisesLoading}\n options={exercises?.getExercises\n ?.filter(\n (x) =>\n !!{ run: true, walk: true, rest: true }[x.title?.toLowerCase()])\n .map((ex) => ({\n ...ex,\n label: ex.title,\n value: ex.uid,\n }))}\n style={{ margin: '0', maxHeight: '4rem' }}\n error={\n !block?.exercises?.length &&\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.exercises\n }\n />\n \n )}\n {block?.type === WorkoutBlockType.PILATESR && (\n \n {\n if (action === 'input-change' || action === 'set-value') {\n setSearchText(v);\n }\n }}\n onSelect={(v) => {\n push({\n exercise: v,\n setting: v.setting || \"\",\n reps: \"3\",\n notes: \"\",\n quantity: 1,\n weight: 0,\n unit: BlockExerciseUnit.REPS,\n weightType: BlockExerciseWeightType.KG,\n });\n }}\n createNew={(searchInput) =>\n setExerciseAdding({ title: searchInput, searchText, type: WorkoutBlockType.PILATESR})\n }\n viewOption={(option) => setExerciseAdding({ ...option, searchText })}\n options={exercises?.getExercises?.filter(\n (x) =>\n !!{ \"pilatesr\": true}[x.type?.toLowerCase()]) || []}\n value={searchText || ''}\n style={{ margin: '0' }}\n loading={exercisesLoading}\n error={\n !block?.exercises?.length &&\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.exercises\n }\n />\n {/* {*/}\n {/* push({*/}\n {/* exercise: v,*/}\n {/* setting: \"bla\",*/}\n {/* reps: \"3\",*/}\n {/* notes: \"notes bla\",*/}\n {/* quantity: 1,*/}\n {/* weight: 0,*/}\n {/* unit: BlockExerciseUnit.REPS,*/}\n {/* weightType: BlockExerciseWeightType.KG,*/}\n {/* });*/}\n {/* }}*/}\n {/* loading={exercisesLoading}*/}\n {/* options={exercises?.getExercises*/}\n {/* ?.map(e => {*/}\n {/* // console.log(e);*/}\n {/* return e;*/}\n {/* })*/}\n {/* ?.filter(*/}\n {/* (x) =>*/}\n {/* !!{ \"pilatesr\": true}[x.type?.toLowerCase()] &&*/}\n {/* !x.coach,*/}\n {/* )*/}\n {/* .map((ex) => ({*/}\n {/* ...ex,*/}\n {/* label: ex.title,*/}\n {/* value: ex.uid,*/}\n {/* }))}*/}\n {/* style={{ margin: '0', maxHeight: '4rem' }}*/}\n {/* error={*/}\n {/* !block?.exercises?.length &&*/}\n {/* touched?.blocks?.[index] &&*/}\n {/* errors?.blocks?.[index]?.exercises*/}\n {/* }*/}\n {/*/>*/}\n \n )}\n {(block?.type !== WorkoutBlockType.RUN && block?.type !== WorkoutBlockType.PILATESR) && (\n \n {(block?.type !== WorkoutBlockType.STRENGTH ||\n !block?.exercises?.length) && (\n {\n if (action === 'input-change' || action === 'set-value') {\n setSearchText(v);\n }\n }}\n onSelect={(v) => {\n if (block?.type === WorkoutBlockType.STRENGTH) {\n const setsQuantity = block?.attributes?.find(\n (x) => x.name === 'sets',\n )?.value;\n\n const exercisesToAdd = new Array(Number(setsQuantity)).fill({\n exercise: v,\n quantity: 1,\n weight: 0,\n notes: \"\",\n unit: BlockExerciseUnit.REPS,\n weightType: BlockExerciseWeightType.KG,\n });\n setFieldValue(`blocks[${index}].exercises`, exercisesToAdd);\n } else {\n const [, workM, workS] =\n block?.type === WorkoutBlockType.INTERVAL\n ? block?.attributes\n ?.find((x) => x.name === 'workTime')\n ?.value?.split(':')\n : '';\n const quantity =\n block?.type === WorkoutBlockType.INTERVAL\n ? workM * 60 + Number(workS)\n : 1;\n const unit =\n block.type === WorkoutBlockType.RUN ||\n block.type === WorkoutBlockType.INTERVAL\n ? BlockExerciseUnit.SECONDS\n : BlockExerciseUnit.REPS;\n const numberOfSets =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH ? 3 : null;\n const restTime =\n block?.type === WorkoutBlockType.CLASSICSTRENGTH\n ? '00:00:30'\n : null;\n push({\n exercise: v,\n quantity,\n weight: 0,\n unit,\n notes: \"\",\n weightType: BlockExerciseWeightType.KG,\n numberOfSets,\n restTime,\n });\n }\n }}\n createNew={(searchInput) =>\n setExerciseAdding({ title: searchInput, searchText })\n }\n viewOption={(option) => setExerciseAdding({ ...option, searchText })}\n options={exercises?.getExercises?.filter(\n (x) =>\n !{ \"pilatesr\": true}[x.type?.toLowerCase()]\n ) || []}\n value={searchText || ''}\n style={{ margin: '0' }}\n loading={exercisesLoading}\n error={\n !block?.exercises?.length &&\n touched?.blocks?.[index] &&\n errors?.blocks?.[index]?.exercises\n }\n />\n )}\n \n )}\n \n {/* )} */}\n \n )}\n >\n \n \n \n Comments & Indications\n \n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n error={touched?.blocks?.[index] && errors?.blocks?.[index]?.comment}\n />\n )}\n \n \n \n )}\n \n
\n {block?.type !== 'REST' && (\n <>\n {index === 0 && (\n \n {({ field }) => (\n \n setFieldValue(field.name, !field.value)}\n />\n Mark this block as Warmup\n \n )}\n \n )}\n \n {({ field }) => (\n \n setFieldValue(field.name, !field.value)}\n />\n Request Video\n \n )}\n \n \n )}\n
\n \n {\n await setTouched({ blocks: { [index]: true } });\n const invalid = !!errors?.blocks?.[index];\n if (!invalid) {\n setFieldValue('editingBlockIndex', null);\n }\n }}\n >\n Apply\n \n \n
\n
\n
\n );\n};\n\nexport default EdittingWorkoutBlock;\n","import * as Yup from 'yup';\n\n// attributes\nconst attributeName = Yup.string().required('required');\nconst attributeType = Yup.string('type???');\nconst attributeValue = Yup.string().when('type', (value, schema) => {\n if (value === 'clock') {\n return schema\n .required('required')\n .matches(/^((0|1|)[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/, 'invalid value for time');\n } else if (value === 'text') {\n return schema.required('required');\n } else if (value === 'nullable') {\n return schema.nullable();\n } else if (value === 'unit') {\n return schema.required('required').oneOf(['Distance', 'Time']);\n }\n return schema.required('required').matches(/^([0-9])*[1-9][0-9]*$/, 'only digits are allowed');\n});\nconst attribute = Yup.object().shape({\n name: attributeName,\n value: attributeValue,\n type: attributeType,\n});\nconst attributes = Yup.array().of(attribute);\n\n// exercise\nconst id = Yup.string().required('required');\nconst quantity = Yup.number().positive().required('required');\nconst unit = Yup.string().required('required');\nconst weight = Yup.number().min(0, 'invalid');\nconst exercise = Yup.object().shape({\n exercise: Yup.object().shape({ id }),\n quantity,\n unit,\n weight,\n});\nconst exercises = Yup.array()\n .of(exercise)\n .when('type', (value, schema) => {\n if (value === 'REST' || value === 'CUSTOM') {\n return schema.nullable();\n }\n return schema.min(1, 'add at least one exercise');\n });\n\n// block\nconst blockName = Yup.string();\nconst blockType = Yup.string().oneOf([\n 'AMRAP',\n 'RFT',\n 'RNFT',\n 'STRENGTH',\n 'SUPERSETS',\n 'QUALITYSETS',\n 'EMOM',\n 'REST',\n 'CUSTOM',\n 'RUN',\n 'INTERVALS',\n 'CLASSICSTRENGTH',\n 'PILATESR',\n]);\nconst comment = Yup.string().nullable();\nconst isWarmUp = Yup.boolean();\nconst videoRequested = Yup.boolean();\n\nconst BlockSchema = Yup.object().shape({\n name: blockName,\n type: blockType,\n comment,\n isWarmUp,\n videoRequested,\n attributes,\n exercises,\n});\n\nconst blocks = Yup.array()\n .required('Add at Least One Block')\n .min(1, 'Add at Least One Block')\n .of(BlockSchema);\n\n// calendar\nconst name = Yup.string().trim().required('Required').min(2, 'Too Short');\nconst type = Yup.string().oneOf(['WORKOUT', 'REST'], 'invalid type');\nconst beforeMessage = Yup.string();\nconst afterMessage = Yup.string();\n\nexport const CalendarSchema = Yup.object().shape({\n name,\n type,\n beforeMessage,\n afterMessage,\n blocks,\n});\n\nconst coachFee = Yup.number().min(1).max(100).required();\n\nexport const CoachFeeSchema = Yup.object().shape({\n coachFee\n});\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport {\n WorkoutBlockDropBox,\n WorkoutBlockDropBoxDashed,\n WorkoutBlockDropBoxPlus,\n TooltipBlocksWrapper,\n TooltipWorkoutBlock,\n WeekDayCheckRest,\n AttrCheckBox,\n} from './components';\nimport CustomTooltip from '../tooltip/CustomTooltip';\nimport BLOCKS from '../../constants/workoutBlocks';\n\nconst WorkoutDropbox = ({\n setFieldValue,\n setTouched,\n errors,\n push,\n values,\n touched,\n noText,\n draggingBlock,\n setDraggingBlock,\n pushCallback = () => {},\n week,\n}) => {\n const [tooltipOpen, setTooltipOpen] = useState(false);\n\n const dropBoxRef = useRef(null);\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false);\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, []);\n\n const handleClickOutside = (event) => {\n if (dropBoxRef.current && !dropBoxRef.current.contains(event.target)) {\n setTooltipOpen(false);\n }\n };\n\n return (\n \n {\n if (!draggingBlock) {\n return;\n }\n e.preventDefault();\n e.target.style.background = '#ffffff';\n await setTouched({\n blocks: { [values.editingBlockIndex]: true },\n });\n const invalid = !!errors?.blocks?.[values.editingBlockIndex];\n if (!invalid) {\n let exes = [];\n\n if (draggingBlock.uniqueExercises) {\n exes = Array(draggingBlock.attributes[draggingBlock.valueAttribute].value)\n .fill(false)\n .map((_, index) => ({\n quantity: 1,\n unit: 'REPS',\n weightType: 'KG',\n }));\n }\n const filledBlock = week ? { ...draggingBlock } : {};\n\n push({\n ...draggingBlock,\n exercises: exes,\n attributes: Object.keys(draggingBlock?.attributes)?.map(\n (key) => draggingBlock.attributes[key],\n ),\n ...filledBlock,\n });\n pushCallback();\n\n if (!week) {\n setFieldValue('editingBlockIndex', values?.blocks?.length || 0);\n }\n setDraggingBlock(null);\n }\n }}\n onDragOver={(e) => {\n e.preventDefault();\n if (draggingBlock && e.target.className.slice(-8) === 'drop-box') {\n e.target.style.borderColor = '#15DF68';\n e.target.style.background = 'rgba(0,255,145,0.3)';\n }\n }}\n onDragLeave={(e) => {\n e.preventDefault();\n if (draggingBlock && e.target.className.slice(-8) === 'drop-box') {\n e.target.style.borderColor = ' #96949455';\n e.target.style.background = '#fff';\n }\n }}\n onMouseOver={(e) => {\n if (e.target.className.slice(-8) === 'drop-box') {\n e.preventDefault();\n e.target.style.borderColor = '#15DF68';\n }\n }}\n onMouseOut={(e) => {\n if (e.target.className.slice(-8) === 'drop-box') {\n e.preventDefault();\n e.target.style.borderColor = ' #96949455';\n }\n }}\n onClick={() => setTooltipOpen((curr) => !curr)}\n ref={dropBoxRef}\n >\n \n {tooltipOpen && (\n {}}\n style={{\n width: '23.6rem',\n left: 'Calc(12px - 11.8rem)',\n padding: '0.7rem 0.2rem 0.7rem 0',\n display: 'block',\n height: 'fit-content',\n }}\n >\n \n {Array.from(Object.keys(BLOCKS))?.map((key, i) => {\n const block = BLOCKS[key];\n return (\n {\n setFieldValue('isRest', false);\n await setTouched({\n blocks: { [values.editingBlockIndex]: true },\n });\n const invalid = !!errors?.blocks?.[values.editingBlockIndex];\n if (!invalid) {\n let exes = [];\n\n if (block.uniqueExercises) {\n exes = Array(block.attributes[block.valueAttribute].value)\n .fill(false)\n .map((_, index) => ({\n quantity: 1,\n unit: 'REPS',\n weightType: 'KG',\n }));\n }\n\n push({\n ...block,\n exercises: exes,\n attributes: Object.keys(block?.attributes)?.map(\n (key) => block.attributes[key],\n ),\n });\n\n setFieldValue('editingBlockIndex', values?.blocks?.length || 0);\n }\n }}\n >\n {block.name}\n \n );\n })}\n \n \n )}\n \n {!noText &&\n ((!!touched.blocks && typeof errors?.blocks === 'string' && errors?.blocks) ||\n 'Drag and Drop a Block')}\n {week &&\n ((!values?.blocks?.length && (\n \n {\n e.stopPropagation();\n if (!values.isRest) {\n setFieldValue('blocks', undefined);\n }\n setFieldValue('isRest', !values.isRest);\n }}\n />\n Mark as a Rest day\n \n )) || (\n Add New Block\n ))}\n \n \n );\n};\n\nexport default WorkoutDropbox;\n","import React, { useMemo, useRef, useState, useCallback } from 'react';\nimport { Field, FieldArray, Form, Formik } from 'formik';\nimport Modal from 'react-modal';\n\nimport Loader from '../loader/Loader';\nimport WorkoutBlock from './WorkoutBlock';\nimport CustomInput from '../input/CustomInput';\nimport CustomButton from '../button/CustomButton';\nimport BLOCKS from '../../constants/workoutBlocks';\nimport { CalendarType } from '../../constants/enums';\nimport CustomTextArea from '../input/CustomTextArea';\nimport EdittingWorkoutBlock from './EdittingWorkoutBlock';\nimport { CalendarSchema } from '../../schemas/program/coachProgram';\n\nimport { useUtils } from '../../hooks';\n\nimport {\n WholeWrapper,\n ModalHeader,\n ModalCloseX,\n ModalColumn,\n ModalHeaderCenterLine,\n LeftSideBlock,\n LeftSideBlockTitle,\n MessageCheck,\n MessageCheckBox,\n ContentWrapper,\n RightColumnContainer,\n WorkoutBlocksBox,\n DraggableSign,\n WorkoutBlocksContainer,\n PseudoWorkoutBlock,\n ModalFooter,\n ColumnsWrapper,\n ContentContainer,\n WorkoutBlockItem,\n LeftSideBlockOptional,\n WorkoutBlocksBoxScrollable,\n BeforeExitModal,\n BeforeExitModalContents,\n} from './components';\nimport WorkoutDropbox from './WorkoutDropbox';\nimport useCalendar from '../../hooks/calendar';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 3333,\n },\n content: {\n width: '74%',\n maxWidth: '1320px',\n minWidth: '1080px',\n height: 'Calc(82vh + 30px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n pointerEvents: 'all',\n },\n};\n\nconst AddCalendarModal = ({ day, closeModal, submitModal, loading, readOnly, coachProgramUid }) => {\n const [draggingBlock, setDraggingBlock] = useState(null);\n const [showBeforeExitModal, setShowBeforeExitModal] = useState(false);\n\n const formikRef = useRef();\n\n const { calendars, calendarsLoading } = useCalendar({\n coachProgramUid,\n startDate: day?.programDay,\n calendarUid: day?.uid,\n });\n\n const WORKOUT = useMemo(() => {\n if (Array.isArray(calendars)) {\n return calendars?.find((x) => x.type === 'WORKOUT');\n }\n\n return calendars;\n }, [calendars]);\n console.log(WORKOUT);\n const { getWorkoutBlocksByWorkout } = useUtils();\n\n const iniatialBlocks = useMemo(() => getWorkoutBlocksByWorkout(WORKOUT?.workout), [\n WORKOUT,\n getWorkoutBlocksByWorkout,\n ]);\n\n const initialValues = useMemo(\n () => ({\n name: WORKOUT ? WORKOUT?.workout?.name : `Day ${day?.programDay}`,\n beforeMessageChecked: !!WORKOUT?.workout?.beforeMessage,\n beforeMessage: WORKOUT ? WORKOUT?.workout?.beforeMessage : '',\n afterMessageChecked: !!WORKOUT?.workout?.afterMessage,\n afterMessage: WORKOUT ? WORKOUT?.workout?.afterMessage : '',\n type: CalendarType.WORKOUT,\n blocks: iniatialBlocks,\n editingBlockIndex: null,\n }),\n [day, WORKOUT, iniatialBlocks],\n );\n\n const hasUnsavedChanges = useCallback(() => {\n if (formikRef?.current) {\n let a = { ...formikRef.current.values };\n let b = { ...initialValues };\n\n a.blocks = a.blocks && a.blocks.length === 0 ? undefined : a.blocks;\n delete a.editingBlockIndex;\n delete b.editingBlockIndex;\n\n return JSON.stringify(a) !== JSON.stringify(b);\n } else {\n return false;\n }\n }, [initialValues, formikRef]);\n\n return (\n {\n if (!readOnly && hasUnsavedChanges()) {\n setShowBeforeExitModal(true);\n } else {\n closeModal();\n }\n }}\n isOpen={!!day}\n style={customStyles}\n contentLabel=\"Program Request\"\n ariaHideApp={false}\n >\n {loading || calendarsLoading ? (\n \n ) : (\n {\n submitModal(day?.programDay, v, WORKOUT?.workout?.uid);\n closeModal();\n }}\n validationSchema={CalendarSchema}\n >\n {({ setFieldValue, errors, validateForm, touched, values, setTouched }) => (\n
\n \n \n \n {`Day ${day?.programDay}`}\n \n WORKOUT NAME\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n borderRadius=\"8px\"\n error={touched[field.name] && errors[field.name]}\n />\n )}\n \n \n \n \n SCHEDULE MESSAGE(Optional)\n \n \n {({ field }) => (\n \n setFieldValue(field.name, !field.value)}\n />\n Before workout\n \n )}\n \n \n {({ field }) => (\n <>\n {!!values.beforeMessageChecked && (\n setFieldValue(field.name, v)}\n value={field.value}\n />\n )}\n \n )}\n \n \n {({ field }) => (\n \n setFieldValue(field.name, !field.value)}\n />\n After workout\n \n )}\n \n \n {({ field }) => (\n <>\n {!!values.afterMessageChecked && (\n setFieldValue(field.name, v)}\n value={field.value}\n />\n )}\n \n )}\n \n \n \n \n \n
\n \n
\n \n \n \n (\n <>\n {values?.blocks?.map((block, i) =>\n i === values?.editingBlockIndex ? (\n {\n remove(i);\n setFieldValue('editingBlockIndex', null);\n }}\n />\n ) : (\n {\n remove(i);\n const beforeEditting = values.editingBlockIndex > i;\n if (beforeEditting && values.editingBlockIndex) {\n setFieldValue(\n 'editingBlockIndex',\n values.editingBlockIndex - 1,\n );\n }\n }}\n duplicateSelf={(v) => {\n insert(i + 1, v);\n }}\n isFirst={i === 0}\n isLast={i === values?.blocks?.length - 1}\n orderUp={() => {\n const clone = block;\n if (i > 0) {\n const previousOne = values?.blocks?.[i - 1];\n replace(i, previousOne);\n replace(i - 1, clone);\n if (values?.editingBlockIndex === i - 1) {\n setFieldValue('editingBlockIndex', i);\n }\n }\n }}\n orderDown={() => {\n const clone = block;\n if (i < values?.blocks?.length - 1) {\n const nextOne = values?.blocks?.[i + 1];\n replace(i, nextOne);\n replace(i + 1, clone);\n if (values?.editingBlockIndex === i + 1) {\n setFieldValue('editingBlockIndex', i);\n }\n }\n }}\n setEditting={async () => {\n await setTouched({\n blocks: { [values.editingBlockIndex]: true },\n });\n const invalid = !!errors?.blocks?.[values.editingBlockIndex];\n if (!invalid) {\n setFieldValue('editingBlockIndex', i);\n }\n }}\n />\n ),\n )}\n \n \n )}\n >\n \n \n \n \n \n
\n {\n if (!readOnly && hasUnsavedChanges()) {\n setShowBeforeExitModal(true);\n } else {\n closeModal();\n }\n }}\n >\n X\n \n \n \n You have unsaved changes. Do you want to save your changes?\n {\n setShowBeforeExitModal(false);\n closeModal();\n }}\n >\n No, thank you\n \n\n setShowBeforeExitModal(false)}\n >\n Yes, please\n \n \n \n \n \n \n \n DRAG A BLOCK\n \n {Object.keys(BLOCKS)?.map((key, i) => {\n const block = BLOCKS[key];\n return (\n setDraggingBlock(block)}\n key={i}\n active={\n typeof values.editingBlockIndex === 'number' &&\n values.blocks[values.editingBlockIndex].type === block.type\n }\n >\n {block.name}\n \n );\n })}\n \n \n \n \n \n \n \n \n {readOnly ? (\n \"This workout belongs to a global template. You can't change it\"\n ) : (\n \n Save & Close\n \n )}\n {/* \n Save & Edit Next Day\n */}\n \n \n \n )}\n \n )}\n \n );\n};\n\nexport default AddCalendarModal;\n","import React from 'react';\nimport Modal from 'react-modal';\nimport styled from 'styled-components';\nimport { ModalFooter } from '../add-calendar-modal/components';\nimport CustomButton from '../button/CustomButton';\n\nconst modalStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 3335,\n },\n content: {\n // height: '515px',\n width: '536px',\n borderRadius: '12px',\n backgroundColor: '#FFFFFF',\n boxShadow: '0 4px 10px 0 rgba(74,74,74,0.12)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n // borderRadius: '8px',\n border: 'none',\n padding: '0',\n },\n};\n\nconst MessageText = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n font-family: Space-r;\n font-size: 1.8rem;\n line-height: 2.4rem;\n padding: 1.8rem;\n`;\n\nconst ConfirmModal = ({\n isOpen,\n closeModal,\n message,\n handleSubmit,\n cancelText = 'Cancel',\n okText = 'Ok',\n}) => {\n return (\n \n {message}\n \n \n {cancelText}\n \n \n {okText}\n \n \n \n );\n};\n\nexport default ConfirmModal;\n","import styled, { css } from 'styled-components';\nimport ICONS from '../../constants/icons';\nimport React from 'react';\nimport { WorkoutStatus } from '../../constants/enums';\n\nconst statusToBorderColor = ({ status, theme }) => {\n if (!status) return '#e5e5e5';\n\n switch (status) {\n case WorkoutStatus.DONE:\n return theme.color.primary;\n case WorkoutStatus.UNDONE:\n return theme.color.error;\n default:\n return '#969494';\n }\n};\n\nconst statusToHeaderBackground = ({ status, theme }) => {\n if (!status) return '#F1F0F0';\n\n switch (status) {\n case WorkoutStatus.DONE:\n return 'rgba(0,255,145,0.25)';\n case WorkoutStatus.UNDONE:\n return 'rgba(245,10,79,0.2)';\n default:\n return 'rgba(210,209,209,0.56)';\n }\n};\n\nexport const WholeWrapper = styled.div`\n flex-grow: 1;\n min-height: 100%;\n max-height: 100%;\n display: flex;\n flex-direction: column;\n width: 80%;\n`;\nexport const CalendarContainer = styled.div`\n flex-grow: 1;\n padding: 3.2rem;\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\n\nconst TabContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 163px;\n cursor: pointer;\n position: relative;\n border-right: 1px solid #e9eaed;\n`;\n\nconst TabText = styled.span`\n opacity: ${({ active }) => (active ? 1 : 0.8)};\n color: #373333;\n font-family: ${({ active }) => (active ? 'Roboto-m' : 'Roboto-r')};\n font-size: 14px;\n letter-spacing: 0;\n line-height: ${({ active }) => (active ? 24 : 21)}px;\n padding: 2.4rem 0;\n`;\n\nconst TabBorder = styled.div`\n height: 4px;\n width: 163px;\n border-radius: 100px 100px 0 0;\n background-color: #00ff91;\n position: absolute;\n bottom: -2px;\n`;\n\nexport const Tab = ({ text, onClick, active }) => (\n \n {text}\n {active && }\n \n);\n\nexport const ButotnContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding-right: 36px;\n height: 44px;\n`;\nexport const ContentHeader = styled.div`\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid #e9eaed;\n height: 9.4rem;\n width: 100%;\n`;\n\nexport const Tabs = styled.div`\n display: flex;\n`;\n\nexport const ButtonText = styled.span`\n margin-left: 59px;\n margin-right: 59px;\n`;\n\nexport const CalendarHeading = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 2.4rem;\n`;\n\nexport const CalendarBeginning = styled.div`\n font-size: 1.8rem;\n line-height: 2.4rem;\n color: #050000cc;\n font-family: Space-r;\n display: flex;\n align-items: center;\n`;\n\nexport const CalendarBeginningDateWrapper = styled.div`\n width: 196px;\n`;\n\nexport const CalendarUploadTemplate = styled.div`\n font-size: 1.6rem;\n line-height: 2.4rem;\n color: #050000cc;\n font-family: Roboto-r;\n display: flex;\n align-items: center;\n`;\n\nexport const CalendarUploadIcon = styled.div`\n border-radius: 8px;\n padding: 20px;\n background-image: url(${ICONS.Upload});\n cursor: pointer;\n background-position: center;\n background-size: contain;\n margin-left: 1.6rem;\n`;\n\nexport const CalendarMain = styled.div`\n border-radius: 8px;\n border: 1px solid #dededecc;\n flex-grow: 1;\n max-height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n &:after {\n content: '';\n position: absolute;\n z-index: 1;\n bottom: 0;\n left: 0;\n pointer-events: none;\n background-image: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 0),\n rgba(255, 255, 255, 0.8) 80%,\n rgba(255, 255, 255, 1) 90%\n );\n width: 100%;\n height: 10rem;\n border-radius: 8px;\n }\n`;\n\nexport const CalendarHeadingTableWrapper = styled.div`\n background: rgba(5, 0, 0, 0.01);\n padding-right: 8px;\n border-bottom: 1px solid #dededecc;\n`;\nexport const CalendarHeadingTable = styled.table`\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n`;\nexport const RelativeBox = styled.div`\n position: relative;\n flex-grow: 1;\n overflow: visible;\n margin-right: 4px;\n max-height: 1200px;\n height: 100%;\n`;\nexport const CalendarTableWrapper = styled.div`\n position: absolute;\n width: Calc(100% + 2rem);\n left: -2rem;\n padding-left: 2rem;\n max-height: 100%;\n height: 100%;\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 4px;\n border-radius: 2px;\n background: transparent;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\nexport const CalendarTable = styled.table`\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n & * > tr:hover * > .copy_week_btn,\n & * > tr:hover * > .paste_week_btn {\n display: block;\n }\n & .paste_week_btn {\n width: 1.9rem;\n height: 1.9rem;\n margin-top: 28px;\n }\n`;\n\nexport const CopyWeekButton = styled.div`\n width: 1.6rem;\n height: 1.6rem;\n position: absolute;\n left: 0.2rem;\n background-image: url(${({ paste }) => (paste ? ICONS.PasteDay : ICONS.CopyDay)});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n top: Calc(50% - 0.8rem);\n cursor: pointer;\n display: none;\n &:hover {\n transform: scale(1.05);\n & > .wit_tooltip {\n display: block;\n }\n }\n`;\n\nexport const EditWeekButton = styled.div`\n width: 1.6rem;\n height: 1.6rem;\n position: absolute;\n right: 0.2rem;\n background-image: url(${ICONS.Edit});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n top: Calc(50% - 0.8rem);\n cursor: pointer;\n /* display: none; */\n &:hover {\n transform: scale(1.05);\n }\n`;\nexport const CalendarThead = styled.thead`\n width: 100%;\n border-radius: 12px 12px 0 0;\n`;\nexport const CalendarTbody = styled.tr`\n width: 100%;\n height: 100%;\n background: red;\n`;\nexport const CalendarTh = styled.th`\n padding: 1.2rem;\n text-align: center;\n font-size: 1.4rem;\n color: #373333;\n font-weight: 500;\n line-height: 2rem;\n border-right: 1px solid #dededecc;\n &:last-child {\n border-right: none;\n }\n`;\n\nexport const CalendarTd = styled.td`\n padding: 1.6rem;\n border-bottom: 1px solid #dededecc;\n border-right: 1px solid #dededecc;\n &:last-child {\n border-right: none;\n }\n &:first-child {\n padding-left: 2.4rem;\n }\n position: relative;\n`;\n\n// day\n\nexport const CalendarDayWrapper = styled.div`\n width: 100%;\n border: 1px solid\n ${({ status, theme }) =>\n status\n ? status === 'rest'\n ? '#969494'\n : status === 'done'\n ? theme.color.primary\n : status === 'undone'\n ? theme.color.error\n : '#FFCC00'\n : '#e5e5e5'};\n border-radius: 8px;\n cursor: pointer;\n &:hover > * .hover-button {\n display: flex;\n }\n &:hover > * .completed {\n display: none;\n }\n &:hover > * .done {\n display: none;\n }\n &:hover > * .plus-icon {\n opacity: 1;\n }\n &:hover > .background-coloring {\n background: ${({ status }) => (!status ? 'rgba(0,255,145,0.25)' : '')};\n }\n &:hover,\n :hover > .border-coloring {\n border-color: ${({ status, theme }) => (!status ? theme.color.primary : '')};\n }\n`;\n\nexport const CalendarDayHeader = styled.div`\n background: ${({ status }) =>\n status\n ? status === 'rest'\n ? 'rgba(210,209,209,0.56)'\n : status === 'done'\n ? 'rgba(0,255,145,0.25)'\n : status === 'undone'\n ? 'rgba(245,10,79,0.2)'\n : 'rgba(255,204,0,0.48)'\n : '#f1f0f0'};\n border-radius: 8px 8px 0 0;\n padding: 1.2rem;\n text-align: center;\n font-family: Roboto-l;\n font-size: 1.2rem;\n line-height: 1.6rem;\n color: #05000099;\n border-bottom: 1px solid\n ${({ status, theme }) =>\n status\n ? status === 'rest'\n ? '#969494'\n : status === 'done'\n ? theme.color.primary\n : status === 'undone'\n ? theme.color.error\n : '#FFCC00'\n : '#e5e5e5'};\n`;\n\nexport const CalendarDayNum = styled.div`\n width: 100%;\n font-family: ${({ isToday }) => (isToday ? 'Space-b' : 'Space-r')};\n text-align: center;\n font-size: 1.8rem;\n line-height: 2.6rem;\n color: #373333;\n`;\n\nexport const CalendarDayMain = styled.div`\n width: 100%;\n height: 14.2rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n position: relative;\n`;\n\nexport const CalendarDayPlusIcon = styled.div`\n width: ${({ size }) => size};\n height: ${({ size }) => size};\n background-image: url(${ICONS.PlusIcon});\n background-size: contain;\n opacity: ${({ isOepn }) => (isOepn ? 1 : 0.5)};\n position: relative;\n`;\n\nexport const CalendarDayTitle = styled.div`\n flex-grow: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 1.2rem;\n line-height: 2.1rem;\n color: #4a4a4a;\n text-align: center;\n ${({ clickable }) =>\n clickable && {\n cursor: 'pointer',\n }}\n`;\n\nexport const Ellipsis = styled.div`\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const CalendarDayStatus = styled.div`\n padding: 1.2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 1.2rem 1.2rem;\n line-height: 2.1rem;\n font-family: Roboto-l;\n color: #05000099;\n font-size: 1.2rem;\n line-height: 1.6rem;\n`;\n\nexport const ButtonsWrapper = styled.div`\n width: 100%;\n justify-content: space-between;\n padding: 0 1.2rem;\n display: none;\n`;\n\nexport const DayButton = styled.div`\n width: Calc(50% - 0.4rem);\n display: flex;\n justify-content: center;\n align-items: center;\n background: #f1f0f0;\n border-radius: 4px;\n font-size: 1.4rem;\n font-family: Roboto-l;\n cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};\n padding: 0.4rem 0 0.4rem 0.2rem;\n`;\n\nexport const DayViewEditButton = styled.div`\n width: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 4px;\n font-size: 1.4rem;\n padding: 0.4rem 0 0.4rem 0.2rem;\n font-family: Roboto-l;\n cursor: pointer;\n border: 1px solid ${statusToBorderColor};\n`;\n\nexport const ButtonIcon = styled.div`\n padding: 0.6rem;\n margin-left: 0.6rem;\n background-image: url(${({ icon }) => icon});\n background-position: center;\n background-size: contain;\n`;\n\nexport const MessageContainer = styled.div`\n opacity: 0.6;\n color: #050000;\n font-family: Roboto-l;\n font-size: 1.2rem;\n font-weight: 300;\n letter-spacing: 0;\n line-height: 1.6rem;\n text-align: center;\n margin: 0 0.4rem;\n`;\n\nexport const MessageIcon = styled.img`\n width: 1.4rem;\n height: 1.4rem;\n margin-right: 0.6rem;\n`;\n\nexport const DayContainer = styled.div`\n border: 1px solid ${statusToBorderColor};\n border-radius: 8px;\n :hover {\n box-shadow: 0px 2px 4px #d0d0c8;\n\n .plus-icon {\n opacity: 1;\n }\n\n .hover-hide {\n display: none;\n }\n\n .hover-show {\n display: flex;\n }\n }\n\n .day-header {\n background-color: ${statusToHeaderBackground};\n }\n`;\n\nexport const DayHeader = styled.div`\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n height: 6.7rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport const DayBody = styled.div`\n height: 8.65rem;\n`;\n\nexport const DayFooter = styled.div`\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n height: 5.5rem;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n padding-bottom: 1.25rem;\n`;\n\nexport const DayFooterText = styled.span`\n margin-top: auto;\n opacity: 0.6;\n color: #050000;\n font-family: Roboto-l;\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.6rem;\n text-align: center;\n`;\n\nexport const DayWorkout = styled.div`\n margin-top: 0.35rem;\n height: 4.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n`;\n\nexport const DayMessage = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n padding-bottom: 1.9rem;\n`;\n\nexport const CalendarDayDate = styled.span`\n opacity: 0.8;\n color: #050000;\n font-family: ${({ isToday }) => (isToday ? 'Roboto-b' : 'Roboto-l')};\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.6rem;\n text-align: center;\n`;\n\nexport const DropdownContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n height: 14.15rem;\n cursor: pointer;\n position: relative;\n`;\n\nexport const DropdownContainerSmall = styled.span`\n cursor: pointer;\n`;\n\nexport const HoverButtons = styled.div`\n position: absolute;\n right: 2px;\n top: 2px;\n display: none;\n z-index: 1;\n`;\n\nexport const HoverContainer = styled.div`\n box-sizing: border-box;\n width: 14.7rem;\n min-height: 3.2rem;\n border-radius: 4px;\n cursor: ${({ draggable }) => (draggable ? 'grab' : 'default')};\n border: 1px solid transparent;\n position: relative;\n :hover {\n border-color: #00ff91;\n background-color: rgba(0, 255, 145, 0.25);\n\n ${HoverButtons} {\n display: block;\n }\n }\n ${({ showDroppable }) =>\n showDroppable &&\n css`\n border: 2px dotted rgba(0, 255, 145, 0.4);\n background-color: rgba(0, 255, 145, 0.06);\n `};\n ${({ showReady }) =>\n showReady &&\n css`\n border: 2px solid transparent;\n background-color: rgba(0, 255, 145, 0.4);\n `};\n ${({ onClick }) => ({ cursor: typeof onClick === 'function' ? 'pointer' : 'default' })}\n`;\n\nexport const HoverButton = styled.img`\n width: 2rem;\n height: 2rem;\n cursor: pointer;\n margin: 0.2rem;\n`;\n\nexport const EmptyActions = styled.div`\n position: absolute;\n top: 1rem;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n z-index: 1;\n`;\n\nexport const CardSecondaryContent = styled.div`\n width: 100%;\n padding: 1rem 0.8rem;\n display: flex;\n justify-content: space-between;\n`;\n\nexport const CardSecondaryContentButton = styled.div`\n flex-grow: 1;\n padding: 0.8rem;\n height: 3.4rem;\n margin: 0.4rem;\n border-radius: 0.4rem;\n cursor: pointer;\n display: flex;\n justify-content: center;\n background: ${({ plus }) => (plus ? 'transparent' : '#f1f0f0')};\n align-items: center;\n position: relative;\n &:hover {\n & > .wit_tooltip {\n display: block;\n }\n }\n`;\nexport const CardSecondaryContentButtonIcon = styled.div`\n width: 2.4rem;\n height: 2.4rem;\n background-image: ${({ icon }) => `url(${icon})`};\n background-repeat: no-repeat;\n background-position: center;\n background-size: ${({ plus }) => (plus ? '1.6rem' : 'contain')};\n border-radius: 0.4rem;\n`;\nexport const TooltipHeader = styled.div`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n`;\nexport const TooltipHeaderIcon = styled.div`\n width: 1.4rem;\n height: 1.4rem;\n margin: 0.2rem;\n background-image: url(${({ edit }) => (edit ? ICONS.EditSimpleGrey : ICONS.BinSimpleGrey)});\n background-size: auto 1.2rem;\n background-position: center;\n background-repeat: no-repeat;\n &:hover {\n background-size: contain;\n }\n`;\nexport const TooltipBody = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n padding: 1rem 1rem 0.4rem;\n`;\nexport const TooltipPrimaryContent = styled.div`\n font-family: Roboto-m;\n line-height: 2rem;\n color: #050000cc;\n text-align: center;\n`;\nexport const TooltipSecondaryContent = styled.div`\n font-family: Roboto-l;\n line-height: 1.4rem;\n color: #050000cc;\n font-size: 1.2rem;\n text-align: center;\n`;\nexport const DayDropdownContent = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n align-items: center;\n padding: 2.4rem 1.4rem;\n position: relative;\n`;\nexport const HoveredTitle = styled.div`\n min-width: 100%;\n text-align: center;\n position: absolute;\n content: '123';\n top: 0;\n left: 0;\n display: none;\n line-height: 3.2rem;\n font-size: 1.4rem;\n color: #05000088;\n font-family: Roboto-r;\n`;\n\nexport const DayDropdownButton = styled.div`\n width: Calc(50% - 1rem);\n height: 4.8rem;\n border-radius: 8px;\n border: 1px solid #d2d1d1;\n background: white;\n margin: 0.5rem;\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n align-items: center;\n &:not(.copy_paste):hover {\n background-color: #00ff91;\n border-color: #00ff91;\n }\n &.copy_paste:hover > div {\n transform: scale(1.1);\n }\n &:hover + .hover_title {\n display: block;\n }\n &:not(.copy_paste):hover > div {\n background-image: url(${({ hoverIcon, icon }) => hoverIcon || icon});\n }\n`;\nexport const DayDropdownButtonIcon = styled.div`\n background-image: url(${({ icon }) => icon});\n background-position: center;\n background-repeat: no-repeat;\n background-size: contain;\n width: 3.4rem;\n height: 3rem;\n`;\n\nconst BadgeContainer = styled.div`\n display: inline-flex;\n background-color: #f3f3f3;\n align-items: center;\n justify-content: center;\n margin: 0.2rem;\n border-radius: 0.8rem;\n padding: 0 0.8rem;\n`;\n\nconst BadgeName = styled.span`\n line-height: 3.2rem;\n font-size: 1.4rem;\n color: #05000088;\n font-family: Roboto-r;\n`;\n\nconst BadgeValue = styled.span`\n line-height: 3.2rem;\n font-size: 1.4rem;\n color: #05000088;\n font-family: Roboto-b;\n margin-left: 0.4rem;\n`;\n\nexport const Badge = ({ name, value }) => (\n \n {name}\n {value}\n \n);\n\nexport const FlexWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n","import React from 'react';\nimport CustomTooltip from '../tooltip/CustomTooltip';\nimport {\n CalendarDayPlusIcon,\n DayDropdownButton,\n DayDropdownButtonIcon,\n DayDropdownContent,\n HoveredTitle,\n} from './components';\n\nconst DayDropdown = ({ isOepn, items, isFirstRow, buttonSize }) =>\n items.length ? (\n \n {isOepn && (\n \n \n {items.map((item, index) =>\n item.hidden ? null : (\n <>\n \n \n \n {item?.title}\n \n ),\n )}\n \n \n )}\n \n ) : null;\n\nexport default DayDropdown;\n","import React, { useCallback, useContext, useState } from 'react';\nimport { useApolloClient, useMutation } from '@apollo/react-hooks';\nimport { updateCalendarDayMutation, getProgramCalendarFragment } from '@witness/graphql';\nimport { HoverButtons, HoverContainer, HoverButton } from './components';\nimport deleteIcon from '../../assets/program/delete-program.svg';\nimport editIcon from '../../assets/program/edit-program.svg';\nimport CalendarDragContext from '../../services/CalendarDragContext';\n\nconst HoverActions = ({\n children,\n onDelete,\n onEdit,\n showEdit,\n showDelete,\n draggable,\n droppable,\n workoutId,\n index,\n onClick,\n}) => {\n const { isDragging, setIsDragging, refetchCalendar } = useContext(CalendarDragContext);\n const [isAbove, setIsAbove] = useState(false);\n const [updateCalendarDay] = useMutation(updateCalendarDayMutation);\n const client = useApolloClient();\n\n const handleDrop = useCallback(\n async (e) => {\n e.preventDefault();\n\n const data = client.readFragment({\n id: isDragging,\n fragment: getProgramCalendarFragment,\n fragmentName: 'CalendarDay',\n });\n\n client.writeFragment({\n id: isDragging,\n fragment: getProgramCalendarFragment,\n fragmentName: 'CalendarDay',\n data: {\n ...data,\n programDay: index,\n },\n });\n\n setIsAbove(false);\n setIsDragging('');\n\n await updateCalendarDay({\n variables: {\n criteria: {\n uid: isDragging,\n },\n record: {\n programDay: index,\n },\n },\n fetchPolicy: 'no-cache',\n });\n\n refetchCalendar();\n },\n [updateCalendarDay, index, setIsDragging, isDragging, refetchCalendar, client],\n );\n\n return (\n setIsDragging(workoutId)}\n onDragEnd={() => setIsDragging('')}\n onDragOver={(e) => {\n e.preventDefault();\n setIsAbove(true);\n }}\n onDragLeave={() => setIsAbove(false)}\n onDrop={handleDrop}\n onClick={onClick}\n >\n \n {showEdit && }\n {showDelete && }\n \n {children}\n \n );\n};\n\nexport default HoverActions;\n","import React from 'react';\nimport CustomButton from '../button/CustomButton';\nimport CustomTooltip from '../tooltip/CustomTooltip';\nimport {\n CalendarDayPlusIcon,\n TooltipBody,\n TooltipHeader,\n TooltipHeaderIcon,\n TooltipPrimaryContent,\n TooltipSecondaryContent,\n} from './components';\n\nconst SecondaryContentTooltip = ({\n primaryContent,\n secondaryContent,\n onEditClick = () => {},\n onDeleteClick = () => {},\n hideActions,\n}) => (\n \n {!hideActions && (\n \n \n \n \n )}\n \n {primaryContent}\n {secondaryContent}\n \n \n);\n\nexport default SecondaryContentTooltip;\n","import React, {useCallback, useContext, useEffect, useMemo, useState} from 'react';\nimport moment from 'moment';\n\nimport {\n CalendarDayDate,\n CalendarDayNum,\n CalendarDayTitle,\n CardSecondaryContent,\n CardSecondaryContentButton,\n CardSecondaryContentButtonIcon,\n DayBody,\n DayContainer,\n DayFooter,\n DayFooterText,\n DayHeader,\n DayWorkout,\n DropdownContainer,\n DropdownContainerSmall,\n Ellipsis,\n EmptyActions,\n MessageIcon,\n} from './components';\nimport DayDropdown from './DayDropdownV2';\nimport ICONS from '../../constants/icons';\nimport HoverActions from './HoverActions';\nimport {WorkoutStatus} from '../../constants/enums';\nimport CalendarDragContext from '../../services/CalendarDragContext';\nimport SecondaryContentTooltip from './SecondaryContentTooltip';\n\nconst ProgramCalendarDay = ({\n day,\n program,\n firstRow,\n openModal,\n addRestDay,\n openMessage,\n copied,\n handleCopy,\n pasteWorkout,\n pasteLoading,\n setSelectedProgram,\n setSelectedMessage,\n isToday,\n openMeetingModal,\n openOnlineMeetingModal,\n readOnly,\n hideDate,\n handleDownload,\n}) => {\n const isPast = useMemo(() => {\n const thatday = moment(day.date, 'DD:MM:YYYY');\n const today = moment();\n\n return today.isAfter(thatday, 'date');\n }, [day]);\n\n const { WORKOUT, MESSAGE, REST, MEETING } = program || {};\n\n const copyWorkout = useCallback(() => {\n handleCopy(day?.index);\n }, [handleCopy, day]);\n\n const downloadWorkout = useCallback(() => {\n handleDownload(day?.index);\n }, [day]);\n\n const [statusForColor, statusToText] = useMemo(() => {\n const colorStatus = WORKOUT?.workout?.status?.find((x) => x?.type === 'DONE')\n ? 'DONE'\n : WORKOUT?.workout?.status?.[0]?.type;\n if (WORKOUT?.workout?.status?.length > 1) {\n const doneStatuses = WORKOUT?.workout?.status?.filter(\n (x) => !!x.trainee && x.type === 'DONE',\n );\n return [\n colorStatus,\n `${doneStatuses?.length}/${\n WORKOUT?.workout?.status?.filter((x) => !!x.trainee)?.length\n } completed`,\n ];\n }\n switch (colorStatus) {\n case WorkoutStatus.DONE:\n return [colorStatus, 'Completed'];\n case WorkoutStatus.UNDONE:\n return [colorStatus, 'Not completed'];\n case WorkoutStatus.NEW:\n return [colorStatus, 'Planned'];\n default:\n return [colorStatus, ''];\n }\n }, [WORKOUT]);\n\n const [isDropOpen, setIsDropOpen] = useState(false);\n const closeDrop = useCallback(() => setIsDropOpen(false), []);\n\n useEffect(() => {\n if (isDropOpen) {\n document.addEventListener('click', closeDrop);\n } else {\n document.removeEventListener('click', closeDrop);\n }\n\n return () => document.removeEventListener('click', closeDrop);\n }, [closeDrop, isDropOpen]);\n\n const openMessageEdit = useCallback(() => {\n setSelectedMessage(MESSAGE);\n openMessage({ messageDay: day?.index });\n }, [MESSAGE, day, openMessage, setSelectedMessage]);\n\n const openMessageCreate = useCallback(() => {\n setSelectedMessage(null);\n openMessage({ messageDay: day?.index });\n }, [day, openMessage, setSelectedMessage]);\n\n const openWorkoutEdit = useCallback(() => {\n openModal({ programDay: day?.index, uid: program?.WORKOUT?.uid });\n }, [day, openModal, program]);\n\n const openWorkoutCreate = useCallback(() => {\n openModal({ programDay: day?.index, uid: program?.WORKOUT?.uid });\n }, [day, openModal, program]);\n\n const dropdownItems = useMemo(() => {\n const hideTop = Boolean(WORKOUT || REST);\n const hideMid = Boolean(MESSAGE);\n\n return readOnly\n ? []\n : [\n {\n title: 'Workout',\n hidden: isPast || hideTop,\n buttonProps: {\n // style: { backgroundColor: '#00ff91', borderColor: '#00ff91' },\n onClick: openWorkoutCreate,\n },\n icon: ICONS.Dumbell,\n hoverIcon: ICONS.DumbellActive,\n },\n {\n title: 'Rest Day',\n hidden: isPast || hideTop,\n buttonProps: {\n onClick: () => addRestDay(day?.index, closeDrop),\n },\n icon: ICONS.RestDayCup,\n hoverIcon: ICONS.RestDayCupActive,\n },\n {\n title: 'Message',\n hidden: isPast || hideMid,\n buttonProps: {\n onClick: openMessageCreate,\n },\n icon: ICONS.MessageDay,\n hoverIcon: ICONS.MessageDayActive,\n },\n {\n title: 'Video Call',\n hidden: isPast || !!MEETING,\n buttonProps: {\n onClick: openOnlineMeetingModal,\n },\n icon: ICONS.VideoCamera,\n hoverIcon: ICONS.VideoCameraActive,\n },\n {\n title: 'Meeting',\n hidden: isPast || !!MEETING,\n buttonProps: {\n onClick: openMeetingModal,\n },\n icon: ICONS.MeetingLocation,\n },\n {\n title: 'Copy Workout',\n hidden: !(WORKOUT || REST || MEETING || MESSAGE),\n buttonProps: {\n onClick: copyWorkout,\n className: 'copy_paste',\n },\n icon: ICONS.CopyDay,\n iconStyles: { backgroundSize: 'auto 80%' },\n styles: { background: '#F1F0F0', borderColor: '#F1F0F0' },\n },\n {\n title: 'Download Workout',\n hidden: !(WORKOUT || REST || MEETING || MESSAGE),\n buttonProps: {\n onClick: downloadWorkout,\n className: 'copy_paste',\n },\n icon: ICONS.DownloadMini,\n iconStyles: { backgroundSize: 'auto 80%' },\n styles: { background: '#F1F0F0', borderColor: '#F1F0F0' },\n },\n {\n title: 'Paste Workout',\n hidden: isPast || !copied,\n buttonProps: {\n onClick: () => pasteWorkout(day?.index),\n className: 'copy_paste',\n },\n icon: ICONS.PasteDay,\n },\n ];\n }, [\n day,\n openWorkoutCreate,\n addRestDay,\n closeDrop,\n MESSAGE,\n REST,\n WORKOUT,\n MEETING,\n copied,\n openMessageCreate,\n copyWorkout,\n pasteWorkout,\n openMeetingModal,\n openOnlineMeetingModal,\n isPast,\n readOnly,\n ]);\n\n const allHidden = useMemo(() => (\n dropdownItems.filter(item => !item.hidden).length === 0\n ), [dropdownItems])\n\n const openDrop = useCallback((e) => {\n e.stopPropagation();\n if (!allHidden) {\n setIsDropOpen(true);\n }\n }, []);\n\n const { isDragging } = useContext(CalendarDragContext);\n\n const messageIcon = MESSAGE?.message\n ? MESSAGE?.message.icon?.file?.url\n : MESSAGE?.icon?.file?.url;\n\n const openEditMeeting = useCallback(() => {\n if (MEETING?.onlineMeeting) {\n openOnlineMeetingModal(MEETING);\n }\n\n if (MEETING?.faceMeeting) {\n openMeetingModal(MEETING);\n }\n }, [MEETING, openOnlineMeetingModal, openMeetingModal]);\n\n return (\n \n \n {`DAY ${day?.index}`}\n {!hideDate && {day?.date}}\n \n\n {program ? (\n <>\n \n \n {!WORKOUT && !REST && isDragging && (\n \n \n \n )}\n\n {!REST && !WORKOUT ? (\n \n {/* setIsDropOpen((s) => !s)}\n items={dropdownItems}\n isFirstRow={firstRow}\n buttonSize=\"3.2rem\"\n /> */}\n \n ) : (\n setSelectedProgram(WORKOUT ? { WORKOUT } : { REST })}\n onEdit={WORKOUT ? openWorkoutEdit : undefined}\n draggable={!readOnly && !!WORKOUT}\n droppable={!!REST}\n index={day?.index}\n workoutId={WORKOUT?.uid}\n onClick={readOnly && WORKOUT ? openWorkoutEdit : undefined}\n >\n \n \n {!!REST && 'Rest Day'}\n {!!WORKOUT && WORKOUT?.workout?.name}\n \n \n \n )}\n \n \n {!!MESSAGE ? (\n \n \n setSelectedProgram({ MESSAGE })}\n onEditClick={openMessageEdit}\n secondaryContent={\n <>\n {!!messageIcon && }\n {MESSAGE?.message?.text || MESSAGE?.customMessage}\n \n }\n hideActions={readOnly}\n />\n \n ) : (\n <>\n )}\n {(!MESSAGE || !MEETING) &&\n (pasteLoading ? null : (\n \n \n setIsDropOpen((s) => !s)}\n items={dropdownItems}\n isFirstRow={firstRow}\n buttonSize=\"3.2rem\"\n />\n \n \n ))}\n {!!MEETING ? (\n \n \n setSelectedProgram({ MEETING })}\n onEditClick={openEditMeeting}\n hideActions={readOnly || isPast}\n secondaryContent={\n MEETING.onlineMeeting\n ? MEETING.onlineMeeting.date\n : MEETING.faceMeeting.location\n }\n />\n \n ) : (\n <>\n )}\n \n \n\n \n {statusToText}\n \n \n ) : (\n \n {isDragging && (\n \n \n \n )}\n\n {pasteLoading ? null : (\n setIsDropOpen((s) => !s)}\n items={dropdownItems}\n isFirstRow={firstRow}\n buttonSize=\"4.8rem\"\n />\n )}\n \n )}\n \n );\n};\n\nexport default ProgramCalendarDay;\n","import styled from 'styled-components';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n line-height: 2.4rem;\n font-family: Space-r;\n padding: 2rem 3.6rem;\n letter-spacing: 0.08rem;\n justify-content: space-between;\n`;\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\nexport const ModalMain = styled.div`\n padding: ${({ padding }) => (padding ? padding : '3.6rem')};\n`;\n\nexport const ModalInput = styled.div`\n width: ${({ small }) => (small ? 'Calc(50% - 8px)' : '100%')};\n height: 7.5rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n font-family: Roboto-m;\n font-size: 1.4rem;\n color: #37333399;\n margin-bottom: 2.4rem;\n`;\n\nexport const ModalTextArea = styled.div`\n max-height: 100%;\n width: 100%;\n`;\n\nexport const FlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div`\n width: Calc(50% - 12px);\n height: 4.8rem;\n margin-top: ${({ marginTop }) => (marginTop ? marginTop : '1.6rem')};\n`;\n\nexport const CustomRadioWrapper = styled.div`\n display: flex;\n align-items: center;\n margin: 0.4rem 0;\n cursor: pointer;\n &:first-child {\n margin-top: 2rem;\n }\n`;\n\nexport const CustomRadio = styled.div`\n width: 2.2rem;\n height: 2.2rem;\n border-radius: 50%;\n border: ${({ theme, checked }) =>\n checked ? `4px solid ${theme.color?.primary}` : '1px solid #cccccc'};\n margin-right: 2rem;\n`;\nexport const CustomRadioText = styled.div`\n font-size: 1.4rem;\n line-height: 1.6rem;\n color: #373333;\n`;\n","import * as Yup from 'yup';\n\nconst date = Yup.string().required();\nconst timezone = Yup.object()\n .shape({\n tzCode: Yup.string().required(),\n })\n .required();\nconst location = Yup.string().trim().required();\n\nexport const PersonalMeetingSchema = Yup.object().shape({\n date,\n timezone,\n location,\n});\n\nexport const LiveMeetingSchema = Yup.object().shape({\n date,\n timezone,\n});\n","import React, { useCallback } from 'react';\nimport Modal from 'react-modal';\nimport 'react-image-crop/dist/ReactCrop.css';\nimport { createCalendarMutation, editCalendarMutation } from '@witness/graphql';\nimport { useMutation } from '@apollo/react-hooks';\nimport timezones from 'timezones-list';\nimport { Formik, Field, Form } from 'formik';\n\nimport STRINGS from '../../constants/strings';\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalMain,\n FlexWrapper,\n ButtonWrapper,\n ModalInput,\n ModalCloseX,\n} from './components';\nimport CustomInput from '../input/CustomInput';\nimport CustomInputClock from '../input/CustomInputClock';\nimport ReactSelectWitness from '../react-select-witness/ReactSelectWitness';\nimport { useAddressAutoComplete } from '../../hooks';\nimport { LiveMeetingSchema, PersonalMeetingSchema } from '../../schemas/meeting/meeting';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: '504px',\n maxWidth: '100%',\n minWidth: '320px',\n height: 'fit-content',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst MeetingModal = ({ initialValues, closeModal, coachProgramUid, refetch, programTemplate }) => {\n const { autoCompleteRef, setHandleAdressChoose } = useAddressAutoComplete();\n const [createCalendar] = useMutation(createCalendarMutation);\n const [editCalendar] = useMutation(editCalendarMutation);\n\n const handleCreateMeeting = useCallback(\n async (values) => {\n try {\n if (initialValues?.onlineMeetingUid || initialValues?.faceMeetingUid) {\n await editCalendar({\n variables: {\n record: {\n uid: initialValues.calendarUid,\n },\n meeting: {\n date: values.date.substring(3),\n timezone: values.timezone.tzCode,\n paid: false,\n location: values.location,\n onlineMeetingUid: initialValues?.onlineMeetingUid,\n faceMeetingUid: initialValues?.faceMeetingUid,\n },\n },\n });\n } else {\n await createCalendar({\n variables: {\n calendar: {\n type: 'MEETING',\n programDay: initialValues.index,\n coachProgram: coachProgramUid,\n programTemplate: programTemplate,\n },\n meeting: {\n date: values.date.substring(3),\n timezone: values.timezone.tzCode,\n paid: false,\n location: values.location,\n },\n },\n });\n }\n\n if (typeof refetch === 'function') {\n refetch();\n }\n\n closeModal();\n } catch (err) {\n console.log(err);\n }\n },\n [\n createCalendar,\n initialValues,\n coachProgramUid,\n closeModal,\n refetch,\n editCalendar,\n programTemplate,\n ],\n );\n\n return (\n \n \n \n {initialValues?.isOnline ? 'LIVE VIDEO MEETING' : 'Personal Meeting'}\n X\n \n \n timezone.tzCode === initialValues?.timezone) ||\n timezones.find(\n (timezone) =>\n timezone.tzCode === Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone,\n ),\n location: initialValues?.location || '',\n }}\n validationSchema={initialValues?.isOnline ? LiveMeetingSchema : PersonalMeetingSchema}\n >\n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n \n {({ field }) => (\n \n Time of the meeting\n setFieldValue(field.name, val)}\n error={touched[field.name] && errors[field.name]}\n hours\n maxTime=\"00:23:59\"\n />\n \n )}\n \n \n {({ field }) => (\n \n Time Zone\n ({ ...a, value: a.tzCode }))}\n margin=\"0\"\n width=\"100%\"\n value={field.value}\n onChange={(val) => setFieldValue(field.name, val)}\n placeholder=\"Select time Zone\"\n />\n \n )}\n \n {!initialValues?.isOnline && (\n \n {({ field }) => (\n \n Location\n {setHandleAdressChoose((val) => setFieldValue(field.name, val))}\n setFieldValue(field.name, val)}\n error={touched[field.name] && errors[field.name]}\n placeholder=\"Type here...\"\n />\n \n )}\n \n )}\n {/* \n {({ field }) => (\n \n Meeting price\n setFieldValue(field?.name, false)}>\n \n Free\n \n setFieldValue(field?.name, true)}>\n setFieldValue(field?.name, true)}\n />\n Paid (50 ₪)\n \n \n )}\n */}\n\n \n \n \n Cancel\n \n \n \n \n {STRINGS.save}\n \n \n \n
\n )}\n \n
\n
\n \n );\n};\n\nexport default MeetingModal;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport CustomTooltip from '../tooltip/CustomTooltip';\n\nimport { HeaderButton } from './components';\nimport ICONS from '../../constants/icons';\nimport {\n AreaHeaderRow,\n Body,\n Footer,\n IconButton,\n OptWrapper,\n} from '../workout-message-modal/components';\nimport RadioButton from '../radio/RadioButton';\nimport CustomInputDropdown from '../input/CustomInputDropdown';\nimport MessageIcon from '../workout-message-modal/MessageIcon';\nimport IconsModal from '../workout-message-modal/IconsModal';\nimport CustomTextArea from '../input/CustomTextArea';\nimport CustomButton from '../button/CustomButton';\nimport { useQuery } from '@apollo/react-hooks';\nimport { getCalendarMessagesQuery } from '@witness/graphql';\n\nconst menuStyles = {\n maxHeight: '180px',\n boxShadow: '0 4px 10px 0 rgba(74,74,74,0.12)',\n paddingTop: '1.8rem',\n paddingBottom: '1.8rem',\n width: 'fit-content',\n};\n\nconst valueStyles = {\n color: '#373333',\n fontFamily: 'Roboto-r',\n fontSize: '1.2rem',\n letterSpacing: 0,\n};\n\nconst optionStyles = {\n ...valueStyles,\n height: '2.4rem',\n display: 'flex',\n alignItems: 'center',\n lineHeight: '1.8rem',\n};\n\nconst MessageOption = ({ opt, onClick }) => (\n {\n // e.stopPropagation();\n onClick();\n }}\n style={{ fontSize: '1.4rem', padding: '0.4rem 0.8rem' }}\n >\n \n {opt.text}\n \n);\n\nconst MessageValue = ({ opt }) => (\n
\n \n \n {opt.text}\n \n
\n);\n\nconst AddMessageTooltip = ({ onSubmit, onDelete, initialValue }) => {\n const [addMessageOpen, setAddMessageOpen] = useState(false);\n const [messageType, setMessageType] = useState(initialValue?.customMessage ? 1 : 0);\n const [message, setMessage] = useState(initialValue?.message || null);\n const [customMessage, setCustomMessage] = useState(initialValue?.customMessage || '');\n const [errors, setErrors] = useState(null);\n\n const { data } = useQuery(getCalendarMessagesQuery);\n\n const [icon, setIcon] = useState(initialValue?.icon || '');\n const [isIconsOpen, setIsIconsOpen] = useState(false);\n const toggleIconsModal = useCallback(() => {\n if (messageType === 1) {\n setIsIconsOpen((s) => !s);\n }\n }, [messageType]);\n\n const addCommentRef = useRef(null);\n\n const reinitialize = useCallback(() => {\n setMessageType(initialValue?.customMessage ? 1 : 0);\n setMessage(initialValue?.message || null);\n setCustomMessage(initialValue?.customMessage || '');\n setIcon(initialValue?.icon || '');\n setErrors(null);\n }, [setMessageType, setMessage, setCustomMessage, setIcon, initialValue]);\n\n const discardChanges = useCallback(() => {\n reinitialize();\n setAddMessageOpen(false);\n }, [setAddMessageOpen, reinitialize]);\n\n const handleClickOutside = useCallback(\n (event) => {\n if (\n addCommentRef.current &&\n !addCommentRef.current.contains(event.target) &&\n !event.target.className?.includes('inner')\n ) {\n discardChanges();\n }\n },\n [addCommentRef, discardChanges],\n );\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false);\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, [handleClickOutside]);\n\n useEffect(() => {\n reinitialize();\n }, [initialValue, reinitialize]);\n\n const validate = useCallback(() => {\n const currErr = {};\n if (messageType === 0) {\n if (!message) {\n currErr.message = true;\n }\n if (currErr.message) {\n setErrors(currErr);\n } else {\n setErrors(null);\n }\n return !currErr.message;\n } else if (messageType === 1) {\n if (!customMessage) {\n currErr.customMessage = true;\n }\n if (!icon) {\n currErr.icon = true;\n }\n const invalid = currErr.icon || currErr.customMessage;\n if (invalid) {\n setErrors(currErr);\n } else {\n setErrors(null);\n }\n return !invalid;\n }\n }, [setErrors, message, customMessage, icon, messageType]);\n\n useEffect(() => {\n if (errors) {\n validate();\n }\n }, [message, customMessage, icon, messageType]);\n\n return (\n
\n \n \n setMessageType(0)}\n text=\"Choose Message\"\n />\n\n : ''}\n onChange={(val) => setMessage(val)}\n disabled={messageType !== 0}\n optionStyles={optionStyles}\n menuStyles={menuStyles}\n valueStyles={valueStyles}\n placeholder=\"- message text -\"\n error={errors?.message}\n />\n\n \n setMessageType(1)}\n text=\"Create Custom Message\"\n />\n\n {/* {!icon?.id && (\n \n Choose Icon\n \n )} */}\n\n \n\n \n \n\n
\n setCustomMessage(val)}\n // error={errors[field.name]}\n disabled={messageType !== 1}\n error={errors?.customMessage}\n />\n
\n \n\n
\n {\n onDelete();\n setAddMessageOpen(false);\n }}\n borderRadius=\"0.6rem\"\n >\n Delete\n \n \n Discard\n \n {\n if (!validate()) {\n return;\n }\n onSubmit({ message, customMessage, icon, messageType });\n setAddMessageOpen(false);\n }}\n >\n Save\n \n
\n \n setAddMessageOpen((curr) => !curr)}\n open={addMessageOpen}\n active={customMessage || icon || message}\n />\n
\n );\n};\n\nexport default AddMessageTooltip;\n","import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport timezones from 'timezones-list';\n\nimport CustomTooltip from '../tooltip/CustomTooltip';\n\nimport { HeaderButton, TooltipFooter } from './components';\nimport ICONS from '../../constants/icons';\nimport CustomButton from '../button/CustomButton';\nimport { ModalInput } from '../meeting-modal/components';\nimport ReactSelectWitness from '../react-select-witness/ReactSelectWitness';\nimport CustomInput from '../input/CustomInput';\nimport { useAddressAutoComplete } from '../../hooks';\nimport CustomInputClock from '../input/CustomInputClock';\nimport { EntireGroupResults } from '../calendar-results-modal/components';\n\nconst AddMeetingTooltip = ({ onSubmit, onDelete, initialValues }) => {\n const userTimezone = useMemo(\n () =>\n timezones.find(\n (timezone) => timezone.tzCode === Intl?.DateTimeFormat?.()?.resolvedOptions?.()?.timeZone,\n ),\n [],\n );\n const [addMeetingOpen, setAddMeetingOpen] = useState(false);\n const [date, setDate] = useState(initialValues?.date);\n const [timezone, setTimezone] = useState(\n timezones.find((timezone) => timezone.tzCode === initialValues?.timezone) || userTimezone,\n );\n const [location, setLocation] = useState(initialValues?.location);\n\n const [errors, setErrors] = useState(null);\n\n const addCommentRef = useRef(null);\n\n const reinitialize = useCallback(() => {\n setDate(initialValues?.date);\n setTimezone(\n timezones.find((timezone) => timezone.tzCode === initialValues?.timezone) || userTimezone,\n );\n setLocation(initialValues?.location);\n setErrors(null);\n }, [setDate, setTimezone, setLocation, initialValues, userTimezone]);\n\n const discardChanges = useCallback(() => {\n reinitialize();\n setAddMeetingOpen(false);\n }, [reinitialize, setAddMeetingOpen]);\n\n const handleClickOutside = useCallback(\n (event) => {\n if (\n addCommentRef?.current &&\n !addCommentRef.current.contains(event.target) &&\n !event.target.className?.includes('inner')\n ) {\n discardChanges();\n }\n },\n [addCommentRef, discardChanges],\n );\n\n useEffect(() => {\n document.addEventListener('click', handleClickOutside, false);\n return () => {\n document.removeEventListener('click', handleClickOutside, false);\n };\n }, [handleClickOutside]);\n\n useEffect(() => {\n reinitialize();\n }, [initialValues, reinitialize]);\n\n const { autoCompleteRef, setHandleAdressChoose } = useAddressAutoComplete();\n\n const validate = useCallback(() => {\n const currErr = {};\n if (!date) {\n currErr.date = true;\n }\n if (!timezone) {\n currErr.timezone = true;\n }\n if (!initialValues?.isOnline && !location) {\n currErr.location = true;\n }\n const invalid = currErr.date || currErr.timezone || currErr.location;\n if (invalid) {\n setErrors(currErr);\n } else {\n setErrors(null);\n }\n return !invalid;\n }, [setErrors, date, timezone, initialValues, location]);\n\n useEffect(() => {\n if (errors) {\n validate();\n }\n }, [date, location, timezone]);\n\n return (\n
\n \n \n Time of the meeting\n setDate(val)}\n // error={touched[field.name] && errors[field.name]}\n hours\n maxTime=\"00:23:59\"\n small\n fontSize=\"1.4rem\"\n borderColor=\"rgba(0, 0, 0, 0.07)\"\n error={errors?.date}\n />\n \n \n Time Zone\n ({ ...a, value: a.tzCode }))}\n margin=\"0\"\n width=\"100%\"\n value={timezone}\n onChange={(val) => setTimezone(val)}\n placeholder=\"Select time Zone\"\n small\n borderColor=\"rgba(0, 0, 0, 0.07)\"\n error={errors?.timezone}\n />\n \n\n {!initialValues?.isOnline && (\n \n Location\n {setHandleAdressChoose((val) => setLocation(val))}\n setLocation(val)}\n margin=\"0\"\n placeholder=\"Type here...\"\n borderColor=\"rgba(0, 0, 0, 0.07)\"\n style={{\n maxHeight: '3.2rem',\n minHeight: '3.2rem',\n }}\n error={errors?.location}\n errorIcon={false}\n />\n \n )}\n \n {\n onDelete();\n setAddMeetingOpen(false);\n }}\n borderRadius=\"0.6rem\"\n >\n Delete\n \n \n Discard\n \n {\n const isValid = validate();\n if (!isValid) {\n return;\n }\n onSubmit({\n date,\n location,\n timezone,\n onlineMeetingUid: initialValues?.isOnline ? initialValues?.onlineMeetingUid : null,\n faceMeetingUid: !initialValues?.isOnline ? initialValues?.faceMeetingUid : null,\n });\n setAddMeetingOpen(false);\n }}\n >\n Save\n \n \n \n setAddMeetingOpen((curr) => !curr)}\n open={addMeetingOpen}\n active={date}\n />\n
\n );\n};\n\nexport default AddMeetingTooltip;\n","import React, { useMemo } from 'react';\nimport moment from 'moment';\nimport * as Yup from 'yup';\n\nimport {\n WeekDayColumnWrapper,\n WeekDayHeader,\n WeekDayNumbering,\n WeekDayDay,\n HeaderButtons,\n WeekDayName,\n ContentWrapper,\n MessagesRelativeBox,\n WeekRestBoy,\n DragDropWrapper,\n DropIndexIndicator,\n ColumnTopButtons,\n ColumnTopButton,\n ColumnTopButtonIcon,\n} from './components';\nimport CustomInput from '../input/CustomInput';\nimport { Field, FieldArray, Form, Formik } from 'formik';\nimport { CalendarSchema } from '../../schemas/program/coachProgram';\nimport { useUtils } from '../../hooks';\nimport ICONS from '../../constants/icons';\nimport EdittingWorkoutBlock from './EdittingWorkoutBlockV2';\nimport WorkoutBlock from './WorkoutBlock';\nimport WorkoutDropbox from './WorkoutDropbox';\nimport AddBlockCommentTooltip from './AddBlockCommentTooltip';\nimport { useState } from 'react';\nimport AddMessageTooltip from './AddMessageTooltip';\nimport AddMeetingTooltip from './AddMeetingTooltip';\nimport Loader from '../loader/Loader';\n\nconst weekDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\nconst weekDaysShort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thur', 'Fri', 'Sat'];\n\nconst WeekDayColumn = ({\n index,\n day,\n loading,\n existingWorkout,\n submitDay,\n weekDay,\n formikRef,\n dayContent = {},\n draggingBlock,\n setDraggingBlock,\n deleteDraggingBlock,\n setDeleteDraggingBlock,\n addRestDay,\n submitMessageDay,\n handleCreateMeeting,\n handleDeleteCalendar,\n handleColumnPaste,\n copiedColumn,\n setCopiedColumn,\n isTemplate,\n initialValues,\n}) => {\n const [collapsed, setCollapsed] = useState(false);\n\n const [activeDragOverIndex, setActiveDragOverIndex] = useState(null);\n const hasChanged = (initial, least) => {\n return JSON.stringify(initial) !== JSON.stringify(least);\n };\n return (\n (x.trainee && x.type === 'DONE') || x.type === 'UNDONE',\n )\n }\n >\n {\n if (initialValues?.blocks?.length && !v?.blocks?.length) {\n await handleDeleteCalendar(existingWorkout?.uid);\n }\n if (!v.isRest && initialValues?.isRest) {\n await handleDeleteCalendar(dayContent?.REST?.uid);\n }\n if (v?.blocks?.length) {\n await submitDay(day?.index, v, existingWorkout?.workout?.uid, false);\n }\n if (v.isRest && !initialValues?.isRest) {\n await addRestDay(day?.index, () => {}, false);\n }\n if (v.MESSAGE && hasChanged(v.MESSAGE, initialValues.MESSAGE)) {\n if ((initialValues.MESSAGE?.message && !v.MESSAGE?.message) || (initialValues.MESSAGE?.customMessage && !v.MESSAGE?.customMessage)) {\n await handleDeleteCalendar(initialValues.MESSAGE?.uid)\n } else {\n await submitMessageDay(day?.index, v.MESSAGE);\n }\n }\n if (v.ONLINE_MEETING && hasChanged(v.ONLINE_MEETING, initialValues.ONLINE_MEETING)) {\n if (initialValues.ONLINE_MEETING?.date && !v.ONLINE_MEETING?.date) {\n await handleDeleteCalendar(initialValues.ONLINE_MEETING?.uid);\n } else {\n await handleCreateMeeting(day?.index, v.ONLINE_MEETING);\n }\n }\n if (v.FACE_MEETING && hasChanged(v.FACE_MEETING, initialValues.FACE_MEETING)) {\n if (initialValues.FACE_MEETING?.date && !v.FACE_MEETING?.date) {\n await handleDeleteCalendar(initialValues.FACE_MEETING?.uid);\n } else {\n await handleCreateMeeting(day?.index, v.FACE_MEETING);\n }\n }\n }}\n validationSchema={() =>\n Yup.lazy((values) => {\n if (!values?.blocks?.length) {\n return Yup.mixed();\n }\n return CalendarSchema;\n })\n }\n >\n {({ setFieldValue, errors, validateForm, touched, values, setTouched }) => (\n \n \n \n {isTemplate ? `DAY ${day?.index}` : moment(day?.date, 'DD.M.YYYY').format('DD/MM')}\n \n {collapsed ? weekDaysShort[weekDay] : weekDays[weekDay]}\n \n {!collapsed && (\n {\n setFieldValue('ONLINE_MEETING', { ...values.ONLINE_MEETING, ...v })\n }}\n initialValues={{ ...values.ONLINE_MEETING, isOnline: true }}\n onDelete={() =>\n setFieldValue('ONLINE_MEETING', { date: undefined })\n }\n />\n )}\n {!collapsed && (\n {\n setFieldValue('FACE_MEETING', { ...values.FACE_MEETING, ...v })\n }}\n initialValues={values.FACE_MEETING}\n onDelete={() =>\n setFieldValue('FACE_MEETING', { date: undefined })\n }\n />\n )}\n {/* */}\n\n {\n setFieldValue('MESSAGE', { ...values?.MESSAGE, ...v })\n }}\n initialValue={values.MESSAGE}\n onDelete={() =>\n setFieldValue('MESSAGE', {})\n }\n />\n \n \n setCollapsed((curr) => !curr)}>\n \n \n {!collapsed && (copiedColumn || values?.blocks?.length) && (\n {\n if (!copiedColumn) {\n if (values?.blocks?.length) {\n setCopiedColumn(weekDay);\n }\n } else if (copiedColumn !== day.index) {\n handleColumnPaste(weekDay);\n }\n }}\n >\n \n \n )}\n \n \n x.trainee && x.type === 'DONE')\n ? 'DONE'\n : existingWorkout?.workout?.status?.find((x) => x.trainee && x.type === 'UNDONE')\n ? 'UNDONE'\n : ''\n }\n >\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n error={touched[field.name] && errors[field.name]}\n placeholder={values?.isRest ? 'Rest Day' : 'No title'}\n disabled={values?.isRest}\n />\n )}\n \n \n {loading ? (\n \n ) : (\n !collapsed && (\n \n {/* */}\n {!values?.isRest && (\n \n {\n setFieldValue('afterMessageChecked', v?.afterMessageChecked);\n setFieldValue('beforeMessageChecked', v?.beforeMessageChecked);\n setFieldValue(\n 'beforeMessage',\n v?.beforeMessageChecked ? v?.beforeMessage : '',\n );\n setFieldValue(\n 'afterMessage',\n v?.afterMessageChecked ? v?.afterMessage : '',\n );\n }}\n />\n \n )}\n (\n <>\n {values?.blocks?.map((block, i) => (\n {\n setDraggingBlock(block);\n setDeleteDraggingBlock(() => (index) => {\n if (index === day?.index) {\n remove(i + 1);\n } else {\n remove(i);\n }\n const beforeEditting = values.editingBlockIndex > i;\n if (beforeEditting && values.editingBlockIndex) {\n setFieldValue('editingBlockIndex', values.editingBlockIndex - 1);\n }\n });\n }}\n onDragEnd={() => {\n setDraggingBlock(null);\n setDeleteDraggingBlock(null);\n }}\n onDragOver={(e) => {\n if (\n draggingBlock &&\n e.clientY > 248 &&\n e.clientY < window.innerHeight - 248\n ) {\n e.preventDefault();\n setActiveDragOverIndex(i);\n }\n }}\n onDragLeave={() => setActiveDragOverIndex(null)}\n onDrop={(e) => {\n if (!draggingBlock) {\n return;\n }\n insert(i, draggingBlock);\n setActiveDragOverIndex(null);\n setDraggingBlock(null);\n if (deleteDraggingBlock) {\n deleteDraggingBlock(day?.index);\n }\n }}\n >\n {activeDragOverIndex === i && }\n {i === values?.editingBlockIndex ? (\n {\n remove(i);\n setFieldValue('editingBlockIndex', null);\n }}\n setDraggingBlock={setDraggingBlock}\n />\n ) : (\n {\n remove(i);\n const beforeEditting = values.editingBlockIndex > i;\n if (beforeEditting && values.editingBlockIndex) {\n setFieldValue(\n 'editingBlockIndex',\n values.editingBlockIndex - 1,\n );\n }\n }}\n duplicateSelf={(v) => {\n insert(i + 1, v);\n }}\n isFirst={i === 0}\n isLast={i === values?.blocks?.length - 1}\n orderUp={() => {\n const clone = block;\n if (i > 0) {\n const previousOne = values?.blocks?.[i - 1];\n replace(i, previousOne);\n replace(i - 1, clone);\n if (values?.editingBlockIndex === i - 1) {\n setFieldValue('editingBlockIndex', i);\n }\n }\n }}\n orderDown={() => {\n const clone = block;\n if (i < values?.blocks?.length - 1) {\n const nextOne = values?.blocks?.[i + 1];\n replace(i, nextOne);\n replace(i + 1, clone);\n if (values?.editingBlockIndex === i + 1) {\n setFieldValue('editingBlockIndex', i);\n }\n }\n }}\n setEditting={async () => {\n await setTouched({\n blocks: { [values.editingBlockIndex]: true },\n });\n const invalid = !!errors?.blocks?.[values.editingBlockIndex];\n if (!invalid) {\n setFieldValue('editingBlockIndex', i);\n }\n }}\n />\n )}\n \n ))}\n\n {\n setActiveDragOverIndex(null);\n setDraggingBlock(null);\n if (deleteDraggingBlock) {\n deleteDraggingBlock();\n }\n }}\n setFieldValue={setFieldValue}\n errors={errors}\n setTouched={setTouched}\n noText\n touched={touched}\n values={values}\n week\n />\n {values?.isRest && }\n \n )}\n >\n {/* */}\n \n )\n )}\n \n )}\n \n \n );\n};\n\nexport default WeekDayColumn;\n","import React, { useEffect, useMemo, useRef, useState, useCallback } from 'react';\nimport Modal from 'react-modal';\nimport { useAlert } from 'react-alert';\nimport moment from 'moment';\nimport timezones from 'timezones-list';\n\nimport CustomButton from '../button/CustomButton';\nimport WeekDayColumn from './WeekDayColumn';\nimport {\n CalendarWeekHeader,\n CalendarWeekWrapper,\n NeighbourWeekArrow,\n WeekHeaderFlexWrapper,\n WeekRange,\n WeekTitle,\n WeekContent,\n} from './components';\nimport AreYouSureModal from '../are-you-sure-modal/AreYouSureModal';\nimport useUtils from '../../hooks/utils'\nimport useCalendar from '../../hooks/calendar';\nimport { CalendarType } from '../../constants/enums';\n\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 3333,\n },\n content: {\n width: 'Calc(100% - 32px)',\n minWidth: '1080px',\n height: 'Calc(100vh - 96px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n pointerEvents: 'all',\n },\n};\n\nconst hasUnsavedChanges = (formikRef) => {\n if (formikRef?.current) {\n let a = { ...formikRef.current.values };\n let b = { ...formikRef.current.initialValues };\n\n a.blocks = a.blocks && a.blocks.length === 0 ? undefined : a.blocks;\n delete a.editingBlockIndex;\n delete b.editingBlockIndex;\n\n return JSON.stringify(a) !== JSON.stringify(b);\n } else {\n return false;\n }\n};\n\nconst AddCalendarWeekModal = ({\n weekN,\n setWeekN,\n closeModal,\n calendarMatrix,\n programDays,\n loading,\n submitDay,\n addRestDay,\n submitMessageDay,\n handleCreateMeeting,\n isOpen,\n handleDeleteCalendar,\n coachProgramUid,\n programTemplateUid,\n refetch,\n}) => {\n let formikrefs = [useRef(), useRef(), useRef(), useRef(), useRef(), useRef(), useRef()];\n const wrapperRef = useRef();\n const [draggingBlock, setDraggingBlock] = useState(null);\n const [deleteDraggingBlock, setDeleteDraggingBlock] = useState(null);\n const [changeIndexModalOpen, setChangeIndexModalOpen] = useState(null);\n const [copiedColumn, setCopiedColumn] = useState(null);\n \n const { getWorkoutBlocksByWorkout } = useUtils();\n\n const alert = useAlert();\n \n const week = useMemo(() => calendarMatrix[weekN], [weekN, calendarMatrix]);\n\n const getDates = useCallback((weekNumber) => [\n calendarMatrix[weekNumber]?.[0]?.index || calendarMatrix[weekNumber]?.[6]?.index - 6 || 0,\n calendarMatrix[weekNumber]?.[6]?.index || calendarMatrix[weekNumber]?.[0]?.index + 6 || undefined,\n ], [calendarMatrix])\n\n const getExistingWorkouts = useCallback((weekStartDate, weekNumber, calendars) => {\n const result = new Array(7).fill(undefined);\n const weekCalendars = programTemplateUid\n ? programDays?.slice(weekNumber * 7 + 1, weekNumber * 7 + 8)\n : calendars;\n if (Array.isArray(weekCalendars)) {\n weekCalendars.forEach((cal, i) => {\n if (programTemplateUid ? !cal?.['WORKOUT'] : cal.type !== 'WORKOUT') {\n return 0;\n }\n if (programTemplateUid) {\n result[i] = cal?.['WORKOUT'];\n } else {\n result[cal.programDay - weekStartDate] = cal;\n }\n\n return 1;\n });\n }\n return result;\n }, [programTemplateUid, programDays]);\n\n const [startDate, endDate] = useMemo(() => getDates(weekN),\n [calendarMatrix, weekN]\n );\n\n const { calendars, calendarsLoading, refetchCalendars, getCalendarsRange } = useCalendar({\n coachProgramUid,\n programTemplateUid,\n startDate,\n endDate,\n });\n\n const existingWorkouts = useMemo(() => getExistingWorkouts(startDate, weekN, calendars),\n [calendars, startDate, programTemplateUid, programDays, weekN]\n );\n\n const pasteFromPreviousWeek = async () => {\n const prevWeek = calendarMatrix[weekN - 1]\n const prevWeekCalendar = await getCalendarsRange(startDate - 7, endDate - 7)\n const prevWeekExistingWorkouts = getExistingWorkouts(getDates(weekN - 1)[0], weekN - 1, prevWeekCalendar?.getCalendars)\n\n const prevWeekFormValues = prevWeek.map((day, weekDay) => (\n !!day ? createFormValues(programDays[day.index], prevWeekExistingWorkouts[weekDay], day.index) : null\n ));\n\n for(let i = 0; i < 7; i++) {\n pasteFormData(i, prevWeekFormValues[i])\n }\n }\n\n const pasteFormData = (i, values) => {\n if (i > -1 && formikrefs[i]?.current?.setFieldValue) {\n if (!values) {\n formikrefs[i].current.setFieldValue('blocks', undefined);\n formikrefs[i].current.setFieldValue('isRest', false);\n formikrefs[i].current.setFieldValue('beforeMessageChecked', false);\n formikrefs[i].current.setFieldValue('beforeMessage', '');\n formikrefs[i].current.setFieldValue('afterMessageChecked', false);\n formikrefs[i].current.setFieldValue('afterMessage', '');\n } else {\n formikrefs[i].current.setFieldValue('name', values?.name);\n formikrefs[i].current.setFieldValue('blocks', values?.blocks);\n formikrefs[i].current.setFieldValue('isRest', values?.isRest);\n formikrefs[i].current.setFieldValue('beforeMessageChecked', values?.beforeMessageChecked);\n formikrefs[i].current.setFieldValue('beforeMessage', values?.beforeMessage);\n formikrefs[i].current.setFieldValue('afterMessageChecked', values?.afterMessageChecked);\n formikrefs[i].current.setFieldValue('afterMessage', values?.afterMessage);\n }\n\n if (values?.FACE_MEETING?.date) {\n const {\n date,\n timezone,\n location,\n faceMeetingUid,\n onlineMeetingUid,\n } = values?.FACE_MEETING;\n formikrefs[i].current.setFieldValue('FACE_MEETING', { \n date,\n timezone: timezones.find(t => t.tzCode === timezone),\n location,\n faceMeetingUid,\n onlineMeetingUid,\n });\n } else {\n formikrefs[i].current.setFieldValue('FACE_MEETING', { date: undefined });\n }\n\n if (values?.ONLINE_MEETING?.date) {\n const {\n date,\n timezone,\n faceMeetingUid,\n onlineMeetingUid\n } = values?.ONLINE_MEETING;\n formikrefs[i].current.setFieldValue('ONLINE_MEETING', { \n date,\n timezone: timezones.find(t => t.tzCode === timezone),\n faceMeetingUid,\n onlineMeetingUid,\n });\n } else {\n formikrefs[i].current.setFieldValue('ONLINE_MEETING', { date: undefined });\n }\n\n if (values?.MESSAGE?.message || values?.MESSAGE?.customMessage) {\n const {\n customMessage,\n icon,\n message,\n messageType\n } = values?.MESSAGE;\n console.log('new', { \n customMessage,\n icon,\n message,\n messageType\n })\n formikrefs[i].current.setFieldValue('MESSAGE', { \n customMessage,\n icon,\n message,\n messageType: customMessage ? 1 : 0\n });\n } else {\n formikrefs[i].current.setFieldValue('MESSAGE', {});\n }\n }\n }\n\n const createFormValues = useCallback((dayContent, existingWorkout, index) => {\n const blocks = getWorkoutBlocksByWorkout(existingWorkout?.workout)\n return {\n name: existingWorkout ? existingWorkout.workout?.name : `Day ${index}`,\n beforeMessageChecked: !!existingWorkout?.workout?.beforeMessage,\n beforeMessage: existingWorkout ? existingWorkout.workout?.beforeMessage : '',\n afterMessageChecked: !!existingWorkout?.workout?.afterMessage,\n afterMessage: existingWorkout ? existingWorkout.workout?.afterMessage : '',\n type: CalendarType.WORKOUT,\n blocks,\n editingBlockIndex: null,\n isRest: !!dayContent?.REST,\n MESSAGE: dayContent?.MESSAGE || {},\n FACE_MEETING: {\n ...dayContent?.MEETING?.faceMeeting,\n date: dayContent?.MEETING?.faceMeeting?.date\n ? `00:${dayContent?.MEETING?.faceMeeting?.date}`\n : undefined,\n faceMeetingUid: dayContent?.MEETING?.faceMeeting?.uid,\n uid: dayContent?.MEETING?.uid\n },\n ONLINE_MEETING: {\n ...dayContent?.MEETING?.onlineMeeting,\n date: dayContent?.MEETING?.onlineMeeting?.date\n ? `00:${dayContent?.MEETING?.onlineMeeting?.date}`\n : undefined,\n onlineMeetingUid: dayContent?.MEETING?.onlineMeeting?.uid,\n uid: dayContent?.MEETING?.uid\n },\n };\n }, [getWorkoutBlocksByWorkout]);\n\n const handleColumnPaste = (i) => {\n if (\n i > -1 &&\n copiedColumn &&\n formikrefs?.[copiedColumn]?.current?.values?.blocks?.length &&\n formikrefs[i]?.current?.setFieldValue\n ) {\n pasteFormData(i, formikrefs?.[copiedColumn]?.current?.values)\n setCopiedColumn(null);\n }\n };\n\n const checkAllOnUnsavedChanges = () => {\n let unsavedChanges = false;\n const promises = formikrefs.map(async (ref) => {\n if (!unsavedChanges && ref?.current && hasUnsavedChanges(ref)) {\n unsavedChanges = true;\n }\n });\n return Promise.all(promises).then(() => {\n return unsavedChanges;\n });\n };\n\n const submitAll = () => {\n let invalid = false;\n const validationPromises = formikrefs.map(async (ref, i) => {\n if (ref?.current && hasUnsavedChanges(ref) && ref.current.values?.blocks?.length) {\n ref.current.setTouched({ name: true, blocks: { [1]: true } });\n const res = await ref?.current?.validateForm();\n if (!(Object.keys(res).length === 0 && res.constructor === Object)) {\n invalid = true;\n }\n }\n });\n return Promise.all(validationPromises).then(() => {\n alert.info('Checking ...', { timeout: 1000 });\n if (invalid) {\n alert.error('Make Sure To Meet All The Requirements !');\n return { error: true };\n }\n let changed = false;\n const promises = formikrefs.map(async (ref) => {\n if (ref?.current && hasUnsavedChanges(ref)) {\n try {\n await ref?.current?.submitForm();\n changed = true;\n } catch (err) {\n alert.error(err?.message);\n }\n }\n });\n return Promise.all(promises).then(() => {\n if (changed) {\n if (coachProgramUid) {\n refetchCalendars().then(() => alert.success('Changes Saved Successfully !'));\n } else {\n refetch().then(() => alert.success('Changes Saved Successfully !'));\n }\n } else {\n alert.info('No Changes To Save !');\n }\n });\n });\n };\n\n const onRequestClose = async () => {\n if (await checkAllOnUnsavedChanges()) {\n setChangeIndexModalOpen(3);\n } else {\n closeModal();\n }\n };\n\n return (\n (wrapperRef.current = ref)}\n onRequestClose={onRequestClose}\n >\n {week?.length && (\n {\n if (window.innerHeight - e.clientY < 248) {\n wrapperRef.current.scrollBy({\n top: 248 - window.innerHeight + e.clientY,\n behavior: 'smooth',\n });\n } else if (e.clientY < 248) {\n wrapperRef.current.scrollBy({\n top: e.clientY - 248,\n behavior: 'smooth',\n });\n }\n }}\n >\n {\n if (changeIndexModalOpen === 3) {\n closeModal();\n } else {\n setWeekN(weekN + changeIndexModalOpen);\n }\n setChangeIndexModalOpen(false);\n }}\n closeModal={() => setChangeIndexModalOpen(false)}\n submitModal={async () => {\n submitAll().then((res) => {\n if (changeIndexModalOpen === 3) {\n closeModal();\n } else {\n setWeekN(weekN + changeIndexModalOpen);\n }\n setChangeIndexModalOpen(false);\n });\n }}\n headingText={'Do you want save changes?'}\n contentText={\"Changes will be lost if you don't save them.\"}\n />\n {\n \n \n {weekN > 0 && (\n {\n alert.info('Copying...');\n pasteFromPreviousWeek().then(res => {\n alert.success('Copied SuccessFully !');\n }).catch((err) => {\n console.log('Error while copying', err);\n alert.error(`Something went wrong !`);\n })\n }}\n >\n Import previous week\n \n )}\n \n \n {\n if (weekN > 0) {\n if (await checkAllOnUnsavedChanges()) {\n setChangeIndexModalOpen(-1);\n } else {\n setWeekN(weekN - 1);\n }\n }\n }}\n />\n {programTemplateUid ? (\n {`Week ${weekN + 1}`}\n ) : (\n {`${moment(week?.find((x) => x)?.date, 'DD-MM-YYYY').format(\n 'D MMMM',\n )} : ${moment([...week].reverse()?.find((x) => x)?.date, 'DD-MM-YYYY').format(\n 'D MMMM',\n )}`}\n )}\n {\n if (calendarMatrix[weekN + 1]) {\n if (await checkAllOnUnsavedChanges()) {\n setChangeIndexModalOpen(1);\n } else {\n setWeekN(weekN + 1);\n }\n }\n }}\n />\n \n \n {\n submitAll();\n }}\n >\n save\n \n {\n submitAll().then((res) => {\n if (!res?.error) {\n closeModal();\n }\n });\n }}\n >\n Save & close\n \n \n X\n \n \n \n }\n \n {week.map(\n (day, weekDay) =>\n day && (\n \n ),\n )}\n \n \n )}\n \n );\n};\n\nexport default AddCalendarWeekModal;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 72px;\n display: flex;\n align-items: center;\n border-bottom: 1px solid #05000033;\n justify-content: center;\n position: relative;\n margin-bottom: 34px;\n &::after {\n content: '';\n width: 12%;\n padding-bottom: 11%;\n background: #ffffff;\n background-image: url(${ICONS.AlertYellow});\n background-position: center;\n background-repeat: no-repeat;\n position: absolute;\n top: 50%;\n }\n`;\n\nexport const ModalHeaderLines = styled.div`\n width: 50%;\n height: 100%;\n border-left: 1px solid #05000033;\n border-right: 1px solid #05000033;\n`;\n\nexport const ModalMain = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n padding: 24px 36px 16px;\n`;\n\nexport const ModalPrimaryText = styled.div`\n font-family: Gotham-r;\n width: 40rem;\n font-size: 2.4rem;\n line-height: 3.6rem;\n color: #4a4a4a;\n text-align: center;\n padding-bottom: 36px;\n`;\n\nexport const ModalSecondaryText = styled.div`\n font-size: 1.4rem;\n line-height: 1.9rem;\n text-align: center;\n width: 100%;\n`;\n\nexport const ButtonsFlexWrapper = styled.div`\n display: flex;\n align-items: center;\n margin: 64px 0 24px;\n`;\n\nexport const ButtonWrapper = styled.div`\n width: 180px;\n height: 40px;\n margin: 0 10px;\n`;\n","import React, { useState } from 'react';\nimport Modal from 'react-modal';\nimport 'react-image-crop/dist/ReactCrop.css';\nimport STRINGS from '../../constants/strings';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalHeaderLines,\n ModalPrimaryText,\n ModalMain,\n ModalSecondaryText,\n ButtonsFlexWrapper,\n ButtonWrapper,\n} from './components';\nimport { useContactAdmin } from '../../hooks';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: 'Calc(100% - 40px)',\n maxWidth: '588px',\n minWidth: '320px',\n height: 'fit-content',\n top: '44%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst AlertModal = ({\n modalOpen,\n closeModal,\n title,\n content,\n okText = 'Ok',\n noText = 'Cancel',\n handleOk,\n}) => {\n return (\n \n \n \n \n \n \n {title}\n {content}\n \n \n \n {noText}\n \n \n \n \n {okText}\n \n \n \n \n \n \n );\n};\n\nexport default AlertModal;\n","import * as Yup from 'yup';\n\nconst title = Yup.string().trim().required('Required');\nconst validUntil = Yup.date().min(new Date());\nconst description = Yup.string().required();\nconst available = Yup.number().required();\nconst amount = Yup.number().required();\nconst discountType = Yup.mixed().required();\nconst price = Yup.number().required();\nconst programLength = Yup.number().required();\nconst speciality = Yup.mixed().required();\nconst trainingTypes = Yup.array().min(1).required();\nconst daysOfTraining = Yup.array().of(Yup.string()).required();\nconst coaches = Yup.object()\n.when('isOrganization', {\n is: true,\n then: (schema) =>\n schema.required().test('keys', 'at least one coach', (value) => {\n const coachesObj = { ...value };\n return Object.keys(coachesObj)?.find((x) => coachesObj[x])?.length;\n }),\n});\nconst coachFee = Yup.number().when('isOrganization', {\n is: true,\n then: (schema) => schema.required(),\n});\n\nexport const DiscountCouponSchema = Yup.object().shape({\n title,\n validUntil,\n description,\n available,\n amount: Yup.number().test({\n name: 'max',\n exclusive: false,\n params: {},\n message: 'Invalid Amount Value',\n test: function (value) {\n const { discountType } = this.parent;\n if (discountType.value === 'PERCENTAGE') {\n return value >= 1 && value <= 100;\n }\n return typeof value === 'number' && value === value;\n },\n }),\n discountType,\n coaches,\n coachFee,\n});\n\nexport const ProgramCouponSchema = Yup.object().shape({\n title,\n validUntil,\n available,\n price,\n programLength,\n speciality,\n trainingTypes,\n daysOfTraining,\n coaches,\n coachFee,\n});\n\nexport const ExtensionCouponSchema = Yup.object().shape({\n monthlySum: price,\n programLength,\n});\n","import React, { useCallback, useState } from 'react';\nimport Modal from 'react-modal';\nimport 'react-image-crop/dist/ReactCrop.css';\nimport { createExtensionCouponMutation, updateExtensionCouponMutation } from '@witness/graphql';\nimport { useMutation } from '@apollo/react-hooks';\nimport { Formik, Field, Form } from 'formik';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalMain,\n FlexWrapper,\n ButtonWrapper,\n ModalInput,\n ModalCloseX,\n} from '../meeting-modal/components';\nimport CustomInput from '../input/CustomInput';\nimport { TemplateInputWrapper, TemplateLengthItem } from '../../pages/program-template/components';\nimport AlertModal from '../../components/alert-modal/AlertModalGeneral';\nimport { ExtensionCouponSchema } from '../../schemas/coupon/coupon';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: '504px',\n maxWidth: '100%',\n minWidth: '320px',\n height: 'fit-content',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst ExtensionCouponModal = ({\n isOpen,\n closeModal,\n refetch,\n programRequestUid,\n monthlySum,\n traineeName,\n coupon,\n}) => {\n const [confirmOpen, setConfirmOpen] = useState(false);\n const [createExtensionCoupon] = useMutation(createExtensionCouponMutation);\n const [updateExtensionCoupon] = useMutation(updateExtensionCouponMutation);\n\n const handleCreate = useCallback(\n async (values) => {\n if (coupon) {\n await updateExtensionCoupon({\n variables: {\n record: {\n uid: coupon.uid,\n programLength: parseInt(values.programLength),\n monthlySum: parseInt(values.monthlySum),\n },\n },\n });\n } else {\n await createExtensionCoupon({\n variables: {\n record: {\n programUid: values.programRequestUid,\n programLength: parseInt(values.programLength),\n monthlySum: parseInt(values.monthlySum),\n },\n },\n });\n }\n refetch();\n closeModal();\n },\n [createExtensionCoupon, updateExtensionCoupon, closeModal, refetch, coupon],\n );\n\n return (\n \n \n \n EXTEND PROGRAM DURATION\n X\n \n \n \n {({\n setFieldValue,\n errors,\n touched,\n isSubmitting,\n values,\n handleSubmit,\n validateForm,\n }) => (\n
\n \n {({ field }) => (\n \n How long do you want to extend the program?\n \n setFieldValue(field.name, 30)}\n >\n 1 month\n \n setFieldValue(field.name, 60)}\n >\n 2 months\n \n setFieldValue(field.name, 90)}\n >\n 3 months\n \n \n \n )}\n \n \n {({ field }) => (\n \n Monthly Price\n setFieldValue(field.name, val)}\n error={!!errors[field.name]}\n placeholder=\"Monthly Price\"\n errorIcon={false}\n />\n {console.log(errors, touched, field)}\n \n )}\n \n\n \n \n \n Cancel\n \n \n \n {\n if (!coupon && !Object.keys(errors).length) {\n setConfirmOpen(true);\n }\n }}\n >\n Send to trainee\n \n \n \n\n setConfirmOpen(null)}\n okText=\"Yes, Send it\"\n noText=\"Don't send it\"\n handleOk={handleSubmit}\n />\n \n )}\n \n
\n
\n \n );\n};\n\nexport default ExtensionCouponModal;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n min-height: 500px;\n background: #fafafa;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n min-height: 6rem;\n display: flex;\n align-items: center;\n line-height: 2.4rem;\n font-family: Space-r;\n border-bottom: 1px solid #0500002a;\n font-size: 2.2rem;\n padding: 0 2.8rem;\n justify-content: space-between;\n`;\n\nexport const ModalContent = styled.div`\n width: 100%;\n padding: 0 3.2rem;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const PdfImageBlock = styled.div`\n width: 100%;\n padding: 3.6rem 30% 4.8rem;\n`;\n\nexport const PdfImageFrame = styled.div`\n width: 100%;\n border: 3px solid ${({ theme }) => theme.color.primary};\n padding: 5%;\n position: relative;\n`;\n\nexport const PdfImage = styled.div`\n overflow: hidden;\n position: relative;\n width: 100%;\n background-image: url(${({ image }) => image});\n padding: 50%;\n background-repeat: no-repeat;\n background-size: cover;\n background-position: center;\n overflow: visible;\n`;\n\nexport const ParticipantContent = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-grow: 1;\n ${({ group }) =>\n group\n ? `\n background: #ffffff;\n padding: 0 1.6rem 1.6rem;\n border-radius: 8px;\n box-shadow: 0 0 1px 1px #0500000a;\n `\n : ''}\n`;\n\nexport const WorkoutName = styled.div`\n width: 33%;\n border-right: 1px solid #0500001a;\n border-left: 1px solid #0500001a;\n padding: 3rem;\n font-family: Roboto-m;\n font-size: 2.2rem;\n line-height: 2.4rem;\n color: #050000cc;\n text-align: center;\n align-self: center;\n & > span {\n font-size: 2.2rem;\n line-height: 2.4rem;\n font-family: Gotham-r;\n padding-right: 2.2rem;\n }\n`;\n\nexport const EntireMessageHeading = styled.div`\n width: Calc(33% + 2rem);\n border-right: 1px solid #0500001a;\n border-left: 1px solid #0500001a;\n padding: 3.2rem 1rem 2.6rem;\n font-family: Space-r;\n font-size: 1.8rem;\n line-height: 2.1rem;\n color: #050000cc;\n text-align: center;\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 3.2rem;\n`;\n\nexport const ModalHeaderCenterLine = styled.div`\n width: 1px;\n height: 100%;\n background: #0500001a;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\n// workout block result box\n\nexport const WorkoutBlockResult = styled.div`\n width: 100%;\n background: #f1f0f0;\n border-radius: 8px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);\n display: flex;\n margin-bottom: 1.6rem;\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nexport const BlockExercisesSide = styled.div`\n flex-grow: 1;\n max-width: 67%;\n`;\n\nexport const BlockExercisesHeader = styled.div`\n height: 6.4rem;\n display: flex;\n align-items: center;\n font-family: Roboto-m;\n padding: 0 2.4rem;\n border-bottom: 1px solid #cccccccc;\n`;\n\nexport const BlockExercisesRest = styled.div`\n height: 6rem;\n display: flex;\n align-items: center;\n font-family: Roboto-m;\n padding: 0 2.4rem;\n`;\n\nexport const BlockExercisesHeaderLabel = styled.div`\n background: #ffffff;\n padding: 0.6rem 1.2rem;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #050000cc;\n margin: 0 1.6rem;\n display: flex;\n align-items: center;\n border-radius: 8px;\n`;\n\nexport const HeaderLabelCheckmark = styled.div`\n width: 1.6rem;\n height: 1.6rem;\n background-image: url(${ICONS.CheckMark});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 0.8rem;\n`;\n\nexport const BlockResults = styled.div`\n width: 100%;\n padding: 1.2rem 2.4rem;\n flex-grow: 1;\n`;\n\nexport const BlockResultsTable = styled.table`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0 0.6rem;\n text-align: left;\n margin-right: 0.8rem;\n`;\n\nexport const BlockResultsTH = styled.th`\n padding: 1.2rem 3.1rem;\n font-family: Roboto-m;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #4a4a4acc;\n text-transform: capitalize;\n &:first-child {\n max-width: fit-content;\n width: 3rem;\n padding: 2rem;\n }\n /* &:last-child {\n width: 4rem;\n max-width: fit-content;\n } */\n &:nth-child(2) {\n padding-left: 2.3rem;\n }\n`;\n\nexport const BlockResultsRow = styled.tr`\n width: 100%;\n background: white;\n margin: 0.6rem;\n border-radius: 4px;\n position: relative;\n &:hover {\n box-shadow: 0px 0px 3px 1px #00000012;\n }\n &:hover * .hover_indicator {\n display: block;\n }\n &:hover * .hoverable_view_icon {\n background-image: url(${ICONS.EnvelopeActiveIcon});\n }\n &:hover > * {\n font-family: Roboto-r;\n }\n`;\n\nexport const BlockResultsTD = styled.td`\n padding: 1.8rem 2rem 1.8rem 3.2rem;\n text-align: left;\n font-family: Roboto-l;\n font-size: 1.4rem;\n line-height: 2rem;\n position: relative;\n &:nth-child(2) {\n /* border-right: 2px solid #f1f0f0; */\n /* border-left: 2px solid #f1f0f0; */\n padding: 1.8rem 2rem;\n }\n &:first-child {\n padding: 0 1rem;\n border-radius: 4px 0 0 4px;\n text-align: center;\n }\n &:last-child {\n border-radius: 0 4px 4px 0;\n /* padding-right: 3.2rem; */\n }\n`;\n\nexport const HoverIndicator = styled.div`\n position: absolute;\n height: ${({ height }) => height || '76%'};\n width: ${({ width }) => width || '4px'};\n left: 0;\n border-radius: 0 10rem 10rem 0;\n top: ${({ height }) => (height ? `Calc((100% - ${height})/2)` : '12%')};\n background: ${({ theme }) => theme.color.primary};\n display: none;\n`;\n\nexport const HistoryViewEye = styled.div`\n width: 1.5rem;\n height: 1.5rem;\n margin-left: 0.4rem;\n background-image: url(${ICONS.EnvelopeIcon});\n background-size: 90% auto;\n background-position: center;\n background-repeat: no-repeat;\n`;\n\nexport const FlexTDContent = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.4rem;\n cursor: pointer;\n`;\n\nexport const BlockFeedbackSide = styled.div`\n width: Calc(33.5% + 0.5px);\n padding: 0.8rem 0.8rem 0.8rem 0;\n`;\n\nexport const BlockFeedback = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n border-radius: 8px;\n border: 0.5px solid rgba(5, 0, 0, 0.1);\n`;\n\nexport const BlockFeedbackContent = styled.div`\n width: 100%;\n flex-grow: 1;\n padding: 2.4rem 2.4rem 1.8rem;\n display: flex;\n flex-direction: column;\n position: relative;\n &::before {\n content: '';\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 12px 11px 12px 0;\n border-color: transparent rgba(5, 0, 0, 0.1) transparent transparent;\n position: absolute;\n right: 100%;\n top: Calc(50% - 12px);\n }\n &::after {\n content: '';\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 12px 10px 12px 0;\n border-color: transparent #ffffff transparent transparent;\n position: absolute;\n right: 100%;\n top: Calc(50% - 12px);\n }\n`;\n\nexport const FeedbackHeading = styled.div`\n font-size: 1.4rem;\n color: #4a4a4a;\n line-height: 2.1rem;\n font-family: Roboto-m;\n margin-bottom: 1.2rem;\n`;\n\nexport const FeedbackTextAreaWrapper = styled.div`\n flex-grow: 1;\n`;\n\nexport const BlockFeedbackHeader = styled.div`\n height: 5.5rem;\n display: flex;\n align-items: center;\n font-family: Roboto-r;\n padding: 0 2.4rem;\n font-size: 1.4rem;\n color: #4a4a4a;\n border-bottom: 1px solid #0500001a;\n`;\n\nexport const BLockAttachment = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n background: #f1f0f0;\n background-image: url(${({ att }) => att});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 0.8rem;\n cursor: pointer;\n border-radius: 4px;\n`;\n\nexport const BLockAttachmentVideo = styled.video`\n height: 3.2rem;\n background: #f1f0f0;\n background-image: url(${({ att }) => att});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 4px;\n`;\n\nexport const PlayPlaceholder = styled.div`\n background-image: url(${ICONS.VideoSignGrey});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n`;\n\nexport const ResultVideoButton = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n background-image: url(${ICONS.VideoSignGrey});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 1.6rem;\n`;\n\nexport const EntireMessageWrapper = styled.div`\n width: 100%;\n padding: 1.2rem;\n box-shadow: 0 0 3px 0px rgba(0, 0, 0, 0.12);\n border-radius: 8px;\n`;\n\nexport const BlocksWrapper = styled.div`\n width: 100%;\n border-radius: 8px;\n`;\n\n// group results\n\nexport const EntireGroupResultsWrapper = styled.div`\n width: 100%;\n padding: 0 1.6rem 1.6rem;\n`;\n\nexport const EntireGroupResults = styled.div`\n width: 100%;\n border-radius: 8px;\n background: #ffffff;\n box-shadow: 0 0 1px 1px rgba (0, 0, 0, 0.04);\n`;\n\nexport const EntireGroupHeader = styled.div`\n width: 100%;\n height: 4.8rem;\n position: relative;\n border-bottom: 1px solid #0500002a;\n margin-bottom: 2.4rem;\n display: flex;\n justify-content: center;\n`;\n\nexport const EntireGroupHeading = styled.div`\n padding: 1.2rem 1.6rem;\n line-height: 2rem;\n position: absolute;\n font-size: 1.8rem;\n letter-spacing: 0.1rem;\n color: #4a4a4a;\n bottom: -2.2rem;\n background: #ffffff;\n`;\n\nexport const EntireGroupContent = styled.div`\n padding: 0.8rem 1.6rem;\n`;\n\nexport const GroupWorkoutsWrapper = styled.div`\n padding: 3.2rem;\n`;\n\nexport const GroupParticipantsHeader = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n font-family: Roboto-m;\n position: relative;\n padding-right: 1.6rem;\n align-items: center;\n & > div {\n font-family: Roboto-m;\n }\n &::after {\n content: '';\n position: absolute;\n width: 1.4rem;\n height: 2.8rem;\n right: -1rem;\n background-image: url(${ICONS.Logo});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n }\n`;\n\nexport const GroupParticipantsContent = styled.div`\n padding: 4rem 3.2rem;\n`;\n\nexport const GroupParticipantRow = styled.div`\n padding: 0.8rem 1.2rem;\n width: 100%;\n display: flex;\n align-items: center;\n background: #ffffff;\n border: 1px solid #f1f0f0;\n border-radius: 8px;\n margin-bottom: 1.2rem;\n cursor: pointer;\n position: relative;\n &:hover {\n border-color: ${({ theme }) => theme.color.primary};\n }\n &:hover > .hover_indicator {\n display: block;\n }\n`;\n\nexport const GroupParticipantImage = styled.div`\n width: 4.8rem;\n height: 4.8rem;\n border-radius: 8px;\n background: #cececeaa;\n margin-right: 1.2rem;\n color: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Roboto-b;\n font-size: 1.4rem;\n text-transform: uppercase;\n`;\n\nexport const GroupParticipantName = styled.div`\n flex-grow: 1;\n font-size: 1.8rem;\n line-height: 2.4rem;\n color: #373333;\n`;\n\nexport const GroupParticipantResultIndicator = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const IndicatorDone = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n background-image: url(${ICONS.Logo});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n`;\n\nexport const IndicatorGeneral = styled.div`\n width: 0.8rem;\n height: 0.8rem;\n border-radius: 50%;\n background: ${({ status, theme }) => (status === 'UNDONE' ? theme.color.error : '#FFCC00')};\n`;\n\nexport const IndividualTraineeHeader = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const IndividualTraineeHeaderMain = styled.div`\n width: Calc(33% + 2rem);\n padding: 2rem;\n border-right: 1px solid #0500001a;\n border-left: 1px solid #0500001a;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: Calc(33% + 2rem);\n & > span {\n font-family: Gotham-r;\n font-size: 1.8rem;\n color: #4a4a4a;\n padding: 0 1.2rem;\n }\n`;\n\nexport const IndividualTraineePic = styled.div`\n width: 5.2rem;\n height: 5.2rem;\n border-radius: 50%;\n border: 2px solid #ffffff;\n box-shadow: 0 0 2px 2px #00ff91;\n background: #cececeaa;\n color: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Roboto-b;\n font-size: 1.4rem;\n text-transform: uppercase;\n`;\n\nexport const IndividualTraineeHeaderSide = styled.div`\n flex-grow: 1;\n width: 100%;\n`;\n\nexport const IndividualTraineeBackIcon = styled.div`\n width: 2.4rem;\n height: 2rem;\n background-image: url(${ICONS.ArrowLeft});\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n margin-right: 1.2rem;\n`;\n\nexport const IndividualTraineeBack = styled.div`\n font-size: 1.4rem;\n padding: 1.2rem;\n cursor: pointer;\n display: flex;\n align-items: center;\n`;\n\nexport const NoResults = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Space-r;\n color: #373333cc;\n padding: 2.2rem;\n`;\n\nexport const WorkoutBlockComment = styled.div`\n min-height: 2.5rem;\n margin-top: 2rem;\n display: flex;\n`;\n\nexport const CommentText = styled.span`\n opacity: 0.8;\n font-family: Roboto-l;\n font-size: 14px;\n font-weight: 300;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n`;\n\nexport const ToggleDetailsLink = styled.span`\n margin-left: 1.2rem;\n cursor: pointer;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #050000cc;\n text-decoration: underline;\n`;\n\nexport const ResultsTitle = styled.div`\n color: #050000;\n font-size: 1.4rem;\n font-family: Roboto-r;\n margin-top: ${({ mt }) => mt};\n margin-bottom: ${({ mb }) => mb};\n display: flex;\n align-items: center;\n`;\n\nexport const EyeContainer = styled.div`\n display: inline-block;\n opacity: 80%;\n cursor: pointer;\n\n &:hover {\n opacity: 100%;\n & > .option-view {\n background-image: url(${ICONS.OptionViewActive});\n }\n }\n`;\n\nexport const AttachmentsList = styled.div`\n display: flex;\n margin-top: 1.2rem;\n`;\n\nexport const AttachmentIcon = styled.div`\n width: 2.4rem;\n min-width: 2.4rem;\n height: 2.4rem;\n background-image: url(${({ src }) => src || ICONS.AttachmentsNewSvg});\n background-size: 1.6rem;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 6px;\n border: solid 0.6px #c2c0c0;\n background-color: #fcfcfc;\n margin-right: 1.2rem;\n`;\n\nexport const ResultsContainer = styled.div`\n background-color: #f8f7f7;\n border-radius: 8px;\n padding: 1.2rem;\n box-shadow: 0 1px 3px 0 rgb(74 74 74 / 12%);\n`;\n","import { jsPDF } from \"jspdf\"\nvar font = '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AW0BYgFeAAACrABRAjj/+wI4//sCOP/7Ajj/+wI4//sCOP/7Ajj/+wI4//sCOP/7Ajj/+wNK//YCWwBPAlsATwJEAC8CRAAvAkQALwJ4AE8CkAAcAngATwJ4AE8CIQBPAiEATwIhAE8CIQBPAiEATwIhAE8CIQBPAiEATwIhAE8CCABPAnsALwJ7AC8CewAvAnsALwKeAE8CxAAaAp4ATwKeAE8BJwBPAScATAEn/+4BJ//kASf/7QEn//8B+AATAmEATwJhAE8CYQBPAgEATwIH/+wC9QBPApYATwKWAE8CqQAvAqkALwKpAC8CqQAvAqkALwKpAC8CqQAvAqkALwKpACoCqQAvA2MALwJQAE8CZABPAqkALwJeAE8CKAAkAigAJAIoACQCKAAkAqEANAIpABoCKQAaAikAGgKWAEwClgBMApYATAKWAEwClgBMApYATAIm//oCJv/6AykADwIvAAwCBf/6AgX/+gIF//oCHQAlAh0AJQIdACUCHQAlAgwALAIMACwCDAAsAgwALAIMACwCDAAsAgwALAIMACwCDAAsAgwALAISAD0DEgAxAjoARAI6AEQB0gAmAdIAJgHSACYCOgApAi4ALAI6ACkCOgApAgIAJgICACYCAgAmAgIAJgICACYCAgAmAgIAJgICACYCAgAmAcoALwER/88BxwAFAU0AGQISACQCEgAkAhIAJAG7//sB8AAoAhIAJAI3AEQCN///AjcARAI3AEQCNwBEARAAOwEQAEQBEABEARD/1gEQ/9kBEP/RARD/9wER/9MCGwBEAhsARAIbAEQBGQBEASj/7wNVAEQCOABEAjgARAIpACYCKQAmAikAJgIpACYCKQAmAikAJgIpACYCKQAmAdIAFwIpACYCKQAmAzkAJgI6AEQCOgBEAjoAKQGGAEQBtwAWAbcAFgG3ABYBtwAWAm8ARAICACUBeAASAXgAEgJQABIBeAASAjUAPwI1AD8CNQA/AjUAPwI1AD8CNQA/AgIADAICAAwC/wAYAfcADgIBAAwCAQAMAgEADAIBAAwBxwAlAccAJQHHACUBxwAlAl0AGQJmABkBZQAfAXQAGQFlAB8BWQAZAVkAGQC7/+ABdAAZAiEAMgJzABMCBwAJAmkAFQIfACYBqAARAh4AIwI9ADABAwAxAXcAJwJTADYCTwAoAQMAMQIAACcB5QAd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AHMAaQBvAG4AIAAxAC4AMQAuACAAVABoAGkAcwAgAGwAaQBjAGUAbgBzAGUAIABpAHMAIABhAHYAYQBpAGwAYQBiAGwAZQAgAHcAaQB0AGgAIABhACAARgBBAFEAIABhAHQAOgAgAGgAdAB0AHAAOgAvAC8AcwBjAHIAaQBwAHQAcwAuAHMAaQBsAC4AbwByAGcALwBPAEYATABoAGEAZgBvAG4AdABpAGEALgBjAG8AbQBIAGUAYgByAGUAdwAgAEIAeQAgAEIAZQBuACAATgBhAHQAaABhAG4ALAAgAEwAYQB0AGkAbgAgAGIAeQAgAFAAYQB1AGwAIABIAHUAbgB0AFMAbwB1AHIAYwBlACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAAQQBkAG8AYgBlACAAUwB5AHMAdABlAG0AcwAgAEkAbgBjAG8AcgBwAG8AcgBhAHQAZQBkACAAaQBuACAAdABoAGUAIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACAAYQBuAGQALwBvAHIAIABvAHQAaABlAHIAIABjAG8AdQBuAHQAcgBpAGUAcwAuAEEAcwBzAGkAcwB0AGEAbgB0AC0AQgBvAGwAZABWAGUAcgBzAGkAbwBuACAAMwAuADAAMAAwAEEAcwBzAGkAcwB0AGEAbgB0ACAAQgBvAGwAZAAzAC4AMAAwADAAOwBIAEYATgBUADsAQQBzAHMAaQBzAHQAYQBuAHQALQBCAG8AbABkAEIAbwBsAGQAQQBzAHMAaQBzAHQAYQBuAHQAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMgAwACAAVABoAGUAIABBAHMAcwBpAHMAdABhAG4AdAAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBzACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGgAYQBmAG8AbgB0AGkAYQAvAEEAcwBzAGkAcwB0AGEAbgB0ACkALgAgAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADEAMAAgAFQAaABlACAAUwBvAHUAcgBjAGUAIABTAGEAbgBzACAAUAByAG8AIABBAHUAdABoAG8AcgBzACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAGEAZABvAGIAZQAtAGYAbwBuAHQAcwAvAHMAbwB1AHIAYwBlAC0AcwBhAG4AcwAtAHAAcgBvACkALAAgAHcAaQB0AGgAIABSAGUAcwBlAHIAdgBlAGQAIABGAG8AbgB0ACAATgBhAG0AZQAgACcAUwBvAHUAcgBjAGUAJwAuACAAUwBvAHUAcgBjAGUAIABpAHMAIABhACAAdAByAGEAZABlAG0AYQByAGsAIABvAGYAIABBAGQAbwBiAGUAIABTAHkAcwB0AGUAbQBzACAASQBuAGMAbwByAHAAbwByAGEAdABlAGQAIABpAG4AIAB0AGgAZQAgAFUAbgBpAHQAZQBkACAAUwB0AGEAdABlAHMAIABhAG4AZAAvAG8AcgAgAG8AdABoAGUAcgAgAGMAbwB1AG4AdAByAGkAZQBzAC4AAAACAAAAAAAA/5wAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAcMAAAAkAMkBAgDHAGIBAwCtAQQAYwCuAJAAJQEFACYA/wBkACcA6QEGAQcAKABlAQgAyADKAQkAywEKAQsAKQAqAQwBDQEOACsBDwEQAREALADMAM0AzgDPARIALQAuARMBFAAvAOIAMAAxAGYAMgDQARUA0QBnARYA0wEXAJEArwCwADMA7QA0ADUANgEYAOQBGQEaADcBGwEcADgA1ADVAGgA1gEdADkBHgA6ADsAPADrALsAPQDmAR8BIABEAGkBIQBrAGwBIgBqASMAbgBtASQAoABFASUARgEAAG8ARwDqASYBJwBIAHABKAByAHMBKQBxASoBKwEsAS0BLgBJAEoBLwEwATEBMgEzAEsBNAE1ATYBNwBMANcAdAB2AHcAdQE4AE0ATgE5AToATwDjAFAAUQB4AFIAeQE7AHsAfAE8AHoBPQE+AKEAfQCxAFMA7gBUAFUAVgE/AOUBQACJAUEAVwFCAUMBRABYAH4AgACBAH8BRQBZAUYAWgBbAFwA7AC6AUcAXQDnAUgBSQDAAMEAnQCeAUoBSwFMAU0BTgFPAJsBUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQATABQAFQAWABcAGAAZABoAGwAcALwA9AD1APYBigGLAYwADQA/AMMAhwAdAA8AqwAEAKMABgARACIAogAFAAoAHgASAEIAXgBgAD4AQAALAAwAswCyABABjQGOAKkAqgC+AL8AxQC0ALUAtgC3AMQBjwGQAZEBkgGTAAMBlAGVAZYBlwGYAIQAvQAHAZkApgGaAIUAlgCnAGEBmwC4AZwAIAAhAJUAkgCcAB8AlACkAO8A8ACPAJgACADGAA4AkwCaAKUAmQGdALkAXwDoACMACQCIAIsAigCGAIwAgwGeAEEAggDCAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0AjQDbAOEA3gDYAI4A3ABDAN8A2gDgAN0A2QG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwDxAPIA8wHQAdEAlwZBYnJldmUHdW5pMUVBMAdBbWFjcm9uB3VuaTFFMDYHdW5pMUUwQwd1bmkxRTBFBkVicmV2ZQd1bmkxRUI4B0VtYWNyb24HRW9nb25lawZHY2Fyb24KR2RvdGFjY2VudAd1bmkxRTIwBEhiYXIHdW5pMUUyQQd1bmkxRTI0B0ltYWNyb24HdW5pMUUzMgd1bmkxRTM0Bk9icmV2ZQd1bmkxRUNDB09tYWNyb24GU2FjdXRlB3VuaTFFNjIHdW5pMDE4Rgd1bmkxRTZDB3VuaTFFNkUHVW1hY3Jvbgd1bmkxRTdFB3VuaTFFOTIHdW5pMUU5NAZhYnJldmUHdW5pMUVBMQdhbWFjcm9uB3VuaTAyNTAHdW5pMUUwNwd1bmkxRTBEB3VuaTFFMEYGZWJyZXZlB3VuaTFFQjkHZW1hY3Jvbgdlb2dvbmVrB3VuaTAyNUIHdW5pMDI4Mwd1bmkwMjkyBmdjYXJvbgpnZG90YWNjZW50B3VuaTAyOTQHdW5pMDI5NQd1bmkxRTIxBGhiYXIHdW5pMUUyQgd1bmkxRTI1B3VuaTFFOTYHaW1hY3Jvbgd1bmkxRTMzB3VuaTFFMzUGb2JyZXZlB3VuaTFFQ0QHb21hY3Jvbgd1bmkwMjU0BnNhY3V0ZQd1bmkxRTYzB3VuaTAyNTkHdW5pMUU2RAd1bmkwMkE3B3VuaTFFNkYHdW1hY3Jvbgd1bmkxRTdGB3VuaTAyOEUHdW5pMUU5Mwd1bmkxRTk1BmEuc3VwcwZlLnN1cHMMZW9nb25lay5zdXBzBmouc3VwcwZvLnN1cHMFdGhldGEDY2hpB3VuaTA1RDAHdW5pMDVEMQd1bmkwNUQyB3VuaTA1RDMHdW5pMDVENAd1bmkwNUQ1B3VuaTA1RDYHdW5pMDVENwd1bmkwNUQ4B3VuaTA1RDkHdW5pMDVEQQd1bmkwNURCB3VuaTA1REMHdW5pMDVERAd1bmkwNURFB3VuaTA1REYHdW5pMDVFMAd1bmkwNUUxB3VuaTA1RTIHdW5pMDVFMwd1bmkwNUU0B3VuaTA1RTUHdW5pMDVFNgd1bmkwNUU3B3VuaTA1RTgHdW5pMDVFOQd1bmkwNUVBB3VuaUZCMkEHdW5pRkIyQgd1bmlGQjJDB3VuaUZCMkQHdW5pRkIyRQd1bmlGQjJGB3VuaUZCMzAHdW5pRkIzMQd1bmlGQjMyB3VuaUZCMzMHdW5pRkIzNAd1bmlGQjM1B3VuaUZCMzYHdW5pRkIzOAd1bmlGQjM5B3VuaUZCM0EHdW5pRkIzQgd1bmlGQjNDB3VuaUZCM0UHdW5pRkI0MAd1bmlGQjQxB3VuaUZCNDMHdW5pRkI0NAd1bmlGQjQ2B3VuaUZCNDcHdW5pRkI0OAd1bmlGQjQ5B3VuaUZCNEEHdW5pRkI0Qgd1bmkyMTBBCG9uZS5zdXBzCHR3by5zdXBzCnRocmVlLnN1cHMHdW5pMjAxMAd1bmkwMEFEB3VuaTA1QzAHdW5pMDVDMwd1bmkwNUYzB3VuaTA1RjQHdW5pMDVCRQd1bmkwMEEwB3VuaTIwMEUHdW5pMjAwRgd1bmkyMDJEB3VuaTIwMkUERXVybwluZXdzaGVxZWwHdW5pMjIxOQd1bmkyMjE1B3VuaTI1Y2MJZXN0aW1hdGVkB3VuaTAzMDgHdW5pMDMwNwlncmF2ZWNvbWIJYWN1dGVjb21iB3VuaTAzMEIHdW5pMDMwMgd1bmkwMzBDB3VuaTAzMDYHdW5pMDMwQQl0aWxkZWNvbWIHdW5pMDMwNAd1bmkwMzFFDGRvdGJlbG93Y29tYgd1bmkwMzI3B3VuaTAzMkUHdW5pMDMzMQd1bmkwMzYxC3VuaTAzMDguY2FwC3VuaTAzMDcuY2FwDWdyYXZlY29tYi5jYXANYWN1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EXQRbgAAAAAAAAAAEAAP+g/0D+4AAAAAAAAAABFiEeYRXBFWAAAAAAAAAAARUBFKEUQRPgAAAAAAAAAAETgRMhEsESYAAAAAAAAAABEUEQ4RCBECAAAAAAAAAAAQ9hHmEPARmAAAAAAAAAAAEOoQ5BDeENgAAAAAAAAAABC6EeYQtBCuAAAAAAAAAAAQqBDkEKIQnAAAAAAAAAAAEIQQ5BB+EHgAAAAAAAAAABWsEhYQchBsAAAAAAAAAAAQZhFKEGAQWgAAAAAAAAAAERQQVBBOEEgQQgAAAAAAABTUEDwQNhIiAAAAAAAAAAARwhG8EbYRsAAAD+gP4gAAAAAAAAAAAAAAAAABASr/MQABAS0CAwABAKsB9AABACIBWgABAD0B9AABAKsAAAABAMYB9AABACUA+gABAA8B9AABAMQAAAABAKYB9AABAB0A+gABAJMB9AABAKYAAAABAVcA+gABAFYB9AABAjYB9AABAVcB9AABAXkAzQABAGAB9AABAPMB9AABAJkA+gABAWMAAAABASkB9AABAR8BCQABARAB9AABAIQAqAABARAAAAABAQsB9AABAQsA+gABAQsAAAABARgB9AABAScA8wABARgAAAABARoB9AABAR8A+gABAR8APwABASAB9AABAT4BRQABABMB9AABASAAAAABATEB9AABATQBAgABABUB9AABATEAAAABAFsA+gABALcAAAABAIIA+gABAUgB9AABAVkA+gABABgB9AABAVcAAAABASgB9AABASgA+gABAP0B9AABAHsA+gAB/84B9AABAOIAAAABAPEB9AABAJwA+AABABAB9AABAOoAAAABAQEB9AABAKIA+gABAJwA8wAB//kBWgABAS4B9AABATgBCQABAGEB9AABAS4AAAABASoB9AABASUA+gABASUAAAABAL8B9AABAB4A+gABAAkB9AABAL0AAAABAIIB9AAB//gA+gABAG4B9AABAIIAAAABAR8B9AABARwA+gABAR8AAAABARIB9AABAJAA+gABABQB9AABAUQAAAABANEB9AABAGMBCQABAC4B9AABANkAAAABARQB9AABAKYA+gABABYB9AABAQAAAAABAToB9AABARoALQABACMB9AABAT0AAAABAdYBDgABAdQCAwABAO0AAAABAPH/7AABAPkCAwABAQcCAwABAQoCzAABAPD/MQABAQoCAwABAXQAAAABAPz/7AABAPwCAwABAYD/7AABAYACAwABASMCzAABASMC4QABAZMAAAABASD/7AABASMCAwABASj/7AABAOcAAAABAN3/7AABAKMCjQABAQEAAAABAPv/7AABAP0CAwABAOMAAAABAO8CAwABAJcAAAABAOwCAwABAa7/MQABASsCAwABAPYC2gABAIX/MQABAS4CAwABAZ0AAAABAZ3/7AABAawCAwABAOkAAAABAOn/7AABAOkCAwABARUCzAABARUC4QABAYwAAAABAST/7AABATYCAwABAogAAAABAbL/7AABAbcCAwABAJIBDgABAJYAAAABAJn/7AABAIkBDgABAI0AAAABAKH/7AABASP/7AABAIn/GAABAI0C5QABAIgCzAABAIgC4QABAIgCAwABAIgAAAABAIj/7AABAIcCAwABARwAAAABASf/7AABAPj/7AABAN7/7AABARACzAABARH/MQABARACAwABAKcAAAABAKD/7AABAOP/7AABAMkCDAABAIn/7AABAOUAAAABAP7/7AABAQMCAwABAQ0CAwABARMCzAABARMC4QABAQkAAAABAQn/7AABARMCAwABAP8AAAABASr/7AABAQ3/7AABARUCAwABAR//7AABAfcAAAABAZr/7AABAZsCAwABARz/7AABARkCAwABARsCzAABARsC4QABAXAAAAABAQD/7AABARsCAwABASQAAAABARr/7AABAQX/7AABAaMAAAABAQ7/7AABAZf/7AABARH/7AABAUsAAAABAUv/7AABARUAAAABARX/7AABAVAAAAABAWT/7AABARcAAAABARf/7AABALsAAAABAUX/7AABAJ3/7AABAk8AAAABAVb/7AABAVUAAAABAdUAAAABAVX/7AABAjAAAAABAXz/7AABALYBBwABARoAAAABAQP/7AABAK8BBwABARMAAAABAUz/7AABAQv/7AABAJUAAAABAJT/7AABANsAAAABAWL/7AABAMcAAAABAU7/7AABAWj/7AABALMAAAABAJv/7AABASgAAAABASL/7AABAUUAAAABAUj/7AABASwAAAABATj/7AABAV0AAAABAV3/7AABATn/7AABAj0AAAABAb7/7AABAbgAAAABARn/7AACAAUAAQBBAAAAQwCG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';\nvar callAddFont = function () {\nthis.addFileToVFS('Assistant-Bold-bold.ttf', font);\nthis.addFont('Assistant-Bold-bold.ttf', 'Assistant-Bold', 'bold');\n};\njsPDF.API.events.push(['addFonts', callAddFont])\n","import { jsPDF } from \"jspdf\"\nvar font = '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AUABPgF9AX4BIAFuAWQBWQFtAWIBXgAAAogAWgIbAAQCGwAEAhsABAIbAAQCGwAEAhsABAIbAAQCGwAEAhsABAIbAAQDMwAMAkkAXAJJAFwCOQA0AjkANAI5ADQCZQBcAnoAIgJlAFwCZQBcAgwAXAIMAFwCDABcAgwAXAIMAFwCDABcAgwAXAIMAFwCDABcAeoAXAJmADQCZgA0AmYANAJmADQCiABcAqsAIQKIAFwCiABcAQEAXAEBAE4BAf/wAQH/7QEB//8BAf/9AdsAIgI9AFwCPQBcAj0AXAHhAFwB4//9AtEAXAKEAFwChABcApUANAKVADQClQA0ApUANAKVADQClQA0ApUANAKVADQClQAzApUANANMADQCMgBcAkIAXAKVADQCMwBcAhIAKwISACsCEgArAhIAKwKPADsCFQAcAhUAHAIVABwCgwBZAoMAWQKDAFkCgwBZAoMAWQKDAFkB/QABAf0AAQMOABgB+QAQAdQAAAHUAAAB1AAAAhsALgIbAC4CGwAuAhsALgH1ADUB9QA1AfUANQH1ADUB9QA1AfUANQH1ADUB9QA1AfUANQH1ADUB/ABNAxEAPAInAFUCJwBVAcYALwHGAC8BxgAvAigAMQIeADcCKAAxAigAMQHsAC8B7AAvAewALwHsAC8B7AAvAewALwHsAC8B7AAvAewALwG0ADMA8v/aAaMAAwEcAB4B9AAvAfQALwH0AC8BnP//AbEAHQH0AC8CHABVAhwACgIcAFUCHABVAhwAVQDyAEgA8gBVAPIAQgDy/+MA8v/tAPL/8gDy//cA8v/cAecAVQHnAFUB5wBVAPoAVQEAAAEDOQBVAh8AVQIfAFUCHAAvAhwALwIcAC8CHAAvAhwALwIcAC8CHAAvAhwALwHGABkCHAAuAhwALwNJAC8CKABVAigAVQIoADEBVABVAaAAHQGgAB0BoAAdAaAAHQI3AFUB7AAlAUsAGQFLABkBogAZAUsAGQIcAE4CHABOAhwATgIcAE4CHABOAhwATgHLAAwBywAMAsYAGAG0AA4BywAMAcsADAHLAAwBywAMAaMAHgGjAB4BowAeAaMAHgIOAB4CFwAeAVcAJwFrAB4BVwAnAU8AHQFPAB0Apv/nAWsAHgIGAD0CQgAXAdoACQIwACECDgAzAXQAGgIXADUCIgA8AOAAQQFpADcCMwA/AikAMQDgAEEB9wA3AdcALQHcACsCRABLAl0ANgDgAEEBcAAwAjUAMQITABoCIwA7Ah0AOwHSAC4CBAAnAiUAOAHYACkCdgAxAl0AFgJ2ADECdgAsAnYAMQJ2ACwCMAAhAjAAIQIwACECDgAzAXQAGgIXADUCIgA8AO//7gF2ABUCKQAxAPH/9gH3ADcB1wAtAdwAKwJdADYBcAAwAjUAMQIjADsCHQA7AgQAJwIlADgB2AApAnYAMQJdABYA4AA9AiwAMgHsAC0BwwAxAewAJAHsABsB7AARAewAGQHsADEB7AAsAewAKQHsACgAVf9aAyMASwMVAEsDIwAlAVgAUQFyAC8BcQAoAZwAPQFgAAwA8gBCASoAKADyAEIA8gAvA+YAbwEaAFYBGgBWAewAIwDyAEIBowAmAaMAMAGZAFEA8gBRAPIALwFgAAoB9AAMASkAIgEpABwBKQBfASkAHAEpAFMBKQAlAyAAKQHgACkBNAApATQAKQE0ACkBpgAsAaYANgEMACwBDAA2AZkAPQGZADkBmQA9APIAOQDyAD0A8gA9AMgATQD5AEMA1QAyAYQAMgE7AC0AyAAAAMgAAAAA/44AAP9wAAD/ZAAA/1UB7AA9AewAHAHsADYB7AAXAewAEALeAEUB7AA1AewAGQHsACUB7AAlAfIAvgHsACIAVf9aAewAIgHsACIB7AAiAwkAKAFEADUB7AAiAewAIgHsACIB7AAiAewAMwHsACICCAAnAzEAJASfACoB7AAiAewAIgKcAFoCKAArAfQAFQJYAC8CAAA5AO0AXADtAFwDRwAzAlgAIQIkACkC6AAyAaEAFgHsAC8CdgADAUYAKQMgAC4B7AA9Ab0ANwG9ADcAAP9zAAD/zgAA/3gAAP/IAAD/pAAA/2kAAP9pAAD/ZgAA/5YAAP9VAAD/fgAA/6IAAP/OAAD/pAAA/2YAAP9+AAD+OgAA/20AAP/LAAD/fwAA/84AAP9wAAD/cAAA/3EAAP+hAAD/UgAA/30AAAAAAPIAMwDyAAAAbgAXAhwA1wIcAHQCHAB4AhwAsgIcAHgCHACBAhwA3AIcAIYCHACzAhwAjAIcAAACHACkAhwAYwAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAgAAAAIgAAACIAAAAiAOf/3AFcAFMBdAAvAW4AJQF0ADEA+gAAAhwAQwAAABoBPgADAAEECQAAAmoErAADAAEECQABABIEmgADAAEECQACAA4EjAADAAEECQADADgEVAADAAEECQAEACIEMgADAAEECQAFABoEGAADAAEECQAGACID9gADAAEECQAHAMADNgADAAEECQAJAFAC5gADAAEECQAMABgCzgADAAEECQANASABrgADAAEECQAOADQBegADAAEECQAZABwBXgADAAEECQEAAAwBUgADAAEECQEBABQBPgADAAEECQECAAoBNAADAAEECQEDAA4EjAADAAEECQEEABABJAADAAEECQEFAAgBHAADAAEECQEGABIBCgADAAEECQEHADIA2AADAAEECQEIACgAsAADAAEECQEJACwAhAADAAEECQEKAC4AVgADAAEECQELACYAMAADAAEECQEMADAAAABBAHMAcwBpAHMAdABhAG4AdABSAG8AbQBhAG4ALQBFAHgAdAByAGEAQgBvAGwAZABBAHMAcwBpAHMAdABhAG4AdABSAG8AbQBhAG4ALQBCAG8AbABkAEEAcwBzAGkAcwB0AGEAbgB0AFIAbwBtAGEAbgAtAFMAZQBtAGkAQgBvAGwAZABBAHMAcwBpAHMAdABhAG4AdABSAG8AbQBhAG4ALQBSAGUAZwB1AGwAYQByAEEAcwBzAGkAcwB0AGEAbgB0AFIAbwBtAGEAbgAtAEwAaQBnAGgAdABBAHMAcwBpAHMAdABhAG4AdABSAG8AbQBhAG4ALQBFAHgAdAByAGEATABpAGcAaAB0AEUAeAB0AHIAYQBCAG8AbABkAEIAbwBsAGQAUwBlAG0AaQBCAG8AbABkAEwAaQBnAGgAdABFAHgAdAByAGEATABpAGcAaAB0AFcAZQBpAGcAaAB0AEEAcwBzAGkAcwB0AGEAbgB0AFIAbwBtAGEAbgBoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAVABoAGkAcwAgAEYAbwBuAHQAIABTAG8AZgB0AHcAYQByAGUAIABpAHMAIABsAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAFMASQBMACAATwBwAGUAbgAgAEYAbwBuAHQAIABMAGkAYwBlAG4AcwBlACwAIABWAGUAcgBzAGkAbwBuACAAMQAuADEALgAgAFQAaABpAHMAIABsAGkAYwBlAG4AcwBlACAAaQBzACAAYQB2AGEAaQBsAGEAYgBsAGUAIAB3AGkAdABoACAAYQAgAEYAQQBRACAAYQB0ADoAIABoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8ATwBGAEwAaABhAGYAbwBuAHQAaQBhAC4AYwBvAG0ASABlAGIAcgBlAHcAIABCAHkAIABCAGUAbgAgAE4AYQB0AGgAYQBuACwAIABMAGEAdABpAG4AIABiAHkAIABQAGEAdQBsACAASAB1AG4AdABTAG8AdQByAGMAZQAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAEEAZABvAGIAZQAgAFMAeQBzAHQAZQBtAHMAIABJAG4AYwBvAHIAcABvAHIAYQB0AGUAZAAgAGkAbgAgAHQAaABlACAAVQBuAGkAdABlAGQAIABTAHQAYQB0AGUAcwAgAGEAbgBkAC8AbwByACAAbwB0AGgAZQByACAAYwBvAHUAbgB0AHIAaQBlAHMALgBBAHMAcwBpAHMAdABhAG4AdAAtAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADMALgAwADAAMABBAHMAcwBpAHMAdABhAG4AdAAgAFIAZQBnAHUAbABhAHIAMwAuADAAMAAwADsASABGAE4AVAA7AEEAcwBzAGkAcwB0AGEAbgB0AC0AUgBlAGcAdQBsAGEAcgBSAGUAZwB1AGwAYQByAEEAcwBzAGkAcwB0AGEAbgB0AEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADIAMAAgAFQAaABlACAAQQBzAHMAaQBzAHQAYQBuAHQAIABQAHIAbwBqAGUAYwB0ACAAQQB1AHQAaABvAHIAcwAgACgAaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBoAGEAZgBvAG4AdABpAGEALwBBAHMAcwBpAHMAdABhAG4AdAApAC4AIABDAG8AcAB5AHIAaQBnAGgAdAAgADIAMAAxADAAIABUAGgAZQAgAFMAbwB1AHIAYwBlACAAUwBhAG4AcwAgAFAAcgBvACAAQQB1AHQAaABvAHIAcwAgACgAaAB0AHQAcABzADoALwAvAGcAaQB0AGgAdQBiAC4AYwBvAG0ALwBhAGQAbwBiAGUALQBmAG8AbgB0AHMALwBzAG8AdQByAGMAZQAtAHMAYQBuAHMALQBwAHIAbwApACwAIAB3AGkAdABoACAAUgBlAHMAZQByAHYAZQBkACAARgBvAG4AdAAgAE4AYQBtAGUAIAAnAFMAbwB1AHIAYwBlACcALgAgAFMAbwB1AHIAYwBlACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAAQQBkAG8AYgBlACAAUwB5AHMAdABlAG0AcwAgAEkAbgBjAG8AcgBwAG8AcgBhAHQAZQBkACAAaQBuACAAdABoAGUAIABVAG4AaQB0AGUAZAAgAFMAdABhAHQAZQBzACAAYQBuAGQALwBvAHIAIABvAHQAaABlAHIAIABjAG8AdQBuAHQAcgBpAGUAcwAuAAIAAAAAAAD/nAAyAAAAAAAAAAAAAAAAAAAAAAAAAAABwwAAACQAyQECAMcAYgEDAK0BBABjAK4AkAAlAQUAJgD/AGQAJwDpAQYBBwAoAGUBCADIAMoBCQDLAQoBCwApACoBDAENAQ4AKwEPARABEQAsAMwAzQDOAM8BEgAtAC4BEwEUAC8A4gAwADEAZgAyANABFQDRAGcBFgDTARcAkQCvALAAMwDtADQANQA2ARgA5AEZARoANwEbARwAOADUANUAaADWAR0AOQEeADoAOwA8AOsAuwA9AOYBHwEgAEQAaQEhAGsAbAEiAGoBIwBuAG0BJACgAEUBJQBGAQAAbwBHAOoBJgEnAEgAcAEoAHIAcwEpAHEBKgErASwBLQEuAEkASgEvATABMQEyATMASwE0ATUBNgE3AEwA1wB0AHYAdwB1ATgATQBOATkBOgBPAOMAUABRAHgAUgB5ATsAewB8ATwAegE9AT4AoQB9ALEAUwDuAFQAVQBWAT8A5QFAAIkBQQBXAUIBQwFEAFgAfgCAAIEAfwFFAFkBRgBaAFsAXADsALoBRwBdAOcBSAFJAMAAwQCdAJ4BSgFLAUwBTQFOAU8AmwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJABMAFAAVABYAFwAYABkAGgAbABwAvAD0APUA9gGKAYsBjAANAD8AwwCHAB0ADwCrAAQAowAGABEAIgCiAAUACgAeABIAQgBeAGAAPgBAAAsADACzALIAEAGNAY4AqQCqAL4AvwDFALQAtQC2ALcAxAGPAZABkQGSAZMAAwGUAZUBlgGXAZgAhAC9AAcBmQCmAZoAhQCWAKcAYQGbALgBnAAgACEAlQCSAJwAHwCUAKQA7wDwAI8AmAAIAMYADgCTAJoApQCZAZ0AuQBfAOgAIwAJAIgAiwCKAIYAjACDAZ4AQQCCAMIBnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQCNANsA4QDeANgAjgDcAEMA3wDaAOAA3QDZAb4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAPEA8gDzAdAB0QCXBkFicmV2ZQd1bmkxRUEwB0FtYWNyb24HdW5pMUUwNgd1bmkxRTBDB3VuaTFFMEUGRWJyZXZlB3VuaTFFQjgHRW1hY3JvbgdFb2dvbmVrBkdjYXJvbgpHZG90YWNjZW50B3VuaTFFMjAESGJhcgd1bmkxRTJBB3VuaTFFMjQHSW1hY3Jvbgd1bmkxRTMyB3VuaTFFMzQGT2JyZXZlB3VuaTFFQ0MHT21hY3JvbgZTYWN1dGUHdW5pMUU2Mgd1bmkwMThGB3VuaTFFNkMHdW5pMUU2RQdVbWFjcm9uB3VuaTFFN0UHdW5pMUU5Mgd1bmkxRTk0BmFicmV2ZQd1bmkxRUExB2FtYWNyb24HdW5pMDI1MAd1bmkxRTA3B3VuaTFFMEQHdW5pMUUwRgZlYnJldmUHdW5pMUVCOQdlbWFjcm9uB2VvZ29uZWsHdW5pMDI1Qgd1bmkwMjgzB3VuaTAyOTIGZ2Nhcm9uCmdkb3RhY2NlbnQHdW5pMDI5NAd1bmkwMjk1B3VuaTFFMjEEaGJhcgd1bmkxRTJCB3VuaTFFMjUHdW5pMUU5NgdpbWFjcm9uB3VuaTFFMzMHdW5pMUUzNQZvYnJldmUHdW5pMUVDRAdvbWFjcm9uB3VuaTAyNTQGc2FjdXRlB3VuaTFFNjMHdW5pMDI1OQd1bmkxRTZEB3VuaTAyQTcHdW5pMUU2Rgd1bWFjcm9uB3VuaTFFN0YHdW5pMDI4RQd1bmkxRTkzB3VuaTFFOTUGYS5zdXBzBmUuc3Vwcwxlb2dvbmVrLnN1cHMGai5zdXBzBm8uc3VwcwV0aGV0YQNjaGkHdW5pMDVEMAd1bmkwNUQxB3VuaTA1RDIHdW5pMDVEMwd1bmkwNUQ0B3VuaTA1RDUHdW5pMDVENgd1bmkwNUQ3B3VuaTA1RDgHdW5pMDVEOQd1bmkwNURBB3VuaTA1REIHdW5pMDVEQwd1bmkwNUREB3VuaTA1REUHdW5pMDVERgd1bmkwNUUwB3VuaTA1RTEHdW5pMDVFMgd1bmkwNUUzB3VuaTA1RTQHdW5pMDVFNQd1bmkwNUU2B3VuaTA1RTcHdW5pMDVFOAd1bmkwNUU5B3VuaTA1RUEHdW5pRkIyQQd1bmlGQjJCB3VuaUZCMkMHdW5pRkIyRAd1bmlGQjJFB3VuaUZCMkYHdW5pRkIzMAd1bmlGQjMxB3VuaUZCMzIHdW5pRkIzMwd1bmlGQjM0B3VuaUZCMzUHdW5pRkIzNgd1bmlGQjM4B3VuaUZCMzkHdW5pRkIzQQd1bmlGQjNCB3VuaUZCM0MHdW5pRkIzRQd1bmlGQjQwB3VuaUZCNDEHdW5pRkI0Mwd1bmlGQjQ0B3VuaUZCNDYHdW5pRkI0Nwd1bmlGQjQ4B3VuaUZCNDkHdW5pRkI0QQd1bmlGQjRCB3VuaTIxMEEIb25lLnN1cHMIdHdvLnN1cHMKdGhyZWUuc3Vwcwd1bmkyMDEwB3VuaTAwQUQHdW5pMDVDMAd1bmkwNUMzB3VuaTA1RjMHdW5pMDVGNAd1bmkwNUJFB3VuaTAwQTAHdW5pMjAwRQd1bmkyMDBGB3VuaTIwMkQHdW5pMjAyRQRFdXJvCW5ld3NoZXFlbAd1bmkyMjE5B3VuaTIyMTUHdW5pMjVjYwllc3RpbWF0ZWQHdW5pMDMwOAd1bmkwMzA3CWdyYXZlY29tYglhY3V0ZWNvbWIHdW5pMDMwQgd1bmkwMzAyB3VuaTAzMEMHdW5pMDMwNgd1bmkwMzBBCXRpbGRlY29tYgd1bmkwMzA0B3VuaTAzMUUMZG90YmVsb3djb21iB3VuaTAzMjcHdW5pMDMyRQd1bmkwMzMxB3VuaTAzNjELdW5pMDMwOC5j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';\nvar callAddFont = function () {\nthis.addFileToVFS('Assistant-Regular-normal.ttf', font);\nthis.addFont('Assistant-Regular-normal.ttf', 'Assistant-Regular', 'normal');\n};\njsPDF.API.events.push(['addFonts', callAddFont])\n","import {jsPDF} from \"jspdf\";\nimport './Assistant-Bold-bold.js';\nimport './Assistant-Regular-normal.js';\nconst TEXT_PADDING = 3;\nconst TITLE_PADDING = 15;\nconst BLOCK_PADDING = 5;\nconst BLOCK_MARGIN = 5;\n\nconst calculateBlockDimensionsForLandscape = (block, maxTextWidth, pageHeight, numberOfColumns, fontSize) => {\n // Create a jsPDF instance in landscape mode.\n const doc = new jsPDF(\"landscape\", \"mm\", \"a4\");\n doc.setFontSize(14);\n\n // Prepare an array to simulate the columns.\n // Each column will store:\n // - its accumulated height,\n // - and an array of exercises placed into it.\n const columns = [];\n for (let i = 0; i < numberOfColumns; i++) {\n columns.push({ exercises: [], height: 0, width: 0});\n }\n\n\n doc.setFont(\"Assistant-Regular\", \"normal\")\n // -- Column 1: Place the title.\n const titleText = `${block.title}`;\n const titleDimensions = doc.getTextDimensions(titleText, { maxWidth: maxTextWidth });\n const titleHeight = titleDimensions.h;\n // The first column begins with the title height and padding.\n columns[0].height = titleHeight + TITLE_PADDING + 5;\n\n // Keep track of which column we are currently filling.\n let currentColumn = 0;\n\n doc.setFontSize(fontSize);\n // -- Process each exercise.\n for (const exercise of block.lines) {\n doc.setFont(\"Assistant-Bold\", \"bold\")\n\n const exerciseText = `${exercise.name}`;\n const exDimensions = doc.getTextDimensions(exerciseText, { maxWidth: maxTextWidth });\n\n doc.setFont(\"Assistant-Regular\", \"normal\")\n\n const newSunText = exercise.descriptions.map((desc) => reverseHebrewWords(desc));\n const subTextDimensions = doc.getTextDimensions(newSunText, { maxWidth: maxTextWidth});\n\n let exHeight = exDimensions.h + TEXT_PADDING + subTextDimensions.h;\n\n if (exDimensions.h !== 0){\n exHeight += TEXT_PADDING;\n }\n\n // Check if the exercise fits in the current column.\n if (columns[currentColumn].height + exHeight <= pageHeight) {\n // It fits, so add it.\n columns[currentColumn].exercises.push(exercise);\n columns[currentColumn].height += exHeight;\n } else {\n // It does not fit in the current column, so try moving to the next column.\n if (currentColumn + 1 < numberOfColumns) {\n currentColumn++;\n // For subsequent columns, there is no title at the top.\n columns[currentColumn].height = 0;\n\n // Check if the exercise fits in an empty column.\n if (exHeight <= pageHeight) {\n columns[currentColumn].exercises.push(exercise);\n columns[currentColumn].height += exHeight;\n } else {\n // Even on an empty column, the exercise is too tall.\n throw new Error(\"An exercise is too tall to fit in an empty column.\");\n }\n } else {\n // No more columns are available to accommodate the exercise.\n throw new Error(\"Not enough columns to fit all exercises with the given page height.\");\n }\n }\n }\n\n // -- Determine overall dimensions:\n // The required height is the maximum height used among the columns.\n const requiredHeight = Math.max(...columns.map(col => col.height));\n // Count how many columns were used (they may not all be used).\n const usedColumns = columns.filter(col => col.exercises.length > 0).length;\n // The required width is based on the number of used columns.\n const requiredWidth = usedColumns * maxTextWidth + usedColumns * BLOCK_MARGIN;\n\n return { width: requiredWidth, height: requiredHeight, columns };\n};\n\nconst calculateBlockHeightAndWidthForLandscape = (block, pageHeight, numberOfColumns, blockWidth, withContinue, blocksPerPage, fontSize) => {\n for (let i = 1 ; i<= numberOfColumns; i++) {\n try {\n let {height, columns} = calculateBlockDimensionsForLandscape(block,\n (blockWidth * i) - TEXT_PADDING,\n pageHeight, 1, fontSize);\n\n return {blockHeight: height,\n blockWidth: blockWidth * i,\n numberOfRows: height > (pageHeight * 0.5) && withContinue ? 2 : 1,\n textWidth: (blockWidth * i) - TEXT_PADDING,\n columns: columns,\n numberOfColumnsUsed: i};\n } catch (e) {\n // console.log(e);\n }\n }\n\n if (withContinue) {\n\n let numberOfColumnsInBlock = 1;\n\n if (blocksPerPage === 1){\n numberOfColumnsInBlock = 4;\n } else if (blocksPerPage === 2){\n numberOfColumnsInBlock = 2;\n } else if (blocksPerPage === 3) {\n numberOfColumnsInBlock = 1;\n } else if (blocksPerPage === 4) {\n numberOfColumnsInBlock = 1\n }\n\n return tryToFitBlockInContinue(block, numberOfColumns, blockWidth, pageHeight, numberOfColumnsInBlock, fontSize)\n }\n\n throw new Error('Block is too big to fit in the page ' + block.title);\n}\n\nconst tryToFitBlockInContinue = (block, numberOfAvilibleColumnsInBlockWidth, blockWidth, pageHeight, numberOfColumnsInBlock, fontSize) => {\n\n for (let i =1; i <= numberOfAvilibleColumnsInBlockWidth ; i++) {\n for (let j = 1 ; j <= numberOfColumnsInBlock; j++) {\n try {\n let {height, columns} = calculateBlockDimensionsForLandscape(block,\n (blockWidth - (BLOCK_PADDING * j)) /numberOfColumnsInBlock, pageHeight, j * i, fontSize);\n\n return {\n blockHeight: pageHeight,\n blockWidth: blockWidth * i,\n textWidth: (blockWidth - (BLOCK_PADDING * j)) /numberOfColumnsInBlock,\n numberOfRows: 2,\n columns: columns,\n numberOfColumnsUsed: i\n };\n } catch (e) {}\n }\n }\n\n throw new Error('Block is too big to fit in the page ' + block.title);\n}\n\nconst isFirstRow = (currentColumn) => {\n return currentColumn.length === 0;\n}\n\nconst getNumberOfColumnsUsed = (currentPage) => {\n return Math.min(currentPage.columns.reduce((acc, column) => {\n return acc + column.reduce((blockAcc, block) => {\n return blockAcc + (block.numberOfColumnsUsed ? block.numberOfColumnsUsed : 0);\n }, 0);\n }, 0), 4);\n};\n\nconst getNumberOfColumnsWidth = (currentPage) => {\n\n return currentPage.columns.reduce((acc, column) => {\n return acc + column[0].blockWidth;\n }, 0);\n};\n\n\nconst isEmptyPage = (currentPage) => {\n return currentPage.columns.length === 0;\n}\n\nconst getNumberOfBlocks = (currentPage) => {\n return currentPage.columns.reduce((acc, column) => {\n return acc + column.length;\n }, 0);\n};\n\nconst addBlockToPage = (block, currentPage, pageHeight, pageWidth, numberOfColumns, blocksPerPage, fontSize) => {\n // if there are no columns created, but there is a block we need to add\n\n const numberOfBlocks = getNumberOfBlocks(currentPage);\n\n if (numberOfBlocks === blocksPerPage){\n throw new Error('Page is full, need to create a new page')\n }\n\n const numberOfUsedColumns = getNumberOfColumnsUsed(currentPage);\n\n if (numberOfUsedColumns < numberOfColumns) {\n currentPage.columns.push([]);\n }\n\n\n let currentColumn = null;\n let currentColumnIdx = 0;\n\n if (numberOfUsedColumns < numberOfColumns) {\n currentColumn = currentPage.columns[currentPage.columns.length - 1];\n } else if (numberOfUsedColumns === numberOfColumns) {\n for (let i =0 ; i < currentPage.columns.length; i++) {\n if (currentPage.columns[i].length !== 2 && currentPage.columns[i][0].numberOfRows === 1) {\n currentColumn = currentPage.columns[i];\n currentColumnIdx = i;\n break;\n }\n }\n }\n\n if (currentColumn === null) {\n throw new Error('No column to add block ' + block.title);\n }\n\n\n if (isFirstRow(currentColumn)) {\n const {blockHeight, columns, blockWidth, textWidth, numberOfRows, numberOfColumnsUsed} = calculateBlockHeightAndWidthForLandscape(block,\n pageHeight, numberOfColumns - numberOfUsedColumns,\n (pageWidth - BLOCK_MARGIN * numberOfColumns) / numberOfColumns, true, blocksPerPage, fontSize);\n\n if (numberOfColumnsUsed + numberOfUsedColumns <= numberOfColumns) {\n currentColumn.push({\n block,\n blockHeight,\n blockWidth,\n textWidth,\n columns,\n numberOfRows,\n numberOfColumnsUsed\n });\n\n if (blockHeight >= 0.5 * pageHeight) {\n currentPage.columns.forEach((column) => {column.forEach((block) => {block.numberOfRows = 2})});\n }\n\n } else {// if the block is too big to fit in the page\n throw new Error('Block has no space in columns' + block.title);\n }\n\n } else {\n debugger;\n const {blockHeight, columns, blockWidth, textWidth, numberOfRows, numberOfColumnsUsed} =\n calculateBlockHeightAndWidthForLandscape(block, (pageHeight / 2) - BLOCK_MARGIN ,\n 1,\n (pageWidth - BLOCK_MARGIN * numberOfColumns) / numberOfColumns,\n false, blocksPerPage, fontSize);\n\n if (numberOfColumnsUsed + currentColumnIdx <= numberOfColumns) {\n currentColumn.push({\n block,\n blockHeight,\n blockWidth,\n textWidth,\n columns,\n numberOfRows,\n });\n } else {\n throw new Error('Block has no space in columns' + block.title);\n }\n }\n}\n\nconst fixWhiteSpaceBetweenColumns = (currentPage, pageWidth) => {\n const totalColumns = currentPage.columns.length;\n const totalColumnsWidth = getNumberOfColumnsWidth(currentPage);\n const totalWhiteSpace = pageWidth - totalColumnsWidth - (BLOCK_MARGIN * totalColumns - 1);\n const whiteSpaceForEachColumn = totalWhiteSpace / totalColumns;\n\n currentPage.columns.forEach((column) => {\n\n column[0].blockWidth += whiteSpaceForEachColumn;\n if (column[0].columns.length === 1) {\n column[0].textWidth += whiteSpaceForEachColumn - TEXT_PADDING;\n } else {\n column[0].textWidth += (whiteSpaceForEachColumn - (TEXT_PADDING * column[0].columns.length)) / column[0].columns.length;\n }\n if (column.length > 1) {\n column[1].blockWidth += whiteSpaceForEachColumn;\n if (column[1].columns.length === 1) {\n column[1].textWidth += whiteSpaceForEachColumn - TEXT_PADDING;\n } else {\n column[1].textWidth += (whiteSpaceForEachColumn - (TEXT_PADDING * column[0].columns.length)) / column[0].columns.length;\n }\n }\n });\n}\n\nconst fixWhiteSpaceBetweenRows = (currentPage, pageHeight) => {\n currentPage.columns.forEach((column) => {\n if (column.length === 1) {\n column[0].blockHeight = pageHeight;\n } else if (column.length === 2) {\n column.forEach((block) => {\n block.blockHeight = (pageHeight / 2) - (BLOCK_MARGIN /2);\n });\n }\n });\n};\n\nconst fixWhiteSpace = (currentPage, pageHeight, pageWidth) => {\n fixWhiteSpaceBetweenColumns(currentPage, pageWidth);\n fixWhiteSpaceBetweenRows(currentPage, pageHeight);\n}\n\nconst addBlockToPageLandscape = (block, pages, blocksPerPage, pageHeight, pageWidth, fontSize) => {\n const currentPage = pages[pages.length - 1];\n const maxNumberOfColumns = Math.min(blocksPerPage, 4)\n\n if (isEmptyPage(currentPage)) {\n try {\n addBlockToPage(block, currentPage, pageHeight, pageWidth, maxNumberOfColumns, blocksPerPage, fontSize)\n } catch (e) {\n console.log(\"Can not add block \" + block.title + \" to page\");\n throw e\n }\n } else {\n try {\n addBlockToPage(block, currentPage, pageHeight, pageWidth, maxNumberOfColumns, blocksPerPage, fontSize)\n } catch (e) {\n\n if (currentPage.columns[currentPage.columns.length-1].length === 0){\n currentPage.columns.pop();\n }\n fixWhiteSpace(currentPage, pageHeight, pageWidth);\n\n pages.push({\n columns: []\n })\n return addBlockToPageLandscape(block, pages, blocksPerPage, pageHeight, pageWidth, fontSize);\n }\n }\n}\n\nconst getBlocksLocationPerPageForLanscape = (blocks, blocksPerPage, pageHeight, pageWidth, fontSize) => {\n debugger;\n const pages = [];\n // add the first page\n //Add a new Page\n pages.push({\n columns: []\n })\n\n console.log(\"Starting to pring blocks\")\n blocks.forEach((block, index) => {\n addBlockToPageLandscape(block, pages, blocksPerPage, pageHeight, pageWidth, fontSize);\n });\n\n\n fixWhiteSpace(pages[pages.length - 1], pageHeight, pageWidth);\n return pages;\n}\n\nconst drawBlock = (doc, block, xOffset, yOffset, fontSize) => {\n doc.setTextColor(\"#000000\")\n const radius = 5; // Border radius for rounded rectangles\n // Draw the block's background (rounded rectangle)\n doc.setFillColor(255, 255, 255); // White background for blocks\n console.log(\"yOffset\", yOffset, \"block.width\", block.width)\n\n doc.roundedRect(xOffset, yOffset, block.blockWidth, block.blockHeight , radius, radius, 'F');\n\n // Set initial column offset and height trackers\n let currentColumnXOffset = xOffset; // Track current X position for text\n let currentColumnHeight = 0; // Track used height in the current column\n\n\n\n // Title Logic\n const renderTitle = () => {\n doc.setFontSize(14);\n doc.setFont(\"Assistant-Regular\", \"normal\", )\n const title = block.block.title;\n const titleDimensions = doc.getTextDimensions(title, { maxWidth: block.textWidth});\n doc.text(reverseHebrewWords(title), currentColumnXOffset + TEXT_PADDING, yOffset + 10, { maxWidth: block.textWidth});\n return (titleDimensions.h) + TITLE_PADDING; // Return height used by the title\n };\n\n const blockHeight = yOffset + 10;\n let textYOffset = yOffset + renderTitle(); // Render title in the first column\n\n\n // Remaining height after the title\n\n\n doc.setFontSize(fontSize);\n let i = 0;\n block.columns.forEach((column) => {\n column.exercises.forEach((exercise) => {\n doc.setFont(\"Assistant-Bold\", \"bold\")\n const text = reverseHebrewWords(`${exercise.name}`);\n const textDimensions = doc.getTextDimensions(text, { maxWidth: block.textWidth});\n\n // Draw the text in the current column\n doc.text(text, currentColumnXOffset + TEXT_PADDING, textYOffset, { maxWidth: block.textWidth})\n\n doc.setFont(\"Assistant-Regular\", \"normal\")\n\n const newSunText = exercise.descriptions.map((desc) => reverseHebrewWords(desc));\n const subTextDimensions = doc.getTextDimensions(newSunText, { maxWidth: block.textWidth});\n\n // Draw the text in the current column\n doc.text(newSunText, currentColumnXOffset + TEXT_PADDING, textYOffset + textDimensions.h, { maxWidth: block.textWidth})\n\n\n let textHeight = textDimensions.h + subTextDimensions.h; // Height for this text line with padding\n\n if (subTextDimensions.h !== 0){\n textHeight += TEXT_PADDING;\n }\n\n // Update offsets and column height\n textYOffset += textHeight;\n currentColumnHeight += textHeight;\n });\n\n currentColumnXOffset += (block.blockWidth - (TEXT_PADDING * block.columns.length))/block.columns.length ; // Add spacing for new column\n currentColumnHeight = 0; // Reset current column height\n textYOffset = blockHeight;\n if (i < block.columns.length - 1 && block.columns.length > 1) {\n doc.setLineDash([2, 2], 0); // [dot size, space size], phase 0\n doc.line(currentColumnXOffset + 2, blockHeight, currentColumnXOffset + 2, blockHeight + block.blockHeight - 20); // x1, y1, x2, y2\n\n // doc.setFillColor(0, 0, 0); // White background for blocks\n // doc.roundedRect(currentColumnXOffset + 2, blockHeight, 1, block.blockHeight - 10\n // - 5, radius, radius, 'F');\n currentColumnXOffset+=1;\n }\n i=i+1;\n });\n};\n\nfunction containsHebrew(text) {\n return /[\\u0590-\\u05FF]/.test(text);\n}\nfunction isAllHebrew(text) {\n const hebrewOnly = /^[\\u0590-\\u05FF]+$/;\n return hebrewOnly.test(text);\n}\n\nconst nonHebrewStart = /^[^\\u0590-\\u05FF]/;\nfunction endsWithHebrew(text) {\n return /[\\u0590-\\u05FF]$/.test(text.trim());\n}\n\nfunction startsWithNonHebrew(text) {\n return nonHebrewStart.test(text);\n}\n\nfunction lastAlphabetCharIsHebrew(text) {\n for (let i = text.length - 1; i >= 0; i--) {\n const char = text[i];\n if (/[a-zA-Z]/.test(char)) {\n return false; // Found an English letter first\n }\n if (/[\\u0590-\\u05FF]/.test(char)) {\n return true; // Found a Hebrew letter first\n }\n }\n return false; // No alphabetic character found\n}\n\nfunction firstAlphabetCharType(text) {\n for (const char of text) {\n if (/[a-zA-Z]/.test(char)) {\n return false;\n }\n if (/[\\u0590-\\u05FF]/.test(char)) {\n return true;\n }\n }\n return false; // No alphabetic character found\n}\n\nfunction splitAndProcessText(text) {\n debugger;\n // Regular expressions\n const hebrewRegex = /[\\u0590-\\u05FF]/;\n const splitRegex = /([\\u0590-\\u05FF\\s]+|[a-zA-Z0-9\\s#]+)/g;\n\n\n // Split text into Hebrew and English segments\n let segments = text.match(splitRegex);\n\n if (!segments) return text; // Return original if nothing matches\n\n return segments\n .map(segment => {\n if (hebrewRegex.test(segment)) {\n // Reverse the order of Hebrew words\n return segment.trim().split(/\\s+/).reverse().join(\" \").split(\" \")\n .map((word) => (word.split(\"\").reverse().join(\"\") ))\n .join(\" \")\n } else {\n return segment.trim().split(/\\s+/).reverse().join(\" \").split(\" \")\n .map((word) => (word.split(\"\").reverse().join(\"\") ))\n .join(\" \")\n }\n })\n .join(\" \");\n}\n\nconst reverseHebrewWords = (text) => {\n console.log(\"firstAlphabetCharType(text)\", firstAlphabetCharType(text), text);\n\n if (firstAlphabetCharType(text))\n return splitAndProcessText(text);\n else\n return text;\n};\n\nconst UseLandscape = (blocks, blocksPerPage, image, dateStr, workoutName, fontSize) => {\n const doc = new jsPDF('landscape', 'mm', 'a4');\n\n debugger;\n console.log(doc.getFontList()); // This should show \"NotoSansHebrew\"\n\n const pageWidth = doc.internal.pageSize.getWidth();\n const pageHeight = doc.internal.pageSize.getHeight();\n\n\n // const pages = getBlocksLocationPerPageForPortrait(blocks, 8, pageHeight - 50, pageWidth -20)\n const pages = getBlocksLocationPerPageForLanscape(blocks, blocksPerPage, pageHeight - 30, pageWidth -20, fontSize)\n\n pages.forEach((page, pageIndex) => {\n if (pageIndex > 0) {\n doc.addPage();\n }\n\n // Draw background for each page\n doc.setFillColor(29, 29, 29);\n doc.rect(0, 0, pageWidth, pageHeight, 'F'); // 'F' for filled background\n doc.addImage(image, \"PNG\", 10, 5, 15, 15);\n doc.setFont(\"Assistant-Regular\", \"normal\")\n doc.setTextColor(\"#e0e0e0\")\n doc.setFontSize(18);\n debugger;\n doc.text(reverseHebrewWords(workoutName), 30, 10);\n doc.setFont(\"Assistant-Regular\", \"normal\")\n doc.setFontSize(16);\n doc.text(dateStr, 30, 18);\n\n\n const columnSpacing = 5; // Space between columns\n const rowSpacing = 5; // Space between rows\n\n // Iterate columns first for portrait\n let xOffset = 10;\n\n page.columns.forEach((column) => {\n let yOffset = 25;\n\n column.forEach((block, index) => {\n drawBlock(doc, block, xOffset, yOffset, fontSize);\n yOffset += block.blockHeight + rowSpacing;\n });\n\n // Increment xOffset for the next column\n xOffset += column[0].blockWidth + columnSpacing;\n });\n\n });\n\n // Save the PDF\n doc.save('Workout_Plan.pdf');\n};\n\nexport default UseLandscape;\n","import {jsPDF} from 'jspdf';\nimport './Assistant-Bold-bold.js';\nimport './Assistant-Regular-normal.js';\n\nconst TEXT_PADDING = 3;\nconst TITLE_PADDING = 15;\nconst BLOCK_PADDING = 5;\n\nconst getColumnHeight = (column) => {\n if (column.length === 0)\n return 0;\n\n const blocksHights = column.reduce((acc, block) => acc + block.height, 0);\n return blocksHights + (column.length - 1) * BLOCK_PADDING\n}\n\nconst calculateNumberOfBlocksInPage = (currentPage) => {\n return currentPage.columns.reduce((acc, column) => acc + column.length, 0);\n}\n\nconst fixWhiteSpaceInCurrentPage = (currentPage, pageHeight, pageWidth) => {\n if (currentPage == null)\n return;\n\n currentPage.columns.forEach(column => fixWhiteSpaceInCurrentColumn(column, pageHeight));\n\n if (currentPage.columns.length === 1) {\n currentPage.columns[0].forEach(block => {\n\n if (block.width !== pageWidth){\n block.width = pageWidth;\n block.textWidth = pageWidth;\n }\n })\n }\n}\n\nconst addANewPage = (pages, pageHeight, pageWeight) => {\n fixWhiteSpaceInCurrentPage(pages[pages.length - 1], pageHeight, pageWeight)\n\n pages.push({\n columns: []\n });\n\n pages[pages.length - 1].columns.push([]);\n}\n\nconst addBlockToCurrentColumn = (currentColumn, block, blockHeight, blockWidth, textWidth) => {\n currentColumn.push({\n data: block,\n height: blockHeight,\n width: blockWidth,\n textWidth: textWidth,\n })\n}\n\nconst fixWhiteSpaceInCurrentColumn = (currentColumn, pageHeight) => {\n const currentColumnHeight = getColumnHeight(currentColumn)\n const numberOfSpeerSpace = pageHeight - currentColumnHeight;\n const spaceToAdd = numberOfSpeerSpace / currentColumn.length;\n\n currentColumn.forEach(block => {\n block.height += spaceToAdd;\n })\n}\n\nconst addANewColumn = (currentPage) => {\n currentPage.columns.push([]);\n}\n\nconst handleBlockInFullPageSize = (block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, curBlocksInPage, currentPage, currentColumn, textWidth) => {\n if (curBlocksInPage !== 0) {\n addANewPage(pages, pageHeight, pageWidth);\n return addBlockToPageRecursive(block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, textWidth);\n } else {\n addBlockToCurrentColumn(currentColumn, block, blockHeight, blockWidth, textWidth);\n addANewPage(pages, pageHeight, pageWidth);\n }\n}\n\nconst handleBlockInColumnSize = (block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, curBlocksInPage, currentPage, currentColumn, textWidth) => {\n if (blockHeight + getColumnHeight(currentColumn) < pageHeight) {\n addBlockToCurrentColumn(currentColumn, block, blockHeight, blockWidth, textWidth);\n } else {\n fixWhiteSpaceInCurrentColumn(currentColumn, pageHeight);\n\n if (currentPage.columns.length === 2) { // is last column\n addANewPage(pages, pageHeight, pageWidth)\n return addBlockToPageRecursive(block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, textWidth);\n } else {\n addANewColumn(currentPage);\n return addBlockToPageRecursive(block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, textWidth);\n }\n }\n}\n\nconst addBlockToPageRecursive = (block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, textWidth) => {\n const currentPage = pages[pages.length - 1];\n const currentColumn = currentPage.columns[currentPage.columns.length - 1];\n\n const curBlocksInPage = calculateNumberOfBlocksInPage(currentPage);\n\n if (curBlocksInPage === maxBlocksInPage) {\n addANewPage(pages, pageHeight, pageWidth);\n return addBlockToPageRecursive(block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, textWidth);\n }\n\n if (isFullPage) {\n handleBlockInFullPageSize(block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, curBlocksInPage, currentPage, currentColumn, textWidth);\n\n } else {\n handleBlockInColumnSize(block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, maxBlocksInPage, curBlocksInPage, currentPage, currentColumn, textWidth)\n }\n}\n\nconst calculateBlockHeightForPortrait = (block, maxTextWidth, textSplited, fontSize) => {\n let doc = new jsPDF(\"portrait\", 'mm', 'a4');\n doc.setFontSize(14);\n // calculate title height\n doc.setFont(\"Assistant-Regular\", \"normal\");\n const {w, h} = doc.getTextDimensions(`${block.title}`, {maxWidth: maxTextWidth});\n\n let firstColumnHeight = h + TITLE_PADDING;\n let secondColumnHeight = 0;\n\n doc.setFontSize(fontSize);\n block.lines.forEach((exercise, i) => {\n doc.setFont(\"Assistant-Bold\", \"bold\")\n\n const exerciseText = `${exercise.name}`;\n const exDimensions = doc.getTextDimensions(exerciseText, { maxWidth: maxTextWidth });\n\n doc.setFont(\"Assistant-Regular\", \"normal\")\n\n const newSunText = exercise.descriptions.map((desc) => reverseHebrewWords(desc));\n const subTextDimensions = doc.getTextDimensions(newSunText, { maxWidth: maxTextWidth});\n\n let height = exDimensions.h + subTextDimensions.h + TEXT_PADDING;\n\n if (exDimensions.h !== 0){\n height += TEXT_PADDING;\n }\n\n if (textSplited) {\n if (i % 2 === 0) {\n firstColumnHeight += height;\n } else {\n secondColumnHeight += height;\n }\n } else {\n firstColumnHeight += height;\n }\n });\n\n return Math.max(firstColumnHeight, secondColumnHeight);\n}\n\nconst calculateBlockHeightAndWidthForPortrait = (block, blocksPerPage, pageHeight, pageWidth, fontSize) => {\n if (blocksPerPage === 1) {\n let h = calculateBlockHeightForPortrait(block, pageWidth, false, fontSize);\n let textWidth = pageWidth - TEXT_PADDING;\n\n if (h > pageHeight) {\n h = calculateBlockHeightForPortrait(block, ((pageWidth - BLOCK_PADDING) / 2), true, fontSize)\n textWidth = ((pageWidth - BLOCK_PADDING) / 2);\n\n if (h > pageHeight) {\n throw new Error('Block is too big to fit in: ' + block.title);\n }\n }\n\n return {blockHeight: h, blockWidth: pageWidth, textWidth: textWidth};\n } else {\n let w = (pageWidth - BLOCK_PADDING) / 2;\n let textWidth = w - TEXT_PADDING;\n\n let h = calculateBlockHeightForPortrait(block, textWidth, false, fontSize);\n\n if (h > pageHeight) {\n h = calculateBlockHeightForPortrait(block, pageWidth, false, fontSize);\n w = pageWidth;\n\n if (h > pageHeight) {\n h = calculateBlockHeightForPortrait(block, (pageWidth - BLOCK_PADDING) / 2, true, fontSize)\n textWidth = ((pageWidth - BLOCK_PADDING) / 2) - (2 * TEXT_PADDING);\n\n if (h > pageHeight) {\n throw new Error('Block is too big to fit in: ' + block.title);\n }\n }\n }\n\n return {blockHeight: h,\n blockWidth: w,\n textWidth: textWidth};\n }\n}\n\n\nconst getBlocksLocationPerPageForPortrait = (blocks, blocksPerPage, pageHeight, pageWidth, fontSize) => {\n const pages = [];\n // add the first page\n addANewPage(pages);\n blocks.forEach((block, index) => {\n const {\n blockHeight,\n blockWidth,\n textWidth\n } = calculateBlockHeightAndWidthForPortrait(block, blocksPerPage, pageHeight, pageWidth, fontSize);\n const isFullPage = blockWidth === pageWidth;\n\n addBlockToPageRecursive(block, blockHeight, blockWidth, pages, pageHeight, pageWidth, isFullPage, blocksPerPage, textWidth);\n });\n\n if (pages[pages.length - 1].columns[0].length === 0) {\n pages.pop();\n }\n\n fixWhiteSpaceInCurrentPage(pages[pages.length - 1], pageHeight, pageWidth)\n return pages;\n}\n\nfunction splitAndProcessText(text) {\n debugger;\n // Regular expressions\n const hebrewRegex = /[\\u0590-\\u05FF]/;\n const splitRegex = /([\\u0590-\\u05FF\\s]+|[a-zA-Z0-9\\s#]+)/g;\n\n\n // Split text into Hebrew and English segments\n let segments = text.match(splitRegex);\n\n if (!segments) return text; // Return original if nothing matches\n\n return segments\n .map(segment => {\n if (hebrewRegex.test(segment)) {\n // Reverse the order of Hebrew words\n return segment.trim().split(/\\s+/).reverse().join(\" \").split(\" \")\n .map((word) => (word.split(\"\").reverse().join(\"\") ))\n .join(\" \")\n } else {\n return segment.trim().split(/\\s+/).reverse().join(\" \").split(\" \")\n .map((word) => (word.split(\"\").reverse().join(\"\") ))\n .join(\" \")\n }\n })\n .join(\" \");\n}\n\nfunction firstAlphabetCharType(text) {\n for (const char of text) {\n if (/[a-zA-Z]/.test(char)) {\n return false;\n }\n if (/[\\u0590-\\u05FF]/.test(char)) {\n return true;\n }\n }\n return false; // No alphabetic character found\n}\n\nconst reverseHebrewWords = (text) => {\n\n if (firstAlphabetCharType(text))\n return splitAndProcessText(text);\n else\n return text;\n};\n\n\n\nconst drawBlock = (doc, block, xOffset, yOffset, fontSize) => {\n const radius = 5; // Border radius for rounded rectangles\n // Draw the block's background (rounded rectangle)\n doc.setFillColor(255, 255, 255); // White background for blocks\n doc.setTextColor(\"#000000\")\n doc.roundedRect(xOffset, yOffset, block.width, block.height , radius, radius, 'F');\n\n // Set initial column offset and height trackers\n let currentColumnXOffset = xOffset; // Track current X position for text\n let currentColumnHeight = 0; // Track used height in the current column\n\n // Title Logic\n const renderTitle = () => {\n doc.setFontSize(14);\n doc.setFont(\"Assistant-Regular\", \"normal\");\n const title = reverseHebrewWords(`${block.data.title}`);\n const titleDimensions = doc.getTextDimensions(title, { maxWidth: block.textWidth});\n doc.text(title, currentColumnXOffset + TEXT_PADDING, yOffset + 10, { maxWidth: block.textWidth});\n return (titleDimensions.h) + TITLE_PADDING; // Return height used by the title\n };\n\n let textYOffset = yOffset + renderTitle(); // Render title in the first column\n const blockHeight = textYOffset;\n\n // Remaining height after the title\n const remainingHeight = block.height - textYOffset + yOffset + 5;\n\n doc.setFontSize(fontSize);\n block.data.lines.forEach((exercise) => {\n doc.setFont(\"Assistant-Bold\", \"bold\");\n const exerciseText = reverseHebrewWords(`${exercise.name}`);\n const exDimensions = doc.getTextDimensions(exerciseText, { maxWidth: block.textWidth });\n\n doc.setFont(\"Assistant-Regular\", \"normal\")\n\n const subText = exercise.descriptions.map((desc) => reverseHebrewWords(desc));\n const subTextDimensions = doc.getTextDimensions(subText, { maxWidth: block.textWidth});\n\n let textHeight = exDimensions.h + subTextDimensions.h; // Height for this text line with padding\n\n if (subTextDimensions.h !== 0){\n textHeight += TEXT_PADDING;\n }\n\n // Check if adding this text would exceed the current column height\n if (currentColumnHeight + textHeight > remainingHeight) {\n\n // Move to the next \"virtual column\"\n currentColumnXOffset += (block.width/2) + 5; // Add spacing for new column\n currentColumnHeight = 0; // Reset current column height\n textYOffset = blockHeight;\n\n doc.setLineDash([2, 2], 0); // [dot size, space size], phase 0\n doc.line(currentColumnXOffset -5 , blockHeight - 20, currentColumnXOffset -5, blockHeight + block.height - 30); // x1, y1, x2, y2\n\n // doc.setFillColor(0, 0, 0); // White background for blocks\n // doc.roundedRect(currentColumnXOffset + 2, blockHeight, 1, block.blockHeight - 10\n // - 5, radius, radius, 'F');\n }\n\n // Draw the text in the current column\n doc.setFont(\"Assistant-Bold\", \"bold\");\n doc.text(exerciseText, currentColumnXOffset + TEXT_PADDING, textYOffset, { maxWidth: block.textWidth})\n\n doc.setFont(\"Assistant-Regular\", \"normal\");\n doc.text(subText, currentColumnXOffset + TEXT_PADDING, textYOffset + exDimensions.h, { maxWidth: block.textWidth})\n\n // Update offsets and column height\n textYOffset += textHeight;\n currentColumnHeight += textHeight;\n });\n};\n\n\nconst usePortrait = (blocks, numberOfBlockPerPage, image, dateStr, workoutName, fontSize) => {\n const doc = new jsPDF('portrait', 'mm', 'a4');\n const pageWidth = doc.internal.pageSize.getWidth();\n const pageHeight = doc.internal.pageSize.getHeight();\n debugger;\n const pages = getBlocksLocationPerPageForPortrait(blocks, numberOfBlockPerPage, pageHeight - 35, pageWidth -20, fontSize)\n\n pages.forEach((page, pageIndex) => {\n if (pageIndex > 0) {\n doc.addPage();\n }\n\n // Draw background for each page\n doc.setFillColor(29, 29, 29);\n doc.rect(0, 0, pageWidth, pageHeight, 'F'); // 'F' for filled background\n doc.addImage(image, \"PNG\", 10, 5, 15, 15);\n doc.setFont(\"Assistant-Regular\", \"normal\")\n doc.setTextColor(\"#e0e0e0\")\n doc.setFontSize(18);\n doc.text(reverseHebrewWords(workoutName), 30, 10);\n doc.setFont(\"Assistant-Regular\", \"normal\")\n doc.setFontSize(16);\n doc.text(dateStr, 30, 18);\n\n const columnSpacing = 5; // Space between columns\n const rowSpacing = 5; // Space between rows\n\n // Iterate columns first for portrait\n let xOffset = 10;\n\n page.columns.forEach((column) => {\n let yOffset = 25;\n\n column.forEach((block, index) => {\n drawBlock(doc, block, xOffset, yOffset, fontSize);\n yOffset += block.height + rowSpacing;\n });\n\n // Increment xOffset for the next column\n xOffset += column[0].width + columnSpacing;\n });\n\n });\n\n // Save the PDF\n doc.save('Workout_Plan.pdf');\n};\n\nexport default usePortrait;\n","import {WorkoutBlockType} from \"../../constants/enums\";\nimport UseLandscape from \"./useLandscape\";\nimport UsePortrait from \"./usePortrait\";\nimport BLOCKS from \"../../constants/workoutBlocks\";\n\nconst useDownloadWorkoutAsPDF = () => {\n const downloadWorkout = async (workout, orientation, numberOfBlockPerPage, image, dateStr, workoutName, fontSize) => {\n return new Promise((resolve, reject) => {\n try {\n console.log(\"Workout\", workout);\n const blocks = convertBlocks(workout);\n console.log(\"Blocks\", blocks);\n\n if (orientation === 'landscape') {\n UseLandscape(blocks, parseInt(numberOfBlockPerPage), image, dateStr, workoutName, fontSize);\n } else {\n UsePortrait(blocks, parseInt(numberOfBlockPerPage), image, dateStr, workoutName, fontSize);\n }\n\n resolve();\n } catch (error) {\n reject(error);\n }\n });\n };\n\n return {downloadWorkout}\n};\n\nconst formatTime = (seconds) => {\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n\n return `${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;\n};\n\nconst convertBlocks = (workout) => {\n return workout.workout.workoutBlocks.map(block => {\n switch (block.type) {\n case WorkoutBlockType.CLASSICSTRENGTH:\n return classicStrengthBlock(block);\n case WorkoutBlockType.PILATESR:\n return pilatesRBlock(block);\n case WorkoutBlockType.INTERVAL:\n return intervalBlock(block);\n case WorkoutBlockType.AMRAP:\n return amrapBlock(block);\n case WorkoutBlockType.RFT:\n return rftBlock(block);\n case WorkoutBlockType.RNFT:\n return rftBlock(block);\n case WorkoutBlockType.STRENGTH:\n return strengthBlock(block);\n case \"SUPERSETS\":\n return superSetsBlock(block);\n case WorkoutBlockType.EMOM:\n return emomBlock(block);\n case WorkoutBlockType.RUN:\n return runBlock(block);\n case WorkoutBlockType.REST:\n return restBlock(block);\n case WorkoutBlockType.CUSTOM:\n return customBlock(block);\n }\n })\n}\n\nconst customBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getCustomLines(block)\n }\n}\n\nconst restBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getRestLines(block)\n }\n}\n\nconst runBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getRunLines(block)\n }\n}\n\nconst emomBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getEmomLines(block)\n }\n}\n\nconst superSetsBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getSuperSetLines(block)\n }\n}\n\nconst strengthBlock = (block) => {\n return {\n title: getBlockTitle(block) + ` - ${block.exercises[0].exercise.title}`,\n lines: getStrengthLines(block)\n }\n}\n\nconst rftBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getRftLines(block)\n }\n}\n\nconst amrapBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getAmrapLines(block)\n }\n}\n\nconst getCustomLines = (block) => {\n const message = block.customAttributes.find(x => x.name === \"text\")?.textValue\n let lines = []\n\n lines.push({\n name: `- Message -`,\n descriptions: message.split(\"\\n\")\n });\n return lines;\n}\n\nconst getRestLines = (block) => {\n const restTime = block.customAttributes.find(x => x.name === \"rest\")?.value\n let lines = []\n\n lines.push({\n name: `- Rest ${formatTime(restTime)} -`,\n descriptions: []\n });\n\n return lines;\n}\n\nconst getRunLines = (block) => {\n const numberOfRounds = block.customAttributes.find(x => x.name === \"rounds\")?.value\n let lines = []\n\n lines.push({\n name: `- ${numberOfRounds} Rounds -`,\n descriptions: []\n });\n\n block.exercises.forEach(exercise => {\n lines.push({\n name: `${exercise.exercise.title}:`,\n descriptions: [`${exercise.quantity} ${exercise.unit.toLowerCase()} ${getRunWeight(exercise)}`]\n })});\n\n return lines;\n}\n\nconst getRunWeight = (exercise) => {\n if (!exercise.weight || exercise.weight === 0)\n return ''\n\n return `- ${exercise.weight} ${getRunWeightUnit(exercise.weightType)}`\n}\n\nconst getWeight = (exercise) => {\n if (!exercise.weight || exercise.weight === 0) return ''\n\n return `- ${exercise.weight} ${getWeightUnit(exercise.weightType)}`\n}\n\nconst getEmomLines = (block) => {\n const numberOfRounds = block.customAttributes.find(x => x.name === \"rounds\")?.value\n const roundTime = block.customAttributes.find(x => x.name === \"roundTime\")?.value\n let lines = []\n\n lines.push({\n name: `- Every ${formatTime(roundTime)} minutes - ${numberOfRounds} Rounds -`,\n descriptions: []\n });\n\n block.exercises.forEach(exercise => {\n lines.push({\n name: `${exercise.exercise.title}:`,\n descriptions: [`${exercise.quantity} ${exercise.unit.toLowerCase()} ${getWeight(exercise)}`]\n })});\n\n return lines;\n}\n\nconst getSuperSetLines = (block) => {\n const numberOfRounds = block.customAttributes.find(x => x.name === \"sets\")?.value\n const restTime = block.customAttributes.find(x => x.name === \"interval\")?.value\n let lines = []\n\n lines.push({\n name: `- ${numberOfRounds} Rounds -`,\n descriptions: []\n });\n lines.push({\n name: `Rest Time: ${formatTime(restTime)}`,\n descriptions: []\n });\n\n block.exercises.forEach(exercise => {\n lines.push({\n name: `${exercise.exercise.title}:`,\n descriptions: [`${exercise.quantity} ${exercise.unit.toLowerCase()} ${getWeight(exercise)}`]\n })\n });\n\n return lines;\n}\n\nconst getStrengthLines = (block) => {\n const numberOfRounds = block.customAttributes.find(x => x.name === \"sets\")?.value\n const restTime = block.customAttributes.find(x => x.name === \"interval\")?.value\n let lines = []\n\n lines.push({\n name: `- ${numberOfRounds} Rounds -`,\n descriptions: []\n });\n lines.push({\n name: `Rest Time: ${formatTime(restTime)}`,\n descriptions: []\n });\n\n let i = 1;\n\n block.exercises.forEach(exercise => {\n lines.push({\n name: `${i}:`,\n descriptions: [`${exercise.quantity} ${exercise.unit.toLowerCase()} ${getWeight(exercise)}`]\n })\n i = i + 1;\n });\n\n return lines;\n};\n\nconst getRftLines = (block) => {\n const numberOfRounds = block.customAttributes.find(x => x.name === \"rounds\")?.value\n let lines = []\n\n lines.push({\n name: `- ${numberOfRounds} Rounds -`,\n descriptions: []\n });\n\n block.exercises.forEach(exercise => {\n lines.push({\n name: `${exercise.exercise.title}:`,\n descriptions: [`${exercise.quantity} ${exercise.unit.toLowerCase()} ${getWeight(exercise)}`]\n })});\n\n return lines;\n};\n\nconst getAmrapLines = (block) => {\n const totalTime = block.customAttributes.find(x => x.name === \"totalTime\")?.value\n let lines = []\n lines.push({\n name: `- Total ${formatTime(totalTime)} minutes -`,\n descriptions: []\n })\n\n block.exercises.forEach(exercise => {\n lines.push({\n name: `${exercise.exercise.title}:`,\n descriptions: [`${exercise.quantity} ${exercise.unit.toLowerCase()} ${getWeight(exercise)}`]\n })});\n\n return lines;\n}\n\nconst getWeightUnit = (unit) => {\n if (unit === 'KG') {\n return 'kg';\n } else if (unit === 'PERCENTAGE') {\n return '%'\n }\n}\n\nconst getRunWeightUnit = (unit) => {\n if (unit === 'KG') {\n return 'km/h';\n } else if (unit === 'PERCENTAGE') {\n return 'min/km'\n }\n}\n\nconst intervalBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getIntervalLines(block)\n }\n};\n\nconst classicStrengthBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getClassicStrengthLines(block)\n };\n}\n\n\nconst pilatesRBlock = (block) => {\n return {\n title: getBlockTitle(block),\n lines: getPilatesRLines(block)\n }\n};\n\nconst getBlockTitle = (block) => {\n return `#${block.order} ${block.customAttributes.find(x => x.name === 'block_title')?.textValue || BLOCKS[block.type].name}`;\n}\n\nconst getIntervalLines = (block) => {\n const numberOfRounds = block.customAttributes.find(x => x.name === 'intervals')?.value\n const worktime = block.customAttributes.find(x => x.name === \"workTime\")?.value\n const restTime = block.customAttributes.find(x => x.name === 'restTime')?.value\n let lines = []\n lines.push({\n name: `- ${numberOfRounds} Rounds -`,\n descriptions: [`Work Time: ${formatTime(worktime)}`, `Rest Time: ${formatTime(restTime)}`]\n })\n\n block.exercises.forEach(exercise => {\n lines.push({\n name: `${exercise.exercise.title}:`,\n descriptions: [`${exercise.quantity} ${exercise.unit.charAt(0).toUpperCase()}${exercise.unit.slice(1).toLowerCase()} ${getWeight(exercise)}`]\n })}\n );\n\n return lines;\n};\n\nconst getPilatesRLines = (block) => {\n return block.exercises.map(exercise => {\n return {\n name: `${exercise.exercise.title}:`,\n descriptions: [`Setting: ${exercise.setting}`, `Reps: ${exercise.reps}`, exercise.notes ? `Notes: ${exercise.notes}` : ''],\n }\n });\n};\n\nconst getClassicStrengthLines = (block) => {\n return block.exercises.map(exercise => {\n return {\n name: `${exercise.exercise.title}:`,\n descriptions: [`${exercise.numberOfSets} Sets - ${exercise.quantity} Reps ${getWeight(exercise)}`,\n `Rest ${formatTime(exercise.restTime)} between sets`,]\n }\n })\n}\n\nexport default useDownloadWorkoutAsPDF;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 7.5%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Space-r')};\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n font-size: 1.8rem;\n padding: 4px 28px;\n min-height: 28px;\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n text-align: ${({ centered }) => (centered ? 'center' : 'left')};\n`;\n\nexport const ArrowIcon = styled.div`\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: #d2d1d1;\n background-image: url('');\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n margin: 3.5rem auto 2rem;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const ModalRow = styled.div`\n width: 100%;\n display: flex;\n`;\n\nexport const ModalColumn = styled.div`\n width: ${({ left }) => (left ? '43%' : '57%')};\n border-right: ${({ left }) => (left ? '1px solid #05000033' : 'none')};\n border-bottom: 1px solid #05000033;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n padding: 3.2rem 3.6rem;\n`;\nexport const FlexWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n`;\n\nexport const FieldWrapper = styled.div`\n width: Calc(50% - 1rem);\n pointer-events: ${({ disabled }) => (disabled ? 'none' : 'auto')};\n opacity: ${({ disabled }) => (disabled ? '0.3' : '1')};\n`;\n\nexport const FieldTitle = styled.div`\n font-family: Roboto-m;\n font-size: 1.4rem;\n line-height: 2rem;\n color: #37333399;\n margin-bottom: 1.6rem;\n padding: 0 0.4rem;\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 2rem 3.2rem;\n`;\n\nexport const ButtonWrapper = styled.div`\n min-width: 14.4rem;\n height: 4.4rem;\n`;\n\nexport const CernteredContentFlex = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-top: 2.2rem;\n`;\n\n//profile image\n\nexport const ProfileImageContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\n\nexport const Profileimage = styled.div`\n position: relative;\n overflow: hidden;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-image: ${(props) =>\n props.src\n ? `url(${props.src})`\n : `url(\"https://icon-library.com/images/no-profile-picture-icon-female/no-profile-picture-icon-female-3.jpg\")`};\n background-size: cover;\n background-position: center;\n`;\n\nexport const ProfileimageLine = styled.div`\n width: 140px;\n height: 140px;\n padding: 8px;\n border-radius: 50%;\n border: ${({ theme, error }) =>\n error ? `1px solid ${theme.color.error}` : `2px solid ${theme.color.primary}`};\n cursor: pointer;\n`;\n\n// days\n\nexport const DaysContainer = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n align-items: center;\n`;\n\nexport const DayWrapper = styled.div`\n min-width: Calc(25% - 1.2rem);\n margin: 1.2rem 0.6rem 0;\n border-radius: 8px;\n border: 1px solid\n ${({ checked, error, theme }) =>\n error ? theme.color.error : checked ? 'rgba(0,185,114,0.6)' : '#dededecc'};\n text-transform: uppercase;\n justify-content: center;\n display: flex;\n align-items: center;\n padding: 1.3rem 0;\n font-size: 1.4rem;\n position: relative;\n cursor: pointer;\n &:after {\n content: '';\n position: absolute;\n background: ${({ theme }) => theme.color.primary};\n background-image: url(${ICONS.TermsCheckMark});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 0 8px 0 8px;\n width: 1.8rem;\n height: 1.8rem;\n top: 0;\n right: 0;\n display: ${({ checked }) => (checked ? 'block' : 'none')};\n }\n`;\n","import React, {useEffect, useMemo, useState} from 'react';\nimport Modal from 'react-modal';\nimport {ModalCloseX, ModalHeader, WholeWrapper,} from './components';\nimport {useHistory, useLocation} from 'react-router-dom';\nimport Loader from \"../loader/Loader\";\nimport useCalendar from \"../../hooks/calendar\";\nimport useDownloadWorkoutAsPDF from \"./useDownloadWorkoutAsPDF\";\nimport CustomInputDropdown from \"../input/CustomInputDropdown\";\nimport CustomButton from \"../button/CustomButton\";\nimport CustomInput from \"../input/CustomInput\";\nimport moment from \"moment\";\nimport CustomInputFile from \"../input/CustomInputFile\";\nimport {\n CernteredContentFlex, Profileimage, ProfileImageContainer, ProfileimageLine\n} from \"../add-group-modal.jsx/components\";\nimport ICONS from \"../../constants/icons\";\nimport {CameraIconPdf, PdfImage, PdfImageFrame} from \"../../pages/profile/components\";\nimport {useCoachPersonalInfo} from \"../../hooks\";\nimport CustomInputNumber from \"../input/CustomInputNumber\";\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 3333,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n overflow: 'hidden auto',\n },\n content: {\n width: '74%',\n maxWidth: '700px',\n minHeight: '500px',\n height: 'fit-content',\n borderRadius: '8px',\n overflow: 'hidden',\n pointerEvents: 'all',\n background: 'white',\n margin: '4rem auto',\n position: 'static',\n padding: 0,\n },\n};\n\nconst DownloadWorkoutModal = ({\n name,\n closeModal,\n loading,\n alert,\n urlTraineeUid,\n coachProgramUid,\n day,\n}) => {\n const [submitting, setSubmitting] = useState(false);\n const {downloadWorkout} = useDownloadWorkoutAsPDF();\n const [orientation, setOrientation] = useState('landscape');\n const [date, setDate] = useState(Date.now());\n const [workoutName, setWorkoutName] = useState(day?.workout?.name);\n const [imageBase64, setImageBase64] = useState(null);\n const [fontSize, setFontSize] = useState(18);\n const [error, setError] = useState(null);\n\n const [numberOfBlockPerPage, setNumberOfBlocksPerPage] = useState('4');\n const {\n currentCoach,\n } = useCoachPersonalInfo({ });\n\n const convertImageUrlToBase64 = (imageUrl) => {\n fetch(imageUrl, {\n method: \"GET\",\n mode: 'cors', // Ensures CORS is handled\n cache: 'no-cache', // Prevents caching issues\n headers: {'Access-Control-Request-Headers': '*', 'Vary': 'Origin',},\n }).then(response => {\n response.arrayBuffer().then(function(buffer) {\n const url = window.URL.createObjectURL(new Blob([buffer]));\n setImageBase64(url)\n });\n })\n .catch(err => {\n console.log(err);\n });\n };\n\n\n useEffect(() => {\n if (currentCoach?.pdfImage?.url) {\n convertImageUrlToBase64(currentCoach.pdfImage.url);\n }\n }, [currentCoach?.pdfImage?.url]);\n\n const { calendars, calendarsLoading } = useCalendar({\n coachProgramUid,\n startDate: day?.programDay,\n calendarUid: day?.uid,\n });\n\n const WORKOUT = useMemo(() => {\n if (Array.isArray(calendars)) {\n return calendars?.find((x) => x.type === 'WORKOUT');\n }\n\n return calendars;\n }, [calendars]);\n\n const handleDownload = () => {\n setError(null);\n setSubmitting(true);\n debugger;\n downloadWorkout(WORKOUT, orientation, numberOfBlockPerPage, imageBase64, moment(date).format(\"DD/MM/YYYY\"), workoutName, fontSize)\n .then(closeModal)\n .catch(e => setError(e.message))\n .finally(() => setSubmitting(false));\n }\n\n const handleFontSize = (val) => {\n const newNum = Number(val)\n\n if (newNum < 0) {\n setFontSize(0);\n } else {\n setFontSize(newNum);\n }\n }\n\n console.log(\"base64\", imageBase64);\n return (\n <>\n {\n closeModal();\n // history.push(`${history?.location?.pathname}${isGroup ? '?group=true' : ''}`);\n }}\n isOpen={!!day}\n style={customStyles}\n contentLabel=\"Program Request\"\n ariaHideApp={false}\n >\n
\n {loading || submitting ? (\n \n ) : (\n \n \n {name ? `${name} - ` : ''}\n {`Day ${day?.programDay}`}\n X\n \n
\n
The Image is Required to generate the PDF
\n \n \n \n \n {\n const file = e.target.files[0]; // This is already a Blob\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (ev) => {\n setImageBase64(ev.target.result);\n };\n }}\n >\n \n \n \n \n
\n \n
Workout Name
\n setWorkoutName(val)}\n margin=\"0\"\n borderColor=\"rgba(0, 0, 0, 0.07)\"\n style={{\n maxHeight: '3.2rem',\n minHeight: '3.2rem',\n }}\n errorIcon={false}\n />\n
\n
Choose The Date of the PDF
\n {setDate(v)}}\n value={moment(date).format(\"YYYY-MM-DD\")}\n borderRadius=\"8px\"\n />\n
\n
Choose Font size
\n handleFontSize(val)}\n onIncriment={() => setFontSize(prv => prv +1)}\n onDecrement={() => setFontSize(prv => prv > 0 ? prv -1 : 0)}\n />\n
\n
Choose Orientation
\n {setOrientation(v)}}\n options={['landscape', 'portrait']}\n style={{ margin: '0', maxHeight: '4rem' }}\n />\n
\n
\n
Choose Number Of Blocks In A Page
\n {setNumberOfBlocksPerPage(v)}}\n options={['1', '2', '3', '4', '5', '6', '7', '8']}\n style={{ margin: '0', maxHeight: '4rem' }}\n />\n
\n\n
\n
\n \n Download Workout\n \n {error &&
{error}
}\n
\n )}\n
\n \n \n );\n};\n\nexport default DownloadWorkoutModal;\n","import React, { useCallback, useMemo, useState, useRef, useEffect } from 'react';\nimport { useAlert } from 'react-alert';\nimport moment from 'moment';\n\nimport CalendarResultsModal from '../calendar-results-modal/CalendarResultsModal';\nimport WorkoutMessageModal from '../workout-message-modal/WorkoutMessageModal';\nimport ChooseTemplateModal from '../choose-template-modal/ChooseTemplateModal';\nimport { CalendarDragProvider } from '../../services/CalendarDragContext';\nimport AddCalendarModal from '../add-calendar-modal/AddCalendarModal';\nimport ConfirmModal from '../confirm-modal/ConfirmModal';\nimport ProgramCalendarDay from './ProgramCalendarDayV3';\nimport { CalendarType } from '../../constants/enums';\nimport CustomInput from '../input/CustomInput';\nimport { useCoachProgram } from '../../hooks';\nimport Loader from '../loader/Loader';\nimport {\n CalendarContainer,\n CalendarHeading,\n CalendarBeginning,\n CalendarBeginningDateWrapper,\n CalendarUploadTemplate,\n CalendarUploadIcon,\n CalendarMain,\n CalendarTable,\n CalendarThead,\n CalendarTh,\n CalendarTd,\n CalendarHeadingTable,\n RelativeBox,\n CalendarHeadingTableWrapper,\n WholeWrapper,\n CalendarTableWrapper,\n CopyWeekButton,\n EditWeekButton,\n ButtonText,\n Badge,\n FlexWrapper,\n} from './components';\nimport MeetingModal from '../meeting-modal/MeetingModal';\nimport AddCalendarWeekModal from '../add-calendar-modal/AddCalendarWeekModal';\nimport CustomButton from '../button/CustomButton';\nimport ExtensionCouponModal from '../coupon-modal/ExtensionCouponModal';\nimport CustomTooltip from '../tooltip/CustomTooltip';\nimport AreYouSureModal from '../are-you-sure-modal/AreYouSureModal';\nimport DownloadWorkoutModal from \"../download-workout-modal/DownloadWorkoutModal\";\n\nconst ProgramCalendar = ({\n isTemplate,\n calendar,\n programLength = 60,\n coachProgramUid,\n programTemplateUid,\n beginningDate,\n refetch,\n loading,\n handleCoachProgramUpdate,\n updateCalendarCache,\n setCalendarDayLoading,\n urlProgramDay,\n urlTraineeUid,\n isOngoing,\n readOnly,\n programRequestUid,\n extensionCoupon,\n trainee,\n monthlySum = 0,\n daysCountUntilEnd = 11,\n isGroup,\n nonChangableDate,\n} = {}) => {\n const firstDay = useMemo(() => {\n return isTemplate ? new Date('2034-01-01') : beginningDate;\n }, [beginningDate, isTemplate]);\n const {\n calendarMatrix,\n programDays,\n addRestDay,\n messageDay,\n openMessageModal,\n closeMessageModal,\n copiedWorkout,\n setCopiedWorkout,\n pasteWorkout,\n selectedProgram,\n setSelectedProgram,\n handleProgramDelete,\n selectedMessage,\n setSelectedMessage,\n saveWorkoutDay,\n setCopiedWeek,\n pasteWeek,\n copiedWeek,\n submitMessageDay,\n handleCreateMeeting,\n handleDeleteCalendar,\n pasteLoading,\n } = useCoachProgram({\n beginningDate: firstDay,\n programLength,\n coachProgramUid,\n programTemplateUid,\n calendar,\n refetch,\n updateCalendarCache,\n setCalendarDayLoading,\n });\n const [edittingDay, setEdditingDay] = useState(null);\n const [openResults, setOpenResults] = useState(null);\n const [openDownloadModal, setOpenDownloadModal] = useState(null);\n const [templateOpenModal, setTemplateOpenModal] = useState(false);\n const [meetingModalContent, setMeetingModalContent] = useState(null);\n const [addCalendarModalWeek, setAddCalendarModalWeek] = useState(null);\n const alert = useAlert();\n const todayRef = useRef(null);\n const [currentWeek, setCurrentWeek] = useState(0);\n const [pasteWeekArgs, setpasteWeekArgs] = useState(null);\n const [pasteWorkoutArgs, setpasteWorkoutArgs] = useState(null);\n useEffect(() => {\n if (todayRef?.current) {\n setTimeout(() => {\n if (todayRef?.current) {\n todayRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n });\n }\n }, 1000);\n }\n }, [calendarMatrix, todayRef?.current]);\n\n useEffect(() => {\n setOpenResults(urlProgramDay);\n }, [urlProgramDay]);\n\n // const selectedWorkout = useMemo(() => {\n // return calendar?.find(\n // (day) => day.type === CalendarType.WORKOUT && day.programDay === edittingDay?.programDay,\n // );\n // }, [calendar, edittingDay]);\n\n const closeWorkoutModal = useCallback(() => {\n setEdditingDay(null);\n }, []);\n const closeResultsModal = useCallback(() => {\n setOpenResults(null);\n }, []);\n\n const closeDownloadModal = useCallback(() => {\n setOpenDownloadModal(null);\n }, []);\n\n const sureMessage = useMemo(() => {\n const { WORKOUT, REST, MEETING } = selectedProgram || {};\n\n if (WORKOUT) return 'Are you sure to delete this workout?';\n if (REST) return 'Are you sure to delete this rest day?';\n if (MEETING?.onlineMeeting) return 'Are you sure to delete this video call?';\n if (MEETING?.faceMeeting) return 'Are you sure to delete this meeting?';\n\n return 'Are you sure to delete this message?';\n }, [selectedProgram]);\n\n const dateInputValue = useMemo(() => {\n return moment(beginningDate || new Date()).format('YYYY-MM-DD');\n }, [beginningDate]);\n\n const [extModal, setExtModal] = useState(false);\n\n return (\n \n {edittingDay && (\n \n )}\n setAddCalendarModalWeek(null)}\n loading={loading}\n calendarMatrix={calendarMatrix}\n programDays={programDays}\n submitDay={saveWorkoutDay}\n // duplicateWeek={duplicateWeek}\n setCopiedWeek={setCopiedWeek}\n pasteWeek={pasteWeek}\n addRestDay={addRestDay}\n submitMessageDay={submitMessageDay}\n handleCreateMeeting={handleCreateMeeting}\n handleDeleteCalendar={handleDeleteCalendar}\n coachProgramUid={coachProgramUid}\n programTemplateUid={programTemplateUid}\n refetch={refetch}\n />\n {meetingModalContent && (\n setMeetingModalContent(null)}\n coachProgramUid={coachProgramUid}\n refetch={refetch}\n programTemplate={programTemplateUid}\n />\n )}\n {extModal && (\n setExtModal(null)}\n refetch={refetch}\n programRequestUid={programRequestUid}\n monthlySum={monthlySum}\n traineeName={trainee?.fullName}\n coupon={extensionCoupon}\n />\n )}\n {openResults && (\n \n )}\n {openDownloadModal && (\n \n )}\n {templateOpenModal && (\n setTemplateOpenModal(false)}\n alert={alert}\n refetch={refetch}\n programLength={programLength}\n />\n )}\n \n setSelectedProgram(null)}\n message={sureMessage}\n handleSubmit={handleProgramDelete}\n />\n {pasteWeekArgs && (\n setpasteWeekArgs(null)}\n closeModal={() => setpasteWeekArgs(null)}\n submitModal={async () => {\n await pasteWeek(pasteWeekArgs);\n refetch();\n }}\n />\n )}\n {pasteWorkoutArgs && (\n setpasteWorkoutArgs(null)}\n closeModal={() => setpasteWorkoutArgs(null)}\n submitModal={async () => {\n pasteWorkout(pasteWorkoutArgs, coachProgramUid, programTemplateUid);\n }}\n />\n )}\n {(\n programLength > 6 ? !!calendarMatrix?.[0]?.[6] : !!calendarMatrix?.[0]?.[programLength - 1]\n ) ? (\n \n \n {!isTemplate && (\n \n Beginning Date\n \n \n \n \n )}\n \n {!isTemplate && !isOngoing && (\n setTemplateOpenModal((curr) => !curr)}>\n Upload a program template\n \n \n )}\n {\n setAddCalendarModalWeek(currentWeek);\n }}\n >\n Open Weekly Planner\n \n \n {!isTemplate && daysCountUntilEnd > 0 && daysCountUntilEnd < 11 && !isGroup && (\n <>\n {!!extensionCoupon && (\n
\n \n \n setExtModal(true)}\n disabled={loading}\n >\n Edit\n \n \n
\n )}\n {!extensionCoupon && (\n \n setExtModal(true)}\n disabled={loading}\n >\n Extend Program\n \n \n )}\n \n )}\n
\n\n \n \n \n \n \n Sunday\n Monday\n Tuesday\n Wednesday\n Thursday\n Friday\n Saturday\n \n \n \n \n \n \n \n \n \n {calendarMatrix.map((week, i) => (\n \n {week?.map((day, j) => (\n {\n if (moment(day?.date, 'DD-MM-YYYY').isSame(new Date(), 'day')) {\n setCurrentWeek(i);\n return (todayRef.current = ref);\n }\n }}\n >\n {j === 0 ? (\n // !copiedWeek &&\n // i !== copiedWeek &&\n // (copiedWeek === null ||\n\n <>\n setCopiedWeek(day?.index)}\n >\n \n Copy Week\n \n \n\n {copiedWeek &&\n !pasteLoading &&\n !readOnly &&\n (moment(day?.date, 'DD-MM-YYYY').isAfter(new Date(), 'day') ||\n moment(day?.date, 'DD-MM-YYYY').isSame(new Date(), 'day')) ? (\n {\n const weekContent =\n programDays[day?.index] ||\n programDays[day?.index + 1] ||\n programDays[day?.index + 2] ||\n programDays[day?.index + 3] ||\n programDays[day?.index + 4] ||\n programDays[day?.index + 5] ||\n programDays[day?.index + 6];\n if (weekContent) {\n setpasteWeekArgs(day?.index);\n } else {\n await pasteWeek(day?.index);\n refetch();\n }\n }}\n >\n \n Paste Week\n \n \n ) : null}\n \n ) : null}\n {/* {!readOnly &&\n j === 6 &&\n moment(day?.date, 'DD-MM-YYYY').isAfter(new Date()) ? (\n setAddCalendarModalWeek(i)} />\n ) : null} */}\n {day ? (\n x?.type !== 'NEW',\n )?.length &&\n (() => setOpenResults(day.index))) ||\n setEdditingDay\n }\n addRestDay={addRestDay}\n openMessage={openMessageModal}\n handleDownload={() => setOpenDownloadModal(day.index)}\n copied={copiedWorkout}\n handleCopy={setCopiedWorkout}\n pasteWorkout={(a) => {\n const hasContent = programDays[day?.index];\n if (hasContent) {\n setpasteWorkoutArgs(a);\n } else {\n pasteWorkout(a, coachProgramUid, programTemplateUid);\n }\n }}\n pasteLoading={pasteLoading}\n setSelectedProgram={setSelectedProgram}\n setSelectedMessage={setSelectedMessage}\n openMeetingModal={(existing) => {\n const meeting = existing.onlineMeeting || existing.faceMeeting;\n setMeetingModalContent({\n ...day,\n calendarUid: existing.uid,\n faceMeetingUid: existing.faceMeeting?.uid,\n date: meeting?.date,\n timezone: meeting?.timezone,\n paid: false,\n location: meeting?.location,\n });\n }}\n openOnlineMeetingModal={(existing) => {\n const meeting = existing.onlineMeeting || existing.faceMeeting;\n setMeetingModalContent({\n ...day,\n isOnline: true,\n calendarUid: existing.uid,\n onlineMeetingUid: existing.onlineMeeting?.uid,\n date: meeting?.date,\n timezone: meeting?.timezone,\n paid: false,\n });\n }}\n readOnly={readOnly}\n hideDate={isTemplate}\n />\n ) : (\n <>\n )}\n \n ))}\n \n ))}\n \n \n \n \n \n \n
\n ) : (\n \n )}\n
\n );\n};\n\nexport default ProgramCalendar;\n","import * as Yup from 'yup';\n\nconst weekDays = ['MON', 'TUE', 'WED', 'THUR', 'FRI', 'SAT', 'SUN'];\n\nconst name = Yup.string().required();\nconst preview = Yup.string().required();\nconst price = Yup.number().min(0).required();\nconst participants = Yup.number()\n .required()\n .when('currentParticipants', (value, schema) => {\n return schema.min(value || 1, `MAX number is less than actual participants`);\n });\nconst programLength = Yup.object().shape({\n value: Yup.number().min(1).nullable(),\n});\n// const startDate = Yup.mixed().when('programLength', (value, schema) => {\n// if (value) return schema.nullable();\n// return schema.required().test('afterNow', 'past date', (value) => {\n// const today = new Date();\n// today.setHours(0, 0, 0, 0);\n// const valueToCheck = new Date(value);\n// return today.getTime() < valueToCheck.getTime();\n// });\n// });\nconst beginningDate = Yup.date().nullable();\n// .test('afterNow', 'past date', (value) => {\n// const today = new Date();\n// today.setHours(0, 0, 0, 0);\n// const valueToCheck = new Date(value);\n// return !value || today.getTime() < valueToCheck.getTime();\n// });\n\n// const endDate = Yup.mixed()\n// .when('programLength', (value, schema) => {\n// if (value) return schema.nullable();\n// return schema.required();\n// })\n// .when('startDate', (value, schema) => {\n// if (!value) return schema;\n// return schema.test('beforeStart', 'less than start', (endDate) => {\n// const startDateToCheck = new Date(value);\n// const endDateToCheck = new Date(endDate);\n// return startDateToCheck.getTime() < endDateToCheck.getTime();\n// });\n// });\nconst speciality = Yup.object().required();\nconst trainingTypes = Yup.array().min(1);\nconst description = Yup.string().required();\nconst daysOfTraining = Yup.array().min(1).of(Yup.string().oneOf(weekDays)).required();\n\nexport const GroupSchema = Yup.object().shape({\n preview,\n name,\n price,\n participants,\n programLength,\n speciality,\n trainingTypes,\n description,\n // startDate,\n // endDate,\n daysOfTraining,\n beginningDate,\n});\n","import 'react-image-crop/dist/ReactCrop.css';\nimport { Formik, Field, Form } from 'formik';\nimport React, { useContext, useMemo, useState } from 'react';\nimport Modal from 'react-modal';\nimport moment from 'moment';\n\nimport ICONS from '../../constants/icons';\n\nimport { OrganizationContext } from '../../services/organizationContext';\nimport CustomInput from '../input/CustomInput';\nimport CustomButton from '../button/CustomButton';\nimport CustomTextArea from '../input/CustomTextArea';\nimport CustomInputFile from '../input/CustomInputFile';\nimport CropImageModal from '../crop-image/CropImageModal';\nimport { useCoachPersonalInfo } from '../../hooks';\nimport { GroupSchema } from '../../schemas/group/groupSchema';\nimport ReactSelectWitness from '../react-select-witness/ReactSelectWitness';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalRow,\n ModalFooter,\n ButtonWrapper,\n ModalColumn,\n FieldTitle,\n FlexWrapper,\n Profileimage,\n ProfileimageLine,\n ProfileImageContainer,\n CernteredContentFlex,\n DaysContainer,\n DayWrapper,\n FieldWrapper,\n} from './components';\nimport { CoachProgramStatus } from '../../constants/enums';\nimport { ModalCloseX } from '../request-modal/components';\nimport LENGTH_OPTIONS from '../../constants/programLengthOptions'\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '111',\n },\n content: {\n zIndex: '111111111',\n width: '80%',\n maxWidth: '972px',\n minWidth: '320px',\n height: 'fit-content',\n maxHeight: 'Calc(100% - 40px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\nconst weekDays = ['MON', 'TUE', 'WED', 'THUR', 'FRI', 'SAT', 'SUN'];\n\nconst AddGroupModal = ({\n modalOpen,\n closeModal,\n initialValues,\n setLoading = () => {},\n submitModal,\n nonChangableDate,\n}) => {\n const [modalImage, setModalImage] = useState(null);\n const [modalImageFile, setModalImageFile] = useState(null);\n const { currentCoach, orgCoaches, currentOrganization } = useCoachPersonalInfo({\n setLoading: null,\n setOpenModal: null,\n });\n const { isOrganization } = useContext(OrganizationContext);\n\n const specList = useMemo(() => {\n const userSpecialities = isOrganization\n ? currentOrganization?.specialities\n : currentCoach?.specialities;\n if (userSpecialities) {\n const withSpecs = userSpecialities?.reduce((acc, sp) => {\n if (sp?.name === 'Strength' || sp?.name === 'Running') {\n acc.push({ value: sp?.id, label: sp?.name, trainingTypes: sp?.trainingTypes });\n }\n return acc;\n }, []);\n const specials = [].concat(\n ...userSpecialities?.map(\n (spec) =>\n (spec?.name !== 'Strength' && spec?.name !== 'Running' && spec?.trainingTypes) || [],\n ),\n );\n return [\n ...withSpecs,\n {\n value: 'non-strength-or-running-spec',\n label: 'Special',\n trainingTypes: specials,\n },\n ];\n }\n\n return [];\n }, [currentCoach, currentOrganization, isOrganization]);\n return (\n \n \n \n CREATE NEW GROUP\n X\n
\n ({\n value: a?.id,\n label: a?.name,\n })),\n groupImage: undefined,\n programLength: {\n label: initialValues?.programLength\n ? `${Math.floor(initialValues?.programLength / 30)} month${\n initialValues?.programLength / 30 >= 1.5 ? 's' : ''\n }`\n : undefined,\n value: initialValues?.programLength,\n },\n beginningDate:\n (initialValues?.coachProgram?.beginningDate &&\n moment(initialValues?.coachProgram?.beginningDate).format('YYYY-MM-DD')) ||\n undefined,\n speciality: specList?.find(\n (x) =>\n !!x?.trainingTypes?.find(\n (y) => y?.id === initialValues?.trainingTypes?.[0]?.id,\n ),\n ),\n coach: initialValues?.coach?.uid\n ? {\n value: initialValues?.coach?.uid,\n label: initialValues?.coach?.fullName,\n img: initialValues?.coach?.profileImage?.url,\n }\n : null,\n }\n : {\n programLength: 180,\n daysOfTraining: [],\n groupImage: undefined,\n preview: undefined,\n name: undefined,\n price: undefined,\n participants: undefined,\n trainingTypes: undefined,\n speciality: undefined,\n description: undefined,\n startDate: undefined,\n endDate: undefined,\n beginningDate: undefined,\n currentParticipants: 0,\n }\n }\n onSubmit={submitModal}\n validationSchema={GroupSchema}\n >\n {({ setFieldValue, errors, touched, isSubmitting, values, validateForm }) => (\n
\n \n \n \n {({ field }) => (\n \n \n setModalImage(null)}\n onSubmit={(file, blob) => {\n setFieldValue(field.name, file);\n setFieldValue('preview', blob);\n }}\n />\n \n \n \n \n \n \n Upload Group Image\n {\n setModalImageFile(e.target.files[0]);\n var reader = new FileReader();\n reader.readAsDataURL(e.target.files[0]);\n reader.onload = (ev) => {\n setModalImage(ev.target.result);\n };\n }}\n />\n \n
\n \n )}\n \n \n \n Group name\n \n {({ field }) => (\n {\n setFieldValue(field.name, val);\n }}\n error={touched[field.name] && errors[field.name]}\n />\n )}\n \n \n \n Price per participant per month\n \n {({ field }) => (\n {\n setFieldValue(field.name, val);\n }}\n error={touched[field.name] && !!errors[field.name]}\n />\n )}\n \n \n \n Max number of participants\n \n {({ field }) => (\n {\n setFieldValue(field.name, val);\n }}\n error={touched[field.name] && errors[field.name]}\n />\n )}\n \n \n \n \n \n Training Type\n \n {({ field }) => (\n {\n if (v?.value !== field?.value?.value) {\n setFieldValue('trainingTypes', []);\n }\n setFieldValue(field?.name, v);\n }}\n backspaceRemovesValue={false}\n />\n )}\n \n \n \n Training Subtypes\n \n {({ field }) => (\n ({\n value: a?.id,\n label: a?.name,\n }))}\n placeholder=\"- Choose training types -\"\n isMulti={values?.speciality?.label === 'Strength'}\n value={field?.value}\n onChange={(v) => {\n if (values?.speciality?.label !== 'Strength') {\n setFieldValue(field?.name, [v]);\n } else if (!v || v?.length <= 3) {\n setFieldValue(field?.name, v);\n }\n }}\n onDeleteOne={(v) => {\n setFieldValue(\n field.name,\n field?.value?.filter((x) => x?.value !== v),\n );\n }}\n backspaceRemovesValue={false}\n />\n )}\n \n \n {/* \n Training Type\n \n {({ field }) => (\n setFieldValue(field.name, val)}\n error={touched[field.name] && !!errors[field.name]}\n margin=\"10px 0 0\"\n options={ttList}\n />\n )}\n \n
*/}\n \n {isOrganization && (\n \n Coach\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field?.value}\n options={orgCoaches?.getOrgCoaches?.map((a) => ({\n value: a.uid,\n label: a.fullName,\n img: a.profileImage?.url,\n }))}\n />\n )}\n \n \n )}\n
\n \n \n \n \n \n Beginning Date\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n borderRadius=\"8px\"\n error={touched[field.name] && !!errors[field.name]}\n disabled={nonChangableDate}\n backgroundColor={nonChangableDate ? '#F1F0F077' : '#fff'}\n />\n )}\n \n \n \n Program Length\n \n {({ field }) => (\n setFieldValue(field?.name, v)}\n disabled={\n initialValues?.coachProgram?.status === CoachProgramStatus.ONGOING\n }\n style={\n initialValues?.coachProgram?.status === CoachProgramStatus.ONGOING\n ? { opacity: 0.4 }\n : {}\n }\n />\n )}\n \n \n \n {/* Program Length\n \n \n {({ field }) => (\n {\n await setFieldValue(field.name, v);\n await setFieldValue('programLength', null);\n validateForm();\n }}\n disabled={\n initialValues?.coachProgram?.status === CoachProgramStatus.ONGOING\n }\n value={field.value}\n borderRadius=\"8px\"\n error={touched[field.name] && !!errors[field.name]}\n />\n )}\n \n \n {({ field }) => (\n {\n await setFieldValue(field.name, v);\n await setFieldValue('programLength', null);\n validateForm();\n }}\n value={field.value}\n borderRadius=\"8px\"\n error={touched[field.name] && !!errors[field.name]}\n />\n )}\n \n */}\n {/* \n Or choose:\n \n {({ field }) => (\n {\n await setFieldValue(field.name, v?.key);\n await setFieldValue('startDate', null);\n await setFieldValue('endDate', null);\n validateForm();\n }}\n options={[\n { key: 180, label: '6 Months' },\n { key: 360, label: '1 Year' },\n { key: 730, label: '2 Years' },\n ]}\n />\n )}\n \n */}\n Training Days\n \n \n {({ field }) => (\n <>\n {weekDays.map((day) => {\n return (\n -1}\n error={touched[field.name] && !!errors[field.name]}\n onClick={() => {\n const currentValue = [\n ...(field.value?.length ? field.value : []),\n ];\n const index = currentValue.indexOf(day);\n if (index > -1) {\n currentValue.splice(index, 1);\n } else {\n currentValue.push(day);\n }\n setFieldValue(`daysOfTraining`, currentValue);\n }}\n >\n {day}\n \n );\n })}\n \n )}\n \n \n \n \n Group Description\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n />\n )}\n \n \n \n \n \n \n Save Changes\n \n \n \n \n )}\n \n
\n \n );\n};\n\nexport default AddGroupModal;\n","import React, { useContext, useMemo } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport ICONS from '../../constants/icons';\nimport ChatContext from '../../services/ChatContext';\nimport CustomButton from \"../../components/button/CustomButton\"\nimport {\n CardContainer,\n CardHeader,\n CardHeaderIconCell,\n HeaderProfileCell,\n ProfilePic,\n MessengerIcon,\n ParticipantCardBody,\n CardName,\n CardLevel,\n ParticipantCardFooter,\n ParticipantHealthCell,\n ParticipantHealthCellValue,\n ParticipantPhysicsWrapper,\n ParticipantPhysic,\n CardFooter,\n FooterLine,\n MessengerIconImg,\n ButtonsWrapper,\n ButtonWrapper\n} from './components';\n\nconst ParticipantCard = ({ participant, handleCancel, handleOpenMoreInfo }) => {\n const history = useHistory();\n\n const { conversations, setCurrentConversation } = useContext(ChatContext);\n\n const { conversation, hasUnread } = useMemo(() => {\n const groupId = participant?.user?.uid;\n const conversation = conversations[groupId];\n\n return {\n conversation,\n hasUnread: !!(conversation && conversation.unreadMessageCount\n ? conversation.unreadMessageCount\n : 0),\n };\n }, [conversations, participant]);\n\n return (\n \n \n \n \n \n \n \n \n \n {!participant?.avatar?.url &&\n participant?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')}\n \n \n \n {\n setCurrentConversation(conversation);\n history.push('/messages', {\n trainee: participant,\n });\n }}\n >\n \n \n \n \n \n \n {participant?.fullName}\n \n \n {participant?.programs?.[0]?.fitnessLevel}\n \n \n {`${participant?.weight}kg`}\n {participant?.height}\n {`${participant?.age}y`}\n \n \n \n \n Health Status\n \n {(participant?.programs?.[0]?.healthCondition &&\n participant?.programs?.[0]?.healthConditionDetails) ||\n 'Healthy'}\n \n \n \n Injuries\n \n {`${\n participant?.programs?.[0]?.injuryDetails ||\n participant?.programs?.[0]?.injury ||\n 'None'\n }`}\n \n \n \n \n \n \n \n More Info\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ParticipantCard;\n","import React from 'react';\nimport styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nconst Container = styled.div`\n box-sizing: border-box;\n height: 3.2rem;\n width: 3.2rem;\n border: ${({ checked }) => (checked ? '0.65px solid #00FF91' : '0.5px solid rgba(5, 0, 0, 0.4)')};\n border-radius: 8px;\n background-color: rgba(255, 255, 255, 0.4);\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n`;\n\nconst Text = styled.span`\n color: #000000;\n font-family: ${({ checked }) => (checked ? 'Roboto-m' : 'Roboto-l')};\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.6rem;\n text-align: center;\n`;\n\nconst IconWrapper = styled.div`\n background-color: #00ff91;\n position: absolute;\n top: 0;\n right: 0;\n width: 1rem;\n height: 1rem;\n border-top-right-radius: 7px;\n border-bottom-left-radius: 6px;\n display: flex;\n justify-content: center;\n align-items: center;\n background-image: url(${ICONS.TermsCheckMark});\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n`;\n\nconst Checkbox = ({ text, checked, ...rest }) => {\n return (\n \n {text}\n\n {checked && }\n \n );\n};\n\nexport default Checkbox;\n","import React from 'react';\nimport styled, { css } from 'styled-components';\nimport TextareaAutosize from 'react-textarea-autosize';\nimport SearchIconPng from '../../assets/input/search-icon.png';\nimport AttachmentIcon from '../../assets/chat/chat-attachment.svg';\nimport SendIcon from '../../assets/chat/chat-send-button.svg';\n\nexport const ChatContainer = styled.div`\n border: 0.5px solid rgba(5, 0, 0, 0.12);\n border-radius: 8px;\n background-color: #fefefe;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.12);\n display: flex;\n min-height: 70rem;\n max-height: 80vh;\n`;\n\nexport const ChatColumn = styled.div`\n display: flex;\n flex-direction: column;\n width: ${({ width }) => width};\n flex: ${({ grow }) => grow};\n flex-shrink: 0;\n\n &:first-child {\n border-radius: border-radius: 8px 0 0 8px;\n border-right: 0.5px solid rgba(5,0,0,0.12);\n }\n\n &:last-child {\n border-radius: border-radius: 0 8px 8px 0;\n border-left: 0.5px solid rgba(5,0,0,0.12);\n }\n`;\n\nexport const ConversationsHeader = styled.div`\n height: 6.45rem;\n display: flex;\n align-items: center;\n padding-left: 2.4rem;\n border-bottom: 1px solid rgba(5, 0, 0, 0.12);\n flex-shrink: 0;\n`;\n\nexport const ConversationsHeaderText = styled.span`\n opacity: 0.7;\n color: #373333;\n font-family: 'Gotham-r';\n font-size: 1.6rem;\n letter-spacing: 0;\n line-height: 2.4rem;\n`;\n\nexport const ChatDetailsHeader = styled.div`\n height: 6.45rem;\n display: flex;\n align-items: center;\n padding-left: 2.4rem;\n`;\n\nexport const ChatDetailsHeaderText = styled.span`\n opacity: 0.4;\n color: #050000;\n font-family: 'Gotham-r';\n font-size: 1.4rem;\n letter-spacing: 0.088rem;\n line-height: 2.4rem;\n`;\n\nexport const SearchWrapper = styled.div`\n height: 6.7rem;\n display: flex;\n align-items: center;\n padding-left: 2.4rem;\n border-bottom: 1px solid rgba(5, 0, 0, 0.12);\n flex-shrink: 0;\n`;\n\nexport const SearchIcon = styled.div`\n width: 20px;\n height: 20px;\n background-image: url(${SearchIconPng});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n`;\n\nexport const SearchInput = styled.input`\n opacity: 0.8;\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n border: none;\n margin: 0 2.4rem 0 2rem;\n display: flex;\n flex-grow: 1;\n background-color: transparent;\n &::placeholder {\n opacity: 0.4;\n }\n &:focus {\n outline: none;\n }\n`;\n\nexport const ConversationsList = styled.div`\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n padding: ${({ isMobile }) => isMobile && '12px 0'};\n`;\n\nexport const ConversationItemContainer = styled.div`\n display: flex;\n align-items: center;\n margin: 0.6rem 2.4rem;\n height: 6rem;\n background-color: #fcfcfc;\n border-radius: 8px;\n cursor: pointer;\n position: relative;\n border: ${({ isActive }) => (isActive ? '1px solid #00FF91' : undefined)};\n ${({ isMobile }) =>\n isMobile &&\n css`\n height: 68px;\n margin: 4px 16px;\n background-color: rgba(168, 166, 166, 0.08);\n border-radius: 8px;\n `}\n`;\n\nexport const ConversationItemColumn = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const ConversationItemIcon = styled.div`\n height: 3.6rem;\n width: 3.6rem;\n border-radius: 8px;\n margin: 1.2rem;\n background-image: ${({ icon }) => (icon ? `url(${icon})` : undefined)};\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n`;\n\nexport const ConversationItemName = styled.span`\n color: #050000;\n font-family: Roboto-m;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 24rem;\n`;\n\nexport const ConversationItemLastMessage = styled.span`\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.8rem;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 24rem;\n`;\n\nexport const ConversationItemInfo = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n position: absolute;\n top: 8px;\n right: 8px;\n`;\n\nexport const ConversationItemTime = styled.span`\n opacity: 0.4;\n color: #312e34;\n font-family: Roboto-r;\n font-size: 0.9rem;\n letter-spacing: 0;\n line-height: 1.1rem;\n text-align: right;\n`;\n\nexport const ConversationItemUnreadIndicator = styled.div`\n height: 1.2rem;\n width: 1.2rem;\n border-radius: 0.6rem;\n border: 2px solid #ffffff;\n background-color: #f50a4f;\n margin-top: 0.3rem;\n`;\n\nexport const BorderIndicator = styled.div`\n width: 3px;\n border-radius: 0 100px 100px 0;\n background-color: #00ff91;\n\n position: absolute;\n top: 10px;\n bottom: 10px;\n left: 0;\n`;\n\nexport const Avatar = styled.div`\n width: ${({ size }) => size};\n height: ${({ size }) => size};\n border-radius: 8px;\n background-image: url(${({ src }) => src});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n color: transparent;\n font-family: 'Gotham-r';\n font-size: 1.6rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n align-items: center;\n justify-content: center;\n display: flex;\n flex-shrink: 0;\n\n ${({ src }) =>\n !src &&\n css`\n background-color: #f1f0f0;\n color: #373333;\n `}\n`;\nconsole.log('navigator.userAgent', navigator.userAgent);\n\nexport const AvatarName = styled.span`\n color: #050000;\n font-family: Roboto-m;\n font-size: 1.6rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n margin-left: 2rem;\n`;\n\nexport const MessageListContainer = styled.div`\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow-y: auto;\n padding-bottom: 1.2rem;\n background-color: #fafafa;\n position: relative;\n max-height: calc(100vh - 140px);\n height: calc(100% - 9.65rem - 60px);\n\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n`;\n\nexport const MessageContainer = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n padding: 0 3.3rem 0 2.4rem;\n margin-top: 1.2rem;\n`;\n\nexport const MessageContent = styled.div`\n display: flex;\n max-width: 70%;\n align-self: ${({ rtl }) => (rtl ? 'flex-end' : 'flex-start')};\n position: relative;\n min-height: 3.6rem;\n`;\n\nexport const MessageText = styled.span`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n border-radius: 12px;\n background-color: #f1f0f0;\n padding: 0.8rem 1.2rem;\n margin-left: ${({ isOwned }) => !isOwned && '4.8rem'};\n word-wrap: break-word;\n max-width: 100%;\n border-top-left-radius: ${({ hasAvatar, isOwned }) => (hasAvatar && !isOwned ? 2 : 12)}px;\n border-bottom-right-radius: ${({ isLast, isOwned }) => (isLast && isOwned ? 2 : 12)}px;\n ${({ isOwned }) =>\n !!isOwned &&\n css`\n background-color: #00ff9166;\n color: #050000;\n `}\n ${({ flex }) =>\n !!flex &&\n css`\n display: flex;\n align-items: center;\n `}\n`;\n\nexport const ChatFooter = styled.div`\n display: flex;\n border-top: 1px solid rgba(5, 0, 0, 0.12);\n min-height: ${({ isMobile }) => (isMobile ? '70px' : '9.65rem')};\n flex-shrink: 0;\n padding: ${({ isMobile }) => (isMobile ? '14px 0' : '2.4rem 0')};\n`;\n\nexport const AttachmentButtonIcon = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n margin-top: auto;\n margin-bottom: 0.8rem;\n border-radius: 8px;\n background-image: url(${AttachmentIcon});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n margin-left: 2.4rem;\n cursor: pointer;\n`;\n\nexport const SendButton = styled.div`\n width: 4.8rem;\n height: 4.8rem;\n background-image: url(${SendIcon});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n margin-right: 3.2rem;\n margin-top: auto;\n cursor: pointer;\n`;\n\nexport const MessageInputContainer = styled.div`\n display: flex;\n flex: 1;\n margin-left: ${({ isMobile }) => (isMobile ? '1.4rem' : '2.4rem')};\n margin-right: 2rem;\n`;\n\nexport const MessageSentAt = styled.div`\n opacity: 0.4;\n color: #312e34;\n font-family: Roboto-r;\n font-size: 0.9rem;\n letter-spacing: 0;\n line-height: 1.1rem;\n padding-top: 0.4rem;\n`;\n\nexport const MessageVideo = styled.video`\n max-width: 100%;\n max-height: 33rem;\n border-radius: 12px;\n`;\n\nexport const MessageImage = styled.img`\n max-width: 100%;\n max-height: 33rem;\n border-radius: 12px;\n`;\n\nexport const Loading = styled.div`\n display: flex;\n flex: 0;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n`;\n\nexport const LoadingText = styled.span`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n`;\n\nexport const SendingIndicator = styled.span`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1rem;\n letter-spacing: 0;\n line-height: 1.1rem;\n`;\n\nexport const FetchingIndicator = styled.div`\n display: flex;\n align-self: center;\n top: 8px;\n background-color: white;\n border-radius: 1.9rem;\n padding: 0.8rem 1.6rem;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.2);\n position: absolute;\n color: #373333;\n font-family: Roboto-l;\n font-size: 1rem;\n letter-spacing: 0.5px;\n line-height: 1.1rem;\n`;\n\nexport const ChatUserInfo = styled.div`\n display: flex;\n flex-direction: column;\n border-bottom: 0.5px solid rgba(5, 0, 0, 0.12);\n\n &:last-child {\n border-bottom: none;\n }\n`;\n\nexport const ChatInfoRow = styled.div`\n display: flex;\n justify-content: center;\n margin-top: ${({ mt }) => mt};\n\n &:last-child {\n margin-bottom: 2.2rem;\n }\n`;\n\nexport const ChatUserName = styled.span`\n color: #4a4a4a;\n font-family: 'Gotham-r';\n font-size: 1.6rem;\n letter-spacing: 0.1rem;\n line-height: 2.1rem;\n`;\n\nconst ChatInfoMetaContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-right: 4.5rem;\n &:last-child {\n margin-right: 0;\n }\n`;\nconst ChatInfoMetaRow = styled.div`\n display: flex;\n justify-content: center;\n\n margin-bottom: 0.8rem;\n &:last-child {\n margin-bottom: 0;\n }\n`;\nconst ChatInfoMetaIcon = styled.img`\n margin-right: 6px;\n`;\nconst ChatInfoMetaName = styled.span`\n opacity: 0.4;\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 1.6rem;\n`;\n\nexport const ChatInfoMeta = ({ icon, name, value }) => (\n \n \n \n {value}\n \n \n {name}\n \n \n);\n\nexport const RequestWrapper = styled.div`\n padding: 0 24px;\n margin-top: -2.2rem;\n`;\n\nexport const ParticipantContainer = styled.div`\n margin: 0 0 2.4rem 2.2rem;\n display: flex;\n`;\n\nexport const PartName = styled.span`\n color: #373333;\n font-family: Roboto-r;\n font-size: 1.6rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n`;\n\nexport const PartNameWrapper = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const StyledTextarea = styled(TextareaAutosize)`\n width: 100%;\n resize: none;\n border-radius: 1.2rem;\n padding: 1.2rem;\n outline: none;\n border: none;\n background-color: rgb(247, 246, 246);\n font-size: 1.4rem;\n line-height: 2.4rem;\n font-family: Roboto-r;\n`;\n\nexport const MobileList = styled.div`\n overflow-y: auto;\n height: calc(100vh - 6.7rem - 60px);\n`;\n\nexport const Paper = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-direction: column;\n background-color: white;\n`;\n\nexport const MessageHeaderContainer = styled.div`\n height: 60px;\n background-color: white;\n display: flex;\n align-items: center;\n padding-bottom: 4px;\n border-bottom: 1px solid #0000001a;\n`;\n\nexport const MessageHeaderText = styled.div`\n font-family: Space-r;\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: 1px;\n text-align: left;\n color: #050000;\n`;\n\nexport const HeaderInfo = styled.div`\n display: flex;\n width: calc(100% - 56px);\n`;\n\nexport const InfoCol = styled.div`\n display: inline-flex;\n flex-direction: column;\n max-width: calc(100% - 56px);\n ${({ center }) =>\n center &&\n css`\n align-items: center;\n justify-content: center;\n `}\n margin-left: ${({ ml }) => ml};\n`;\n\nexport const InfoTitle = styled.span`\n font-family: Roboto-b;\n font-size: 13px;\n font-weight: bold;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nexport const InfoSubTitle = styled.span`\n font-family: Roboto-r;\n font-size: 12px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: 0.4px;\n text-align: left;\n color: #050000;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n","import React, { useCallback, useRef } from 'react';\nimport { AttachmentButtonIcon } from './components';\n\nconst AttachmentButton = ({ onChange, accept }) => {\n const inputRef = useRef(null);\n const handleFileOpen = useCallback(() => {\n if (inputRef.current) {\n inputRef.current.click();\n }\n }, []);\n\n return (\n <>\n \n \n \n );\n};\n\nexport default AttachmentButton;\n","import React, { useMemo } from 'react';\nimport moment from 'moment';\nimport { CometChat } from '@cometchat-pro/chat';\nimport {\n MessageContainer,\n MessageContent,\n Avatar,\n MessageText,\n MessageSentAt,\n MessageVideo,\n MessageImage,\n} from './components';\n\nconst Message = ({ message, showAvatar, isLast }) => {\n const initials = useMemo(() => {\n const [first, last] = message?.user?.name?.split(' ');\n return `${first ? first[0] : ''}${last ? last[0] : first[0]}`;\n }, [message]);\n\n const time = useMemo(() => {\n const updatedAt = message.sentAt * 1000;\n return moment(updatedAt).fromNow();\n }, [message]);\n\n const isUnknown = useMemo(() => {\n return !Object.values(CometChat.MESSAGE_TYPE).includes(message.type);\n }, [message.type]);\n\n if (isUnknown) {\n return null;\n }\n\n return (\n \n \n {!message.isOwned && showAvatar && (\n \n {initials}\n \n )}\n {message.type === CometChat.MESSAGE_TYPE.TEXT && (\n \n {message.text}\n {time}\n \n )}\n {message.type === CometChat.MESSAGE_TYPE.IMAGE && (\n \n )}\n {message.type === CometChat.MESSAGE_TYPE.VIDEO && (\n \n \n Your browser does not support the video tag.\n \n )}\n {message.type === CometChat.MESSAGE_TYPE.CUSTOM && (\n \n \"\"\n {message.text}\n {time}\n \n )}\n \n \n );\n};\n\nexport default Message;\n","import React, { useCallback, useContext, useMemo, useState, useEffect, useRef } from 'react';\nimport moment from 'moment';\n\nimport ChatContext from '../../services/ChatContext';\nimport { MobileContext } from '../../services/MobileContext';\nimport AttachmentButton from './AttachmentButton';\nimport {\n Avatar,\n AvatarName,\n ConversationsHeader,\n MessageListContainer,\n ChatFooter,\n SendButton,\n MessageInputContainer,\n Loading,\n SendingIndicator,\n FetchingIndicator,\n StyledTextarea,\n} from './components';\nimport Message from './Message';\n\nconst MessageList = ({ conversation, messages = [], hideHeader, programRequest }) => {\n const {\n sendTextMessage,\n sendMediaMessage,\n fetchMoreMessages,\n hasMoreMessages,\n loadingMessages,\n sendingMessage,\n fetchingMoreMessages,\n } = useContext(ChatContext);\n\n const endedFourOrMoreDaysAgo = useMemo(() => {\n if (!programRequest) {\n return true;\n }\n if (programRequest?.coachProgram?.status !== 'ENDED') {\n return false;\n }\n const fourDaysAgo = moment().subtract(4, 'd');\n const programEnding = moment(programRequest?.coachProgram?.beginningDate, 'YYYY/MM/DD').add(\n programRequest?.programLength,\n 'd',\n );\n return programEnding.isBefore(fourDaysAgo);\n }, [programRequest]);\n\n const [messageText, setMessageText] = useState('');\n\n const handleMessageSend = useCallback(() => {\n if (!sendingMessage) {\n sendTextMessage(messageText).then(() => {\n setMessageText('');\n setScrolled(false);\n });\n }\n }, [sendTextMessage, messageText, sendingMessage]);\n\n const messageListBottomRef = useRef();\n\n const [scrolled, setScrolled] = useState(false);\n\n useEffect(() => {\n if (conversation) {\n setScrolled(false);\n }\n }, [conversation]);\n\n useEffect(() => {\n if (Array.isArray(messages) && messages.length && !scrolled) {\n setTimeout(() => {\n if (messageListBottomRef?.current) {\n messageListBottomRef.current.scrollIntoView({ behavior: 'smooth', block: 'start' });\n setScrolled(true);\n }\n }, [500]);\n }\n }, [conversation, sendingMessage, messages, scrolled]);\n\n const handleScrollToTop = useCallback(\n (event) => {\n if (conversation && !conversation.isNew && event.target.scrollTop === 0 && hasMoreMessages) {\n fetchMoreMessages();\n }\n },\n [fetchMoreMessages, hasMoreMessages, conversation],\n );\n\n const initials = useMemo(() => {\n const [first, last] = conversation?.user?.name?.split(' ') || ['', ''];\n return `${first ? first[0] : ''}${last ? last[0] : first[0]}`;\n }, [conversation]);\n\n const { isMobile } = useContext(MobileContext);\n\n return (\n <>\n {!hideHeader && (\n \n \n {initials}\n \n {conversation.user.name}\n \n )}\n \n {loadingMessages && Loading...}\n\n {fetchingMoreMessages && Loading more messages...}\n\n {messages.map((message, index) => (\n \n ))}\n\n {sendingMessage && (\n \n Sending...\n \n )}\n\n
\n
\n
\n \n {!endedFourOrMoreDaysAgo && (\n \n sendMediaMessage(e.target.files[0])}\n />\n \n setMessageText(e.target.value)}\n maxRows={5}\n onKeyDown={(e) => {\n if (e.keyCode === 13 && !e.shiftKey) {\n e.preventDefault();\n handleMessageSend();\n }\n }}\n placeholder={isMobile ? 'Type your message…' : ''}\n />\n \n \n \n )}\n \n );\n};\n\nexport default MessageList;\n","import React from 'react';\nimport styled, { keyframes } from 'styled-components';\nimport MinIcon from '../../assets/program/minimize.png';\nimport ICONS from '../../constants/icons';\n\nexport const StatusBar = styled.div`\n border-radius: 4px;\n background-color: #fdfdfd;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.12);\n display: flex;\n align-items: center;\n padding: 1.2rem 2.8rem;\n`;\n\nexport const StatusTitle = styled.span`\n opacity: 0.6;\n color: #4a4a4a;\n font-family: Roboto-m;\n font-size: 1.6rem;\n font-weight: 500;\n letter-spacing: 0;\n line-height: 2.4rem;\n padding-right: 0.8rem;\n`;\n\nexport const StatusText = styled.span`\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.6rem;\n letter-spacing: 0;\n line-height: 2.4rem;\n`;\n\nexport const StatusMessageContainer = styled.div`\n display: flex;\n flex-grow: 1;\n justify-content: center;\n align-items: center;\n`;\n\nexport const StatusMessage = styled.span`\n opacity: 0.8;\n color: #050000;\n font-family: Roboto-m;\n font-size: 1.6rem;\n font-weight: 500;\n letter-spacing: 0;\n line-height: 2.4rem;\n`;\n\nexport const IconContainer = styled.div`\n box-sizing: border-box;\n height: 3.65rem;\n width: 3.65rem;\n /* border: 0.5px solid #ffcc00; */\n border-radius: 8px;\n background-color: ${({ isDue, theme }) => (isDue ? theme.color.error : '#ffcc00')};\n margin-right: 1.8rem;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Container = styled.div`\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.12);\n margin-top: 8px;\n display: flex;\n flex-direction: column;\n`;\n\nexport const Sidemenu = styled.div`\n max-width: 340px;\n min-width: ${({ isOpen }) => (isOpen ? 'max(20%, 272px)' : '35px')};\n width: ${({ isOpen }) => (isOpen ? '20%' : '35px')};\n border-radius: 4px 0 0 4px;\n background-color: #f1f0f0;\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100rem;\n`;\n\nexport const SideHeader = styled.div`\n min-width: max(20%, 272px);\n max-width: 340px;\n display: flex;\n align-items: center;\n background-color: #f1f0f0;\n padding: 0 2.4rem;\n height: 100%;\n`;\n\nconst AvatarContainer = styled.div`\n border-radius: 50%;\n position: relative;\n margin-right: 2.4rem;\n width: 6.68rem;\n height: 6.68rem;\n min-width: 6.68rem;\n min-height: 6.68rem;\n border: 0.64rem solid white;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Roboto-b;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#cccccc')};\n text-transform: uppercase;\n font-size: 14px;\n`;\n\nconst AvatarContent = styled.div`\n border-radius: 50%;\n width: 100%;\n height: 100%;\n background-image: url(${({ src }) => src});\n background-position: center;\n background-size: cover;\n position: absolute;\n border: 0.32rem solid ${({ theme }) => theme.color.primary};\n`;\n\nexport const Avatar = ({ src, children }) => (\n \n {children}\n \n \n);\n\nexport const TraineeName = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nexport const TraineeNameTitle = styled.span`\n color: #4a4a4a;\n font-family: 'Gotham-R';\n font-size: 1.8rem;\n letter-spacing: 0.1rem;\n line-height: 2.4rem;\n`;\nexport const TraineeNameSubTitle = styled.span`\n color: #4a4a4a;\n font-family: 'Space-r';\n font-size: 1.8rem;\n letter-spacing: 0.1rem;\n line-height: 2.4rem;\n`;\n\nexport const SideContent = styled.div`\n border-radius: 0 0 0 8px;\n background-color: rgba(255, 255, 255, 0.95);\n border: 4px solid #e6e5e5;\n display: flex;\n flex-direction: column;\n position: relative;\n width: ${({ isOpen }) => (isOpen ? '100%' : '35px')};\n & > .side-info {\n visibility: ${({ isOpen }) => (isOpen ? 'visible' : 'hidden')};\n }\n max-height: 100%;\n`;\n\nexport const SideInfo = styled.div`\n margin-top: 4rem;\n border-top: 0.05rem solid rgba(5, 0, 0, 0.2);\n display: flex;\n flex-direction: column;\n position: relative;\n`;\n\nexport const InfoHeader = styled.div`\n box-sizing: border-box;\n padding: 0.6rem 0;\n width: 80%;\n border: 0.05rem solid #15df68;\n border-radius: 8px;\n background-color: #ffffff;\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: -1.6rem;\n left: 10%;\n`;\n\nexport const InfoHeaderText = styled.span`\n color: #373333;\n font-family: 'Space-r';\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n text-align: center;\n`;\n\nexport const InfoHeaderEditIcon = styled.span`\n width: 1.2rem;\n height: 1.2rem;\n background-image: url(${ICONS.EditSimpleGrey});\n background-repeat: no-repeat;\n background-size: contain;\n margin-left: 0.8rem;\n cursor: pointer;\n &:hover {\n transform: scale(1.1);\n }\n`;\n\n// const CellBorder = '0.5px solid rgba(5, 0, 0, 0.2)';\n\nexport const Cell = styled.div`\n display: flex;\n align-items: center;\n flex: 1;\n flex-grow: 1;\n flex-direction: column;\n padding: 2.4em 1.6rem 2rem;\n border-color: rgba(5, 0, 0, 0.2);\n border-style: solid;\n border-top-width: ${({ mt }) => (mt ? 0.5 : 0)}px;\n border-right-width: ${({ mr }) => (mr ? 0.5 : 0)}px;\n border-bottom-width: ${({ mb }) => (mb ? 0.5 : 0)}px;\n border-left-width: ${({ ml }) => (ml ? 0.5 : 0)}px;\n`;\n\nexport const CellTitle = styled.span`\n color: #050000;\n font-family: Roboto-r;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.1rem;\n text-align: center;\n`;\n\nconst CellText = styled.span`\n color: #050000;\n font-family: Roboto-l;\n font-size: 1.4rem;\n font-weight: 300;\n letter-spacing: 0;\n line-height: 2.1rem;\n text-align: center;\n margin-top: 0.8rem;\n padding: 0 1.6rem;\n text-transform: capitalize;\n`;\n\nexport const Row = styled.div`\n display: flex;\n flex-direction: row;\n height: ${({ height }) => height};\n flex: 1;\n & > #magic-scroll {\n max-width: 23rem;\n min-width: 23rem;\n display: flex;\n justify-content: center;\n }\n & * > .magic-scroll-arrow-left {\n left: -2.4rem;\n }\n & * > .magic-scroll-arrow-right {\n right: -2.4rem;\n }\n`;\n\nconst arrayfy = (item) => (Array.isArray(item) ? item : [item]);\n\nexport const InfoCell = ({ title, text, ...cellProps }) => (\n \n {title}\n {arrayfy(text).map((item, index) => (\n {item?.toLowerCase()}\n ))}\n \n);\n\nconst MinBtnContainer = styled.div`\n position: absolute;\n width: 34px;\n height: 34px;\n right: -17px;\n top: calc(50% - 17px);\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: white;\n border-right: 4px solid #e6e5e5;\n border-top-right-radius: 17px;\n border-bottom-right-radius: 17px;\n cursor: pointer;\n z-index: 1;\n`;\n\nconst MinBtnIcon = styled.img`\n width: 24px;\n border-radius: 12px;\n transform: scaleX(${({ isOpen }) => (isOpen ? 1 : -1)});\n`;\n\nexport const MinimizeButton = ({ onClick, isOpen }) => (\n \n \n \n);\n\nexport const Header = styled.div`\n display: flex;\n height: 94px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n max-height: 78.9rem;\n`;\n\nexport const ContentHeader = styled.div`\n display: flex;\n justify-content: space-between;\n flex: 1;\n border-bottom: 1px solid #e9eaed;\n`;\n\nexport const Tabs = styled.div`\n display: flex;\n`;\n\nconst TabContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 163px;\n cursor: pointer;\n position: relative;\n border-right: 1px solid #e9eaed;\n`;\n\nconst TabText = styled.span`\n opacity: ${({ active }) => (active ? 1 : 0.8)};\n color: #373333;\n font-family: ${({ active }) => (active ? 'Roboto-m' : 'Roboto-r')};\n font-size: 14px;\n letter-spacing: 0;\n line-height: ${({ active }) => (active ? 24 : 21)}px;\n`;\n\nconst TabBorder = styled.div`\n height: 4px;\n width: 163px;\n border-radius: 100px 100px 0 0;\n background-color: #00ff91;\n position: absolute;\n bottom: -2px;\n`;\n\nexport const Tab = ({ text, onClick, active }) => (\n \n {text}\n {active && }\n \n);\n\nexport const ButotnContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding-right: 36px;\n`;\n\nexport const ButtonText = styled.span`\n margin-left: 59px;\n margin-right: 59px;\n`;\n\nexport const GroupIdBadge = styled.span`\n width: fit-content;\n font-family: Space-b;\n font-size: 1.6rem;\n line-height: 2.4rem;\n color: #4a4a4a;\n padding: 0.45rem 0.85rem;\n background: white;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 0.4rem;\n`;\n\nconst OpacityAnimation = keyframes`\nfrom{\n opacity: 0;\n}\nto {\n opacity: 1;\n}\n`;\n\nexport const ParticipantOfSlider = styled.div`\n width: 3.2rem;\n height: 3.2rem;\n border-radius: 8px;\n margin: 0 0.5rem;\n border: 1px solid #05000033;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #05000080;\n font-size: 1.2rem;\n font-family: Roboto-m;\n animation: ${OpacityAnimation} 100ms linear;\n`;\n\nexport const ParticipantSliderItem = ({ item, active }) => (\n \n {item?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')\n ?.substring(0, 2)}\n \n);\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n border-radius: 12px;\n height: fit-content;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 72px;\n display: flex;\n align-items: center;\n border-bottom: 1px solid #05000020;\n justify-content: center;\n position: relative;\n margin-bottom: 34px;\n &::after {\n content: '';\n width: ${({ neg }) => (neg ? '61px' : '5.8rem')};\n height: ${({ neg }) => (neg ? '61px' : '5.8rem')};\n background: ${({ theme, neg }) => (neg ? '#f9f9f9' : theme.color.primary)};\n border-radius: 50%;\n background-image: url(${({ neg }) => (neg ? ICONS.RedBin : ICONS.ArrowMainRight)});\n background-position: center;\n background-repeat: no-repeat;\n position: absolute;\n bottom: -50%;\n border: ${({ neg }) => (neg ? '1px solid #efefef' : '1rem solid #ffffff')};\n transform: ${({ neg }) => (neg ? 'none' : 'rotate(90deg)')};\n }\n @media (max-width: 600px) {\n height: 54px;\n }\n`;\n\nexport const ModalHeaderLines = styled.div`\n width: 50%;\n height: 100%;\n border-left: 1px solid #05000020;\n border-right: 1px solid #05000020;\n`;\n\nexport const ModalMain = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n padding: 0 36px 16px;\n`;\n\nexport const ModalPrimaryText = styled.div`\n font-family: Gotham-r;\n font-size: 2.4rem;\n line-height: 3.6rem;\n color: #4a4a4a;\n text-align: center;\n padding: 1.4rem 0 2.6rem;\n`;\n\nexport const ModalSecondaryText = styled.div`\n font-size: 16px;\n line-height: 2.4rem;\n text-align: center;\n width: 100%;\n padding: 0 6.2rem 4rem;\n color: #848181;\n & > span {\n font-family: Roboto-m;\n color: #4a4a4a;\n }\n`;\n\nexport const ModalSecondaryQuestion = styled.div`\n font-size: 16px;\n line-height: 24px;\n text-align: center;\n color: #050000;\n font-family: Roboto-m;\n`;\n\nexport const ButtonsFlexWrapper = styled.div`\n display: flex;\n align-items: center;\n margin: 2.4rem 0 1.6rem;\n width: 100%;\n justify-content: center;\n`;\n\nexport const ButtonWrapper = styled.div`\n max-width: 14rem;\n height: 4rem;\n margin: 0 0.8rem;\n flex-grow: 1;\n`;\n","import React, { useState, useEffect } from 'react';\nimport Modal from 'react-modal';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalHeaderLines,\n ModalPrimaryText,\n ModalMain,\n ModalSecondaryText,\n ButtonsFlexWrapper,\n ButtonWrapper,\n ModalSecondaryQuestion,\n} from './components';\n\nimport CustomInput from '../input/CustomInput';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '44444445',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n overflow: 'hidden auto',\n },\n content: {\n background: 'transparent',\n zIndex: '11111111',\n width: 'Calc(100% - 20px)',\n maxWidth: '588px',\n minWidth: '300px',\n height: 'fit-content',\n top: '10px',\n minHeight: 'Calc(100vh - 20px)',\n display: 'flex',\n alignItems: 'center',\n left: 'max(10px, Calc(50% - 294px))',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n pointerEvents: 'all',\n },\n};\n\nconst CancelProgramModal = ({\n modalOpen,\n closeModal,\n submitModal,\n headingText,\n contentText,\n rejectModal,\n rejectText,\n submitText,\n neg,\n paddings,\n typeText = 'CANCEL_PROGRAM'\n}) => {\n const [text, setText] = useState('');\n\n useEffect(() => {\n setText('')\n }, [modalOpen])\n\n return (\n \n \n \n \n \n \n {headingText && {headingText}}\n {contentText && {contentText}}\n Type \"{typeText}\" to proceed\n setText(val)}\n value={ text }\n margin=\"0\"\n placeholder=\"Type here...\"\n borderColor=\"rgba(0, 0, 0, 0.07)\"\n style={{\n maxWidth: '40rem',\n margin: '2.4rem 0',\n fontSize: 16,\n }}\n />\n \n \n \n {'Discard'}\n \n \n \n {\n submitModal();\n closeModal();\n }}\n >\n {'Cancel'}\n \n \n \n \n \n \n );\n};\n\nexport default CancelProgramModal;\n","import React, { useState } from 'react';\nimport Modal from 'react-modal';\nimport 'react-image-crop/dist/ReactCrop.css';\nimport STRINGS from '../../constants/strings';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalHeaderLines,\n ModalPrimaryText,\n ModalMain,\n ModalSecondaryText,\n ButtonsFlexWrapper,\n ButtonWrapper,\n} from './components';\nimport { useContactAdmin } from '../../hooks';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: 'Calc(100% - 40px)',\n maxWidth: '588px',\n minWidth: '320px',\n height: 'fit-content',\n top: '44%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst AlertModal = ({ modalOpen, closeModal, title, content, mailHref, submitButtonText }) => {\n // const { redirectToAdmin } = useContactAdmin();\n const [clicked, setClicked] = useState(false);\n\n return (\n \n \n \n \n \n \n {title}\n {content}\n \n \n \n {STRINGS.close}\n \n \n \n \n setClicked(true)}\n >\n {submitButtonText || STRINGS.contact_admin}\n \n \n \n \n {clicked && (\n <>\n \n Nothing happened on click?\n \n \n This is our email address -{' '}\n support@witnesstofitness.com\n \n \n Please contact us and we will get back to you ASAP\n \n \n )}\n \n \n \n );\n};\n\nexport default AlertModal;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n height: 7.5%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Space-r')};\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n font-size: 1.8rem;\n padding: 4px 28px;\n min-height: 28px;\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n text-align: ${({ centered }) => (centered ? 'center' : 'left')};\n`;\n\nexport const ModalContent = styled.div`\n width: 100%;\n display: flex;\n height: 100%;\n flex-grow: 1;\n`;\n\nexport const ModalContentMain = styled.div`\n flex-grow: 1;\n height: 100%;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalSubHeading = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n line-height: 20px;\n font-family: Roboto-r;\n font-size: 1.6rem;\n line-height: 2.4rem;\n justify-content: center;\n color: #848181;\n`;\n\nexport const ArrowIcon = styled.div`\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: #d2d1d1;\n background-image: url(${ICONS.ArrowDownWhite});\n background-position: center;\n background-size: 60%;\n transform: rotate(90deg);\n background-repeat: no-repeat;\n margin: 3.5rem auto 2rem;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const ModalRow = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid #05000033;\n flex-grow: ${({ grow }) => (grow ? '1' : 'unset')};\n height: ${({ upper }) => (upper ? '18.7%' : 'auto')};\n min-height: ${({ bottom }) => (!bottom ? '144px' : '116px')};\n max-height: 33%;\n position: relative;\n float: left;\n &:last-child {\n border-bottom: none;\n }\n`;\n\nexport const RowTitle = styled.div`\n position: absolute;\n height: 3.2rem;\n z-index: 1111;\n top: -16px;\n left: Calc(50% - 88px);\n background: #ffffff;\n width: 176px;\n border: 0.5px solid #05000033;\n border-radius: 8px;\n font-family: Space-r;\n font-size: 1.4rem;\n line-height: 3.2rem;\n text-align: center;\n background: #fafafa;\n`;\n\nexport const UpperRowCell = styled.div`\n flex-grow: 1;\n min-width: Calc(100% / 3 - 0.5px);\n border-right: ${({ mid }) => (mid ? '1px solid #05000033' : 'none')};\n border-left: ${({ mid }) => (mid ? '1px solid #05000033' : 'none')};\n background-image: ${({ background }) => `url(${background})`};\n background-size: cover;\n background-position: center;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n padding-bottom: ${({ mid }) => (mid ? '1.6rem' : '0')};\n`;\n\nexport const UpperRowCellLine = styled.div`\n width: 1px;\n height: 100%;\n background: #05000033;\n margin: auto;\n`;\n\nexport const ProfilePic = styled.div`\n width: 5.6rem;\n height: 5.6rem;\n border: 4px solid #f1f0f0;\n background: #d8d8d8;\n border-radius: 50%;\n background-image: ${({ image }) => `url(${image})`};\n background-size: cover;\n background-position: center;\n margin: Calc(1.5vh - 4.4px) auto Calc(1.5vh - 6.4px);\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#ffffff')};\n text-transform: uppercase;\n font-size: 1.4rem;\n\n @media (max-width: 600px) {\n width: 80px;\n height: 80px;\n font-size: 20px;\n margin: 0;\n }\n`;\n\nexport const ProfileName = styled.div`\n width: 100%;\n font-family: Gotham-r;\n line-height: max(20px, Calc(2vh - 5.8px));\n color: #4a4a4a;\n letter-spacing: 1px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: Calc(1.5vh - 6.4px);\n\n @media (max-width: 600px) {\n align-items: unset;\n margin-bottom: 8px;\n justify-content: unset;\n font-size: 16px;\n }\n`;\n\nexport const GenderIcon = styled.div`\n width: 1.4rem;\n height: 1.4rem;\n background-image: ${({ gender }) =>\n gender === 'MALE' ? `url(${ICONS.Male})` : `url(${ICONS.Female})`};\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n margin: 0 6px;\n\n @media (max-width: 600px) {\n justify-content: unset;\n width: 16px;\n height: 16px;\n }\n`;\n\nexport const ParameterRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n\n @media (max-width: 600px) {\n justify-content: unset;\n }\n`;\n\nexport const ParameterCell = styled.div`\n display: flex;\n align-items: center;\n font-size: 1.2rem;\n font-family: ${({ val }) => (val ? 'Space-b' : 'Roboto-l')};\n color: ${({ val }) => (val ? '#323232' : '#464646')};\n margin: ${({ val }) => (val ? '0 8px' : '0 1.6')};\n\n @media (max-width: 600px) {\n font-size: 13px;\n }\n`;\n\nexport const MiddleRowCell = styled.div`\n flex: 1;\n min-width: Calc(100% / 6);\n flex-grow: ${({ grow }) => (grow ? grow : 1)};\n border-right: ${({ last }) => (last ? 'none' : '1px solid #05000033')};\n height: 100%;\n padding: Calc(5vh - 8px) 0 Calc(2vh - 2.2px);\n`;\n\nexport const BottomRowCell = styled.div`\n flex: 1;\n border-right: ${({ last }) => (last ? 'none' : '1px solid #05000033')};\n flex-grow: ${({ grow }) => (grow ? grow : 1)};\n height: 100%;\n text-align: center;\n font-size: 1.4rem;\n line-height: 2.1rem;\n font-family: Roboto-l;\n min-width: Calc(100% / 6);\n padding: ${({ grow }) => (grow === '4' ? '32px 44px 12px' : 0)};\n background: ${({ grow }) => (!grow ? '#fafafa' : 'transparent')};\n`;\n\nexport const RespModalFooterWrapper = styled.div`\n @media (max-width: 600px) {\n width: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n }\n`;\n\nexport const ModalFooter = styled.div`\n text-align: center;\n padding: 1.2% 0 1.5%;\n border-top: 1px solid #05000033;\n\n @media (max-width: 600px) {\n text-align: left;\n padding: 0 0 2.4rem;\n border-top: none;\n background-color: #fff;\n }\n`;\n\nexport const ModalButtonsRow = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n height: max(40px, 5.12vh);\n margin: 1.1% 0;\n\n @media (max-width: 600px) {\n flex-wrap: wrap;\n height: unset;\n }\n`;\nexport const ModalButtonWrapper = styled.div`\n width: 195px;\n height: 100%;\n margin: 0 24px;\n\n @media (max-width: 600px) {\n height: 48px;\n flex: 1;\n margin: ${({ margin }) => margin};\n }\n`;\n\nexport const TotalPriceGreen = styled.span`\n font-family: Space-b;\n font-size: 2.4rem;\n line-height: 2.4rem;\n color: #00b972;\n padding: 2px 12px;\n\n @media (max-width: 600px) {\n padding: 0 8px;\n font-size: 18px;\n }\n`;\n\nexport const TotalPriceBold = styled.span`\n font-family: Gotham-r;\n font-size: 1.7rem;\n line-height: 2.4rem;\n letter-spacing: 0.6px;\n color: #373333;\n & > span.declined {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: ${({ theme }) => theme.color.error};\n }\n & > span.approved {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: #00b972;\n }\n\n @media (max-width: 600px) {\n margin-right: auto;\n font-size: 13px;\n }\n`;\n\nexport const MiddleRowCellIcon = styled.div`\n width: max(28px, Calc(4.3vh - 10px));\n height: max(28px, Calc(4.3vh - 10px));\n background-image: ${({ icon }) => `url(${icon})`};\n border: 0.5px solid rgba(0, 185, 114, 0.6);\n border-radius: 6px;\n margin: auto;\n background-repeat: no-repeat;\n background-position: center;\n\n @media (max-width: 600px) {\n width: 40px;\n min-width: 40px;\n height: 40px;\n margin: unset;\n }\n`;\n\nexport const MiddleRowCellKey = styled.div`\n width: 100%;\n text-align: center;\n font-size: 1.4rem;\n padding: Calc(1.5vh - 4.4px) min(26px, Calc(4.5vh - 18px)) Calc(0.75vh - 2.2px);\n\n @media (max-width: 600px) {\n text-align: left;\n font-family: Roboto-r;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 16px;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n padding: 0 0 6px;\n }\n`;\n\nexport const MiddleRowCellValue = styled.div`\n width: 100%;\n text-align: center;\n font-size: 1.4rem;\n font-family: Roboto-l;\n padding: 0 min(26px, Calc(4.5vh - 18px));\n line-height: max(18px, Calc(2vh - 5.8px));\n\n @media (max-width: 600px) {\n /* font-family: Roboto-r; */\n font-size: 14px;\n /* font-weight: 300; */\n font-stretch: normal;\n font-style: normal;\n line-height: 21px;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n padding: 0 0 6px;\n }\n`;\n\nexport const ModalMain = styled.div`\n padding: ${({ padding }) => (padding ? padding : '3.6rem')};\n`;\nexport const ModalTextArea = styled.div`\n max-height: 100%;\n width: 100%;\n`;\n\nexport const FlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div`\n width: Calc(50% - 12px);\n height: 4.8rem;\n margin-top: ${({ marginTop }) => (marginTop ? marginTop : '1.6rem')};\n`;\n\n// group parts\n\nexport const ModalGroupSide = styled.div`\n width: 32%;\n background: #f1f0f0;\n height: 100%;\n padding: 2.4rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n border-right: 1px solid #05000033;\n`;\n\nexport const GroupDetailsHeading = styled.div`\n width: 100%;\n background: rgba(255, 255, 255, 0.6);\n font-family: Space-r;\n font-size: 1.6rem;\n line-height: 2.4rem;\n letter-spacing: 0.1rem;\n padding: 1.6rem;\n text-align: center;\n border-radius: 8px;\n`;\n\nexport const GroupImageWrapper = styled.div`\n width: 11.2rem;\n height: 11.2rem;\n border-radius: 50%;\n background: #ffffff;\n padding: 0.4rem;\n border: 4px solid ${({ theme }) => theme.color.primary};\n margin: 2.4rem 2.4rem 2rem;\n`;\n\nexport const GroupImage = styled.div`\n width: 100%;\n height: 100%;\n background: #f1f0f0;\n background-image: url(${({ groupImage }) => groupImage});\n background-size: cover;\n background-position: center;\n border-radius: 50%;\n`;\n\nexport const GroupName = styled.div`\n font-family: Gotham-r;\n font-size: 1.8rem;\n line-height: 2.4rem;\n color: #4a4a4a;\n margin-bottom: 2rem;\n letter-spacing: 0.1rem;\n min-height: 2.4rem;\n`;\n\nexport const GroupParticipants = styled.div`\n font-family: Roboto-r;\n font-size: 1.4rem;\n line-height: 2.4rem;\n color: #323232;\n margin-bottom: 2.8rem;\n & > span {\n line-height: 2.4rem;\n color: #464646;\n font-family: Space-b;\n font-size: 1.6rem;\n padding: 0 1.6rem;\n }\n`;\n\nexport const GroupAbout = styled.div`\n font-family: Roboto-l;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #050000;\n padding: 0 2.2rem;\n flex-grow: 1;\n display: flex;\n align-items: center;\n text-align: center;\n`;\n\nexport const TicketIcon = styled.div`\n width: 21.3rem;\n height: 12.9rem;\n background-image: url(${ICONS.Ticket});\n background-repeat: no-repeat;\n background-size: contain;\n background-position: center;\n margin: 0 6px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n z-index: 1;\n\n @media (max-width: 600px) {\n width: 109px;\n height: 60px;\n }\n`;\n\nexport const TicketDigits = styled.span`\n height: 2.9rem;\n width: 11%.4rem;\n color: #050000;\n font-family: Space-b;\n font-size: 2rem;\n font-weight: bold;\n letter-spacing: 0.2rem;\n line-height: 2.9rem;\n\n @media (max-width: 600px) {\n height: unset;\n width: unset;\n font-size: 12px;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: 0.95px;\n text-align: right;\n color: #000000;\n }\n`;\n\nexport const TicketNote = styled.span`\n height: 2.4rem;\n width: 6.7rem;\n opacity: 0.6;\n color: #373333;\n font-family: 'Space-r';\n font-size: 1.2rem;\n letter-spacing: 0;\n line-height: 2.4rem;\n text-align: center;\n\n @media (max-width: 600px) {\n height: unset;\n width: unset;\n font-size: 9px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: right;\n color: #000000;\n }\n`;\n\n// mobile\nexport const RespContainer = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 999;\n background-color: rgb(247, 246, 246);\n overflow-y: auto;\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n`;\n\nexport const BackIcon = styled.img`\n object-fit: contain;\n width: 24px;\n`;\n\nexport const RespModalHeader = styled.header`\n height: 60px;\n display: flex;\n align-items: center;\n padding: 16px 16px 20px;\n text-transform: uppercase;\n background-color: #fff;\n`;\n\nexport const ModalTitle = styled.h2`\n margin-left: 34px;\n font-family: Space-r;\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: 1px;\n text-align: left;\n color: #050000;\n`;\n\nexport const BannerWrapper = styled.div`\n background-image: url(${ICONS.LeftCellBackground});\n background-size: cover;\n background-position: center;\n min-height: 120px;\n display: flex;\n flex-wrap: wrap;\n`;\n\nexport const Box = styled.div`\n flex: 1 0 50%;\n height: 50%;\n border: 1px solid rgba(0, 0, 0, 0.2);\n &:nth-child(1) {\n border-left: none;\n border-top: none;\n }\n &:nth-child(2) {\n border-left: none;\n border-right: none;\n border-top: none;\n }\n &:nth-child(3) {\n border: none;\n border-right: 1px solid rgba(0, 0, 0, 0.2);\n }\n &:nth-child(4) {\n border: none;\n }\n`;\n\nexport const AvatarRow = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: -40px;\n margin-bottom: 24px;\n`;\n\nexport const RespContentContainer = styled.div`\n padding: 0 32px;\n`;\n\nexport const BlockLabelContainer = styled.div`\n height: 32px;\n position: relative;\n padding: 0 12px 0 25px;\n border-radius: 8px;\n border: solid 0.5px rgba(0, 0, 0, 0.2);\n background-color: #ffffff;\n font-family: Space-r;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: center;\n color: #373333;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 0 32px 0 24px;\n margin-top: ${({ mt }) => mt || 0}px;\n margin-bottom: ${({ mb }) => mb || 0}px;\n\n &::after {\n z-index: -1;\n content: '';\n width: 100vw;\n height: 0.5px;\n background-color: rgba(0, 0, 0, 0.2);\n position: absolute;\n top: calc(50% - (0.5px / 2));\n left: -32px;\n }\n`;\n\nexport const LabelIcon = styled.img`\n width: 20px;\n height: 20px;\n transform: ${({ isOpen }) => (isOpen ? 'rotate(0deg)' : 'rotate(180deg)')};\n`;\n\nexport const LabelContentContainer = styled.div`\n margin: 32px 0 40px;\n`;\n\nexport const FitnessDataRow = styled.div`\n display: flex;\n margin: 0 24px 24px;\n`;\n\nexport const FitnessDataWrapper = styled.div`\n margin-left: 16px;\n`;\n\nexport const FitnessDataLabel = styled.div`\n font-family: Roboto-r;\n margin-bottom: 6px;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n`;\n\nexport const RespNote = styled.div`\n font-family: Roboto-r;\n font-size: 14px;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: normal;\n text-align: left;\n color: #050000;\n`;\n\nexport const PriceRow = styled.div`\n padding: 16px 24px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border: 0.5px solid rgba(0, 0, 0, 0.1);\n border-left: none;\n border-right: none;\n`;\n\nexport const PriceData = styled.span`\n font-family: Roboto-r;\n font-size: 13px;\n font-stretch: normal;\n font-style: normal;\n line-height: normal;\n letter-spacing: normal;\n color: #323232;\n display: flex;\n align-items: center;\n`;\nexport const CoachRowName = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0.8rem;\n &:last-child {\n border: none;\n }\n`;\nexport const CoachRowImage = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n margin-right: 1.6rem;\n background-image: url(${({ img }) => img});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 4px;\n`;\n","import React, { useContext } from 'react';\nimport Modal from 'react-modal';\n\nimport STRINGS from '../../constants/strings';\nimport ICONS from '../../constants/icons';\nimport { workoutToMin } from '../../services/utils';\nimport useProgramRequestPreview from '../../hooks/programRequestPreview';\n\nimport {\n WholeWrapper,\n ModalHeader,\n ModalRow,\n UpperRowCell,\n MiddleRowCell,\n BottomRowCell,\n RowTitle,\n UpperRowCellLine,\n MiddleRowCellIcon,\n MiddleRowCellKey,\n MiddleRowCellValue,\n ProfilePic,\n ProfileName,\n GenderIcon,\n ParameterRow,\n ParameterCell,\n ModalCloseX,\n ModalContentMain,\n ModalContent,\n TicketIcon,\n TicketDigits,\n TicketNote,\n} from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: 11111111,\n },\n content: {\n width: '74%',\n maxWidth: '1320px',\n minWidth: '980px',\n height: 'Calc(82vh + 30px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst TraineeInfoModal = ({ content, closeModal }) => {\n const {\n weekDays,\n } = useProgramRequestPreview({ content });\n\n console.log('programRequest - ', content);\n return (\n \n \n \n Trainee Information\n X\n \n \n \n \n \n \n \n \n \n {content?.trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')\n .substring(0, 3)}\n \n \n {content?.trainee?.fullName}\n \n \n \n \n {STRINGS.weight}\n {`${content?.trainee?.weight}`}\n \n \n {STRINGS.height}\n {content?.trainee?.height}\n \n \n {STRINGS.age}\n {content?.trainee?.age}\n \n \n \n \n \n {!!content?.code && (\n \n \n #{`000${Math.floor(content?.code?.digits / 1000)}`.slice(-3)}-\n {`000${content?.code?.digits % 1000}`.slice(-3)}\n \n Code Used\n \n )}\n \n \n \n {STRINGS.health_and_fitness}\n \n \n {STRINGS.fitness_level}\n {content?.fitnessLevel}\n \n \n \n {STRINGS.training_environment}\n {content?.place?.join(', ')}\n \n \n \n {STRINGS.injures}\n {`${content?.injury || ''}${\n (content?.injuryDetails && '. ' + content?.injuryDetails) || ''\n }`}\n \n \n \n {STRINGS.available_equipment}\n \n {content?.equipments?.map((eq) => eq.name).join(', ')}\n {!!content?.equipments?.length && content?.otherEquipment && ', '}\n {content?.otherEquipment}\n {!(content?.equipments?.length || content?.otherEquipment) &&\n \"Trainee didn't mention any available equipment\"}\n \n \n \n \n {STRINGS.health_status}\n \n {(content?.healthCondition && content?.healthConditionDetails) || 'Healthy'}\n \n \n \n \n {STRINGS.program_details}\n \n \n {STRINGS.program_length}\n {content?.programLength} days\n \n \n \n {STRINGS.workout_time} \n \n {workoutToMin(content?.workoutLength)} min\n \n \n \n \n {STRINGS.desired_agenda}\n \n {content?.daysOfTraining?.map((d) => weekDays[d]).join(', ')}\n \n \n \n \n {STRINGS.training_type}\n \n {content?.trainingTypes?.map((ttype) => ttype?.name)?.join(', ') ||\n content?.trainingType?.name}\n \n \n \n \n {STRINGS.training_goals}\n \n {content?.goals?.map((eq) => eq.name).join(', ')}\n \n \n \n \n {STRINGS.notes}\n \n \n
{content?.note || 'No Additional Notes'}
\n
\n \n
\n
\n
\n
\n \n );\n};\n\nexport default TraineeInfoModal;\n","import React, { useState, useCallback, useMemo, useContext, useEffect } from 'react';\nimport { sendProgramMutation } from '@witness/graphql';\nimport { useMutation } from '@apollo/react-hooks';\nimport moment from 'moment';\n\nimport { ChangesSaved, ChangesSavedIcon, LoadingDot } from '../profile/components';\nimport { PseudoParticipantCard } from '../../components/trainee-card/components';\nimport ProgramCalendar from '../../components/program-calendar/ProgramCalendar';\nimport AddGroupModal from '../../components/add-group-modal.jsx/AddGroupModal';\nimport ParticipantCard from '../../components/trainee-card/ParticipantCard';\nimport ArrowIcon from '../../assets/common/arrow-main-right.svg';\nimport CustomButton from '../../components/button/CustomButton';\nimport { CoachProgramStatus, WorkoutStatus } from '../../constants/enums';\nimport Checkbox from '../../components/checkbox/Checkbox';\nimport ChatContext from '../../services/ChatContext';\nimport { workoutToMin } from '../../services/utils';\nimport Loader from '../../components/loader/Loader';\nimport MessageList from '../chat/MessageList';\nimport IMAGES from '../../constants/images';\nimport { useGroup, useProgram } from '../../hooks';\n\nimport {\n StatusBar,\n StatusTitle,\n StatusText,\n StatusMessage,\n StatusMessageContainer,\n IconContainer,\n Container,\n Sidemenu,\n Content,\n SideHeader,\n Avatar,\n TraineeName,\n TraineeNameTitle,\n TraineeNameSubTitle,\n SideContent,\n SideInfo,\n InfoHeader,\n InfoHeaderText,\n InfoCell,\n Row,\n Cell,\n CellTitle,\n MinimizeButton,\n Header,\n ContentHeader,\n Tabs,\n Tab,\n ButotnContainer,\n ButtonText,\n GroupIdBadge,\n InfoHeaderEditIcon,\n ParticipantSliderItem,\n} from './components';\nimport AreYouSureModal from '../../components/are-you-sure-modal/AreYouSureModal';\nimport CancelProgramModal from '../../components/cancel-program-modal/CancelProgramModal';\n\nimport EmptyTemplate from '../../components/empty-template/EmptyTemplate';\nimport MagicScroll from '../../components/magic-scroll/MagicScroll';\nimport { useAlert } from 'react-alert';\nimport AlertModal from '../../components/alert-modal/AlertModal';\nimport TraineeInfoModal from '../../components/trainee-info-modal/TraineeInfoModal';\n\n\nconst Program = () => {\n const [edittingGroup, setEdditingGroup] = useState(null);\n const [sliderIndex, setSliderIndex] = useState(0);\n const [menuIsOpen, setMenuOpen] = useState(true);\n const [sendGroupProgramModal, setSendGroupProgramModal] = useState(false);\n const [tab, setTab] = useState('program');\n const [statusLoading, setStatusLoading] = useState(false);\n const [cancelModal, setCancelModal] = useState(null);\n const [traineeInfoModalContent, setTraineeInfoModalContent] = useState(null);\n\n const {\n program,\n programLoading,\n isGroup,\n defaultTab,\n urlProgramDay,\n urlTraineeUid,\n refetch,\n handleCoachProgramUpdate,\n updateCalendarCache,\n cancelParticipantFromGroup,\n } = useProgram();\n\n const {\n createGroup,\n } = useGroup();\n\n useEffect(() => {\n setTab(defaultTab || 'program');\n }, [defaultTab]);\n\n const [sendProgram, { loading, client}] = useMutation(sendProgramMutation, {\n update() {\n client.resetStore()\n },\n });\n\n const handleSendProgram = useCallback(async () => {\n setStatusLoading(true);\n try {\n await sendProgram({\n variables: {\n record: {\n uid: program?.coachProgram?.uid,\n beginningDate: program?.coachProgram?.beginningDate || new Date(),\n },\n },\n });\n await refetch();\n } catch (err) {\n await refetch();\n }\n setStatusLoading(false);\n }, [sendProgram, program, refetch]);\n\n const diffHours = moment(program?.approvedDate).add(3, 'd').diff(moment(), 'hours');\n\n const message = useMemo(() => {\n if (!program?.approvedDate || program?.coachProgram?.status === CoachProgramStatus.ENDED) {\n return '';\n }\n\n if (diffHours < 0) {\n return `You are late by ${-diffHours} hours. Send program to ${program?.trainee?.fullName?.toLowerCase()} ASAP!`;\n }\n\n return `You have ${diffHours} hours left to send program to customer`;\n }, [diffHours, program]);\n\n const { currentConversation, currentMessages, conversations, setCurrentConversation } =\n useContext(ChatContext);\n\n const handleTabClick = useCallback(() => {\n const { uid, trainee } = program;\n const convId = isGroup ? uid : trainee.user?.uid;\n\n let convo = conversations[convId];\n\n if (!convo) {\n convo = {\n isNew: true,\n isGroup,\n groupId: convId,\n lastMessage: {},\n user: {\n id: convId,\n name: isGroup ? program.name : trainee.fullName,\n avatar: isGroup ? program.groupImage?.url : trainee.avatar?.url,\n },\n };\n }\n\n setCurrentConversation(convo);\n setTab('chat');\n }, [isGroup, conversations, program, setCurrentConversation]);\n\n useEffect(() => {\n if (program && defaultTab === 'chat') {\n handleTabClick();\n }\n }, [defaultTab, handleTabClick, program]);\n\n const daysCountUntilEnd = useMemo(() => {\n if (program?.coachProgram?.status !== 'ONGOING') {\n return 11;\n }\n\n const endDate = new Date(program.coachProgram.beginningDate);\n endDate.setDate(endDate.getDate() + program.programLength);\n const msLeft = endDate.getTime() - Date.now();\n\n return Math.ceil(msLeft / 1000 / 60 / 60 / 24);\n }, [program]);\n\n const alert = useAlert();\n const nonChangableDate = useMemo(() => {\n return !!program?.coachProgram?.calendar?.find((day) =>\n day?.workout?.status?.find(\n (st) => st?.type === WorkoutStatus.DONE || st?.type === WorkoutStatus.UNDONE,\n ),\n );\n }, [program]);\n console.log(nonChangableDate);\n return (\n <>\n setTraineeInfoModalContent(null)}\n />\n {program?.coachProgram ? (\n <>\n {!programLoading && (\n \n {\n \n STATUS:\n setSendGroupProgramModal(false)}\n submitModal={handleSendProgram}\n headingText={'Are You Sure?'}\n contentText={\n <>\n If you will change the status to “Open” the group program will\n be available for trainees\n \n }\n choiceQuestion={'Do you want to Change the Status?'}\n />\n \n {program?.coachProgram?.status === CoachProgramStatus.ONGOING\n ? 'In Progress '\n : program?.coachProgram?.status === CoachProgramStatus.ENDED\n ? 'Finished '\n : program?.coachProgram?.status === CoachProgramStatus.DECLINED\n ? 'Canceled '\n : 'Building '}\n Training Program\n \n
\n }\n\n {!isGroup &&\n program?.coachProgram?.status !== CoachProgramStatus.ONGOING &&\n program?.coachProgram?.status !== CoachProgramStatus.ENDED &&\n program?.coachProgram?.status !== CoachProgramStatus.DECLINED && (\n \n \n \"\"\n \n {message}\n \n )}\n \n )}\n \n
\n \n \n {program?.trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')}\n \n {isGroup ? (\n \n {program?.name}\n \n #\n {(program?.code?.digits &&\n `${('000' + Math.floor(program?.code?.digits / 1000)).slice(-3)}-${(\n '000' +\n (program?.code?.digits % 1000)\n ).slice(-3)}`) ||\n '--- ---'}\n \n \n ) : (\n \n \n {(program?.trainee?.fullName && `${program?.trainee?.fullName}'s`) || false}\n \n Program\n \n )}\n \n\n \n \n setTab('program')}\n />\n \n {isGroup && (\n setTab('participants')}\n />\n )}\n \n \n {!statusLoading && program?.coachProgram?.status === CoachProgramStatus.APPROVED && (\n setSendGroupProgramModal(true) : handleSendProgram}\n disabled={loading}\n >\n {isGroup ? `Activate Group` : `Send Program`}\n \n )}\n\n {(loading || statusLoading) && (\n \n \n \n \n \n \n )}\n {program?.coachProgram?.status === CoachProgramStatus.ONGOING && (\n \n \n In progress\n \n )}\n \n \n
\n \n \n \n setMenuOpen((o) => !o)} isOpen={menuIsOpen} />\n \n {isGroup && (\n \n { program?.coachProgram?.status !== CoachProgramStatus.ENDED && \n {\n createGroup(\n values,\n setErrors,\n () => {},\n () => {},\n ).then(refetch);\n setEdditingGroup(false);\n alert.success('Group has been updated.');\n }}\n closeModal={() => setEdditingGroup(false)}\n nonChangableDate={nonChangableDate}\n />\n Edit Group\n setEdditingGroup(program)} />\n }\n\n \n \n {isGroup && program?.coachProgram?.participants?.length && (\n setSliderIndex((curr) => Math.max(0, curr - 1))}\n onRightClick={() => setSliderIndex((curr) => Math.min(5, curr + 1))}\n firstItem={sliderIndex}\n keyExtractor={(a, b) => (typeof b === 'number' ? b : a)}\n onTabClick={() => {}}\n />\n )}\n \n \n \n )}\n \n \n Program Details\n \n \n a.name)?.join(', ') ||\n program?.trainingType?.name\n }\n />\n \n {isGroup ? (\n \n \n \n \n ) : (\n \n \n eq.name).join(', ')}\n />\n \n )}\n\n \n \n Desired Agenda\n\n \n -1}\n />\n -1}\n />\n -1}\n />\n -1}\n />\n -1}\n />\n -1}\n />\n -1}\n />\n \n \n \n\n \n \n \n {isGroup ? `Group Description` : `Program Details`}\n \n \n {!isGroup && (\n <>\n \n \n \n )}\n \n\n {isGroup ? (\n \n \n \n ) : (\n <>\n \n eq.name).join(', ') ||\n \"Trainee didn't mention any available equipment\"\n }\n />\n \n\n \n \n \n \n \n setTraineeInfoModalContent(program)}\n outlined\n style={{\n minHeight: 0\n }}\n >\n More Info\n \n \n \n )}\n \n \n \n {tab === 'program' && (\n \n )}\n {isGroup && tab === 'participants' && (\n \n {console.log(program)}\n {program?.coachProgram?.participants?.length ? (\n <>\n setCancelModal(null)}\n submitModal={() =>\n cancelModal?.uid && cancelParticipantFromGroup(cancelModal?.uid, program?.coachProgram?.uid)\n }\n headingText={'Are You Sure?'}\n contentText={\n <>\n If you cancel the program for {cancelModal?.fullName}, you\n won't be able to restore.\n \n }\n />\n {program?.coachProgram?.participants?.map((participant) => (\n setTraineeInfoModalContent({\n ...program,\n trainee: participant\n })}\n participant={participant}\n handleCancel={() => {\n setCancelModal(participant);\n }}\n />\n ))}\n \n \n \n \n \n \n ) : (\n \n )}\n \n )}\n {tab === 'chat' && (\n \n \n \n )}\n \n
\n \n ) : !program && !programLoading ? (\n <>program not found\n ) : program && !program?.coachProgram ? (\n <>coach program is not created yet, you may need to reload the page\n ) : (\n \n )}\n \n );\n};\n\nexport default Program;\n","import { css } from 'styled-components';\n\nconst screenSizes = {\n mobile: 480,\n tablet: 768,\n laptopS: 1024,\n laptopM: 1366,\n laptopL: 1560,\n desktopS: 1680,\n desktopM: 1920,\n};\n\nconst media = Object.keys(screenSizes).reduce((acc, label) => {\n acc[label] = (...args) => css`\n @media (max-width: ${screenSizes[label]}px) {\n ${css(...args)}\n }\n `;\n return acc;\n}, {});\n\nconst Theme = {\n color: {\n primary: '#00ff91',\n error: '#F50A4F',\n },\n ...media,\n};\n\nexport default Theme;\n","import React from 'react';\n\nimport { EditableInfoContainer, EditableInfoInput, EditableInfoIcon } from './components';\n\nconst CustomEditableInfo = ({ icon, value, onChange, placeholder }) => {\n return (\n \n \n onChange(e.target.value)}\n disabled\n />\n \n );\n};\n\nexport default CustomEditableInfo;\n","import styled from 'styled-components';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n line-height: 2.4rem;\n font-family: Space-r;\n padding: 2rem 3.6rem;\n letter-spacing: 0.08rem;\n`;\n\nexport const ModalMain = styled.div`\n padding: ${({ padding }) => (padding ? padding : '3.6rem')};\n`;\n\nexport const ModalColumn = styled.div`\n min-width: Calc(50% - 12px);\n flex-grow: 1;\n margin-right: 12px;\n margin-left: 12px;\n &:first-child {\n margin-left: 0;\n }\n &:last-child {\n margin-right: 0;\n }\n`;\n\nexport const ModalInput = styled.div`\n width: ${({ small }) => (small ? 'Calc(50% - 8px)' : '100%')};\n height: 7.5rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n font-family: Roboto-m;\n font-size: 1.4rem;\n color: #37333399;\n margin-bottom: 2.4rem;\n`;\n\nexport const ModalTextArea = styled.div`\n max-height: 100%;\n width: 100%;\n`;\n\nexport const FlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div`\n width: Calc(50% - 12px);\n height: 4.8rem;\n margin-top: ${({ marginTop }) => (marginTop ? marginTop : '1.6rem')};\n`;\n","import React from 'react';\nimport Modal from 'react-modal';\nimport 'react-image-crop/dist/ReactCrop.css';\nimport STRINGS from '../../constants/strings';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalMain,\n FlexWrapper,\n ButtonWrapper,\n ModalTextArea,\n} from './components';\nimport { Formik, Field, Form } from 'formik';\nimport CustomTextArea from '../input/CustomTextArea';\nimport { EditAboutMeSchema } from '../../schemas/signup/coachProfile';\nimport { ModalCloseX } from '../request-modal/components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: '28%',\n maxWidth: '684px',\n minWidth: '320px',\n height: 'fit-content',\n maxHeight: 'Calc(100% - 40px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst EditAboutMeModal = ({ modalOpen, closeModal, submitModal, getInitialValues }) => {\n return (\n \n \n \n {STRINGS.edit_about_me}\n X\n \n \n \n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n \n \n {({ field }) => (\n \n setFieldValue(field.name, val)}\n error={errors[field.name]}\n />\n \n )}\n \n \n \n \n \n {STRINGS.close}\n \n \n \n \n {STRINGS.save}\n \n \n \n
\n )}\n \n
\n
\n \n );\n};\n\nexport default EditAboutMeModal;\n","import React, { useContext, useMemo, useState } from 'react';\nimport ICONS from '../../constants/icons';\nimport STRINGS from '../../constants/strings';\nimport CustomInputCheck from '../../components/input/CustomInputCheck';\nimport {\n ProfileMainEdgeColumn,\n ProfileMainCenterColumn,\n ProfileImageBlock,\n ProfileImageFrame,\n ProfileImage,\n BorderLabel,\n BorderLabelEditIcon,\n LabeledInfoBlock,\n ProfileName,\n ChangesSaved,\n ChangesSavedIcon,\n PhysicalInfoBox,\n PhysicalInfoItem,\n PhysicalInfoItemLabel,\n PersonalInfoContainer,\n AboutContainer,\n ScrollableContainer,\n ProfessionalInfoContainer,\n ProfessionalInfoItem,\n ProfessionalInfoItemLabel,\n ProfessionalInfoGreenCircle,\n ProfessionalInfoItemValue,\n ExperienceWrapper,\n PortfolioWrapper,\n PortfolioItemWrapper,\n PortfolioScroll,\n ProfileId,\n ProfileIdInfo,\n CredentialItem,\n GreyButton,\n FlexWrapper,\n DownloadButton,\n PseudoSpeciality,\n PseudoPortfolioItem,\n LoadingDot,\n VideoSign,\n DeleteSign,\n CameraIcon,\n CoachRowImage,\n CoachRowName,\n CoachesWrapper,\n PDFContainer,\n PdfImageBlock,\n PdfImage,\n PdfImageFrame, CameraIconPdf,\n} from './components';\nimport { useCoachPersonalInfo } from '../../hooks';\nimport CustomEditableInfo from '../../components/input/CustomEditableInfo';\nimport CustomInputNumber from '../../components/input/CustomInputNumber';\nimport AlertModal from '../../components/alert-modal/AlertModal';\nimport EditPersonalInfoModal from '../../components/edit-personal-info-modal/EditPersonalInfoModal.jsx';\nimport EditAboutMeModal from '../../components/edit-personal-info-modal/EditAboutMeModal';\nimport CustomInputFile from '../../components/input/CustomInputFile';\nimport CropImageModal from '../../components/crop-image/CropImageModal';\nimport CustomTooltip from '../../components/tooltip/CustomTooltip';\nimport MediaModal from '../../components/media-modal/MediaModal';\nimport AreYouSureModal from '../../components/are-you-sure-modal/AreYouSureModal';\nimport { OrganizationContext } from '../../services/organizationContext';\n\nconst CoachProfilePersonal = () => {\n const [openModal, setOpenModal] = useState(null);\n const [portfolioToBeDeleted, setPortfolioToBeDeleted] = useState(null);\n const [openFile, setOpenFile] = useState(null);\n const [modalImage, setModalImage] = useState(null);\n const [modalImageFile, setModalImageFile] = useState(null);\n const [loading, setLoading] = useState(false);\n const { isOrganization } = useContext(OrganizationContext);\n\n const {\n currentCoach,\n currentOrganization,\n orgCoaches,\n submitEditCoach,\n getInitialValuesAbout,\n getInitialValuesPersonal,\n uploadportfolioItems,\n handleDeletePortfolio,\n } = useCoachPersonalInfo({ setLoading, setOpenModal });\n\n const currentUser = useMemo(\n () => (isOrganization ? currentOrganization : currentCoach),\n [currentOrganization, currentCoach, isOrganization],\n );\n\n return (\n <>\n setModalImage(null)}\n onSubmit={(file, blob) => {\n debugger;\n submitEditCoach({image: file}, {\n setSubmitting: () => {\n }, blob\n })\n }\n }\n />\n setOpenModal(null)}\n />\n setPortfolioToBeDeleted(null)}\n submitModal={() => handleDeletePortfolio(portfolioToBeDeleted)}\n headingText=\"Are You Sure You Want To Delete The Item?\"\n neg\n submitText=\"Delete\"\n rejectText=\"Cancel\"\n />\n setOpenModal(null)}\n mailHref={'mailto:support@witnesstofitness.com?subject=Change Personal Info'}\n />\n setOpenModal(null)}\n submitModal={submitEditCoach}\n getInitialValues={getInitialValuesAbout}\n />\n setOpenFile(null)}\n type={openFile?.type}\n deleteFile={() => setPortfolioToBeDeleted(openFile?.uid)}\n />\n \n \n \n \n {\n setModalImageFile(e.target.files[0]);\n var reader = new FileReader();\n reader.readAsDataURL(e.target.files[0]);\n reader.onload = (ev) => {\n setModalImage(ev.target.result);\n };\n }}\n >\n \n \n \n \n #\n {(currentUser?.code?.digits &&\n `${('000' + Math.floor(currentUser?.code?.digits / 1000)).slice(-3)}-${(\n '000' +\n (currentUser?.code?.digits % 1000)\n ).slice(-3)}`) ||\n '--- ---'}\n \n i\n \n This is Your Profile Code. You can send it to Your potential Trainers to help them\n to find you in the system\n \n \n \n \n \n \n \n Personal Info\n setOpenModal('personal_info')} />\n \n {!isOrganization && (\n \n \n {currentCoach?.gender?.split('')[0].toUpperCase() || '-'}\n Gender\n \n \n {currentCoach?.age || '-'}\n Age\n \n \n {currentCoach?.height || '-'}\n Height (cm)\n \n \n {currentCoach?.weight || '-'}\n Weight (kg)\n \n \n )}\n \n \n \n {!isOrganization && (\n <>\n \n \n {/* \n */}\n \n )}\n \n \n \n \n {currentUser?.fullName}\n \n \n About Me\n setOpenModal('about_me')} />\n \n \n \n {currentUser?.about?.split('\\n').map((i, key) => {\n return (\n \n {i}\n \n );\n })}\n \n \n \n\n \n \n PDF Image\n \n \n \n \n \n {\n const file = e.target.files[0]; // This is already a Blob\n var reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (ev) => {\n debugger;\n submitEditCoach({ pdfImage: file}, { setSubmitting: () => {}, pdfBlob: ev.target.result});\n };\n }}\n >\n \n \n \n \n \n \n \n \n \n Professional Info\n setOpenModal('professional_info')} />\n \n \n \n \n \n Training Specialities\n \n \n {currentUser?.specialities?.map((spec, i) => (\n {}}\n />\n ))}\n \n \n \n \n \n \n \n {!isOrganization && (\n <>\n \n \n \n Years of Experience\n \n \n \n \n \n \n \n \n \n \n Diplomas & Credentials\n \n \n {currentCoach?.diplomas?.map((diploma, i) => (\n \n {diploma.name}\n \n {diploma?.files?.map((file) => (\n \n ))}\n \n \n \n \n \n ))}\n \n \n \n )}\n \n \n \n \n \n \n {loading ? (\n <>\n \n \n \n \n ) : (\n 'Data Saved'\n )}\n \n {!isOrganization ? (\n \n Portfolio\n \n \n \n uploadportfolioItems(e?.target?.files)}\n />\n \n {currentCoach?.portfolio\n ?.slice(0)\n .reverse()\n .map((portfolio) => (\n \n {portfolio?.files\n ?.slice(0)\n .reverse()\n .map((file) => (\n \n setOpenFile({\n url: file.url,\n type: file?.mimetype?.split('/')[0],\n uid: file?.uid,\n })\n }\n blur={portfolio?.uid?.substring(0, 4) === 'temp'}\n image={file.url}\n >\n {file?.mimetype?.split('/')[0] === 'video' && (\n \n )}\n {\n e.stopPropagation();\n setPortfolioToBeDeleted(file.uid);\n }}\n />\n \n \n \n \n ))}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n Coaches\n \n {orgCoaches?.getOrgCoaches?.map((coach) => (\n \n \n {coach.fullName}\n \n ))}\n \n \n )}\n \n \n );\n};\n\nexport default CoachProfilePersonal;\n","import styled from 'styled-components';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n line-height: 2.4rem;\n font-family: Space-r;\n padding: 2rem 3.6rem;\n letter-spacing: 0.08rem;\n text-transform: uppercase;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const ModalMain = styled.div`\n padding: 3.2rem 3.2rem 3.2rem 0;\n`;\n\nexport const PricingTable = styled.table`\n width: 100%;\n border-collapse: separate;\n border-spacing: 0.35rem;\n table-layout: fixed;\n font-size: 1.4rem;\n line-height: 2.1rem;\n color: #373333;\n`;\n\nexport const PricingTableTh = styled.th`\n font-family: Roboto-m;\n text-align: center;\n padding: 1.8rem 0;\n line-height: 2.1rem;\n font-weight: inherit;\n`;\n\nexport const PricingTableLeftColumnTd = styled.td`\n font-family: Roboto-m;\n text-align: left;\n line-height: 2.1rem;\n padding: 1.8rem 0 1.8rem 3.2rem;\n display: flex;\n justify-content: center;\n`;\n\nexport const PricingTableTd = styled.td`\n background: #fafafa;\n text-align: center;\n padding: 0.7rem 1.1rem;\n &:nth-child(2) {\n border-radius: 8px 0 0 8px;\n }\n &:last-child {\n border-radius: 0 8px 8px 0;\n }\n`;\n\nexport const ButtonWrapper = styled.div`\n width: 252px;\n`;\n\nexport const ButtonContainer = styled.div`\n width: 100%;\n padding: 3.2rem 0 0.4rem;\n display: flex;\n justify-content: flex-end;\n`;\n","import React from 'react';\nimport { Formik, Field, Form } from 'formik';\nimport Modal from 'react-modal';\n\nimport CustomButton from '../button/CustomButton';\nimport CustomInput from '../input/CustomInput';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalMain,\n ButtonWrapper,\n ButtonContainer,\n PricingTable,\n PricingTableTh,\n PricingTableLeftColumnTd,\n PricingTableTd,\n ModalCloseX,\n} from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: '54%',\n maxWidth: '976px',\n minWidth: '320px',\n height: 'fit-content',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst AdvancedPriceModal = ({ content, closeModal, submitModal }) => {\n return (\n \n \n \n CREATE CUSTOM PRICE FOR {content?.speciality?.name}\n X\n \n \n {\n closeModal();\n submitModal(vals);\n }}\n >\n {({ setFieldValue, errors, touched, isSubmitting, values, submitForm }) => (\n
\n \n \n \n Price Per Month\n Price Per Month for 2 month\n Price Per Month for 3 month\n \n {[\n { name: '1-3 workouts p/week', prices: ['p11', 'p12', 'p13'] },\n { name: '4-5 workouts p/week', prices: ['p21', 'p22', 'p23'] },\n { name: '6-7 workouts p/week', prices: ['p31', 'p32', 'p33'] },\n ].map((frequency) => (\n <>\n \n {frequency.name}\n {frequency?.prices?.map((price) => (\n \n {({ field }) => (\n \n setFieldValue(field.name, v ? Number(v) : null)}\n />\n \n )}\n \n ))}\n \n \n ))}\n \n \n \n \n Save Prices\n \n \n \n
\n )}\n \n
\n
\n \n );\n};\n\nexport default AdvancedPriceModal;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000012')};\n line-height: 2.4rem;\n font-family: Space-r;\n padding: 2rem 3.6rem;\n letter-spacing: 0.08rem;\n justify-content: space-between;\n`;\nexport const CloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\nexport const ModalMain = styled.div`\n /* padding: ${({ padding }) => (padding ? padding : '3.6rem')}; */\n`;\n\nexport const ModalColumn = styled.div`\n width: Calc(50% - 12px);\n`;\n\nexport const ModalInput = styled.div`\n width: ${({ small }) => (small ? 'Calc(50% - 8px)' : '100%')};\n height: ${({ height }) => (height ? height : '7.5rem')};\n flex-grow: ${({ grow }) => (grow ? '1' : 'none')};\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n font-family: Roboto-m;\n font-size: 1.4rem;\n color: #37333399;\n margin-bottom: 2.4rem;\n`;\n\nexport const ModalTextArea = styled.div`\n max-height: 100%;\n width: 100%;\n`;\n\nexport const FlexWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ButtonWrapper = styled.div`\n width: 22.6rem;\n margin: 0 0.8rem;\n height: 4.8rem;\n`;\n\nexport const FieldWrapper = styled.div`\n pointer-events: ${({ disabled }) => (disabled ? 'none' : 'auto')};\n opacity: ${({ disabled }) => (disabled ? '0.3' : '1')};\n`;\n\nexport const DaysWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n`;\n\nexport const CheckBox = styled.div`\n cursor: pointer;\n width: 1.6rem;\n height: 1.6rem;\n border: 1px solid ${({ theme, checked }) => (checked ? theme.color.primary : '#05000030')};\n background: ${({ theme, checked }) => (checked ? theme.color.primary : '#ffffff30')};\n background-image: ${({ checked }) => (checked ? `url(${ICONS.TermsCheckMark})` : 'url()')};\n background-position: center;\n background-repeat: no-repeat;\n background-size: 86% auto;\n border-radius: 4px;\n margin: 1.4rem;\n`;\nexport const CoachRow = styled.div`\n width: 100%;\n padding: 0.4rem 2.4rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n`;\nexport const CoachRowCheck = styled.div`\n background: #ffffff;\n width: fit-content;\n border-radius: 6px 0 0 6px;\n margin-right: 2px;\n`;\nexport const CoachRowName = styled.div`\n background: #ffffff;\n flex-grow: 1;\n border-radius: 0 6px 6px 0;\n font-size: 1.4rem;\n color: #696666;\n display: flex;\n align-items: center;\n line-height: 2.8rem;\n padding: 0.8rem;\n`;\nexport const CoachRowImage = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n margin: 0 1.6rem 0 0.8rem;\n background-image: url(${({ img }) => img});\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n border-radius: 4px;\n`;\nexport const CoachList = styled.div`\n flex-grow: 1;\n background: #f1f0f0;\n max-height: Calc(100% - 5rem);\n overflow: auto;\n padding: 0.8rem 0;\n\n &::-webkit-scrollbar {\n width: 0.6rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: #f1f0f0;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #05000012;\n border-radius: 2px;\n }\n`;\n","import React from 'react';\nimport InputRange from 'react-input-range';\nimport { useMemo } from 'react';\n\nimport {\n OrgWholeWrapper,\n ChartLegend,\n OrgLineWrapper,\n OrgValuesWrapper,\n OrgValuesPercentage,\n} from './components';\n\nconst ProgressLineOrganization = ({ total, progress, onChange }) => {\n const percentage = useMemo(() => {\n const part = Math.round((progress / total) * 100);\n if (part < 0) return 0;\n if (part > 100) return 100;\n return part;\n }, [progress, total]);\n\n return (\n \n \n onChange(value)}\n />\n\n \n
0%
\n
100%
\n
\n
\n \n {percentage}%\n \n
\n );\n};\n\nexport default ProgressLineOrganization;\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport Modal from 'react-modal';\nimport STRINGS from '../../constants/strings';\nimport moment from 'moment';\n\nimport CustomButton from '../button/CustomButton';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalMain,\n FlexWrapper,\n ButtonWrapper,\n ModalColumn,\n ModalInput,\n CloseX,\n FieldWrapper,\n DaysWrapper,\n CheckBox,\n CoachRow,\n CoachRowCheck,\n CoachRowName,\n CoachRowImage,\n CoachList,\n} from './components';\nimport CustomInput from '../input/CustomInput';\nimport CustomInputNumber from '../input/CustomInputNumber';\nimport { Formik, Field, Form } from 'formik';\nimport usePricing from '../../hooks/pricing';\nimport ReactSelectWitness from '../react-select-witness/ReactSelectWitness';\nimport CustomTextArea from '../input/CustomTextArea';\nimport { DiscountCouponSchema, ProgramCouponSchema } from '../../schemas/coupon/coupon';\nimport { useCoachPersonalInfo } from '../../hooks';\nimport CustomCheckSingle from '../input/CustomCheckSingle';\nimport { DayWrapper } from '../add-group-modal.jsx/components';\nimport ProgressLineOrganization from '../progress-line/ProgressLineOrganization';\nimport { OrganizationContext } from '../../services/organizationContext';\nimport { useDebounce } from '../../services/utils';\nimport Loader from '../loader/Loader';\nimport LENGTH_OPTIONS from '../../constants/programLengthOptions'\nimport { useUtils } from '../../hooks';\n\nconst weekDays = ['MON', 'TUE', 'WED', 'THUR', 'FRI', 'SAT', 'SUN'];\n\nconst ProgramCodeModal = ({ content, closeModal }) => {\n const isDiscount = content?.type === 'discountCode';\n const isProgram = content?.type === 'programCode';\n const { isOrganization } = useContext(OrganizationContext);\n\n const { programLengthValueToOption } = useUtils()\n\n const customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: 'Calc(100% - 40px)',\n maxWidth: isOrganization ? '1024px' : '520px',\n minWidth: '320px',\n height: 'fit-content',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n };\n\n const [ttUids, setTTUids] = useState([]);\n const [searchName, setSearchName] = useState('');\n const delayedSearchName = useDebounce(searchName, 500);\n\n const { currentCoach, currentOrganization, orgCoaches, loadingOrgCoaches } = useCoachPersonalInfo(\n {\n setLoading: null,\n setOpenModal: null,\n orgCoachesFilters: { ttUids, fullName: delayedSearchName },\n },\n );\n\n const { createAdminCode } = usePricing();\n const title = useMemo(\n () => `${content?.uid ? 'MODIFY' : 'NEW'} ${isDiscount ? 'DISCOUNT' : 'PROGRAM'} CODE `,\n [content, isDiscount],\n );\n\n const specList = useMemo(() => {\n const userSpecialities = isOrganization\n ? currentOrganization?.specialities\n : currentCoach?.specialities;\n if (userSpecialities) {\n const withSpecs = userSpecialities?.reduce((acc, sp) => {\n if (sp?.name === 'Strength' || sp?.name === 'Running') {\n acc.push({ value: sp?.id, label: sp?.name, trainingTypes: sp?.trainingTypes });\n }\n return acc;\n }, []);\n const specials = [].concat(\n ...userSpecialities?.map(\n (spec) =>\n (spec?.name !== 'Strength' && spec?.name !== 'Running' && spec?.trainingTypes) || [],\n ),\n );\n return [\n ...withSpecs,\n {\n value: 'non-strength-or-running-spec',\n label: 'Special',\n trainingTypes: specials,\n },\n ];\n }\n\n return [];\n }, [currentCoach, currentOrganization, isOrganization]);\n\n const sp = useMemo(() => {\n if (!content?.trainingTypes?.[0]?.speciality) {\n return;\n }\n\n if (\n content?.trainingTypes?.[0]?.speciality.name !== 'Strength' &&\n content?.trainingTypes?.[0]?.speciality.name !== 'Running'\n ) {\n return specList[2];\n }\n\n return specList.find((s) => {\n return s.value === content?.trainingTypes?.[0]?.speciality?.id;\n });\n }, [specList, content]);\n\n const tt = useMemo(() => {\n const res = sp?.trainingTypes\n ?.filter((tt) => content?.trainingTypes?.find((xx) => xx.id === tt.id))\n .map((tt) => ({ value: tt.id, label: tt.name }));\n return res;\n }, [sp, content]);\n\n useEffect(() => setTTUids(tt?.map((t) => t?.value)), [tt?.length]);\n\n return (\n \n \n \n {title}\n X\n \n \n [coach?.uid, true]))\n : {},\n }}\n onSubmit={(...args) => {\n createAdminCode(...args);\n closeModal();\n }}\n validationSchema={isDiscount ? DiscountCouponSchema : ProgramCouponSchema}\n >\n {({ setFieldValue, errors, touched, isSubmitting, values, validateForm }) => (\n
\n \n \n \n \n \n {({ field }) => (\n \n Name\n setFieldValue(field.name, val)}\n error={touched[field.name] && !!errors[field.name]}\n placeholder=\"Program Code Name\"\n errorIcon={false}\n />\n \n )}\n \n {isDiscount && (\n \n \n {({ field }) => (\n \n Discount Type\n setFieldValue(field.name, val)}\n error={touched[field.name] && !!errors[field.name]}\n />\n \n )}\n \n \n {({ field }) => (\n \n Amount\n setFieldValue(field.name, field.value - 1)}\n onIncriment={() => setFieldValue(field.name, field.value + 1)}\n value={field.value}\n onChange={(val) => setFieldValue(field.name, val)}\n error={touched[field.name] && !!errors[field.name]}\n />\n \n )}\n \n \n )}\n \n {({ field }) => (\n \n Usage Limit\n setFieldValue(field.name, val)}\n error={touched[field.name] && !!errors[field.name]}\n errorIcon={false}\n />\n \n )}\n \n {isProgram && (\n \n {({ field }) => (\n \n Training Type\n {\n if (v?.value !== field?.value?.value) {\n setTTUids([]);\n if (values?.trainingTypes?.length) {\n setFieldValue('coaches', {});\n }\n setFieldValue('trainingTypes', []);\n }\n setFieldValue(field?.name, v);\n }}\n backspaceRemovesValue={false}\n />\n \n )}\n \n )}\n \n \n \n {({ field }) => (\n \n Expiration Date\n setFieldValue(field.name, val)}\n error={touched[field.name] && !!errors[field.name]}\n placeholder={'dd-mm-yyyy'}\n errorIcon={false}\n />\n \n )}\n \n {isProgram && (\n \n {({ field }) => (\n \n Price per month\n setFieldValue(field.name, val)}\n error={touched[field.name] && !!errors[field.name]}\n placeholder=\"Price per month\"\n errorIcon={false}\n />\n \n )}\n \n )}\n {isDiscount && (\n \n {({ field }) => (\n \n Description\n setFieldValue(field.name, val)}\n errorBorder\n />\n \n )}\n \n )}\n {isProgram && (\n \n {({ field }) => (\n \n \n Training Subtypes\n ({\n value: a?.id,\n label: a?.name,\n }))}\n placeholder=\"- Choose training types -\"\n isMulti={values?.speciality?.label === 'Strength'}\n value={field?.value}\n onChange={(v) => {\n if (values?.speciality?.label !== 'Strength') {\n setFieldValue('coaches', {});\n setFieldValue(field?.name, [v]);\n setTTUids([v?.value]);\n } else if (!v || v?.length <= 3) {\n setFieldValue('coaches', {});\n setFieldValue(field?.name, v);\n setTTUids(v?.map((x) => x?.value));\n }\n }}\n onDeleteOne={(v) => {\n setFieldValue(\n field.name,\n field?.value?.filter((x) => x?.value !== v),\n );\n }}\n backspaceRemovesValue={false}\n />\n \n \n )}\n \n )}\n \n \n {isProgram && (\n <>\n
\n \n {({ field }) => (\n \n Program Length\n {\n await setFieldValue(field.name, v?.value);\n await setFieldValue('startDate', null);\n await setFieldValue('endDate', null);\n validateForm();\n }}\n dropDownMaxHeight='25vh'\n />\n \n )}\n \n
\n \n {({ field }) => (\n \n Training Days\n \n {weekDays.map((day) => {\n return (\n -1}\n error={touched[field.name] && !!errors[field.name]}\n onClick={() => {\n const currentValue = [...field.value];\n const index = currentValue.indexOf(day);\n if (index > -1) {\n currentValue.splice(index, 1);\n } else {\n currentValue.push(day);\n }\n setFieldValue(`daysOfTraining`, currentValue);\n }}\n >\n {day}\n \n );\n })}\n \n \n )}\n \n \n )}\n {isOrganization && (\n \n {({ field }) => (\n \n Amount of % Coach receive\n setFieldValue(field.name, v)}\n />\n \n )}\n \n )}\n \n {isOrganization && (\n \n setSearchName(val)}\n placeholder=\"Search and select coaches...\"\n errorIcon={false}\n />\n \n \n {({ field }) => (\n \n {\n setFieldValue(field?.name, !field?.value);\n orgCoaches?.getOrgCoaches &&\n orgCoaches.getOrgCoaches.map((coach) =>\n setFieldValue(`coaches.${coach.uid}`, !field?.value),\n );\n }}\n />\n Select All\n \n )}\n \n {loadingOrgCoaches ? (\n \n ) : (\n orgCoaches?.getOrgCoaches &&\n orgCoaches.getOrgCoaches.map((coach) => (\n \n {({ field }) => (\n setFieldValue(field?.name, !field?.value)}>\n \n \n \n \n \n {coach.fullName}\n \n \n )}\n \n ))\n )}\n \n \n )}\n
\n \n \n \n {STRINGS.close}\n \n \n \n \n {content?.id ? 'Save Changes' : 'Create Program Code'}\n \n \n \n \n )}\n \n
\n
\n \n );\n};\n\nexport default ProgramCodeModal;\n","import React from 'react';\nimport styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const PricingTableWrapper = styled.div`\n padding: ${({ isMobile }) => (isMobile ? 0 : '0 3.2rem')};\n width: 100%;\n`;\nexport const PricingTable = styled.table`\n width: 100%;\n padding: 0.4rem 3.2rem;\n background: #fafafa;\n border-radius: 8px;\n border-collapse: separate;\n border-spacing: 0 4px;\n font-size: 1.4rem;\n line-height: 2.1rem;\n`;\n\nexport const PricingTableHeadTR = styled.tr`\n width: 100%;\n font-family: Roboto-r;\n color: #373333;\n`;\nexport const PricingTableTR = styled.tr`\n width: 100%;\n border-radius: 8px;\n border: 1px solid red;\n color: #373333;\n cursor: pointer;\n &:hover {\n box-shadow: 0px 0px 4px 0.4px rgba(0, 0, 0, 0.05);\n color: #050000;\n & .copy {\n background-image: url(${ICONS.CopyActive});\n &:active {\n background-image: url(${ICONS.Copy});\n }\n }\n & .edit {\n background-image: url(${ICONS.EditStroke});\n }\n & .del {\n background-image: url(${ICONS.DeleteStroke});\n }\n }\n`;\n\nexport const PricingTableTh = styled.th`\n padding: 2rem 1.6rem;\n color: #4a4a4aaa;\n font-family: Roboto-l;\n text-align: left;\n align-items: flex-start;\n & div {\n font-size: 1.2rem;\n color: #4a4a4aaa;\n font-family: Roboto-l;\n }\n`;\n\nexport const PricingTableTd = styled.td`\n padding: 2rem 1.6rem;\n min-width: ${({ width }) => (width ? width : 'fit-content')};\n background: #ffffff;\n text-align: ${({ center }) => (center ? 'center' : 'left')};\n color: inherit;\n &:first-child {\n border-radius: 8px 0 0 8px;\n }\n &:last-child {\n border-radius: 0 8px 8px 0;\n }\n`;\n\nexport const PricingTableTdCopy = styled.span`\n padding: 1.6rem;\n background-image: url(${ICONS.Copy});\n background-repeat: no-repeat;\n background-size: 50%;\n background-position: center;\n`;\n\nexport const PricingTableTdAction = styled.span`\n padding: 1.6rem;\n\n &.edit {\n background-image: url(${ICONS.EditGrey});\n &:hover {\n background-image: url(${ICONS.EditFill});\n }\n &:active {\n background-image: url(${ICONS.EditStroke});\n }\n }\n &.del {\n background-image: url(${ICONS.DeleteGrey});\n &:hover {\n background-image: url(${ICONS.DeleteFill});\n }\n &:active {\n background-image: url(${ICONS.DeleteStroke});\n }\n }\n background-repeat: no-repeat;\n background-size: 100%;\n background-position: center;\n margin-right: 1rem;\n &:last-child {\n margin: 0;\n }\n`;\n\nexport const SortSpecification = styled.span`\n padding: 0.5rem;\n background-image: ${({ asc, desc }) =>\n asc ? `url(${ICONS.SortAsc})` : desc ? `url(${ICONS.SortDesc})` : `url(${ICONS.SortNone})`};\n background-repeat: no-repeat;\n background-size: 100%;\n background-position: center;\n margin: 0 0 0 1rem;\n cursor: pointer;\n display: none;\n`;\n\nexport const MobileList = styled.div`\n width: 100%;\n background-color: #fbfbfb;\n display: flex;\n flex-direction: column;\n padding-top: 28px;\n border-top: 1px solid #0000001a;\n`;\n\nexport const ListItemContainer = styled.div`\n height: 93px;\n margin: 4px 20px;\n border-radius: 8px;\n border: solid 0.5px rgba(0, 0, 0, 0.15);\n background-color: #ffffff;\n display: flex;\n`;\n\nexport const ItemValue = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid #0000001a;\n width: 30%;\n`;\n\nexport const ValueText = styled.span`\n font-family: Roboto-r;\n font-size: 18px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.33;\n letter-spacing: 0.4px;\n text-align: center;\n color: #15df68;\n margin: 0 16px 0 18px;\n`;\n\nexport const ItemDetails = styled.div`\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n justify-content: center;\n padding: 0 15px 0 20px;\n`;\n\nexport const ItemCode = styled.span`\n font-family: Gotham-r;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.5;\n letter-spacing: 1px;\n text-align: left;\n color: #4a4a4a;\n`;\n\nexport const ItemTypes = styled.div`\n display: flex;\n margin-top: ${({ mt }) => (mt ? mt : '4px')};\n margin-bottom: ${({ mb }) => (mb ? mb : '0')};\n`;\n\nexport const TrainingType = styled.div`\n padding: 0 11px;\n border-radius: 12px;\n border: solid 0.5px rgba(150, 148, 148, 0.4);\n background-color: rgba(197, 196, 196, 0.15);\n height: fit-content;\n font-family: Roboto-r;\n font-size: 14px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: 0.4px;\n text-align: left;\n line-height: 1.71;\n color: #050000;\n`;\n\nexport const ArrowRightIcon = styled.span`\n background-image: url(${ICONS.ArrowRight});\n background-repeat: no-repeat;\n background-size: 100%;\n background-position: center;\n width: 20px;\n height: 20px;\n`;\n\nexport const ItemHeader = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nexport const ModalHeader = styled.div`\n padding: 18px 16px 17.5px 26px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid #0000001a;\n`;\n\nexport const HeaderTitle = styled.span`\n font-family: Space-r;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: 0.89px;\n text-align: left;\n color: #050000;\n`;\n\nexport const CloseIcon = styled.div`\n width: 28px;\n height: 28px;\n background-image: url(${ICONS.Close});\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n display: inline-block;\n`;\n\nexport const ModalBody = styled.div`\n display: flex;\n flex-direction: column;\n padding: 24px 22px 32px 22px;\n`;\n\nexport const ModalCode = styled.span`\n font-family: Gotham-r;\n font-size: 16px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n letter-spacing: 1px;\n text-align: left;\n color: #4a4a4a;\n`;\n\nexport const InfoContainer = styled.div`\n display: flex;\n width: 100%;\n`;\n\nexport const InfoTitle = styled.span`\n width: 50%;\n font-family: Roboto-r;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.85;\n letter-spacing: 0.4px;\n text-align: left;\n color: #05000099;\n`;\n\nexport const InfoValue = styled.span`\n width: 50%;\n font-family: Roboto-r;\n font-size: 13px;\n font-weight: normal;\n font-stretch: normal;\n font-style: normal;\n line-height: 1.85;\n letter-spacing: 0.4px;\n text-align: left;\n color: #050000;\n`;\n\nexport const Info = ({ title, value }) => (\n \n {title}\n {value}\n \n);\n","import React, { useCallback } from 'react';\nimport {\n ListItemContainer,\n ItemValue,\n ValueText,\n ItemDetails,\n ItemCode,\n ItemTypes,\n TrainingType,\n ArrowRightIcon,\n ItemHeader,\n} from './components';\n\nconst MobileDetailCouponItem = ({ item, openCouponModal }) => {\n const handleOpen = useCallback(() => {\n openCouponModal(item);\n }, [item, openCouponModal]);\n\n return (\n \n \n {item.discountType ? (\n \n -{item.amount}\n {item.discountType === 'PERCENTAGE' ? '%' : '₪'}\n \n ) : (\n {item.monthlySum ? item.monthlySum + '₪' : '0'}\n )}\n \n \n \n \n #{('000' + Math.floor(item?.code?.digits / 1000)).slice(-3)}-\n {('000' + (item?.code?.digits % 1000)).slice(-3)}\n \n \n \n \n {Array.isArray(item.trainingTypes) ? (\n item.trainingTypes.map((tt) => {tt.name})\n ) : (\n {item.title}\n )}\n \n \n \n );\n};\n\nexport default MobileDetailCouponItem;\n","import moment from 'moment';\nimport React from 'react';\nimport Modal from 'react-modal';\nimport {\n ModalHeader,\n HeaderTitle,\n CloseIcon,\n ModalBody,\n ModalCode,\n ItemTypes,\n TrainingType,\n Info,\n} from './components';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '1111',\n },\n content: {\n zIndex: '11111',\n width: 'Calc(100% - 40px)',\n maxWidth: '520px',\n minWidth: '320px',\n height: 'fit-content',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n },\n};\n\nconst MobileCouponDetailsModal = ({ item, closeModal, isDetails }) => {\n if (!item) {\n return null;\n }\n console.log('item', item);\n\n return (\n \n \n COUPON INFO\n \n \n \n \n #{('000' + Math.floor(item?.code?.digits / 1000)).slice(-3)}-\n {('000' + (item?.code?.digits % 1000)).slice(-3)}\n \n \n {Array.isArray(item.trainingTypes) ? (\n item.trainingTypes.map((tt) => {tt.name})\n ) : (\n {item.title}\n )}\n \n\n \n\n {isDetails ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n \n \n );\n};\n\nexport default MobileCouponDetailsModal;\n","import React, { useContext, useState, useCallback } from 'react';\nimport moment from 'moment';\nimport {\n PricingTableWrapper,\n PricingTable,\n PricingTableHeadTR,\n PricingTableTR,\n PricingTableTh,\n PricingTableTd,\n PricingTableTdCopy,\n PricingTableTdAction,\n SortSpecification,\n MobileList,\n} from './components';\nimport EmptyTemplate from '../empty-template/EmptyTemplate';\nimport IMAGES from '../../constants/images';\nimport MobileDetailCouponItem from './MobileDetailCouponItem';\nimport { MobileContext } from '../../services/MobileContext';\nimport MobileCouponDetailsModal from './MobileCouponDetailsModal';\n\nconst CouponTable = ({ setEdditingCode, coupons = [], deleteCoupon }) => {\n const copyCodeToClipboard = (id) => {\n const el = document.getElementById(id);\n el.select();\n document.execCommand('copy');\n };\n\n const { isMobile } = useContext(MobileContext);\n\n const [coupon, setCoupon] = useState(null);\n const closeCouponModal = useCallback(() => setCoupon(null), []);\n\n return (\n \n {isMobile ? (\n \n {coupons?.map((code) => (\n \n ))}\n\n \n \n ) : coupons?.length ? (\n \n \n \n Coupon Code \n \n \n Name \n \n \n Expiration Date
(DD/MM/YYY)
\n
\n \n Description \n \n \n Discount Type \n \n \n Amount \n \n \n Usage \n \n Actions\n
\n {coupons?.map((code) => (\n \n \n {`#${code?.code?.digits}`}\n \n copyCodeToClipboard(`to_copy_${code?.code?.digits}`)}\n />\n \n {code?.title}\n {moment(code?.validUntil).format('DD/MM/YYYY')}\n {code?.description}\n {code?.discountType === 'AMOUNT' ? '₪' : '%'}\n {code?.amount}\n {`${code?.usage}/${code?.available}`}\n \n setEdditingCode({ ...code, type: 'discountCode' })}\n />\n {!code?.usage && (\n deleteCoupon(code?.uid)} />\n )}\n \n \n ))}\n
\n ) : (\n \n )}\n
\n );\n};\n\nexport default CouponTable;\n","import React, { useCallback, useContext, useState } from 'react';\nimport moment from 'moment';\nimport { useMutation } from '@apollo/react-hooks';\nimport { deleteProgramDetailCoupon, getProgramDetailsCouponsQuery } from '@witness/graphql';\nimport {\n PricingTableWrapper,\n PricingTable,\n PricingTableHeadTR,\n PricingTableTR,\n PricingTableTh,\n PricingTableTd,\n PricingTableTdCopy,\n PricingTableTdAction,\n MobileList,\n} from './components';\nimport EmptyTemplate from '../empty-template/EmptyTemplate';\nimport IMAGES from '../../constants/images';\nimport Loader from '../loader/Loader';\nimport AlertModal from '../alert-modal/AlertModalGeneral';\nimport { MobileContext } from '../../services/MobileContext';\nimport MobileDetailCouponItem from './MobileDetailCouponItem';\nimport MobileCouponDetailsModal from './MobileCouponDetailsModal';\n\nconst DetailCouponTable = ({ setEdditingCode, coupons = [], loading }) => {\n const [deleteUid, setDeleteUid] = useState(false);\n const copyCodeToClipboard = useCallback((id) => {\n const el = document.getElementById(id);\n el.select();\n document.execCommand('copy');\n }, []);\n\n const [deleteProgramDetail] = useMutation(deleteProgramDetailCoupon, {\n refetchQueries: [{ query: getProgramDetailsCouponsQuery }],\n });\n\n const handleDelete = useCallback(\n (uid) => {\n deleteProgramDetail({\n variables: {\n uid,\n },\n });\n setDeleteUid('');\n },\n [deleteProgramDetail],\n );\n\n const { isMobile } = useContext(MobileContext);\n const [coupon, setCoupon] = useState(null);\n const closeCouponModal = useCallback(() => setCoupon(null), []);\n\n return (\n \n {isMobile ? (\n \n {coupons?.map((code) => (\n \n ))}\n\n \n \n ) : coupons?.length ? (\n \n \n Coupon Code\n Name\n \n Expiration Date
(DD/MM/YYY)
{' '}\n
\n Usage\n Monthly Price\n Training Types\n Program Length\n Training Days\n Actions\n
\n {coupons?.map((code) => (\n \n \n {`#${code?.code?.digits}`}\n \n copyCodeToClipboard(`to_copy_${code?.code?.digits}`)}\n />\n \n {code?.name}\n \n {code?.validUntil ? moment(code?.validUntil).format('DD/MM/YYYY') : 'N/A'}\n \n {`${code?.usage || 0}/${code?.available || 0}`}\n {code?.monthlySum}\n \n {code?.trainingTypes?.map((item) => item.name).join(', ')}\n \n {code?.programLength} days\n {code?.daysOfTraining.join(', ')}\n \n setEdditingCode({ ...code, type: 'programCode' })}\n />\n {!code?.usage && (\n setDeleteUid(code?.uid)} />\n )}\n \n \n ))}\n
\n ) : loading ? (\n \n \n \n ) : (\n \n )}\n\n setDeleteUid('')}\n okText=\"Yes, delete it\"\n noText=\"Don't delete it\"\n handleOk={() => handleDelete(deleteUid)}\n />\n
\n );\n};\n\nexport default DetailCouponTable;\n","import React, { useContext, useMemo, useState } from 'react';\nimport { Formik, Field, Form } from 'formik';\nimport { useQuery } from '@apollo/react-hooks';\nimport { getProgramDetailsCouponsQuery } from '@witness/graphql';\nimport { useHistory } from 'react-router-dom';\n\nimport AdvancedPriceModal from '../../components/advanced-price-modal/AdvancedPriceModal';\nimport ProgramCodeModal from '../../components/program-code-modal/ProgramCodeModal';\nimport CouponTable from '../../components/coupon-table/CouponTable';\nimport CustomTooltip from '../../components/tooltip/CustomTooltip';\nimport CustomInput from '../../components/input/CustomInput';\nimport CustomButton from '../../components/button/CustomButton'\n\nimport IMAGES from '../../constants/images';\nimport { useCoachPersonalInfo, usePricing, useOrganisation } from '../../hooks';\nimport {\n PricingWrapper,\n PricingHeader,\n PricingHeaderItem,\n ProfileCode,\n ProfileCodeValue,\n ProfileIdInfo,\n FlexWrapperSpaceBet,\n AddCouponButton,\n AddCouponButtonPlus,\n PricingListHeading,\n PricingListWrapper,\n ChangesSaved,\n ChangesSavedIcon,\n ProgramsWrapper,\n SingleProgramWrapper,\n ProgramImage,\n ProgramName,\n PriceHeading,\n PriceInputWrapper,\n AdvencedOptions,\n ProgramImageLines,\n ProgramImageFade,\n PseudoSingleProgram,\n LoadingDot,\n AddCouponButtonMobileText,\n CoachFeeWrapper,\n CoachFeeInput\n} from './components';\nimport DetailCouponTable from '../../components/coupon-table/DetailCouponTable';\nimport { MobileContext } from '../../services/MobileContext';\nimport Fixedheader from '../../components/header/FixedHeader';\nimport URLS from '../../constants/urls';\nimport { OrganizationContext } from '../../services/organizationContext';\nimport { CoachFeeSchema } from '../../schemas/program/coachProgram'\n\nconst CoachProfilePricing = ({ activeTab, setActiveTab }) => {\n const [activeCode, setActiveCode] = useState(null);\n const [activeProgram, setActiveProgram] = useState(null);\n const [priceLoading, setPriceLoading] = useState(false);\n const [organisationLoading, setOrganisationLoading] = useState(false);\n\n const { programPrices, addProgramPricing, defaultPrices, deleteCoupon } = usePricing({\n setLoading: setPriceLoading,\n });\n\n const { setCoachFee } = useOrganisation({\n setLoading: setOrganisationLoading\n });\n\n const { currentCoach, currentOrganization } = useCoachPersonalInfo({});\n const { isOrganization } = useContext(OrganizationContext);\n\n const currentUser = useMemo(() => (isOrganization ? currentOrganization : currentCoach), [\n currentOrganization,\n currentCoach,\n isOrganization,\n ]);\n\n const loading = useMemo(() => priceLoading || organisationLoading, [\n priceLoading,\n organisationLoading\n ]);\n\n const { data, loading: detailsCouponsLoading } = useQuery(getProgramDetailsCouponsQuery);\n\n const { isMobile } = useContext(MobileContext);\n\n const history = useHistory();\n\n const PricingList = useMemo(\n () => (\n <>\n \n My Profile Code:\n \n #\n {(currentUser?.code?.digits &&\n `${('000' + Math.floor(currentUser?.code?.digits / 1000)).slice(-3)}-${(\n '000' +\n (currentUser?.code?.digits % 1000)\n ).slice(-3)}`) ||\n '--- ---'}\n \n \n i\n \n This is Your Profile Code. You can send it to Your potential Trainers to help them\n to find you in the system\n \n \n \n \n setActiveProgram(null)}\n submitModal={addProgramPricing}\n />\n \n Here you can assign Prices of all your Programs\n \n \n {loading ? (\n <>\n \n \n \n \n ) : (\n 'Data Saved'\n )}\n \n \n \n { isOrganization && setCoachFee(currentOrganization.uid, coachFee) }\n >\n {({ setFieldValue, errors, touched, submitForm }) => (\n
\n \n {({ field }) => (\n \n \n Coach fee\n { console.log(field.value) }\n setFieldValue(field.name, v && (!isNaN(Number(v)) && Number(v) ? Math.min(Number(v), 100) : field.value)) } \n />\n \n \n Save\n \n \n )}\n \n
\n )}\n }\n \n {programPrices?.map((program) => {\n return (\n \n \n \n \n \n {program?.speciality?.name}\n \n\n Program Price Per Month\n \n {({ setFieldValue, errors, touched, isSubmitting, values, submitForm }) => (\n
\n \n {({ field }) => (\n \n setFieldValue(field.name, v ? Number(v) : null)}\n value={field.value}\n onBlur={submitForm}\n />\n \n )}\n \n
\n )}\n \n setActiveProgram(program)}>\n Advanced Options\n \n
\n );\n })}\n \n \n
\n \n ),\n [activeProgram, addProgramPricing, defaultPrices, loading, programPrices],\n );\n\n const DiscoutCodes = useMemo(\n () => (\n <>\n \n \n My Profile Code:\n \n #\n {(currentUser?.code?.digits &&\n `${('000' + Math.floor(currentUser?.code?.digits / 1000)).slice(-3)}-${(\n '000' +\n (currentUser?.code?.digits % 1000)\n ).slice(-3)}`) ||\n '--- ---'}\n \n \n i\n \n This is Your Profile Code. You can send it to Your potential Trainers to help them\n to find you in the system\n \n \n \n {!isMobile && (\n setActiveCode({ type: 'discountCode' })}\n isMobile={isMobile}\n >\n {isMobile ? (\n Add Coupon\n ) : (\n <>\n Add Coupon\n \n )}\n \n )}\n \n \n \n ),\n [deleteCoupon, isMobile, currentUser],\n );\n\n const ProgramCodes = useMemo(\n () => (\n <>\n \n \n My Profile Code:\n \n #\n {(currentUser?.code?.digits &&\n `${('000' + Math.floor(currentUser?.code?.digits / 1000)).slice(-3)}-${(\n '000' +\n (currentUser?.code?.digits % 1000)\n ).slice(-3)}`) ||\n '--- ---'}\n \n \n i\n \n This is Your Profile Code. You can send it to Your potential Trainers to help them\n to find you in the system\n \n \n \n {!isMobile && (\n setActiveCode({ type: 'programCode' })}\n isMobile={isMobile}\n >\n {isMobile ? (\n Add Coupon\n ) : (\n <>\n Add Coupon\n \n )}\n \n )}\n \n \n \n ),\n [currentUser, data, detailsCouponsLoading, isMobile],\n );\n\n return (\n \n {isMobile && (\n history.push(URLS.home)} />\n )}\n setActiveCode(null)} />\n \n {!isMobile && (\n setActiveTab(0)}\n >\n Pricing List\n \n )}\n setActiveTab(1)}\n isMobile={isMobile}\n >\n Discount Codes\n \n setActiveTab(2)}\n isMobile={isMobile}\n >\n Program Codes\n \n \n {(activeTab === '0' || (!activeTab && !isMobile)) && PricingList}\n {(activeTab === '1' || (!activeTab && isMobile)) && DiscoutCodes}\n {activeTab === '2' && ProgramCodes}\n \n );\n};\n\nexport default CoachProfilePricing;\n","import React, { useState } from 'react';\nimport { Formik, Field, Form } from 'formik';\nimport Select from 'react-select';\n\nimport {\n BorderLabel,\n SettingsWrapper,\n LabeledInfoBlock,\n SettingsInfoBlock,\n SettingsInputLabel,\n LanguageWrapper,\n LanguageLabel,\n TraineesWrapper,\n SettingUnits,\n UnitBlock,\n UnitContainer,\n} from './components';\nimport CustomInputNumber from '../../components/input/CustomInputNumber';\nimport CustomButton from '../../components/button/CustomButton';\nimport { MultiValueDeleteX } from '../../components/react-select-witness/components';\n\nconst options = [\n { value: 'english', label: 'English' },\n { value: 'hebrew', label: 'Hebrew' },\n { value: 'georgian', label: 'Georgian' },\n];\nconst customStyles = ({ error }) => ({\n control: (provided) => ({\n ...provided,\n width: '38rem',\n height: '4.8rem',\n borderRadius: '8px',\n boxShadow: 'none',\n marginRight: '2.4rem',\n borderColor: error ? '#F50A4F' : '#05000033',\n '&:hover': {\n borderColor: error ? '#F50A4F' : '#05000033',\n },\n }),\n clearIndicator: () => ({\n display: 'none',\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n opacity: 0.4,\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n multiValue: () => ({\n display: 'none',\n }),\n option: (provided, state) => ({\n ...provided,\n background: state.isSelected ? 'rgba(0,255,145,0.4)' : 'white',\n cursor: 'pointer',\n '&:hover': {\n background: state.isSelected ? 'rgba(0,255,145,0.4)' : 'rgba(0,255,145,0.1)',\n },\n }),\n});\nconst CoachProfileSettings = () => {\n return (\n \n {({ setFieldValue, errors, validateForm, touched, values, setTouched }) => (\n
\n \n \n Preferences\n \n Choose Language\n \n \n {({ field }) => (\n <>\n setFieldValue(field?.name, v)}\n backspaceRemovesValue={false}\n />\n {field?.value?.map((a) => (\n \n \n setFieldValue(\n field?.name,\n field?.value?.filter((x) => x?.value !== a?.value),\n )\n }\n />\n {a?.label}\n \n ))}\n \n )}\n \n \n Choose maximum amount of trainees:\n \n {({ field }) => (\n \n setFieldValue(field?.name, v)}\n onDecrement={() =>\n setFieldValue(field?.name, Math.max(0, field?.value - 1))\n }\n onIncriment={() =>\n setFieldValue(field?.name, Math.min(99, field?.value + 1))\n }\n />\n \n )}\n \n \n \n \n Settings\n \n Choose unit\n \n \n {({ field }) => (\n \n setFieldValue(field?.name, 'kg')}\n >\n kg\n \n setFieldValue(field?.name, 'lbs')}\n >\n lbs\n \n \n )}\n \n \n {({ field }) => (\n \n setFieldValue(field?.name, 'cm')}\n >\n cm\n \n setFieldValue(field?.name, 'inches')}\n >\n inches\n \n \n )}\n \n \n \n \n \n \n \n Save Changes\n \n \n \n \n
\n )}\n \n );\n};\n\nexport default CoachProfileSettings;\n","import React, { useContext, useMemo } from 'react';\nimport ICONS from '../../constants/icons';\nimport CoachProfilePersonal from './CoachProfilePersonal';\n\nimport qs from 'qs';\nimport {\n ProfileContainer,\n ProfileNavigation,\n ProfileNavHeading,\n ProfileNavLink,\n TermsAndPrivacy,\n Pusher,\n StyledLink,\n} from './components';\nimport CoachProfilePricing from './CoachProfilePricing';\nimport CoachProfileSettings from './CoachProfileSettings';\nimport { useHistory } from 'react-router-dom';\nimport { MobileContext } from '../../services/MobileContext';\n\nconst CoachProfile = () => {\n const history = useHistory();\n const [active, subActive] = useMemo(() => {\n const destructed = qs.parse(history?.location?.search, { ignoreQueryPrefix: true });\n return [destructed?.tab, destructed?.sub_tab];\n }, [history.location]);\n\n const { isMobile } = useContext(MobileContext);\n\n return (\n \n {!isMobile && (\n \n YOUR PROFILE\n history?.push('profile?tab=0')}\n >\n Personal & Professional info\n \n history?.push('profile?tab=1')}\n >\n Pricing & Coupons\n \n {/* history?.push('profile?tab=2')}\n >\n Billing Options\n \n history?.push('profile?tab=3')}\n >\n Preferences & Settings\n */}\n \n \n \n Terms & Conditions\n \n \n Privacy Policy\n \n \n \n )}\n {!active || active === '0' ? (\n \n ) : active === '1' ? (\n history?.push(`profile?tab=1&sub_tab=${i}`)}\n />\n ) : active === '3' ? (\n \n ) : (\n <>\n )}\n \n );\n};\nexport default CoachProfile;\n","import React, { useContext } from 'react';\nimport moment from 'moment';\n\nimport {\n CardContainer,\n CardHeader,\n CardHeaderIconCell,\n StatusCircle,\n HeaderProfileCell,\n ProfilePic,\n MessengerIcon,\n MessengerIconImg,\n CardBody,\n CardName,\n CardFooter,\n FooterLine,\n ButtonWrapper,\n CardInfo,\n CardInfoText,\n CardInfoRow,\n TraineeRow,\n TraineeTD,\n TraineeRowProfilePic,\n FlexTDContent,\n HoverIndicator,\n DeleteEditOrgGroup,\n ButtonsWrapper,\n ViewIcon,\n ViewIconImg,\n TrashIcon,\n TrashIconImg,\n MobileCardWrapper,\n MobileProfilePic,\n MobileCardBody,\n MobileCardInfoText,\n} from './components';\nimport CustomButton from '../button/CustomButton';\nimport { useHistory } from 'react-router-dom';\nimport { useMemo } from 'react';\nimport { CoachProgramStatusUI, CoachProgramStatus } from '../../constants/enums';\nimport ChatContext from '../../services/ChatContext';\nimport { OrganizationContext } from '../../services/organizationContext';\nimport { MobileContext } from '../../services/MobileContext';\n\nconst TraineeCard = ({\n isGroup,\n program,\n layout = 'list',\n handleEdit = () => {},\n handleDelete = () => {},\n handleCancel = () => {},\n}) => {\n const history = useHistory();\n const { isOrganization } = useContext(OrganizationContext);\n\n const { isMobile } = useContext(MobileContext);\n\n const [endDate, programMonths] = useMemo(() => {\n if (!program) return 'N/A';\n\n return [\n moment(program.coachProgram?.beginningDate)\n .add(program.programLength, 'days')\n .add(-1, 'days')\n .format('DD/MM/YYYY'),\n program.programLength / 30,\n ];\n }, [program]);\n\n const couponCode = useMemo(() => {\n if (!program?.code?.digits) return 'N/A';\n return program?.code?.digits;\n }, [program]);\n\n const cancelDisabled = useMemo(() => {\n return program?.coachProgram?.status === CoachProgramStatus.DECLINED || program?.coachProgram?.status === CoachProgramStatus.ENDED\n }, [program])\n\n const { conversations, setCurrentConversation } = useContext(ChatContext);\n\n const { conversation, hasUnread } = useMemo(() => {\n const groupId = isGroup ? program.uid : program.trainee?.user?.uid;\n const conversation = conversations[groupId];\n\n return {\n conversation,\n hasUnread: !!(conversation && conversation.unreadMessageCount\n ? conversation.unreadMessageCount\n : 0),\n };\n }, [conversations, isGroup, program]);\n return (\n <>\n {isMobile ? (\n \n \n {!program?.trainee?.avatar?.url &&\n program?.trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')}\n \n \n \n {program?.trainee?.fullName}\n \n \n {program?.trainingTypes?.map((a) => a?.name)?.join(', ') ||\n program?.trainingType?.name}\n \n {endDate}\n \n \n \n ) : layout === 'LIST' ? (\n \n \n \n \n \n {!program?.trainee?.avatar?.url &&\n program?.trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')}\n \n {program?.trainee?.fullName}\n \n \n \n \n \n {CoachProgramStatusUI[program?.coachProgram?.status]}\n \n \n \n {program?.trainingTypes?.map((a) => a?.name)?.join(', ') || program?.trainingType?.name}\n \n {isGroup && (\n {`${\n program?.coachProgram?.participants?.length || '0'\n }/${program?.participants}`}\n )}\n {!isGroup && (\n {`${programMonths} Month${programMonths > 1 ? 's' : ''}`}\n )}\n {endDate}\n {isOrganization && (\n \n \n \n \n {!program?.coach?.profileImage?.url &&\n program?.coach?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')}\n \n {program?.coach?.fullName}\n \n \n )}\n {couponCode}\n {(isGroup || !isOrganization) && (\n \n \n {isOrganization ? (\n <>\n {program?.coachProgram?.status === 'APPROVED' && (\n \n )}\n \n \n ) : (\n {\n setCurrentConversation(conversation);\n history.push(\n `/program/${program?.uid}${\n (isGroup && '?group=true&tab=chat') || '?tab=chat'\n }`,\n );\n }}\n >\n \n \n )}\n {!isOrganization && (\n <>\n {isGroup ? (\n
\n \n history.push(\n `/program/${program?.uid}${(isGroup && '?group=true') || ''}`,\n )\n }\n >\n View Program\n \n
\n ) : (\n \n history.push(\n `/program/${program?.uid}${(isGroup && '?group=true') || ''}`,\n )\n }\n >\n \n \n )}\n {isGroup ? (\n
\n \n {isGroup && (program?.coachProgram?.status === 'APPROVED' || program?.price === 0)\n ? 'Cancel'\n : 'Request to Cancel'}\n \n
\n ) : (\n \n \n \n )}\n \n )}\n
\n
\n )}\n
\n ) : (\n \n \n \n \n \n \n \n {!program?.trainee?.avatar?.url &&\n program?.trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')}\n \n \n \n {\n setCurrentConversation(conversation);\n history.push(\n `/program/${program?.uid}${(isGroup && '?group=true&tab=chat') || '?tab=chat'}`,\n );\n }}\n >\n \n \n \n \n \n {program?.trainee?.fullName}\n \n \n Training Types\n \n {program?.trainingTypes?.map((a) => a?.name)?.join(', ') ||\n program?.trainingType?.name}\n \n \n \n Program ends \n {endDate}\n \n \n \n \n \n \n \n history.push(`/program/${program?.uid}${(isGroup && '?group=true') || ''}`)\n }\n style={{ minHeight: '3.6rem' }}\n fontSize=\"1.4rem\"\n height=\"3.6rem\"\n >\n View Program\n \n \n \n \n {isGroup && (program?.coachProgram?.status === CoachProgramStatus.APPROVED || program?.price === 0)\n ? 'Cancel'\n : 'Request to Cancel'}\n \n \n \n \n \n \n \n \n )}\n \n );\n};\n\nexport default TraineeCard;\n","import React, { useEffect } from 'react';\nimport Select, { components } from 'react-select';\n\nimport {\n MultiValueItem,\n MultiValueName,\n MultiValueCircle,\n OptionCheck,\n OptionOption,\n OptionCircle,\n} from './components';\nimport { OptionName, OptionRow } from '../programs-header/components';\nimport { CoachProgramStatus } from '../../constants/enums';\n\nconst itemBg = (a) => {\n console.log(a);\n switch (a) {\n case CoachProgramStatus.APPROVED:\n return '#FFCC0014';\n case CoachProgramStatus.DECLINED:\n return '#F50A4F14';\n default:\n return '#00FF9114';\n }\n};\n\nconst customStyles = ({ error, margin, width, small, borderColor }) => ({\n control: (provided) => ({\n ...provided,\n width: width,\n maxWidth: '100%',\n height: 'fit-content',\n minHeight: '3.2rem',\n borderRadius: '8px',\n boxShadow: 'none',\n marginRight: margin,\n fontSize: '1.4rem',\n alignItems: 'center',\n borderColor: error ? '#F50A4F' : borderColor || '#05000033',\n '&:hover': {\n borderColor: error ? '#F50A4F' : '#05000033',\n },\n display: 'flex',\n }),\n input: (provided) => ({\n ...provided,\n maxHeight: small ? '3rem' : '3.6rem',\n fontSize: '1.4rem',\n }),\n placeholder: (provided) => ({\n ...provided,\n fontSize: '1.4rem',\n }),\n dropdownIndicator: (provided) => ({\n ...provided,\n opacity: 0.4,\n }),\n option: (provided, state) => ({\n ...provided,\n display: 'flex',\n alignItems: 'center',\n fontSize: small ? '1.4rem' : 'inherit',\n padding: '0.4rem 0',\n background: 'white',\n color: '#050000cc',\n cursor: 'pointer',\n '&:hover': {\n background: '#E6FFF4',\n },\n }),\n multiValue: (provided, state) => ({\n ...provided,\n background: itemBg(state.data?.value),\n }),\n});\n\nconst Option = (props) => {\n return (\n \n \n \n \n {props.data.label}\n \n {props.data.value && }\n \n \n );\n};\n\nconst MultiValue = (props) => {\n return (\n \n \n {props.data.value && }\n {props.data.label}\n \n \n );\n};\n\nconst ReactSelectMulti = ({\n value,\n onChange,\n options,\n error,\n checkBoxes = false,\n onDeleteOne = () => {},\n placeholder,\n maxSelected = 3,\n margin = '2.4rem',\n width = '38rem',\n disabled,\n small,\n borderColor,\n ...rest\n}) => {\n return (\n
\n \n
\n );\n};\n\nexport default ReactSelectMulti;\n","import React, { useContext } from 'react';\nimport {\n FiltersForm,\n FiltersFormTitlte,\n FiltersTitle,\n LayoutOption,\n TraineesFilters,\n} from './components';\nimport SelectStatus from './SelectStatus';\nimport CustomInput from '../../components/input/CustomInput';\nimport AnIcon from '../../assets/input/search-icon.png';\nimport { OrganizationContext } from '../../services/organizationContext';\nimport ReactSelectMulti from '../react-select-witness/ReactSelectMulti';\n\nconst iconStyles = {\n borderRight: '1px solid #050000',\n height: '100%',\n width: '4.8rem',\n margin: 0,\n backgroundSize: '48% auto',\n opacity: 0.2,\n};\n\nconst ProgramsHeader = ({\n statusOpts,\n status,\n setStatus,\n traineeName,\n setTraineeName,\n heading,\n additionalButton,\n layout,\n setLayout,\n statusFilter = true,\n nameFilter = true,\n trainees,\n onlyStatus,\n}) => {\n const { isOrganization } = useContext(OrganizationContext);\n return (\n <>\n \n
\n {heading}\n {layout && !isOrganization && (\n <>\n setLayout('CARDS')} grid />\n setLayout('LIST')} />\n \n )}\n
\n \n {statusFilter && (\n <>\n \n Filter by status\n \n setStatus((curr) => curr.filter((x) => x?.value !== a))}\n />\n \n )}\n {nameFilter && (\n \n )}\n {additionalButton}\n \n
\n \n );\n};\n\nexport default ProgramsHeader;\n","import React, { useContext, useMemo, useState } from 'react';\nimport TraineeCard from '../../components/trainee-card/TraineeCard';\nimport { PseudoTraineeCard } from '../../components/trainee-card/components';\nimport useProgramRequest from '../../hooks/programRequest';\nimport useProgram from '../../hooks/program';\nimport { CoachProgramStatus, ProgramStatus, ProgramType } from '../../constants/enums';\nimport ProgramsHeader from '../../components/programs-header/ProgramsHeader';\nimport Loader from '../../components/loader/Loader';\nimport EmptyTemplate from '../../components/empty-template/EmptyTemplate';\nimport { useHistory } from 'react-router-dom';\nimport IMAGES from '../../constants/images';\nimport { OrganizationContext } from '../../services/organizationContext';\nimport AlertModal from '../../components/alert-modal/AlertModal';\nimport { MobileContext } from '../../services/MobileContext';\nimport Fixedheader from '../../components/header/FixedHeader';\nimport URLS from '../../constants/urls';\nimport ReactSelectMulti from '../../components/react-select-witness/ReactSelectMulti';\nimport CancelProgramModal from '../../components/cancel-program-modal/CancelProgramModal';\n\nconst sortingOrder = {\n [CoachProgramStatus.APPROVED]: 4,\n [CoachProgramStatus.ONGOING]: 3,\n [CoachProgramStatus.ENDED]: 2,\n [CoachProgramStatus.DECLINED]: 1,\n [undefined]: 0,\n};\n\nconst Trainees = () => {\n const { isMobile } = useContext(MobileContext);\n const {\n programRequests,\n status,\n setStatus,\n statusOpts,\n traineeName,\n setTraineeName,\n programRequestsLoading,\n cancelProgram\n } = useProgramRequest({\n // requestStatus: ProgramStatus.APPROVED,\n programType: ProgramType.ONETOONE,\n coachProgramStatus: [\n { label: 'Pending', value: CoachProgramStatus.APPROVED },\n { label: 'In progress', value: CoachProgramStatus.ONGOING },\n ],\n });\n const { isOrganization } = useContext(OrganizationContext);\n const [layout, setLayout] = useState(isOrganization ? 'LIST' : 'CARDS');\n const [cancelModal, setCancelModal] = useState(null);\n\n const sortedTrainees = useMemo(\n () =>\n programRequests?.sort((a, b) => {\n return sortingOrder?.[b?.coachProgram?.status] - sortingOrder?.[a?.coachProgram?.status];\n }),\n [programRequests],\n );\n\n const history = useHistory();\n\n return (\n <>\n \n setCancelModal(null)}\n submitModal={() =>\n cancelModal?.uid && cancelProgram(cancelModal?.uid)\n }\n headingText={'Are You Sure?'}\n contentText={\n <>\n If you cancel the program for {cancelModal?.trainee?.fullName}, you\n won't be able to restore.\n \n }\n />\n\n {isMobile ? (\n history.push(URLS.home)} />\n ) : (\n \n )}\n \n {isMobile && (\n setStatus((curr) => curr.filter((x) => x?.value !== a))}\n />\n )}\n {!programRequests?.length ? (\n <>\n {(programRequestsLoading && ) || (\n history.push('/home')}\n // primaryText={`This page reflects the list of active trainees ${\n // status?.value\n // ? `with Status '${status?.label}' ${\n // traineeName ? `and Name Consisting '${traineeName}'` : ''\n // }`\n // : traineeName\n // ? `with Name consisting '${traineeName}'`\n // : 'associated with your account'\n // }\n // `}\n // secondarytext={\n // status?.value || traineeName\n // ? ''\n // : 'The List of Trainees wll Appears here when You will approve your first Program request'\n // }\n primaryText='There are no trainees for this search'\n />\n )}\n \n ) : layout === 'CARDS' ? (\n <>\n {programRequests?.map((program) =>\n program?.status !== 'Pending' ? (\n {\n setCancelModal(program);\n }}\n />\n ) : (\n false\n ),\n )}\n {!isMobile && (\n <>\n \n \n \n \n \n \n \n \n \n )}\n \n ) : (\n \n \n \n \n Full name\n \n \n Program Status\n \n \n Program types\n \n \n Program length\n \n \n Program ends\n \n {isOrganization && \n Coach\n }\n \n Code\n \n {!isOrganization && \n Actions\n }\n \n \n \n {sortedTrainees?.map((program) =>\n program?.status !== 'Pending' ? (\n {\n setCancelModal(program);\n }}\n />\n ) : (\n false\n ),\n )}\n \n \n )}\n \n \n \n );\n};\n\nexport default Trainees;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\nimport IMAGES from '../../constants/images';\n\nexport const SignInWrapper = styled.div`\n width: 100%;\n min-height: 100vh;\n background: black;\n display: flex;\n\n justify-content: space-between;\n overflow-x: hidden;\n color: #ffffff;\n background-image: url(${({ image }) => image});\n background-position: center bottom;\n background-size: contain;\n background-repeat: no-repeat;\n ${({ theme }) => theme.laptopS`\n flex-direction: row-reverse;\n background-size: auto 100%;\n `};\n ${({ theme }) => theme.tablet`\n background-image:none;\n `};\n`;\n\nexport const SignInColumn = styled.div`\n height: 100%;\n width: 100%;\n background-image: url(${IMAGES.FitnessGirlSignupImageFirst});\n background-image: url(${({ image }) => image});\n background-position: center bottom;\n background-size: auto 92%;\n background-repeat: no-repeat;\n max-width: ${({ minResolution }) => (minResolution === 'tablet' ? '25%' : '100%')};\n ${({ theme, minResolution }) =>\n minResolution === 'laptopS' &&\n theme.laptopS`\n display: none;\n `};\n ${({ theme, minResolution }) =>\n minResolution === 'tablet' &&\n theme.tablet`\n display: none;\n `};\n @media (max-width:768px) {\n div:first-of-type > .responsiveSignInCell {\n display: none\n }\n }\n @media (max-width:950px) {\n div:nth-of-type(2) > .responsiveSignInCell {\n display: none\n }\n }\n`;\nexport const FlexWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n position: relative;\n`;\n\nexport const WelcomeAbsolute = styled.div`\n width: 100%;\n height: 100%;\n left: 0;\n bottom: 0;\n position: absolute;\n font-family: Gotham-r;\n font-size: 2.4rem;\n line-height: 4.5rem;\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 60%;\n color: #ffffffcc;\n`;\n\nexport const NonFlexWrapper = styled.div``;\n\nexport const ButtonWrapper = styled.div`\n width: 100%;\n margin: 1.4rem 0 2rem;\n height: 5.6rem;\n`;\n\nexport const DoNotHaveAcount = styled.div`\n width: 100%;\n text-align: center;\n line-height: 2.1rem;\n font-family: Roboto-m;\n color: #ffffffbb;\n padding: 1.2rem;\n`;\n\nexport const SignUpLink = styled.span`\n color: ${({ theme }) => theme.color.primary};\n padding-left: 0.8rem;\n &:hover {\n text-decoration: underline;\n }\n`;\n\nexport const SignInCell = styled.div`\n min-width: ${({ collSpan }) => `Calc(${collSpan || 1} * (100vw / 8))`};\n min-height: ${({ rowSpan }) => `Calc(${rowSpan || 1} * 116px)`};\n border-right: 1px solid rgba(255, 255, 255, 0.6);\n border-bottom: ${({ bottom }) => (bottom ? 'none' : '1px solid rgba(255,255,255,0.6)')};\n background: ${({ bg }) => (bg ? 'rgba(255,255,255,0.2)' : 'transparent')};\n color: #ffffff;\n font-family: Roboto-m;\n font-size: ${({ fontSize }) => (fontSize ? fontSize : '2rem')};\n line-height: 2.6rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n flex-grow: 1;\n ${({ generatedStyle }) => (generatedStyle)}\n`;\n\nexport const ErrorAuth = styled.div`\n width: 100%;\n height: 1.6rem;\n font-size: 1.4rem;\n line-height: 1.6rem;\n color: ${({ theme }) => theme.color.error};\n text-align: left;\n display: flex;\n padding: 0 0.8rem;\n`;\n\nexport const AuthErrorIcon = styled.div`\n width: 14px;\n height: 14px;\n background-image: url(${ICONS.AlertIcon});\n background-position: center;\n background-size: contain;\n margin: ${({ margin }) => (margin ? margin : '0 8px 0 0')};\n background-repeat: no-repeat;\n`;\n\nexport const ForgotPasswordLinkWrapper = styled.div`\n justify-content: flex-end;\n display: flex;\n margin: 0 0 1.6rem;\n`;\n\nexport const ForgotPasswordLink = styled.span`\n opacity: 0.7;\n color: #ffffff;\n font-family: Roboto-m;\n font-size: 1.2rem;\n font-weight: 500;\n letter-spacing: 0;\n line-height: 21px;\n text-align: center;\n`;\n\nexport const ShowPasswordIcon = styled.div`\n width: 40px;\n height: 40px;\n background-image: ${({ icon }) => (icon ? `url(${icon})` : 'none')};\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n\n &:hover {\n cursor: pointer;\n }\n`;\n","import React, { useContext, useState } from 'react';\nimport { Formik, Form, Field } from 'formik';\nimport ICONS from '../../constants/icons';\nimport { SignInSchema } from '../../schemas/signup/coachProfile';\n\nimport {\n SignInWrapper,\n SignInColumn,\n SignInCell,\n FlexWrapper,\n NonFlexWrapper,\n WelcomeAbsolute,\n ButtonWrapper,\n DoNotHaveAcount,\n SignUpLink,\n ErrorAuth,\n AuthErrorIcon,\n ForgotPasswordLink,\n ForgotPasswordLinkWrapper,\n ShowPasswordIcon,\n} from './components';\nimport CustomInput from '../../components/input/CustomInput';\nimport CustomButton from '../../components/button/CustomButton';\nimport { useSignin } from '../../hooks';\nimport { Link } from 'react-router-dom';\nimport URLS from '../../constants/urls';\nimport images from '../../constants/images';\nimport { MobileContext } from '../../services/MobileContext';\n\nconst SignIn = () => {\n const { isMobile } = useContext(MobileContext);\n const { submitSignIn } = useSignin();\n const [showPassword, setShowPassword] = useState(false);\n\n const showPasswordIcon = setShowPassword(!showPassword)}\n />\n\n return isMobile ? (\n \n \n \n \n \n Welcome Back!\n \n \n \"Logo\"\n \n \n Log In\n \n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n \n {({ field }) => (\n
\n setFieldValue(field.name, val)}\n backgroundColor=\"#ffffff\"\n margin=\"3.2rem 0 0.4rem\"\n error={touched[field.name] && errors[field.name]}\n />\n {!isMobile && (\n \n \n Forgot Password?\n \n \n )}\n
\n )}\n
\n \n {({ field }) => (\n setFieldValue(field.name, val)}\n type={ showPassword ? 'text' : 'password' }\n backgroundColor=\"#ffffff\"\n error={touched[field.name] && errors[field.name]}\n />\n )}\n \n \n {!!errors?.credentials ? (\n <>\n \n {errors?.credentials || ''}\n \n ) : (\n false\n )}\n \n \n Log In\n \n
\n )}\n \n {isMobile && (\n \n \n Forgot Password?\n \n \n )}\n \n Don't Have any Account Yet?{' '}\n \n Sign Up\n \n \n
\n \n \n \n \n
\n
\n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Welcome Back!\n \n \n \"Logo\"\n \n \n Log In\n \n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n \n {({ field }) => (\n
\n setFieldValue(field.name, val)}\n backgroundColor=\"#ffffff\"\n margin=\"3.2rem 0 0.4rem\"\n error={touched[field.name] && errors[field.name]}\n />\n \n \n Forgot Password?\n \n \n
\n )}\n
\n \n {({ field }) => (\n setFieldValue(field.name, val)}\n type={ showPassword ? 'text' : 'password' }\n backgroundColor=\"#ffffff\"\n error={touched[field.name] && errors[field.name]}\n />\n )}\n \n \n {!!errors?.credentials ? (\n <>\n \n {errors?.credentials || ''}\n \n ) : (\n false\n )}\n \n \n Log In\n \n
\n )}\n \n \n Don't Have any Account Yet?{' '}\n \n Sign Up\n \n \n
\n \n \n \n \n
\n \n \n \n \n \n \n \n \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 SignIn;\n","import React from 'react';\nimport TraineeCard from '../../components/trainee-card/TraineeCard';\n\nconst GroupCard = ({ group, ...rest }) => {\n return (\n <>\n \n \n );\n};\n\nexport default GroupCard;\n","import React, { useCallback, useContext } from 'react';\nimport { PseudoTraineeCard } from '../../components/trainee-card/components';\nimport GroupCard from './GroupCard';\nimport AddGroupModal from '../../components/add-group-modal.jsx/AddGroupModal';\nimport { useState } from 'react';\nimport { useCoachPersonalInfo, useGroup } from '../../hooks';\nimport { ProgramStatus, CoachProgramStatus } from '../../constants/enums';\nimport useProgramRequest from '../../hooks/programRequest';\nimport ProgramsHeader from '../../components/programs-header/ProgramsHeader';\nimport CustomButton from '../../components/button/CustomButton';\nimport Loader from '../../components/loader/Loader';\nimport EmptyTemplate from '../../components/empty-template/EmptyTemplate';\nimport IMAGES from '../../constants/images';\nimport { OrganizationContext } from '../../services/organizationContext';\nimport CancelProgramModal from '../../components/cancel-program-modal/CancelProgramModal';\nimport AlertModal from '../../components/alert-modal/AlertModal';\n\nconst Groups = () => {\n const [modalGroup, setmModalGroup] = useState(false);\n const [groupToBeDeleted, setGroupToBeDeleted] = useState(false);\n const [loading, setLoading] = useState(false);\n const [layout, setLayout] = useState('LIST');\n const [cancelModal, setCancelModal] = useState(null);\n const {\n groups,\n searchName,\n setSearchName,\n coachProgramStatus,\n setCoachProgramStatus,\n groupsLoading,\n createGroup,\n removeGroup,\n } = useGroup({\n coachProgramStatus: [\n { label: 'Pending', value: CoachProgramStatus.APPROVED },\n { label: 'In progress', value: CoachProgramStatus.ONGOING },\n ],\n });\n const { statusOpts } = useProgramRequest({\n requestStatus: ProgramStatus.APPROVED,\n skipQuery: true,\n });\n const { currentCoach } = useCoachPersonalInfo({});\n\n const submitGroup = useCallback(\n (values, { setErrors }) => {\n createGroup(values, setErrors, setLoading, () => setmModalGroup(false));\n },\n [createGroup],\n );\n const { isOrganization } = useContext(OrganizationContext);\n return (\n <>\n \n setmModalGroup(false)}\n setLoading={setLoading}\n loading={loading}\n />\n setGroupToBeDeleted(false)}\n submitModal={() => groupToBeDeleted?.uid && removeGroup(groupToBeDeleted?.uid)}\n headingText={'Are You Sure?'}\n typeText={'CANCEL_GROUP'}\n contentText={\n <>\n If you cancel this group, you won't be able to restore.\n \n }\n />\n {/* setGroupToBeDeleted(false)}\n submitModal={() => groupToBeDeleted?.uid && removeGroup(groupToBeDeleted?.uid)}\n headingText={'Are You Sure?'}\n contentText={<>If you delete the group, you won't be able to restore.}\n choiceQuestion={'Do you want to delete the group?'}\n /> */}\n {/*{console.log(cancelModal)}*/}\n {/* setCancelModal(null)}*/}\n {/* mailHref={`mailto:support@witnesstofitness.com?subject=Group Program Cancellation&body=Dear sir/madam,\\n\\n\\nI am requesting to cancel the group program \"${cancelModal?.name}\".\\nGroup ID: ${cancelModal?.code?.digits}\\n\\n\\nBest Regards,\\nCoach ${currentCoach?.fullName}`}*/}\n {/*/>*/}\n setmModalGroup(true)}\n style={{ padding: '1rem 3rem', marginLeft: '1.6rem' }}\n >\n Create New Group\n \n }\n />\n \n {!groups?.length ? (\n <>\n {(groupsLoading && ) || (\n setmModalGroup(true)}\n primaryText={`No groups are assigned to your account ${\n coachProgramStatus?.value\n ? `with Status '${coachProgramStatus?.label}' ${\n searchName ? `and Name consisting '${searchName}'` : ''\n }`\n : searchName\n ? `with Name consisting '${searchName}'`\n : 'at this time'\n }\n `}\n secondarytext={\n coachProgramStatus?.value || searchName\n ? ''\n : 'This page allows you to create groups, join trainees to a group training session and gain access to collective group results.'\n }\n />\n )}\n \n ) : layout === 'CARDS' ? (\n <>\n {!!groups?.length &&\n groups.map((group) => (\n {\n if (group?.coachProgram?.status === 'APPROVED') {\n setGroupToBeDeleted(group);\n } else {\n setGroupToBeDeleted(group);\n }\n }}\n />\n ))}\n \n \n \n \n \n \n \n ) : (\n \n \n \n \n Full name\n \n \n Program Status\n \n \n Program types\n \n \n Participants max number\n \n \n Program ends\n \n {isOrganization && (\n \n Coach\n \n )}\n \n Code\n \n {!isOrganization && (\n \n Actions\n \n )}\n \n \n \n {!!groups?.length &&\n groups.map((group) => (\n setmModalGroup(group)}\n handleDelete={() => setGroupToBeDeleted(group)}\n handleCancel={() => {\n if (group?.coachProgram?.status === 'APPROVED') {\n setGroupToBeDeleted(group);\n } else {\n if (group?.price === 0) {\n setGroupToBeDeleted(group);\n } else {\n setCancelModal(group);\n }\n }\n }}\n />\n ))}\n \n \n )}\n \n \n \n );\n};\n\nexport default Groups;\n","import React, { useMemo } from 'react';\nimport { AvatarContainer, AvatarCredentials, AvatarImage } from './components';\n\nconst Avatar = ({ src, isOnline, size, name }) => {\n const credentials = useMemo(() => {\n if (typeof name !== 'string') {\n return '';\n }\n\n const [first, last] = name.split(' ');\n\n return `${first ? first[0] : ''}${last ? last[0] : first[0]}`.toUpperCase();\n }, [name]);\n\n return (\n \n \n {src ? '' : credentials}\n \n \n );\n};\n\nexport default Avatar;\n","import React, { useMemo } from 'react';\nimport moment from 'moment';\nimport {\n ConversationItemContainer,\n ConversationItemColumn,\n ConversationItemName,\n ConversationItemLastMessage,\n ConversationItemInfo,\n ConversationItemTime,\n ConversationItemUnreadIndicator,\n BorderIndicator,\n Avatar,\n} from './components';\n\nconst ConversationItem = ({ item, isActive, onClick, isNew, user, isMobile }) => {\n const initials = useMemo(() => {\n const [first, last] = item?.user?.name?.split(' ') || ['', ''];\n return `${first ? first[0] : ''}${last ? last[0] : first[0]}`;\n }, [item]);\n\n const time = useMemo(() => {\n const updatedAt = (item.lastMessage?.sentAt || item.createdAt) * 1000;\n return moment(updatedAt).fromNow();\n }, [item.lastMessage, item.createdAt]);\n\n return (\n \n \n \n {initials}\n \n \n\n \n {item.user.name}\n \n {!item.lastMessage\n ? 'New conversation'\n : item.lastMessage.type === 'text'\n ? item.lastMessage?.text\n : item.lastMessage?.text === 'Click here to use an extension coupon'\n ? 'Extension coupon sent'\n : 'Custom message sent'}\n \n \n\n \n {time}\n {item.unreadMessageCount > 0 && }\n \n\n {isActive && }\n \n );\n};\n\nexport default ConversationItem;\n","import React, { useMemo } from 'react';\nimport {\n Avatar,\n ConversationItemColumn,\n ConversationItemContainer,\n ConversationItemLastMessage,\n ConversationItemName,\n} from './components';\n\nconst ConversationNew = ({ trainee, isActive, onClick, isMobile }) => {\n const initials = useMemo(() => {\n const [first, last] = trainee?.fullName?.split(' ');\n return `${first ? first[0] : ''}${last ? last[0] : first[0]}`;\n }, [trainee]);\n\n return (\n \n \n \n {initials}\n \n \n\n \n {trainee?.fullName}\n New conversation\n \n \n );\n};\nexport default ConversationNew;\n","import React, { useMemo } from 'react';\nimport { ParticipantContainer, PartName, Avatar, PartNameWrapper } from './components';\n\nconst Participant = ({ item }) => {\n const initials = useMemo(() => {\n const [first, last] = item.fullName?.split(' ');\n return `${first ? first[0] : ''}${last ? last[0] : first[0]}`;\n }, [item]);\n\n return (\n \n \n {initials}\n \n \n {item.fullName}\n \n \n );\n};\n\nexport default Participant;\n","import React from 'react';\nimport MobileAvatar from '../../components/avatar/MobileAvatar';\nimport { GoBackIcon } from '../../components/header/components';\nimport { HeaderInfo, MessageHeaderContainer, InfoCol, InfoTitle, InfoSubTitle } from './components';\n\nconst MessageHeader = ({ goBack, chatImage, imageName, title, subTitle }) => {\n return (\n \n \n \n \n \n \n \n {title}\n {subTitle}\n \n \n \n );\n};\n\nexport default MessageHeader;\n","import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { getCoachGroupQuery, getProgramQuery } from '@witness/graphql';\nimport { useQuery } from '@apollo/react-hooks';\n\nimport ProgramRequestRow from '../../components/dashboard/ProgramRequestRow';\nimport ProgramRequest from '../../components/request-modal/ProgramRequest';\nimport useProgramRequest from '../../hooks/programRequest';\nimport ChatContext from '../../services/ChatContext';\nimport Avatar from '../../components/avatar/Avatar';\nimport { useDebounce } from '../../services/utils';\nimport ConversationItem from './ConversationItem';\nimport ConversationNew from './ConversationNew';\nimport ICONS from '../../constants/icons';\nimport MessageList from './MessageList';\nimport Participant from './Participant';\nimport {\n ChatContainer,\n ChatColumn,\n ConversationsHeader,\n ConversationsHeaderText,\n ChatDetailsHeader,\n ChatDetailsHeaderText,\n SearchWrapper,\n SearchIcon,\n SearchInput,\n ConversationsList,\n ChatUserInfo,\n ChatInfoRow,\n ChatUserName,\n ChatInfoMeta,\n RequestWrapper,\n MobileList,\n Paper,\n} from './components';\nimport { MobileContext } from '../../services/MobileContext';\nimport Fixedheader from '../../components/header/FixedHeader';\nimport MessageHeader from './MessageHeader';\n\nconst Chat = () => {\n const {\n conversations,\n currentConversation,\n currentMessages,\n toggleCurrentConversation,\n setCurrentConversation,\n } = useContext(ChatContext);\n\n const [searchTerm, setSearchTerm] = useState('');\n const delayedTerm = useDebounce(searchTerm, 500);\n\n const convos = useMemo(() => {\n const lowered = delayedTerm.toLowerCase();\n return Object.values(conversations)\n .filter((item) => {\n if (!delayedTerm) {\n return true;\n }\n\n return item.user.name.toLowerCase().includes(lowered);\n })\n .sort((a, b) => b.lastMessage?.sentAt - a.lastMessage?.sentAt);\n }, [conversations, delayedTerm]);\n\n const history = useHistory();\n const loc = useLocation();\n\n const newConv = useMemo(() => {\n const trainee = loc.state?.trainee;\n\n if (!trainee) {\n return null;\n }\n\n const existing = conversations[trainee.user?.uid];\n\n if (existing) {\n return existing;\n }\n\n return {\n isNew: true,\n groupId: trainee.user?.uid,\n lastMessage: {},\n user: {\n id: trainee.user?.uid,\n name: trainee.fullName,\n avatar: trainee.avatar?.url,\n },\n };\n }, [loc.state, conversations]);\n\n useEffect(() => {\n if (newConv) {\n setCurrentConversation(newConv);\n }\n }, [setCurrentConversation, newConv]);\n\n const { programRequests } = useProgramRequest();\n console.log(programRequests?.[0]);\n\n const { data: groupData } = useQuery(getCoachGroupQuery, {\n skip: !currentConversation?.isGroup,\n variables: {\n record: {\n uid: currentConversation?.groupId,\n },\n },\n });\n\n const programRequest = useMemo(() => {\n if (!currentConversation) {\n return;\n }\n\n const finder = currentConversation.isGroup\n ? (item) => item?.coachProgram?.group?.uid === currentConversation.groupId\n : (item) => item?.trainee?.user?.uid === currentConversation.groupId;\n\n const request = programRequests?.find(finder);\n\n if (currentConversation.isGroup && !request && groupData?.getGroup) {\n return Object.assign({}, groupData?.getGroup, {\n status: 'PENDING',\n });\n }\n\n return request;\n }, [currentConversation, programRequests, groupData]);\n\n const [requestModal, setRequestModal] = useState(null);\n const handleClick = useCallback(\n (item) => {\n if (currentConversation?.isGroup || item.status === 'APPROVED') {\n if (currentConversation?.isGroup) {\n history.push(`/program/${currentConversation?.groupId}?group=true`);\n } else {\n history.push(`/program/${item.uid}`);\n }\n } else {\n setRequestModal(item);\n }\n },\n [setRequestModal, history, currentConversation],\n );\n\n const { isMobile } = useContext(MobileContext);\n\n return isMobile ? (\n
\n {currentConversation ? (\n \n toggleCurrentConversation(currentConversation)}\n imageName={currentConversation?.user?.name}\n chatImage={currentConversation?.user?.avatar}\n title={currentConversation?.user?.name}\n subTitle={`${\n (programRequest?.trainingTypes?.length &&\n (programRequest?.trainingTypes?.length > 1\n ? programRequest?.trainingTypes?.[0]?.speciality?.name\n : programRequest?.trainingTypes?.[0]?.name)) ||\n programRequest?.trainingType?.name\n } Program`}\n />\n \n \n ) : (\n <>\n \n \n \n setSearchTerm(e.target.value)}\n />\n \n\n \n \n {newConv && newConv.isNew && (\n toggleCurrentConversation(newConv)}\n isMobile\n />\n )}\n\n {convos.map((c) => (\n toggleCurrentConversation(c)}\n isMobile\n />\n ))}\n \n \n \n )}\n
\n ) : (\n \n \n \n Your Conversations\n \n \n \n setSearchTerm(e.target.value)}\n />\n \n \n {newConv && newConv.isNew && (\n toggleCurrentConversation(newConv)}\n />\n )}\n {console.log(currentConversation, '----------', programRequest)}\n {convos.map((c) => (\n toggleCurrentConversation(c)}\n />\n ))}\n {/* {console.log('convos', convos)} */}\n \n \n \n {currentConversation && (\n \n )}\n \n {currentConversation && (\n \n \n \n \n \n \n {currentConversation?.user?.name}\n \n {!currentConversation?.isGroup && (\n \n \n \n \n \n )}\n \n\n {programRequest && (\n \n \n TRAINING PROGRAM\n \n\n \n handleClick(programRequest)}\n />\n \n \n )}\n\n {currentConversation?.isGroup && programRequest?.coachProgram?.participants?.length > 0 && (\n \n \n GROUP PARTICIPANTS\n \n\n
\n {programRequest?.coachProgram?.participants?.map((item) => {\n return ;\n })}\n
\n
\n )}\n
\n )}\n\n {!!requestModal && (\n setRequestModal(null)} />\n )}\n
\n );\n};\n\nexport default Chat;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nconst NotFound = () => {\n return (\n
\n

Page not found

\n Go to home\n
\n );\n};\n\nexport default NotFound;\n","import React, { useMemo, useState } from 'react';\nimport { Form, Formik } from 'formik';\n\nimport { ChangesSaved, ChangesSavedIcon, LoadingDot } from '../profile/components';\nimport AreYouSureModal from '../../components/are-you-sure-modal/AreYouSureModal';\nimport ProgramCalendar from '../../components/program-calendar/ProgramCalendar';\nimport ProgramsHeader from '../../components/programs-header/ProgramsHeader';\nimport CustomButton from '../../components/button/CustomButton';\nimport Loader from '../../components/loader/Loader';\nimport { Container, Content } from './components';\nimport TemplateFilter from './TemplateFilter';\nimport { useCoachPersonalInfo, useTemplate } from '../../hooks';\n\nconst ProgramTemplate = () => {\n const [deleteModal, setDeleteModal] = useState();\n const {\n programTemplate,\n refetchProgramTemplate,\n loadingProgramTemplate,\n createTemplate,\n deleteTemplate,\n updateCalendarCache,\n templateChangeLoading,\n setCalendarLoading,\n readOnly,\n } = useTemplate();\n const { currentCoach, isAdmin } = useCoachPersonalInfo({ setLoading: null, setOpenModal: null });\n const specList = useMemo(() => {\n if (currentCoach?.specialities) {\n const withSpecs = currentCoach?.specialities?.reduce((acc, sp) => {\n if (sp?.name === 'Strength' || sp?.name === 'Running') {\n acc.push({ value: sp?.id, label: sp?.name, trainingTypes: sp?.trainingTypes });\n }\n return acc;\n }, []);\n const specials = [].concat(\n ...currentCoach?.specialities?.map(\n (spec) =>\n (spec?.name !== 'Strength' && spec?.name !== 'Running' && spec?.trainingTypes) || [],\n ),\n );\n return [\n ...withSpecs,\n {\n value: 'non-strength-or-running-spec',\n label: 'Special',\n trainingTypes: specials,\n },\n ];\n }\n\n return [];\n }, [currentCoach.specialities]);\n\n return (\n <>\n \n {loadingProgramTemplate && !programTemplate ? (\n \n ) : (\n <>\n setDeleteModal(false)}\n submitModal={() => deleteTemplate(programTemplate?.uid)}\n headingText={'Are You Sure?'}\n contentText={\"If you delete the template, \\n you won't be able to restore it.\"}\n choiceQuestion={'Do You Want to Permanently Delete the Template?'}\n />\n ({\n value: a?.id,\n label: a?.name,\n })),\n speciality: specList?.find(\n (x) =>\n !!x?.trainingTypes?.find(\n (y) => y?.id === programTemplate?.trainingTypes?.[0]?.id,\n ),\n ),\n isGlobal: programTemplate?.isGlobal || false,\n }}\n enableReinitialize\n onSubmit={createTemplate}\n >\n {({ setFieldValue, values }) => (\n
\n {}}\n heading={\n <>\n {readOnly ? 'View' : 'Edit'}\n Program Template\n \n }\n layout={null}\n statusFilter={false}\n nameFilter={false}\n additionalButton={\n readOnly ? (\n \"You are viewing a global template. You can't change it\"\n ) : (\n <>\n setDeleteModal(true)}\n style={{ width: '24rem' }}\n >\n Delete Template\n \n\n \n {templateChangeLoading ? (\n \n \n <>\n \n \n \n \n \n ) : (\n 'Save Changes'\n )}\n \n \n )\n }\n />\n \n \n )}\n \n \n \n \n \n )}\n
\n \n );\n};\n\nexport default ProgramTemplate;\n","import React from 'react';\nimport './terms-style.css';\n\nconst TermsOfService = () => {\n return (\n <>\n
\n
\n

Terms and Conditions

\n

\n These terms and conditions (\"Agreement\") sets forth the general\n terms and conditions of your use of the \"Witness\" mobile application or website (\"\n Application\" or \"Service\") and any of\n its related products and services (collectively, \"Services\" or\n “Platform”). This Agreement is legally binding between you (\"\n User\", \"you\" or \"\n your\") and Lifestyle A Team Ltd (\"\n Lifestyle A Team Ltd\", \"we\", \"\n us\" or \"our\"). By accessing and using\n the Application and Services, you acknowledge that you have read, understood, and agree\n to be bound by the terms of this Agreement.\n

\n

\n If you are entering into this Agreement on behalf of a business or other legal entity,\n you represent that you have the authority to bind such entity to this Agreement, in\n which case the terms \"User\", \"you\" or \"your\" shall refer to such entity. If you do not\n have such authority, or if you do not agree with the terms of this Agreement, you must\n not accept this Agreement and may not access and use the Application and Services.\n

\n

\n You acknowledge that this Agreement is a contract between you and Lifestyle A Team Ltd,\n even though it is electronic and is not physically signed by you, and it governs your\n use of the Application and Services.\n

\n

General Description

\n

\n 1.\n \n Witness is Platform bringing together trainers, organizations and other professionals\n from the wellness industry (The: “\n \n Trainers” “Coaches”) and trainees (or\n training groups) where they can interact, buy and sell services, set goals, set training\n plans over time and get feedback on performance.\n

\n

\n 2.\n \n Trainers using the platform can build personal training plans for their trainees\n according to their profile and goals. The Platform provides{' '}\n \n built-in tools of a high and professional standard for building training\n programs, monitoring performance and stay in touch with the trainees.\n

\n

\n 3.\n \n Trainees may request and obtain professional services and/or buy training programs\n from the Trainers according to the prices and tariffs shown on such Trainer’s Profile.\n \n

\n

\n 4.\n \n Lifestyle A Team Ltd itself has no responsibility or liability for any services\n provided by the Trainers to the Trainees within the Witness Service.\n \n

\n

\n 5.\n \n Lifestyle A Team Ltd is a meeting place between Trainees and eligible Trainers and the\n Witness Service is not an employment or matching agency. Except as specifically stated\n herein, the Witness Service does not engage as a referral, matching or placement\n service and does not provide, refer, place, offer or seek to obtain employment or\n engagements for any of its Users.\n \n

\n
\n
\n
\n
\n

Using our Services

\n

\n 6.\n \n Registering our Services is free for both Trainers and Trainees.\n \n

\n

\n 7.\n \n Trainers that will want to sell their services using the Platform shall be charged\n with a monthly fee\n \n

\n

\n (the “Fee”) + monthly commission that is a percentage out of\n their monthly revenues at the platform (the “Commission”) as\n described in the Payment Processing and Fees section below.\n

\n

\n 8.\n Trainees can purchase periodic training plans (the “\n Periodic Plans”) and/or other services from Trainers through\n the Platform. Purchasing is possible using a valid payment method. The price of the\n services and/or the Periodic Plans is determined by the Trainers and is visible on the\n purchase page.\n

\n

\n 9.\n Trainers\n

\n

\n 9.1.\n \n Trainers may be eligible to access and use the Platform only after submitting their\n details, as requested by us, and subject to our approval.\n \n

\n

\n 9.2.\n \n Once approved, Trainer will get access to a customized dashboard where he can update\n his personal and professional info, set pricing to his services, manage his billing,\n create communities and much more.\n \n

\n

\n 9.3.\n \n Witness shall have sole and absolute discretion regarding the eligibility of any\n Trainer to access, use and offer any Services through the Witness Service, and does\n not guarantee that any Trainer will be presented on the Witness Service for any\n minimum period of time or at all.\n \n

\n

\n 9.4.\n \n We reserves the right to remove any Trainer from the Service, limit the scope and/or\n type of services a Trainer may offer through the Platform and to require a Trainer to\n remove User Content included in its Profile, at our discretion. We shall not be\n obligated to provide any explanations regarding our decisions in this respect.\n \n

\n

\n 9.5.\n \n By using the Platform, you confirm, undertake, acknowledge, and warrant that:\n \n

\n

\n \n \n You have a valid professional diploma from a certified institution.\n \n

\n

\n \n You have a valid professional liability insurance.\n

\n

\n \n \n All the information provided by you to us and in your Profile is true and correct. You\n are solely responsible for editing and updating such information on your Profile. You\n shall keep any User Content in your Profile{' '}\n \n up-to-date with no broken links or misinformation. You are responsible for\n removing from your Profile any User Content you are not authorized to use anymore. Any\n information you provide must be true and up to date.\n

\n

\n \n \n You have the full right and authority to present and publish the User Content\n presented in your Profile (including, without limitation, links and{' '}\n \n third-party websites). You must not submit, upload, post, display or share\n any User Content that you do not have the right to copy, use, link to or share for the\n purpose of your use of the Platform. You shall be solely liable for any damages\n resulting from any infringement of copyrights,\n

\n
\n
\n
\n
\n

\n trademarks or other intellectual property rights, or any other harm resulting from your\n uploading, posting or publishing User Content to the Platform.\n

\n

\n \n \n You shall abide by fair business practices and ethics in any dealings with any\n Trainee. You should act fairly and appropriately with your clients.\n \n

\n

\n \n \n We are not an employment service and does not serve as an employer of any Trainer. As\n such, Trainers are solely responsible for any tax, withholding or reporting\n obligations. You understand and agree that if we are found to be liable for any tax,\n withholding or reporting obligation in connection with any services provided or\n received by you, you will immediately reimburse and indemnify us for all costs,\n expenses and liabilities (including any interest and penalties) relating to the same.\n \n

\n

\n \n \n Any information communicated to you about a Trainee via the Platform shall be conveyed\n in conformity with the information provided to us by such Trainee. We are not\n responsible for the truthfulness and validity of information provided by any Trainee.\n We are not responsible for information provided by third parties.\n \n

\n

\n \n \n Each Trainer may have only one Profile presented on the Platform.\n \n

\n

\n \n \n We reserve the right to remove any Trainer from the Platform or limit the services a\n Trainer may offer through the Platform without notice, for any reason.\n \n

\n

\n 10.\n Trainees\n

\n

As a Trainee using our Platform, you agree and acknowledge that:

\n

\n 10.1.\n \n The Content, including training and nutrition programs, provided through the Service,\n is for entertainment purposes only. We recommend that you consult a physician before\n beginning any exercise program or diet. We are not a licensed medical care provider.\n You should understand that participating in any exercise program or diet can result in\n physical injury, and you agree to do so at your own risk. The findings and opinions of\n authors and Trainers expressed herein are those of the author and do not necessarily\n state or reflect those of Witness or Lifestyle A team Ltd.\n \n

\n

\n 10.2.\n If you have knowledge of any \n pre-existing medical conditions, we advise you to seek medical advice from\n a doctor urgently before using the Services. This applies in particular if you have\n knowledge of one or more of the following medical complaints/conditions/procedures:\n

\n

\n \n cardiovascular disease,\n

\n

\n \n lung or respiratory disease (including asthma),\n

\n

\n \n spinal and/or joint problems,\n

\n

\n \n neuromuscular disease,\n

\n

\n \n surgical procedures,\n

\n

\n \n any other health issues\n

\n
\n
\n
\n

\n 10.3.\n \n In case of the Services related to nutrition, you are responsible for verifying that the\n foods and nutrients recommended as part of the programs or guide do not contain any\n ingredients or contents to which you are allergic or which may cause food intolerance.\n \n

\n

\n 10.4.\n \n In addition, our female Trainees should note that pregnant women and{' '}\n \n breast-feeding mothers should seek medical advice from a doctor before using\n the Services\n

\n

\n 10.5.\n \n We are not the employer of any Trainer, nor do we supervise, direct or control the\n Trainer’s work or services, in any manner. We do not provide any training or equipment\n to the Trainers, and has no control over the quality, timing, legality, or any other\n aspect whatsoever of the services provided by the Trainer.\n \n

\n

\n 10.6.\n \n Without derogating from the above- in case of Trainer failed to provide a service that\n you paid for, we will refund you- in accordance with our refund policy.\n \n

\n

\n 10.7.\n \n Each Trainer provides you services as an independent contractor and is not an employee,\n joint venturer, partner, agent, or franchisee of us for any purpose whatsoever.\n \n

\n

\n 10.8.\n \n Any listing of a Trainer on the Platform shall be according to the information and\n Profile provided by such Trainer. We are not responsible for the truthfulness and\n validity of information presented by any Trainer. We do not have any obligation to\n independently verify any information provided to it by any Trainer, their experience or\n training, and shall not be responsible or liable for any representation or undertaking\n made by any Trainer on the Platform.\n \n

\n

\n 10.9.\n \n You are responsible for providing to us and such Trainers you contact via the Platform,\n accurate, current and complete information in connection with your request for services.\n \n

\n

\n 10.10.\n \n In no event shall any reference by the Platform to any Trainer be construed as an\n approval or endorsement by us of such Trainers or of any services provided by them.\n Likewise, a link to any Trainer’s website does not imply that we endorse or accept any\n responsibility for the content or use of such website. As with the purchase of a product\n or service through any medium or in any environment, you are responsible for exercising\n appropriate judgment and caution.\n \n

\n

\n 10.11.\n \n You agree to receive from time to time messages and promotional materials from us by e-\n mail or any other contact form you may provide us with (including your phone number for\n calls or text messages), including, without limitation, messages featuring Profiles of\n various Trainers. If you do not wish to receive such promotional materials or notices,\n please notify us at any time.\n \n

\n

\n 11.\n \n Other than providing the Platform and the payment processing services we are not a party\n to any interaction between the Trainers and the Trainees. Trainees contract for services\n directly with the Trainers. We do not take responsibility, in any way or manner, for the\n quality of the services provided to any Trainee by any Trainer.\n \n

\n
\n
\n
\n

Payment Processing and Fees

\n

\n 12.\n The Platform supports payment between Trainers and Trainees.\n

\n

\n 13.\n Monthly Fee - Trainers’ Fee shall be as indicated in the\n Platform and will be charged each month, on a recuring basis, from the payment method,\n provided by the Trainer.\n

\n

\n 14.\n Commission - our Commission shall be calculated as a\n percentage out of the Trainer’s monthly revenues at the platform. The exact percentage\n shall be agreed between the trainers and us in a separate agreement or will be indicated\n in the Trainer’s Dashboard, according to our discretion.\n

\n

\n 15.\n \n Trainers are responsible for paying any direct or indirect taxes, including any GST,\n VAT or otherwise, which may apply to them depending on residency, location or the\n billing information they provide in their account settings. Trainers represent and\n warrant that they comply, and will comply at all times, with their obligations under\n income tax provisions in their jurisdiction.\n \n

\n

\n 16.\n Appointment as Limited Payment Collection Agent: Trainers\n hereby appoints Lifestyle A team Ltd as Trainer’s limited authorized payment collection\n agent solely for the purpose of accepting payments (via its Payment Services Provider)\n from Trainee, and remitting those payments to Trainer. Trainer agrees that payment from\n Trainee to Lifestyle A team Ltd shall be considered the same as a made directly to\n Trainer. Trainee’s payment obligation to Trainer will be satisfied upon receipt of\n payment by Lifestyle A team Ltd (by its Payment Services Provider), and Lifestyle A team\n Ltd (via its Payment Services Provider) is responsible for remitting the funds to the\n Trainee in the manner described in these Terms. In the event that Lifestyle A team Ltd\n (via Payment Services Provider) does not remit any such amounts to Trainer, the Trainer\n will have recourse only against Lifestyle A team Ltd and not the Trainee directly.\n Trainer agrees that Lifestyle A team Ltd may describe or otherwise reflect the terms\n contained herein in any terms of service, receipts, disclosures, or notices including,\n but not limited to, receipts provided to Trainees that Lifestyle A team Ltd may deem\n necessary or prudent.\n

\n

\n 17.\n \n We partner with Payment Services Providers for purposes of collecting payments from\n Trainees, transferring such payments from Trainees to Trainers, and holding funds in\n connection with account’s Balances. All payments services in connection with the\n withdrawal of funds on the Platform are performed by OUR Payment Services Providers\n and not by us.\n \n

\n

\n 18.\n \n Transfer of funds to Trainers shall be made on a monthly basis up to the 9\n \n th day of each month, with regard to the funds collected on\n the previous month. Funds will be transferred to the bank account which its details were\n provided by the Trainer.\n

\n

\n 19.\n \n Trainees that would like to purchase services from the Trainers may not offer Trainers\n to pay, or make payment using any method other than through the Platform. In case you\n have been asked to use an alternative payment method by one of our Trainers, please\n report it immediately to customer support.\n \n

\n
\n
\n
\n

\n 20.\n \n Payments in our Platform can be made using a valid Credit/Debit Card (excluding Diners\n and American Express).\n \n

\n

\n 21.\n \n To protect against fraud, unauthorized transactions (such as money laundering), claims,\n or other liabilities, payment information in connection with withdrawals is collected by\n our Payment Services Providers. Payment Services Providers may also collect such other\n information as necessary for the purpose of processing payments. We are not exposed to\n the payment information provided to Payment Services Providers, and this information is\n subject to the privacy policy applicable to the Payment Service Provider. Please see our\n Privacy Policy for more information.\n \n

\n

\n 22.\n \n By using any payment method and/or providing payment details for making purchases on the\n Platform, you represent and warrant that: (a) you are legally authorized to provide such\n information; (b) you are legally authorized or have permission to make payments using\n the payment method(s); (c) if you are an employee or agent of a company or person that\n owns the payment method, you are authorized by that company or person to use the payment\n method to make payments on our Platform; and (d) such actions do not violate any\n applicable law\n \n

\n

\n 23.\n \n We reserve the right to change services and services’ pricing at any time. We also\n reserve the right to refuse any order you place with us. We may, in our sole discretion,\n limit or cancel quantities purchased per person, per household or per order. These\n restrictions may include orders placed by or under the same Trainee account, the same\n credit/debit card, and/or orders that use the same billing and/or shipping address. In\n the event that we make a change to or cancel an order, we may attempt to notify you by\n contacting the{' '}\n \n e-mail and/or billing address/phone number provided at the time the order was\n made.\n

\n

\n 24.\n \n You agree and acknowledge that all payments must be processed through the Platform.\n Without derogating from our rights, under this Agreement, any payment that will be made\n between Trainers and Trainees, not through the Platform shall entitle us with additional\n penalty fee equal to 50% of the rate of such service, which will be charged from both\n the Trainer and the Trainee.\n \n

\n

Cancellation Policy

\n

Trainers

\n

\n 25.\n \n Trainers may cancel their membership with 30 days prior written notice to our customer\n support at support@witnesstofitness.com, provided that the Trainers has delivered in\n full all of the services that were purchased from them.\n \n

\n
\n
\n
\n

Trainees

\n

\n 26.\n \n Trainees may cancel their Periodic Plans within 48 hours from purchasing, provided\n that they didn’t yet received the first Training Plan. In such case Trainees shall be\n entitled to a full refund.\n \n

\n

\n 27.\n \n Cancellation not according to section 26 is subject to 14 days prior notice (the “\n \n Prior Notice”) and shall entitle the Trainee with a relative\n refund against the services/products he/she didn’t yet receive. It shall be clarified\n that during the Prior Notice period, all charges shall continue to apply.\n

\n

Accounts and membership

\n

\n 28.\n \n Trainers must be at least 18 years of age and Trainees must be at least 16 years of\n age and have their legal guardian approval to use the Application and Services. By\n using the Application and Services and by agreeing to this Agreement you warrant and\n represent that you meet these conditions.\n \n

\n

\n 29.\n \n If you create an account in the Application, you are responsible for maintaining the\n security of your account and you are fully responsible for all activities that occur\n under the account and any other actions taken in connection with it. We may, but have\n no obligation to, monitor and review new accounts before you may sign in and start\n using the Services.\n \n

\n

\n 30.\n \n Providing false contact information of any kind may result in the termination of your\n account. You must immediately notify us of any unauthorized uses of your account or\n any other breaches of security.\n \n

\n

\n 31.\n \n We will not be liable for any acts or omissions by you, including any damages of any\n kind incurred as a result of such acts or omissions.\n \n

\n

\n 32.\n \n We may suspend, disable, or delete your account (or any part thereof) if we determine\n that you have violated any provision of this Agreement or that your conduct or content\n would tend to damage our reputation and goodwill. If we delete your account for the\n foregoing reasons, you may not{' '}\n \n re-register for our Services. We may block your email address and Internet\n protocol address to prevent further registration.\n

\n

User content

\n

\n 33.\n \n We do not own any data, information or material (collectively, \" User Content\") that\n you submit in the Application in the course of using the Service. You shall have sole\n responsibility for the accuracy, quality, integrity, legality, reliability,\n appropriateness, and intellectual property ownership or right to use of all submitted\n Content.\n \n

\n

\n 34.\n \n We may, but have no obligation to, monitor and review the Content in the Application\n submitted or created using our Services by you. You grant us permission to access,\n copy, distribute, store,\n \n

\n
\n
\n
\n
\n

\n transmit, reformat, display and perform the Content of your user account solely as\n required for the purpose of providing the Services to you.\n

\n

\n 35.\n \n Without limiting any of those representations or warranties, we have the right, though\n not the obligation, to, in our own sole discretion, refuse or remove any Content that,\n in our reasonable opinion, violates any of our policies or is in any way harmful or\n objectionable. You also grant us the license to use, reproduce, adapt, modify, publish\n or distribute the Content created by you or stored in your user account for\n commercial, marketing or any similar purpose.\n \n

\n

Accuracy of information

\n

\n 36.\n \n Occasionally there may be information in the Application that contains typographical\n errors, inaccuracies or omissions that may relate to product descriptions, pricing,\n availability, promotions and offers. We reserve the right to correct any errors,\n inaccuracies or omissions, and to change or update information or cancel orders if any\n information in the Application or Services is inaccurate at any time without prior\n notice (including after you have submitted your order).\n \n

\n

\n 37.\n \n We undertake no obligation to update, amend or clarify information in the Application\n including, without limitation, pricing information, except as required by law. No\n specified update or refresh date applied in the Application should be taken to\n indicate that all information in the Application or Services has been modified or\n updated.\n \n

\n

Third party services

\n

\n 38.\n \n If you decide to enable, access or use third party services, be advised that your\n access and use of such other services are governed solely by the terms and conditions\n of such other services, and we do not endorse, are not responsible or liable for, and\n make no representations as to any aspect of such other services, including, without\n limitation, their content or the manner in which they handle data (including your\n data) or any interaction between you and the provider of such other services.\n \n

\n

\n 39.\n \n You irrevocably waive any claim against Lifestyle A Team Ltd with respect to such\n other services. Lifestyle A Team Ltd is not liable for any damage or loss caused or\n alleged to be caused by or in connection with your enablement, access or use of any\n such other services, or your reliance on the privacy practices, data security\n processes or other policies of such other services. You may be required to register\n for or log into such other services on their respective platforms.\n \n

\n

\n 40.\n \n By enabling any other services, you are expressly permitting Lifestyle A Team Ltd to\n disclose your data as necessary to facilitate the use or enablement of such other\n service.\n \n

\n
\n
\n
\n
\n

Backups

\n

\n 41.\n \n We perform regular backups of the Content, however, these backups are for our own\n administrative purposes only and are in no way guaranteed. You are responsible for\n maintaining your own backups of your data. We do not provide any sort of compensation\n for lost or incomplete data in the event that backups do not function properly. We\n will do our best to ensure complete and accurate backups but assume no responsibility\n for this duty.\n \n

\n

Advertisements

\n

\n 42.\n \n During your use of the Application and Services, you may enter into correspondence\n with or participate in promotions of advertisers or sponsors showing their goods or\n services through the Application and Services. Any such activity, and any terms,\n conditions, warranties or representations associated with such activity, is solely\n between you and the applicable third party. We shall have no liability, obligation or\n responsibility for any such correspondence, purchase or promotion between you and any\n such third party.\n \n

\n

Links to other resources

\n

\n 43.\n \n Although the Application and Services may link to other resources (such as websites,\n applications, etc.), we are not, directly or indirectly, implying any approval,\n association, sponsorship, endorsement, or affiliation with any linked resource, unless\n specifically stated herein.\n \n

\n

\n 44.\n \n Some of the links in the Application may be \"affiliate links\". This means if you click\n on the link and purchase an item, Lifestyle A Team Ltd will receive an affiliate\n commission. We are not responsible for examining or evaluating, and we do not warrant\n the offerings of, any businesses or individuals or the content of their resources. We\n do not assume any responsibility or liability for the actions, products, services, and\n content of any other third parties. You should carefully review the legal statements\n and other conditions of use of any resource which you access through a link in the\n Application and Services. Your linking to any other{' '}\n \n off-site resources is at your own risk.\n

\n

Prohibited uses

\n

\n 45.\n \n In addition to other terms as set forth in the Agreement, you are prohibited from\n using the Application and Services or Content: (a) for any unlawful purpose; (b) to\n solicit others to perform or participate in any unlawful acts; (c) to violate any\n international, federal, provincial or state regulations, rules, laws, or local\n ordinances; (d) to infringe upon or violate our intellectual property rights or the\n intellectual property rights of others; (e) to harass, abuse, insult, harm, defame,\n slander, disparage, intimidate, or discriminate based on gender, sexual orientation,\n religion, ethnicity, race, age, national origin, or disability; (f) to submit false or\n misleading information; (g)\n \n

\n
\n
\n
\n
\n

\n to upload or transmit viruses or any other type of malicious code that will or may be\n used in any way that will affect the functionality or operation of the Application and\n Services, third party products and services, or the Internet; (h) to spam, phish, pharm,\n pretext, spider, crawl, or scrape;\n

\n

\n (i)\n \n for any obscene or immoral purpose; or (j) to interfere with or circumvent the\n security features of the Application and Services, third party products and services,\n or the Internet. We reserve the right to terminate your use of the Application and\n Services for violating any of the prohibited uses.\n \n

\n

Intellectual property rights

\n

\n 46.\n \n \"Intellectual Property Rights\" means all present and future rights conferred by\n statute, common law or equity in or in relation to any copyright and related rights,\n trademarks, designs, patents, inventions, goodwill and the right to sue for passing\n off, rights to inventions, rights to use, and all other intellectual property rights,\n in each case whether registered or unregistered and including all applications and\n rights to apply for and be granted, rights to claim priority from, such rights and all\n similar or equivalent rights or forms of protection and any other results of\n intellectual activity which subsist or will subsist now or in the future in any part\n of the world.\n \n

\n

\n 47.\n \n This Agreement does not transfer to you any intellectual property owned by Lifestyle A\n Team Ltd or third parties, and all rights, titles, and interests in and to such\n property will remain (as between the parties) solely with Lifestyle A Team Ltd. All\n trademarks, service marks, graphics and logos used in connection with the Application\n and Services, are trademarks or registered trademarks of Lifestyle A Team Ltd or its\n licensors. Other trademarks, service marks, graphics and logos used in connection with\n the Application and Services may be the trademarks of other third parties. Your use of\n the Application and Services grants you no right or license to reproduce or otherwise\n use any of Lifestyle A Team Ltd or third party trademarks.\n \n

\n

Disclaimer of warranty

\n

\n 48.\n \n You agree that such Service is provided on an \"as is\" and \"as available\" basis and\n that your use of the Application and Services is solely at your own risk. We expressly\n disclaim all warranties of any kind, whether express or implied, including but not\n limited to the implied warranties of merchantability, fitness for a particular purpose\n and{' '}\n \n non-infringement. We make no warranty that the Services will meet your\n requirements, or that the Service will be uninterrupted, timely, secure, or{' '}\n error-free; nor do we make any warranty as to the results that may be\n obtained from the use of the Service or as to the accuracy or reliability of any\n information obtained through the Service or that defects in the Service will be\n corrected. You understand and agree that any material and/or data downloaded or\n otherwise obtained through the use of Service is done at your own discretion\n

\n
\n
\n
\n
\n

\n and risk and that you will be solely responsible for any damage or loss of data that\n results from the download of such material and/or data. We make no warranty regarding\n any goods or services purchased or obtained through the Service or any transactions\n entered into through the Service unless stated otherwise. No advice or information,\n whether oral or written, obtained by you from us or through the Service shall create any\n warranty not expressly made herein.\n

\n

Limitation of liability

\n

\n 49.\n \n To the fullest extent permitted by applicable law, in no event will Lifestyle A Team\n Ltd, its affiliates, directors, officers, employees, agents, suppliers or licensors be\n liable to any person for any indirect, incidental, special, punitive, cover or\n consequential damages (including, without limitation, damages for lost profits,\n revenue, sales, goodwill, use of content, impact on business, business interruption,\n loss of anticipated savings, loss of business opportunity) however caused, under any\n theory of liability, including, without limitation, contract, tort, warranty, breach\n of statutory duty, negligence or otherwise, even if the liable party has been advised\n as to the possibility of such damages or could have foreseen such damages. To the\n maximum extent permitted by applicable law, the aggregate liability of Lifestyle A\n Team Ltd and its affiliates, officers, employees, agents, suppliers and licensors\n relating to the services will be limited to an amount greater of one dollar or any\n amounts actually paid by you to Lifestyle A Team Ltd for the prior one month period\n prior to the first event or occurrence giving rise to such liability. The limitations\n and exclusions also apply if this remedy does not fully compensate you for any losses\n or fails of its essential purpose.\n \n

\n

Indemnification

\n

\n 50.\n \n You agree to indemnify and hold Lifestyle A Team Ltd and its affiliates, directors,\n officers, employees, agents, suppliers and licensors harmless from and against any\n liabilities, losses, damages or costs, including reasonable attorneys' fees, incurred\n in connection with or arising from any third party allegations, claims, actions,\n disputes, or demands asserted against any of them as a result of or relating to your\n Content, your use of the Application and Services or any willful misconduct on your\n part.\n \n

\n

Severability

\n

\n 51.\n \n All rights and restrictions contained in this Agreement may be exercised and shall be\n applicable and binding only to the extent that they do not violate any applicable laws\n and are intended to be limited to the extent necessary so that they will not render\n this Agreement illegal, invalid or unenforceable. If any provision or portion of any\n provision of this Agreement shall be held to be\n \n

\n
\n
\n
\n
\n

\n illegal, invalid or unenforceable by a court of competent jurisdiction, it is the\n intention of the parties that the remaining provisions or portions thereof shall\n constitute their agreement with respect to the subject matter hereof, and all such\n remaining provisions or portions thereof shall remain in full force and effect.\n

\n

Dispute resolution

\n

\n 52.\n \n The formation, interpretation, and performance of this Agreement and any disputes\n arising out of it shall be governed by the substantive and procedural laws of Israel\n without regard to its rules on conflicts or choice of law and, to the extent\n applicable, the laws of Israel. The exclusive jurisdiction and venue for actions\n related to the subject matter hereof shall be the courts located in Tel Aviv Israel,\n and you hereby submit to the personal jurisdiction of such courts. You hereby waive\n any right to a jury trial in any proceeding arising out of or related to this\n Agreement. The United Nations Convention on Contracts for the International Sale of\n Goods does not apply to this Agreement.\n \n

\n

Assignment

\n

\n 53.\n You may not assign, resell, \n sub-license or otherwise transfer or delegate any of your rights or\n obligations hereunder, in whole or in part, without our prior written consent, which\n consent shall be at our own sole discretion and without obligation; any such assignment\n or transfer shall be null and void.\n

\n

\n 54.\n \n We are free to assign any of its rights or obligations hereunder, in whole or in part,\n to any third party as part of the sale of all or substantially all of its assets or\n stock or as part of a merger.\n \n

\n

Changes and amendments

\n

\n 55.\n \n We reserve the right to modify this Agreement or its terms relating to the Application\n and Services at any time, effective upon posting of an updated version of this\n Agreement in the Application. When we do, we will revise the updated date at the\n bottom of this page. We may also provide notice to you in other ways in our\n discretion, such as through contact information you have provided and/or by posting a\n notice in the Application.\n \n

\n

\n 56.\n \n Continued use of the Application and Services after any such changes shall constitute\n your consent to such changes.\n \n

\n

Acceptance of these terms

\n

\n 57.\n \n You acknowledge that you have read this Agreement and agree to all its terms and\n conditions. By accessing and using the Application and Services you agree to be bound\n by this Agreement. If you\n \n

\n
\n
\n
\n
\n

\n do not agree to abide by the terms of this Agreement, you are not authorized to access\n or use the Application and Services.\n

\n

Contacting us

\n

\n 58.\n \n If you would like to contact us to understand more about this Agreement or wish to\n contact us concerning any matter relating to it, you may send an email to\n support@witnesstofitness.com\n \n

\n

This document was last updated on Thursday, 05 November 2020

\n
\n
\n
\n
\n

Terms and Conditions

\n

\n These terms and conditions (\"Agreement\") sets forth the general\n terms and conditions of your use of the \"Witness\" mobile application or website (\"\n Application\" or \"Service\") and any of\n its related products and services (collectively, \"Services\" or\n “Platform”). This Agreement is legally binding between you (\"\n User\", \"you\" or \"\n your\") and Lifestyle A Team Ltd (\"\n Lifestyle A Team Ltd\", \"we\", \"\n us\" or \"our\"). By accessing and using\n the Application and Services, you acknowledge that you have read, understood, and agree\n to be bound by the terms of this Agreement.\n

\n

\n If you are entering into this Agreement on behalf of a business or other legal entity,\n you represent that you have the authority to bind such entity to this Agreement, in\n which case the terms \"User\", \"you\" or \"your\" shall refer to such entity. If you do not\n have such authority, or if you do not agree with the terms of this Agreement, you must\n not accept this Agreement and may not access and use the Application and Services.\n

\n

\n You acknowledge that this Agreement is a contract between you and Lifestyle A Team Ltd,\n even though it is electronic and is not physically signed by you, and it governs your\n use of the Application and Services.\n

\n

General Description

\n

\n 1.\n \n Witness is Platform bringing together trainers, organizations and other professionals\n from the wellness industry (The: “\n \n Trainers” “Coaches”) and trainees (or\n training groups) where they can interact, buy and sell services, set goals, set training\n plans over time and get feedback on performance.\n

\n

\n 2.\n \n Trainers using the platform can build personal training plans for their trainees\n according to their profile and goals. The Platform provides{' '}\n \n built-in tools of a high and professional standard for building training\n programs, monitoring performance and stay in touch with the trainees.\n

\n

\n 3.\n \n Trainees may request and obtain professional services and/or buy training programs\n from the Trainers according to the prices and tariffs shown on such Trainer’s Profile.\n \n

\n

\n 4.\n \n Lifestyle A Team Ltd itself has no responsibility or liability for any services\n provided by the Trainers to the Trainees within the Witness Service.\n \n

\n

\n 5.\n \n Lifestyle A Team Ltd is a meeting place between Trainees and eligible Trainers and the\n Witness Service is not an employment or matching agency. Except as specifically stated\n herein, the Witness Service does not engage as a referral, matching or placement\n service and does not provide, refer, place, offer or seek to obtain employment or\n engagements for any of its Users.\n \n

\n
\n
\n
\n
\n

Using our Services

\n

\n 6.\n \n Registering our Services is free for both Trainers and Trainees.\n \n

\n

\n 7.\n \n Trainers that will want to sell their services using the Platform shall be charged\n with a monthly fee\n \n

\n

\n (the “Fee”) + monthly commission that is a percentage out of\n their monthly revenues at the platform (the “Commission”) as\n described in the Payment Processing and Fees section below.\n

\n

\n 8.\n Trainees can purchase periodic training plans (the “\n Periodic Plans”) and/or other services from Trainers through\n the Platform. Purchasing is possible using a valid payment method. The price of the\n services and/or the Periodic Plans is determined by the Trainers and is visible on the\n purchase page.\n

\n

\n 9.\n Trainers\n

\n

\n 9.1.\n \n Trainers may be eligible to access and use the Platform only after submitting their\n details, as requested by us, and subject to our approval.\n \n

\n

\n 9.2.\n \n Once approved, Trainer will get access to a customized dashboard where he can update\n his personal and professional info, set pricing to his services, manage his billing,\n create communities and much more.\n \n

\n

\n 9.3.\n \n Witness shall have sole and absolute discretion regarding the eligibility of any\n Trainer to access, use and offer any Services through the Witness Service, and does\n not guarantee that any Trainer will be presented on the Witness Service for any\n minimum period of time or at all.\n \n

\n

\n 9.4.\n \n We reserves the right to remove any Trainer from the Service, limit the scope and/or\n type of services a Trainer may offer through the Platform and to require a Trainer to\n remove User Content included in its Profile, at our discretion. We shall not be\n obligated to provide any explanations regarding our decisions in this respect.\n \n

\n

\n 9.5.\n \n By using the Platform, you confirm, undertake, acknowledge, and warrant that:\n \n

\n

\n \n \n You have a valid professional diploma from a certified institution.\n \n

\n

\n \n You have a valid professional liability insurance.\n

\n

\n \n \n All the information provided by you to us and in your Profile is true and correct. You\n are solely responsible for editing and updating such information on your Profile. You\n shall keep any User Content in your Profile{' '}\n \n up-to-date with no broken links or misinformation. You are responsible for\n removing from your Profile any User Content you are not authorized to use anymore. Any\n information you provide must be true and up to date.\n

\n

\n \n \n You have the full right and authority to present and publish the User Content\n presented in your Profile (including, without limitation, links and{' '}\n \n third-party websites). You must not submit, upload, post, display or share\n any User Content that you do not have the right to copy, use, link to or share for the\n purpose of your use of the Platform. You shall be solely liable for any damages\n resulting from any infringement of copyrights,\n

\n
\n
\n
\n
\n

\n trademarks or other intellectual property rights, or any other harm resulting from your\n uploading, posting or publishing User Content to the Platform.\n

\n

\n \n \n You shall abide by fair business practices and ethics in any dealings with any\n Trainee. You should act fairly and appropriately with your clients.\n \n

\n

\n \n \n We are not an employment service and does not serve as an employer of any Trainer. As\n such, Trainers are solely responsible for any tax, withholding or reporting\n obligations. You understand and agree that if we are found to be liable for any tax,\n withholding or reporting obligation in connection with any services provided or\n received by you, you will immediately reimburse and indemnify us for all costs,\n expenses and liabilities (including any interest and penalties) relating to the same.\n \n

\n

\n \n \n Any information communicated to you about a Trainee via the Platform shall be conveyed\n in conformity with the information provided to us by such Trainee. We are not\n responsible for the truthfulness and validity of information provided by any Trainee.\n We are not responsible for information provided by third parties.\n \n

\n

\n \n \n Each Trainer may have only one Profile presented on the Platform.\n \n

\n

\n \n \n We reserve the right to remove any Trainer from the Platform or limit the services a\n Trainer may offer through the Platform without notice, for any reason.\n \n

\n

\n 10.\n Trainees\n

\n

As a Trainee using our Platform, you agree and acknowledge that:

\n

\n 10.1.\n \n The Content, including training and nutrition programs, provided through the Service,\n is for entertainment purposes only. We recommend that you consult a physician before\n beginning any exercise program or diet. We are not a licensed medical care provider.\n You should understand that participating in any exercise program or diet can result in\n physical injury, and you agree to do so at your own risk. The findings and opinions of\n authors and Trainers expressed herein are those of the author and do not necessarily\n state or reflect those of Witness or Lifestyle A team Ltd.\n \n

\n

\n 10.2.\n If you have knowledge of any \n pre-existing medical conditions, we advise you to seek medical advice from\n a doctor urgently before using the Services. This applies in particular if you have\n knowledge of one or more of the following medical complaints/conditions/procedures:\n

\n

\n \n cardiovascular disease,\n

\n

\n \n lung or respiratory disease (including asthma),\n

\n

\n \n spinal and/or joint problems,\n

\n

\n \n neuromuscular disease,\n

\n

\n \n surgical procedures,\n

\n

\n \n any other health issues\n

\n
\n
\n
\n

\n 10.3.\n \n In case of the Services related to nutrition, you are responsible for verifying that the\n foods and nutrients recommended as part of the programs or guide do not contain any\n ingredients or contents to which you are allergic or which may cause food intolerance.\n \n

\n

\n 10.4.\n \n In addition, our female Trainees should note that pregnant women and{' '}\n \n breast-feeding mothers should seek medical advice from a doctor before using\n the Services\n

\n

\n 10.5.\n \n We are not the employer of any Trainer, nor do we supervise, direct or control the\n Trainer’s work or services, in any manner. We do not provide any training or equipment\n to the Trainers, and has no control over the quality, timing, legality, or any other\n aspect whatsoever of the services provided by the Trainer.\n \n

\n

\n 10.6.\n \n Without derogating from the above- in case of Trainer failed to provide a service that\n you paid for, we will refund you- in accordance with our refund policy.\n \n

\n

\n 10.7.\n \n Each Trainer provides you services as an independent contractor and is not an employee,\n joint venturer, partner, agent, or franchisee of us for any purpose whatsoever.\n \n

\n

\n 10.8.\n \n Any listing of a Trainer on the Platform shall be according to the information and\n Profile provided by such Trainer. We are not responsible for the truthfulness and\n validity of information presented by any Trainer. We do not have any obligation to\n independently verify any information provided to it by any Trainer, their experience or\n training, and shall not be responsible or liable for any representation or undertaking\n made by any Trainer on the Platform.\n \n

\n

\n 10.9.\n \n You are responsible for providing to us and such Trainers you contact via the Platform,\n accurate, current and complete information in connection with your request for services.\n \n

\n

\n 10.10.\n \n In no event shall any reference by the Platform to any Trainer be construed as an\n approval or endorsement by us of such Trainers or of any services provided by them.\n Likewise, a link to any Trainer’s website does not imply that we endorse or accept any\n responsibility for the content or use of such website. As with the purchase of a product\n or service through any medium or in any environment, you are responsible for exercising\n appropriate judgment and caution.\n \n

\n

\n 10.11.\n \n You agree to receive from time to time messages and promotional materials from us by e-\n mail or any other contact form you may provide us with (including your phone number for\n calls or text messages), including, without limitation, messages featuring Profiles of\n various Trainers. If you do not wish to receive such promotional materials or notices,\n please notify us at any time.\n \n

\n

\n 11.\n \n Other than providing the Platform and the payment processing services we are not a party\n to any interaction between the Trainers and the Trainees. Trainees contract for services\n directly with the Trainers. We do not take responsibility, in any way or manner, for the\n quality of the services provided to any Trainee by any Trainer.\n \n

\n
\n
\n
\n

Payment Processing and Fees

\n

\n 12.\n The Platform supports payment between Trainers and Trainees.\n

\n

\n 13.\n Monthly Fee - Trainers’ Fee shall be as indicated in the\n Platform and will be charged each month, on a recuring basis, from the payment method,\n provided by the Trainer.\n

\n

\n 14.\n Commission - our Commission shall be calculated as a\n percentage out of the Trainer’s monthly revenues at the platform. The exact percentage\n shall be agreed between the trainers and us in a separate agreement or will be indicated\n in the Trainer’s Dashboard, according to our discretion.\n

\n

\n 15.\n \n Trainers are responsible for paying any direct or indirect taxes, including any GST,\n VAT or otherwise, which may apply to them depending on residency, location or the\n billing information they provide in their account settings. Trainers represent and\n warrant that they comply, and will comply at all times, with their obligations under\n income tax provisions in their jurisdiction.\n \n

\n

\n 16.\n Appointment as Limited Payment Collection Agent: Trainers\n hereby appoints Lifestyle A team Ltd as Trainer’s limited authorized payment collection\n agent solely for the purpose of accepting payments (via its Payment Services Provider)\n from Trainee, and remitting those payments to Trainer. Trainer agrees that payment from\n Trainee to Lifestyle A team Ltd shall be considered the same as a made directly to\n Trainer. Trainee’s payment obligation to Trainer will be satisfied upon receipt of\n payment by Lifestyle A team Ltd (by its Payment Services Provider), and Lifestyle A team\n Ltd (via its Payment Services Provider) is responsible for remitting the funds to the\n Trainee in the manner described in these Terms. In the event that Lifestyle A team Ltd\n (via Payment Services Provider) does not remit any such amounts to Trainer, the Trainer\n will have recourse only against Lifestyle A team Ltd and not the Trainee directly.\n Trainer agrees that Lifestyle A team Ltd may describe or otherwise reflect the terms\n contained herein in any terms of service, receipts, disclosures, or notices including,\n but not limited to, receipts provided to Trainees that Lifestyle A team Ltd may deem\n necessary or prudent.\n

\n

\n 17.\n \n We partner with Payment Services Providers for purposes of collecting payments from\n Trainees, transferring such payments from Trainees to Trainers, and holding funds in\n connection with account’s Balances. All payments services in connection with the\n withdrawal of funds on the Platform are performed by OUR Payment Services Providers\n and not by us.\n \n

\n

\n 18.\n \n Transfer of funds to Trainers shall be made on a monthly basis up to the 9\n \n th day of each month, with regard to the funds collected on\n the previous month. Funds will be transferred to the bank account which its details were\n provided by the Trainer.\n

\n

\n 19.\n \n Trainees that would like to purchase services from the Trainers may not offer Trainers\n to pay, or make payment using any method other than through the Platform. In case you\n have been asked to use an alternative payment method by one of our Trainers, please\n report it immediately to customer support.\n \n

\n
\n
\n
\n

\n 20.\n \n Payments in our Platform can be made using a valid Credit/Debit Card (excluding Diners\n and American Express).\n \n

\n

\n 21.\n \n To protect against fraud, unauthorized transactions (such as money laundering), claims,\n or other liabilities, payment information in connection with withdrawals is collected by\n our Payment Services Providers. Payment Services Providers may also collect such other\n information as necessary for the purpose of processing payments. We are not exposed to\n the payment information provided to Payment Services Providers, and this information is\n subject to the privacy policy applicable to the Payment Service Provider. Please see our\n Privacy Policy for more information.\n \n

\n

\n 22.\n \n By using any payment method and/or providing payment details for making purchases on the\n Platform, you represent and warrant that: (a) you are legally authorized to provide such\n information; (b) you are legally authorized or have permission to make payments using\n the payment method(s); (c) if you are an employee or agent of a company or person that\n owns the payment method, you are authorized by that company or person to use the payment\n method to make payments on our Platform; and (d) such actions do not violate any\n applicable law\n \n

\n

\n 23.\n \n We reserve the right to change services and services’ pricing at any time. We also\n reserve the right to refuse any order you place with us. We may, in our sole discretion,\n limit or cancel quantities purchased per person, per household or per order. These\n restrictions may include orders placed by or under the same Trainee account, the same\n credit/debit card, and/or orders that use the same billing and/or shipping address. In\n the event that we make a change to or cancel an order, we may attempt to notify you by\n contacting the{' '}\n \n e-mail and/or billing address/phone number provided at the time the order was\n made.\n

\n

\n 24.\n \n You agree and acknowledge that all payments must be processed through the Platform.\n Without derogating from our rights, under this Agreement, any payment that will be made\n between Trainers and Trainees, not through the Platform shall entitle us with additional\n penalty fee equal to 50% of the rate of such service, which will be charged from both\n the Trainer and the Trainee.\n \n

\n

Cancellation Policy

\n

Trainers

\n

\n 25.\n \n Trainers may cancel their membership with 30 days prior written notice to our customer\n support at support@witnesstofitness.com, provided that the Trainers has delivered in\n full all of the services that were purchased from them.\n \n

\n
\n
\n
\n

Trainees

\n

\n 26.\n \n Trainees may cancel their Periodic Plans within 48 hours from purchasing, provided\n that they didn’t yet received the first Training Plan. In such case Trainees shall be\n entitled to a full refund.\n \n

\n

\n 27.\n \n Cancellation not according to section 26 is subject to 14 days prior notice (the “\n \n Prior Notice”) and shall entitle the Trainee with a relative\n refund against the services/products he/she didn’t yet receive. It shall be clarified\n that during the Prior Notice period, all charges shall continue to apply.\n

\n

Accounts and membership

\n

\n 28.\n \n Trainers must be at least 18 years of age and Trainees must be at least 16 years of\n age and have their legal guardian approval to use the Application and Services. By\n using the Application and Services and by agreeing to this Agreement you warrant and\n represent that you meet these conditions.\n \n

\n

\n 29.\n \n If you create an account in the Application, you are responsible for maintaining the\n security of your account and you are fully responsible for all activities that occur\n under the account and any other actions taken in connection with it. We may, but have\n no obligation to, monitor and review new accounts before you may sign in and start\n using the Services.\n \n

\n

\n 30.\n \n Providing false contact information of any kind may result in the termination of your\n account. You must immediately notify us of any unauthorized uses of your account or\n any other breaches of security.\n \n

\n

\n 31.\n \n We will not be liable for any acts or omissions by you, including any damages of any\n kind incurred as a result of such acts or omissions.\n \n

\n

\n 32.\n \n We may suspend, disable, or delete your account (or any part thereof) if we determine\n that you have violated any provision of this Agreement or that your conduct or content\n would tend to damage our reputation and goodwill. If we delete your account for the\n foregoing reasons, you may not{' '}\n \n re-register for our Services. We may block your email address and Internet\n protocol address to prevent further registration.\n

\n

User content

\n

\n 33.\n \n We do not own any data, information or material (collectively, \" User Content\") that\n you submit in the Application in the course of using the Service. You shall have sole\n responsibility for the accuracy, quality, integrity, legality, reliability,\n appropriateness, and intellectual property ownership or right to use of all submitted\n Content.\n \n

\n

\n 34.\n \n We may, but have no obligation to, monitor and review the Content in the Application\n submitted or created using our Services by you. You grant us permission to access,\n copy, distribute, store,\n \n

\n
\n
\n
\n
\n

\n transmit, reformat, display and perform the Content of your user account solely as\n required for the purpose of providing the Services to you.\n

\n

\n 35.\n \n Without limiting any of those representations or warranties, we have the right, though\n not the obligation, to, in our own sole discretion, refuse or remove any Content that,\n in our reasonable opinion, violates any of our policies or is in any way harmful or\n objectionable. You also grant us the license to use, reproduce, adapt, modify, publish\n or distribute the Content created by you or stored in your user account for\n commercial, marketing or any similar purpose.\n \n

\n

Accuracy of information

\n

\n 36.\n \n Occasionally there may be information in the Application that contains typographical\n errors, inaccuracies or omissions that may relate to product descriptions, pricing,\n availability, promotions and offers. We reserve the right to correct any errors,\n inaccuracies or omissions, and to change or update information or cancel orders if any\n information in the Application or Services is inaccurate at any time without prior\n notice (including after you have submitted your order).\n \n

\n

\n 37.\n \n We undertake no obligation to update, amend or clarify information in the Application\n including, without limitation, pricing information, except as required by law. No\n specified update or refresh date applied in the Application should be taken to\n indicate that all information in the Application or Services has been modified or\n updated.\n \n

\n

Third party services

\n

\n 38.\n \n If you decide to enable, access or use third party services, be advised that your\n access and use of such other services are governed solely by the terms and conditions\n of such other services, and we do not endorse, are not responsible or liable for, and\n make no representations as to any aspect of such other services, including, without\n limitation, their content or the manner in which they handle data (including your\n data) or any interaction between you and the provider of such other services.\n \n

\n

\n 39.\n \n You irrevocably waive any claim against Lifestyle A Team Ltd with respect to such\n other services. Lifestyle A Team Ltd is not liable for any damage or loss caused or\n alleged to be caused by or in connection with your enablement, access or use of any\n such other services, or your reliance on the privacy practices, data security\n processes or other policies of such other services. You may be required to register\n for or log into such other services on their respective platforms.\n \n

\n

\n 40.\n \n By enabling any other services, you are expressly permitting Lifestyle A Team Ltd to\n disclose your data as necessary to facilitate the use or enablement of such other\n service.\n \n

\n
\n
\n
\n
\n

Backups

\n

\n 41.\n \n We perform regular backups of the Content, however, these backups are for our own\n administrative purposes only and are in no way guaranteed. You are responsible for\n maintaining your own backups of your data. We do not provide any sort of compensation\n for lost or incomplete data in the event that backups do not function properly. We\n will do our best to ensure complete and accurate backups but assume no responsibility\n for this duty.\n \n

\n

Advertisements

\n

\n 42.\n \n During your use of the Application and Services, you may enter into correspondence\n with or participate in promotions of advertisers or sponsors showing their goods or\n services through the Application and Services. Any such activity, and any terms,\n conditions, warranties or representations associated with such activity, is solely\n between you and the applicable third party. We shall have no liability, obligation or\n responsibility for any such correspondence, purchase or promotion between you and any\n such third party.\n \n

\n

Links to other resources

\n

\n 43.\n \n Although the Application and Services may link to other resources (such as websites,\n applications, etc.), we are not, directly or indirectly, implying any approval,\n association, sponsorship, endorsement, or affiliation with any linked resource, unless\n specifically stated herein.\n \n

\n

\n 44.\n \n Some of the links in the Application may be \"affiliate links\". This means if you click\n on the link and purchase an item, Lifestyle A Team Ltd will receive an affiliate\n commission. We are not responsible for examining or evaluating, and we do not warrant\n the offerings of, any businesses or individuals or the content of their resources. We\n do not assume any responsibility or liability for the actions, products, services, and\n content of any other third parties. You should carefully review the legal statements\n and other conditions of use of any resource which you access through a link in the\n Application and Services. Your linking to any other{' '}\n \n off-site resources is at your own risk.\n

\n

Prohibited uses

\n

\n 45.\n \n In addition to other terms as set forth in the Agreement, you are prohibited from\n using the Application and Services or Content: (a) for any unlawful purpose; (b) to\n solicit others to perform or participate in any unlawful acts; (c) to violate any\n international, federal, provincial or state regulations, rules, laws, or local\n ordinances; (d) to infringe upon or violate our intellectual property rights or the\n intellectual property rights of others; (e) to harass, abuse, insult, harm, defame,\n slander, disparage, intimidate, or discriminate based on gender, sexual orientation,\n religion, ethnicity, race, age, national origin, or disability; (f) to submit false or\n misleading information; (g)\n \n

\n
\n
\n
\n
\n

\n to upload or transmit viruses or any other type of malicious code that will or may be\n used in any way that will affect the functionality or operation of the Application and\n Services, third party products and services, or the Internet; (h) to spam, phish, pharm,\n pretext, spider, crawl, or scrape;\n

\n

\n (i)\n \n for any obscene or immoral purpose; or (j) to interfere with or circumvent the\n security features of the Application and Services, third party products and services,\n or the Internet. We reserve the right to terminate your use of the Application and\n Services for violating any of the prohibited uses.\n \n

\n

Intellectual property rights

\n

\n 46.\n \n \"Intellectual Property Rights\" means all present and future rights conferred by\n statute, common law or equity in or in relation to any copyright and related rights,\n trademarks, designs, patents, inventions, goodwill and the right to sue for passing\n off, rights to inventions, rights to use, and all other intellectual property rights,\n in each case whether registered or unregistered and including all applications and\n rights to apply for and be granted, rights to claim priority from, such rights and all\n similar or equivalent rights or forms of protection and any other results of\n intellectual activity which subsist or will subsist now or in the future in any part\n of the world.\n \n

\n

\n 47.\n \n This Agreement does not transfer to you any intellectual property owned by Lifestyle A\n Team Ltd or third parties, and all rights, titles, and interests in and to such\n property will remain (as between the parties) solely with Lifestyle A Team Ltd. All\n trademarks, service marks, graphics and logos used in connection with the Application\n and Services, are trademarks or registered trademarks of Lifestyle A Team Ltd or its\n licensors. Other trademarks, service marks, graphics and logos used in connection with\n the Application and Services may be the trademarks of other third parties. Your use of\n the Application and Services grants you no right or license to reproduce or otherwise\n use any of Lifestyle A Team Ltd or third party trademarks.\n \n

\n

Disclaimer of warranty

\n

\n 48.\n \n You agree that such Service is provided on an \"as is\" and \"as available\" basis and\n that your use of the Application and Services is solely at your own risk. We expressly\n disclaim all warranties of any kind, whether express or implied, including but not\n limited to the implied warranties of merchantability, fitness for a particular purpose\n and{' '}\n \n non-infringement. We make no warranty that the Services will meet your\n requirements, or that the Service will be uninterrupted, timely, secure, or{' '}\n error-free; nor do we make any warranty as to the results that may be\n obtained from the use of the Service or as to the accuracy or reliability of any\n information obtained through the Service or that defects in the Service will be\n corrected. You understand and agree that any material and/or data downloaded or\n otherwise obtained through the use of Service is done at your own discretion\n

\n
\n
\n
\n
\n

\n and risk and that you will be solely responsible for any damage or loss of data that\n results from the download of such material and/or data. We make no warranty regarding\n any goods or services purchased or obtained through the Service or any transactions\n entered into through the Service unless stated otherwise. No advice or information,\n whether oral or written, obtained by you from us or through the Service shall create any\n warranty not expressly made herein.\n

\n

Limitation of liability

\n

\n 49.\n \n To the fullest extent permitted by applicable law, in no event will Lifestyle A Team\n Ltd, its affiliates, directors, officers, employees, agents, suppliers or licensors be\n liable to any person for any indirect, incidental, special, punitive, cover or\n consequential damages (including, without limitation, damages for lost profits,\n revenue, sales, goodwill, use of content, impact on business, business interruption,\n loss of anticipated savings, loss of business opportunity) however caused, under any\n theory of liability, including, without limitation, contract, tort, warranty, breach\n of statutory duty, negligence or otherwise, even if the liable party has been advised\n as to the possibility of such damages or could have foreseen such damages. To the\n maximum extent permitted by applicable law, the aggregate liability of Lifestyle A\n Team Ltd and its affiliates, officers, employees, agents, suppliers and licensors\n relating to the services will be limited to an amount greater of one dollar or any\n amounts actually paid by you to Lifestyle A Team Ltd for the prior one month period\n prior to the first event or occurrence giving rise to such liability. The limitations\n and exclusions also apply if this remedy does not fully compensate you for any losses\n or fails of its essential purpose.\n \n

\n

Indemnification

\n

\n 50.\n \n You agree to indemnify and hold Lifestyle A Team Ltd and its affiliates, directors,\n officers, employees, agents, suppliers and licensors harmless from and against any\n liabilities, losses, damages or costs, including reasonable attorneys' fees, incurred\n in connection with or arising from any third party allegations, claims, actions,\n disputes, or demands asserted against any of them as a result of or relating to your\n Content, your use of the Application and Services or any willful misconduct on your\n part.\n \n

\n

Severability

\n

\n 51.\n \n All rights and restrictions contained in this Agreement may be exercised and shall be\n applicable and binding only to the extent that they do not violate any applicable laws\n and are intended to be limited to the extent necessary so that they will not render\n this Agreement illegal, invalid or unenforceable. If any provision or portion of any\n provision of this Agreement shall be held to be\n \n

\n
\n
\n
\n
\n

\n illegal, invalid or unenforceable by a court of competent jurisdiction, it is the\n intention of the parties that the remaining provisions or portions thereof shall\n constitute their agreement with respect to the subject matter hereof, and all such\n remaining provisions or portions thereof shall remain in full force and effect.\n

\n

Dispute resolution

\n

\n 52.\n \n The formation, interpretation, and performance of this Agreement and any disputes\n arising out of it shall be governed by the substantive and procedural laws of Israel\n without regard to its rules on conflicts or choice of law and, to the extent\n applicable, the laws of Israel. The exclusive jurisdiction and venue for actions\n related to the subject matter hereof shall be the courts located in Tel Aviv Israel,\n and you hereby submit to the personal jurisdiction of such courts. You hereby waive\n any right to a jury trial in any proceeding arising out of or related to this\n Agreement. The United Nations Convention on Contracts for the International Sale of\n Goods does not apply to this Agreement.\n \n

\n

Assignment

\n

\n 53.\n You may not assign, resell, \n sub-license or otherwise transfer or delegate any of your rights or\n obligations hereunder, in whole or in part, without our prior written consent, which\n consent shall be at our own sole discretion and without obligation; any such assignment\n or transfer shall be null and void.\n

\n

\n 54.\n \n We are free to assign any of its rights or obligations hereunder, in whole or in part,\n to any third party as part of the sale of all or substantially all of its assets or\n stock or as part of a merger.\n \n

\n

Changes and amendments

\n

\n 55.\n \n We reserve the right to modify this Agreement or its terms relating to the Application\n and Services at any time, effective upon posting of an updated version of this\n Agreement in the Application. When we do, we will revise the updated date at the\n bottom of this page. We may also provide notice to you in other ways in our\n discretion, such as through contact information you have provided and/or by posting a\n notice in the Application.\n \n

\n

\n 56.\n \n Continued use of the Application and Services after any such changes shall constitute\n your consent to such changes.\n \n

\n

Acceptance of these terms

\n

\n 57.\n \n You acknowledge that you have read this Agreement and agree to all its terms and\n conditions. By accessing and using the Application and Services you agree to be bound\n by this Agreement. If you\n \n

\n
\n
\n
\n
\n

\n do not agree to abide by the terms of this Agreement, you are not authorized to access\n or use the Application and Services.\n

\n

Contacting us

\n

\n 58.\n \n If you would like to contact us to understand more about this Agreement or wish to\n contact us concerning any matter relating to it, you may send an email to\n support@witnesstofitness.com\n \n

\n

This document was last updated on Thursday, 05 November 2020

\n
\n
\n \n );\n};\n\nexport default TermsOfService;\n","import * as Yup from 'yup';\n\nconst templateName = Yup.string().required();\nconst programType = Yup.object()\n .shape({\n value: Yup.string().required(),\n })\n .required();\nconst templateLength = Yup.number().required();\nconst speciality = Yup.object().required();\nconst trainingTypes = Yup.array().of(programType).min(1);\n\nexport const TemplateSchema = Yup.object().shape({\n templateName,\n speciality,\n trainingTypes,\n templateLength,\n});\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const WholeWrapper = styled.div`\n width: 100%;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n border-radius: 12px;\n`;\n\nexport const ModalHeader = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n line-height: 2.4rem;\n font-family: ${({ fontFamily }) => (fontFamily ? fontFamily : 'Space-r')};\n border-bottom: ${({ noborder }) => (noborder ? 'none' : '1px solid #05000033')};\n font-size: 1.6rem;\n padding: 2rem 2.4rem;\n min-height: 28px;\n justify-content: ${({ centered }) => (centered ? 'center' : 'space-between')};\n text-align: ${({ centered }) => (centered ? 'center' : 'left')};\n`;\n\nexport const ModalContent = styled.div`\n width: 100%;\n padding: 0 3.2rem;\n`;\n\nexport const ArrowIcon = styled.div`\n width: 58px;\n height: 58px;\n border-radius: 50%;\n background: #d2d1d1;\n background-image: url('');\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n margin: 3.5rem auto 2rem;\n`;\n\nexport const ModalCloseX = styled.div`\n font-size: 2rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n`;\n\nexport const ModalFooter = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 7.4rem 3.2rem 2.8rem;\n`;\n\nexport const ButtonWrapper = styled.div`\n height: 4.8rem;\n margin-left: 1.2rem;\n width: 11.2rem;\n`;\n\nexport const TemplateInputWrapper = styled.div`\n width: 100%;\n padding: 3.4rem 0 0.4rem;\n & * > {\n /* width */\n &::-webkit-scrollbar {\n width: 0.4rem;\n }\n\n /* Track */\n &::-webkit-scrollbar-track {\n background: white;\n border-radius: 2px;\n }\n\n /* Handle */\n &::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 2px;\n }\n }\n & > * .option_icon {\n display: none;\n }\n & > .css-1joejl3-container {\n margin: 0;\n min-height: 5rem;\n }\n & > * .css-9fbgpq-control {\n min-height: 5rem;\n border: 1px solid #cdcccc;\n }\n`;\n\nexport const FlexWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const ProgramLengthContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const FieldTitle = styled.div`\n font-family: Roboto-m;\n font-size: 1.4rem;\n line-height: 1.6rem;\n color: #37333388;\n padding: 0 0.4rem 1.2rem;\n width: fit-content;\n`;\n\nexport const TemplateLengthItem = styled.div`\n padding: 1.2rem;\n line-height: 1.6rem;\n font-size: 1.4rem;\n min-width: 8rem;\n color: ${({ checked }) => (checked ? '050000' : '#05000080')};\n border: ${({ checked, theme }) =>\n checked ? `1.5px solid ${theme.color.primary}` : '1.5px solid #cdcccc'};\n border-radius: 8px;\n margin-right: 1.2rem;\n cursor: pointer;\n &:last-child {\n margin-right: 0;\n }\n`;\n","import 'react-image-crop/dist/ReactCrop.css';\nimport { Formik, Field, Form } from 'formik';\nimport React, { useMemo } from 'react';\nimport Modal from 'react-modal';\n\nimport { TemplateSchema } from '../../schemas/template/template';\nimport { useCoachPersonalInfo, useTemplate } from '../../hooks';\nimport SelectStatus from '../programs-header/SelectStatus';\nimport CustomButton from '../button/CustomButton';\nimport CustomInput from '../input/CustomInput';\nimport {\n WholeWrapper,\n ModalHeader,\n ModalFooter,\n ButtonWrapper,\n FieldTitle,\n TemplateInputWrapper,\n FlexWrapper,\n ModalContent,\n ProgramLengthContainer,\n TemplateLengthItem,\n} from './components';\nimport ReactSelectWitness from '../react-select-witness/ReactSelectWitness';\nimport LENGTH_OPTIONS from '../../constants/programLengthOptions'\nimport { useUtils } from '../../hooks';\n\nconst customStyles = {\n overlay: {\n backgroundColor: '#05000066',\n zIndex: '111',\n },\n content: {\n zIndex: '111111111',\n width: '80%',\n maxWidth: '556px',\n minWidth: '320px',\n height: 'fit-content',\n maxHeight: 'Calc(100% - 40px)',\n top: '50%',\n left: '50%',\n right: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '12px',\n border: 'none',\n padding: '0 ',\n minHeight: 'fit-content',\n overflow: 'visible',\n },\n};\n\nconst AddTemplateModal = ({ modalOpen, closeModal }) => {\n const { currentCoach } = useCoachPersonalInfo({ setLoading: null, setOpenModal: null });\n const { createTemplate } = useTemplate();\n const { programLengthValueToOption } = useUtils();\n\n const specList = useMemo(() => {\n if (currentCoach?.specialities) {\n const withSpecs = currentCoach?.specialities?.reduce((acc, sp) => {\n if (sp?.name === 'Strength' || sp?.name === 'Running') {\n acc.push({ value: sp?.id, label: sp?.name, trainingTypes: sp?.trainingTypes });\n }\n return acc;\n }, []);\n const specials = [].concat(\n ...currentCoach?.specialities?.map(\n (spec) =>\n (spec?.name !== 'Strength' && spec?.name !== 'Running' && spec?.trainingTypes) || [],\n ),\n );\n return [\n ...withSpecs,\n {\n value: 'non-strength-or-running-spec',\n label: 'Special',\n trainingTypes: specials,\n },\n ];\n }\n\n return [];\n }, [currentCoach.specialities]);\n\n return (\n \n \n ADD NEW TEMPLATE\n \n {({ setFieldValue, errors, touched, isSubmitting, values, validateForm }) => (\n
\n \n \n Template Name\n \n {({ field }) => (\n setFieldValue(field.name, v)}\n value={field.value}\n />\n )}\n \n \n \n \n Training Type\n \n {({ field }) => (\n {\n if (v?.value !== field?.value?.value) {\n setFieldValue('trainingTypes', []);\n }\n setFieldValue(field?.name, v);\n }}\n backspaceRemovesValue={false}\n />\n )}\n \n \n \n Training Subtype\n \n {({ field }) => (\n ({\n value: a?.id,\n label: a?.name,\n }))}\n placeholder=\"- Choose training types -\"\n isMulti={values?.speciality?.label === 'Strength'}\n checkBoxes={values?.speciality?.label === 'Strength'}\n value={field?.value}\n onChange={(v) => {\n if (values?.speciality?.label !== 'Strength') {\n setFieldValue(field?.name, [v]);\n } else if (!v || v?.length <= 3) {\n setFieldValue(field?.name, v);\n }\n }}\n onDeleteOne={(v) => {\n setFieldValue(\n field.name,\n field?.value?.filter((x) => x?.value !== v),\n );\n }}\n backspaceRemovesValue={false}\n />\n )}\n \n \n \n \n Program Length\n \n {({ field }) => (\n { setFieldValue(field.name, v?.value) }}\n dropDownMaxHeight='25vh'\n />\n )}\n \n \n \n \n \n \n Cancel\n \n \n \n \n Create\n \n \n \n
\n )}\n \n
\n \n );\n};\n\nexport default AddTemplateModal;\n","import React, { useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTemplate } from '../../hooks';\nimport IMAGES from '../../constants/images';\nimport Loader from '../../components/loader/Loader';\nimport CustomButton from '../../components/button/CustomButton';\nimport TemplateCard from '../../components/trainee-card/TemplateCard';\nimport EmptyTemplate from '../../components/empty-template/EmptyTemplate';\nimport ProgramsHeader from '../../components/programs-header/ProgramsHeader';\nimport { PseudoTemplateCard } from '../../components/trainee-card/components';\nimport AddTemplateModal from '../../components/add-template-modal.jsx/AddTemplateModal';\n\nconst Templates = () => {\n const [addTemplateModal, setAddTemplateModal] = useState(false);\n const [layout, setLayout] = useState('CARDS');\n const {\n programTemplates,\n programTemplatesLoading,\n templateFilter,\n updateFilter,\n refetchProgramTemplates,\n } = useTemplate();\n return (\n <>\n \n setAddTemplateModal(false)}\n />\n updateFilter('templateName', v)}\n heading=\"List of Templates\"\n layout={layout}\n setLayout={setLayout}\n statusFilter={false}\n additionalButton={\n setAddTemplateModal(true)}\n style={{ padding: '1rem 3rem', marginLeft: '1.6rem' }}\n fontSize=\"1.4rem\"\n >\n Create New Template\n \n }\n />\n \n {programTemplatesLoading ? (\n \n ) : !programTemplates?.length ? (\n <>\n {(false && ) || (\n setAddTemplateModal({})}\n primaryText={`You Haven't Created Templates Yet`}\n secondarytext={\n 'Create Templates to easily plan your programs for groups or specific trainee'\n }\n />\n )}\n \n ) : layout === 'CARDS' ? (\n <>\n {programTemplates?.map((template) => (\n \n ))}\n \n \n \n \n \n \n \n \n \n ) : (\n \n \n \n \n Template name\n \n \n Training types\n \n \n Program length\n \n \n Created at\n \n \n Actions\n \n \n \n \n {programTemplates?.map((template) => (\n \n ))}\n \n \n )}\n \n \n \n );\n};\n\nexport default Templates;\n","import styled from 'styled-components';\n\nexport const CallContainer = styled.div`\n width: 100%;\n height: 100%;\n`;\n\nexport const CallContent = styled.div`\n width: 100%;\n height: 100%;\n`;\n\nexport const BeforeCallContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const ReadyText = styled.div`\n line-height: 4.8rem;\n font-family: Gotham-r;\n font-size: 2rem;\n color: #373333;\n letter-spacing: 0.2rem;\n margin-bottom: 3.2rem;\n`;\n","import React, { useEffect, useState } from 'react';\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { CometChat } from '@cometchat-pro/chat';\nimport { BeforeCallContainer, CallContainer, CallContent, ReadyText } from './components';\nimport CustomButton from '../../components/button/CustomButton';\n\nconst VideoCall = () => {\n const match = useRouteMatch();\n const [joined, setJoined] = useState(false);\n\n useEffect(() => {\n if (joined) {\n let sessionID = match.params.id;\n let audioOnly = false;\n let deafaultLayout = true;\n\n let callSettings = new CometChat.CallSettingsBuilder()\n .enableDefaultLayout(deafaultLayout)\n .setSessionID(sessionID)\n .setIsAudioOnlyCall(audioOnly)\n .build();\n\n CometChat.startCall(\n callSettings,\n document.getElementById('callScreen'),\n new CometChat.OngoingCallListener({\n onCallEnded: (call) => {\n setJoined(false);\n console.log('Call ended:', call);\n },\n onError: (error) => {\n setJoined(false);\n console.log('Error :', error);\n },\n }),\n );\n }\n }, [joined, match]);\n\n return (\n \n \n {!joined && (\n \n Ready to Join?\n setJoined(true)}\n >\n Join call\n \n \n )}\n \n \n );\n};\n\nexport default VideoCall;\n","import styled from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nexport const Title = styled.div`\n opacity: 0.8;\n color: #ffffff;\n font-family: 'Gotham-r';\n font-size: 2.4rem;\n letter-spacing: 0.8px;\n line-height: 4.5rem;\n text-align: center;\n`;\n\nexport const SubTitle = styled.div`\n opacity: 0.6;\n color: ${({ theme, error }) => (error ? theme.color.error : '#ffffff')};\n font-family: Roboto-r;\n font-size: 1.4rem;\n letter-spacing: 0;\n line-height: 2.4rem;\n text-align: center;\n margin-top: 1.2rem;\n`;\n\nexport const ArrowDown = styled.div`\n background-image: url(${ICONS.ArrowDownIcon});\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center;\n width: 6.4rem;\n height: 6.4rem;\n margin-top: 3.2rem;\n`;\n\nexport const InputWrapper = styled.div`\n width: 100%;\n padding: 0 6rem;\n margin-top: ${({ mt }) => mt};\n`;\n\nexport const CancelLink = styled.span`\n opacity: 0.7;\n color: #ffffff;\n font-family: Roboto-m;\n font-size: 1.6rem;\n font-weight: 500;\n letter-spacing: 0;\n line-height: 2.1rem;\n text-align: center;\n`;\n\nexport const ApiErrorWrapper = styled.div`\n justify-content: flex-end;\n display: flex;\n`;\n\nexport const ApiError = styled.span`\n opacity: 0.7;\n color: ${({ theme }) => theme.color.error};\n font-family: Roboto-m;\n font-size: 1.2rem;\n font-weight: 500;\n letter-spacing: 0;\n line-height: 2.1rem;\n text-align: center;\n`;\n","import React, { useCallback, useState } from 'react';\nimport { Formik, Form, Field } from 'formik';\nimport { useMutation } from '@apollo/react-hooks';\nimport { sendResetPasswordLinkMutation } from '@witness/graphql';\n\nimport {\n SignInWrapper,\n SignInColumn,\n SignInCell,\n FlexWrapper,\n NonFlexWrapper,\n WelcomeAbsolute,\n ButtonWrapper,\n} from '../sign-in/components';\nimport IMAGES from '../../constants/images';\nimport { Title, SubTitle, InputWrapper } from './components';\nimport CustomInput from '../../components/input/CustomInput';\nimport ICONS from '../../constants/icons';\nimport CustomButton from '../../components/button/CustomButton';\nimport STRINGS from '../../constants/strings';\nimport {\n SetPaswordEmailStepSchema,\n} from '../../schemas/signup/coachProfile';\n\n\nconst ForgotPassword = () => {\n const [apiError, setApiError] = useState('');\n const [sendResetPasswordLink, { loading }] = useMutation(sendResetPasswordLinkMutation);\n const [sent, setSent] = useState(false);\n\n const submit = useCallback(async ({ email }) => {\n try {\n await sendResetPasswordLink({\n variables: {\n email: email.toLowerCase().trim(),\n },\n });\n\n setSent(true);\n } catch (err) {\n if (err.graphQLErrors?.find((x) => x.message === 'user_not_found')) {\n setApiError('user_not_found');\n } else {\n console.log('unexpected_error', err);\n setApiError('unexpected_error');\n }\n }\n }, [sendResetPasswordLink]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n Welcome To\n \n \n \"Logo\"\n \n \n {!sent ? (\n <>\n Enter The Email Address
\n Associated With Your Account\n submit(v)}\n >\n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n <>\n \n {({ field }) => (\n <>\n {!sent ? (\n {\n if (apiError) {\n setApiError('')\n }\n setFieldValue(field.name, val)\n }}\n backgroundColor=\"#ffffff\"\n margin=\"3.2rem 0\"\n error={touched[field.name] && errors[field.name] || STRINGS[apiError]}\n />\n ) : (\n <>\n )}\n \n )}\n \n \n \n Next\n \n
\n )}\n \n \n ) : (\n \n Email Sent\n We've sent reset password link to your email address.\n \n If it will not appear in your inbox in few minutes please check spams' folder and\n mark it as a \"not spam\" email\n \n \n )}\n
\n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \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 ForgotPassword;\n","import React, { useCallback, useState, useMemo } from 'react';\nimport { Formik, Form, Field } from 'formik';\nimport { useMutation } from '@apollo/react-hooks';\nimport {\n resetPasswordMutation,\n setPasswordMutation,\n setPasswordToOrgMutation,\n} from '@witness/graphql';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { parse } from 'querystring';\nimport { SetPaswordPasswordStepSchema } from '../../schemas/signup/coachProfile';\n\nimport { useSignin } from '../../hooks'\n\nimport {\n SignInWrapper,\n SignInColumn,\n SignInCell,\n FlexWrapper,\n NonFlexWrapper,\n WelcomeAbsolute,\n ButtonWrapper,\n} from '../sign-in/components';\nimport IMAGES from '../../constants/images';\nimport { Title, InputWrapper } from './components';\nimport CustomInput from '../../components/input/CustomInput';\nimport ICONS from '../../constants/icons';\nimport CustomButton from '../../components/button/CustomButton';\nimport STRINGS from '../../constants/strings';\nimport URLS from '../../constants/urls';\n\nconst ResetPassword = () => {\n const [didReset, setDidReset] = useState(false);\n const [resetPassword] = useMutation(resetPasswordMutation);\n const [setPassword] = useMutation(setPasswordMutation);\n const [setPasswordToOrg] = useMutation(setPasswordToOrgMutation);\n const { signInAndRedirect } = useSignin();\n\n const history = useHistory();\n const location = useLocation();\n const token = useMemo(() => {\n return parse(location.search.substring(1)).token;\n }, [location.search]);\n const role = useMemo(() => {\n return parse(location.search.substring(1)).role;\n }, [location.search]);\n\n const [apiError, setApiError] = useState('');\n\n const resetError = useCallback(() => {\n if (apiError) {\n setApiError('');\n }\n }, [apiError]);\n\n const submit = useCallback(\n async ({ password }) => {\n console.log(history);\n try {\n const setPass = role === 'coach' ? setPassword : setPasswordToOrg;\n const handler = history.location.pathname === URLS.set_password ? setPass : resetPassword;\n \n const { data } = await handler({\n variables: {\n token,\n password,\n },\n });\n\n let email;\n if (history.location.pathname === URLS.set_password) {\n email = role === 'coach' ? data?.setPasswordToCoach?.user?.email : data?.setPasswordToOrg?.email;\n } else {\n email = data?.resetPassword?.email;\n }\n\n if (role === 'coach' || role === 'organisation') {\n await signInAndRedirect({\n email,\n password\n });\n } else {\n setDidReset(true);\n }\n } catch (err) {\n if (err.graphQLErrors?.find((x) => x.message === 'invalid_token')) {\n setApiError('invalid_token');\n } else {\n console.log('unexpected_error', err);\n setApiError('unexpected_error');\n }\n }\n },\n [resetPassword, token, role, history, setPassword, setPasswordToOrg],\n );\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n Welcome To\n \n \n \"Logo\"\n \n \n {!didReset ? (\n <>\n Please create a secure password\n submit(v)}\n >\n {({ setFieldValue, errors, touched, isSubmitting, values }) => (\n
\n <>\n \n {({ field }) => (\n <>\n {\n resetError();\n setFieldValue(field.name, val);\n }}\n type=\"password\"\n backgroundColor=\"#ffffff\"\n margin=\"3.2rem 0\"\n error={\n (touched[field.name] && errors[field.name]) || STRINGS[apiError]\n }\n />\n \n )}\n \n \n {({ field }) => (\n <>\n {\n resetError();\n setFieldValue(field.name, val);\n }}\n type=\"password\"\n backgroundColor=\"#ffffff\"\n error={touched[field.name] && errors[field.name]}\n />\n \n )}\n \n \n \n \n Next\n \n \n
\n )}\n \n \n ) : (\n \n Password Changed Successfully\n \n )}\n
\n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \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 ResetPassword;\n","const { default: styled } = require('styled-components');\n\nexport const Container = styled.div`\n width: 100%;\n background-color: #fff;\n display: grid;\n grid-template-columns: 20% 20% 20% 20% 20%;\n grid-template-columns: 14% 16% 20% 16% 14% 20%;\n align-items: center;\n height: 60px;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 0 30px;\n margin-bottom: 8px;\n\n span {\n ${({ smallText }) =>\n smallText\n ? `\n width: 100%;\n opacity: 0.6;\n color: #020202;\n font-family: Roboto-m;\n font-size: 14px;\n letter-spacing: 0;\n line-height: 19px;\n text-align: left;\n `\n : `\n height: 21px;\n width: 59px;\n opacity: 0.9;\n color: inherit;\n font-family: Roboto-m;\n font-size: 16px;\n letter-spacing: 0;\n line-height: 21px;\n `}\n }\n`;\n\nexport const ProfilePic = styled.div`\n width: 2rem;\n height: 2rem;\n background: #d8d8d8;\n background-image: ${({ image }) => `url(${image})`};\n background-size: cover;\n background-position: center;\n margin-right: 0.8rem;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Gotham-r;\n letter-spacing: 0.8px;\n color: ${({ image }) => (image ? 'transparent' : '#ffffff')};\n text-transform: uppercase;\n font-size: 0.8rem;\n`;\n\nexport const SmallText = styled.span``;\n","import React, { useContext, useState } from 'react';\nimport { OrganizationContext } from '../../services/organizationContext';\nimport { Container, ProfilePic } from './components';\n\nconst FinanceTableRow = ({ date, monthlyIncome, numOfTrainees, data }) => {\n const [isOpen, setIsOpen] = useState(false);\n const { isOrganization } = useContext(OrganizationContext);\n return (\n \n \n {date}\n ₪{monthlyIncome}\n {numOfTrainees}\n \n \n \n setIsOpen(!isOpen)}\n style={{\n gridColumn: '6',\n fontSize: '1.4rem',\n width: '122px',\n boxSizing: 'border-box',\n height: '32px',\n border: `1px solid ${isOpen ? '#F1F0F0' : '#00FF91'}`,\n borderRadius: '6px',\n backgroundColor: `${isOpen ? '#FAFAFA' : '#FFFFFF'}`,\n marginLeft: 'auto',\n cursor: 'pointer',\n outline: 'none',\n }}\n >\n {isOpen ? 'Hide Details' : 'View Details'}\n \n \n \n {isOpen ? (\n <>\n \n
\n {data.map((payDay) => (\n \n {}\n + ₪{payDay.coachFee || payDay.amount}\n \n \n {payDay.traineeName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')\n .substring(0, 3)}\n \n {/*
\n \n
*/}\n {payDay.traineeName}\n
\n {isOrganization ? (\n \n \n {payDay.coach?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')\n .substring(0, 3)}\n \n {/*
\n \n
*/}\n {payDay.coach?.fullName}\n \n ) : (\n {payDay.programName}\n )}\n {payDay.program?.coachProgram?.group?.name || ''}\n \n {payDay.program?.coachProgram?.group?.code?.digits\n ? `#${(\n '000' + Math.floor(payDay.program?.coachProgram?.group?.code?.digits / 1000)\n ).slice(-3)}-${(\n '000' +\n (payDay.program?.coachProgram?.group?.code?.digits % 1000)\n ).slice(-3)}`\n : ''}\n \n \n ))}\n \n \n ) : null}\n \n );\n};\nexport default FinanceTableRow;\n","import DollarSignSVG from '../../assets/finance/dollar.svg';\n\nconst { default: styled } = require('styled-components');\n\nexport const FinanceMinimalPreview = styled.div`\n width: 100%;\n height: 30rem;\n background-color: #fff;\n display: flex;\n & > img {\n width: 40%;\n objectfit: cover;\n }\n & > div {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n width: 50%;\n height: 95%;\n margin: 0 auto;\n }\n & > div > span:first-of-type {\n line-height: 2.2rem;\n font-family: Gotham-r;\n font-size: 1.8rem;\n color: #373333;\n -moz-letter-spacing: 0.2rem;\n -ms-letter-spacing: 0.2rem;\n letter-spacing: 0.2rem;\n text-align: center;\n margin-top: 5%;\n }\n & > div > div {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n & > div > div > span {\n margin-top: 3rem;\n line-height: 2.2rem;\n font-family: Space-r;\n font-size: 4rem;\n color: #373333;\n -moz-letter-spacing: 0.2rem;\n -ms-letter-spacing: 0.2rem;\n letter-spacing: 0.2rem;\n text-align: center;\n }\n & > div > span:last-of-type {\n opacity: 0.6;\n color: #020202;\n }\n border-radius: 4px;\n overflow: hidden;\n`;\n\nexport const FinanceChart = styled.div`\n width: 100%;\n height: 30rem;\n background-color: #fff;\n border-radius: 4px;\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 5rem 1.6rem 2rem 0;\n`;\nexport const FinanceChartContent = styled.div`\n width: 100%;\n height: 100%;\n overflow: hidden;\n & * .recharts-cartesian-axis-line {\n stroke: #ffffff00;\n }\n`;\n\nexport const FinanceTable = styled.div`\n width: 100%;\n height: 100%;\n grid-column: 1 / span 2;\n border-radius: 4px;\n background-color: #ffffff;\n box-shadow: 0 1px 3px 0 rgba(74, 74, 74, 0.12);\n padding: 1% 1%;\n box-sizing: border-box;\n & > div {\n position: relative;\n ::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n ::-webkit-scrollbar-thumb {\n background: #e2e2e2;\n border-radius: 4px;\n }\n ::-webkit-scrollbar-thumb:hover {\n background: #e2e2e2;\n }\n }\n`;\n\nexport const FinanceMainGrid = styled.div`\n width: 100%;\n height: 100%;\n border-radius: 4px;\n display: grid;\n grid-template-columns: 36% calc(64% - 20px);\n grid-column-gap: 20px;\n grid-template-rows: auto calc(66vh - 136px);\n grid-row-gap: 20px;\n`;\n\nexport const FinanceTableHeader = styled.div`\n width: 100%;\n display: grid;\n grid-template-columns: 20% 20% 20% 20% 20%;\n grid-template-columns: 14% 16% 20% 16% 14% 20%;\n align-items: center;\n /* height: 40px; */\n box-sizing: border-box;\n padding: 2.2rem 3rem 1.6rem;\n background: rgb(250, 250, 250);\n position: sticky;\n top: 0;\n z-index: 1;\n`;\n\nexport const FinanceTableHeaderText = styled.span`\n opacity: 0.6;\n color: #4a4a4a;\n font-family: Roboto-b;\n font-size: 14px;\n line-height: 2.2rem;\n font-weight: 500;\n letter-spacing: 0;\n text-align: left;\n`;\n\nexport const DollarSign = styled.div`\n width: 56px;\n height: 56px;\n background-image: url(${DollarSignSVG});\n`;\n\nexport const NotDollarSign = styled.div`\n width: 56px;\n height: 56px;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 2px solid #00ff91;\n border-radius: 1.2rem;\n font-size: 4rem;\n font-family: Roboto-l;\n`;\n","import React from 'react';\nimport FinanceTableRow from '../../components/finance/FinanceTableRow';\nimport {\n ResponsiveContainer,\n AreaChart,\n Area,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n} from 'recharts';\nimport {\n FinanceMainGrid,\n FinanceMinimalPreview,\n FinanceChart,\n FinanceChartContent,\n FinanceTable,\n FinanceTableHeader,\n FinanceTableHeaderText,\n DollarSign,\n NotDollarSign,\n} from './components';\nimport { useEarnings, useUtils } from '../../hooks';\n\nconst SimpleLineChart = ({ data }) => {\n return (\n \n \n \n \n \n \n {/* */}\n \n \n \n );\n};\n\nconst Home = () => {\n const { earnings, today, currentMonthIncome, chartData } = useEarnings();\n const { formatNumber } = useUtils();\n return (\n \n \n \"\"\n
\n How Much will you Earn this Month?\n
\n {/* */}\n \n {currentMonthIncome}\n
\n {today}\n
\n
\n \n \n \n \n \n \n \n \n Dates\n Monthly Income\n #Number of Trainees\n \n \n \n Actions\n \n \n\n {Object.keys(earnings)\n .reverse()\n .map((year) =>\n Object.keys(earnings[year])\n ?.reverse()\n .map((month) => (\n \n )),\n )}\n \n \n
\n );\n};\nexport default Home;\n","import { CoachProgramStatus } from '../../constants/enums';\n\nimport styled from 'styled-components';\n\nconst circleBg = ({ status }) => {\n switch (status) {\n case CoachProgramStatus.APPROVED:\n return '#FFCC00';\n case CoachProgramStatus.DECLINED:\n return '#F50A4F';\n case CoachProgramStatus.ONGOING:\n return '#00FF91';\n case CoachProgramStatus.ENDED:\n return '#fff';\n default:\n return '#15b5f3';\n }\n};\nconst outerBrdr = ({ status }) => {\n switch (status) {\n case CoachProgramStatus.APPROVED:\n return '#FFCC00';\n case CoachProgramStatus.DECLINED:\n return '#F50A4F';\n case CoachProgramStatus.ONGOING:\n return '#00FF91';\n case CoachProgramStatus.ENDED:\n return '#00FF91';\n default:\n return '#15b5f3';\n }\n};\nconst circleBrdr = ({ status }) => {\n switch (status) {\n case CoachProgramStatus.APPROVED:\n return '#e0d08e';\n case CoachProgramStatus.DECLINED:\n return '#f089a8';\n case CoachProgramStatus.ONGOING:\n return '#8affcc';\n case CoachProgramStatus.ENDED:\n return '#8affcc';\n default:\n return '#8adeff';\n }\n};\n\nconst circleBorder = ({ status }) =>\n status === CoachProgramStatus.ENDED ? '#00FF91' : 'transparent';\n\nexport const StatusCircle = styled.div`\n border: 2px solid ${circleBorder};\n background-color: ${circleBg};\n width: 1rem;\n height: 1rem;\n border-radius: 0.6rem;\n margin-left: 1.6rem;\n position: relative;\n margin-right: 2rem;\n display: flex;\n justify-content: center;\n align-items: center;\n &:hover {\n & * {\n display: block;\n }\n & > .wit_tooltip {\n display: block;\n background: ${circleBrdr};\n }\n & * .wit_tooltip_triangle {\n border-color: ${circleBrdr} transparent transparent transparent;\n }\n }\n`;\n\nexport const StatusBorder = styled.div`\n position: absolute;\n display: none;\n border: 2px solid ${outerBrdr};\n width: 1.8rem;\n height: 1.8rem;\n border-radius: 50%;\n`;\n","import React from 'react';\nimport {\n MessengerIcon,\n MessengerIconImg,\n TraineeRow,\n TraineeRowProfilePic,\n TraineeTD,\n} from '../../components/trainee-card/components';\nimport { ProgramStatus, ProgramType, CoachProgramStatusUI } from '../../constants/enums';\nimport ProgramsHeader from '../../components/programs-header/ProgramsHeader';\nimport Loader from '../../components/loader/Loader';\nimport EmptyTemplate from '../../components/empty-template/EmptyTemplate';\nimport { useHistory } from 'react-router-dom';\nimport IMAGES from '../../constants/images';\nimport { FlexTDContent, HoverIndicator } from '../../components/calendar-results-modal/components';\nimport CustomButton from '../../components/button/CustomButton';\nimport { useTrainees } from '../../hooks';\nimport { StatusBorder, StatusCircle } from './components';\nimport CustomTooltip from '../../components/tooltip/CustomTooltip';\nconst AllTrainees = (props) => {\n const history = useHistory();\n const { trainees, traineesLoading, traineeName, setTraineeName } = useTrainees();\n return (\n <>\n \n \n\n \n {!trainees?.length ? (\n <>\n {(traineesLoading && ) || (\n history.push('/home')}\n // primaryText={`This page reflects the list of active trainees ${\n // traineeName ? `with Name Consisting '${traineeName}'` : ''\n // } associated with your account`}\n // secondarytext={\n // traineeName\n // ? ''\n // : 'The List of Trainees wll Appear here when You will approve your first Program request'\n // }\n primaryText=\"There are no trainees for this search\"\n c\n />\n )}\n \n ) : (\n \n \n \n \n Full name\n \n \n Age\n \n \n Status/Program type\n \n \n Program name\n \n \n Code\n \n \n Actions\n \n \n \n \n {trainees?.map((trainee) => {\n const programs = trainee?.programs?.filter((program) => program.coachProgram);\n const program = programs?.[programs?.length - 1];\n const coachProgram = program?.coachProgram;\n\n const couponCode = program?.code?.digits || 'N/A';\n\n if (!coachProgram) {\n return null;\n }\n\n return (\n \n \n \n \n \n {!trainee?.avatar?.url &&\n trainee?.fullName\n ?.split(' ')\n .map((x) => x.substring(0, 1))\n .join('')}\n \n {trainee?.fullName}\n \n \n {trainee.age}\n \n \n \n \n {CoachProgramStatusUI?.[coachProgram?.status] || 'n/a'}\n \n \n \n {{ ONETOONE: '1-1', GROUP: 'Group' }?.[program?.type]}\n \n \n \n {program?.type === 'GROUP'\n ? coachProgram?.group?.name\n : coachProgram?.programName}\n \n {couponCode}\n \n \n {\n const targetProgram = trainee?.programs\n ?.reverse()\n ?.find(\n (x) =>\n x.status === ProgramStatus.APPROVED && x.type === program.type,\n );\n console.log(targetProgram, trainee);\n const target_url =\n targetProgram.type === ProgramType.GROUP\n ? `/program/${targetProgram?.coachProgram?.group?.uid}?group=true&tab=chat`\n : `/program/${targetProgram?.uid}?tab=chat`;\n // setCurrentConversation(conversation);\n history.push(target_url);\n }}\n >\n \n \n
\n {\n const targetProgram = trainee?.programs\n ?.reverse()\n ?.find(\n (x) =>\n x.status === ProgramStatus.APPROVED &&\n x.type === program.type,\n );\n history.push(`/program/${targetProgram?.uid}`);\n }}\n >\n View Program\n \n
\n
\n
\n
\n );\n })}\n \n \n )}\n \n \n \n );\n};\n\nexport default AllTrainees;\n","import {default as styled} from \"styled-components\";\nimport ICONS from \"../../constants/icons\";\n\nexport const Title = styled.span`\n color: #4a4a4a;\n font-family: 'Gotham-r';\n font-size: 2rem;\n letter-spacing: 0;\n line-height: 1.9rem;\n & > span {\n padding: 0 0.8rem;\n font-size: 2rem;\n font-family: Space-r;\n color: #4a4a4a;\n letter-spacing: 0.1rem;\n }\n`;\n\nexport const ExercisesFilters = styled.div`\n padding: 3.2rem 2.8rem;\n display: flex;\n box-sizing: border-box;\n justify-content: space-between;\n`;\n\nexport const ExercisesRow = styled.tr`\n width: 100%;\n background: white;\n margin: 0.6rem;\n border-radius: 8px;\n position: relative;\n &:hover {\n box-shadow: 0px 0px 4px 2px #00000012;\n }\n &:hover * .hover_indicator {\n display: block;\n }\n &:hover * .hoverable_message_button {\n border-color: #00ff91 !important;\n transform: scale(1.05);\n }\n &:hover * .hoverable_view_button {\n border-color: ${({ theme }) => theme.color.primary} !important;\n transform: scale(1.02);\n }\n &:hover * .hoverable_cancel_button {\n border-color: #f50a4faa !important;\n transform: scale(1.02);\n }\n &:hover > * {\n color: #050000;\n }\n`;\n\nexport const ExercisesTD = styled.td`\n padding: 1.4rem 0 1.4rem 3.2rem;\n text-align: left;\n color: #373333e6;\n &:first-child {\n border-radius: 8px 0 0 8px;\n }\n &:last-child {\n border-radius: 0 8px 8px 0;\n padding-right: 3.2rem;\n }\n`;\n\nexport const FlexTDContent = styled.div`\n display: flex;\n align-items: center;\n color: inherit;\n justify-content: ${({ flexEnd }) => (flexEnd ? 'flex-end' : 'flex-start')};\n position: relative;\n`;\n\nexport const LeftIconImg = styled.div`\n width: 34px;\n height: 34px;\n background-image: url(${ICONS.LeftArrowPage});\n background-repeat: no-repeat;\n background-position: center;\n background-size: auto 56%;\n`;\n\nexport const UpIconImg = styled.div`\n width: 34px;\n cursor: pointer;\n height: 34px;\n &:hover {\n filter: invert(42%) sepia(93%) saturate(1352%) hue-rotate(87deg) brightness(119%) contrast(119%);\n }\n background-image: url(${ICONS.UpPage});\n background-repeat: no-repeat;\n background-position: center;\n background-size: auto 56%;\n`;\n\nexport const DownIconImg = styled.div`\n width: 34px;\n cursor: pointer;\n &:hover {\n filter: invert(42%) sepia(93%) saturate(1352%) hue-rotate(87deg) brightness(119%) contrast(119%);\n }\n height: 34px;\n background-image: url(${ICONS.DownPage});\n background-repeat: no-repeat;\n background-position: center;\n background-size: auto 56%;\n`;\n\nexport const RightIconImg = styled.div`\n width: 34px;\n height: 34px;\n background-image: url(${ICONS.RightArrowPage});\n background-repeat: no-repeat;\n background-position: center;\n background-size: auto 56%;\n`;\n\nexport const VideoIconImg = styled.div`\n width: 34px;\n height: 34px;\n background-image: url(${ICONS.VideoSign});\n background-repeat: no-repeat;\n background-position: center;\n background-size: auto 56%;\n`;\n","import {getExercisesPaginatedQuery,} from '@witness/graphql';\nimport {useQuery} from '@apollo/react-hooks';\n\nconst useExercisePage = (title= null,\n sortField ='title',\n sortOrder = 'ASC',\n limit =100,\n skip = 0,\n isGlobal= true,\n type=null,\n category= null) => {\n\n const { data: exercises, loading: exercisesLoading} = useQuery(\n getExercisesPaginatedQuery,\n {\n variables: {\n record: {\n searchText: title,\n sortField,\n sortOrder,\n type,\n limit,\n skip,\n isGlobal,\n category\n },\n },\n },\n );\n\n console.log(\"exercises\", exercises)\n return {\n exercises,\n exercisesLoading,\n };\n};\n\nexport default useExercisePage;\n","import React from 'react';\nimport {LeftIconImg, RightIconImg} from \"./components\";\n\nconst PaginatedNumbers = ({curPage, setCurrentNumber, total}) => {\n const maxPage = Math.max(Math.ceil(total /10), 1);\n const list = () => {\n let res = [];\n for (let i = Math.max(curPage -4, 0); i < Math.min(Math.ceil(total /10), curPage + 3); i++) {\n res.push(
setCurrentNumber(i+1)} style={{\n borderRadius: '50%',\n width: '36px',\n height: \"36px\",\n padding: '8px',\n background: curPage === i + 1 ? '#00ff91' : '#F7F6F6',\n textAlign: 'center',\n cursor: 'pointer', color: curPage === i + 1 ? 'black' : 'black'}}>{i+1 }\n
)\n }\n\n return res;\n }\n\n return (\n
\n
setCurrentNumber(Math.max(curPage-1, 1))}>\n \n
\n {list()}\n
setCurrentNumber(Math.min(curPage+1, maxPage))}>\n \n
\n
\n );\n};\n\nexport default PaginatedNumbers;\n","import Modal from 'react-modal';\nimport {\n ModalColumn, ModalMain, VideoSign, VideoWrapper\n} from \"../../components/add-exercise-modal.jsx/components\";\nimport React from \"react\";\nimport {CloseIcon} from \"../../components/media-modal/components\";\n\nconst VideoPreview = ({ isOpen, setIsOpen, videoUrl, youtubeVideoId }) => {\n\n const customStyles = {\n overlay: {\n backgroundColor: '#000000bb',\n zIndex: 44444444,\n },\n content: {\n backgroundColor: 'transparent',\n zIndex: '255',\n top: '50%',\n left: '50%',\n width: '70%',\n right: 'auto',\n justifyContent: 'center',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n color: '#001212',\n borderRadius: '8px',\n border: 'none',\n padding: '0 ',\n },\n };\n\n return (\n \n {console.log('url', videoUrl)}\n \n \n \n {youtubeVideoId ? (\n ) : <>\n \n \n \n {/**/}\n }\n \n \n \n )\n};\n\nexport default VideoPreview;\n","import React, {useState} from 'react';\nimport {\n DownIconImg,\n ExercisesFilters,\n ExercisesRow,\n ExercisesTD,\n FlexTDContent,\n Title,\n UpIconImg, VideoIconImg,\n} from './components';\nimport Loader from \"../../components/loader/Loader\";\nimport useExercisePage from \"../../hooks/exercisePage\";\nimport CustomButton from \"../../components/button/CustomButton\";\nimport PaginatedNumbers from \"./PaginatedNumbers\";\nimport AnIcon from \"../../assets/input/search-icon.png\";\nimport CustomInput from \"../../components/input/CustomInput\";\nimport CustomInputDropdown from \"../../components/input/CustomInputDropdown\";\nimport VideoPreview from \"./VideoPreview\";\n\nconst iconStyles = {\n borderRight: '1px solid #050000',\n height: '100%',\n width: '4.8rem',\n margin: 0,\n backgroundSize: '48% auto',\n opacity: 0.2,\n};\n\nconst availableTypes = [\n {label: 'None', value: null},\n {label: 'Upper Body', value: 'UPPERBODY'},\n {label: 'Lower Body', value: 'LOWERBODY'},\n {label: 'Core', value: 'CORE'},\n {label: 'Multi', value: 'MULTI'},\n {label: 'Stretch', value: 'STRETCH'},\n {label: 'Pilates R', value: 'PILATESR'}];\n\nconst availableCategories = [\n {label: 'None', value: null},\n {label: 'Warm up', value: 'WARMPUP'},\n {label: 'Core', value: 'CORE'},\n {label: 'Articulation', value: 'ARTICULATION'},\n {label: 'Extension', value: 'EXTENSION'},\n {label: 'Arms', value: 'ARMS'},\n {label: 'Lower body', value: 'LOWERBODY'},\n {label: 'Booty', value: 'BOOTY'},\n {label: 'Total Body', value: 'TOTALBODY'},\n {label: 'Spine Mobility', value: 'SPINEMOBILITY'},\n {label: 'Flow', value: 'FLOW'},];\n\nconst Exercises = () => {\n const [filters, setFilters] = useState({\n title: null,\n sortOrder: 'ASC',\n type: {label: 'None', value: null},\n isGlobal: true,\n currentPage: 1,\n category: {label: 'None', value: null},\n limit: 10,\n });\n\n const [videoOpen, setVideoOpen] = useState({open: false, youtubeVideoId: null, video: null});\n\n const {exercises, exercisesLoading} = useExercisePage(filters.title,\n 'title',\n filters.sortOrder,\n filters.limit,\n filters.currentPage,\n filters.isGlobal,\n filters.type.value,\n filters.category.value);\n\n\n const setTitle = (title) => {\n setFilters(prv => {\n return {\n ...prv,\n title,\n currentPage: 1,\n }\n })\n }\n const setCurrentPage = (page) => {\n setFilters(prv => {\n return {\n ...prv, currentPage: page\n }\n })\n }\n\n return (\n <>\n
\n \n Excerises\n
\n
\n setFilters({...filters, isGlobal: true})}\n >\n System Exercises\n \n
\n
\n setFilters({...filters,\n isGlobal: false,\n currentPage: 1,})}\n >\n My Exercises\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n Type\n
\n {\n setFilters(prv => {\n return {\n ...prv, type: v,\n currentPage: 1,\n }\n })\n }}\n options={availableTypes}\n style={{\n fontSize: '1.4rem',\n border: '1px solid #f7f6f6`',\n borderRadius: \"8px\",\n width: '26rem',\n height: \"4.4rem\",\n flexGrow: 1,\n }}\n />\n
\n
\n
\n
\n
\n Category\n
\n {\n console.log(v);\n setFilters(prv => {\n return {\n ...prv, category: v,\n currentPage: 1,\n }\n })\n }}\n options={availableCategories}\n style={{\n fontSize: '1.4rem',\n border: '1px solid #f7f6f6`',\n borderRadius: \"8px\",\n width: '26rem',\n height: \"4.4rem\",\n flexGrow: 1,\n }}\n />\n
\n
\n
\n \n \n \n \n \n
\n Title\n
{\n setFilters(prv => {\n return {\n ...prv,\n sortOrder: prv.sortOrder === 'ASC' ? 'DESC' : 'ASC',\n currentPage: 1,\n }\n })\n }}>\n {filters.sortOrder === 'ASC' ? : }\n
\n
\n \n \n Type\n \n \n Category\n \n \n Setting\n \n \n Gender\n \n \n Video\n \n \n \n \n {console.log(exercises)}\n {exercisesLoading ? : !!exercises?.getExercisesPaginated.exercises.length && exercises?.getExercisesPaginated.exercises.map((exercise) => {\n console.log(exercise)\n return \n {exercise.title}\n {availableTypes.find(x => x.value === exercise.type)?.label}\n {exercise.category}\n {exercise.setting}\n {exercise.gender}\n {(exercise.youtubeVideoId || exercise.video) &&
{\n setVideoOpen({open: true, youtubeVideoId: exercise.youtubeVideoId, video: exercise.video?.url})}\n }>
}
\n
\n })}\n \n \n {!exercisesLoading && }\n
\n \n setVideoOpen({open: false, youtubeVideoId: null, video: null})}/>\n \n );\n};\nexport default Exercises;\n","import React from 'react';\nimport { ThemeProvider } from 'styled-components';\n\nimport CoachSignUpPersonalInfo from './pages/sign-up/CoachSignUpPersonalInfo';\nimport CoachSignUpProfessionalInfo from './pages/sign-up/CoachSignUpProfessionalInfo';\nimport CoachSignUpResult from './pages/sign-up/CoachSignUpResult';\nimport { Route, Switch, BrowserRouter } from 'react-router-dom';\nimport Home from './pages/home/Home';\nimport Layout from './components/layout/layout';\nimport Export from './pages/export/Export';\nimport Stats from './pages/stats/Stats';\nimport Media from './pages/media/Media';\nimport Calendar from './pages/calendar/Calendar';\nimport Program from './pages/program/Program';\nimport URLS from './constants/urls';\nimport Theme from './theme';\nimport CoachProfile from './pages/profile/CoachProfile';\nimport Trainees from './pages/trainees/Trainees';\nimport SignIn from './pages/sign-in/SignIn';\nimport { useRouting } from './hooks';\nimport Groups from './pages/groups/Groups';\nimport Chat from './pages/chat';\nimport NotFound from './pages/not-found/NotFound';\nimport ProgramTemplate from './pages/program-template/ProgramTemplate';\nimport TermsOfService from './pages/terms/TermsOfService';\nimport Templates from './pages/templates/Templates';\nimport VideoCall from './pages/video-call/VideoCall';\nimport ForgotPassword from './pages/forgot-password/ForgotPassword';\nimport ResetPassword from './pages/forgot-password/ResetPassword';\nimport Finance from './pages/finance/Finance';\nimport AllTrainees from './pages/all-trainees/AllTrainees';\nimport Exercises from \"./pages/exercises/Exercises\";\n\nfunction App() {\n const { PrivateRoute, PublicRoute, RegistrationRoute, AdminRoute } = useRouting();\n\n return (\n \n \n \n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n }\n />\n \n \n \n \n \n\n \n \n\n \n\n \n \n \n \n );\n}\n\nexport default App;\n","import styled, { css } from 'styled-components';\nimport ICONS from '../../constants/icons';\n\nconst types = {\n ERROR: 'error',\n SUCCESS: 'success',\n INFO: 'info',\n};\n\nexport const Wrapper = styled.div`\n display: flex;\n pointer-events: all;\n justify-content: space-between;\n align-items: center;\n width: 36rem;\n margin-bottom: 2rem;\n background: #fff;\n border-radius: 8px;\n box-shadow: 0px 2px 4px #d0d0c8;\n border: 1px solid #e5e5e5;\n padding: 1.6rem;\n`;\n\nexport const Icon = styled.div`\n width: 2.8rem;\n height: 2.8rem;\n margin-right: 1.6rem;\n ${({ type }) =>\n type === types.ERROR &&\n css`\n background-image: url(${ICONS.AlertRed});\n `}\n ${({ type }) =>\n type === types.SUCCESS &&\n css`\n background-image: url(${ICONS.Logo});\n `}\n ${({ type }) =>\n type === types.INFO &&\n css`\n background-image: url(${ICONS.AlertYellow});\n `}\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n`;\n\nexport const Message = styled.div`\n font-size: 1.6rem;\n color: #050000cc;\n font-family: Roboto-r;\n flex-grow: 1;\n text-align: center;\n`;\n\nexport const CloseBtn = styled.div`\n font-size: 2rem;\n padding: 0.4rem;\n color: #4a4a4a;\n opacity: 0.6;\n font-family: Roboto-m;\n cursor: pointer;\n margin-left: 1.6rem;\n`;\n","import React from 'react';\nimport { Wrapper, Icon, Message, CloseBtn } from './components';\n\nconst AlertSnack = ({ options, message, close }) => (\n \n \n {message}\n X\n \n);\nexport default AlertSnack;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { ApolloProvider } from '@apollo/react-hooks';\nimport Modal from 'react-modal';\nimport { positions, Provider as AlertProvider } from 'react-alert';\nimport apolloClient from './services/apollo';\nimport './index.css';\nimport App from './App';\nimport { ChatProvider } from './services/ChatContext';\nimport CometChatManager from './services/ChatManager';\nimport AlertSnack from './components/alert-snack/AlertSnack';\nimport { NotificationProvider } from './services/NotificationContext';\nimport { MobileProvider } from './services/MobileContext';\nimport { OrganizationProvider } from './services/organizationContext';\n\nconst root = document.getElementById('root');\nModal.setAppElement(root);\n\nconst AlertOptions = {\n timeout: 4000,\n position: positions.BOTTOM_CENTER,\n containerStyle: {\n zIndex: 222222222,\n },\n};\n\nconst appID = '23039f337feab7f';\nconst region = 'eu';\nCometChatManager.initialize(appID, region);\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n root,\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n// serviceWorker.unregister();\n"],"sourceRoot":""}