{"version":3,"sources":["components/Loading/loading.module.scss","utils/rollout.js","components/BackgroundImage/backgroundImage.module.scss","components/Menu/menu.module.scss","config-constants.js","components/GlobalSearch/globalSearch.module.scss","utils/statsig.js","utils/proptypes.js","hooks/StatsigContextProvider.js","config-local.js","config.js","utils/types.js","utils/network.js","api/leaguesApi.js","redux/services/baseQuery.js","redux/services/authServices.js","redux/services/userService.js","utils/url.js","components/Img/index.js","utils/constants.js","utils/display.js","utils/helpers.js","components/BackgroundImage/index.jsx","flagContainer.js","components/hocs/withFeatureFlags.js","redux/uiSlice.js","components/GlobalSearch/Description/index.jsx","assets/icons/icon-search.svg","assets/icons/icon-verified-blue.svg","assets/icons/icon-avatar-player.svg","assets/icons/icon-avatar-club.svg","assets/icons/icon-avatar-college.svg","assets/icons/icon-avatar-event.svg","assets/icons/icon-avatar-school.svg","components/Icons/UtrIcon/index.jsx","components/GlobalSearch/utils.js","utils/analytics.js","components/GlobalSearch/globalSearchDictionary.js","components/GlobalSearch/index.jsx","assets/icons/icon-home.svg","assets/icons/icon-play.svg","assets/icons/icon-profile.svg","components/Header/index.jsx","components/Form/Input/index.jsx","components/LoadingIndicator/index.jsx","components/Form/LocationAutoComplete/index.jsx","components/Form/Location/index.jsx","components/Form/Slider/index.jsx","components/Form/Select/index.jsx","components/Form/FormSubmitButton/index.jsx","components/Form/PlayerSearch/index.jsx","hooks/useDebounce.js","components/Cards/PlayerSearchResultCard/index.jsx","utils/location.js","redux/errorPopupSlice.js","redux/conferenceDetailsSlice.js","components/Forms/CreateConferenceForm/index.jsx","pages/CreateConferencePage/index.jsx","components/Form/DateTimePicker/index.jsx","components/Icons/ApprovedIcon/index.js","components/Popups/Popup.jsx","components/Form/RadioGroup/index.jsx","components/SessionMatchFormat/index.jsx","utils/sessions.js","components/Forms/CreateSessionForm/index.jsx","pages/CreateSessionPage/index.jsx","components/Styled/index.jsx","components/Tables/LeaguesTableWrapper/index.jsx","components/Tables/ConferencesTable/index.jsx","pages/LeagueDesk/ConferencesTab/index.jsx","pages/LeagueDesk/index.jsx","pages/LeagueDesk/LeagueDeskWrapper/index.jsx","redux/services/breadcrumbService.js","components/Breadcrumbs/index.jsx","redux/genericPopupSlice.js","components/MemberRoleManager/index.jsx","components/Tables/SessionsTable/index.jsx","pages/ManageConferencePage/SessionsTab/index.jsx","pages/ManageConferencePage/index.jsx","hooks/useGetConferenceSessions.js","components/Tables/AddTeamsTable/index.jsx","components/Modals/ModalBaseSimple.jsx","components/Modals/AddTeamsNotificationModal.jsx","components/Modals/AddTeamsModal.jsx","components/AddTeamContainer/index.jsx","hooks/useGetTeamsForSessions.js","components/Popups/ConfirmPublishSchedulePopup.jsx","components/Modals/ModalBaseWithHeader.jsx","components/Form/MultiSelect/index.jsx","components/Modals/CopyPlayerModal.jsx","components/Modals/CreateDrawModal.jsx","components/MatchFormat/index.jsx","components/Modals/FullPageModal.jsx","components/Form/TimePicker/index.jsx","components/Modals/ManageSessionModal.jsx","pages/ManageSessionPage/DetailsTab/index.jsx","components/DrawTab/utils.js","hooks/useIsMobile.js","components/DrawTab/useGetTableRowsData.jsx","components/DrawTab/useGetTeamPageTableRowsData.jsx","components/DrawTab/TeamPageDrawTable/index.jsx","components/DrawTab/DrawTable.jsx","components/DrawTab/index.jsx","pages/TeamMatchPage/MatchEditModal/index.jsx","components/Modals/MovePlayerModal.jsx","components/Modals/PlayerWithdrawModal.jsx","components/Tables/GenericTable/index.jsx","assets/icons/icon-chat-blue.svg","components/Icons/MessageIcon/index.jsx","components/PlayerUtr/index.jsx","components/MoreMenu/index.jsx","components/Tables/PlayersTable/index.jsx","components/Tables/PlayersTable/PlayersTable/index.jsx","utils/teams.js","components/PlayerTab/PlayersTab/index.jsx","components/PlayerTab/index.jsx","components/AddTeamMatchModal/index.jsx","components/PlayerAvailabilityResponse/index.jsx","components/Cards/ScheduleMatchCard/TeamMatchLink/index.jsx","components/WinnerIndicator/index.jsx","components/Cards/ScheduleMatchCard/index.jsx","components/MultiWeekRound/index.jsx","components/MultiWeekByDate/index.jsx","components/DrawTab/TeamPageDrawTable/TeamPageDrawTableSelect/index.jsx","components/Schedule/index.jsx","components/Form/MultiRoundScheduleSelect/index.jsx","pages/ManageSessionPage/ScheduleTab/SessionActions/index.jsx","components/Popups/AddScheduleRoundPopup.jsx","hooks/useSessionSchedule.js","pages/ManageSessionPage/ScheduleTab/index.jsx","components/Cards/ManageSessionCaptainCard/index.jsx","components/ManageSessionTeamCaptain/index.jsx","components/Form/PasswordInput/index.jsx","pages/ManageSessionPage/ManageTeamModal/index.jsx","components/CreateTeamCaptainManager/index.jsx","pages/ManageSessionPage/CreateTeamModal/index.jsx","components/Tables/TeamsTable/index.jsx","pages/ManageSessionPage/TeamsTab/index.jsx","pages/ManageSessionPage/ManageSessionPageHeader/index.jsx","pages/ManageSessionPage/index.jsx","components/Modals/ShareTeamModal.jsx","components/Tables/MemberTeamsTable/index.jsx","pages/MemberTeamsPage/index.jsx","assets/logos/usap-sanctioned-logo.png","components/Tables/LeagueSearchResultsTable/index.jsx","components/FilterButton/index.jsx","components/ControlledLocationAutoComplete/index.jsx","pages/SearchPage/LocationFilter/index.jsx","pages/SearchPage/SliderFilter/index.jsx","components/MultiSelectFilter/index.jsx","hooks/usePostLeaguesSearch.js","pages/SearchPage/index.jsx","pages/SearchPage/SearchWrapper/index.jsx","pages/SessionPage/SessionPageHeader/index.jsx","components/Cards/ManagerCard/index.jsx","components/RegistrationInfoCard/index.jsx","pages/SessionPage/OverviewTab/index.jsx","pages/SessionPage/ScheduleTab/index.jsx","components/Tables/SessionStandingsTable/index.jsx","pages/SessionPage/StandingsTab/index.jsx","components/RegistrationDrawer/PasswordConfirmation/index.jsx","components/Form/StripeInput/index.jsx","components/RegistrationDrawer/SubmitPaymentForm/index.jsx","components/RegistrationDrawer/RegistrationConfirmation/index.jsx","components/RegistrationDrawer/TeamSelection/index.js","components/RegistrationDrawer/USAPValidation/index.jsx","components/RegistrationDrawer/index.jsx","pages/SessionPage/index.jsx","pages/TeamMatchPage/CompletedSessionModal/index.jsx","pages/TeamMatchPage/LineupControls/index.jsx","pages/TeamMatchPage/LocationTab/index.jsx","utils/postScoreShared.js","utils/postScore.js","pages/TeamMatchPage/PostTennisScoreModal/UTSet/index.jsx","pages/TeamMatchPage/MatchOutcomeSelect/index.jsx","pages/TeamMatchPage/PlayerSelect/index.jsx","pages/TeamMatchPage/PostTennisScoreModal/index.jsx","pages/TeamMatchPage/PostPickleballScoreModal/PickleballGame/index.jsx","utils/postPickleballScore.js","pages/TeamMatchPage/PostPickleballScoreModal/index.jsx","components/Cards/TeamMatchScoreCard/TeamMatchSetScores/index.jsx","components/PlayerAvatarWithUtr/index.jsx","components/Cards/TeamMatchScoreCard/index.jsx","components/Cards/TeamMatchAlternatesCard/index.jsx","pages/TeamMatchPage/TeamMatchSummary/index.jsx","pages/TeamMatchPage/TeamTab/PlayerAvailabilityEditModal/index.jsx","pages/TeamMatchPage/TeamTab/PlayerAvailabilityReminderModal/index.jsx","components/PlayerAvailabilityIndicator/index.jsx","pages/TeamMatchPage/TeamTab/TeamTabTable/index.jsx","components/SuccessSnackbar/index.jsx","pages/TeamMatchPage/TeamTab/index.jsx","components/PlayerRating/index.jsx","components/LineupDropdownItem/index.jsx","components/Cards/LineupAlternatesCard/index.jsx","components/Cards/LineupCard/index.jsx","components/Modals/SetLineupModal.jsx","hooks/usePlayerMatches.js","pages/TeamMatchPage/index.jsx","hooks/useGetTeamMatchRosters.js","components/Alert/index.jsx","components/Modals/EditTeamDetailsModal.jsx","pages/TeamPage/DetailsTab/index.jsx","components/Modals/MessagePlayersModal.jsx","components/Cards/TeamProfileInfoCard/index.jsx","pages/TeamPage/OverviewTab/index.jsx","components/Form/MultiRoundScheduleToggle/index.jsx","pages/TeamPage/ScheduleTab/index.jsx","pages/TeamPage/TeamPageHeader/index.jsx","pages/TeamPage/index.jsx","routes.js","utils/clubs.js","components/Menu/MenuLink.js","components/Menu/index.jsx","components/Loading/index.jsx","components/Popups/GenericPopup.jsx","components/Popups/ErrorPopup.jsx","App.js","redux/userSlice.js","redux/authSlice.js","redux/breadcrumbSlice.js","redux/rootReducer.js","redux/store.js","theme.js","utils/ErrorBoundary.js","index.js","components/Header/header.module.scss"],"names":["module","exports","canUseDOM","window","document","createElement","_rox","require","eval","setContext","server","Rox","setContextProps","setCustomStringProperty","context","user","email","setCustomNumberProperty","id","setCustomBooleanProperty","isClubOrganizer","isEnterpriseClubOrganizer","getFlagsContext","Object","keys","length","toLowerCase","memberId","PackageJson","buildId","process","appCodePath","version","outputPath","applicationVersion","staticContentPath","featureGates","defaultModalBaseSimplePropTypes","PropTypes","shape","isSchedulePublished","bool","isMultiWeekByDate","teamMatchId","number","isRequired","matchDate","string","location","placeName","formattedAddress","position1Team","teamId","name","points","requestingMemberPlayerAvailability","teamMemberId","position2Team","round","roundName","winnerTeamId","func","object","any","oneOfType","array","arrayOf","node","open","onClose","title","children","hideHeaderCloseIcon","defaultModalPropTypes","multiSelectFilterPropTypes","canEditTeamMatch","sessionName","isWinner","sessionId","sessionTypeId","position1","position2","captains","firstName","lastName","sessionStartDateUtc","sessionEndDateUtc","wins","losses","conference","minAge","maxAge","genderTypeId","conferenceRatings","sportTypeId","homeCourtLocation","sessionSummary","endDateUtc","sessionEntryFee","total","displayName","playerId","profileImage","display","matches","claimedPlayer","playerProfileImages","messaging","isEnabled","currentValue","searchPagePropTypes","age","rating","gender","startDate","end","teamMemberCount","captainNames","sessionDates","record","rank","teamPowerIndex","singlesRating","isSinglesEstimated","doublesRating","isDoublesEstimated","captainName","lat","lng","userLocation","sessionDetailsPropTypes","description","startDateUtc","matchesPerTeam","conferenceId","doublesMatchCount","doublesPointsPerMatch","doublesScoringFormatTypeId","doublesTimeAllowedTypeId","drawTypeId","registrationFee","registrationVerificationFee","sessionStatusTypeId","sessionDetails","sessionStandingsTypeId","singlesMatchCount","singlesPointsPerMatch","singlesScoringFormatTypeId","singlesTimeAllowedTypeId","teamRegistrationEndDateUtc","teamRegistrationStartDateUtc","teamRequiredPlayersMin","teamsMax","teamMatchFrequencyTypeId","defaultCreateConferenceFormPropTypes","label","elementType","hasPostedScores","canBeMovedOrCopied","isSubstitute","canBeRefunded","doublesUtr","isVerifiedDoubles","isVerifiedSingles","leagueId","utrRangeMin","utrRangeMax","pickleballRangeMin","pickleballRangeMax","conferenceDetails","isLoading","onConferenceUpdated","matchesPlayed","singlesUtr","singlesUTRP","displayVerifiedIcon","reliability","doublesUTRP","labelId","singlesRecord","doublesRecord","league_session_id","member_id","order_type","currency","session_fee","league_fee","service_fee","amount_paid","revenue","sessionMatchTypeId","captainRequest","currentRequest","sessionRequestStatusTypeId","isCaptainInSession","memberTeams","session","sanctionTypeId","phone","timeOfDay","registrationPin","dayOfWeek","drawId","teamName","teamMatchWins","teamMatchLosses","playerMatchPoints","playerMatchGameWinPercentage","hasRegistrationPin","leagueFee","serviceFee","currencySymbol","StatsigContext","React","createContext","StatsigContextProvider","isAdultTeamPickleballEnabled","useGate","value","isJuniorTeamPickleballEnabled","isGlobalDropdownV2Enabled","useState","state","setState","useEffect","adultTeamPickleball","juniorTeamPickleball","globalDropdownV2","memoizedState","useMemo","statsig","Provider","localConfig","localConf","console","log","rootDomain","brandedDomain","twitterHandle","links","support","supportHome","appStoreUrl","googlePlayUrl","sessionStandingsRule","devRoxKey","utrStripeAccountId","UTR_STRIPE_ACCOUNT_ID","googleApiKey","nonProdFacebookPixelId","devStatsigKey","localDevSettings","appHost","marketingAppHost","leaguesAppHost","apiAuthToken","apiHost","leaguesApiHost","searchApiHost","siteBaseUrl","brandedUrl","twitterAccount","fontUrl","roxKey","stripeHost","stripeClientId","stripeKey","useProxy","publicPath","pixelId","cdnUrl","isLocalhost","statsigKey","createNewRelicBrowserSnippet","apiUri","newRelicAppId","createTestSettings","environmentName","cdnUrlStatic","APIHOST","leaguesApiUri","LEAGUESAPIHOST","searchApiUri","newRelicBrowserSnippet","APPHOST","appHostName","APPHOSTNAME","MARKETINGAPPHOST","userSiteHost","USERSITEHOST","userSiteHostName","urljoin","segmentKey","devtoolConfig","prodCdnUrl","prodCdnUrlStatic","prodApiUri","prodLeaguesApiUri","searchApiUrl","prodServerSettings","STRIPE_CLIENT_ID","qaServerSettings","ciServerSettings","testServerSettings","test2ServerSettings","test3ServerSettings","test4ServerSettings","test5ServerSettings","test6ServerSettings","test7ServerSettings","test8ServerSettings","test9ServerSettings","test10ServerSettings","test11ServerSettings","rcSettings","config","CONFIG_SOURCE","configConstants","LeagueSessionTypes","FrequencyTypes","MatchFormatTypes","ResultTypes","ScheduleStatuses","TennisScoringFormatTypes","PickleballScoringFormatTypes","StatusTypes","WithdrawTypes","RequestStatusTypes","LeagueTypes","UT_ADULT_TEAM_TENNIS","UT_JUNIOR_TEAM_TENNIS","CLUB_ADULT_LEAGUE_TENNIS","OTHER_TENNIS","UT_ADULT_TEAM_PICKLEBALL","UT_JUNIOR_TEAM_PICKLEBALL","CLUB_ADULT_LEAGUE_PICKLEBALL","OTHER_PICKLEBALL","LeagueTierTypes","PlayerActionTypes","OrderByTypes","OrderByRuleTypes","SessionDrawTypes","MultiRoundScheduleTypes","LeagueSanctionTypes","USAP","genderTypes","sessionTypes","multiRoundScheduleTypes","matchFrequencyTypes","tennisScoringTypes","pickleballScoringTypes","durationTypes","tierTypes","openClosedStatusTypes","sessionMatchFormatTypes","drawTypes","weekdays","playerWithdrawTypes","matchResultTypes","PlayerManageOptions","searchDateFilterTypes","TournamentTeamsCount","tournamentTeamsCountOptions","SportTypeIds","getTypeForId","types","find","type","PlayerAvailabilityStatusTypes","PlayerAvailabilityStatus","PlayerAvailabilityColors","SessionStandingsRules","SessionStandingsTypes","tennisSessionStandingsOptions","pickleballSessionStandingsOptions","SearchSortTypes","SessionDateStatuses","SliderTypes","AGE","UTR","UTRP","getApiAxiosInstance","axios","create","baseURL","withCredentials","getLeaguesApiAxiosInstance","getSearchApiAxiosInstance","leaguesApiAxiosInstance","mainApiAxiosInstance","REFUND","getBreadcrumbs","contextId","url","get","getTeamsForSession","parameters","params","paramsSerializer","queryString","arrayFormat","searchLeagueSessions","axiosInstance","requestBody","post","scrollLeagueSessions","leaguesApi","createApi","reducerPath","baseQuery","baseUrl","a","method","data","requestUrl","isUsingProxy","requestBaseUrl","result","err","errorMessage","response","MessageStatusCode","Message","DisplayMessage","error","status","message","axiosBaseQuery","tagTypes","endpoints","build","getLeagueSummary","query","providesTags","getConference","getConferenceSessions","pageNumber","pageSize","getLeagueFees","getConferenceSummary","getSession","keepUnusedDataFor","getSessionSummary","getSessionTeams","getSessionSchedule","showDraftSchedule","arg","getSessionScheduleByDate","getSessionStandings","getTeam","getTeamSummary","getTeamSchedule","getTeamScheduleByDate","getRegistrationFees","getPlayers","transformResponse","teamMembers","map","member","getSchedule","scheduleId","getMatchSummary","getPlayerMatches","getLatestTeamMatchUpdate","timestamp","getMemberTeams","getPlayersAvailableTeams","getLeagueConferences","getSessionNames","getUserLeagues","getTeamMatchRosters","getTeamMatchLineups","getBillingCountries","country","createConference","mutation","invalidatesTags","addOrganizer","organizer","createSession","initiateRegistration","registrationData","requestToCaptain","createEmptySchedule","createSchedule","createTeamSeeds","createTeam","team","addCaptain","captain","messageTeamPlayers","includeCaptains","validateRegistrationPin","pin","publishSchedule","postPlayerMatchResult","playerMatchId","playerMatch","requestToJoinSession","copyTeamsToSession","teamData","validateUsapMembership","usapMemberId","addScheduleRound","newRound","addTeamMatch","newMatch","updateConference","updateSession","updateTeam","updateUnpublishSchedule","updatePlayerRegistration","withdrawRequest","withDrawType","tags","updateTeamMatchSummary","teamMatch","updateTeamMatchDateLocation","updateTeamMatchPositions","teamMatchPositions","updatePlayerMatchResult","movePlayerToTeam","fromTeamId","toTeamId","copyPlayerToTeam","toTeamIds","forEach","newTags","push","togglePlayerRosterStatus","updatePlayerAvailabilityStatus","teamMemberIds","playerAvailabilityStatusId","updateTeamMatchLineups","lineups","updatePlayerReminderStatus","updateTeamMatchLineupStatus","lineupStatusId","notifyPlayersWhenLocked","removeOrganizer","organizerId","removeTeam","removeCaptain","captainId","removeSchedule","removeSession","clearTeamMatch","removeScheduleRound","roundId","removeTeamMatch","useAddScheduleRoundMutation","useAddTeamMatchMutation","useGetLeagueSummaryQuery","useGetConferenceQuery","useGetConferenceSessionsQuery","useGetLeagueFeesQuery","useGetSessionQuery","useGetConferenceSummaryQuery","useGetSessionSummaryQuery","useGetSessionTeamsQuery","useGetSessionScheduleQuery","useLazyGetSessionScheduleByDateQuery","useGetSessionStandingsQuery","useGetTeamQuery","useGetTeamSummaryQuery","useGetRegistrationFeesQuery","useGetPlayersQuery","useGetMatchSummaryQuery","useGetScheduleQuery","useGetPlayerMatchesQuery","useGetTeamScheduleQuery","useLazyGetTeamScheduleByDateQuery","useGetLatestTeamMatchUpdateQuery","useGetMemberTeamsQuery","useGetPlayersAvailableTeamsQuery","useGetLeagueConferencesQuery","useGetSessionNamesQuery","useGetUserLeaguesQuery","useGetTeamMatchRostersQuery","useGetTeamMatchLineupsQuery","useGetBillingCountriesQuery","useCreateConferenceMutation","useAddOrganizerMutation","useCreateSessionMutation","useInitiateRegistrationMutation","useRequestToCaptainMutation","useCreateEmptyScheduleMutation","useCreateScheduleMutation","useCreateTeamSeedsMutation","usePublishScheduleMutation","useCreateTeamMutation","useAddCaptainMutation","useMessageTeamPlayersMutation","useValidateRegistrationPinMutation","usePostPlayerMatchResultMutation","useRequestToJoinSessionMutation","useCopyTeamsToSessionMutation","useValidateUsapMembershipMutation","useUpdateConferenceMutation","useUpdateSessionMutation","useUpdateTeamMutation","useUpdatePlayerRegistrationMutation","useUpdateTeamMatchSummaryMutation","useUpdateTeamMatchDateLocationMutation","useUpdateTeamMatchPositionsMutation","useUpdatePlayerMatchResultMutation","useUpdateUnpublishScheduleMutation","useMovePlayerToTeamMutation","useCopyPlayerToTeamMutation","useTogglePlayerRosterStatusMutation","useUpdatePlayerAvailabilityStatusMutation","useUpdateTeamMatchLineupsMutation","useUpdatePlayerReminderStatusMutation","useUpdateTeamMatchLineupStatusMutation","useRemoveOrganizerMutation","useRemoveTeamMutation","useRemoveCaptainMutation","useRemoveScheduleMutation","useRemoveSessionMutation","useClearTeamMatchMutation","useRemoveScheduleRoundMutation","useRemoveTeamMatchMutation","getAuthUser","createAsyncThunk","res","href","statusText","getActiveTeams","getUserPreferences","formatUrlForCdn","urlPath","test","Img","cdnSrcSet","cdnSrc","srcSet","defaultImage","src","alt","useRawSrcSet","onImgLoad","rest","parsedSrcSet","srcset","parse","stringify","updateSrcSetForCdn","ref","el","img","onError","e","target","ageSliderDictionary","utrpSliderDictionary","getAgeKeyByValue","key","DefaultSliderValues","SortType","ResponseStatuses","LeagueTabs","ManageSessionTabs","SessionTabs","BreadcrumbContexts","LeagueRoles","DistanceSliderMarks","formPaperStyles","px","py","my","ScorePositionKeys","managingTennisHeadCells","tennisHeadCells","teamProfileTennisHeadCells","managingPickleballHeadCells","pickleballHeadCells","teamProfilePickleballHeadCells","tennisTeamMatchHeadCells","pickleballTeamMatchHeadCells","tennisSubstituteTeamMatchHeadCells","pickleballSubstituteTeamMatchHeadCells","sessionStandingsHeadCells","TypographySizes","SharedUICategories","PRIMARY","SECONDARY","DISPLAY","PRIMARY_EXPANDED","SECONDARY_FLIPPED","LINK","LineupStatusType","LineupButtonLabels","LineupButtonTooltipText","FooterExploreItems","FooterProviderItems","FooterMoreItems","FooterSupportItems","FooterSocialMedia","RegistrationStepIds","TENNIS","getAgeKeys","ages","parseInt","ageDisplay","startRange","endRange","getAdjustedTimeOfDay","format","day","moment","offset","utcOffset","splitTime","split","hours","minutes","add","getPlayerDisplayUtr","player","isDoubles","utrDoubles","utrDoublesDisplay","utrDoublesNotVerified","utrDoublesNotVerifiedDisplay","utrSingles","utrSinglesDisplay","utrSinglesNotVerified","utrSinglesNotVerifiedDisplay","utrRange","isVerified","minUtrDisplay","maxUtrDisplay","getPlayerDisplayPickleballRating","pickleballRatingDisplay","getDisplayUTRPRating","singlesPkbRatingDisplay","doublesPkbRatingDisplay","pkbRating","getFormattedDate","utc","local","endDate","formattedStartDate","formattedEndDate","isSame","getAdjustedDate","date","dateUtc","adjustForDSL","isTodayDLS","isDST","isDateDLS","shouldSubtractHour","subtract","getFormattedConferenceRange","showRatingPrefix","ratingMin","ratingMax","prefix","range","minUtr","maxUtr","isUtrMinInteger","Number","isInteger","isUtrMaxInteger","minRange","toFixed","maxRange","getFormattedUtrRange","PICKLEBALL","messageUser","focus","getAlternateIds","alternates","filter","alternate","getSinglesUtr","utrRating","includes","numArray","reduce","accumulator","parseFloat","getPowerIndex","powerRating","isEstimated","getPlayerAvailabilityStatus","availabilityStatus","sortPlayersByAvailability","players","sort","b","playerAvailabilityStatusTypeId","validateLineups","lineupData","position1TeamAlternatePlayers","position2TeamAlternatePlayers","lineup","filteredIds","player1TeamMemberId","player2TeamMemberId","Set","size","isDouble","lineupPosition","hasDuplicatePosition1Alternates","hasDuplicatePosition2Alternates","getPlayerAvatarImage","getPlayerProfileUrl","mapMembersForPlayerSearch","members","descendingComparator","orderBy","getComparator","order","getLeagueTypeIdForTier","leagueTierTypes","ADULT","JUNIOR","BackgroundImage","imgSrcUrl","imageType","images","extraCls","parentStylesClass","style","imageSrc","default","formattedImageSizes","formatImageSizesByType","className","styles","backgroundImage","imageRef","currentSrc","parentNode","UtrRoxFlag","Flag","personalClub","createPlayerGroupMainMenu","ratingsListFlag","withFeatureFlags","WrappedComponent","props","featureFlags","flagContainer","uiSlice","createSlice","initialState","sideMenuOpen","reducers","setSideMenu","action","payload","toggleSideMenu","actions","Description","descriptionItems","noEllipsis","Boolean","join","UtrIcon","icon","clickable","onClick","cursor","Icon","width","height","overflow","fontSize","defaultProps","_","cloneDeep","ratingStatusPopUpData","rated","unrated","inactive","projected","ratedStrings","getRatingStatus","ratingStatus","ratingValue","getRatingProgress","ratingProgress","gtag","dataLayer","event","getClickAttrs","category","attrs","tennisGlobalNavItems","filterType","sportType","isLeagues","pickleballGlobalNavItems","defaultSearchState","clubs","hits","colleges","events","highSchools","GlobalSearch","useContext","navigate","useNavigate","cancelRef","useRef","wrapperRef","queryRef","preferences","useSelector","setIsLoading","showDropDown","setShowDropDown","searchQuery","setSearchQuery","hasSearched","setHasSearched","searchState","setSearchState","hasNoResults","hasSomeResults","getSearchResults","URLSearchParams","append","searchUrl","cancel","current","cancelToken","CancelToken","c","catch","isCancel","stateToSet","handleClickOutside","useCallback","contains","addEventListener","removeEventListener","handleSeeAllClick","typeFilter","preventDefault","handleTypeFilterClick","handleTeamLeagueSearchClick","handleTypeFilterClickV2","handleTeamLeagueSearchClickV2","renderPlayer","index","descriptionShort","userIsPowered","showDecimals","utrValue","verifiedRating","ratingChoice","myUtrSingles","myUtrStatusSingles","matchType","sortValue","progress","myUtrProgressSingles","myUtrDoubles","myUtrStatusDoubles","myUtrProgressDoubles","ratingStatusDoubles","ratingProgressDoubles","ratingStatusSingles","ratingProgressSingles","utrType","actualValue","Math","ratingNumber","ratingArray","ratingDecimal","verified","infoTitle","infoDescription","getRatingDetails","ratingType","unDisplayedStatusStatus","newRatingObject","updateRatingObject","charAt","globalSearchDropdownOption","handlePlayerClick","PlayerIcon","VerifiedIcon","place","renderSchool","schoolClub","profilePhotoUrl","isCollege","school","shortName","photoUrl","schoolName","globalSearchDropdownOptionImage","CollegeIcon","SchoolIcon","renderClub","club","memberCount","handleClubClick","ClubIcon","renderEvent","eventSchedule","eventState","showYear","eventStartDate","eventEndDate","eventStartMonth","eventEndMonth","eventStartYear","eventEndYear","getEventDateString","handleEventClick","EventIcon","globalSearchContainer","hasMarketingLinks","globalSearchInputContainer","searchIconDropDownOpen","feedbackLeft","SearchIcon","marginTop","globalSearchInput","onKeyUp","onPaste","setTimeout","trim","onFocus","placeholder","feedbackRight","globalSearchDropdownContainer","hasQuery","showTennisPills","showTennisContent","showPickleballPills","showPickleballContent","Box","pb","pt","tennisNavItems","pickleballNavItems","onTeamLeagueSearchClick","onTypeFilterClick","showTennisItems","showPickleballItems","leagueTypes","globalSearchDropDown","Button","variant","paidHitClubs","globalSearchDropdownNoMatches","globalSearchDropdownOptions","searchTypeTitle","i","source","loading","renderDropdown","mapDispatchToProps","connect","auth","showHeaderItems","nav","Container","maxWidth","flexWrap","alignItems","showOverrides","hamburger","onMenuClick","joinBtn","navLink","authed","createPlay","ProfileIcon","position","mobileNavLink","HomeIcon","PlayIcon","Input","control","hasError","rules","required","render","field","TextField","fullWidth","LoadingIndicator","backgroundColor","justifyContent","bgcolor","CircularProgress","autocompleteService","LocationAutoComplete","inputValue","setInputValue","options","setOptions","getPlacePredictions","throttle","request","callback","active","google","maps","places","AutocompleteService","input","results","newOptions","Autocomplete","getOptionLabel","option","filterOptions","x","autoComplete","includeInputInList","filterSelectedOptions","onChange","newValue","onInputChange","newInputValue","renderInput","renderOption","structured_formatting","main_text_matched_substrings","parts","main_text","match","Grid","container","item","component","LocationOnIcon","sx","color","mr","xs","part","fontWeight","highlight","text","Typography","secondary_text","Location","Slider","isLabelHidden","sliderType","sliderLength","step","getSliderData","htmlFor","max","min","Select","isFullWidth","helperText","onSelectChange","FormControl","InputLabel","MenuItem","FormHelperText","FormSubmitButton","isSubmitting","LoadingButton","disabled","loadingIndicator","PlayerSearch","isProPlayerSearch","searchMembersOnly","onPlayerSelected","selectedPlayers","setQuery","searchResults","setSearchResults","delay","debouncedValue","setDebouncedValue","handler","clearTimeout","useDebounce","delete","filteredHits","hit","every","updateStateForQuery","handleOnChange","isOptionEqualToValue","reason","handleOnInputChange","InputProps","endAdornment","optionProps","spacing","PlayerSearchResultCard","onRemovePlayer","showRemoveButton","Paper","mb","md","ml","geocoder","getLocationData","placeId","place_id","Geocoder","geocodeResults","geocode","PlacesServiceStatus","OK","formatted_address","geometry","getLocationNameFromCoordinates","latLng","address_components","city","comp","long_name","short_name","getBrowserLocationCoordinates","locationError","enableHighAccuracy","timeout","maximumAge","Promise","resolve","reject","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","errorPopupSlice","isOpen","showErrorPopup","hideErrorPopup","conferenceDetailsSlice","setSportTypeId","CreateConferenceForm","isManaging","isLoadingConference","ageRange","utrpRange","isUpdated","isSuccess","useParams","dispatch","useDispatch","originalLocation","setOriginalLocation","conferenceOrganizer","setConferenceOrganizer","setLeagueId","buttonText","defaultValues","details","conferenceRatingRange","useForm","mode","handleSubmit","reset","formState","errors","dirtyFields","confRange","conferenceLeagueId","sportId","fetchedConference","conferenceLocation","confAgeRange","confRatingRange","formData","handleFormSubmit","formValues","formattedLocation","unwrap","conferenceOrganizerMemberId","isTennisConference","mt","Divider","onSubmit","lg","multiline","minRows","elevation","CreateConferencePage","DateTimePicker","minutesStep","minDate","onDateChange","LocalizationProvider","dateAdapter","DateAdapter","inputFormat","minDateTime","inputProps","ApprovedIcon","xmlns","viewBox","fill","fillRule","clipRule","d","cx","cy","r","stroke","Popup","isSuccessful","buttonLabel","onAction","actionLabel","Dialog","p","DialogContent","padding","DialogContentText","align","DialogActions","RadioGroup","FormControlLabel","Radio","SessionMatchFormat","matchFormat","isDisabled","SINGLES","DOUBLES","BOTH","scoringTypes","Singles","minWidth","scoringType","duration","Doubles","TOURNAMENT","getTooManyMatchesPerTeamError","numberOfTotalWeeks","diff","totalWeeksAvailable","floor","CreateSessionForm","isLoadingSession","onSessionUpdated","OPEN","ONCE_A_WEEK","FIRST_MATCH_BACK_DRAW","FOUR","EIGHT","SIXTEEN","TENNIS_WIN_LOSS_RECORD","PICKLEBALL_WIN_LOSS_RECORD","hasRegisteredPlayers","hasPostedResults","hasPublishedSchedule","hasSchedule","isTennisSession","isRestrictedSession","standingsRuleOptions","setStartDate","teamRegisterStartDate","setTeamRegisterStartDate","totalPlayerCost","setTotalPlayerCost","setMatchFormat","isTournamentSession","setIsTournamentSession","skipToken","setConferenceId","leagueVerifiedFee","setLeagueVerifiedFee","showRuleConfirmationModal","setShowRuleConfirmationModal","sessionStandingsRuleId","setSessionStandingsRuleId","updatedStandingsRuleId","setUpdatedStandingsRuleId","leaguesFees","isLoadingLeaguesFees","getValues","setValue","setError","clearErrors","sessionConferenceId","fetchedSession","sessionLocation","toISOString","activeTab","isTournament","ruleValue","rule","row","startAdornment","InputAdornment","textAlign","feeValue","isNaN","handleEntryFeeChange","CreateSessionPage","StyledTableRow","styled","TableRow","theme","palette","hover","border","PostScoreInput","borderBottomColor","appColors","gradientBlue","shouldForwardProp","prop","showTiebreaker","disable","MozAppearance","borderRightWidth","borderRadius","borderBottomRightRadius","borderTopRightRadius","WebkitAppearance","PostScoreTieBreakInput","borderLeftWidth","borderTopLeftRadius","borderBottomLeftRadius","outline","TiebreakerText","top","right","darkText","ScoreCardTypography","MuiListSubheader","blue","white","isLoser","grey","black","typography","fontWeightMedium","StyledGrid","marginLeft","marginRight","common","MemberTeamTableLink","Link","CustomSwitch","background","minHeight","textTransform","lineHeight","letterSpacing","Switch","margin","transitionDuration","transform","lighterGreen","opacity","coolGrey600","StyledTooltip","Tooltip","classes","popper","tooltipClasses","tooltip","blueGrey100","boxShadow","shadows","fontFamily","secondary","arrow","LeaguesTable","useTheme","headCells","tableData","sortBy","rowComponent","isSortingDisabled","sortOrder","setSortOrder","orderProperty","setOrderProperty","Toolbar","pl","sm","pr","flex","TableContainer","Table","TableHead","headCell","TableCell","sortDirection","TableSortLabel","hideSortIcon","direction","property","whiteSpace","TableBody","slice","rowData","ConferencesTable","leagueConferences","onManageClicked","conferences","setConferences","formattedConferences","genderType","ageKeys","formatConferencesForTable","tabIndex","scope","ConferencesTab","LeagueDeskPage","leagueData","organizerLeagues","isLeagueOrganizer","onLeagueSelected","LeagueDeskWrapper","setOrganizerLeagues","setIsOrganizerLeague","isLoadingLeagueData","leagueDataError","userLeagues","isLoadingOrganizerLeagues","organizerLeaguesError","tennisLeagues","leagues","tennis","pickleballLeagues","pickleball","formattedLeagues","league","isOrganizerLeague","LeagueDesk","getBreadcrumbData","Breadcrumbs","shouldUpdateBreadcrumb","onBreadcrumbUpdated","isAdmin","breadcrumbs","CONFERENCE","SESSION","TEAM","leagueUrl","conferenceUrl","sessionUrl","getLastLabel","renderBreadcrumb","isCurrentContext","isBelowContext","to","isConferenceContext","isBelowConferenceContext","isSessionContext","isBelowSessionContext","isTeamContext","role","LinearProgress","separator","genericPopupSlice","showPopup","hidePopup","MemberRoleManager","isUpdatingRole","isLoadingTeam","memberRole","onAddMemberRole","onRemoveMemberRole","TEAM_CAPTAIN","originalMembers","setOriginalMembers","showConfirmationPopup","setShowConfirmationPopup","isRemovingMember","setIsRemovingMember","memberAwaitingAction","setMemberAwaitingAction","mappedMembers","handleOnRemoveMemberRole","popupAction","isError","popupTitle","popupMessage","SessionsTable","conferenceSessions","onManageClick","onViewClick","onRemoveClick","sessions","setSessions","formattedSessions","sessionType","sessionStatus","SessionsTab","onRemoveSession","onPageChange","pageCount","currentPage","alignContent","Pagination","page","count","ManageConferencePage","useLocation","CONFERENCE_ORGANIZER","DETAILS","SESSIONS","ORGANIZERS","setActiveTab","setShouldUpdateBreadcrumb","showDeleteConfirmation","setShowDeleteConfirmation","showDeleteError","setShowDeleteError","sessionIdToDelete","setSessionIdToDelete","setPageNumber","conferenceError","isFetchingConference","sessionResults","setSessionResults","totalPages","setTotalPages","isLoadingSessions","sessionError","totalCount","pages","ceil","useGetConferenceSessions","isAddingOrganizer","isRemovingOrganizer","isRemovingSession","isUpdatingOrganizers","isSessionsLoading","handleOnRemoveConferenceOrganizer","removedOrganizer","handleOnAddConferenceOrganizer","addedOrganizer","handleOnRemoveSession","handleOnDeleteConfirmed","handleOnCloseDeleteErrorPopup","tabs","fixed","TabContext","TabList","tab","Tab","TabPanel","conferenceOrganizers","AddTeamsTable","sessionTeams","sortByProperty","selectedTeamIds","onTeamSelected","onSortChange","maxTeamsReached","teams","setTeams","MEDIUM_MEDIUM","SMALL_MEDIUM","SMALL_BOOK","X_SMALL_MEDIUM","tableCellStyles","borderBottom","smallTableCellStyles","formattedTeams","isSelected","teamUrl","isItemSelected","avatarFontCategory","avatarFontSize","avatarHeight","avatarWidth","maxLinkWidth","subtitle","Stack","selectedTeam","onOrderPropertyChange","DialogTitleSimple","other","DialogTitle","IconButton","ModalBaseSimple","keepMounted","AddTeamsNotificationModal","selections","teamsCount","onSendClick","teamsText","m","FormGroup","Checkbox","checked","notifyCaptains","notifyPlayers","Transition","forwardRef","Slide","AddTeamsModal","isLoadingOptions","isLoadingTeams","maxTeams","currentTeamCount","selectedConferenceId","selectedSessionIds","onConferenceChange","onSessionChange","onApplyClick","onCloseSessionDropdown","onAddTeams","MEDIUM_BOOK","XX_SMALL_MEDIUM_CAP","setSelectedTeamIds","teamsToAdd","setTeamsToAdd","teamCount","setTeamCount","showConfirmationModal","setShowConfirmationModal","showSessionDropdown","setShowSessionDropdown","notifications","setNotifications","hasSessions","sessionLabelText","isApplyDisabled","PaperProps","coolGrey","fullScreen","TransitionComponent","AppBar","edge","lightGrey","onOpen","multiple","renderValue","selected","selectedOptions","selectedOptionDescriptions","indexOf","borderRight","borderColor","updatedSelectedTeamIds","updatedTeamsToAdd","addedTeam","selectedIds","handleOnTeamRemoved","red","bottom","AddTeamContainer","ASCENDING","DESCENDING","TEAM_NAME","setSelectedConferenceId","setSelectedSessionIds","originalSessionIds","setOriginalSessionIds","setSortByProperty","sessionNames","setSessionNames","skip","isLoadingConferences","isFetching","conferenceSessionNames","isLoadingSessionNames","sessionNamesError","fetchingError","sessionIds","teamSearchResults","setTeamSearchResults","isFetchingResults","setIsFetchingResults","refetch","setRefetch","handleOnSubmit","fromSessionIds","orderByRule","searchError","handleRefetch","clearSearchResults","useGetTeamsForSessions","filteredSessionNames","handleAddTeams","teamIds","ConfirmPublishSchedulePopup","checkboxLabel","isNotifyingTeams","setIsNotifyingTeams","BootstrapDialog","BootstrapDialogTitle","ModalBaseWithHeader","MenuProps","maxHeight","ITEM_HEIGHT","MultiSelect","OutlinedInput","getOptionSelections","CopyPlayerModal","availableTeams","isLoadingAvailableTeams","isSubstituteChecked","setIsSubstituteChecked","isSubmitSuccessful","values","dividers","gutterBottom","marginBottom","autoFocus","CreateDrawModal","selectableTeams","onSkip","mappedSelectableTeams","seed","sortDefaultvalues","sortedArray","drawTeams","register","watch","useFieldArray","minLength","fields","remove","SEED_DESCRIPTION","watchFieldArray","controlledFields","isShowingCTAButton","pageTitle","bottomCTAText","onBottomCTAClick","overflowY","paddingRight","defaultValue","getTeamNameForSelection","selectableTeam","isSelectableTeamSelected","noWrap","textOverflow","gap","MatchFormat","matchCount","pointsPerMatch","scoringFormatTypeId","timeAllowedTypeId","scoringFormatDescription","timeAllottedPerMatch","formatType","blueGrey","FullPageModal","ctaTitle","onCtaClick","isCtaButtonDisabled","TimePicker","ManageSessionModal","onSaveClick","X_SMALL_MEDIUM_CAP","X_SMALL_BOOK","CLOSED","canRegister","sessionRegistrationStatus","setSessionRegistrationStatus","updatedSessionRegistrationStatus","setUpdatedSessionRegistrationStatus","setEndDate","registrationStartDate","setRegistrationStartDate","registrationEndDate","setRegistrationEndDate","originalFormData","setOriginalFormData","registrationStatusDescription","extractDate","dateTimeStr","extractTime","tIndex","substring","DatePicker","newId","prevStatus","DetailsTab","showEditModal","setShowEditModal","sessionStatusMessage","dateFormat","sessionStartDate","sessionEndDate","formatTypeDescription","drawTypeDescription","typeDescription","handleOnCloseEditModal","interactionBlue","BYE_ROUND","TBD_ROUND","MANAGE_SESSION_PAGE_TYPE","getAvailableTeams","teamMatchesInRound","alreadySelectedTeamIDs","teamMatches","acc","cur","teamIDs","currentTeamMatchIDs","aSeed","bSeed","isSelectableTeamIsInThisMatch","getNameWithSeed","seedNumberPos1","getFindTeamMatchID","rounds","getRoundOneMainDrawTeamMatches","draws","draw","getSingleByeDoubleNullLabels","publishedPosition1Team","publishedPosition2Team","dataFormatted","tbdWinnerLabel","displayTournamentBracketStyle","position1FromTeamMatchId","position2FromTeamMatchId","position1FromTeamMatch","position2FromTeamMatch","getTbdWinnerLabel","byeStatusTypeId","getDataFormattedAndPublishedTeams","emptyByeTbdLabel","dateLabel","locationLabel","roundNumber","isMainDraw","totalRounds","isMainFirstRoundPublished","labelPost1","labelPost2","position1TeamId","position2TeamId","optionOne","optionTwo","getFormattedDrawCardSelectOptions","useIsTablet","setWidth","handleWindowSizeChange","innerWidth","useIsMobile","TBDLabel","useGetTableRowsData","onEditMatch","onViewMatch","onChangeClick","isTablet","initialRoundIndex","setInitialRoundIndex","selectedHeaderRows","setSelectedHeaderRows","selectedTableRows","setSelectedTableRows","getTableRows","isUsingState","currentMatch","currentStateDateLabel","formatedDateLabel","formatedLocationLabel","getFormatedFields","isScorelessMatch","getDrawCardSelectOptions","hideViewOnPublish","handleOnViewCard","hasPosition1Team","hasPosition2Team","getHideViewOnPublish","hideEditOnPublish","hasByes","onEditClick","getHideEditOnByes","isFlexWidth","emptyLabel","isSelectActive","tableRows","initialRounds","takeFirstThree","headerRows","handleOnForwardRoundClick","handleOnBackwardRoundClick","isShowingForward","isShowingBackward","useGetTeamPageTableRowsData","timeFormat","timeLabel","currentStateTimeLabel","formattedTimeLabel","formattedDateLabel","formattedLocationLabel","getFormattedTeamPageDrawFields","previousRoundName","drawRounds","roundIndex","findIndex","getPreviousRoundName","currentMatchIndex","teamMatchLink","showTeamMatchLink","getEmptyByeTbdLabel","positionTeam","winnerLabel","positionIndex","matchIndex","getTeamPageDataFormattedAndPublishedTeams","TeamPageDrawTable","isMobile","showMainDraw","TeamPageDrawCardTable","ForwardBackwardButtons","left","DrawTable","isUpdatingTeamMatch","getHasAllTeamsSelected","schedule","teamMatchesIDs","getTeamIDsFromTeamMatches","selectedTeams","DrawTab","isPublishDisabled","onDrawCreateClick","onDrawEditClick","onDrawPublishClick","onDrawUnpublishClick","onDrawDeleteClick","isDrawDisabled","hasPublishPrivileges","descriptionText","pageType","isLoadingInitalState","isDrawTable","drawType","hasAllTeamsSelected","hasATeamInAllMatches","matchesWithoutTeams","getHasATeamInAllMatches","InitialState","MatchEditModal","allowTeamSwap","isMultiRoundSession","isAttemptingToPostScore","originalDescription","setOriginalDescription","originalDate","setOriginalDate","homeTeam","setHomeTeam","awayTeam","setAwayTeam","hasUpdatedTeamPositions","matchLocation","matchDescription","handleOnClose","fullwidth","MovePlayerModal","PlayerWithdrawModal","withdrawType","selectOptions","GenericTable","borderCollapse","borderSpacing","isFirstLabel","MessageIcon","ChatIcon","PlayerUtr","utr","isAppended","isUpdatedDesign","displayComponent","MoreMenu","onOptionSelected","disableMove","disableCopy","anchorEl","setAnchorEl","MOVE_TO_TEAM","COPY_TO_TEAM","MARK_AS_ROSTERED","MARK_AS_SUBSTITUTE","handleOnItemSelected","filteredOptions","undefined","currentTarget","Menu","MenuListProps","PlayersTable","teamPlayers","onWithdrawPlayer","onMovePlayer","onCopyPlayer","onTogglePlayerStatus","hasSessionEnded","WITHDRAW","setPlayers","isTennisMatch","formattedPlayers","avatarImage","playerUrl","imgSrc","playerName","selectedOption","isSubstitutePlayers","singlesWins","singlesLosses","doublesWins","doublesLosses","nameHeadCell","groupPlayersByStatus","statuses","substitutes","rostered","PlayersTab","isCaptainView","onMessageAllPlayers","setTeamPlayers","groupedPlayers","isUpdating","displaySinglesAndDoublesRecord","setTeamId","isLoadingPlayers","playersError","isFetchingPlayers","isLoadingSessionTeams","teamsError","teamSelections","showNoResults","isFirstSearch","renderContent","AddTeamMatchModal","refetchSessionSchedule","matchStartDate","setMatchStartDate","selectedHomeTeam","setSelectedHomeTeam","selectedAwayTeam","setSelectedAwayTeam","onAddTeamMatch","getDateTimeString","time","formattedTime","matchStartTimeUtc","isValid","isDirty","manualMultiweekRound","dateStr","matchDateTime","shouldDisableDate","currentDate","startOf","isBefore","isAfter","endOf","tempHomeTeam","PlayerAvailabilityResponse","onAvailabilityChange","currentUserData","YES","MAYBE","NO","setAvailabilityStatus","userTeamMemberId","setUserTeamMemberId","showAvailabilityOptions","setShowAvailabilityOptions","showRsvpStatus","setShowRsvpStatus","buttonColor","setButtonColor","getColorForAvailabilityStatus","isUserMemberOfTeam","handleOnAvailabilityChange","rsvpStatus","endIcon","TeamMatchLink","arrowStyles","borderTop","borderLeft","rectangleStyles","blackArrowStyles","blackRectangleStyles","WinnerIndicator","isBlack","ScheduleMatchCard","isLeagueDeskSchedule","onDeleteMatch","matchNumber","LARGE","userAvailabilityData","setUserAvailabilityData","isUserOnBothTeams","setIsUserOnBothTeams","showAvailability","setShowAvailability","month","isPosition1Winner","isPosition2Winner","isMediumScreen","useMediaQuery","breakpoints","down","up","mediumScreenMargin","hasNoScoresPosted","widthOfFirstGridItem","borderRightStyles","displayMatchActions","updatePlayerAvailability","playerAvailabilityError","userAvailabilityPosition1","userAvailabilityPosition2","isUserMemberOfBothTeams","getWinnerFontSize","isPositionWinner","getWinnerFontColor","handleOnPlayerAvailabilityChange","handleOnDeleteClick","ByeMatch","columnSpacing","flexDirection","MultiWeekRound","onDeleteRound","roundMatches","sortedRoundMatches","Date","roundHasNoPostedScores","handleOnEditClick","startIcon","MultiWeekByDate","scheduleByDate","TeamPageDrawTableSelect","selectedValue","Schedule","seasonRounds","drawSchedule","multiRoundScheduleType","showAddTeamMatchModal","setShowAddTeamMatchModal","setRoundId","setShowMainDraw","BY_ROUND","BY_DATE","hasSeasonRounds","hasDrawSchedule","hasMultiRoundScheduleByDate","handleOnEditMatch","handleOnAddTeamMatch","roundIdToSet","handleOnCloseAddTeamMatchModal","handleOnViewDrawMatchClick","MultiRoundScheduleSelect","scheduleType","SessionActions","onAddRound","onAddTeamClick","onGenerateSchedule","onCreateSchedule","onPublish","onUnpublishSchedule","onScheduleChange","onDeleteSchedule","isCreatingManualSchedule","isLoadingSchedule","isScheduleCreated","maxTeamsCount","paperStyles","displayManualScheduleSelect","isTeamActionsDisabled","AddScheduleRoundPopup","insertRoundMessage","teamStandingsMessage","isTennis","disableAddRoundButton","radioGroupOptions","defaultSessionStandingType","newRoundNumberOptions","getNewRoundNumberOptions","newRoundNumber","sessionStandingTypeId","useSessionSchedule","skipFetch","NOT_FOUND","PUBLISHED","setDrawSchedule","setHasPostedScores","setIsScheduleCreated","setIsSchedulePublished","setMultiRoundScheduleType","setScheduleByDate","setScheduleId","scheduleRounds","setScheduleRounds","isFetchingSchedule","scheduleError","getScheduleByDate","dateSchedule","isFetchingScheduleByDate","dateScheduleError","isCreatingSchedule","unpublishSchedule","isPublishingSchedule","getMappedSchedule","getSessionRounds","resetSchedule","scheduleData","onPublishSchedule","onGetScheduleByDate","hasScoresPosted","statusId","ScheduleTab","MULTI_ROUND","setIsCreatingManualSchedule","showGeneratePopup","setShowGeneratePopup","showPublishPopup","setShowPublishPopup","showAddRoundPopup","setShowAddRoundPopup","showDeleteRoundPopup","setShowDeleteRoundPopup","showDeleteMatchPopup","setShowDeleteMatchPopup","showUnpublishPopup","setShowUnpublishPopup","roundIdToDelete","setRoundIdToDelete","setRoundName","setMatchNumber","matchIdToDelete","setMatchIdToDelete","showDeleteSchedulePopup","setShowDeleteSchedulePopup","matchToUpdate","setMatchToUpdate","showEditMatchModal","setShowEditMatchModal","roundCount","getRoundCount","schedulePopupMessage","isUpdatingSummary","onCreateEmptySchedule","onAddScheduleRound","isAddingRound","onRemoveMatch","handleOnCreateSchedule","handleOnConfirmDeleteSchedule","handleOnEditSubmit","handleOnAddRound","handleOnCloseAddRoundPopup","handleOnConfirmDeleteRound","handleOnConfirmDeleteTeamMatch","handleOnUnpublishSchedule","hasErrors","disableGutters","notifyTeams","ManageSessionCaptainCard","ManageSessionTeamCaptain","isUpdatingCaptains","onAddCaptain","onRemoveCaptain","maxCaptains","originalCaptains","setOriginalCaptains","showCaptainSearch","setShowCaptainSearch","isRemovingCaptain","setIsRemovingCaptain","captainAwaitingAction","setCaptainAwaitingAction","maximumAmountOfCaptains","maxCaptainsAdded","handleOnRemoveCaptain","displayMaxCaptainsAddedText","PasswordInput","showPassword","setShowPassword","togglePasswordVisibility","ManageTeamModal","teamDetails","isAddingCaptain","setSessionTypeId","teamRegistrationStatus","setTeamRegistrationStatus","updatedTeamRegistrationStatus","setUpdatedTeamRegistrationStatus","teamRegistrationAvailabilityStatusTypeId","teamSessionTypeId","adjustedTime","timeSlotDay","weekday","teamLocation","matchTime","clone","handleOnRemoveTeamCaptain","removedCaptain","handleOnAddTeamCaptain","addedCaptain","CreateTeamCaptainManager","captainsArray","Array","isArray","handleOnAddCaptain","displayCaptainSearch","CreateTeamModal","homeLocation","setHomeLocation","teamCaptain","setTeamCaptain","disableCtaButton","teamCaptainMemberId","TeamsTable","onRemoveClicked","hasSessionStarted","isRemoveDisabled","singlesPowerRating","doublesPowerRating","TeamsTab","onRemoveTeam","teamToRemove","setTeamToRemove","showCreateTeamModal","setShowCreateTeamModal","showManageTeamModal","setShowManageTeamModal","selectedTeamId","setSelectedTeamId","handleOnCloseManageTeamModal","handleOnCloseCreateTeamModal","ManageSessionPageHeader","onTabChange","LARGE_LIGHT","TEAMS","SCHEDULE","PLAYERS","DRAW","scheduleDrawLabel","Tabs","positions","ManageSessionPage","showWithdrawModal","setShowWithdrawModal","showDrawModal","setShowDrawModal","showMoveModal","setShowMoveModal","showCopyModal","setShowCopyModal","showAddTeamModal","setShowAddTeamModal","withdrawData","setWithdrawData","movePlayerData","setMovePlayerData","copyPlayerData","setCopyPlayerData","availableTeamData","setAvailableTeamData","availablePlayerTeams","setAvailablePlayerTeams","canPlayerBeRefunded","setCanPlayerBeRefunded","showDeletePopup","setShowDeletePopup","setSessionDetails","playerTeamAvailability","availableTeamsError","refetchSession","refetchSessionTeams","isRemovingTeam","isWithdrawing","movePlayer","isMovingPlayer","copyPlayer","isCopyingPlayer","isCreatingTeamSeeds","isUpdatingTeamMatchLocation","isUpdatingRosterStatus","addTeams","isAddingTeams","isUpdatingTeamPlayers","isLoadingSeedsTable","resetDrawCache","isSameOrBefore","handleOnAddTeam","handleDrawCreateClick","matchDateTimeData","handleOnRemoveTeam","handleWithdrawSubmit","isWithdrawingPlayer","isRefunding","withdraw","refund","transactionType","handleMovePlayerSubmit","newTeamId","moveRequest","handleCopyPlayerSubmit","newTeamIds","copyRequest","handleOnTogglePlayerStatus","handleOnDrawSubmit","seeds","formatData","filteredData","teamseeds","handleOnAddTeams","handleOnDrawSkip","mockTeam","handleOnChangeClick","formatId","hasBye","hasNoByeRound","handleOnConfirmPublishSchedule","publishData","startDrawLabel","endDrawLabel","playerTeamId","currentTeamId","currentSessionTeams","ShareTeamModal","onCopyClick","MemberTeamsTable","onShareClicked","captainPlayerId","rel","MemberTeamsPage","showShareModal","setShowShareModal","sharedTeamId","setSharedTeamId","teamsToDisplay","clipboard","writeText","LeaguesSearchResultsTable","formattedResults","conferenceName","isUSAPSanctionedSession","usapLogo","FilterButton","buttonTitle","isFilterApplied","Popover","anchorOrigin","vertical","horizontal","LocationAutoCompleteControlled","disableClearable","LocationFilter","hasResetFilters","onApplyFilter","onIsLoadingCurrentLocation","onClearLocation","onCurrentLocationClick","currentLocation","defaultFilterData","sliderValue","filterData","setFilterData","setIsFilterApplied","setIsOpen","getLocationName","handleOnCurrentLocationClick","handleOnApplyLocation","locationData","newLocation","marks","isEqual","SliderFilter","rangeValue","UTPRRanges","getRangeForSlider","toUpperCase","utrpSliderDisplay","MultiSelectFilter","updatedData","appliedFilters","getButtonLabel","mx","isChecked","hasNoSelections","usePostLeaguesSearch","searchFilters","apiResponse","setApiResponse","isEndOfResults","setIsEndOfResults","currentScrollId","setCurrentScrollId","isLoadingMoreResults","setIsLoadingMoreResults","pagination","take","searchProperties","getScrollResults","scrollId","documents","handleOnSearchSubmit","requestScrollId","handleOnLoadMoreClick","SearchPage","leagueTypeId","leagueTierType","START_DATE","UTR_SORT","UTRP_SORT","dateStatus","defaultDateStatus","defaultSearchFilters","leagueTypeIds","distanceFilter","distance","long","ageFilter","utrFilter","utrPFilter","sessionDateStatuses","genderTypeIds","sportTypeIds","setSearchFilters","hasResetSearchFilters","setHasResetSearchFilters","setCurrentLocation","currentLeagueTierType","setCurrentLeagueTierType","currentDateStatus","setCurrentDateStatus","isLoadingCurrentLocation","setIsLoadingCurrentLocation","handleOnUrlChange","resetSearchOnUrlChange","resetSearch","handleOnApplyLocationFilter","isLoadingLocation","dateStatuses","tierTypeId","utrs","utrps","utrPMin","utrPRMax","utrPRangeMin","utrPRangeMax","SearchWrapper","setUserLocation","setSportType","setLeagueTierType","parsedLeagueId","SessionPageHeader","OVERVIEW","STANDINGS","ManagerCard","managers","isUserLoggedIn","parsedNumber","parsePhoneNumber","phoneNumber","formatInternational","handleOnMessageClick","RegistrationInfoCard","cost","sessionData","onRequestToCaptain","onRegisterButtonClick","PENDING","rangeTitle","today","isPlayerInSession","isCaptainRequestPending","isTodayBeforeSessionEndDate","isTodayBeforeRegistrationEndDate","isNotAPlayerOrCaptainInSession","showRequestToCaptainButton","TEAMS_FORMING_TEXT","TEAMS_FORMING_CAPTAIN_TEXT","showTeamsFormingText","Card","CardContent","OverviewTab","desktopPadding","displayMultiRoundScheduleSelect","SessionStandingsTable","sessionStandings","percentageLabel","standingsHeadCells","gamesWonPercentage","StandingsTab","teamStandings","PasswordConfirmation","onPinSubmitted","isInvalidPasscode","paddingTop","onMessageClick","StripeInput","inputRef","elementRef","Component","useImperativeHandle","onReady","element","registrationTerms","SubmitPaymentForm","clientSecret","onRegistrationSuccessful","segmentTrackingBody","stripe","useStripe","elements","useElements","stripeError","setStripeError","billingCountries","address","analytics","track","confirmCardPayment","payment_method","card","getElement","CardElement","billing_details","stripeCardError","handleInputOnFocus","InputLabelProps","shrink","inputComponent","pattern","RegistrationConfirmation","registrationFees","onRegistrationSuccess","formattedServiceFee","formattedTotalFee","finalCurrencySymbol","isPaidLeague","TeamSelection","onTeamCardClick","onNotifyOrgClick","canSendSessionJoinRequest","getCaptains","toString","formatDescription","USAPValidation","onMemberIdSubmitted","validationError","borderStyle","borderWidth","coolGrey500","RegistrationDrawer","isUsapSanctionedSession","onFreeSessionRegistration","onTeamSelectionClick","isSessionPage","isLargeScreen","activeStep","setActiveStep","setClientSecret","isInvalidPin","setIsInvalidPin","setRegistrationPin","setUsapMemberId","registrationSteps","setRegistrationSteps","stripeInstance","setStripeInstance","usapValidationError","setUsapValidationError","isInitiatingRegistration","setIsInitiatingRegistration","userName","drawerWidth","SMALL_MEDIUM_CAP","TEAM_SELECTION","PASSWORD_CONFIRMATION","EVENT_QUESTIONS","CONFIRM_DETAILS","validatePin","isLoadingPinValidation","isUsapMembershipValid","isLoadingMemberValidation","initiateTeamRegistration","secret","paymentAccountId","isFreeSession","loadStripe","stripeAccount","handleNext","prev","startRegistration","shouldAdvanceStep","steps","stepCount","hasTeamData","hasMultipleStepsSessionPage","handleOnPinSubmitted","handleOnUSAPMemberIdSubmitted","showBackButton","isTeamSelectionStep","isPinValidationStep","isEventQuestionsStep","isConfirmDetailsStep","Drawer","anchor","isUsapSanctionedSection","SessionPage","currentTeamData","setCurrentTeamData","showRegistrationDrawer","setShowRegistrationDrawer","showRegistrationSuccessPopup","setShowRegistrationSuccessPopup","showNotifyOrganizerSuccessPopup","setShowNotifyOrganizerSuccessPopup","showNotifyOrganizerFailurePopup","setShowNotifyOrganizerFailurePopup","teamsAvailableData","sessionSummaryError","refetchSummary","isLoadingStandings","standingsError","refetchStandings","isSuccessfulRequest","handleRemoveTeamData","handleOnRequestToCaptain","handleOnNotifyOrgClick","handleOnRegisterClick","handleOnCloseRegistrationSuccessPopup","handleOnCloseNotificationSuccessPopup","handleOnCloseNotificationFailurePopup","currentSession","mappedSession","registrationDates","mapSession","sessionDescription","singlesFormat","doublesFormat","MATCH_TAB","noSidePadding","renderSessionContent","sessionJoinRequest","totalFee","CompletedSessionModal","LineupControls","canUserViewLineups","hasMatchDatePassed","onShowLineupModal","onLineupStatusChange","LOCKED","DRAFT","PUBLISH","UNPUBLISH","LOCK","UNLOCK","PUBLISH_TOOLTIP","LOCK_TOOLTIP","UNPUBLISH_TOOLTIP","UNLOCK_TOOLTIP","setLineupStatusId","showSetLinesButton","setShowLinesButton","showEditLinesButton","setShowEditLinesButton","showLockButton","setShowLockButton","showPublishButton","setShowPublishButton","isLineupStatusButtonsDisabled","setIsLineupStatusButtonsDisabled","isUserCaptain","setIsUserCaptain","lockButton","publishButton","lockTooltip","publishTooltip","lineupButtonLabels","setLineupButtonLabels","isTeamCaptain","numberOfSetLines","numberOfLines","isDraftLineup","isLockedLineup","isCaptainWithNoScoresPosted","isSetLinesButtonVisible","isEditLinesButtonVisible","isLockButtonVisible","isPublishButtonVisible","isStatusButtonsDisabled","lockButtonLabel","lockTooltipText","publishButtonLabel","publishTooltipText","handleOnShowLineupModal","handleOnTogglePublish","updatedStatus","placement","LocationTab","COMPLETED","COMPLETED_WITH_PARTIAL_SCORES","DEFAULTED","WITHDREW","RETIRED","INCOMPLETE","MATCH_NOT_PLAYED","SideKeys","MatchPositionKeys","MatchPositions","PlayerKeys","ValidationErrors","isNumericScore","score","hasScoresEntered","matchScores","hasScore","hasPosition1Score","position1Score","hasPosition2Score","position2Score","findPlayerInTeam","switchMatchScores","side1","side2","sideResult","sideId","getResultScore","getPositionsForMatch","isSide1Position1","hasDuplicatePlayersInMatch","playerIds","player1","player2","hasInvalidPlayerCount","matchOutcomeId","createDefaultedMatchResults","matchOutcome","clearedSideResult","set1Score","set2Score","set3Score","set4Score","set5Score","tieBreakSet1Score","tieBreakSet2Score","tieBreakSet3Score","tieBreakSet4Score","tieBreakSet5Score","winningSideId","resultCompletionTypeId","side1Results","player1MemberId","player1PlayerId","player2MemberId","player2PlayerId","side2Results","outcomeId","position1Results","position2Results","createMatchResults","sets","position1Tiebreaker","position2Tiebreaker","getMatchOutcomeOptions","positionOnePlayerOne","positionTwoPlayerOne","position1SideId","position2SideId","position1Name","position2Name","hasScores","scoreType","hasPartialScores","contest","getOutcomeForExistingMatch","outcome","outcomeIndex","winnerSideId","BEST_OF_THREE","TWO_SETS_WITH_TIEBREAKER","SINGLE_SET","TIME_BASED","FAST_FOUR","DefaultSets","isSetTied","set","isTieScore","hasTiebreakerScore","abs","validateTiebreaker","tiebreakerError","validateTimeBasedSet","isValidCompletedSetScore","hasSetScores","hasPartialSetScores","isTiebreakerScore","validateCompletedBestOfThree","isTiebreakerSet3Score","hasTieScore","hasOutOfRangeScore","hasNotMetMinimumAmountOfPoints","hasThirdSetTie","hasOutOfRangeThirdSetScore","validateCompletedTwoSetWithTiebreaker","maxProSetPointsAllowed","validateCompletedSingleSet","validateCompletedFastFour","isValidCompletedSet","isValidPartialSetScore","hasMissingTiebreakerScore","isPosition1ScoreInvalid","isPosition2ScoreInvalid","isValidPartialScore","getWinnerForSets","partialSetCount","isWinnerPosition1","position1CompletedWins","position2CompletedWins","position1PartialWins","position2PartialWins","invalidSetId","sortedSetIds","hasUnorderedScoringSets","isPosition1FirstSetWinner","scoringSets","position1GamesWon","position2GamesWon","isFirstSet","getPartialScoreWinnerForTimeBasedSets","validSetError","totalPosition1Wins","totalPosition2Wins","UTSet","onScoreChange","currentSetId","POSITION_ONE_SCORE","POSITION_ONE_TB_SCORE","POSITION_TWO_SCORE","POSITION_TWO_TB_SCORE","isTie","setIsTie","showTiebreakerInput","setShowTiebreakerInput","showPosition1Tiebreaker","showPosition2Tiebreaker","isSetTie","handleOnScoreChange","changedSet","positionKey","isTiebreaker","handleOnFocus","setid","MatchOutcomeSelect","hasEnteredScores","onMatchOutComeChange","PlayerSelect","player1Id","player2Id","playerOptions","side","onPlayerChange","isSmallScreen","PLAYER_1","PLAYER_2","handleOnPlayerChange","selectedPlayer","renderOptions","PostTennisScoreModal","position1Players","position2Players","selectedMatch","onSaveMatchScore","onDuplicatePlayersInMatch","onInvalidPlayerCount","SIDE_1","SIDE_2","position1TeamName","position2TeamName","setCurrentMatch","setSets","originalSets","setOriginalSets","setCurrentSetId","originalMatch","setOriginalMatch","scoringError","setScoringError","setHasEnteredScores","matchOutcomeOptions","setMatchOutcomeOptions","setMatchOutcome","originalMatchOutcome","setOriginalMatchOutcome","setWinningSideId","isEditing","setIsEditing","hasUnchangedScores","hasUnchangedMatch","hasUnchangedMatchOutcome","isUnchangedMatch","existingSets","position1Result","position2Result","hasSet1Position1Score","hasSet1Position2Score","hasSet1Position1TiebreakerScore","hasSet1Position2TiebreakerScore","hasSet2Position1Score","hasSet2Position2Score","hasSet2Position1TiebreakerScore","hasSet2Position2TiebreakerScore","hasSet3Position1Score","hasSet3Position2Score","hasSet3Position1TiebreakerScore","hasSet3Position2TiebreakerScore","getExistingMatchSets","position1Player1Id","position1Player2Id","position2Player1Id","position2Player2Id","handleOnSetScoreChange","setId","validatedValue","isTieBreaker","getValidatedValueForSet","newSets","setIndex","newSet","updatedSet","handleOnSetFocus","handleOnSwitchScores","updatedSetScores","switchSetScores","updatedMatch","playerPosition","matchName","position1PlayerSide","position2PlayerSide","hasNonScoringOutcome","hasNoErrors","hasDuplicatePlayers","hasInvalidPlayerAmount","winnerId","PickleballGame","game","changedGame","BEST_OF_THREE_GAMES","SINGLE_GAME","TIME_BASED_GAME","DefaultPickleballGames","isValidCompletedGameScore","hasGameScores","hasPartialGameScores","validatePickleballGame","isValidCompletedGame","PostPickleballScoreModal","games","setGames","originalGames","setOriginalGames","existingGames","getExistingPickleballMatchGames","handleOnGameScoreChange","gameId","getValidatedValueForGame","newGames","gameIndex","newGame","updatedGames","switchGameScores","renderPickleballGames","hasPreviousGameScore","hasCurrentScores","tieScoreGameId","position1Wins","position2Wins","positionOneTotalPoints","positionTwoTotalPoints","getWinnerForGames","SetScores","outcomeDescription","isScorelessOutcome","hasSet1Score","hasSet2Score","hasSet3Score","hasSet1TiebreakerScore","hasSet2TiebreakerScore","hasSet3TiebreakerScore","fontColor","displayOutcomeDescription","noScores","PlayerAvatarWithUtr","player1Name","player2Name","AvatarWithUtrTemplate","TeamMatchScoreCard","onEditClicked","onClearMatchClick","isIncompleteOutcome","isDefaultedOutcome","showClearButton","TeamMatchSetScores","TeamMatchAlternatesCard","positionAlternates","alternatePlayers","TeamMatchSummary","summary","scores","winningTeamId","homeScore","awayScore","hasWinner","awayTeamUrl","homeTeamUrl","homeTeamTextColor","awayTeamTextColor","truncatedTextStyles","gradientTurquoise","PlayerAvailabilityEditModal","onStatusChange","PlayerAvailabilityReminderModal","onReminderChange","playersToRemind","setPlayersToRemind","getLabelForAvailabilityStatus","groupedPlayersByAvailability","statusTypeId","entries","ids","some","selectedPlayerIds","updatedPlayersToRemind","splice","handleAvailabilityReminderSwitch","flat","PlayerAvailabilityIndicator","onAvailabilityClick","isIconOnly","iconSize","green","orange","getIconForAvailabilityStatus","getButtonForAvailabilityStatus","PlayerTableRow","isUserTeamMember","utrp","playerImage","TeamTabTable","SuccessSnackbar","Snackbar","autoHideDuration","ContentProps","TeamTab","displaySuccessSnackbar","onCloseSuccessSnackbar","showRemindersModal","setShowRemindersModal","showAvailabilityModal","setShowAvailabilityModal","availabilityIdToBeUpdated","setAvailabilityIdToBeUpdated","LARGE_BOOK","handleOnCloseAvailabilityModal","handleOnAvailabilityClick","filteredRosteredPlayers","filteredSubstitutePlayers","substituteHeadCells","remindersPlayerData","PlayerRating","LineupDropdownItem","noRecord","totalPlayed","avatarOnly","LineupAlternatesCard","roster","onAddAlternate","onRemoveAlternate","teamPlayer","getPlayerNameForSelection","LineupCard","canEditPosition1","canEditPosition2","POSITION_1","POSITION_2","MATCH_POSITION_1","MATCH_POSITION_2","currentLineup","setCurrentLineup","selectedPlayer1Position1","setSelectedPlayer1Position1","selectedPlayer2Position1","setSelectedPlayer2Position1","selectedPlayer1Position2","setSelectedPlayer1Position2","selectedPlayer2Position2","setSelectedPlayer2Position2","cardTitle","showBothPositions","teamPosition","isPlayerTwo","isPosition1","positionTeamId","playerTeamMemberId","updatedLineup","sortedPosition2Players","sortedPosition1Players","doublesPlayer2Value","doublesPlayer1Value","singlesPlayerValue","POSITION_1_ALTERNATES","POSITION_2_ALTERNATES","APPENDED_ALTERNATE","SetLineupModal","matchLineups","setMatchLineups","position1AlternatePlayers","setPosition1AlternatePlayers","position2AlternatePlayers","setPosition2AlternatePlayers","isAlternatesDisabled","setIsAlternatesDisabled","updateLineups","isPosition1Lineup","position1Alternates","position2Alternates","resetField","position1Fields","position1Append","position1Remove","position2Fields","position2Append","position2Remove","mappedAlternateIds","singlesLineups","doublesLineups","position1Ids","position2Ids","lineupTeamMemberIds","lineupIds","handleOnFormSubmit","position1AlternateIds","position2AlternateIds","foundIndex","isExistingLineup","updatedMatchLineups","updatedLineups","playerIndex","handleOnAddAlternate","handleOnRemoveAlternate","indexToRemove","alternatePositionFields","alternateError","alternateFieldName","alternateRoster","alternateTeamName","alternateTeamId","scroll","LineupStatusMessaging","notifyPlayersMessage","TeamMatchPage","LINES","LOCATION","AWAY_TEAM","HOME_TEAM","showPostScoreModal","setShowPostScoreModal","setSelectedMatch","teamScores","setTeamScores","pollingInterval","setPollingInterval","isPostingScore","setIsPostingScore","setWinningTeamId","setTimestamp","showCompletedSessionModal","setShowCompletedSessionModal","showLineupModal","setShowLineupModal","showClearMatchModal","setShowClearMatchModal","showAvailabilityReminderSnackbar","setShowAvailabilityReminderSnackbar","matchToBeCleared","setMatchToBeCleared","showLineupNotificationModal","setShowLineupNotificationModal","updatedLineupStatus","setUpdatedLineupStatus","setHasMatchDatePassed","setIsAttemptingToPostScore","teamMatchDate","setTeamMatchDate","setPosition1Team","setPosition2Team","userTeamMemberIds","setUserTeamMemberIds","rosters","isLoadingRosters","requestingMember","useGetTeamMatchRosters","refetchMatchSummary","latestResultData","latestResultError","playerMatches","setPlayerMatches","setLineupData","setCanUserViewLineup","showCompletedSessionWarning","setShowCompletedSessionWarning","showConfirmation","lineupStatusConfirmation","setLineupStatusConfirmation","isLoadingPlayerMatches","updateLineupStatus","showVerifiedCompletedSessionWarning","canViewLineups","getSnackbarConfirmationNotification","isNotifyingPlayers","locked","published","isCurrentStatusPublished","handleOnLineupStatusChange","confirmation","handleOnCloseStatusConfirmation","usePlayerMatches","updatePlayerReminder","isClearingTeamMatch","sortMatchesByLineupPosition","resultsLastUpdatedMs","isNowAfterMatchDate","update","showDuplicatePlayersError","showInvalidPlayerCountError","handleOnCloseScoreModal","handleOnSaveMatchScore","handleOnEditScoreClicked","singlesMatches","singlePlayerMatches","doublesMatches","doublesPlayerMatches","allMatches","matchToBeUpdated","selectedMatchToBeUpdated","handleOnCloseSuccessSnackbar","handleOnReminderChange","handleOnClearMatchClick","handleOnConfirmClearMatch","handleOnLineupModalAction","singleMatchesToDisplay","doubleMatchesToDisplay","showPosition2Alternates","position2TeamAlternates","showPosition1Alternates","position1TeamAlternates","canPostScores","isCaptain","singlesScoringFormatType","doublesScoringFormatType","Alert","EditTeamDetailsModal","registrationStatus","MessagePlayersModal","onMessageSubmitted","onRequestClose","shouldIncludeCaptains","setShouldIncludeCaptains","clearForm","TeamProfileInfoCard","onJoinClick","onShareClick","isRegistrationAvailable","isTodayAfterSessionEndDate","isRegistrationDisabled","teamSummary","isLoadingRegistration","onRegisterClick","fees","showAddCaptainModal","setShowAddCaptainModal","captainToBeUpdated","setCaptainToBeUpdated","mappedCaptains","handleOnConfirmRemoval","handleOnConfirmAddition","handleOnCloseAddCaptainModal","captainToBeRemoved","MultiRoundScheduleToggle","ToggleButtonGroup","exclusive","ToggleButton","setRounds","teamScheduleByDate","isLoadingTeamScheduleByDate","teamScheduleByDateError","teamSchedule","handleOnScheduleChange","mappedRoundMatches","filteredTeamMatches","TeamPageHeader","mobileAndDesktopCategory","mobileAndDesktopSize","mobileDisplay","mobileSpacing","mobileColon","sessionLink","lightBlue","TeamPage","parsedTeamId","setIsCaptainView","setTab","showMessagePlayersPopup","setShowMessagePlayersPopup","isSuccessAlertOpen","setIsSuccessAlertOpen","teamDataError","refetchTeam","isLoadingTeamDetails","teamDetailsError","feesError","messageAllPlayers","hasMessagedPlayers","handleOnShareClick","handleOnMessagePlayersClick","handleOnMessagePlayers","handleOnCloseSuccessAlert","numOfWins","numOfLosses","typeId","renderTeamContent","severity","AppRoutes","path","ClubTierTypes","ClubRoles","clubTiers","getClubTypeString","MenuLink","trackedContent","pathname","menuItem","ui","isLoadingMemberTeams","collapsed","setCollapsed","toggleMyProfile","setToggleMyProfile","toggleMyAccount","setToggleMyAccount","handleLogOut","ev","Cookies","expire","handleClose","ADMIN","OWNER","MEMBER","visibleClubs","clubMemberships","hiddenClubTypes","getClubsVisibleToUser","clubsWhereUserIsAdminOrOwner","roleValue","isPremiumClubsOrganizer","tierTypeName","clubsWhereUserIsMember","sortedClubMemberships","PAID_HIT","paidHitClub","filteredClubs","sortClubMembershipsByPaidHit","clubMembershipsToDisplay","SwipeableDrawer","closeArea","closeBtn","menuSection_options","onboardingCompleted","onboardingRequired","playerDetails","isPowered","isProClubHeadOrganizer","menuSection","menuTitle","collapsible","enableBetaFeatures","clubMembership","clubId","isPersonalClubHeadOrganizer","canCreateEvent","section","onKeyDown","Loading","loadingPage","innerWrapper","iconWrapper","iconSpinner","reverse","GenericPopup","genericPopup","ErrorPopup","errorPopup","App","isLoadingUser","isUserLoaded","isMemberTeamsLoaded","isLoadingPreferences","isPreferencesLoaded","roxInit","setRoxInit","segmentAnalytics","load","env","setup","then","RoxSetCustomProperties","showExpandedNav","sdkKey","statsigEnvironment","tier","userID","waitForInitialization","exploreItems","providerItems","moreItems","supportItems","onSocialMediaClick","socialMediaItem","userSlice","extraReducers","pending","fulfilled","rejected","authSlice","clearUser","updateProfilePicture","breadcrumbSlice","combineReducers","reducer","apiInstances","main","persistConfig","storage","whitelist","blacklist","persistedReducer","persistReducer","rootReducer","store","configureStore","middleware","getDefaultMiddleware","thunk","extraArgument","serializableCheck","ignoredActions","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","concat","persistor","persistStore","lighterGrey","darkGrey","darkestGrey","secondaryButtonDisabled","gradient","secondaryFont","appGradient","tabButtonSidePadding","defaultButtonStyle","darkButtonStyle","lightButtonStyle","whiteButtonStyle","filterButtonStyle","filterSelectedButtonStyle","smallButtonStyle","largeButtonStyle","createTheme","primary","rsvpGreen","rsvpOrange","rsvpRed","subtitle2","h2","fontWeightLight","h3","h3_grey","h4_grey","fontWeightRegular","h5_grey","subHeading","caption","caption_blue","body1","details_grey","cardSubtitle","components","MuiButtonBase","styleOverrides","root","disableRipple","MuiButton","variants","MuiInputLabel","MuiSlider","thumb","MuiTabs","indicator","borderImage","borderImageSlice","MuiCard","paddingBottom","MuiToggleButton","ErrorBoundary","errorInfo","this","NREUM","noticeError","errorType","componentStack","ReactDOM","StrictMode","ThemeProvider","getElementById"],"mappings":"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,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,MAAM,kBAAkB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,OAAO,mBAAmB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,QAAQ,oBAAoB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU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,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,SAAS,qBAAqB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,WAAW,uBAAuB,UAAU,sBAAsB,WAAW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U,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,SAAS,6BAA6B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,+BAA+B,UAAU,8BAA8B,WAAW,+BAA+B,WAAW,+BAA+B,WAA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BAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,w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BAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,YAAY,0BAA0B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,YAAY,0BAA0B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,eAAe,6BAA6B,IAAM,oBAAoB,WAAW,yBAAyB,SAAW,yBAAyB,WAAW,yBAAyB,OAAS,uBAAuB,WAAW,yBAAyB,KAAO,qBAAqB,gBAAgB,8BAA8B,YAAY,0BAA0B,WAAW,yBAAyB,gBAAgB,8BAA8B,cAAc,4BAA4B,WAAW,yBAAyB,QAAU,wBAAwB,WAAa,2BAA2B,UAAY,0BAA0B,KAAO,qBAAqB,QAAU,wBAAwB,cAAgB,8BAA8B,gBAAkB,gCAAgC,cAAgB,8BAA8B,OAAS,uBAAuB,QAAU,2B","file":"static/js/main.103e8304.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingPage\":\"loading_loadingPage__1lr-k\",\"innerWrapper\":\"loading_innerWrapper__6tcRO\",\"iconWrapper\":\"loading_iconWrapper__3XmlC\",\"iconSpinner\":\"loading_iconSpinner__1WwSY\",\"rotation\":\"loading_rotation__3qwIE\",\"reverse\":\"loading_reverse__187RH\",\"rotationRev\":\"loading_rotationRev__1UyMp\"};","/* eslint-disable no-underscore-dangle */\r\nconst canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\r\nlet _rox;\r\n\r\nif (canUseDOM) {\r\n // eslint-disable-next-line global-require\r\n _rox = require('rox-browser');\r\n} else {\r\n // eslint-disable-next-line no-eval\r\n _rox = eval(`require('rox-node')`);\r\n if (_rox) {\r\n // nice to have\r\n _rox.setContext({ server: true });\r\n }\r\n}\r\n\r\nexport const Rox = _rox;\r\n\r\nexport const setContextProps = () => {\r\n Rox.setCustomStringProperty('email', (context) => {\r\n // debugger;\r\n // return context.user.email;\r\n return context.user && context.user.email;\r\n });\r\n Rox.setCustomNumberProperty('memberId', (context) => {\r\n // return context.user.id;\r\n return context.user && context.user.id;\r\n });\r\n Rox.setCustomBooleanProperty('isClubOrganizer', (context) => {\r\n // return context.user.isClubOrganizer;\r\n return context.user && context.user.isClubOrganizer;\r\n });\r\n Rox.setCustomBooleanProperty('isEnterpriseClubOrganizer', (context) => {\r\n // return context.user.isEnterpriseClubOrganizer;\r\n return context.user && context.user.isEnterpriseClubOrganizer;\r\n });\r\n};\r\n\r\nexport const getFlagsContext = (user) => {\r\n const isValidUser = user && Object.keys(user).length > 0 && user.email && user.email.length > 0 && user.id > 0;\r\n\r\n if (isValidUser) {\r\n return {\r\n user: {\r\n email: user?.email?.toLowerCase(),\r\n memberId: user.id,\r\n isClubOrganizer: user.isClubOrganizer,\r\n isEnterpriseClubOrganizer: user.isEnterpriseClubOrganizer,\r\n },\r\n };\r\n }\r\n return {\r\n user: {},\r\n };\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"backgroundImage\":\"backgroundImage_backgroundImage__36_u4\",\"playerProfileImage\":\"backgroundImage_playerProfileImage__1ZsGO\",\"clubProfileImage\":\"backgroundImage_clubProfileImage__3RjFy\",\"playerIconImage\":\"backgroundImage_playerIconImage__1xlZv\",\"clubProfileIconImage\":\"backgroundImage_clubProfileIconImage__3QYdk\",\"playerThumbnailImage\":\"backgroundImage_playerThumbnailImage__qqtPr\",\"clubProfileThumbnailImage\":\"backgroundImage_clubProfileThumbnailImage__QlpAf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"menu_container__KRqCy\",\"container-fluid\":\"menu_container-fluid__5GqUs\",\"container-xl\":\"menu_container-xl__1ClMA\",\"container-lg\":\"menu_container-lg__1gjBe\",\"container-md\":\"menu_container-md__37_rr\",\"container-sm\":\"menu_container-sm__1IkAe\",\"row\":\"menu_row__2aoBP\",\"no-gutters\":\"menu_no-gutters__11GBT\",\"col\":\"menu_col__1Nt1T\",\"col-xl\":\"menu_col-xl__L5rip\",\"col-xl-auto\":\"menu_col-xl-auto__16Fy6\",\"col-xl-12\":\"menu_col-xl-12__1ih4-\",\"col-xl-11\":\"menu_col-xl-11__15T1L\",\"col-xl-10\":\"menu_col-xl-10__3xok4\",\"col-xl-9\":\"menu_col-xl-9__3j8e-\",\"col-xl-8\":\"menu_col-xl-8__3IwuL\",\"col-xl-7\":\"menu_col-xl-7__1f_IV\",\"col-xl-6\":\"menu_col-xl-6__2rSlU\",\"col-xl-5\":\"menu_col-xl-5__1wtvU\",\"col-xl-4\":\"menu_col-xl-4__1yVhG\",\"col-xl-3\":\"menu_col-xl-3__3U8Rs\",\"col-xl-2\":\"menu_col-xl-2__1jX7z\",\"col-xl-1\":\"menu_col-xl-1__rHm3f\",\"col-lg\":\"menu_col-lg__TugEo\",\"col-lg-auto\":\"menu_col-lg-auto__2MD2-\",\"col-lg-12\":\"menu_col-lg-12__2GkQ3\",\"col-lg-11\":\"menu_col-lg-11__1dofu\",\"col-lg-10\":\"menu_col-lg-10__2WRQf\",\"col-lg-9\":\"menu_col-lg-9__Et-kN\",\"col-lg-8\":\"menu_col-lg-8__MjErs\",\"col-lg-7\":\"menu_col-lg-7__17Sx9\",\"col-lg-6\":\"menu_col-lg-6__Zaw_s\",\"col-lg-5\":\"menu_col-lg-5__SoKgw\",\"col-lg-4\":\"menu_col-lg-4__3ioNO\",\"col-lg-3\":\"menu_col-lg-3__3IuiJ\",\"col-lg-2\":\"menu_col-lg-2__2iY9Q\",\"col-lg-1\":\"menu_col-lg-1__1s_mT\",\"col-md\":\"menu_col-md__3fK1P\",\"col-md-auto\":\"menu_col-md-auto__2Xgry\",\"col-md-12\":\"menu_col-md-12__1kOGL\",\"col-md-11\":\"menu_col-md-11__29JtA\",\"col-md-10\":\"menu_col-md-10__2CLvp\",\"col-md-9\":\"menu_col-md-9__gKmLU\",\"col-md-8\":\"menu_col-md-8__2DNCA\",\"col-md-7\":\"menu_col-md-7___2OH8\",\"col-md-6\":\"menu_col-md-6__2iyz2\",\"col-md-5\":\"menu_col-md-5__349ZD\",\"col-md-4\":\"menu_col-md-4__1-72y\",\"col-md-3\":\"menu_col-md-3__2K23l\",\"col-md-2\":\"menu_col-md-2__ILgvu\",\"col-md-1\":\"menu_col-md-1__2Qv4w\",\"col-sm\":\"menu_col-sm__Zb3Kj\",\"col-sm-auto\":\"menu_col-sm-auto__1758m\",\"col-sm-12\":\"menu_col-sm-12__Yu2wr\",\"col-sm-11\":\"menu_col-sm-11__1UEAk\",\"col-sm-10\":\"menu_col-sm-10__3HG30\",\"col-sm-9\":\"menu_col-sm-9__ppVVr\",\"col-sm-8\":\"menu_col-sm-8__3J8Ny\",\"col-sm-7\":\"menu_col-sm-7__1mvIx\",\"col-sm-6\":\"menu_col-sm-6__3fKfx\",\"col-sm-5\":\"menu_col-sm-5__mnzsb\",\"col-sm-4\":\"menu_col-sm-4__wBgp6\",\"col-sm-3\":\"menu_col-sm-3__1AvX1\",\"col-sm-2\":\"menu_col-sm-2__20ti3\",\"col-sm-1\":\"menu_col-sm-1__3seFB\",\"col-auto\":\"menu_col-auto__2JtPH\",\"col-12\":\"menu_col-12__251AX\",\"col-11\":\"menu_col-11__3KHZu\",\"col-10\":\"menu_col-10__2b-ta\",\"col-9\":\"menu_col-9__2C66V\",\"col-8\":\"menu_col-8__30iFy\",\"col-7\":\"menu_col-7__2mHFz\",\"col-6\":\"menu_col-6__Bwtj7\",\"col-5\":\"menu_col-5__1sg-M\",\"col-4\":\"menu_col-4__2IqUu\",\"col-3\":\"menu_col-3__1OAhT\",\"col-2\":\"menu_col-2__3mOuB\",\"col-1\":\"menu_col-1__3QnGn\",\"row-cols-1\":\"menu_row-cols-1__M-AR_\",\"row-cols-2\":\"menu_row-cols-2__CWYHy\",\"row-cols-3\":\"menu_row-cols-3__3cl13\",\"row-cols-4\":\"menu_row-cols-4__x0BNA\",\"row-cols-5\":\"menu_row-cols-5__3rocn\",\"row-cols-6\":\"menu_row-cols-6__2jdor\",\"order-first\":\"menu_order-first__mT3b0\",\"order-last\":\"menu_order-last__1dxJQ\",\"order-0\":\"menu_order-0__28Zt8\",\"order-1\":\"menu_order-1__1ji1e\",\"order-2\":\"menu_order-2__3pdfm\",\"order-3\":\"menu_order-3__2gAHB\",\"order-4\":\"menu_order-4__hnDda\",\"order-5\":\"menu_order-5__2beY_\",\"order-6\":\"menu_order-6__1Qwaz\",\"order-7\":\"menu_order-7__3okn1\",\"order-8\":\"menu_order-8__2_XTo\",\"order-9\":\"menu_order-9__3C2X7\",\"order-10\":\"menu_order-10__1niVD\",\"order-11\":\"menu_order-11__ce6wg\",\"order-12\":\"menu_order-12__1OeJE\",\"offset-1\":\"menu_offset-1__2AlN8\",\"offset-2\":\"menu_offset-2__2qtHq\",\"offset-3\":\"menu_offset-3__1fChb\",\"offset-4\":\"menu_offset-4__1aREg\",\"offset-5\":\"menu_offset-5__1_BWL\",\"offset-6\":\"menu_offset-6__2BZqM\",\"offset-7\":\"menu_offset-7__3unhg\",\"offset-8\":\"menu_offset-8__2Nh1-\",\"offset-9\":\"menu_offset-9__3XUMs\",\"offset-10\":\"menu_offset-10__31zAy\",\"offset-11\":\"menu_offset-11__VaXRN\",\"row-cols-sm-1\":\"menu_row-cols-sm-1__SNpGc\",\"row-cols-sm-2\":\"menu_row-cols-sm-2__3837x\",\"row-cols-sm-3\":\"menu_row-cols-sm-3__1gI5T\",\"row-cols-sm-4\":\"menu_row-cols-sm-4__rEjMn\",\"row-cols-sm-5\":\"menu_row-cols-sm-5__GUzY0\",\"row-cols-sm-6\":\"menu_row-cols-sm-6__1N9gr\",\"order-sm-first\":\"menu_order-sm-first__2eGR0\",\"order-sm-last\":\"menu_order-sm-last__1LYJ7\",\"order-sm-0\":\"menu_order-sm-0__2C6gM\",\"order-sm-1\":\"menu_order-sm-1__1WQ_u\",\"order-sm-2\":\"menu_order-sm-2__-Orx1\",\"order-sm-3\":\"menu_order-sm-3__zIt91\",\"order-sm-4\":\"menu_order-sm-4__10d3d\",\"order-sm-5\":\"menu_order-sm-5__FjCrj\",\"order-sm-6\":\"menu_order-sm-6__1oicC\",\"order-sm-7\":\"menu_order-sm-7__1LjkZ\",\"order-sm-8\":\"menu_order-sm-8__36rjF\",\"order-sm-9\":\"menu_order-sm-9__22VaB\",\"order-sm-10\":\"menu_order-sm-10__3Hztr\",\"order-sm-11\":\"menu_order-sm-11__2HXDJ\",\"order-sm-12\":\"menu_order-sm-12__1gbg6\",\"offset-sm-0\":\"menu_offset-sm-0__2MANs\",\"offset-sm-1\":\"menu_offset-sm-1__25fx9\",\"offset-sm-2\":\"menu_offset-sm-2__2VIYo\",\"offset-sm-3\":\"menu_offset-sm-3__15W2W\",\"offset-sm-4\":\"menu_offset-sm-4__hkSkB\",\"offset-sm-5\":\"menu_offset-sm-5__3FZM8\",\"offset-sm-6\":\"menu_offset-sm-6__MGQiP\",\"offset-sm-7\":\"menu_offset-sm-7__2Xnj9\",\"offset-sm-8\":\"menu_offset-sm-8__2xXGg\",\"offset-sm-9\":\"menu_offset-sm-9__MeV5I\",\"offset-sm-10\":\"menu_offset-sm-10__2CAoy\",\"offset-sm-11\":\"menu_offset-sm-11__Kofjx\",\"row-cols-md-1\":\"menu_row-cols-md-1__7BJhJ\",\"row-cols-md-2\":\"menu_row-cols-md-2__1s5IF\",\"row-cols-md-3\":\"menu_row-cols-md-3__1H2tU\",\"row-cols-md-4\":\"menu_row-cols-md-4__dOwSI\",\"row-cols-md-5\":\"menu_row-cols-md-5__2wXpo\",\"row-cols-md-6\":\"menu_row-cols-md-6__WM0F-\",\"order-md-first\":\"menu_order-md-first__3a61X\",\"order-md-last\":\"menu_order-md-last__2XtpG\",\"order-md-0\":\"menu_order-md-0__3ho_Y\",\"order-md-1\":\"menu_order-md-1__196im\",\"order-md-2\":\"menu_order-md-2__nY1kr\",\"order-md-3\":\"menu_order-md-3__3lP6C\",\"order-md-4\":\"menu_order-md-4__3Idcu\",\"order-md-5\":\"menu_order-md-5__3e-nC\",\"order-md-6\":\"menu_order-md-6__3juBi\",\"order-md-7\":\"menu_order-md-7__2gNzw\",\"order-md-8\":\"menu_order-md-8__3VtPD\",\"order-md-9\":\"menu_order-md-9__3X2le\",\"order-md-10\":\"menu_order-md-10__3tx-i\",\"order-md-11\":\"menu_order-md-11__2M_RC\",\"order-md-12\":\"menu_order-md-12__3FTGy\",\"offset-md-0\":\"menu_offset-md-0__3G0Xy\",\"offset-md-1\":\"menu_offset-md-1__19voa\",\"offset-md-2\":\"menu_offset-md-2__1KCAZ\",\"offset-md-3\":\"menu_offset-md-3__-3lse\",\"offset-md-4\":\"menu_offset-md-4__1OBq4\",\"offset-md-5\":\"menu_offset-md-5__uElpD\",\"offset-md-6\":\"menu_offset-md-6__35xee\",\"offset-md-7\":\"menu_offset-md-7__3uOEg\",\"offset-md-8\":\"menu_offset-md-8__3sMEa\",\"offset-md-9\":\"menu_offset-md-9__1iTAq\",\"offset-md-10\":\"menu_offset-md-10__34YkB\",\"offset-md-11\":\"menu_offset-md-11__2J7DI\",\"row-cols-lg-1\":\"menu_row-cols-lg-1__3wvBL\",\"row-cols-lg-2\":\"menu_row-cols-lg-2__1qnKO\",\"row-cols-lg-3\":\"menu_row-cols-lg-3__33hgP\",\"row-cols-lg-4\":\"menu_row-cols-lg-4__2IGHX\",\"row-cols-lg-5\":\"menu_row-cols-lg-5__uUDv4\",\"row-cols-lg-6\":\"menu_row-cols-lg-6__1tA_m\",\"order-lg-first\":\"menu_order-lg-first__3G4-l\",\"order-lg-last\":\"menu_order-lg-last__2zGtl\",\"order-lg-0\":\"menu_order-lg-0__1alLI\",\"order-lg-1\":\"menu_order-lg-1__3aqjP\",\"order-lg-2\":\"menu_order-lg-2__2R-js\",\"order-lg-3\":\"menu_order-lg-3__2KLAa\",\"order-lg-4\":\"menu_order-lg-4__2SIov\",\"order-lg-5\":\"menu_order-lg-5__KUXu5\",\"order-lg-6\":\"menu_order-lg-6__3ONX9\",\"order-lg-7\":\"menu_order-lg-7__yLLsY\",\"order-lg-8\":\"menu_order-lg-8__3o0On\",\"order-lg-9\":\"menu_order-lg-9__1XsE4\",\"order-lg-10\":\"menu_order-lg-10__2K70h\",\"order-lg-11\":\"menu_order-lg-11__3rXOE\",\"order-lg-12\":\"menu_order-lg-12__2sT1g\",\"offset-lg-0\":\"menu_offset-lg-0__Hlfiq\",\"offset-lg-1\":\"menu_offset-lg-1__1c5kj\",\"offset-lg-2\":\"menu_offset-lg-2__nkYgp\",\"offset-lg-3\":\"menu_offset-lg-3__3yqE0\",\"offset-lg-4\":\"menu_offset-lg-4__2d8lz\",\"offset-lg-5\":\"menu_offset-lg-5__2Fd6n\",\"offset-lg-6\":\"menu_offset-lg-6__2LYXy\",\"offset-lg-7\":\"menu_offset-lg-7__17GMY\",\"offset-lg-8\":\"menu_offset-lg-8__5QZr7\",\"offset-lg-9\":\"menu_offset-lg-9__27GGV\",\"offset-lg-10\":\"menu_offset-lg-10__14Zwr\",\"offset-lg-11\":\"menu_offset-lg-11__1AXr_\",\"row-cols-xl-1\":\"menu_row-cols-xl-1__gRyLq\",\"row-cols-xl-2\":\"menu_row-cols-xl-2__27kup\",\"row-cols-xl-3\":\"menu_row-cols-xl-3__1siUc\",\"row-cols-xl-4\":\"menu_row-cols-xl-4__xB9uK\",\"row-cols-xl-5\":\"menu_row-cols-xl-5__3ask0\",\"row-cols-xl-6\":\"menu_row-cols-xl-6__1AS2K\",\"order-xl-first\":\"menu_order-xl-first__2Cjxx\",\"order-xl-last\":\"menu_order-xl-last__3qmE7\",\"order-xl-0\":\"menu_order-xl-0__3PPQ4\",\"order-xl-1\":\"menu_order-xl-1__3Pt9J\",\"order-xl-2\":\"menu_order-xl-2__2gQO5\",\"order-xl-3\":\"menu_order-xl-3__UwHHa\",\"order-xl-4\":\"menu_order-xl-4__3cQtI\",\"order-xl-5\":\"menu_order-xl-5__211gH\",\"order-xl-6\":\"menu_order-xl-6__1cTfZ\",\"order-xl-7\":\"menu_order-xl-7__m1xUw\",\"order-xl-8\":\"menu_order-xl-8__-eyVI\",\"order-xl-9\":\"menu_order-xl-9__ExhZw\",\"order-xl-10\":\"menu_order-xl-10__1mblG\",\"order-xl-11\":\"menu_order-xl-11__lp_oU\",\"order-xl-12\":\"menu_order-xl-12__23ZGr\",\"offset-xl-0\":\"menu_offset-xl-0__3fc_k\",\"offset-xl-1\":\"menu_offset-xl-1__3nmi2\",\"offset-xl-2\":\"menu_offset-xl-2__1FFyh\",\"offset-xl-3\":\"menu_offset-xl-3___70hN\",\"offset-xl-4\":\"menu_offset-xl-4__-quAA\",\"offset-xl-5\":\"menu_offset-xl-5__ygMfl\",\"offset-xl-6\":\"menu_offset-xl-6__85wVg\",\"offset-xl-7\":\"menu_offset-xl-7__1welk\",\"offset-xl-8\":\"menu_offset-xl-8__XZ2rT\",\"offset-xl-9\":\"menu_offset-xl-9__2Zftr\",\"offset-xl-10\":\"menu_offset-xl-10__1KoLh\",\"offset-xl-11\":\"menu_offset-xl-11__3QYaO\",\"d-none\":\"menu_d-none__hO951\",\"d-inline\":\"menu_d-inline__3BrC3\",\"d-inline-block\":\"menu_d-inline-block__2LgHY\",\"d-block\":\"menu_d-block__1C0pn\",\"d-table\":\"menu_d-table__3Obgq\",\"d-table-row\":\"menu_d-table-row__Lodpw\",\"d-table-cell\":\"menu_d-table-cell__2SHZG\",\"d-flex\":\"menu_d-flex__1p8TH\",\"d-inline-flex\":\"menu_d-inline-flex__KCv_a\",\"d-sm-none\":\"menu_d-sm-none__3T6ad\",\"d-sm-inline\":\"menu_d-sm-inline__1gDn8\",\"d-sm-inline-block\":\"menu_d-sm-inline-block__2nKlV\",\"d-sm-block\":\"menu_d-sm-block__1AsO5\",\"d-sm-table\":\"menu_d-sm-table__2rAEh\",\"d-sm-table-row\":\"menu_d-sm-table-row__3ZQMz\",\"d-sm-table-cell\":\"menu_d-sm-table-cell__yABsR\",\"d-sm-flex\":\"menu_d-sm-flex__3GgHp\",\"d-sm-inline-flex\":\"menu_d-sm-inline-flex__2gGy7\",\"d-md-none\":\"menu_d-md-none__2A84t\",\"d-md-inline\":\"menu_d-md-inline__WoI_k\",\"d-md-inline-block\":\"menu_d-md-inline-block__Itus3\",\"d-md-block\":\"menu_d-md-block__JQjEa\",\"d-md-table\":\"menu_d-md-table__ObE-k\",\"d-md-table-row\":\"menu_d-md-table-row__n0f14\",\"d-md-table-cell\":\"menu_d-md-table-cell__38DRi\",\"d-md-flex\":\"menu_d-md-flex__20-l5\",\"d-md-inline-flex\":\"menu_d-md-inline-flex__3bBUY\",\"d-lg-none\":\"menu_d-lg-none__1fe26\",\"d-lg-inline\":\"menu_d-lg-inline__51DzX\",\"d-lg-inline-block\":\"menu_d-lg-inline-block__2rxmm\",\"d-lg-block\":\"menu_d-lg-block__MAnJr\",\"d-lg-table\":\"menu_d-lg-table__C4gdU\",\"d-lg-table-row\":\"menu_d-lg-table-row__3Slel\",\"d-lg-table-cell\":\"menu_d-lg-table-cell__1lGWr\",\"d-lg-flex\":\"menu_d-lg-flex__3zXKL\",\"d-lg-inline-flex\":\"menu_d-lg-inline-flex__1JnOy\",\"d-xl-none\":\"menu_d-xl-none__wjl-n\",\"d-xl-inline\":\"menu_d-xl-inline__14d8H\",\"d-xl-inline-block\":\"menu_d-xl-inline-block__ipbg3\",\"d-xl-block\":\"menu_d-xl-block__3HXLB\",\"d-xl-table\":\"menu_d-xl-table__i1hcN\",\"d-xl-table-row\":\"menu_d-xl-table-row__2-gex\",\"d-xl-table-cell\":\"menu_d-xl-table-cell__2atNX\",\"d-xl-flex\":\"menu_d-xl-flex__2EfuH\",\"d-xl-inline-flex\":\"menu_d-xl-inline-flex__3tcTJ\",\"d-print-none\":\"menu_d-print-none__13ulY\",\"d-print-inline\":\"menu_d-print-inline__3qdj7\",\"d-print-inline-block\":\"menu_d-print-inline-block__fbUMv\",\"d-print-block\":\"menu_d-print-block__1r_4I\",\"d-print-table\":\"menu_d-print-table__3Xhzr\",\"d-print-table-row\":\"menu_d-print-table-row__2EnvG\",\"d-print-table-cell\":\"menu_d-print-table-cell__1ahQX\",\"d-print-flex\":\"menu_d-print-flex__IaetA\",\"d-print-inline-flex\":\"menu_d-print-inline-flex__3StqR\",\"flex-row\":\"menu_flex-row__2DkXN\",\"flex-column\":\"menu_flex-column__3qQuc\",\"flex-row-reverse\":\"menu_flex-row-reverse__2sbx4\",\"flex-column-reverse\":\"menu_flex-column-reverse__2EKlf\",\"flex-wrap\":\"menu_flex-wrap__1RUVi\",\"flex-nowrap\":\"menu_flex-nowrap__2iChZ\",\"flex-wrap-reverse\":\"menu_flex-wrap-reverse__2C5pw\",\"flex-fill\":\"menu_flex-fill__3_YJe\",\"flex-grow-0\":\"menu_flex-grow-0__3Ui1e\",\"flex-grow-1\":\"menu_flex-grow-1__2DVty\",\"flex-shrink-0\":\"menu_flex-shrink-0__2rlNw\",\"flex-shrink-1\":\"menu_flex-shrink-1__1h30P\",\"justify-content-start\":\"menu_justify-content-start__2qVT0\",\"justify-content-end\":\"menu_justify-content-end__2ifZY\",\"justify-content-center\":\"menu_justify-content-center__3HbpP\",\"justify-content-between\":\"menu_justify-content-between__ZYGHI\",\"justify-content-around\":\"menu_justify-content-around__2dzeb\",\"align-items-start\":\"menu_align-items-start__3QIvo\",\"align-items-end\":\"menu_align-items-end__192bR\",\"align-items-center\":\"menu_align-items-center__1UBqc\",\"align-items-baseline\":\"menu_align-items-baseline__3_bY2\",\"align-items-stretch\":\"menu_align-items-stretch__IMKNS\",\"align-content-start\":\"menu_align-content-start__7ec79\",\"align-content-end\":\"menu_align-content-end__1QPlj\",\"align-content-center\":\"menu_align-content-center__3kgX_\",\"align-content-between\":\"menu_align-content-between__1cU_8\",\"align-content-around\":\"menu_align-content-around__23aNp\",\"align-content-stretch\":\"menu_align-content-stretch__3nZSG\",\"align-self-auto\":\"menu_align-self-auto__2O1p4\",\"align-self-start\":\"menu_align-self-start__3Eri5\",\"align-self-end\":\"menu_align-self-end__1lKNk\",\"align-self-center\":\"menu_align-self-center__2JxBX\",\"align-self-baseline\":\"menu_align-self-baseline__10SpI\",\"align-self-stretch\":\"menu_align-self-stretch__12cKL\",\"flex-sm-row\":\"menu_flex-sm-row__2NGYx\",\"flex-sm-column\":\"menu_flex-sm-column__2v0WC\",\"flex-sm-row-reverse\":\"menu_flex-sm-row-reverse__k5CIL\",\"flex-sm-column-reverse\":\"menu_flex-sm-column-reverse__28_tW\",\"flex-sm-wrap\":\"menu_flex-sm-wrap__18Qlf\",\"flex-sm-nowrap\":\"menu_flex-sm-nowrap__p_yfN\",\"flex-sm-wrap-reverse\":\"menu_flex-sm-wrap-reverse__24v6w\",\"flex-sm-fill\":\"menu_flex-sm-fill__31O5G\",\"flex-sm-grow-0\":\"menu_flex-sm-grow-0__2gLoH\",\"flex-sm-grow-1\":\"menu_flex-sm-grow-1__U8_Dz\",\"flex-sm-shrink-0\":\"menu_flex-sm-shrink-0__3EyIq\",\"flex-sm-shrink-1\":\"menu_flex-sm-shrink-1__2z2EB\",\"justify-content-sm-start\":\"menu_justify-content-sm-start__2pP_M\",\"justify-content-sm-end\":\"menu_justify-content-sm-end__2zGfK\",\"justify-content-sm-center\":\"menu_justify-content-sm-center__16yNK\",\"justify-content-sm-between\":\"menu_justify-content-sm-between__2dBMM\",\"justify-content-sm-around\":\"menu_justify-content-sm-around__Bjs7h\",\"align-items-sm-start\":\"menu_align-items-sm-start__1P8fq\",\"align-items-sm-end\":\"menu_align-items-sm-end__2u60e\",\"align-items-sm-center\":\"menu_align-items-sm-center__1NwVy\",\"align-items-sm-baseline\":\"menu_align-items-sm-baseline__9uftn\",\"align-items-sm-stretch\":\"menu_align-items-sm-stretch__25gSs\",\"align-content-sm-start\":\"menu_align-content-sm-start__XO6do\",\"align-content-sm-end\":\"menu_align-content-sm-end__3gxv9\",\"align-content-sm-center\":\"menu_align-content-sm-center__1cwXq\",\"align-content-sm-between\":\"menu_align-content-sm-between__10vdR\",\"align-content-sm-around\":\"menu_align-content-sm-around__jNfBf\",\"align-content-sm-stretch\":\"menu_align-content-sm-stretch__2T_4_\",\"align-self-sm-auto\":\"menu_align-self-sm-auto__2BJnm\",\"align-self-sm-start\":\"menu_align-self-sm-start__TmZDq\",\"align-self-sm-end\":\"menu_align-self-sm-end__3Nlfo\",\"align-self-sm-center\":\"menu_align-self-sm-center__2cei4\",\"align-self-sm-baseline\":\"menu_align-self-sm-baseline__18v4U\",\"align-self-sm-stretch\":\"menu_align-self-sm-stretch__3efWQ\",\"flex-md-row\":\"menu_flex-md-row__2_KPX\",\"flex-md-column\":\"menu_flex-md-column__5ICK9\",\"flex-md-row-reverse\":\"menu_flex-md-row-reverse__1CJ5z\",\"flex-md-column-reverse\":\"menu_flex-md-column-reverse__DjLrU\",\"flex-md-wrap\":\"menu_flex-md-wrap__3DMpn\",\"flex-md-nowrap\":\"menu_flex-md-nowrap__e4VM-\",\"flex-md-wrap-reverse\":\"menu_flex-md-wrap-reverse__3by33\",\"flex-md-fill\":\"menu_flex-md-fill__jIYGA\",\"flex-md-grow-0\":\"menu_flex-md-grow-0__38D3u\",\"flex-md-grow-1\":\"menu_flex-md-grow-1__31UCg\",\"flex-md-shrink-0\":\"menu_flex-md-shrink-0__2FB5z\",\"flex-md-shrink-1\":\"menu_flex-md-shrink-1__UBJ-O\",\"justify-content-md-start\":\"menu_justify-content-md-start__1xXfi\",\"justify-content-md-end\":\"menu_justify-content-md-end__1owCB\",\"justify-content-md-center\":\"menu_justify-content-md-center__3Ndoa\",\"justify-content-md-between\":\"menu_justify-content-md-between__22wKQ\",\"justify-content-md-around\":\"menu_justify-content-md-around__Bsx1q\",\"align-items-md-start\":\"menu_align-items-md-start__3GeNT\",\"align-items-md-end\":\"menu_align-items-md-end__3-Ec9\",\"align-items-md-center\":\"menu_align-items-md-center__19kPW\",\"align-items-md-baseline\":\"menu_align-items-md-baseline__12ZHy\",\"align-items-md-stretch\":\"menu_align-items-md-stretch__2TcVt\",\"align-content-md-start\":\"menu_align-content-md-start__23ziI\",\"align-content-md-end\":\"menu_align-content-md-end__1OnCt\",\"align-content-md-center\":\"menu_align-content-md-center__3Q8gE\",\"align-content-md-between\":\"menu_align-content-md-between__1aisP\",\"align-content-md-around\":\"menu_align-content-md-around__3Tqat\",\"align-content-md-stretch\":\"menu_align-content-md-stretch__1s--5\",\"align-self-md-auto\":\"menu_align-self-md-auto__BKrn6\",\"align-self-md-start\":\"menu_align-self-md-start__oYAF5\",\"align-self-md-end\":\"menu_align-self-md-end__1Oq7C\",\"align-self-md-center\":\"menu_align-self-md-center__Zq46m\",\"align-self-md-baseline\":\"menu_align-self-md-baseline__3YfX0\",\"align-self-md-stretch\":\"menu_align-self-md-stretch__YaeEa\",\"flex-lg-row\":\"menu_flex-lg-row__3fUNz\",\"flex-lg-column\":\"menu_flex-lg-column__2vqFQ\",\"flex-lg-row-reverse\":\"menu_flex-lg-row-reverse__1WHge\",\"flex-lg-column-reverse\":\"menu_flex-lg-column-reverse__33hEX\",\"flex-lg-wrap\":\"menu_flex-lg-wrap__rkszB\",\"flex-lg-nowrap\":\"menu_flex-lg-nowrap__E3ovA\",\"flex-lg-wrap-reverse\":\"menu_flex-lg-wrap-reverse__1qLDV\",\"flex-lg-fill\":\"menu_flex-lg-fill__1Uuh3\",\"flex-lg-grow-0\":\"menu_flex-lg-grow-0__FAjOh\",\"flex-lg-grow-1\":\"menu_flex-lg-grow-1__1pAQA\",\"flex-lg-shrink-0\":\"menu_flex-lg-shrink-0__1whuQ\",\"flex-lg-shrink-1\":\"menu_flex-lg-shrink-1__31r9t\",\"justify-content-lg-start\":\"menu_justify-content-lg-start__3YQtD\",\"justify-content-lg-end\":\"menu_justify-content-lg-end__33SXf\",\"justify-content-lg-center\":\"menu_justify-content-lg-center__172BL\",\"justify-content-lg-between\":\"menu_justify-content-lg-between__O1mfX\",\"justify-content-lg-around\":\"menu_justify-content-lg-around__1q0Zk\",\"align-items-lg-start\":\"menu_align-items-lg-start__1QJQI\",\"align-items-lg-end\":\"menu_align-items-lg-end__27WgH\",\"align-items-lg-center\":\"menu_align-items-lg-center__-nEJi\",\"align-items-lg-baseline\":\"menu_align-items-lg-baseline__XN7Ye\",\"align-items-lg-stretch\":\"menu_align-items-lg-stretch__2cyaU\",\"align-content-lg-start\":\"menu_align-content-lg-start__2K58-\",\"align-content-lg-end\":\"menu_align-content-lg-end__2ABbX\",\"align-content-lg-center\":\"menu_align-content-lg-center__2W8sN\",\"align-content-lg-between\":\"menu_align-content-lg-between__153OB\",\"align-content-lg-around\":\"menu_align-content-lg-around__3_DIf\",\"align-content-lg-stretch\":\"menu_align-content-lg-stretch__1TD9C\",\"align-self-lg-auto\":\"menu_align-self-lg-auto__2L7MT\",\"align-self-lg-start\":\"menu_align-self-lg-start__1U3fD\",\"align-self-lg-end\":\"menu_align-self-lg-end__1uiY-\",\"align-self-lg-center\":\"menu_align-self-lg-center__JVq2a\",\"align-self-lg-baseline\":\"menu_align-self-lg-baseline__tG4hy\",\"align-self-lg-stretch\":\"menu_align-self-lg-stretch__Cj0AM\",\"flex-xl-row\":\"menu_flex-xl-row__bMSxW\",\"flex-xl-column\":\"menu_flex-xl-column__2aLIm\",\"flex-xl-row-reverse\":\"menu_flex-xl-row-reverse__19geW\",\"flex-xl-column-reverse\":\"menu_flex-xl-column-reverse__2imW6\",\"flex-xl-wrap\":\"menu_flex-xl-wrap__rZjmn\",\"flex-xl-nowrap\":\"menu_flex-xl-nowrap__1FAV2\",\"flex-xl-wrap-reverse\":\"menu_flex-xl-wrap-reverse__SUX0d\",\"flex-xl-fill\":\"menu_flex-xl-fill__3-IGY\",\"flex-xl-grow-0\":\"menu_flex-xl-grow-0__2bOFX\",\"flex-xl-grow-1\":\"menu_flex-xl-grow-1__3GrUI\",\"flex-xl-shrink-0\":\"menu_flex-xl-shrink-0__2-GuK\",\"flex-xl-shrink-1\":\"menu_flex-xl-shrink-1__2gubA\",\"justify-content-xl-start\":\"menu_justify-content-xl-start__3-Nyz\",\"justify-content-xl-end\":\"menu_justify-content-xl-end__2GMJz\",\"justify-content-xl-center\":\"menu_justify-content-xl-center__3DfJX\",\"justify-content-xl-between\":\"menu_justify-content-xl-between__2WXNz\",\"justify-content-xl-around\":\"menu_justify-content-xl-around__2DnRc\",\"align-items-xl-start\":\"menu_align-items-xl-start__1FOp6\",\"align-items-xl-end\":\"menu_align-items-xl-end__3UAzZ\",\"align-items-xl-center\":\"menu_align-items-xl-center__2CQ_B\",\"align-items-xl-baseline\":\"menu_align-items-xl-baseline__1cTvT\",\"align-items-xl-stretch\":\"menu_align-items-xl-stretch__oQJeM\",\"align-content-xl-start\":\"menu_align-content-xl-start__2suYZ\",\"align-content-xl-end\":\"menu_align-content-xl-end__3RQTu\",\"align-content-xl-center\":\"menu_align-content-xl-center__1Wd1o\",\"align-content-xl-between\":\"menu_align-content-xl-between__1nik9\",\"align-content-xl-around\":\"menu_align-content-xl-around__le2by\",\"align-content-xl-stretch\":\"menu_align-content-xl-stretch__2t8zp\",\"align-self-xl-auto\":\"menu_align-self-xl-auto__3MXjR\",\"align-self-xl-start\":\"menu_align-self-xl-start__1vnJw\",\"align-self-xl-end\":\"menu_align-self-xl-end__1OpLp\",\"align-self-xl-center\":\"menu_align-self-xl-center__13-JI\",\"align-self-xl-baseline\":\"menu_align-self-xl-baseline__3t1He\",\"align-self-xl-stretch\":\"menu_align-self-xl-stretch__tj9Hm\",\"m-0\":\"menu_m-0__3OpQ1\",\"mt-0\":\"menu_mt-0__3pDk2\",\"my-0\":\"menu_my-0__16uPV\",\"mr-0\":\"menu_mr-0__2ewYJ\",\"mx-0\":\"menu_mx-0__A6FB6\",\"mb-0\":\"menu_mb-0__3aTo8\",\"ml-0\":\"menu_ml-0__3Liss\",\"m-1\":\"menu_m-1__1MP7K\",\"mt-1\":\"menu_mt-1__23SOm\",\"my-1\":\"menu_my-1__3KNOo\",\"mr-1\":\"menu_mr-1__eJzo4\",\"mx-1\":\"menu_mx-1__2J4cH\",\"mb-1\":\"menu_mb-1__PlYRp\",\"ml-1\":\"menu_ml-1__1KBHe\",\"m-2\":\"menu_m-2__QagHG\",\"mt-2\":\"menu_mt-2__27NYn\",\"my-2\":\"menu_my-2__2xLCi\",\"mr-2\":\"menu_mr-2__2eHtN\",\"mx-2\":\"menu_mx-2__1lum4\",\"mb-2\":\"menu_mb-2__1H2AY\",\"ml-2\":\"menu_ml-2__1-Dfg\",\"m-3\":\"menu_m-3__Ty2NP\",\"mt-3\":\"menu_mt-3__1OhEj\",\"my-3\":\"menu_my-3__2k0hl\",\"mr-3\":\"menu_mr-3___1WQx\",\"mx-3\":\"menu_mx-3__18LAG\",\"mb-3\":\"menu_mb-3__1gwiN\",\"ml-3\":\"menu_ml-3__1RdDo\",\"m-4\":\"menu_m-4__15FtW\",\"mt-4\":\"menu_mt-4__JWqoZ\",\"my-4\":\"menu_my-4__oYQml\",\"mr-4\":\"menu_mr-4__1fnGY\",\"mx-4\":\"menu_mx-4__27EJm\",\"mb-4\":\"menu_mb-4__15Qkm\",\"ml-4\":\"menu_ml-4__AfflE\",\"m-5\":\"menu_m-5__1hZxE\",\"mt-5\":\"menu_mt-5__B9yN4\",\"my-5\":\"menu_my-5__1swih\",\"mr-5\":\"menu_mr-5__21-jP\",\"mx-5\":\"menu_mx-5__1b_SJ\",\"mb-5\":\"menu_mb-5__12SSM\",\"ml-5\":\"menu_ml-5__2H6Tg\",\"p-0\":\"menu_p-0__jPnIL\",\"pt-0\":\"menu_pt-0__2vNRD\",\"py-0\":\"menu_py-0__380Sh\",\"pr-0\":\"menu_pr-0__23KGp\",\"px-0\":\"menu_px-0__-T-kw\",\"pb-0\":\"menu_pb-0__13O-9\",\"pl-0\":\"menu_pl-0__3f6KR\",\"p-1\":\"menu_p-1__1CKgd\",\"pt-1\":\"menu_pt-1__22HvZ\",\"py-1\":\"menu_py-1__2etH6\",\"pr-1\":\"menu_pr-1__17vru\",\"px-1\":\"menu_px-1__1MA4M\",\"pb-1\":\"menu_pb-1__2bIOn\",\"pl-1\":\"menu_pl-1__KFP8Q\",\"p-2\":\"menu_p-2__46Ra7\",\"pt-2\":\"menu_pt-2__1LV3u\",\"py-2\":\"menu_py-2__C2Tgg\",\"pr-2\":\"menu_pr-2__3JGgx\",\"px-2\":\"menu_px-2__2wIFU\",\"pb-2\":\"menu_pb-2__2lmaw\",\"pl-2\":\"menu_pl-2__3R41y\",\"p-3\":\"menu_p-3__AsAFW\",\"pt-3\":\"menu_pt-3__ORacl\",\"py-3\":\"menu_py-3__2EMiO\",\"pr-3\":\"menu_pr-3__3PSpF\",\"px-3\":\"menu_px-3__2jDsd\",\"pb-3\":\"menu_pb-3__3Idjv\",\"pl-3\":\"menu_pl-3__1u5NO\",\"p-4\":\"menu_p-4__2_6F3\",\"pt-4\":\"menu_pt-4__kD2CZ\",\"py-4\":\"menu_py-4__2tLwc\",\"pr-4\":\"menu_pr-4__1g4FD\",\"px-4\":\"menu_px-4__27dVs\",\"pb-4\":\"menu_pb-4__6r67D\",\"pl-4\":\"menu_pl-4__3L3TW\",\"p-5\":\"menu_p-5__dOtEc\",\"pt-5\":\"menu_pt-5__11Eoo\",\"py-5\":\"menu_py-5__iaOsE\",\"pr-5\":\"menu_pr-5__2YBeF\",\"px-5\":\"menu_px-5__3JvHK\",\"pb-5\":\"menu_pb-5__XcHD1\",\"pl-5\":\"menu_pl-5__2BbVl\",\"m-n1\":\"menu_m-n1__2Fhqh\",\"mt-n1\":\"menu_mt-n1__1rErf\",\"my-n1\":\"menu_my-n1__2MpL7\",\"mr-n1\":\"menu_mr-n1__3Q4wG\",\"mx-n1\":\"menu_mx-n1__1NBc9\",\"mb-n1\":\"menu_mb-n1__19sod\",\"ml-n1\":\"menu_ml-n1__2RPGA\",\"m-n2\":\"menu_m-n2__3amee\",\"mt-n2\":\"menu_mt-n2__2OayD\",\"my-n2\":\"menu_my-n2__2U12g\",\"mr-n2\":\"menu_mr-n2__23G7W\",\"mx-n2\":\"menu_mx-n2__3Mrfl\",\"mb-n2\":\"menu_mb-n2__3fZE3\",\"ml-n2\":\"menu_ml-n2__1LE1k\",\"m-n3\":\"menu_m-n3__31ddi\",\"mt-n3\":\"menu_mt-n3__2gjEy\",\"my-n3\":\"menu_my-n3__1mtHg\",\"mr-n3\":\"menu_mr-n3__2P4Es\",\"mx-n3\":\"menu_mx-n3__28O1z\",\"mb-n3\":\"menu_mb-n3__FGn9J\",\"ml-n3\":\"menu_ml-n3__1M1y3\",\"m-n4\":\"menu_m-n4__145IN\",\"mt-n4\":\"menu_mt-n4__2KgPM\",\"my-n4\":\"menu_my-n4__3EcGn\",\"mr-n4\":\"menu_mr-n4__1l6DG\",\"mx-n4\":\"menu_mx-n4__1mDAw\",\"mb-n4\":\"menu_mb-n4__w650R\",\"ml-n4\":\"menu_ml-n4__17eEF\",\"m-n5\":\"menu_m-n5__3q2fe\",\"mt-n5\":\"menu_mt-n5__e6efU\",\"my-n5\":\"menu_my-n5__1SND6\",\"mr-n5\":\"menu_mr-n5__2jCY7\",\"mx-n5\":\"menu_mx-n5__3JcFt\",\"mb-n5\":\"menu_mb-n5__78HIt\",\"ml-n5\":\"menu_ml-n5__L1QwR\",\"m-auto\":\"menu_m-auto__21pWb\",\"mt-auto\":\"menu_mt-auto__1zJIj\",\"my-auto\":\"menu_my-auto__23Dm3\",\"mr-auto\":\"menu_mr-auto__1Ei-w\",\"mx-auto\":\"menu_mx-auto__18MZx\",\"mb-auto\":\"menu_mb-auto__1Ce8E\",\"ml-auto\":\"menu_ml-auto__1Lve5\",\"m-sm-0\":\"menu_m-sm-0__2JqsE\",\"mt-sm-0\":\"menu_mt-sm-0__13tKx\",\"my-sm-0\":\"menu_my-sm-0__1o4B7\",\"mr-sm-0\":\"menu_mr-sm-0__2kgXh\",\"mx-sm-0\":\"menu_mx-sm-0__2aJJ-\",\"mb-sm-0\":\"menu_mb-sm-0__Rk0gA\",\"ml-sm-0\":\"menu_ml-sm-0__21o5b\",\"m-sm-1\":\"menu_m-sm-1__359Kq\",\"mt-sm-1\":\"menu_mt-sm-1__25ZI8\",\"my-sm-1\":\"menu_my-sm-1__3q5ia\",\"mr-sm-1\":\"menu_mr-sm-1__2VJJe\",\"mx-sm-1\":\"menu_mx-sm-1__1-Ha9\",\"mb-sm-1\":\"menu_mb-sm-1__3475Y\",\"ml-sm-1\":\"menu_ml-sm-1__HxaFh\",\"m-sm-2\":\"menu_m-sm-2__2hZ_e\",\"mt-sm-2\":\"menu_mt-sm-2__33Zeu\",\"my-sm-2\":\"menu_my-sm-2__3t8q2\",\"mr-sm-2\":\"menu_mr-sm-2__2B90v\",\"mx-sm-2\":\"menu_mx-sm-2__3teY1\",\"mb-sm-2\":\"menu_mb-sm-2__HC3d2\",\"ml-sm-2\":\"menu_ml-sm-2__1wbY0\",\"m-sm-3\":\"menu_m-sm-3__msj7o\",\"mt-sm-3\":\"menu_mt-sm-3__24vfL\",\"my-sm-3\":\"menu_my-sm-3__5-Im2\",\"mr-sm-3\":\"menu_mr-sm-3__2mX9u\",\"mx-sm-3\":\"menu_mx-sm-3__2KZ1R\",\"mb-sm-3\":\"menu_mb-sm-3__2CgM8\",\"ml-sm-3\":\"menu_ml-sm-3__1brpN\",\"m-sm-4\":\"menu_m-sm-4__2kCEI\",\"mt-sm-4\":\"menu_mt-sm-4__3tTZK\",\"my-sm-4\":\"menu_my-sm-4__JFIlC\",\"mr-sm-4\":\"menu_mr-sm-4__1qkqM\",\"mx-sm-4\":\"menu_mx-sm-4__2t2Gd\",\"mb-sm-4\":\"menu_mb-sm-4__JZJjT\",\"ml-sm-4\":\"menu_ml-sm-4__1_0bp\",\"m-sm-5\":\"menu_m-sm-5__3Pvrc\",\"mt-sm-5\":\"menu_mt-sm-5__2Wfbg\",\"my-sm-5\":\"menu_my-sm-5__36WC_\",\"mr-sm-5\":\"menu_mr-sm-5__258Wt\",\"mx-sm-5\":\"menu_mx-sm-5__383fk\",\"mb-sm-5\":\"menu_mb-sm-5__3Q8Dr\",\"ml-sm-5\":\"menu_ml-sm-5__YonCW\",\"p-sm-0\":\"menu_p-sm-0__q7F4t\",\"pt-sm-0\":\"menu_pt-sm-0__XcCRS\",\"py-sm-0\":\"menu_py-sm-0__11jmc\",\"pr-sm-0\":\"menu_pr-sm-0__1SUKJ\",\"px-sm-0\":\"menu_px-sm-0__VQi-A\",\"pb-sm-0\":\"menu_pb-sm-0__3DOJO\",\"pl-sm-0\":\"menu_pl-sm-0__3V343\",\"p-sm-1\":\"menu_p-sm-1__qF3ig\",\"pt-sm-1\":\"menu_pt-sm-1__37HFY\",\"py-sm-1\":\"menu_py-sm-1__3mjD8\",\"pr-sm-1\":\"menu_pr-sm-1__2Kv3G\",\"px-sm-1\":\"menu_px-sm-1__2SMZ6\",\"pb-sm-1\":\"menu_pb-sm-1__Lal4J\",\"pl-sm-1\":\"menu_pl-sm-1__1OMfP\",\"p-sm-2\":\"menu_p-sm-2__1ZIwx\",\"pt-sm-2\":\"menu_pt-sm-2__2N2z4\",\"py-sm-2\":\"menu_py-sm-2__3JQTe\",\"pr-sm-2\":\"menu_pr-sm-2__2GjFb\",\"px-sm-2\":\"menu_px-sm-2__6JlR_\",\"pb-sm-2\":\"menu_pb-sm-2__1kq0B\",\"pl-sm-2\":\"menu_pl-sm-2__3m-zC\",\"p-sm-3\":\"menu_p-sm-3__17PQQ\",\"pt-sm-3\":\"menu_pt-sm-3___-ZfP\",\"py-sm-3\":\"menu_py-sm-3__1hrc8\",\"pr-sm-3\":\"menu_pr-sm-3__28IB-\",\"px-sm-3\":\"menu_px-sm-3__3eudg\",\"pb-sm-3\":\"menu_pb-sm-3__2k0Rm\",\"pl-sm-3\":\"menu_pl-sm-3__3BjYn\",\"p-sm-4\":\"menu_p-sm-4__fgiQ6\",\"pt-sm-4\":\"menu_pt-sm-4__100VW\",\"py-sm-4\":\"menu_py-sm-4__2NYcH\",\"pr-sm-4\":\"menu_pr-sm-4__2Ka0R\",\"px-sm-4\":\"menu_px-sm-4__3QmyQ\",\"pb-sm-4\":\"menu_pb-sm-4__2v41l\",\"pl-sm-4\":\"menu_pl-sm-4__Mg1dQ\",\"p-sm-5\":\"menu_p-sm-5__V8ETO\",\"pt-sm-5\":\"menu_pt-sm-5__VXSGG\",\"py-sm-5\":\"menu_py-sm-5__2nJvU\",\"pr-sm-5\":\"menu_pr-sm-5__2fv7X\",\"px-sm-5\":\"menu_px-sm-5__2QiPn\",\"pb-sm-5\":\"menu_pb-sm-5__2om85\",\"pl-sm-5\":\"menu_pl-sm-5__3ksVT\",\"m-sm-n1\":\"menu_m-sm-n1__2UcI7\",\"mt-sm-n1\":\"menu_mt-sm-n1__1WAYZ\",\"my-sm-n1\":\"menu_my-sm-n1__2yBKs\",\"mr-sm-n1\":\"menu_mr-sm-n1__1XYqt\",\"mx-sm-n1\":\"menu_mx-sm-n1__Q-jqY\",\"mb-sm-n1\":\"menu_mb-sm-n1__NSz01\",\"ml-sm-n1\":\"menu_ml-sm-n1__1OKB2\",\"m-sm-n2\":\"menu_m-sm-n2__-5p2F\",\"mt-sm-n2\":\"menu_mt-sm-n2__3gG9S\",\"my-sm-n2\":\"menu_my-sm-n2__3gj67\",\"mr-sm-n2\":\"menu_mr-sm-n2__1qAuo\",\"mx-sm-n2\":\"menu_mx-sm-n2__2ZRiF\",\"mb-sm-n2\":\"menu_mb-sm-n2__lyxy3\",\"ml-sm-n2\":\"menu_ml-sm-n2__13MKg\",\"m-sm-n3\":\"menu_m-sm-n3__15tc6\",\"mt-sm-n3\":\"menu_mt-sm-n3__xXWW2\",\"my-sm-n3\":\"menu_my-sm-n3__bdiov\",\"mr-sm-n3\":\"menu_mr-sm-n3__2C07i\",\"mx-sm-n3\":\"menu_mx-sm-n3__kWhi0\",\"mb-sm-n3\":\"menu_mb-sm-n3__2p-ZQ\",\"ml-sm-n3\":\"menu_ml-sm-n3__3BB3x\",\"m-sm-n4\":\"menu_m-sm-n4__3tXRc\",\"mt-sm-n4\":\"menu_mt-sm-n4__346N-\",\"my-sm-n4\":\"menu_my-sm-n4__1_E3V\",\"mr-sm-n4\":\"menu_mr-sm-n4__2Uqh-\",\"mx-sm-n4\":\"menu_mx-sm-n4__B0WJd\",\"mb-sm-n4\":\"menu_mb-sm-n4__2QSzP\",\"ml-sm-n4\":\"menu_ml-sm-n4__2qskL\",\"m-sm-n5\":\"menu_m-sm-n5__3oG60\",\"mt-sm-n5\":\"menu_mt-sm-n5__1XwVb\",\"my-sm-n5\":\"menu_my-sm-n5__ZodLd\",\"mr-sm-n5\":\"menu_mr-sm-n5__Vc001\",\"mx-sm-n5\":\"menu_mx-sm-n5__ifSsG\",\"mb-sm-n5\":\"menu_mb-sm-n5__hGLam\",\"ml-sm-n5\":\"menu_ml-sm-n5__3VJ76\",\"m-sm-auto\":\"menu_m-sm-auto__1qLzR\",\"mt-sm-auto\":\"menu_mt-sm-auto__3_vAQ\",\"my-sm-auto\":\"menu_my-sm-auto__13nfq\",\"mr-sm-auto\":\"menu_mr-sm-auto__3I7uV\",\"mx-sm-auto\":\"menu_mx-sm-auto__1CHfo\",\"mb-sm-auto\":\"menu_mb-sm-auto__f3t1t\",\"ml-sm-auto\":\"menu_ml-sm-auto__2_5aR\",\"m-md-0\":\"menu_m-md-0__2zpvg\",\"mt-md-0\":\"menu_mt-md-0__63YKS\",\"my-md-0\":\"menu_my-md-0__146Gz\",\"mr-md-0\":\"menu_mr-md-0__3dBG7\",\"mx-md-0\":\"menu_mx-md-0__3l5qx\",\"mb-md-0\":\"menu_mb-md-0__204l_\",\"ml-md-0\":\"menu_ml-md-0__2aGyK\",\"m-md-1\":\"menu_m-md-1__2DBYU\",\"mt-md-1\":\"menu_mt-md-1__ME7OG\",\"my-md-1\":\"menu_my-md-1__38Trf\",\"mr-md-1\":\"menu_mr-md-1__WFKmT\",\"mx-md-1\":\"menu_mx-md-1__29-S5\",\"mb-md-1\":\"menu_mb-md-1__1-JZy\",\"ml-md-1\":\"menu_ml-md-1__1ueiS\",\"m-md-2\":\"menu_m-md-2__3OAv9\",\"mt-md-2\":\"menu_mt-md-2__3l_h7\",\"my-md-2\":\"menu_my-md-2__12jsB\",\"mr-md-2\":\"menu_mr-md-2__nwo5Z\",\"mx-md-2\":\"menu_mx-md-2__HySs4\",\"mb-md-2\":\"menu_mb-md-2__1B9cd\",\"ml-md-2\":\"menu_ml-md-2__2SJmY\",\"m-md-3\":\"menu_m-md-3__1xO5v\",\"mt-md-3\":\"menu_mt-md-3__9F2U0\",\"my-md-3\":\"menu_my-md-3__1Y2dJ\",\"mr-md-3\":\"menu_mr-md-3__18mua\",\"mx-md-3\":\"menu_mx-md-3__36DQh\",\"mb-md-3\":\"menu_mb-md-3__2PdOr\",\"ml-md-3\":\"menu_ml-md-3__3UWuR\",\"m-md-4\":\"menu_m-md-4__VlIxQ\",\"mt-md-4\":\"menu_mt-md-4__3A7n3\",\"my-md-4\":\"menu_my-md-4__MX1iU\",\"mr-md-4\":\"menu_mr-md-4__3Snvv\",\"mx-md-4\":\"menu_mx-md-4__2vFS3\",\"mb-md-4\":\"menu_mb-md-4__1NPoC\",\"ml-md-4\":\"menu_ml-md-4__1GkZq\",\"m-md-5\":\"menu_m-md-5__2cj1w\",\"mt-md-5\":\"menu_mt-md-5__3qxUM\",\"my-md-5\":\"menu_my-md-5__YbxhB\",\"mr-md-5\":\"menu_mr-md-5__1lRtf\",\"mx-md-5\":\"menu_mx-md-5__6VFsN\",\"mb-md-5\":\"menu_mb-md-5__2D3_6\",\"ml-md-5\":\"menu_ml-md-5__2-Xia\",\"p-md-0\":\"menu_p-md-0__2uH3y\",\"pt-md-0\":\"menu_pt-md-0__1MLG_\",\"py-md-0\":\"menu_py-md-0__1gj8k\",\"pr-md-0\":\"menu_pr-md-0__K8y2j\",\"px-md-0\":\"menu_px-md-0__16ND6\",\"pb-md-0\":\"menu_pb-md-0__1HLC_\",\"pl-md-0\":\"menu_pl-md-0__2YZy2\",\"p-md-1\":\"menu_p-md-1__2o8m4\",\"pt-md-1\":\"menu_pt-md-1__3aZUa\",\"py-md-1\":\"menu_py-md-1__3v5_3\",\"pr-md-1\":\"menu_pr-md-1__1ebgD\",\"px-md-1\":\"menu_px-md-1__2cI9I\",\"pb-md-1\":\"menu_pb-md-1__X4J9e\",\"pl-md-1\":\"menu_pl-md-1__1Jn1U\",\"p-md-2\":\"menu_p-md-2__2dHm9\",\"pt-md-2\":\"menu_pt-md-2__1o8F5\",\"py-md-2\":\"menu_py-md-2__1nA7r\",\"pr-md-2\":\"menu_pr-md-2__3ptAu\",\"px-md-2\":\"menu_px-md-2__2Diz3\",\"pb-md-2\":\"menu_pb-md-2__1tde7\",\"pl-md-2\":\"menu_pl-md-2__3eDLF\",\"p-md-3\":\"menu_p-md-3__NqU7_\",\"pt-md-3\":\"menu_pt-md-3__5Kaeo\",\"py-md-3\":\"menu_py-md-3__UcO9_\",\"pr-md-3\":\"menu_pr-md-3__T7UNu\",\"px-md-3\":\"menu_px-md-3__1KnEQ\",\"pb-md-3\":\"menu_pb-md-3__2tb5J\",\"pl-md-3\":\"menu_pl-md-3__Yx6Jf\",\"p-md-4\":\"menu_p-md-4__2Mljq\",\"pt-md-4\":\"menu_pt-md-4__L8IYx\",\"py-md-4\":\"menu_py-md-4__3_jpx\",\"pr-md-4\":\"menu_pr-md-4__3UFpE\",\"px-md-4\":\"menu_px-md-4__1AifX\",\"pb-md-4\":\"menu_pb-md-4__fAr_E\",\"pl-md-4\":\"menu_pl-md-4__3m6SP\",\"p-md-5\":\"menu_p-md-5__RLXHW\",\"pt-md-5\":\"menu_pt-md-5__3B47b\",\"py-md-5\":\"menu_py-md-5__3ERwj\",\"pr-md-5\":\"menu_pr-md-5__2F_QQ\",\"px-md-5\":\"menu_px-md-5__2qE6P\",\"pb-md-5\":\"menu_pb-md-5__1omwU\",\"pl-md-5\":\"menu_pl-md-5__3LiO0\",\"m-md-n1\":\"menu_m-md-n1__1vTHH\",\"mt-md-n1\":\"menu_mt-md-n1__2u08p\",\"my-md-n1\":\"menu_my-md-n1__3sXaQ\",\"mr-md-n1\":\"menu_mr-md-n1__1rlBp\",\"mx-md-n1\":\"menu_mx-md-n1__1F3uK\",\"mb-md-n1\":\"menu_mb-md-n1__3q7mX\",\"ml-md-n1\":\"menu_ml-md-n1__3Wp1c\",\"m-md-n2\":\"menu_m-md-n2__1tk8z\",\"mt-md-n2\":\"menu_mt-md-n2__1lqOs\",\"my-md-n2\":\"menu_my-md-n2__hjbAA\",\"mr-md-n2\":\"menu_mr-md-n2__2WIos\",\"mx-md-n2\":\"menu_mx-md-n2__M86Pi\",\"mb-md-n2\":\"menu_mb-md-n2__FI6A7\",\"ml-md-n2\":\"menu_ml-md-n2__3Lmdb\",\"m-md-n3\":\"menu_m-md-n3__2AaDE\",\"mt-md-n3\":\"menu_mt-md-n3__z0au0\",\"my-md-n3\":\"menu_my-md-n3__2vlqN\",\"mr-md-n3\":\"menu_mr-md-n3__1Npm-\",\"mx-md-n3\":\"menu_mx-md-n3__23_QJ\",\"mb-md-n3\":\"menu_mb-md-n3__3kAmM\",\"ml-md-n3\":\"menu_ml-md-n3__2KOwJ\",\"m-md-n4\":\"menu_m-md-n4__3tQlJ\",\"mt-md-n4\":\"menu_mt-md-n4__22ynV\",\"my-md-n4\":\"menu_my-md-n4__2IJZJ\",\"mr-md-n4\":\"menu_mr-md-n4__2bRjJ\",\"mx-md-n4\":\"menu_mx-md-n4__3g9oo\",\"mb-md-n4\":\"menu_mb-md-n4__37DBb\",\"ml-md-n4\":\"menu_ml-md-n4__3LFe5\",\"m-md-n5\":\"menu_m-md-n5__NVAYw\",\"mt-md-n5\":\"menu_mt-md-n5__3w69m\",\"my-md-n5\":\"menu_my-md-n5__3Ingg\",\"mr-md-n5\":\"menu_mr-md-n5__r4Zlj\",\"mx-md-n5\":\"menu_mx-md-n5__1Z2Hb\",\"mb-md-n5\":\"menu_mb-md-n5__1Fbvr\",\"ml-md-n5\":\"menu_ml-md-n5__1_mvM\",\"m-md-auto\":\"menu_m-md-auto__1lb5h\",\"mt-md-auto\":\"menu_mt-md-auto__1EoKj\",\"my-md-auto\":\"menu_my-md-auto__2VEqa\",\"mr-md-auto\":\"menu_mr-md-auto__2V43C\",\"mx-md-auto\":\"menu_mx-md-auto__38uNb\",\"mb-md-auto\":\"menu_mb-md-auto__1lPke\",\"ml-md-auto\":\"menu_ml-md-auto__3TkDJ\",\"m-lg-0\":\"menu_m-lg-0__25qKL\",\"mt-lg-0\":\"menu_mt-lg-0__2G-cy\",\"my-lg-0\":\"menu_my-lg-0__-GqZs\",\"mr-lg-0\":\"menu_mr-lg-0__2_sCP\",\"mx-lg-0\":\"menu_mx-lg-0__3PMJc\",\"mb-lg-0\":\"menu_mb-lg-0__1V-kT\",\"ml-lg-0\":\"menu_ml-lg-0__2t8lk\",\"m-lg-1\":\"menu_m-lg-1__3glJz\",\"mt-lg-1\":\"menu_mt-lg-1__18od7\",\"my-lg-1\":\"menu_my-lg-1__1iaqf\",\"mr-lg-1\":\"menu_mr-lg-1__OuskO\",\"mx-lg-1\":\"menu_mx-lg-1__2-YuR\",\"mb-lg-1\":\"menu_mb-lg-1__1lzRG\",\"ml-lg-1\":\"menu_ml-lg-1__2DcEH\",\"m-lg-2\":\"menu_m-lg-2__1w3Yf\",\"mt-lg-2\":\"menu_mt-lg-2__3BTyX\",\"my-lg-2\":\"menu_my-lg-2__3KsHw\",\"mr-lg-2\":\"menu_mr-lg-2__1YTfy\",\"mx-lg-2\":\"menu_mx-lg-2__fyom4\",\"mb-lg-2\":\"menu_mb-lg-2__1T2nB\",\"ml-lg-2\":\"menu_ml-lg-2__1Cv_r\",\"m-lg-3\":\"menu_m-lg-3__60XU0\",\"mt-lg-3\":\"menu_mt-lg-3__29ix-\",\"my-lg-3\":\"menu_my-lg-3__3_iEC\",\"mr-lg-3\":\"menu_mr-lg-3__3-Lg-\",\"mx-lg-3\":\"menu_mx-lg-3__3f_sF\",\"mb-lg-3\":\"menu_mb-lg-3__20W4I\",\"ml-lg-3\":\"menu_ml-lg-3__1hLDH\",\"m-lg-4\":\"menu_m-lg-4__1Zjah\",\"mt-lg-4\":\"menu_mt-lg-4__369Vv\",\"my-lg-4\":\"menu_my-lg-4__29yxd\",\"mr-lg-4\":\"menu_mr-lg-4__2nm43\",\"mx-lg-4\":\"menu_mx-lg-4__2Svaj\",\"mb-lg-4\":\"menu_mb-lg-4__1RJo2\",\"ml-lg-4\":\"menu_ml-lg-4__3hle-\",\"m-lg-5\":\"menu_m-lg-5__2f-5i\",\"mt-lg-5\":\"menu_mt-lg-5__2nnCp\",\"my-lg-5\":\"menu_my-lg-5__6uFtI\",\"mr-lg-5\":\"menu_mr-lg-5__Vqjgj\",\"mx-lg-5\":\"menu_mx-lg-5__t8Siw\",\"mb-lg-5\":\"menu_mb-lg-5__3c4lW\",\"ml-lg-5\":\"menu_ml-lg-5__3xy4M\",\"p-lg-0\":\"menu_p-lg-0__3sg_f\",\"pt-lg-0\":\"menu_pt-lg-0__WYB3N\",\"py-lg-0\":\"menu_py-lg-0__1IUMC\",\"pr-lg-0\":\"menu_pr-lg-0__3gSzo\",\"px-lg-0\":\"menu_px-lg-0__1QGvg\",\"pb-lg-0\":\"menu_pb-lg-0__2L5Bt\",\"pl-lg-0\":\"menu_pl-lg-0__1k37r\",\"p-lg-1\":\"menu_p-lg-1__35QYi\",\"pt-lg-1\":\"menu_pt-lg-1__3E_Vh\",\"py-lg-1\":\"menu_py-lg-1__G61u0\",\"pr-lg-1\":\"menu_pr-lg-1__jj8bo\",\"px-lg-1\":\"menu_px-lg-1__2aXRp\",\"pb-lg-1\":\"menu_pb-lg-1__1qcts\",\"pl-lg-1\":\"menu_pl-lg-1__2z37y\",\"p-lg-2\":\"menu_p-lg-2__20DLd\",\"pt-lg-2\":\"menu_pt-lg-2__dR1cj\",\"py-lg-2\":\"menu_py-lg-2__2E9pj\",\"pr-lg-2\":\"menu_pr-lg-2__1v3cs\",\"px-lg-2\":\"menu_px-lg-2__235dd\",\"pb-lg-2\":\"menu_pb-lg-2__2enaB\",\"pl-lg-2\":\"menu_pl-lg-2__3nMGR\",\"p-lg-3\":\"menu_p-lg-3__2LJVU\",\"pt-lg-3\":\"menu_pt-lg-3__10RIR\",\"py-lg-3\":\"menu_py-lg-3__1bL3R\",\"pr-lg-3\":\"menu_pr-lg-3__2LXvI\",\"px-lg-3\":\"menu_px-lg-3__22KTN\",\"pb-lg-3\":\"menu_pb-lg-3__3OHXc\",\"pl-lg-3\":\"menu_pl-lg-3__1yJmI\",\"p-lg-4\":\"menu_p-lg-4__3ZzoK\",\"pt-lg-4\":\"menu_pt-lg-4__yvuLE\",\"py-lg-4\":\"menu_py-lg-4__mntBb\",\"pr-lg-4\":\"menu_pr-lg-4__2OPoj\",\"px-lg-4\":\"menu_px-lg-4__1E_nU\",\"pb-lg-4\":\"menu_pb-lg-4__3KVe1\",\"pl-lg-4\":\"menu_pl-lg-4__2Ke-u\",\"p-lg-5\":\"menu_p-lg-5__26kfz\",\"pt-lg-5\":\"menu_pt-lg-5__1I9hn\",\"py-lg-5\":\"menu_py-lg-5__3Co1X\",\"pr-lg-5\":\"menu_pr-lg-5__3dVEg\",\"px-lg-5\":\"menu_px-lg-5__gkvWd\",\"pb-lg-5\":\"menu_pb-lg-5__2kWVt\",\"pl-lg-5\":\"menu_pl-lg-5__1XsNx\",\"m-lg-n1\":\"menu_m-lg-n1__19_xw\",\"mt-lg-n1\":\"menu_mt-lg-n1__3yOPi\",\"my-lg-n1\":\"menu_my-lg-n1__2xZc4\",\"mr-lg-n1\":\"menu_mr-lg-n1__1nOPZ\",\"mx-lg-n1\":\"menu_mx-lg-n1__loleZ\",\"mb-lg-n1\":\"menu_mb-lg-n1__2qLSg\",\"ml-lg-n1\":\"menu_ml-lg-n1__3MYUa\",\"m-lg-n2\":\"menu_m-lg-n2__3y-K6\",\"mt-lg-n2\":\"menu_mt-lg-n2__sjZ_M\",\"my-lg-n2\":\"menu_my-lg-n2__2U3D1\",\"mr-lg-n2\":\"menu_mr-lg-n2__3Oco2\",\"mx-lg-n2\":\"menu_mx-lg-n2__Hn44k\",\"mb-lg-n2\":\"menu_mb-lg-n2__1q-zz\",\"ml-lg-n2\":\"menu_ml-lg-n2__3VPZM\",\"m-lg-n3\":\"menu_m-lg-n3__2xpV0\",\"mt-lg-n3\":\"menu_mt-lg-n3__2AbI8\",\"my-lg-n3\":\"menu_my-lg-n3__dZot5\",\"mr-lg-n3\":\"menu_mr-lg-n3__21QEb\",\"mx-lg-n3\":\"menu_mx-lg-n3__1Bm6Q\",\"mb-lg-n3\":\"menu_mb-lg-n3__27_JR\",\"ml-lg-n3\":\"menu_ml-lg-n3__2EJ5J\",\"m-lg-n4\":\"menu_m-lg-n4__33Ww4\",\"mt-lg-n4\":\"menu_mt-lg-n4__2FHEG\",\"my-lg-n4\":\"menu_my-lg-n4__3ZL5C\",\"mr-lg-n4\":\"menu_mr-lg-n4__13DRq\",\"mx-lg-n4\":\"menu_mx-lg-n4__2LIfB\",\"mb-lg-n4\":\"menu_mb-lg-n4__2GMEa\",\"ml-lg-n4\":\"menu_ml-lg-n4__ZUsWO\",\"m-lg-n5\":\"menu_m-lg-n5__21rZJ\",\"mt-lg-n5\":\"menu_mt-lg-n5__3wleX\",\"my-lg-n5\":\"menu_my-lg-n5__13olS\",\"mr-lg-n5\":\"menu_mr-lg-n5__2sZb3\",\"mx-lg-n5\":\"menu_mx-lg-n5__1MH02\",\"mb-lg-n5\":\"menu_mb-lg-n5__81aLp\",\"ml-lg-n5\":\"menu_ml-lg-n5__5uQMp\",\"m-lg-auto\":\"menu_m-lg-auto__20RYg\",\"mt-lg-auto\":\"menu_mt-lg-auto__3vhst\",\"my-lg-auto\":\"menu_my-lg-auto__Xl8W9\",\"mr-lg-auto\":\"menu_mr-lg-auto__2Hl5_\",\"mx-lg-auto\":\"menu_mx-lg-auto__ldFNq\",\"mb-lg-auto\":\"menu_mb-lg-auto__8Zl9a\",\"ml-lg-auto\":\"menu_ml-lg-auto__QI7wZ\",\"m-xl-0\":\"menu_m-xl-0__1c6A7\",\"mt-xl-0\":\"menu_mt-xl-0__1R7yd\",\"my-xl-0\":\"menu_my-xl-0__20LC4\",\"mr-xl-0\":\"menu_mr-xl-0__WbyKm\",\"mx-xl-0\":\"menu_mx-xl-0__L3dnm\",\"mb-xl-0\":\"menu_mb-xl-0__WveSW\",\"ml-xl-0\":\"menu_ml-xl-0__2BrWO\",\"m-xl-1\":\"menu_m-xl-1__VPuiz\",\"mt-xl-1\":\"menu_mt-xl-1__2aQ3c\",\"my-xl-1\":\"menu_my-xl-1__1VMw3\",\"mr-xl-1\":\"menu_mr-xl-1__2Ay8r\",\"mx-xl-1\":\"menu_mx-xl-1__2pkwV\",\"mb-xl-1\":\"menu_mb-xl-1__2mn-j\",\"ml-xl-1\":\"menu_ml-xl-1__3Fw4D\",\"m-xl-2\":\"menu_m-xl-2__3joVO\",\"mt-xl-2\":\"menu_mt-xl-2__1USfY\",\"my-xl-2\":\"menu_my-xl-2__1-BTT\",\"mr-xl-2\":\"menu_mr-xl-2__36KBQ\",\"mx-xl-2\":\"menu_mx-xl-2__16D0d\",\"mb-xl-2\":\"menu_mb-xl-2__26Rya\",\"ml-xl-2\":\"menu_ml-xl-2__1kKQq\",\"m-xl-3\":\"menu_m-xl-3__2G95W\",\"mt-xl-3\":\"menu_mt-xl-3__jAV-h\",\"my-xl-3\":\"menu_my-xl-3__leT0K\",\"mr-xl-3\":\"menu_mr-xl-3__18hIC\",\"mx-xl-3\":\"menu_mx-xl-3__32qd9\",\"mb-xl-3\":\"menu_mb-xl-3__es2YM\",\"ml-xl-3\":\"menu_ml-xl-3__3oNJc\",\"m-xl-4\":\"menu_m-xl-4__3-7ij\",\"mt-xl-4\":\"menu_mt-xl-4__3I9aE\",\"my-xl-4\":\"menu_my-xl-4__Xk7RV\",\"mr-xl-4\":\"menu_mr-xl-4__JI-G5\",\"mx-xl-4\":\"menu_mx-xl-4__3jofG\",\"mb-xl-4\":\"menu_mb-xl-4__ctI25\",\"ml-xl-4\":\"menu_ml-xl-4__2el-k\",\"m-xl-5\":\"menu_m-xl-5__2xDKd\",\"mt-xl-5\":\"menu_mt-xl-5__2cBQQ\",\"my-xl-5\":\"menu_my-xl-5__IORjv\",\"mr-xl-5\":\"menu_mr-xl-5__4gi9H\",\"mx-xl-5\":\"menu_mx-xl-5__2Hyso\",\"mb-xl-5\":\"menu_mb-xl-5__iywOB\",\"ml-xl-5\":\"menu_ml-xl-5__3E5nl\",\"p-xl-0\":\"menu_p-xl-0__2g2GV\",\"pt-xl-0\":\"menu_pt-xl-0__23o9r\",\"py-xl-0\":\"menu_py-xl-0__1up_b\",\"pr-xl-0\":\"menu_pr-xl-0__3KwY9\",\"px-xl-0\":\"menu_px-xl-0__1dPCg\",\"pb-xl-0\":\"menu_pb-xl-0__1wl1o\",\"pl-xl-0\":\"menu_pl-xl-0__2jorF\",\"p-xl-1\":\"menu_p-xl-1__1Fktp\",\"pt-xl-1\":\"menu_pt-xl-1__z-Nqc\",\"py-xl-1\":\"menu_py-xl-1__1Cxlm\",\"pr-xl-1\":\"menu_pr-xl-1__1KgsW\",\"px-xl-1\":\"menu_px-xl-1__3Uk7e\",\"pb-xl-1\":\"menu_pb-xl-1__3fbLY\",\"pl-xl-1\":\"menu_pl-xl-1__4aBSH\",\"p-xl-2\":\"menu_p-xl-2__1UA6-\",\"pt-xl-2\":\"menu_pt-xl-2__PkeSW\",\"py-xl-2\":\"menu_py-xl-2__3BZ9Q\",\"pr-xl-2\":\"menu_pr-xl-2__3mNgJ\",\"px-xl-2\":\"menu_px-xl-2__2mzdz\",\"pb-xl-2\":\"menu_pb-xl-2__My9N9\",\"pl-xl-2\":\"menu_pl-xl-2__2ZYqv\",\"p-xl-3\":\"menu_p-xl-3__1eLBo\",\"pt-xl-3\":\"menu_pt-xl-3__OSTJa\",\"py-xl-3\":\"menu_py-xl-3__1S0IM\",\"pr-xl-3\":\"menu_pr-xl-3__2QKI2\",\"px-xl-3\":\"menu_px-xl-3__eCrs-\",\"pb-xl-3\":\"menu_pb-xl-3__2l6kN\",\"pl-xl-3\":\"menu_pl-xl-3__GdVR3\",\"p-xl-4\":\"menu_p-xl-4__3XqWQ\",\"pt-xl-4\":\"menu_pt-xl-4__3tzSC\",\"py-xl-4\":\"menu_py-xl-4__pOaCX\",\"pr-xl-4\":\"menu_pr-xl-4__37oQ7\",\"px-xl-4\":\"menu_px-xl-4__2_jDJ\",\"pb-xl-4\":\"menu_pb-xl-4__GaCEU\",\"pl-xl-4\":\"menu_pl-xl-4__2iu7b\",\"p-xl-5\":\"menu_p-xl-5__2FCno\",\"pt-xl-5\":\"menu_pt-xl-5__1zhnY\",\"py-xl-5\":\"menu_py-xl-5__1U672\",\"pr-xl-5\":\"menu_pr-xl-5__3nzwf\",\"px-xl-5\":\"menu_px-xl-5__3ohjD\",\"pb-xl-5\":\"menu_pb-xl-5__-BwWP\",\"pl-xl-5\":\"menu_pl-xl-5__55lkB\",\"m-xl-n1\":\"menu_m-xl-n1__3t-Wm\",\"mt-xl-n1\":\"menu_mt-xl-n1__2AqOe\",\"my-xl-n1\":\"menu_my-xl-n1__26aCx\",\"mr-xl-n1\":\"menu_mr-xl-n1__1Hwnx\",\"mx-xl-n1\":\"menu_mx-xl-n1__2i0pb\",\"mb-xl-n1\":\"menu_mb-xl-n1__22g4z\",\"ml-xl-n1\":\"menu_ml-xl-n1__27lpB\",\"m-xl-n2\":\"menu_m-xl-n2__3u2N4\",\"mt-xl-n2\":\"menu_mt-xl-n2__zO53m\",\"my-xl-n2\":\"menu_my-xl-n2__2Wero\",\"mr-xl-n2\":\"menu_mr-xl-n2__1UIfk\",\"mx-xl-n2\":\"menu_mx-xl-n2__1ViVv\",\"mb-xl-n2\":\"menu_mb-xl-n2__N6wQN\",\"ml-xl-n2\":\"menu_ml-xl-n2__3Lfbg\",\"m-xl-n3\":\"menu_m-xl-n3__2srb7\",\"mt-xl-n3\":\"menu_mt-xl-n3__31Bwn\",\"my-xl-n3\":\"menu_my-xl-n3__3XIHv\",\"mr-xl-n3\":\"menu_mr-xl-n3__17dSu\",\"mx-xl-n3\":\"menu_mx-xl-n3__3UuYW\",\"mb-xl-n3\":\"menu_mb-xl-n3___hFhh\",\"ml-xl-n3\":\"menu_ml-xl-n3__2GEw-\",\"m-xl-n4\":\"menu_m-xl-n4__3orsJ\",\"mt-xl-n4\":\"menu_mt-xl-n4__15Vka\",\"my-xl-n4\":\"menu_my-xl-n4__ec3Sd\",\"mr-xl-n4\":\"menu_mr-xl-n4__N8oaO\",\"mx-xl-n4\":\"menu_mx-xl-n4__11gWt\",\"mb-xl-n4\":\"menu_mb-xl-n4__1VD5n\",\"ml-xl-n4\":\"menu_ml-xl-n4__KrDS4\",\"m-xl-n5\":\"menu_m-xl-n5__fT8CY\",\"mt-xl-n5\":\"menu_mt-xl-n5__3ZbY1\",\"my-xl-n5\":\"menu_my-xl-n5__2alZh\",\"mr-xl-n5\":\"menu_mr-xl-n5__1V5mw\",\"mx-xl-n5\":\"menu_mx-xl-n5__2vkua\",\"mb-xl-n5\":\"menu_mb-xl-n5__1Fg1n\",\"ml-xl-n5\":\"menu_ml-xl-n5__3ovID\",\"m-xl-auto\":\"menu_m-xl-auto__3L5_z\",\"mt-xl-auto\":\"menu_mt-xl-auto__3u9-W\",\"my-xl-auto\":\"menu_my-xl-auto__27qmI\",\"mr-xl-auto\":\"menu_mr-xl-auto__3JJkH\",\"mx-xl-auto\":\"menu_mx-xl-auto__Ft8EK\",\"mb-xl-auto\":\"menu_mb-xl-auto__3EN36\",\"ml-xl-auto\":\"menu_ml-xl-auto__3ag1A\",\"gradient-bg5\":\"menu_gradient-bg5__gz4Tt\",\"playerDetails\":\"menu_playerDetails__34Ryb\",\"avatar\":\"menu_avatar__177kP\",\"toggleDisplay\":\"menu_toggleDisplay__3WpGd\",\"slide-down\":\"menu_slide-down__2J0e8\",\"menuItem\":\"menu_menuItem__1jBss\",\"active\":\"menu_active__2MUcK\",\"listItem\":\"menu_listItem__13Hr6\",\"menuSection_options\":\"menu_menuSection_options__2T9mS\",\"menuSection\":\"menu_menuSection__CT4Vi\",\"menuTitle\":\"menu_menuTitle__3r2gI\",\"smallLink\":\"menu_smallLink__5n8FT\",\"bigLink\":\"menu_bigLink__2UKlD\",\"spacer\":\"menu_spacer__100gu\",\"arrowSize\":\"menu_arrowSize__MdH_o\",\"closeBtn\":\"menu_closeBtn__TbjZp\",\"collapsible\":\"menu_collapsible__LqnhW\",\"closed\":\"menu_closed__1csoz\"};","const PackageJson = require('../package.json');\r\n\r\nconst buildId = process.env.BUILD_ID || 'default';\r\nconst appCodePath = `${PackageJson.version}-${buildId}`;\r\n\r\nmodule.exports = {\r\n outputPath: 'leagues-client',\r\n buildId,\r\n applicationVersion: PackageJson.version,\r\n appCodePath,\r\n staticContentPath: 'public',\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"globalSearch_container__26VW7\",\"container-fluid\":\"globalSearch_container-fluid__12xOu\",\"container-xl\":\"globalSearch_container-xl__2GFYq\",\"container-lg\":\"globalSearch_container-lg__2oIhA\",\"container-md\":\"globalSearch_container-md__35xkU\",\"container-sm\":\"globalSearch_container-sm__Bf7Ib\",\"row\":\"globalSearch_row__JAFDs\",\"no-gutters\":\"globalSearch_no-gutters__3M7xu\",\"col\":\"globalSearch_col__1gf_Q\",\"col-xl\":\"globalSearch_col-xl__22bjX\",\"col-xl-auto\":\"globalSearch_col-xl-auto__gTL-9\",\"col-xl-12\":\"globalSearch_col-xl-12__2-_D8\",\"col-xl-11\":\"globalSearch_col-xl-11__2gPfj\",\"col-xl-10\":\"globalSearch_col-xl-10__rRuyh\",\"col-xl-9\":\"globalSearch_col-xl-9__3e2Gn\",\"col-xl-8\":\"globalSearch_col-xl-8__3sHa7\",\"col-xl-7\":\"globalSearch_col-xl-7__2R4bu\",\"col-xl-6\":\"globalSearch_col-xl-6__2iewq\",\"col-xl-5\":\"globalSearch_col-xl-5__2KmQm\",\"col-xl-4\":\"globalSearch_col-xl-4__3fuPb\",\"col-xl-3\":\"globalSearch_col-xl-3__BHseu\",\"col-xl-2\":\"globalSearch_col-xl-2__4m7Zb\",\"col-xl-1\":\"globalSearch_col-xl-1__1NqM_\",\"col-lg\":\"globalSearch_col-lg__3goit\",\"col-lg-auto\":\"globalSearch_col-lg-auto__1drRj\",\"col-lg-12\":\"globalSearch_col-lg-12__pzgSd\",\"col-lg-11\":\"globalSearch_col-lg-11__qppvq\",\"col-lg-10\":\"globalSearch_col-lg-10__3S5NQ\",\"col-lg-9\":\"globalSearch_col-lg-9__3SPQg\",\"col-lg-8\":\"globalSearch_col-lg-8__32d3a\",\"col-lg-7\":\"globalSearch_col-lg-7__9SEzG\",\"col-lg-6\":\"globalSearch_col-lg-6__2xBAD\",\"col-lg-5\":\"globalSearch_col-lg-5__BsrFT\",\"col-lg-4\":\"globalSearch_col-lg-4__smawi\",\"col-lg-3\":\"globalSearch_col-lg-3__3GzxN\",\"col-lg-2\":\"globalSearch_col-lg-2__3QED3\",\"col-lg-1\":\"globalSearch_col-lg-1__13x9y\",\"col-md\":\"globalSearch_col-md__175QC\",\"col-md-auto\":\"globalSearch_col-md-auto__2ocAO\",\"col-md-12\":\"globalSearch_col-md-12__1OuI6\",\"col-md-11\":\"globalSearch_col-md-11__2nXHD\",\"col-md-10\":\"globalSearch_col-md-10__1DXk4\",\"col-md-9\":\"globalSearch_col-md-9__2OcHz\",\"col-md-8\":\"globalSearch_col-md-8__17ckx\",\"col-md-7\":\"globalSearch_col-md-7__16rgF\",\"col-md-6\":\"globalSearch_col-md-6__Omkbr\",\"col-md-5\":\"globalSearch_col-md-5__9rfvG\",\"col-md-4\":\"globalSearch_col-md-4__2yIwt\",\"col-md-3\":\"globalSearch_col-md-3__3tElb\",\"col-md-2\":\"globalSearch_col-md-2__3z-tr\",\"col-md-1\":\"globalSearch_col-md-1__2BjK1\",\"col-sm\":\"globalSearch_col-sm__4ZwZU\",\"col-sm-auto\":\"globalSearch_col-sm-auto__1UnKM\",\"col-sm-12\":\"globalSearch_col-sm-12__2fidk\",\"col-sm-11\":\"globalSearch_col-sm-11__2GgmA\",\"col-sm-10\":\"globalSearch_col-sm-10__3Jk7s\",\"col-sm-9\":\"globalSearch_col-sm-9__3ee1y\",\"col-sm-8\":\"globalSearch_col-sm-8__1u8vt\",\"col-sm-7\":\"globalSearch_col-sm-7__3XJcm\",\"col-sm-6\":\"globalSearch_col-sm-6__23XFg\",\"col-sm-5\":\"globalSearch_col-sm-5__2VhBu\",\"col-sm-4\":\"globalSearch_col-sm-4__37ocI\",\"col-sm-3\":\"globalSearch_col-sm-3__1ahep\",\"col-sm-2\":\"globalSearch_col-sm-2__ONnlX\",\"col-sm-1\":\"globalSearch_col-sm-1__1i_Wb\",\"col-auto\":\"globalSearch_col-auto__-x6yx\",\"col-12\":\"globalSearch_col-12__1Scj2\",\"col-11\":\"globalSearch_col-11__tqvWi\",\"col-10\":\"globalSearch_col-10__1Ir6M\",\"col-9\":\"globalSearch_col-9__2LkPy\",\"col-8\":\"globalSearch_col-8__7gpES\",\"col-7\":\"globalSearch_col-7__2PB11\",\"col-6\":\"globalSearch_col-6__1XXIv\",\"col-5\":\"globalSearch_col-5__QyNe4\",\"col-4\":\"globalSearch_col-4__3HjIq\",\"col-3\":\"globalSearch_col-3__2EHu4\",\"col-2\":\"globalSearch_col-2__2n1Ls\",\"col-1\":\"globalSearch_col-1__2J2F_\",\"row-cols-1\":\"globalSearch_row-cols-1__mlkZv\",\"row-cols-2\":\"globalSearch_row-cols-2__2tJC1\",\"row-cols-3\":\"globalSearch_row-cols-3__2J_GQ\",\"row-cols-4\":\"globalSearch_row-cols-4__5equ1\",\"row-cols-5\":\"globalSearch_row-cols-5__1SQQp\",\"row-cols-6\":\"globalSearch_row-cols-6__oqhW-\",\"order-first\":\"globalSearch_order-first__3j5Ct\",\"order-last\":\"globalSearch_order-last__v00l1\",\"order-0\":\"globalSearch_order-0__15HiG\",\"order-1\":\"globalSearch_order-1__1EzPM\",\"order-2\":\"globalSearch_order-2__nKfL0\",\"order-3\":\"globalSearch_order-3__my4z1\",\"order-4\":\"globalSearch_order-4__1Ngdn\",\"order-5\":\"globalSearch_order-5__3THBp\",\"order-6\":\"globalSearch_order-6__2_p1C\",\"order-7\":\"globalSearch_order-7__3U2NN\",\"order-8\":\"globalSearch_order-8__1guH6\",\"order-9\":\"globalSearch_order-9__1QCO4\",\"order-10\":\"globalSearch_order-10__2QiL-\",\"order-11\":\"globalSearch_order-11__1cZhe\",\"order-12\":\"globalSearch_order-12__3wkhT\",\"offset-1\":\"globalSearch_offset-1__3p3EG\",\"offset-2\":\"globalSearch_offset-2__fmAuV\",\"offset-3\":\"globalSearch_offset-3__k-T3_\",\"offset-4\":\"globalSearch_offset-4__1xDSR\",\"offset-5\":\"globalSearch_offset-5__PXOH1\",\"offset-6\":\"globalSearch_offset-6__86Vfx\",\"offset-7\":\"globalSearch_offset-7__CWsxc\",\"offset-8\":\"globalSearch_offset-8__1QJbs\",\"offset-9\":\"globalSearch_offset-9__119tg\",\"offset-10\":\"globalSearch_offset-10__2ib9x\",\"offset-11\":\"globalSearch_offset-11__2HOPW\",\"row-cols-sm-1\":\"globalSearch_row-cols-sm-1__gambK\",\"row-cols-sm-2\":\"globalSearch_row-cols-sm-2__2WHmg\",\"row-cols-sm-3\":\"globalSearch_row-cols-sm-3__EmPYG\",\"row-cols-sm-4\":\"globalSearch_row-cols-sm-4__1SiL1\",\"row-cols-sm-5\":\"globalSearch_row-cols-sm-5__2WMw6\",\"row-cols-sm-6\":\"globalSearch_row-cols-sm-6__3Np1b\",\"order-sm-first\":\"globalSearch_order-sm-first__33oic\",\"order-sm-last\":\"globalSearch_order-sm-last__3XXx-\",\"order-sm-0\":\"globalSearch_order-sm-0__2D0wz\",\"order-sm-1\":\"globalSearch_order-sm-1__2oIKR\",\"order-sm-2\":\"globalSearch_order-sm-2__pX08q\",\"order-sm-3\":\"globalSearch_order-sm-3__3jFTr\",\"order-sm-4\":\"globalSearch_order-sm-4__3ciHd\",\"order-sm-5\":\"globalSearch_order-sm-5__mJbuB\",\"order-sm-6\":\"globalSearch_order-sm-6__1nX36\",\"order-sm-7\":\"globalSearch_order-sm-7__2rt9x\",\"order-sm-8\":\"globalSearch_order-sm-8__2DHHS\",\"order-sm-9\":\"globalSearch_order-sm-9__hDLRQ\",\"order-sm-10\":\"globalSearch_order-sm-10__2lDOh\",\"order-sm-11\":\"globalSearch_order-sm-11__1PTij\",\"order-sm-12\":\"globalSearch_order-sm-12__1hxwg\",\"offset-sm-0\":\"globalSearch_offset-sm-0__35qR-\",\"offset-sm-1\":\"globalSearch_offset-sm-1__1l06X\",\"offset-sm-2\":\"globalSearch_offset-sm-2__1Lhch\",\"offset-sm-3\":\"globalSearch_offset-sm-3__1ThVw\",\"offset-sm-4\":\"globalSearch_offset-sm-4__5QKUS\",\"offset-sm-5\":\"globalSearch_offset-sm-5__276qo\",\"offset-sm-6\":\"globalSearch_offset-sm-6__2HVBv\",\"offset-sm-7\":\"globalSearch_offset-sm-7__2f_Py\",\"offset-sm-8\":\"globalSearch_offset-sm-8__AHK1F\",\"offset-sm-9\":\"globalSearch_offset-sm-9__hbsde\",\"offset-sm-10\":\"globalSearch_offset-sm-10__39Kx7\",\"offset-sm-11\":\"globalSearch_offset-sm-11__qO5Fc\",\"row-cols-md-1\":\"globalSearch_row-cols-md-1__il3a0\",\"row-cols-md-2\":\"globalSearch_row-cols-md-2__2dZKg\",\"row-cols-md-3\":\"globalSearch_row-cols-md-3__152nn\",\"row-cols-md-4\":\"globalSearch_row-cols-md-4__1xHUw\",\"row-cols-md-5\":\"globalSearch_row-cols-md-5__39VPO\",\"row-cols-md-6\":\"globalSearch_row-cols-md-6__32d9_\",\"order-md-first\":\"globalSearch_order-md-first__2-yZu\",\"order-md-last\":\"globalSearch_order-md-last__3xQlP\",\"order-md-0\":\"globalSearch_order-md-0__26FBU\",\"order-md-1\":\"globalSearch_order-md-1__2WmWc\",\"order-md-2\":\"globalSearch_order-md-2__3oGpp\",\"order-md-3\":\"globalSearch_order-md-3__2UlMO\",\"order-md-4\":\"globalSearch_order-md-4__2PVzZ\",\"order-md-5\":\"globalSearch_order-md-5__1VbSk\",\"order-md-6\":\"globalSearch_order-md-6__3Rkpg\",\"order-md-7\":\"globalSearch_order-md-7__17U4u\",\"order-md-8\":\"globalSearch_order-md-8__23bmw\",\"order-md-9\":\"globalSearch_order-md-9__1C4A9\",\"order-md-10\":\"globalSearch_order-md-10__2UdYd\",\"order-md-11\":\"globalSearch_order-md-11__1Qm38\",\"order-md-12\":\"globalSearch_order-md-12__3jyNZ\",\"offset-md-0\":\"globalSearch_offset-md-0__1Y8dc\",\"offset-md-1\":\"globalSearch_offset-md-1__Jj4dM\",\"offset-md-2\":\"globalSearch_offset-md-2__1gBoo\",\"offset-md-3\":\"globalSearch_offset-md-3__Xsdtt\",\"offset-md-4\":\"globalSearch_offset-md-4__1k7tg\",\"offset-md-5\":\"globalSearch_offset-md-5__2hAnJ\",\"offset-md-6\":\"globalSearch_offset-md-6__3r-qe\",\"offset-md-7\":\"globalSearch_offset-md-7__1qpfn\",\"offset-md-8\":\"globalSearch_offset-md-8__1PmGF\",\"offset-md-9\":\"globalSearch_offset-md-9__2fJe0\",\"offset-md-10\":\"globalSearch_offset-md-10__3F1kh\",\"offset-md-11\":\"globalSearch_offset-md-11__3lnS3\",\"row-cols-lg-1\":\"globalSearch_row-cols-lg-1__3xE2P\",\"row-cols-lg-2\":\"globalSearch_row-cols-lg-2__1Wzkf\",\"row-cols-lg-3\":\"globalSearch_row-cols-lg-3__3tl6n\",\"row-cols-lg-4\":\"globalSearch_row-cols-lg-4__10BEm\",\"row-cols-lg-5\":\"globalSearch_row-cols-lg-5__1_3Sz\",\"row-cols-lg-6\":\"globalSearch_row-cols-lg-6__1HFxy\",\"order-lg-first\":\"globalSearch_order-lg-first__3rUn2\",\"order-lg-last\":\"globalSearch_order-lg-last__1uPc3\",\"order-lg-0\":\"globalSearch_order-lg-0__oWnEs\",\"order-lg-1\":\"globalSearch_order-lg-1__3VmNd\",\"order-lg-2\":\"globalSearch_order-lg-2__1_zsb\",\"order-lg-3\":\"globalSearch_order-lg-3__1KNMt\",\"order-lg-4\":\"globalSearch_order-lg-4__A3Tne\",\"order-lg-5\":\"globalSearch_order-lg-5__2tT0a\",\"order-lg-6\":\"globalSearch_order-lg-6__3aCIq\",\"order-lg-7\":\"globalSearch_order-lg-7__2Et89\",\"order-lg-8\":\"globalSearch_order-lg-8__2GDka\",\"order-lg-9\":\"globalSearch_order-lg-9__25b62\",\"order-lg-10\":\"globalSearch_order-lg-10__25S2g\",\"order-lg-11\":\"globalSearch_order-lg-11__3tEbV\",\"order-lg-12\":\"globalSearch_order-lg-12__N99Rl\",\"offset-lg-0\":\"globalSearch_offset-lg-0__Uc3wL\",\"offset-lg-1\":\"globalSearch_offset-lg-1__3Rroe\",\"offset-lg-2\":\"globalSearch_offset-lg-2__2sNC-\",\"offset-lg-3\":\"globalSearch_offset-lg-3__1Re_b\",\"offset-lg-4\":\"globalSearch_offset-lg-4__1VBUp\",\"offset-lg-5\":\"globalSearch_offset-lg-5__3Qgc9\",\"offset-lg-6\":\"globalSearch_offset-lg-6__1Nmqx\",\"offset-lg-7\":\"globalSearch_offset-lg-7__2i8Z6\",\"offset-lg-8\":\"globalSearch_offset-lg-8__a2irB\",\"offset-lg-9\":\"globalSearch_offset-lg-9__1J1xN\",\"offset-lg-10\":\"globalSearch_offset-lg-10__1nEKw\",\"offset-lg-11\":\"globalSearch_offset-lg-11__1qm9p\",\"row-cols-xl-1\":\"globalSearch_row-cols-xl-1__3q_rg\",\"row-cols-xl-2\":\"globalSearch_row-cols-xl-2__gq-qN\",\"row-cols-xl-3\":\"globalSearch_row-cols-xl-3__34MBh\",\"row-cols-xl-4\":\"globalSearch_row-cols-xl-4__3_yzY\",\"row-cols-xl-5\":\"globalSearch_row-cols-xl-5__3WsGY\",\"row-cols-xl-6\":\"globalSearch_row-cols-xl-6__n4D16\",\"order-xl-first\":\"globalSearch_order-xl-first__WKGIC\",\"order-xl-last\":\"globalSearch_order-xl-last__1DXfl\",\"order-xl-0\":\"globalSearch_order-xl-0__1KWoZ\",\"order-xl-1\":\"globalSearch_order-xl-1__2YsCb\",\"order-xl-2\":\"globalSearch_order-xl-2__eQbc-\",\"order-xl-3\":\"globalSearch_order-xl-3__Vgvne\",\"order-xl-4\":\"globalSearch_order-xl-4__3CLj-\",\"order-xl-5\":\"globalSearch_order-xl-5__ragNT\",\"order-xl-6\":\"globalSearch_order-xl-6__3tCgy\",\"order-xl-7\":\"globalSearch_order-xl-7__SpWOf\",\"order-xl-8\":\"globalSearch_order-xl-8__3mikd\",\"order-xl-9\":\"globalSearch_order-xl-9__qK3-w\",\"order-xl-10\":\"globalSearch_order-xl-10__1I_24\",\"order-xl-11\":\"globalSearch_order-xl-11__1EAih\",\"order-xl-12\":\"globalSearch_order-xl-12__3ZBBE\",\"offset-xl-0\":\"globalSearch_offset-xl-0__cK3Lz\",\"offset-xl-1\":\"globalSearch_offset-xl-1__1PjXn\",\"offset-xl-2\":\"globalSearch_offset-xl-2__37y-e\",\"offset-xl-3\":\"globalSearch_offset-xl-3__3xoym\",\"offset-xl-4\":\"globalSearch_offset-xl-4__d4yhn\",\"offset-xl-5\":\"globalSearch_offset-xl-5__3CsVr\",\"offset-xl-6\":\"globalSearch_offset-xl-6__ocTEQ\",\"offset-xl-7\":\"globalSearch_offset-xl-7__1qvlc\",\"offset-xl-8\":\"globalSearch_offset-xl-8__3QsGU\",\"offset-xl-9\":\"globalSearch_offset-xl-9__1gb4y\",\"offset-xl-10\":\"globalSearch_offset-xl-10__19ocM\",\"offset-xl-11\":\"globalSearch_offset-xl-11__1pt7r\",\"d-none\":\"globalSearch_d-none__2sFn7\",\"d-inline\":\"globalSearch_d-inline__1RFCo\",\"d-inline-block\":\"globalSearch_d-inline-block__18WRU\",\"d-block\":\"globalSearch_d-block__1lLiP\",\"d-table\":\"globalSearch_d-table__aR0fO\",\"d-table-row\":\"globalSearch_d-table-row__XiKU-\",\"d-table-cell\":\"globalSearch_d-table-cell__1lO5_\",\"d-flex\":\"globalSearch_d-flex__37l9U\",\"d-inline-flex\":\"globalSearch_d-inline-flex__2Nwfh\",\"d-sm-none\":\"globalSearch_d-sm-none__3NzZs\",\"d-sm-inline\":\"globalSearch_d-sm-inline__6YQZo\",\"d-sm-inline-block\":\"globalSearch_d-sm-inline-block__dcwGQ\",\"d-sm-block\":\"globalSearch_d-sm-block__uuCoD\",\"d-sm-table\":\"globalSearch_d-sm-table__33Tgg\",\"d-sm-table-row\":\"globalSearch_d-sm-table-row__2VVtE\",\"d-sm-table-cell\":\"globalSearch_d-sm-table-cell__1DVpC\",\"d-sm-flex\":\"globalSearch_d-sm-flex__ts1a5\",\"d-sm-inline-flex\":\"globalSearch_d-sm-inline-flex__1QLbv\",\"d-md-none\":\"globalSearch_d-md-none__3G6Ap\",\"d-md-inline\":\"globalSearch_d-md-inline__jPwSD\",\"d-md-inline-block\":\"globalSearch_d-md-inline-block__3MGKJ\",\"d-md-block\":\"globalSearch_d-md-block__VK8wS\",\"d-md-table\":\"globalSearch_d-md-table__3ni5-\",\"d-md-table-row\":\"globalSearch_d-md-table-row__GETHY\",\"d-md-table-cell\":\"globalSearch_d-md-table-cell__22R42\",\"d-md-flex\":\"globalSearch_d-md-flex__1MowT\",\"d-md-inline-flex\":\"globalSearch_d-md-inline-flex__3_7SB\",\"d-lg-none\":\"globalSearch_d-lg-none__b3Tgg\",\"d-lg-inline\":\"globalSearch_d-lg-inline__1UGDV\",\"d-lg-inline-block\":\"globalSearch_d-lg-inline-block__iPbvW\",\"d-lg-block\":\"globalSearch_d-lg-block__3u7gG\",\"d-lg-table\":\"globalSearch_d-lg-table__3y8c7\",\"d-lg-table-row\":\"globalSearch_d-lg-table-row__h-Wlc\",\"d-lg-table-cell\":\"globalSearch_d-lg-table-cell__3bb43\",\"d-lg-flex\":\"globalSearch_d-lg-flex__2CqT_\",\"d-lg-inline-flex\":\"globalSearch_d-lg-inline-flex__1CBlx\",\"d-xl-none\":\"globalSearch_d-xl-none__2t8mg\",\"d-xl-inline\":\"globalSearch_d-xl-inline__3viT3\",\"d-xl-inline-block\":\"globalSearch_d-xl-inline-block__1Dttd\",\"d-xl-block\":\"globalSearch_d-xl-block__1uPk6\",\"d-xl-table\":\"globalSearch_d-xl-table__1giUr\",\"d-xl-table-row\":\"globalSearch_d-xl-table-row__138-S\",\"d-xl-table-cell\":\"globalSearch_d-xl-table-cell__2zF3o\",\"d-xl-flex\":\"globalSearch_d-xl-flex__2pRNC\",\"d-xl-inline-flex\":\"globalSearch_d-xl-inline-flex__UU5xQ\",\"d-print-none\":\"globalSearch_d-print-none__IV496\",\"d-print-inline\":\"globalSearch_d-print-inline__2sB2C\",\"d-print-inline-block\":\"globalSearch_d-print-inline-block__1wvGn\",\"d-print-block\":\"globalSearch_d-print-block__2WXEE\",\"d-print-table\":\"globalSearch_d-print-table__1JwjP\",\"d-print-table-row\":\"globalSearch_d-print-table-row__SF2xD\",\"d-print-table-cell\":\"globalSearch_d-print-table-cell__I73ry\",\"d-print-flex\":\"globalSearch_d-print-flex__25zVl\",\"d-print-inline-flex\":\"globalSearch_d-print-inline-flex__2HS9A\",\"flex-row\":\"globalSearch_flex-row__2ns5l\",\"flex-column\":\"globalSearch_flex-column__2n-wu\",\"flex-row-reverse\":\"globalSearch_flex-row-reverse__3M0KB\",\"flex-column-reverse\":\"globalSearch_flex-column-reverse__3lCiM\",\"flex-wrap\":\"globalSearch_flex-wrap__2xh2J\",\"flex-nowrap\":\"globalSearch_flex-nowrap__3SMXi\",\"flex-wrap-reverse\":\"globalSearch_flex-wrap-reverse__271-d\",\"flex-fill\":\"globalSearch_flex-fill__LoXAZ\",\"flex-grow-0\":\"globalSearch_flex-grow-0__3XLYJ\",\"flex-grow-1\":\"globalSearch_flex-grow-1__3hIyS\",\"flex-shrink-0\":\"globalSearch_flex-shrink-0__2oMd4\",\"flex-shrink-1\":\"globalSearch_flex-shrink-1__3nTZc\",\"justify-content-start\":\"globalSearch_justify-content-start__3ULNU\",\"justify-content-end\":\"globalSearch_justify-content-end__3ToKh\",\"justify-content-center\":\"globalSearch_justify-content-center__WWDs7\",\"justify-content-between\":\"globalSearch_justify-content-between__3HhEK\",\"justify-content-around\":\"globalSearch_justify-content-around__3uiBy\",\"align-items-start\":\"globalSearch_align-items-start__1ddIK\",\"align-items-end\":\"globalSearch_align-items-end__3Ed3B\",\"align-items-center\":\"globalSearch_align-items-center__vQh3s\",\"align-items-baseline\":\"globalSearch_align-items-baseline__3kN_h\",\"align-items-stretch\":\"globalSearch_align-items-stretch__125C6\",\"align-content-start\":\"globalSearch_align-content-start__2rrA-\",\"align-content-end\":\"globalSearch_align-content-end__3NHG_\",\"align-content-center\":\"globalSearch_align-content-center__2a-Od\",\"align-content-between\":\"globalSearch_align-content-between__xuIoE\",\"align-content-around\":\"globalSearch_align-content-around__3QHlj\",\"align-content-stretch\":\"globalSearch_align-content-stretch__298xa\",\"align-self-auto\":\"globalSearch_align-self-auto__1MijD\",\"align-self-start\":\"globalSearch_align-self-start__EPLtX\",\"align-self-end\":\"globalSearch_align-self-end__2ZBZQ\",\"align-self-center\":\"globalSearch_align-self-center__1v0dy\",\"align-self-baseline\":\"globalSearch_align-self-baseline__3r2B1\",\"align-self-stretch\":\"globalSearch_align-self-stretch__11PU4\",\"flex-sm-row\":\"globalSearch_flex-sm-row__90vgh\",\"flex-sm-column\":\"globalSearch_flex-sm-column__3kelw\",\"flex-sm-row-reverse\":\"globalSearch_flex-sm-row-reverse__1p3UE\",\"flex-sm-column-reverse\":\"globalSearch_flex-sm-column-reverse__3DsEy\",\"flex-sm-wrap\":\"globalSearch_flex-sm-wrap__5mzwN\",\"flex-sm-nowrap\":\"globalSearch_flex-sm-nowrap__3nhsD\",\"flex-sm-wrap-reverse\":\"globalSearch_flex-sm-wrap-reverse__1t1rk\",\"flex-sm-fill\":\"globalSearch_flex-sm-fill__1OrWV\",\"flex-sm-grow-0\":\"globalSearch_flex-sm-grow-0__2FCdR\",\"flex-sm-grow-1\":\"globalSearch_flex-sm-grow-1__383h9\",\"flex-sm-shrink-0\":\"globalSearch_flex-sm-shrink-0__1Pjox\",\"flex-sm-shrink-1\":\"globalSearch_flex-sm-shrink-1__1npba\",\"justify-content-sm-start\":\"globalSearch_justify-content-sm-start__2NEOY\",\"justify-content-sm-end\":\"globalSearch_justify-content-sm-end__2Gqu1\",\"justify-content-sm-center\":\"globalSearch_justify-content-sm-center__3GrP1\",\"justify-content-sm-between\":\"globalSearch_justify-content-sm-between__2fji9\",\"justify-content-sm-around\":\"globalSearch_justify-content-sm-around__DHYx2\",\"align-items-sm-start\":\"globalSearch_align-items-sm-start__kDjgq\",\"align-items-sm-end\":\"globalSearch_align-items-sm-end__3i4Wg\",\"align-items-sm-center\":\"globalSearch_align-items-sm-center__1-xp9\",\"align-items-sm-baseline\":\"globalSearch_align-items-sm-baseline__1rEgg\",\"align-items-sm-stretch\":\"globalSearch_align-items-sm-stretch__3JMPG\",\"align-content-sm-start\":\"globalSearch_align-content-sm-start__2tJPk\",\"align-content-sm-end\":\"globalSearch_align-content-sm-end__3uemN\",\"align-content-sm-center\":\"globalSearch_align-content-sm-center__2frGm\",\"align-content-sm-between\":\"globalSearch_align-content-sm-between__1XWZk\",\"align-content-sm-around\":\"globalSearch_align-content-sm-around__thJ3B\",\"align-content-sm-stretch\":\"globalSearch_align-content-sm-stretch__24Ybw\",\"align-self-sm-auto\":\"globalSearch_align-self-sm-auto__21x86\",\"align-self-sm-start\":\"globalSearch_align-self-sm-start__1wF59\",\"align-self-sm-end\":\"globalSearch_align-self-sm-end__3RjTf\",\"align-self-sm-center\":\"globalSearch_align-self-sm-center__1QVD0\",\"align-self-sm-baseline\":\"globalSearch_align-self-sm-baseline__1rfSy\",\"align-self-sm-stretch\":\"globalSearch_align-self-sm-stretch__3J6_h\",\"flex-md-row\":\"globalSearch_flex-md-row__ncz6_\",\"flex-md-column\":\"globalSearch_flex-md-column__2abp-\",\"flex-md-row-reverse\":\"globalSearch_flex-md-row-reverse__EjT1M\",\"flex-md-column-reverse\":\"globalSearch_flex-md-column-reverse__RvUFD\",\"flex-md-wrap\":\"globalSearch_flex-md-wrap__wpzGn\",\"flex-md-nowrap\":\"globalSearch_flex-md-nowrap__11Qye\",\"flex-md-wrap-reverse\":\"globalSearch_flex-md-wrap-reverse__3UCv6\",\"flex-md-fill\":\"globalSearch_flex-md-fill__1QHQ1\",\"flex-md-grow-0\":\"globalSearch_flex-md-grow-0__1Zrpk\",\"flex-md-grow-1\":\"globalSearch_flex-md-grow-1__IBQhy\",\"flex-md-shrink-0\":\"globalSearch_flex-md-shrink-0__1QlLU\",\"flex-md-shrink-1\":\"globalSearch_flex-md-shrink-1__1HCU6\",\"justify-content-md-start\":\"globalSearch_justify-content-md-start__3VNQA\",\"justify-content-md-end\":\"globalSearch_justify-content-md-end__1HN8a\",\"justify-content-md-center\":\"globalSearch_justify-content-md-center__2gxsv\",\"justify-content-md-between\":\"globalSearch_justify-content-md-between__3ANYY\",\"justify-content-md-around\":\"globalSearch_justify-content-md-around__3nks4\",\"align-items-md-start\":\"globalSearch_align-items-md-start__2toDG\",\"align-items-md-end\":\"globalSearch_align-items-md-end__1IQFd\",\"align-items-md-center\":\"globalSearch_align-items-md-center__2unCF\",\"align-items-md-baseline\":\"globalSearch_align-items-md-baseline__lDl44\",\"align-items-md-stretch\":\"globalSearch_align-items-md-stretch__aQyMT\",\"align-content-md-start\":\"globalSearch_align-content-md-start__1wh-g\",\"align-content-md-end\":\"globalSearch_align-content-md-end__2a06w\",\"align-content-md-center\":\"globalSearch_align-content-md-center__3_WK9\",\"align-content-md-between\":\"globalSearch_align-content-md-between__30-eL\",\"align-content-md-around\":\"globalSearch_align-content-md-around__2uraT\",\"align-content-md-stretch\":\"globalSearch_align-content-md-stretch__rej7j\",\"align-self-md-auto\":\"globalSearch_align-self-md-auto__T-Q90\",\"align-self-md-start\":\"globalSearch_align-self-md-start__3ZSey\",\"align-self-md-end\":\"globalSearch_align-self-md-end__2bVLQ\",\"align-self-md-center\":\"globalSearch_align-self-md-center__3_qop\",\"align-self-md-baseline\":\"globalSearch_align-self-md-baseline__3_no7\",\"align-self-md-stretch\":\"globalSearch_align-self-md-stretch__27IKA\",\"flex-lg-row\":\"globalSearch_flex-lg-row__1GhEg\",\"flex-lg-column\":\"globalSearch_flex-lg-column__Lkug7\",\"flex-lg-row-reverse\":\"globalSearch_flex-lg-row-reverse__2n-AA\",\"flex-lg-column-reverse\":\"globalSearch_flex-lg-column-reverse__3QzjY\",\"flex-lg-wrap\":\"globalSearch_flex-lg-wrap__LzDDS\",\"flex-lg-nowrap\":\"globalSearch_flex-lg-nowrap__RbFCF\",\"flex-lg-wrap-reverse\":\"globalSearch_flex-lg-wrap-reverse__brSIY\",\"flex-lg-fill\":\"globalSearch_flex-lg-fill__2Lf-1\",\"flex-lg-grow-0\":\"globalSearch_flex-lg-grow-0__3PAHU\",\"flex-lg-grow-1\":\"globalSearch_flex-lg-grow-1__3trgb\",\"flex-lg-shrink-0\":\"globalSearch_flex-lg-shrink-0__3luYi\",\"flex-lg-shrink-1\":\"globalSearch_flex-lg-shrink-1__cigfB\",\"justify-content-lg-start\":\"globalSearch_justify-content-lg-start__1Wv8Z\",\"justify-content-lg-end\":\"globalSearch_justify-content-lg-end__1ZKoq\",\"justify-content-lg-center\":\"globalSearch_justify-content-lg-center__22KHO\",\"justify-content-lg-between\":\"globalSearch_justify-content-lg-between__lCiYb\",\"justify-content-lg-around\":\"globalSearch_justify-content-lg-around__BzZ5u\",\"align-items-lg-start\":\"globalSearch_align-items-lg-start__nz7ow\",\"align-items-lg-end\":\"globalSearch_align-items-lg-end__Tp_ZO\",\"align-items-lg-center\":\"globalSearch_align-items-lg-center__-97nc\",\"align-items-lg-baseline\":\"globalSearch_align-items-lg-baseline__1OSl8\",\"align-items-lg-stretch\":\"globalSearch_align-items-lg-stretch__18jlH\",\"align-content-lg-start\":\"globalSearch_align-content-lg-start__2_Bv5\",\"align-content-lg-end\":\"globalSearch_align-content-lg-end__2NztC\",\"align-content-lg-center\":\"globalSearch_align-content-lg-center__1L04O\",\"align-content-lg-between\":\"globalSearch_align-content-lg-between__24VfU\",\"align-content-lg-around\":\"globalSearch_align-content-lg-around__1ZxSq\",\"align-content-lg-stretch\":\"globalSearch_align-content-lg-stretch__LDOj3\",\"align-self-lg-auto\":\"globalSearch_align-self-lg-auto__1LQqY\",\"align-self-lg-start\":\"globalSearch_align-self-lg-start__3syCb\",\"align-self-lg-end\":\"globalSearch_align-self-lg-end__2-tHr\",\"align-self-lg-center\":\"globalSearch_align-self-lg-center__3gGCB\",\"align-self-lg-baseline\":\"globalSearch_align-self-lg-baseline__AtkNf\",\"align-self-lg-stretch\":\"globalSearch_align-self-lg-stretch__1iMPY\",\"flex-xl-row\":\"globalSearch_flex-xl-row__s4IrA\",\"flex-xl-column\":\"globalSearch_flex-xl-column__1jc2Z\",\"flex-xl-row-reverse\":\"globalSearch_flex-xl-row-reverse__zO3kf\",\"flex-xl-column-reverse\":\"globalSearch_flex-xl-column-reverse___ilxf\",\"flex-xl-wrap\":\"globalSearch_flex-xl-wrap__12PFu\",\"flex-xl-nowrap\":\"globalSearch_flex-xl-nowrap__tRJ_s\",\"flex-xl-wrap-reverse\":\"globalSearch_flex-xl-wrap-reverse__11vmQ\",\"flex-xl-fill\":\"globalSearch_flex-xl-fill__2admw\",\"flex-xl-grow-0\":\"globalSearch_flex-xl-grow-0__1UeQs\",\"flex-xl-grow-1\":\"globalSearch_flex-xl-grow-1__2QpnS\",\"flex-xl-shrink-0\":\"globalSearch_flex-xl-shrink-0__1OCiu\",\"flex-xl-shrink-1\":\"globalSearch_flex-xl-shrink-1__2n3yg\",\"justify-content-xl-start\":\"globalSearch_justify-content-xl-start__xwW9e\",\"justify-content-xl-end\":\"globalSearch_justify-content-xl-end__1mwne\",\"justify-content-xl-center\":\"globalSearch_justify-content-xl-center__2U7u1\",\"justify-content-xl-between\":\"globalSearch_justify-content-xl-between__3Khss\",\"justify-content-xl-around\":\"globalSearch_justify-content-xl-around__XQ8Ci\",\"align-items-xl-start\":\"globalSearch_align-items-xl-start__ywJPT\",\"align-items-xl-end\":\"globalSearch_align-items-xl-end__GfTG1\",\"align-items-xl-center\":\"globalSearch_align-items-xl-center__3K_U0\",\"align-items-xl-baseline\":\"globalSearch_align-items-xl-baseline__2zvBs\",\"align-items-xl-stretch\":\"globalSearch_align-items-xl-stretch__2i-sy\",\"align-content-xl-start\":\"globalSearch_align-content-xl-start__1C6Fx\",\"align-content-xl-end\":\"globalSearch_align-content-xl-end__2D-mH\",\"align-content-xl-center\":\"globalSearch_align-content-xl-center__jywF0\",\"align-content-xl-between\":\"globalSearch_align-content-xl-between__2AMHS\",\"align-content-xl-around\":\"globalSearch_align-content-xl-around__21DgG\",\"align-content-xl-stretch\":\"globalSearch_align-content-xl-stretch__3wBbG\",\"align-self-xl-auto\":\"globalSearch_align-self-xl-auto__21K5i\",\"align-self-xl-start\":\"globalSearch_align-self-xl-start__2SKHV\",\"align-self-xl-end\":\"globalSearch_align-self-xl-end__11eRu\",\"align-self-xl-center\":\"globalSearch_align-self-xl-center__38nQL\",\"align-self-xl-baseline\":\"globalSearch_align-self-xl-baseline__2hlQ5\",\"align-self-xl-stretch\":\"globalSearch_align-self-xl-stretch__2JWgb\",\"m-0\":\"globalSearch_m-0__3rSuH\",\"mt-0\":\"globalSearch_mt-0__5DPoM\",\"my-0\":\"globalSearch_my-0__15ezN\",\"mr-0\":\"globalSearch_mr-0__3HQuL\",\"mx-0\":\"globalSearch_mx-0__2gxlz\",\"mb-0\":\"globalSearch_mb-0__1jv38\",\"ml-0\":\"globalSearch_ml-0__doEYK\",\"m-1\":\"globalSearch_m-1__2-M2D\",\"mt-1\":\"globalSearch_mt-1__sekaV\",\"my-1\":\"globalSearch_my-1__1O6EZ\",\"mr-1\":\"globalSearch_mr-1__2BTFU\",\"mx-1\":\"globalSearch_mx-1__sHJaA\",\"mb-1\":\"globalSearch_mb-1__xNn2j\",\"ml-1\":\"globalSearch_ml-1__n-tEp\",\"m-2\":\"globalSearch_m-2__3Jjdg\",\"mt-2\":\"globalSearch_mt-2__3K9FZ\",\"my-2\":\"globalSearch_my-2__kdbpO\",\"mr-2\":\"globalSearch_mr-2__1dwEW\",\"mx-2\":\"globalSearch_mx-2__FyTav\",\"mb-2\":\"globalSearch_mb-2__2PMAz\",\"ml-2\":\"globalSearch_ml-2__2H2Sk\",\"m-3\":\"globalSearch_m-3__2Jvsq\",\"mt-3\":\"globalSearch_mt-3__2rBu0\",\"my-3\":\"globalSearch_my-3__9KqX3\",\"mr-3\":\"globalSearch_mr-3__1a1UD\",\"mx-3\":\"globalSearch_mx-3__2b6B_\",\"mb-3\":\"globalSearch_mb-3__kn1Zy\",\"ml-3\":\"globalSearch_ml-3__3EP-c\",\"m-4\":\"globalSearch_m-4__3bx5U\",\"mt-4\":\"globalSearch_mt-4__3LnLQ\",\"my-4\":\"globalSearch_my-4__2tcus\",\"mr-4\":\"globalSearch_mr-4__14VMY\",\"mx-4\":\"globalSearch_mx-4__1AXCE\",\"mb-4\":\"globalSearch_mb-4__3Rirv\",\"ml-4\":\"globalSearch_ml-4__1W0nh\",\"m-5\":\"globalSearch_m-5__1fHhX\",\"mt-5\":\"globalSearch_mt-5__20IV_\",\"my-5\":\"globalSearch_my-5__finI0\",\"mr-5\":\"globalSearch_mr-5__2vitY\",\"mx-5\":\"globalSearch_mx-5__1tDgL\",\"mb-5\":\"globalSearch_mb-5__2EwUq\",\"ml-5\":\"globalSearch_ml-5__2Fjvo\",\"p-0\":\"globalSearch_p-0__1IUbk\",\"pt-0\":\"globalSearch_pt-0__1WmTa\",\"py-0\":\"globalSearch_py-0__1D4Zi\",\"pr-0\":\"globalSearch_pr-0__3Uc1v\",\"px-0\":\"globalSearch_px-0__2L7p_\",\"pb-0\":\"globalSearch_pb-0__31TbT\",\"pl-0\":\"globalSearch_pl-0__OjI20\",\"p-1\":\"globalSearch_p-1__mmB3M\",\"pt-1\":\"globalSearch_pt-1__1bGT4\",\"py-1\":\"globalSearch_py-1__9KqpQ\",\"pr-1\":\"globalSearch_pr-1__2xkLe\",\"px-1\":\"globalSearch_px-1__2g3Im\",\"pb-1\":\"globalSearch_pb-1__107IJ\",\"pl-1\":\"globalSearch_pl-1__1i8ps\",\"p-2\":\"globalSearch_p-2__1o2Mh\",\"pt-2\":\"globalSearch_pt-2__2QXbL\",\"py-2\":\"globalSearch_py-2__2Kb-r\",\"pr-2\":\"globalSearch_pr-2__342EP\",\"px-2\":\"globalSearch_px-2__25ggw\",\"pb-2\":\"globalSearch_pb-2__1Qsr7\",\"pl-2\":\"globalSearch_pl-2__3ykCh\",\"p-3\":\"globalSearch_p-3__1C_SR\",\"pt-3\":\"globalSearch_pt-3__vmWZA\",\"py-3\":\"globalSearch_py-3__3X0Yw\",\"pr-3\":\"globalSearch_pr-3__1ayji\",\"px-3\":\"globalSearch_px-3__3v5xM\",\"pb-3\":\"globalSearch_pb-3__1q-Py\",\"pl-3\":\"globalSearch_pl-3__32J4D\",\"p-4\":\"globalSearch_p-4__2x3nm\",\"pt-4\":\"globalSearch_pt-4__3uDR9\",\"py-4\":\"globalSearch_py-4__2qlkq\",\"pr-4\":\"globalSearch_pr-4__37DxJ\",\"px-4\":\"globalSearch_px-4__3DwDM\",\"pb-4\":\"globalSearch_pb-4__3W8Wv\",\"pl-4\":\"globalSearch_pl-4__1KBw9\",\"p-5\":\"globalSearch_p-5__1YFJ9\",\"pt-5\":\"globalSearch_pt-5__1KLOD\",\"py-5\":\"globalSearch_py-5__fIgVW\",\"pr-5\":\"globalSearch_pr-5__39-MR\",\"px-5\":\"globalSearch_px-5__2pRUe\",\"pb-5\":\"globalSearch_pb-5__13DuN\",\"pl-5\":\"globalSearch_pl-5__3MUjU\",\"m-n1\":\"globalSearch_m-n1__3XSYN\",\"mt-n1\":\"globalSearch_mt-n1__33o1U\",\"my-n1\":\"globalSearch_my-n1__2c2Ru\",\"mr-n1\":\"globalSearch_mr-n1__3eD2h\",\"mx-n1\":\"globalSearch_mx-n1__YnQ2_\",\"mb-n1\":\"globalSearch_mb-n1___7lX-\",\"ml-n1\":\"globalSearch_ml-n1__364FF\",\"m-n2\":\"globalSearch_m-n2__7NCtm\",\"mt-n2\":\"globalSearch_mt-n2__2bhBm\",\"my-n2\":\"globalSearch_my-n2__UzFEX\",\"mr-n2\":\"globalSearch_mr-n2__2-sst\",\"mx-n2\":\"globalSearch_mx-n2__2hYWf\",\"mb-n2\":\"globalSearch_mb-n2__1LV1u\",\"ml-n2\":\"globalSearch_ml-n2__3Oj37\",\"m-n3\":\"globalSearch_m-n3__3c-QY\",\"mt-n3\":\"globalSearch_mt-n3__9To9i\",\"my-n3\":\"globalSearch_my-n3__17bp0\",\"mr-n3\":\"globalSearch_mr-n3__KWflr\",\"mx-n3\":\"globalSearch_mx-n3__2XV43\",\"mb-n3\":\"globalSearch_mb-n3__v5EhO\",\"ml-n3\":\"globalSearch_ml-n3__287TI\",\"m-n4\":\"globalSearch_m-n4__cGs7v\",\"mt-n4\":\"globalSearch_mt-n4__1URPG\",\"my-n4\":\"globalSearch_my-n4__Vgcvy\",\"mr-n4\":\"globalSearch_mr-n4__1zWCk\",\"mx-n4\":\"globalSearch_mx-n4__1vou3\",\"mb-n4\":\"globalSearch_mb-n4__1LgJ2\",\"ml-n4\":\"globalSearch_ml-n4__36R4S\",\"m-n5\":\"globalSearch_m-n5__33k18\",\"mt-n5\":\"globalSearch_mt-n5__3Itsz\",\"my-n5\":\"globalSearch_my-n5__1QRMa\",\"mr-n5\":\"globalSearch_mr-n5__k6E7J\",\"mx-n5\":\"globalSearch_mx-n5__2BYqK\",\"mb-n5\":\"globalSearch_mb-n5__2uABR\",\"ml-n5\":\"globalSearch_ml-n5__s-IyA\",\"m-auto\":\"globalSearch_m-auto__1lmrC\",\"mt-auto\":\"globalSearch_mt-auto__1_qvw\",\"my-auto\":\"globalSearch_my-auto__1LzWT\",\"mr-auto\":\"globalSearch_mr-auto__3T54z\",\"mx-auto\":\"globalSearch_mx-auto__3i3LB\",\"mb-auto\":\"globalSearch_mb-auto__2f2pE\",\"ml-auto\":\"globalSearch_ml-auto__DDGfz\",\"m-sm-0\":\"globalSearch_m-sm-0__2oyw1\",\"mt-sm-0\":\"globalSearch_mt-sm-0__z1IHZ\",\"my-sm-0\":\"globalSearch_my-sm-0__2aTk4\",\"mr-sm-0\":\"globalSearch_mr-sm-0__Z4Cdl\",\"mx-sm-0\":\"globalSearch_mx-sm-0__2g0lw\",\"mb-sm-0\":\"globalSearch_mb-sm-0___m4YN\",\"ml-sm-0\":\"globalSearch_ml-sm-0__Nq7ca\",\"m-sm-1\":\"globalSearch_m-sm-1__3fPh7\",\"mt-sm-1\":\"globalSearch_mt-sm-1__Xi6DI\",\"my-sm-1\":\"globalSearch_my-sm-1__2rskU\",\"mr-sm-1\":\"globalSearch_mr-sm-1__2_K7U\",\"mx-sm-1\":\"globalSearch_mx-sm-1__3UaDG\",\"mb-sm-1\":\"globalSearch_mb-sm-1__1bJm-\",\"ml-sm-1\":\"globalSearch_ml-sm-1__1qZxF\",\"m-sm-2\":\"globalSearch_m-sm-2__3sikK\",\"mt-sm-2\":\"globalSearch_mt-sm-2__j8VgR\",\"my-sm-2\":\"globalSearch_my-sm-2__2oLeZ\",\"mr-sm-2\":\"globalSearch_mr-sm-2__2hy7V\",\"mx-sm-2\":\"globalSearch_mx-sm-2__L_e3-\",\"mb-sm-2\":\"globalSearch_mb-sm-2__sFhtC\",\"ml-sm-2\":\"globalSearch_ml-sm-2__AaQYE\",\"m-sm-3\":\"globalSearch_m-sm-3__270fs\",\"mt-sm-3\":\"globalSearch_mt-sm-3___6Z-W\",\"my-sm-3\":\"globalSearch_my-sm-3__RN9x5\",\"mr-sm-3\":\"globalSearch_mr-sm-3__3eUW_\",\"mx-sm-3\":\"globalSearch_mx-sm-3__YokH_\",\"mb-sm-3\":\"globalSearch_mb-sm-3__30CIK\",\"ml-sm-3\":\"globalSearch_ml-sm-3__1InQH\",\"m-sm-4\":\"globalSearch_m-sm-4__3Ubg_\",\"mt-sm-4\":\"globalSearch_mt-sm-4__Tbc0j\",\"my-sm-4\":\"globalSearch_my-sm-4__10bvq\",\"mr-sm-4\":\"globalSearch_mr-sm-4__3NUbG\",\"mx-sm-4\":\"globalSearch_mx-sm-4__35bdE\",\"mb-sm-4\":\"globalSearch_mb-sm-4__AeOyR\",\"ml-sm-4\":\"globalSearch_ml-sm-4__BM6r4\",\"m-sm-5\":\"globalSearch_m-sm-5__3-Kmy\",\"mt-sm-5\":\"globalSearch_mt-sm-5__36Pe4\",\"my-sm-5\":\"globalSearch_my-sm-5__1_hRw\",\"mr-sm-5\":\"globalSearch_mr-sm-5__2czEj\",\"mx-sm-5\":\"globalSearch_mx-sm-5__aQiM7\",\"mb-sm-5\":\"globalSearch_mb-sm-5__7FKqe\",\"ml-sm-5\":\"globalSearch_ml-sm-5__8iMxL\",\"p-sm-0\":\"globalSearch_p-sm-0__1Cwuz\",\"pt-sm-0\":\"globalSearch_pt-sm-0__2rhmH\",\"py-sm-0\":\"globalSearch_py-sm-0__1bkC-\",\"pr-sm-0\":\"globalSearch_pr-sm-0__2TQVs\",\"px-sm-0\":\"globalSearch_px-sm-0__1WKqG\",\"pb-sm-0\":\"globalSearch_pb-sm-0__1l5ZW\",\"pl-sm-0\":\"globalSearch_pl-sm-0__3tdzo\",\"p-sm-1\":\"globalSearch_p-sm-1__2GCPt\",\"pt-sm-1\":\"globalSearch_pt-sm-1__2BzAF\",\"py-sm-1\":\"globalSearch_py-sm-1__1wU0l\",\"pr-sm-1\":\"globalSearch_pr-sm-1__bOJoo\",\"px-sm-1\":\"globalSearch_px-sm-1__3tau8\",\"pb-sm-1\":\"globalSearch_pb-sm-1__STXer\",\"pl-sm-1\":\"globalSearch_pl-sm-1__1NGDa\",\"p-sm-2\":\"globalSearch_p-sm-2__1dMhq\",\"pt-sm-2\":\"globalSearch_pt-sm-2__2Y3C2\",\"py-sm-2\":\"globalSearch_py-sm-2__3lfhq\",\"pr-sm-2\":\"globalSearch_pr-sm-2__2jzJR\",\"px-sm-2\":\"globalSearch_px-sm-2__36gGs\",\"pb-sm-2\":\"globalSearch_pb-sm-2__1awhR\",\"pl-sm-2\":\"globalSearch_pl-sm-2__1wiqx\",\"p-sm-3\":\"globalSearch_p-sm-3__bMQqC\",\"pt-sm-3\":\"globalSearch_pt-sm-3__4kpaB\",\"py-sm-3\":\"globalSearch_py-sm-3__8fMp7\",\"pr-sm-3\":\"globalSearch_pr-sm-3__3vzNe\",\"px-sm-3\":\"globalSearch_px-sm-3__Hpchn\",\"pb-sm-3\":\"globalSearch_pb-sm-3__1tbFJ\",\"pl-sm-3\":\"globalSearch_pl-sm-3__sjai9\",\"p-sm-4\":\"globalSearch_p-sm-4__29fG_\",\"pt-sm-4\":\"globalSearch_pt-sm-4__2qxmc\",\"py-sm-4\":\"globalSearch_py-sm-4__3aSIQ\",\"pr-sm-4\":\"globalSearch_pr-sm-4__3BrUQ\",\"px-sm-4\":\"globalSearch_px-sm-4__3wfKC\",\"pb-sm-4\":\"globalSearch_pb-sm-4__XxT0k\",\"pl-sm-4\":\"globalSearch_pl-sm-4__3Y1h5\",\"p-sm-5\":\"globalSearch_p-sm-5__3GwZ8\",\"pt-sm-5\":\"globalSearch_pt-sm-5__2ZEdN\",\"py-sm-5\":\"globalSearch_py-sm-5__1vJQT\",\"pr-sm-5\":\"globalSearch_pr-sm-5__1KQph\",\"px-sm-5\":\"globalSearch_px-sm-5__1JugL\",\"pb-sm-5\":\"globalSearch_pb-sm-5__sq0Ey\",\"pl-sm-5\":\"globalSearch_pl-sm-5__29e-T\",\"m-sm-n1\":\"globalSearch_m-sm-n1__2djpq\",\"mt-sm-n1\":\"globalSearch_mt-sm-n1__144Bf\",\"my-sm-n1\":\"globalSearch_my-sm-n1__1NXtl\",\"mr-sm-n1\":\"globalSearch_mr-sm-n1__3P1-u\",\"mx-sm-n1\":\"globalSearch_mx-sm-n1__2AvEw\",\"mb-sm-n1\":\"globalSearch_mb-sm-n1__20jGW\",\"ml-sm-n1\":\"globalSearch_ml-sm-n1__2Z4a_\",\"m-sm-n2\":\"globalSearch_m-sm-n2__2q7Jq\",\"mt-sm-n2\":\"globalSearch_mt-sm-n2__1ioAn\",\"my-sm-n2\":\"globalSearch_my-sm-n2__2JyWB\",\"mr-sm-n2\":\"globalSearch_mr-sm-n2__3ofvA\",\"mx-sm-n2\":\"globalSearch_mx-sm-n2__GXmAB\",\"mb-sm-n2\":\"globalSearch_mb-sm-n2__10XpO\",\"ml-sm-n2\":\"globalSearch_ml-sm-n2__2IIiH\",\"m-sm-n3\":\"globalSearch_m-sm-n3__PM4lv\",\"mt-sm-n3\":\"globalSearch_mt-sm-n3__3QTrK\",\"my-sm-n3\":\"globalSearch_my-sm-n3__2eak2\",\"mr-sm-n3\":\"globalSearch_mr-sm-n3__1ENHQ\",\"mx-sm-n3\":\"globalSearch_mx-sm-n3__1Wiqy\",\"mb-sm-n3\":\"globalSearch_mb-sm-n3__1Csqp\",\"ml-sm-n3\":\"globalSearch_ml-sm-n3__158-C\",\"m-sm-n4\":\"globalSearch_m-sm-n4__3hCK-\",\"mt-sm-n4\":\"globalSearch_mt-sm-n4__1KIQS\",\"my-sm-n4\":\"globalSearch_my-sm-n4__2Qp4z\",\"mr-sm-n4\":\"globalSearch_mr-sm-n4__2eD9e\",\"mx-sm-n4\":\"globalSearch_mx-sm-n4__1W1rc\",\"mb-sm-n4\":\"globalSearch_mb-sm-n4__ljTGw\",\"ml-sm-n4\":\"globalSearch_ml-sm-n4__2qtb9\",\"m-sm-n5\":\"globalSearch_m-sm-n5__3bYH6\",\"mt-sm-n5\":\"globalSearch_mt-sm-n5__3Tv87\",\"my-sm-n5\":\"globalSearch_my-sm-n5__2Tmsg\",\"mr-sm-n5\":\"globalSearch_mr-sm-n5__1FtY0\",\"mx-sm-n5\":\"globalSearch_mx-sm-n5__1zEen\",\"mb-sm-n5\":\"globalSearch_mb-sm-n5__1wx0m\",\"ml-sm-n5\":\"globalSearch_ml-sm-n5__7_gB9\",\"m-sm-auto\":\"globalSearch_m-sm-auto__3mHyA\",\"mt-sm-auto\":\"globalSearch_mt-sm-auto__dYdzl\",\"my-sm-auto\":\"globalSearch_my-sm-auto__35o5q\",\"mr-sm-auto\":\"globalSearch_mr-sm-auto__1RIsm\",\"mx-sm-auto\":\"globalSearch_mx-sm-auto__3z9jn\",\"mb-sm-auto\":\"globalSearch_mb-sm-auto__33eSI\",\"ml-sm-auto\":\"globalSearch_ml-sm-auto__2M7Ic\",\"m-md-0\":\"globalSearch_m-md-0__3UOz6\",\"mt-md-0\":\"globalSearch_mt-md-0__1F0UA\",\"my-md-0\":\"globalSearch_my-md-0__2SHdj\",\"mr-md-0\":\"globalSearch_mr-md-0__sgjau\",\"mx-md-0\":\"globalSearch_mx-md-0__1-WXg\",\"mb-md-0\":\"globalSearch_mb-md-0__38DuK\",\"ml-md-0\":\"globalSearch_ml-md-0__XrEc-\",\"m-md-1\":\"globalSearch_m-md-1__3h6oG\",\"mt-md-1\":\"globalSearch_mt-md-1__2I-Yr\",\"my-md-1\":\"globalSearch_my-md-1__1hBAi\",\"mr-md-1\":\"globalSearch_mr-md-1__36bOi\",\"mx-md-1\":\"globalSearch_mx-md-1__1i0Ou\",\"mb-md-1\":\"globalSearch_mb-md-1__2P4gk\",\"ml-md-1\":\"globalSearch_ml-md-1__3zmT7\",\"m-md-2\":\"globalSearch_m-md-2__6NGJN\",\"mt-md-2\":\"globalSearch_mt-md-2__1Uvt0\",\"my-md-2\":\"globalSearch_my-md-2__3dcfA\",\"mr-md-2\":\"globalSearch_mr-md-2__21J5q\",\"mx-md-2\":\"globalSearch_mx-md-2__CM3x3\",\"mb-md-2\":\"globalSearch_mb-md-2__2WEbA\",\"ml-md-2\":\"globalSearch_ml-md-2__3RPlW\",\"m-md-3\":\"globalSearch_m-md-3__2aDKV\",\"mt-md-3\":\"globalSearch_mt-md-3__3XgNR\",\"my-md-3\":\"globalSearch_my-md-3__vDWfA\",\"mr-md-3\":\"globalSearch_mr-md-3__1DL3h\",\"mx-md-3\":\"globalSearch_mx-md-3__1LjAY\",\"mb-md-3\":\"globalSearch_mb-md-3__Z_FWm\",\"ml-md-3\":\"globalSearch_ml-md-3__3hHB4\",\"m-md-4\":\"globalSearch_m-md-4__3JYD8\",\"mt-md-4\":\"globalSearch_mt-md-4__3l7IC\",\"my-md-4\":\"globalSearch_my-md-4__264Ov\",\"mr-md-4\":\"globalSearch_mr-md-4__3fuMR\",\"mx-md-4\":\"globalSearch_mx-md-4__1N9MZ\",\"mb-md-4\":\"globalSearch_mb-md-4__FE0i-\",\"ml-md-4\":\"globalSearch_ml-md-4__cdiZc\",\"m-md-5\":\"globalSearch_m-md-5__19_1j\",\"mt-md-5\":\"globalSearch_mt-md-5__2aMGI\",\"my-md-5\":\"globalSearch_my-md-5__3b3fR\",\"mr-md-5\":\"globalSearch_mr-md-5__264uI\",\"mx-md-5\":\"globalSearch_mx-md-5__tHymV\",\"mb-md-5\":\"globalSearch_mb-md-5__GGG_S\",\"ml-md-5\":\"globalSearch_ml-md-5__3wcTV\",\"p-md-0\":\"globalSearch_p-md-0__ap0zS\",\"pt-md-0\":\"globalSearch_pt-md-0__2Dr65\",\"py-md-0\":\"globalSearch_py-md-0__1kxzR\",\"pr-md-0\":\"globalSearch_pr-md-0__dSaFx\",\"px-md-0\":\"globalSearch_px-md-0__2PvDa\",\"pb-md-0\":\"globalSearch_pb-md-0__2fnre\",\"pl-md-0\":\"globalSearch_pl-md-0__4oCVc\",\"p-md-1\":\"globalSearch_p-md-1__3oOWr\",\"pt-md-1\":\"globalSearch_pt-md-1__2J-VY\",\"py-md-1\":\"globalSearch_py-md-1__3E6aQ\",\"pr-md-1\":\"globalSearch_pr-md-1__1IYVP\",\"px-md-1\":\"globalSearch_px-md-1__1u8xX\",\"pb-md-1\":\"globalSearch_pb-md-1__3QIgQ\",\"pl-md-1\":\"globalSearch_pl-md-1__aewUN\",\"p-md-2\":\"globalSearch_p-md-2__2IHw2\",\"pt-md-2\":\"globalSearch_pt-md-2__12eUx\",\"py-md-2\":\"globalSearch_py-md-2__107dt\",\"pr-md-2\":\"globalSearch_pr-md-2__35e42\",\"px-md-2\":\"globalSearch_px-md-2__3ZUFU\",\"pb-md-2\":\"globalSearch_pb-md-2__1_CIr\",\"pl-md-2\":\"globalSearch_pl-md-2__2e1OW\",\"p-md-3\":\"globalSearch_p-md-3__37mOh\",\"pt-md-3\":\"globalSearch_pt-md-3__2Vwzr\",\"py-md-3\":\"globalSearch_py-md-3__2RTAP\",\"pr-md-3\":\"globalSearch_pr-md-3__6U459\",\"px-md-3\":\"globalSearch_px-md-3__2vO57\",\"pb-md-3\":\"globalSearch_pb-md-3__2VIj-\",\"pl-md-3\":\"globalSearch_pl-md-3__3EjrV\",\"p-md-4\":\"globalSearch_p-md-4__s3uTN\",\"pt-md-4\":\"globalSearch_pt-md-4__3dIHM\",\"py-md-4\":\"globalSearch_py-md-4__2wyeH\",\"pr-md-4\":\"globalSearch_pr-md-4__1vYgO\",\"px-md-4\":\"globalSearch_px-md-4__3mMjx\",\"pb-md-4\":\"globalSearch_pb-md-4__2IQJR\",\"pl-md-4\":\"globalSearch_pl-md-4__3trPv\",\"p-md-5\":\"globalSearch_p-md-5__2R9GW\",\"pt-md-5\":\"globalSearch_pt-md-5__3ehlY\",\"py-md-5\":\"globalSearch_py-md-5__J257d\",\"pr-md-5\":\"globalSearch_pr-md-5__OPHf6\",\"px-md-5\":\"globalSearch_px-md-5__1N3Uu\",\"pb-md-5\":\"globalSearch_pb-md-5__BMJ8-\",\"pl-md-5\":\"globalSearch_pl-md-5__3aG8E\",\"m-md-n1\":\"globalSearch_m-md-n1__2YVxB\",\"mt-md-n1\":\"globalSearch_mt-md-n1__1aoHm\",\"my-md-n1\":\"globalSearch_my-md-n1__2aQAn\",\"mr-md-n1\":\"globalSearch_mr-md-n1__iGS25\",\"mx-md-n1\":\"globalSearch_mx-md-n1__1fwsP\",\"mb-md-n1\":\"globalSearch_mb-md-n1__2bP32\",\"ml-md-n1\":\"globalSearch_ml-md-n1__Xkth0\",\"m-md-n2\":\"globalSearch_m-md-n2__1xoag\",\"mt-md-n2\":\"globalSearch_mt-md-n2__1h0KY\",\"my-md-n2\":\"globalSearch_my-md-n2__1GOoZ\",\"mr-md-n2\":\"globalSearch_mr-md-n2__1kFF4\",\"mx-md-n2\":\"globalSearch_mx-md-n2__1rMhP\",\"mb-md-n2\":\"globalSearch_mb-md-n2__2xJzU\",\"ml-md-n2\":\"globalSearch_ml-md-n2__1N7s7\",\"m-md-n3\":\"globalSearch_m-md-n3__1eR1n\",\"mt-md-n3\":\"globalSearch_mt-md-n3__2ALR2\",\"my-md-n3\":\"globalSearch_my-md-n3__lqW4O\",\"mr-md-n3\":\"globalSearch_mr-md-n3__9iEIy\",\"mx-md-n3\":\"globalSearch_mx-md-n3__v1QYp\",\"mb-md-n3\":\"globalSearch_mb-md-n3__153Zp\",\"ml-md-n3\":\"globalSearch_ml-md-n3__36DfW\",\"m-md-n4\":\"globalSearch_m-md-n4__2yzjK\",\"mt-md-n4\":\"globalSearch_mt-md-n4__1d_sn\",\"my-md-n4\":\"globalSearch_my-md-n4__3QXnT\",\"mr-md-n4\":\"globalSearch_mr-md-n4__JwuUG\",\"mx-md-n4\":\"globalSearch_mx-md-n4__1P8uK\",\"mb-md-n4\":\"globalSearch_mb-md-n4__2FTyk\",\"ml-md-n4\":\"globalSearch_ml-md-n4__1l8JH\",\"m-md-n5\":\"globalSearch_m-md-n5__e2qJp\",\"mt-md-n5\":\"globalSearch_mt-md-n5__vK4LF\",\"my-md-n5\":\"globalSearch_my-md-n5__38qls\",\"mr-md-n5\":\"globalSearch_mr-md-n5__1vesy\",\"mx-md-n5\":\"globalSearch_mx-md-n5__17gNT\",\"mb-md-n5\":\"globalSearch_mb-md-n5__1_s-1\",\"ml-md-n5\":\"globalSearch_ml-md-n5__1a0rM\",\"m-md-auto\":\"globalSearch_m-md-auto__3gI5Y\",\"mt-md-auto\":\"globalSearch_mt-md-auto__2vZfs\",\"my-md-auto\":\"globalSearch_my-md-auto__25mCM\",\"mr-md-auto\":\"globalSearch_mr-md-auto__2__FR\",\"mx-md-auto\":\"globalSearch_mx-md-auto__gq7WW\",\"mb-md-auto\":\"globalSearch_mb-md-auto__gTSyt\",\"ml-md-auto\":\"globalSearch_ml-md-auto__2FJQi\",\"m-lg-0\":\"globalSearch_m-lg-0__2rD6k\",\"mt-lg-0\":\"globalSearch_mt-lg-0__27yv7\",\"my-lg-0\":\"globalSearch_my-lg-0__3_i0o\",\"mr-lg-0\":\"globalSearch_mr-lg-0__287ki\",\"mx-lg-0\":\"globalSearch_mx-lg-0__-i6uS\",\"mb-lg-0\":\"globalSearch_mb-lg-0__2ZW-N\",\"ml-lg-0\":\"globalSearch_ml-lg-0__1JWCn\",\"m-lg-1\":\"globalSearch_m-lg-1__dkYvA\",\"mt-lg-1\":\"globalSearch_mt-lg-1__3KM2-\",\"my-lg-1\":\"globalSearch_my-lg-1__3mtPg\",\"mr-lg-1\":\"globalSearch_mr-lg-1__1dmNp\",\"mx-lg-1\":\"globalSearch_mx-lg-1__1Qsx7\",\"mb-lg-1\":\"globalSearch_mb-lg-1__2gvDp\",\"ml-lg-1\":\"globalSearch_ml-lg-1__1VXbA\",\"m-lg-2\":\"globalSearch_m-lg-2__B-FWn\",\"mt-lg-2\":\"globalSearch_mt-lg-2__2ysnZ\",\"my-lg-2\":\"globalSearch_my-lg-2__6KOma\",\"mr-lg-2\":\"globalSearch_mr-lg-2__ovpC2\",\"mx-lg-2\":\"globalSearch_mx-lg-2__1T52J\",\"mb-lg-2\":\"globalSearch_mb-lg-2__30gCW\",\"ml-lg-2\":\"globalSearch_ml-lg-2__2OXwu\",\"m-lg-3\":\"globalSearch_m-lg-3__3kYV2\",\"mt-lg-3\":\"globalSearch_mt-lg-3__KHWIm\",\"my-lg-3\":\"globalSearch_my-lg-3__2ArXl\",\"mr-lg-3\":\"globalSearch_mr-lg-3__21dHE\",\"mx-lg-3\":\"globalSearch_mx-lg-3__1FW53\",\"mb-lg-3\":\"globalSearch_mb-lg-3__qDCR4\",\"ml-lg-3\":\"globalSearch_ml-lg-3__1WGzT\",\"m-lg-4\":\"globalSearch_m-lg-4__2BimN\",\"mt-lg-4\":\"globalSearch_mt-lg-4__25HRy\",\"my-lg-4\":\"globalSearch_my-lg-4__3Ibyk\",\"mr-lg-4\":\"globalSearch_mr-lg-4__vAAmV\",\"mx-lg-4\":\"globalSearch_mx-lg-4__3e0uX\",\"mb-lg-4\":\"globalSearch_mb-lg-4__sfdSF\",\"ml-lg-4\":\"globalSearch_ml-lg-4__1zB2U\",\"m-lg-5\":\"globalSearch_m-lg-5__3txw6\",\"mt-lg-5\":\"globalSearch_mt-lg-5__1i6Y_\",\"my-lg-5\":\"globalSearch_my-lg-5__18ULL\",\"mr-lg-5\":\"globalSearch_mr-lg-5__3GZUc\",\"mx-lg-5\":\"globalSearch_mx-lg-5__pbK73\",\"mb-lg-5\":\"globalSearch_mb-lg-5__3bJeU\",\"ml-lg-5\":\"globalSearch_ml-lg-5__3pLKq\",\"p-lg-0\":\"globalSearch_p-lg-0__CDtnG\",\"pt-lg-0\":\"globalSearch_pt-lg-0__1jYG7\",\"py-lg-0\":\"globalSearch_py-lg-0__2wfrD\",\"pr-lg-0\":\"globalSearch_pr-lg-0__3IrQX\",\"px-lg-0\":\"globalSearch_px-lg-0__1baPf\",\"pb-lg-0\":\"globalSearch_pb-lg-0__3PN43\",\"pl-lg-0\":\"globalSearch_pl-lg-0__2VbnV\",\"p-lg-1\":\"globalSearch_p-lg-1__3PT0P\",\"pt-lg-1\":\"globalSearch_pt-lg-1__2tY-M\",\"py-lg-1\":\"globalSearch_py-lg-1__12S7J\",\"pr-lg-1\":\"globalSearch_pr-lg-1__3E8a6\",\"px-lg-1\":\"globalSearch_px-lg-1__1v8Ro\",\"pb-lg-1\":\"globalSearch_pb-lg-1__3Govk\",\"pl-lg-1\":\"globalSearch_pl-lg-1__29NnY\",\"p-lg-2\":\"globalSearch_p-lg-2__4_EdL\",\"pt-lg-2\":\"globalSearch_pt-lg-2__3SB3o\",\"py-lg-2\":\"globalSearch_py-lg-2__1su5X\",\"pr-lg-2\":\"globalSearch_pr-lg-2__3CpTk\",\"px-lg-2\":\"globalSearch_px-lg-2__3kTv8\",\"pb-lg-2\":\"globalSearch_pb-lg-2__2lYHt\",\"pl-lg-2\":\"globalSearch_pl-lg-2__1tHmf\",\"p-lg-3\":\"globalSearch_p-lg-3__3KDAL\",\"pt-lg-3\":\"globalSearch_pt-lg-3__1HuGG\",\"py-lg-3\":\"globalSearch_py-lg-3__7yQs3\",\"pr-lg-3\":\"globalSearch_pr-lg-3__69Jbu\",\"px-lg-3\":\"globalSearch_px-lg-3__3joEc\",\"pb-lg-3\":\"globalSearch_pb-lg-3__1-_9j\",\"pl-lg-3\":\"globalSearch_pl-lg-3__17wwU\",\"p-lg-4\":\"globalSearch_p-lg-4__QBfGk\",\"pt-lg-4\":\"globalSearch_pt-lg-4__20qq-\",\"py-lg-4\":\"globalSearch_py-lg-4__Sdg2z\",\"pr-lg-4\":\"globalSearch_pr-lg-4__75nPF\",\"px-lg-4\":\"globalSearch_px-lg-4__2b_GY\",\"pb-lg-4\":\"globalSearch_pb-lg-4__vYxUt\",\"pl-lg-4\":\"globalSearch_pl-lg-4__2TqmE\",\"p-lg-5\":\"globalSearch_p-lg-5__3lguF\",\"pt-lg-5\":\"globalSearch_pt-lg-5__3H9aq\",\"py-lg-5\":\"globalSearch_py-lg-5__1fbf8\",\"pr-lg-5\":\"globalSearch_pr-lg-5__3TykU\",\"px-lg-5\":\"globalSearch_px-lg-5__1WuKW\",\"pb-lg-5\":\"globalSearch_pb-lg-5__2n6Am\",\"pl-lg-5\":\"globalSearch_pl-lg-5__17Uo2\",\"m-lg-n1\":\"globalSearch_m-lg-n1__3MInW\",\"mt-lg-n1\":\"globalSearch_mt-lg-n1__1mk7r\",\"my-lg-n1\":\"globalSearch_my-lg-n1__U4M36\",\"mr-lg-n1\":\"globalSearch_mr-lg-n1__2nAty\",\"mx-lg-n1\":\"globalSearch_mx-lg-n1__25Pez\",\"mb-lg-n1\":\"globalSearch_mb-lg-n1__1JanN\",\"ml-lg-n1\":\"globalSearch_ml-lg-n1__2Ng-y\",\"m-lg-n2\":\"globalSearch_m-lg-n2__2gvFM\",\"mt-lg-n2\":\"globalSearch_mt-lg-n2__15MYg\",\"my-lg-n2\":\"globalSearch_my-lg-n2__3fZtD\",\"mr-lg-n2\":\"globalSearch_mr-lg-n2__365aI\",\"mx-lg-n2\":\"globalSearch_mx-lg-n2__1bYFP\",\"mb-lg-n2\":\"globalSearch_mb-lg-n2__3Yn7l\",\"ml-lg-n2\":\"globalSearch_ml-lg-n2__2g5bc\",\"m-lg-n3\":\"globalSearch_m-lg-n3__1kKSr\",\"mt-lg-n3\":\"globalSearch_mt-lg-n3__26YJN\",\"my-lg-n3\":\"globalSearch_my-lg-n3__2qcpo\",\"mr-lg-n3\":\"globalSearch_mr-lg-n3__1xm7m\",\"mx-lg-n3\":\"globalSearch_mx-lg-n3__1AIOA\",\"mb-lg-n3\":\"globalSearch_mb-lg-n3__3iWre\",\"ml-lg-n3\":\"globalSearch_ml-lg-n3__9K6dz\",\"m-lg-n4\":\"globalSearch_m-lg-n4__2mhSi\",\"mt-lg-n4\":\"globalSearch_mt-lg-n4__GaOW8\",\"my-lg-n4\":\"globalSearch_my-lg-n4__15rzn\",\"mr-lg-n4\":\"globalSearch_mr-lg-n4__2busK\",\"mx-lg-n4\":\"globalSearch_mx-lg-n4__3tAhu\",\"mb-lg-n4\":\"globalSearch_mb-lg-n4__2Apgd\",\"ml-lg-n4\":\"globalSearch_ml-lg-n4__1dYUu\",\"m-lg-n5\":\"globalSearch_m-lg-n5__1qhyR\",\"mt-lg-n5\":\"globalSearch_mt-lg-n5__miyaK\",\"my-lg-n5\":\"globalSearch_my-lg-n5__1s_UX\",\"mr-lg-n5\":\"globalSearch_mr-lg-n5__3htuY\",\"mx-lg-n5\":\"globalSearch_mx-lg-n5__1OFZV\",\"mb-lg-n5\":\"globalSearch_mb-lg-n5__2y3QK\",\"ml-lg-n5\":\"globalSearch_ml-lg-n5__diACp\",\"m-lg-auto\":\"globalSearch_m-lg-auto__2U9Dh\",\"mt-lg-auto\":\"globalSearch_mt-lg-auto__15Sbg\",\"my-lg-auto\":\"globalSearch_my-lg-auto__2PJMZ\",\"mr-lg-auto\":\"globalSearch_mr-lg-auto__fvZ18\",\"mx-lg-auto\":\"globalSearch_mx-lg-auto__DKIa5\",\"mb-lg-auto\":\"globalSearch_mb-lg-auto__3cnNu\",\"ml-lg-auto\":\"globalSearch_ml-lg-auto__z-IvY\",\"m-xl-0\":\"globalSearch_m-xl-0__Ho0la\",\"mt-xl-0\":\"globalSearch_mt-xl-0__2rSmJ\",\"my-xl-0\":\"globalSearch_my-xl-0__C_Ylk\",\"mr-xl-0\":\"globalSearch_mr-xl-0__2PNLn\",\"mx-xl-0\":\"globalSearch_mx-xl-0__21Fxr\",\"mb-xl-0\":\"globalSearch_mb-xl-0__1hlfG\",\"ml-xl-0\":\"globalSearch_ml-xl-0__SiPqD\",\"m-xl-1\":\"globalSearch_m-xl-1__KjGMG\",\"mt-xl-1\":\"globalSearch_mt-xl-1__2ZJSX\",\"my-xl-1\":\"globalSearch_my-xl-1__3siav\",\"mr-xl-1\":\"globalSearch_mr-xl-1__2IiMM\",\"mx-xl-1\":\"globalSearch_mx-xl-1__1QmNm\",\"mb-xl-1\":\"globalSearch_mb-xl-1__1Yk9N\",\"ml-xl-1\":\"globalSearch_ml-xl-1__3BPvI\",\"m-xl-2\":\"globalSearch_m-xl-2__27IMv\",\"mt-xl-2\":\"globalSearch_mt-xl-2__304jY\",\"my-xl-2\":\"globalSearch_my-xl-2__9CRdZ\",\"mr-xl-2\":\"globalSearch_mr-xl-2__1cD4L\",\"mx-xl-2\":\"globalSearch_mx-xl-2__kgEmY\",\"mb-xl-2\":\"globalSearch_mb-xl-2__1-QWB\",\"ml-xl-2\":\"globalSearch_ml-xl-2__2BZmT\",\"m-xl-3\":\"globalSearch_m-xl-3__3iZpZ\",\"mt-xl-3\":\"globalSearch_mt-xl-3__upY3d\",\"my-xl-3\":\"globalSearch_my-xl-3__jVaRr\",\"mr-xl-3\":\"globalSearch_mr-xl-3__2Vngf\",\"mx-xl-3\":\"globalSearch_mx-xl-3__1tCjq\",\"mb-xl-3\":\"globalSearch_mb-xl-3__34Gio\",\"ml-xl-3\":\"globalSearch_ml-xl-3__1kJoF\",\"m-xl-4\":\"globalSearch_m-xl-4__208_g\",\"mt-xl-4\":\"globalSearch_mt-xl-4__1qG0F\",\"my-xl-4\":\"globalSearch_my-xl-4__ke1X-\",\"mr-xl-4\":\"globalSearch_mr-xl-4__3fkzX\",\"mx-xl-4\":\"globalSearch_mx-xl-4__1Ub5U\",\"mb-xl-4\":\"globalSearch_mb-xl-4__Mx4UQ\",\"ml-xl-4\":\"globalSearch_ml-xl-4__3NzQ1\",\"m-xl-5\":\"globalSearch_m-xl-5__3or-J\",\"mt-xl-5\":\"globalSearch_mt-xl-5__bErw1\",\"my-xl-5\":\"globalSearch_my-xl-5__2Jh1-\",\"mr-xl-5\":\"globalSearch_mr-xl-5__2IHdx\",\"mx-xl-5\":\"globalSearch_mx-xl-5__3UiBo\",\"mb-xl-5\":\"globalSearch_mb-xl-5__zICEF\",\"ml-xl-5\":\"globalSearch_ml-xl-5__1tky6\",\"p-xl-0\":\"globalSearch_p-xl-0__1fNfa\",\"pt-xl-0\":\"globalSearch_pt-xl-0__AQ0GB\",\"py-xl-0\":\"globalSearch_py-xl-0__1wDba\",\"pr-xl-0\":\"globalSearch_pr-xl-0__u5gKV\",\"px-xl-0\":\"globalSearch_px-xl-0__6BUDZ\",\"pb-xl-0\":\"globalSearch_pb-xl-0__14flc\",\"pl-xl-0\":\"globalSearch_pl-xl-0__3ou_J\",\"p-xl-1\":\"globalSearch_p-xl-1__2b38e\",\"pt-xl-1\":\"globalSearch_pt-xl-1__2ofYl\",\"py-xl-1\":\"globalSearch_py-xl-1__33Pl4\",\"pr-xl-1\":\"globalSearch_pr-xl-1__1b2nn\",\"px-xl-1\":\"globalSearch_px-xl-1__ORrp8\",\"pb-xl-1\":\"globalSearch_pb-xl-1__31HEs\",\"pl-xl-1\":\"globalSearch_pl-xl-1__34U-R\",\"p-xl-2\":\"globalSearch_p-xl-2__3CmI4\",\"pt-xl-2\":\"globalSearch_pt-xl-2__ewyip\",\"py-xl-2\":\"globalSearch_py-xl-2__1JEwl\",\"pr-xl-2\":\"globalSearch_pr-xl-2__P7hWN\",\"px-xl-2\":\"globalSearch_px-xl-2__2zn0c\",\"pb-xl-2\":\"globalSearch_pb-xl-2__3pss9\",\"pl-xl-2\":\"globalSearch_pl-xl-2__26dwe\",\"p-xl-3\":\"globalSearch_p-xl-3__1zu19\",\"pt-xl-3\":\"globalSearch_pt-xl-3__1wccv\",\"py-xl-3\":\"globalSearch_py-xl-3__tfDnd\",\"pr-xl-3\":\"globalSearch_pr-xl-3__1ipBE\",\"px-xl-3\":\"globalSearch_px-xl-3__O9j67\",\"pb-xl-3\":\"globalSearch_pb-xl-3__3sEyQ\",\"pl-xl-3\":\"globalSearch_pl-xl-3__3qEuM\",\"p-xl-4\":\"globalSearch_p-xl-4__vh9Tc\",\"pt-xl-4\":\"globalSearch_pt-xl-4__5qigZ\",\"py-xl-4\":\"globalSearch_py-xl-4__2r6e-\",\"pr-xl-4\":\"globalSearch_pr-xl-4__1xE6N\",\"px-xl-4\":\"globalSearch_px-xl-4__2EbQa\",\"pb-xl-4\":\"globalSearch_pb-xl-4__3DfdZ\",\"pl-xl-4\":\"globalSearch_pl-xl-4__21NE2\",\"p-xl-5\":\"globalSearch_p-xl-5__3ucRq\",\"pt-xl-5\":\"globalSearch_pt-xl-5__2ReIr\",\"py-xl-5\":\"globalSearch_py-xl-5__3d6uy\",\"pr-xl-5\":\"globalSearch_pr-xl-5__3__HR\",\"px-xl-5\":\"globalSearch_px-xl-5__2co5E\",\"pb-xl-5\":\"globalSearch_pb-xl-5__3zYHm\",\"pl-xl-5\":\"globalSearch_pl-xl-5__I4s4U\",\"m-xl-n1\":\"globalSearch_m-xl-n1__2H-l7\",\"mt-xl-n1\":\"globalSearch_mt-xl-n1__3aG0y\",\"my-xl-n1\":\"globalSearch_my-xl-n1__2qUpm\",\"mr-xl-n1\":\"globalSearch_mr-xl-n1__1TeSP\",\"mx-xl-n1\":\"globalSearch_mx-xl-n1__a6HO6\",\"mb-xl-n1\":\"globalSearch_mb-xl-n1__1lbYi\",\"ml-xl-n1\":\"globalSearch_ml-xl-n1__3W0J6\",\"m-xl-n2\":\"globalSearch_m-xl-n2__21HnN\",\"mt-xl-n2\":\"globalSearch_mt-xl-n2__nbWXT\",\"my-xl-n2\":\"globalSearch_my-xl-n2__3GSC4\",\"mr-xl-n2\":\"globalSearch_mr-xl-n2__22Ldm\",\"mx-xl-n2\":\"globalSearch_mx-xl-n2__pyFC-\",\"mb-xl-n2\":\"globalSearch_mb-xl-n2__15NoH\",\"ml-xl-n2\":\"globalSearch_ml-xl-n2__UrpQr\",\"m-xl-n3\":\"globalSearch_m-xl-n3__wc9gs\",\"mt-xl-n3\":\"globalSearch_mt-xl-n3__3nPnh\",\"my-xl-n3\":\"globalSearch_my-xl-n3__3OrVP\",\"mr-xl-n3\":\"globalSearch_mr-xl-n3__3Df-x\",\"mx-xl-n3\":\"globalSearch_mx-xl-n3__2l1i9\",\"mb-xl-n3\":\"globalSearch_mb-xl-n3__24h8q\",\"ml-xl-n3\":\"globalSearch_ml-xl-n3__MQh3W\",\"m-xl-n4\":\"globalSearch_m-xl-n4__2wpOI\",\"mt-xl-n4\":\"globalSearch_mt-xl-n4__2U171\",\"my-xl-n4\":\"globalSearch_my-xl-n4__RUURL\",\"mr-xl-n4\":\"globalSearch_mr-xl-n4__1mNAA\",\"mx-xl-n4\":\"globalSearch_mx-xl-n4__1cL6B\",\"mb-xl-n4\":\"globalSearch_mb-xl-n4__3h_GE\",\"ml-xl-n4\":\"globalSearch_ml-xl-n4__3V-3z\",\"m-xl-n5\":\"globalSearch_m-xl-n5__2h4Oy\",\"mt-xl-n5\":\"globalSearch_mt-xl-n5__o8aIo\",\"my-xl-n5\":\"globalSearch_my-xl-n5__30c2t\",\"mr-xl-n5\":\"globalSearch_mr-xl-n5__2qcB9\",\"mx-xl-n5\":\"globalSearch_mx-xl-n5__19HCm\",\"mb-xl-n5\":\"globalSearch_mb-xl-n5__3w14S\",\"ml-xl-n5\":\"globalSearch_ml-xl-n5__2hMtJ\",\"m-xl-auto\":\"globalSearch_m-xl-auto__1HISh\",\"mt-xl-auto\":\"globalSearch_mt-xl-auto__1QWWw\",\"my-xl-auto\":\"globalSearch_my-xl-auto__3qylD\",\"mr-xl-auto\":\"globalSearch_mr-xl-auto__1xfuR\",\"mx-xl-auto\":\"globalSearch_mx-xl-auto__sGBOe\",\"mb-xl-auto\":\"globalSearch_mb-xl-auto__1bx9q\",\"ml-xl-auto\":\"globalSearch_ml-xl-auto__882UX\",\"gradient-bg5\":\"globalSearch_gradient-bg5__1MYXP\",\"globalSearchContainer\":\"globalSearch_globalSearchContainer__2UcRh\",\"globalSearchInputContainer\":\"globalSearch_globalSearchInputContainer__39m4K\",\"feedbackLeft\":\"globalSearch_feedbackLeft__EkRUy\",\"globalSearchInput\":\"globalSearch_globalSearchInput__2f-Vt\",\"feedbackRight\":\"globalSearch_feedbackRight__3oTp5\",\"globalSearchDropdownContainer\":\"globalSearch_globalSearchDropdownContainer__ibqy1\",\"globalSearchDropDown\":\"globalSearch_globalSearchDropDown__3XOh_\",\"globalSearchDropdownNoMatches\":\"globalSearch_globalSearchDropdownNoMatches__2NnYs\",\"globalSearchDropdownOptions\":\"globalSearch_globalSearchDropdownOptions__1YUhb\",\"loading\":\"globalSearch_loading__1Z_f_\",\"searchTypeTitle\":\"globalSearch_searchTypeTitle__2HCdq\",\"globalSearchDropdownOption\":\"globalSearch_globalSearchDropdownOption__2lJeK\",\"globalSearchDropdownOptionImage\":\"globalSearch_globalSearchDropdownOptionImage__1l2E4\",\"name\":\"globalSearch_name__1YR1M\",\"place\":\"globalSearch_place__39RlN\"};","export const featureGates = {\r\n ADULT_TEAM_PICKLEBALL: 'adult_team_pickleball',\r\n JUNIOR_TEAM_PICKLEBALL: 'junior_team_pickleball',\r\n GLOBAL_DROPDOWN_V2: 'global_dropdown_v2',\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const scheduleMatchCardPropTypes = {\r\n match: PropTypes.shape({\r\n isSchedulePublished: PropTypes.bool,\r\n isMultiWeekByDate: PropTypes.bool,\r\n teamMatchId: PropTypes.number.isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string.isRequired,\r\n formattedAddress: PropTypes.string.isRequired\r\n }),\r\n position1Team: PropTypes.shape({\r\n teamId: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n position2Team: PropTypes.shape({\r\n teamId: PropTypes.number,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n round: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n roundName: PropTypes.string,\r\n }),\r\n winnerTeamId: PropTypes.number\r\n }).isRequired,\r\n round: PropTypes.shape({\r\n roundName: PropTypes.string,\r\n name: PropTypes.string.isRequired\r\n }),\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n onEditMatch: PropTypes.func.isRequired,\r\n onDeleteMatch: PropTypes.func,\r\n matchNumber: PropTypes.number,\r\n isMultiWeekByDate: PropTypes.bool,\r\n};\r\n\r\nexport const defaultScheduleMatchCardPropTypes = {\r\n round: null\r\n};\r\n\r\nexport const locationCardPropTypes = {\r\n location: PropTypes.object.isRequired,\r\n};\r\n\r\nexport const fontAwesomeSvgIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n};\r\n\r\nexport const messageIconPropTypes = {\r\n memberId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n displayName: PropTypes.string,\r\n style: PropTypes.any,\r\n};\r\n\r\nexport const defaultMessageIconPropTypes = {\r\n memberId: '',\r\n displayName: '',\r\n style: {},\r\n};\r\n\r\nexport const utrIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n alt: PropTypes.string,\r\n style: PropTypes.object,\r\n clickable: PropTypes.any,\r\n};\r\n\r\nexport const deafultUtrIconPropTypes = {\r\n icon: null,\r\n size: '',\r\n};\r\n\r\nexport const createDrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n selectableTeams: PropTypes.array,\r\n onSkip: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultCreateDrawModalPropTypes = {\r\n open: false,\r\n selectableTeams: []\r\n};\r\n\r\nexport const modalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const defaultModalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const bootstrapDialogTitlePropTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const modalBaseWithHeaderPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const playerWithdrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const shareTeamModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onCopyClick: PropTypes.func.isRequired,\r\n url: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const defaultModalPropTypes = {\r\n open: false,\r\n};\r\n\r\nexport const confirmPublishSchedulePopupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultConfirmPublishSchedulePopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const popupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultPopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const teamMatchSummaryPropTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n onEditClicked: PropTypes.func.isRequired,\r\n summary: PropTypes.shape({\r\n canEditTeamMatch: PropTypes.bool.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n position1Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n position2Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n sessionId: PropTypes.number.isRequired,\r\n sessionTypeId: PropTypes.number.isRequired\r\n }).isRequired,\r\n scores: PropTypes.shape({\r\n position1: PropTypes.number.isRequired,\r\n position2: PropTypes.number.isRequired,\r\n }).isRequired,\r\n isUpdating: PropTypes.bool,\r\n winningTeamId: PropTypes.number.isRequired\r\n};\r\n\r\nexport const defaultTeamMatchSummaryPropTypes = {\r\n isUpdating: true\r\n};\r\n\r\nexport const playerSearchPropTypes = {\r\n label: PropTypes.string.isRequired,\r\n onPlayerSelected: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultPlayerSearchPropTypes = {\r\n isProPlayerSearch: false,\r\n searchMembersOnly: false,\r\n showPickleballContent: false,\r\n showTennisContent: false,\r\n selectedPlayers: []\r\n};\r\n\r\nexport const addTeamsTablePropTypes = {\r\n sessionTeams: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n })).isRequired,\r\n sessionStartDateUtc: PropTypes.string.isRequired,\r\n sessionEndDateUtc: PropTypes.string.isRequired,\r\n wins: PropTypes.number.isRequired,\r\n losses: PropTypes.number.isRequired,\r\n })),\r\n maxTeams: PropTypes.number,\r\n isLoading: PropTypes.bool.isRequired,\r\n sortByProperty: PropTypes.number.isRequired,\r\n sortOrder: PropTypes.string.isRequired,\r\n selectedTeamIds: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onTeamSelected: PropTypes.func.isRequired,\r\n onSortChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultAddTeamsTablePropTypes = {\r\n sessionTeams: []\r\n};\r\n\r\nexport const defaultCreateTeamModalPropTypes = {\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n onSaveClick: PropTypes.func,\r\n sessionId: PropTypes.number,\r\n sessionTypeId: PropTypes.number,\r\n};\r\n\r\nexport const teamProfileInfoPropTypes = {\r\n teamData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number,\r\n maxAge: PropTypes.number,\r\n genderTypeId: PropTypes.number,\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number,\r\n }),\r\n homeCourtLocation: PropTypes.shape({\r\n formattedAddress: PropTypes.string,\r\n }),\r\n sessionSummary: PropTypes.shape({\r\n endDateUtc: PropTypes.string,\r\n }),\r\n }),\r\n registrationFees: PropTypes.shape({\r\n sessionEntryFee: PropTypes.number,\r\n total: PropTypes.number,\r\n }),\r\n onJoinClick: PropTypes.func,\r\n onShareClick: PropTypes.func,\r\n isRegistrationAvailable: PropTypes.bool,\r\n};\r\n\r\nexport const manageSessionTeamCaptainPropTypes = {\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n displayName: PropTypes.string,\r\n })),\r\n isUpdatingCaptains: PropTypes.bool,\r\n isLoadingTeam: PropTypes.bool,\r\n onAddCaptain: PropTypes.func.isRequired,\r\n onRemoveCaptain: PropTypes.func.isRequired,\r\n isRequired: PropTypes.bool,\r\n maxCaptains: PropTypes.number,\r\n};\r\n\r\nexport const createTeamCaptainManagerPropTypes = {\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n displayName: PropTypes.string.isRequired,\r\n })),\r\n isUpdatingCaptains: PropTypes.bool,\r\n isLoadingTeam: PropTypes.bool,\r\n onAddCaptain: PropTypes.func.isRequired,\r\n onRemoveCaptain: PropTypes.func.isRequired,\r\n isRequired: PropTypes.bool,\r\n};\r\n\r\nexport const addTeamsModalPropTypes = {\r\n isOpen: PropTypes.bool,\r\n isLoadingOptions: PropTypes.bool,\r\n isLoadingTeams: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n teams: PropTypes.array,\r\n maxTeams: PropTypes.number,\r\n currentTeamCount: PropTypes.number,\r\n currentPage: PropTypes.number,\r\n pageCount: PropTypes.number,\r\n conferences: PropTypes.array,\r\n sessions: PropTypes.array,\r\n selectedConferenceId: PropTypes.number,\r\n selectedSessionIds: PropTypes.array,\r\n onConferenceChange: PropTypes.func,\r\n onSessionChange: PropTypes.func,\r\n onApplyClick: PropTypes.func,\r\n onPageChange: PropTypes.func,\r\n onSortChange: PropTypes.func,\r\n onCloseSessionDropdown: PropTypes.func,\r\n onAddTeams: PropTypes.func,\r\n sortByProperty: PropTypes.number,\r\n sortOrder: PropTypes.string,\r\n};\r\n\r\nexport const teamsTablePropTypes = {\r\n sessionTeams: PropTypes.array,\r\n onManageClicked: PropTypes.func,\r\n onRemoveClicked: PropTypes.func,\r\n hasSessionStarted: PropTypes.bool,\r\n};\r\n\r\nexport const manageSessionPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n onTabChange: PropTypes.func.isRequired,\r\n isMultiRoundSession: PropTypes.bool,\r\n};\r\n\r\nexport const manageTeamModalPropTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n teamId: PropTypes.number,\r\n onSaveClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const manageSessionCaptainCardPropTypes = {\r\n captain: PropTypes.shape({\r\n displayName: PropTypes.string.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n playerId: PropTypes.number,\r\n profileImage: PropTypes.string,\r\n location: PropTypes.shape({\r\n display: PropTypes.string,\r\n }),\r\n }).isRequired,\r\n onRemoveClick: PropTypes.func.isRequired,\r\n};\r\nexport const addTeamMatchModalPropTypes = {\r\n sessionId: PropTypes.number,\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n roundId: PropTypes.string,\r\n onSaveClick: PropTypes.func,\r\n scheduleId: PropTypes.number,\r\n refetchSessionSchedule: PropTypes.func,\r\n session: PropTypes.object\r\n};\r\n\r\nexport const addScheduleRoundPopupPropTypes = {\r\n rounds: PropTypes.array,\r\n open: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n insertRoundMessage: PropTypes.string,\r\n teamStandingsMessage: PropTypes.string.isRequired,\r\n errorMessage: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n onAction: PropTypes.func,\r\n actionLabel: PropTypes.string,\r\n isTennis: PropTypes.bool,\r\n disableAddRoundButton: PropTypes.bool\r\n};\r\n\r\nexport const multiWeekByDatePropTypes = {\r\n scheduleByDate: PropTypes.object,\r\n onEditMatch: PropTypes.func.isRequired,\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const multiWeekByRoundPropTypes = {\r\n round: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n matches: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n teamMatchId: PropTypes.number.isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n })\r\n ),\r\n }).isRequired,\r\n onEditMatch: PropTypes.func.isRequired,\r\n onDeleteMatch: PropTypes.func.isRequired,\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n onDeleteRound: PropTypes.func.isRequired,\r\n onAddTeamMatch: PropTypes.func.isRequired,\r\n teams: PropTypes.array,\r\n isManaging: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const manageSessionActionsPropTypes = {\r\n onAddRound: PropTypes.func.isRequired,\r\n onAddTeamClick: PropTypes.func.isRequired,\r\n onGenerateSchedule: PropTypes.func.isRequired,\r\n onCreateSchedule: PropTypes.func.isRequired,\r\n onPublish: PropTypes.func.isRequired,\r\n onUnpublishSchedule: PropTypes.func.isRequired,\r\n onScheduleChange: PropTypes.func.isRequired,\r\n onDeleteSchedule: PropTypes.func.isRequired,\r\n isCreatingManualSchedule: PropTypes.bool.isRequired,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n isLoadingSchedule: PropTypes.bool.isRequired,\r\n isScheduleCreated: PropTypes.bool.isRequired,\r\n isSchedulePublished: PropTypes.bool.isRequired,\r\n multiRoundScheduleType: PropTypes.number,\r\n teams: PropTypes.array.isRequired,\r\n maxTeamsCount: PropTypes.number,\r\n hasSessionEnded: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const headerPropTypes = {\r\n auth: PropTypes.shape({\r\n user: PropTypes.shape({\r\n claimedPlayer: PropTypes.shape({\r\n playerProfileImages: PropTypes.object\r\n })\r\n })\r\n }).isRequired,\r\n featureFlags: PropTypes.shape({\r\n messaging: PropTypes.shape({\r\n isEnabled: PropTypes.func\r\n })\r\n }).isRequired,\r\n toggleSideMenu: PropTypes.func.isRequired\r\n};\r\n\r\nexport const multiSelectFilterPropTypes = {\r\n propTypes: {\r\n selectOptions: PropTypes.array.isRequired,\r\n onApplyFilter: PropTypes.func.isRequired,\r\n hasResetFilters: PropTypes.bool.isRequired,\r\n label: PropTypes.bool.isRequired,\r\n currentValue: PropTypes.string\r\n },\r\n defaultProps: {\r\n currentValue: ''\r\n }\r\n};\r\n\r\nexport const leagueSearchResultsTablePropTypes = {\r\n searchResults: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n onSortChange: PropTypes.func.isRequired,\r\n sortByProperty: PropTypes.string.isRequired,\r\n sortOrder: PropTypes.string.isRequired\r\n};\r\n\r\nexport const sessionTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n conference: PropTypes.string.isRequired,\r\n location: PropTypes.string.isRequired,\r\n age: PropTypes.string.isRequired,\r\n rating: PropTypes.string.isRequired,\r\n gender: PropTypes.string.isRequired,\r\n startDate: PropTypes.string.isRequired,\r\n end: PropTypes.string.isRequired\r\n }),\r\n labelId: PropTypes.string.isRequired\r\n};\r\n\r\nexport const teamTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n teamMemberCount: PropTypes.number.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n captainNames: PropTypes.arrayOf(PropTypes.string),\r\n sessionDates: PropTypes.string.isRequired,\r\n record: PropTypes.string.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.number,\r\n isDoublesEstimated: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n onTeamSelected: PropTypes.func.isRequired,\r\n teams: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n selectedTeamIds: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n theme: PropTypes.object.isRequired,\r\n maxTeamsReached: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const teamsTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n homeCourtLocation: PropTypes.shape({\r\n formattedAddress: PropTypes.string,\r\n }),\r\n teamMemberCount: PropTypes.number.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.object),\r\n captainName: PropTypes.string,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.number,\r\n isDoublesEstimated: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n onManageClicked: PropTypes.func.isRequired,\r\n onRemoveClicked: PropTypes.func.isRequired,\r\n theme: PropTypes.object.isRequired,\r\n hasSessionStarted: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const statsigContextProviderPropTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport const sliderFilterPropTypes = {\r\n onApplyFilter: PropTypes.func.isRequired,\r\n hasResetFilters: PropTypes.bool.isRequired,\r\n sliderType: PropTypes.string.isRequired\r\n};\r\n\r\nexport const searchPagePropTypes = {\r\n propTypes: {\r\n userLocation: PropTypes.shape({\r\n lat: PropTypes.number,\r\n lng: PropTypes.number\r\n }),\r\n leagueTypeId: PropTypes.string.isRequired,\r\n sportType: PropTypes.number.isRequired,\r\n leagueTierType: PropTypes.number.isRequired,\r\n },\r\n defaultProps: {\r\n userLocation: {\r\n lat: null,\r\n lng: null\r\n }\r\n }\r\n};\r\n\r\nexport const formSubmitButtonPropTypes = {\r\n label: PropTypes.string.isRequired,\r\n isSubmitting: PropTypes.bool.isRequired,\r\n style: PropTypes.any,\r\n};\r\n\r\nexport const defaultFormSubmitButtonPropTypes = {\r\n style: {},\r\n};\r\n\r\nexport const createConferenceFormPropTypes = {\r\n isManaging: PropTypes.bool.isRequired,\r\n conferenceDetails: PropTypes.shape({\r\n maxAge: PropTypes.number,\r\n minAge: PropTypes.number,\r\n })\r\n};\r\n\r\nexport const teamMatchLinkPropTypes = {\r\n teamMatchLink: PropTypes.string.isRequired,\r\n roundName: PropTypes.string,\r\n isMultiWeekByDate: PropTypes.bool,\r\n};\r\n\r\nexport const radioGroupPropTypes = {\r\n control: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n description: PropTypes.string.isRequired,\r\n })).isRequired,\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport const schedulePropTypes = {\r\n seasonRounds: PropTypes.arrayOf(PropTypes.object),\r\n isManaging: PropTypes.bool,\r\n onEditMatch: PropTypes.func,\r\n onDeleteMatch: PropTypes.func,\r\n isLeagueDeskSchedule: PropTypes.bool,\r\n drawSchedule: PropTypes.object,\r\n isSchedulePublished: PropTypes.bool,\r\n pageType: PropTypes.string,\r\n scheduleByDate: PropTypes.object,\r\n multiRoundScheduleType: PropTypes.number,\r\n displayTournamentBracketStyle: PropTypes.bool,\r\n sessionId: PropTypes.number,\r\n onDeleteRound: PropTypes.func,\r\n scheduleId: PropTypes.number,\r\n refetchSessionSchedule: PropTypes.func,\r\n teams: PropTypes.arrayOf(PropTypes.object),\r\n session: PropTypes.object\r\n};\r\n\r\nexport const manageSessionScheduleTabPropTypes = {\r\n session: PropTypes.shape({\r\n startDateUtc: PropTypes.string,\r\n endDateUtc: PropTypes.string,\r\n id: PropTypes.number,\r\n sessionTypeId: PropTypes.number,\r\n matchesPerTeam: PropTypes.number,\r\n sportTypeId: PropTypes.number,\r\n }),\r\n isLoadingSession: PropTypes.bool,\r\n onAddTeamClick: PropTypes.func,\r\n teams: PropTypes.array,\r\n maxTeamsCount: PropTypes.number,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const teamPageScheduleTabPropTypes = {\r\n teamId: PropTypes.number.isRequired,\r\n isTournament: PropTypes.bool.isRequired,\r\n session: PropTypes.shape({\r\n id: PropTypes.number,\r\n }),\r\n};\r\n\r\nconst sessionDetailsPropTypes = {\r\n conferenceId: PropTypes.number,\r\n description: PropTypes.string,\r\n doublesMatchCount: PropTypes.number,\r\n doublesPointsPerMatch: PropTypes.number,\r\n doublesScoringFormatTypeId: PropTypes.number,\r\n doublesTimeAllowedTypeId: PropTypes.number,\r\n drawTypeId: PropTypes.number,\r\n endDateUtc: PropTypes.string,\r\n matchesPerTeam: PropTypes.number,\r\n name: PropTypes.string,\r\n registrationFee: PropTypes.number,\r\n registrationVerificationFee: PropTypes.number,\r\n sessionStatusTypeId: PropTypes.number,\r\n sessionDetails: PropTypes.string,\r\n sessionTypeId: PropTypes.number,\r\n sessionStandingsTypeId: PropTypes.number,\r\n singlesMatchCount: PropTypes.number,\r\n singlesPointsPerMatch: PropTypes.number,\r\n singlesScoringFormatTypeId: PropTypes.number,\r\n singlesTimeAllowedTypeId: PropTypes.number,\r\n startDateUtc: PropTypes.string,\r\n teamRegistrationEndDateUtc: PropTypes.string,\r\n teamRegistrationStartDateUtc: PropTypes.string,\r\n teamRequiredPlayersMin: PropTypes.number,\r\n teamsMax: PropTypes.number,\r\n location: PropTypes.string,\r\n teamMatchFrequencyTypeId: PropTypes.number,\r\n};\r\n\r\nexport const manageSessionModalPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n ...sessionDetailsPropTypes\r\n }),\r\n isLoadingSession: PropTypes.bool,\r\n title: PropTypes.string,\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSaveClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const manageSessionDetailsTabPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n ...sessionDetailsPropTypes\r\n }),\r\n};\r\n\r\nexport const matchFormatPropTypes = {\r\n matchCount: PropTypes.number.isRequired,\r\n pointsPerMatch: PropTypes.number.isRequired,\r\n scoringFormatTypeId: PropTypes.number.isRequired,\r\n timeAllowedTypeId: PropTypes.number.isRequired,\r\n isDoubles: PropTypes.bool.isRequired,\r\n sportTypeId: PropTypes.number.isRequired,\r\n};\r\n\r\nexport const teamPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n wins: PropTypes.number,\r\n losses: PropTypes.number,\r\n sessionId: PropTypes.number.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n isCaptainView: PropTypes.bool,\r\n onTabChange: PropTypes.func.isRequired,\r\n isTournament: PropTypes.bool,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n doublesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n isDoublesEstimated: PropTypes.bool\r\n })\r\n};\r\n\r\nexport const genericTablePropTypes = {\r\n headCells: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n })\r\n ).isRequired,\r\n tableData: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isLoading: PropTypes.bool,\r\n sortBy: PropTypes.string.isRequired,\r\n rowComponent: PropTypes.elementType.isRequired,\r\n isSortingDisabled: PropTypes.bool,\r\n};\r\n\r\nexport const leaguesTablePropTypes = {\r\n headCells: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n })\r\n ).isRequired,\r\n tableData: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isLoading: PropTypes.bool,\r\n sortBy: PropTypes.string.isRequired,\r\n rowComponent: PropTypes.elementType.isRequired,\r\n title: PropTypes.string,\r\n isSortingDisabled: PropTypes.bool,\r\n};\r\n\r\nexport const playersTablePropTypes = {\r\n teamPlayers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n memberId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n id: PropTypes.string,\r\n gender: PropTypes.string,\r\n playerId: PropTypes.number,\r\n teamId: PropTypes.number,\r\n firstName: PropTypes.string,\r\n lastName: PropTypes.string,\r\n wins: PropTypes.number,\r\n losses: PropTypes.number,\r\n location: PropTypes.oneOfType([\r\n PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n })\r\n ]),\r\n hasPostedScores: PropTypes.bool,\r\n canBeMovedOrCopied: PropTypes.bool,\r\n isSubstitute: PropTypes.bool,\r\n canBeRefunded: PropTypes.bool,\r\n })\r\n ),\r\n isLoading: PropTypes.bool,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const playersTableDefaultPropTypes = {\r\n teamPlayers: [],\r\n isManaging: false,\r\n hasSessionEnded: false,\r\n onWithdrawPlayer: () => {},\r\n onMovePlayer: () => {},\r\n onCopyPlayer: () => {},\r\n onTogglePlayerStatus: () => {},\r\n};\r\n\r\nexport const playerTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n doublesUtr: PropTypes.number,\r\n gender: PropTypes.string,\r\n id: PropTypes.string,\r\n isVerifiedDoubles: PropTypes.bool,\r\n isVerifiedSingles: PropTypes.bool,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n }),\r\n leagueId: PropTypes.number,\r\n sportTypeId: PropTypes.string,\r\n conferenceRatings: PropTypes.shape({\r\n utrRangeMin: PropTypes.number,\r\n utrRangeMax: PropTypes.number,\r\n pickleballRangeMin: PropTypes.number,\r\n pickleballRangeMax: PropTypes.number,\r\n }),\r\n }),\r\n onConferenceUpdated: PropTypes.func,\r\n isLoadingConference: PropTypes.bool,\r\n};\r\n\r\nexport const defaultCreateConferenceFormPropTypes = {\r\n conferenceDetails: null,\r\n isLoading: false,\r\n onConferenceUpdated: null,\r\n matchesPlayed: PropTypes.number,\r\n name: PropTypes.string,\r\n profileImage: PropTypes.string,\r\n playerId: PropTypes.string,\r\n record: PropTypes.string,\r\n singlesUtr: PropTypes.number,\r\n teamId: PropTypes.number,\r\n hasPostedScores: PropTypes.bool,\r\n canBeMovedOrCopied: PropTypes.bool,\r\n isSubstitute: PropTypes.bool,\r\n canBeRefunded: PropTypes.bool,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number,\r\n displayVerifiedIcon: PropTypes.bool,\r\n reliability: PropTypes.string,\r\n }),\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number,\r\n displayVerifiedIcon: PropTypes.bool,\r\n reliability: PropTypes.string,\r\n }),\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const playerTablePropTypes = {\r\n teamPlayers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string,\r\n playerId: PropTypes.number.isRequired,\r\n teamId: PropTypes.number,\r\n name: PropTypes.string,\r\n doublesUtr: PropTypes.number,\r\n isVerifiedDoubles: PropTypes.bool,\r\n singlesUtr: PropTypes.number,\r\n isVerifiedSingles: PropTypes.bool,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n canBeMovedOrCopied: PropTypes.bool.isRequired,\r\n isSubstitute: PropTypes.bool.isRequired,\r\n canBeRefunded: PropTypes.bool.isRequired,\r\n profileImage: PropTypes.string,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }),\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }),\r\n singlesRecord: PropTypes.string,\r\n doublesRecord: PropTypes.string,\r\n })\r\n ),\r\n isLoading: PropTypes.bool,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n isSubstitutePlayers: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const playersTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n doublesUtr: PropTypes.number.isRequired,\r\n id: PropTypes.string.isRequired,\r\n isVerifiedDoubles: PropTypes.bool.isRequired,\r\n isVerifiedSingles: PropTypes.bool.isRequired,\r\n name: PropTypes.string.isRequired,\r\n profileImage: PropTypes.string.isRequired,\r\n playerId: PropTypes.string.isRequired,\r\n singlesUtr: PropTypes.number.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n canBeMovedOrCopied: PropTypes.bool.isRequired,\r\n isSubstitute: PropTypes.bool.isRequired,\r\n canBeRefunded: PropTypes.bool.isRequired,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }).isRequired,\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }).isRequired,\r\n singlesRecord: PropTypes.string.isRequired,\r\n doublesRecord: PropTypes.string.isRequired,\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const submitPaymentFormPropTypes = {\r\n clientSecret: PropTypes.string.isRequired,\r\n onRegistrationSuccessful: PropTypes.func.isRequired,\r\n segmentTrackingBody: PropTypes.shape({\r\n league_session_id: PropTypes.number,\r\n member_id: PropTypes.number,\r\n order_type: PropTypes.string,\r\n currency: PropTypes.string,\r\n session_fee: PropTypes.number,\r\n league_fee: PropTypes.number,\r\n service_fee: PropTypes.number,\r\n amount_paid: PropTypes.number,\r\n revenue: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport const errorBoundaryPropTypes = {\r\n main: PropTypes.bool,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired\r\n};\r\n\r\nexport const manageSessionTeamsTabPropTypes = {\r\n teams: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n id: PropTypes.number.isRequired,\r\n })\r\n ),\r\n maxTeamsCount: PropTypes.number.isRequired,\r\n sessionTypeId: PropTypes.number.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n onRemoveTeam: PropTypes.func.isRequired,\r\n hasSessionStarted: PropTypes.bool.isRequired,\r\n hasSessionEnded: PropTypes.bool.isRequired,\r\n onAddTeamClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const createSessionFormPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n conferenceId: PropTypes.number,\r\n endDateUtc: PropTypes.string,\r\n startDateUtc: PropTypes.string,\r\n registrationFee: PropTypes.number,\r\n teamRegistrationStartDateUtc: PropTypes.string,\r\n teamRegistrationEndDateUtc: PropTypes.string,\r\n registrationVerificationFee: PropTypes.number,\r\n sessionStandingsTypeId: PropTypes.number,\r\n sessionMatchTypeId: PropTypes.string,\r\n sessionTypeId: PropTypes.string,\r\n description: PropTypes.string,\r\n drawTypeId: PropTypes.string,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n }),\r\n isManaging: PropTypes.bool.isRequired,\r\n isLoadingSession: PropTypes.bool,\r\n onSessionUpdated: PropTypes.func,\r\n};\r\n\r\nexport const defaultCreateSessionFormPropTypes = {\r\n sessionDetails: null,\r\n isLoading: false,\r\n onSessionUpdated: null,\r\n};\r\n\r\nexport const registrationInfoCardPropTypes = {\r\n cost: PropTypes.string.isRequired,\r\n format: PropTypes.string.isRequired,\r\n sessionDates: PropTypes.string.isRequired,\r\n sessionData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number.isRequired,\r\n maxAge: PropTypes.number.isRequired,\r\n genderTypeId: PropTypes.number.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number.isRequired,\r\n }),\r\n captainRequest: PropTypes.shape({\r\n currentRequest: PropTypes.shape({\r\n sessionRequestStatusTypeId: PropTypes.number.isRequired,\r\n }),\r\n isCaptainInSession: PropTypes.bool.isRequired,\r\n }),\r\n memberTeams: PropTypes.array.isRequired,\r\n session: PropTypes.shape({\r\n endDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationEndDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationStartDateUtc: PropTypes.string.isRequired,\r\n sessionStatusTypeId: PropTypes.number.isRequired,\r\n sanctionTypeId: PropTypes.number,\r\n }),\r\n }).isRequired,\r\n onRequestToCaptain: PropTypes.func.isRequired,\r\n onRegisterButtonClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const sessionPagePropTypes = {\r\n cost: PropTypes.string,\r\n format: PropTypes.string,\r\n sessionDates: PropTypes.string,\r\n sessionData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number.isRequired,\r\n maxAge: PropTypes.number.isRequired,\r\n genderTypeId: PropTypes.number.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number.isRequired,\r\n }),\r\n captainRequest: PropTypes.shape({\r\n currentRequest: PropTypes.shape({\r\n sessionRequestStatusTypeId: PropTypes.number.isRequired,\r\n }),\r\n isCaptainInSession: PropTypes.bool.isRequired,\r\n }),\r\n memberTeams: PropTypes.array,\r\n session: PropTypes.shape({\r\n endDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationEndDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationStartDateUtc: PropTypes.string.isRequired,\r\n sessionStatusTypeId: PropTypes.number.isRequired,\r\n })\r\n })\r\n};\r\n\r\nexport const managerCardPropTypes = {\r\n managers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n phone: PropTypes.string,\r\n email: PropTypes.string,\r\n playerId: PropTypes.number,\r\n profileImage: PropTypes.string,\r\n })\r\n ),\r\n isUserLoggedIn: PropTypes.bool,\r\n isCaptainView: PropTypes.bool,\r\n onRemoveClick: PropTypes.func,\r\n};\r\n\r\nexport const sessionOverviewTabPropTypes = {\r\n description: PropTypes.string,\r\n cost: PropTypes.string.isRequired,\r\n sessionDates: PropTypes.string.isRequired,\r\n matchFormat: PropTypes.string.isRequired,\r\n sessionData: PropTypes.object.isRequired,\r\n isUserLoggedIn: PropTypes.bool.isRequired,\r\n managers: PropTypes.array.isRequired,\r\n onRegisterButtonClick: PropTypes.func.isRequired,\r\n onRequestToCaptain: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const teamPageOverviewTabPropTypes = {\r\n teamSummary: PropTypes.object.isRequired,\r\n isCaptainView: PropTypes.bool.isRequired,\r\n isRegistrationAvailable: PropTypes.bool.isRequired,\r\n isLoadingRegistration: PropTypes.bool,\r\n onRegisterClick: PropTypes.func.isRequired,\r\n onShareClick: PropTypes.func.isRequired,\r\n fees: PropTypes.object.isRequired,\r\n captains: PropTypes.array.isRequired,\r\n isUserLoggedIn: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const defaultTeamPageOverviewTabPropTypes = {\r\n isLoadingRegistration: false,\r\n};\r\n\r\nexport const sessionPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n sessionName: PropTypes.string,\r\n onTabChange: PropTypes.func.isRequired,\r\n isMultiRoundSession: PropTypes.bool.isRequired,\r\n conferenceName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const createTeamFormPropTypes = {\r\n isManaging: PropTypes.bool.isRequired,\r\n teamDetails: PropTypes.shape({\r\n sessionId: PropTypes.number,\r\n timeOfDay: PropTypes.string,\r\n homeCourtLocation: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n }),\r\n registrationPin: PropTypes.string,\r\n sessionTypeId: PropTypes.number,\r\n dayOfWeek: PropTypes.string,\r\n }),\r\n isLoadingTeam: PropTypes.bool,\r\n isCaptainEditing: PropTypes.bool,\r\n onTeamUpdated: PropTypes.func,\r\n};\r\n\r\nexport const defaultCreateTeamFormPropTypes = {\r\n teamDetails: {},\r\n isLoadingTeam: false,\r\n isCaptainEditing: false,\r\n onTeamUpdated: null\r\n};\r\n\r\nexport const playersTabPropTypes = {\r\n teamId: PropTypes.number,\r\n isCaptainView: PropTypes.bool,\r\n onMessageAllPlayers: PropTypes.func,\r\n};\r\n\r\nexport const playerTabPropTypes = {\r\n sessionId: PropTypes.string.isRequired,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n isUpdating: PropTypes.bool,\r\n displaySinglesAndDoublesRecord: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const drawTablePropTypes = {\r\n onEditMatch: PropTypes.func.isRequired,\r\n onViewMatch: PropTypes.func.isRequired,\r\n onChangeClick: PropTypes.func,\r\n draw: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n drawId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n }).isRequired,\r\n selectableTeams: PropTypes.array.isRequired,\r\n hasPublishedSchedule: PropTypes.bool.isRequired,\r\n isUpdatingTeamMatch: PropTypes.bool,\r\n isManaging: PropTypes.bool.isRequired,\r\n isLoading: PropTypes.bool,\r\n isMainDraw: PropTypes.bool.isRequired,\r\n totalRounds: PropTypes.array.isRequired,\r\n isMobile: PropTypes.bool.isRequired,\r\n displayTournamentBracketStyle: PropTypes.bool.isRequired,\r\n showMainDraw: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const sessionStandingsTablePropTypes = {\r\n sessionStandings: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n teamMatchWins: PropTypes.number.isRequired,\r\n teamMatchLosses: PropTypes.number.isRequired,\r\n playerMatchPoints: PropTypes.number.isRequired,\r\n playerMatchGameWinPercentage: PropTypes.number.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.string,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.string,\r\n isDoublesEstimated: PropTypes.bool\r\n })\r\n })),\r\n isLoading: PropTypes.bool,\r\n sportTypeId: PropTypes.number\r\n};\r\n\r\nexport const teamTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n teamMatchWins: PropTypes.number.isRequired,\r\n teamMatchLosses: PropTypes.number.isRequired,\r\n playerMatchPoints: PropTypes.number.isRequired,\r\n playerMatchGameWinPercentage: PropTypes.number.isRequired,\r\n teamId: PropTypes.string.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.string,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.string,\r\n isDoublesEstimated: PropTypes.bool,\r\n }).isRequired,\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const standingsTabPropTypes = {\r\n sportTypeId: PropTypes.number.isRequired,\r\n teamStandings: PropTypes.array.isRequired\r\n};\r\n\r\nexport const registrationDrawerPropTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n isUsapSanctionedSection: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onFreeSessionRegistration: PropTypes.func.isRequired,\r\n onTeamSelectionClick: PropTypes.func,\r\n isSessionPage: PropTypes.bool,\r\n teamData: PropTypes.shape({\r\n hasRegistrationPin: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n sessionSummary: PropTypes.shape({\r\n id: PropTypes.number.isRequired\r\n }).isRequired\r\n }),\r\n registrationFees: PropTypes.object,\r\n teams: PropTypes.arrayOf(PropTypes.object)\r\n};\r\n\r\nexport const defaultRegistrationDrawerPropTypes = {\r\n teams: [],\r\n teamData: {},\r\n registrationFees: {},\r\n isSessionPage: false,\r\n isUsapSanctionedSection: false,\r\n onTeamSelectionClick: () => {},\r\n};\r\n\r\nexport const teamSelectionProptypes = {\r\n onTeamCardClick: PropTypes.func.isRequired,\r\n onNotifyOrgClick: PropTypes.func.isRequired,\r\n teams: PropTypes.arrayOf(PropTypes.shape({\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired\r\n })).isRequired,\r\n hasRegistrationPin: PropTypes.bool.isRequired,\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired\r\n })).isRequired,\r\n canSendSessionJoinRequest: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const passwordConfirmationProptypes = {\r\n onPinSubmitted: PropTypes.func.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired\r\n })).isRequired,\r\n isInvalidPasscode: PropTypes.bool.isRequired,\r\n isLoading: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const usapValidationProptypes = {\r\n onMemberIdSubmitted: PropTypes.func.isRequired,\r\n validationError: PropTypes.string,\r\n isLoading: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const defaultUsapValidationProptypes = {\r\n validationError: null\r\n};\r\n\r\nexport const registrationConfirmationPropTypes = {\r\n registrationFees: PropTypes.shape({\r\n sessionEntryFee: PropTypes.number.isRequired,\r\n leagueFee: PropTypes.number.isRequired,\r\n serviceFee: PropTypes.number.isRequired,\r\n total: PropTypes.number.isRequired,\r\n currencySymbol: PropTypes.string.isRequired,\r\n }).isRequired,\r\n onRegistrationSuccess: PropTypes.func.isRequired,\r\n clientSecret: PropTypes.string.isRequired,\r\n sessionId: PropTypes.number.isRequired,\r\n};\r\n","import React, { useContext, useEffect, useState, useMemo } from 'react';\r\nimport { useGate } from 'statsig-react';\r\n\r\nimport { featureGates } from '../utils/statsig';\r\nimport { statsigContextProviderPropTypes } from '../utils/proptypes';\r\n\r\nconst StatsigContext = React.createContext();\r\n\r\nexport function useStatsig() {\r\n return useContext(StatsigContext);\r\n}\r\n\r\nexport function StatsigContextProvider({ children }) {\r\n const isAdultTeamPickleballEnabled = useGate(featureGates.ADULT_TEAM_PICKLEBALL).value;\r\n const isJuniorTeamPickleballEnabled = useGate(featureGates.JUNIOR_TEAM_PICKLEBALL).value;\r\n const isGlobalDropdownV2Enabled = useGate(featureGates.GLOBAL_DROPDOWN_V2).value;\r\n const [state, setState] = useState({});\r\n\r\n useEffect(() => {\r\n setState({\r\n featureGates: {\r\n adultTeamPickleball: isAdultTeamPickleballEnabled,\r\n juniorTeamPickleball: isJuniorTeamPickleballEnabled,\r\n globalDropdownV2: isGlobalDropdownV2Enabled,\r\n },\r\n });\r\n }, []);\r\n\r\n const memoizedState = useMemo(() => ({\r\n statsig: state,\r\n }), [state]);\r\n\r\n StatsigContextProvider.propTypes = {\r\n ...statsigContextProviderPropTypes\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","const localConfig = {\r\n // apiHost: ' https://api.universaltennis.com',\r\n // apiHost: ' https://marketing-api.universaltennis.com',\r\n // apiHost: 'https://test-api.universaltennis.com',\r\n // apiHost: 'https://qa-api.universaltennis.com',\r\n // apiHost: 'https://ci-api.universaltennis.com',\r\n // apiHost: 'https://rc-api.universaltennis.com',\r\n // apiHost: 'https://localhost:44317',\r\n // apiHost: 'https://utr-api-netcore.azurewebsites.net',\r\n // apiHost: 'https://ut-3-api-qa.azurewebsites.net',\r\n // apiHost: 'https://docker-test-api.universaltennis.com',\r\n // apiHost: ' https://test-api-alt.universaltennis.com',\r\n // apiHost: 'https://utr-api-central-us-01-canary.azurewebsites.net',\r\n // apiHost: 'https://utr-api-central-us-01.azurewebsites.net'\r\n // apiHost: 'https://ut-api.ngrok.io/',\r\n};\r\n\r\nexport default localConfig;\r\n","/* eslint max-len: [\"off\"] */\r\nimport urljoin from 'url-join';\r\nimport PackageJson from '../package.json';\r\nimport localConf from './config-local';\r\nimport configConstants from './config-constants';\r\n\r\nif (localConf) {\r\n console.log('LocalConf', localConf);\r\n} else {\r\n console.log('No local config overrides');\r\n}\r\n\r\nconst buildId = process.env.BUILD_ID || 'default';\r\nconst appCodePath = `${PackageJson.version}-${buildId}`;\r\nconst outputPath = 'leagues-client';\r\nconst applicationVersion = PackageJson.version;\r\nconst staticContentPath = 'public';\r\n\r\nconst rootDomain = 'utrsports.net';\r\nconst brandedDomain = 'utrsports.net';\r\nconst twitterHandle = 'UTR_Sports_';\r\n\r\nconst devFontUrl = 'https://cloud.typography.com/6323816/6761592/css/fonts.css'; // doesn't count against production page views\r\nconst localFontUrl = '/fonts/utr-fonts.css'; // for internal/offline use\r\nconst prodFontUrl = 'https://cloud.typography.com/6323816/6355392/css/fonts.css';\r\n\r\nconst webServerPublicPath = '/';\r\n\r\nconst links = {\r\n support: `https://support.${rootDomain}/support/tickets/new`,\r\n supportHome: `https://support.${rootDomain}/en/support/home`,\r\n appStoreUrl: 'https://apps.apple.com/us/app/universal-tennis/id1519232627',\r\n googlePlayUrl: 'https://play.google.com/store/apps/details?id=com.ut.utr&utm_source=google-play&utm_campaign=web-footer-google-playstore-badge&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1',\r\n sessionStandingsRule: `https://support.${rootDomain}/support/solutions/articles/9000235929-set-session-standings-rule`\r\n\r\n};\r\n\r\nconst devRoxKey = '5b4f55a7a43ccb0e97402f6f';\r\nconst devStripeKey = 'pk_test_fJzi8lcnQbbKhlMJp9YVZ2tA00Wx6NIMm2';\r\nconst utrStripeAccountId = process.env.UTR_STRIPE_ACCOUNT_ID || 'acct_1AV2NnBJJJ7ji1oI';\r\nconst googleApiKey = process.env.REACT_APP_GOOGLE_API_KEY;\r\n\r\nconst prodSegmentKey = 'XJQ5EvgdaXEKA7B8XgaiPgOPWjO0GB2Q';\r\nconst nonProdSegmentKey = 'kGabTpvRe2bSYtu4QmKKmoPf5Q6kY2Xc';\r\n\r\nconst prodFacebookPixelId = '934768840401987';\r\nconst nonProdFacebookPixelId = '123456789123456';\r\n\r\nconst devApiAuthToken = '2303cc78-0e7e-4b86-8ae6-74d05cd10cdf';\r\n\r\nconst prodStatsigKey = 'client-M26U2xrmdwgAiTbeNrUpxyGIk4i2guVzMiPPm9m00b';\r\nconst devStatsigKey = 'client-BS9ru6yhmKmFidDYBKkoSTiTwuV1p1nEDXl7IXtANJD';\r\n\r\nconst localDevSettings = {\r\n appHost: 'https://localhost:3443',\r\n marketingAppHost: 'http://localhost:3001',\r\n leaguesAppHost: 'http://localhost:3002',\r\n apiAuthToken: devApiAuthToken,\r\n apiHost: `https://test-api.${rootDomain}`,\r\n leaguesApiHost: `https://test1-leagues-api.${rootDomain}`,\r\n searchApiHost: `https://test1-search-api.${rootDomain}`,\r\n siteBaseUrl: rootDomain,\r\n brandedUrl: brandedDomain,\r\n twitterAccount: twitterHandle,\r\n fontUrl: localFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: devStripeKey,\r\n utrStripeAccountId,\r\n useProxy: true,\r\n googleApiKey,\r\n publicPath: webServerPublicPath,\r\n pixelId: nonProdFacebookPixelId,\r\n cdnUrl: `https://ci-cdn.${rootDomain}`,\r\n isLocalhost: true,\r\n statsigKey: devStatsigKey,\r\n ...(localConf || {}),\r\n};\r\n\r\nconst createNewRelicBrowserSnippet = (apiUri, newRelicAppId) => {\r\n return `\r\n \r\n `;\r\n};\r\n\r\nconst createTestSettings = (environmentName, newRelicAppId) => {\r\n const cdnUrl = `https://${environmentName}-cdn.${rootDomain}`;\r\n const cdnUrlStatic = `https://${environmentName}-cdn-static.${rootDomain}`;\r\n const apiUri = process.env.APIHOST || `https://${environmentName}-api.${rootDomain}`;\r\n const leaguesApiUri = process.env.LEAGUESAPIHOST || `https://${environmentName}-leagues-api.${rootDomain}`;\r\n const searchApiUri = `https://test1-search-api.${rootDomain}`;\r\n const newRelicBrowserSnippet = newRelicAppId != null ? createNewRelicBrowserSnippet(apiUri, newRelicAppId) : '';\r\n\r\n return {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n appHost: process.env.APPHOST || `https://${environmentName}-app.${rootDomain}`,\r\n appHostName: process.env.APPHOSTNAME || `${environmentName}-app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${environmentName}.${rootDomain}`,\r\n apiHost: apiUri,\r\n googleApiKey,\r\n leaguesApiHost: leaguesApiUri,\r\n searchApiHost: searchApiUri,\r\n userSiteHost: process.env.USERSITEHOST || `https://${environmentName}-app.${rootDomain}`,\r\n userSiteHostName: process.env.USERSITEHOST || `${environmentName}-app.${rootDomain}`,\r\n fontUrl: devFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n cdnUrl,\r\n publicPath: urljoin(cdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: nonProdSegmentKey,\r\n devtoolConfig: 'eval-source-maps',\r\n pixelId: nonProdFacebookPixelId,\r\n newRelicBrowserSnippet,\r\n statsigKey: devStatsigKey,\r\n };\r\n};\r\n\r\nconst prodCdnUrl = `https://prod-cdn.${rootDomain}`;\r\nconst prodCdnUrlStatic = `https://prod-cdn-static.${rootDomain}`;\r\nconst prodApiUri = process.env.APIHOST || `https://api.${rootDomain}`;\r\nconst prodLeaguesApiUri = process.env.LEAGUESAPIHOST || `https://leagues-api.${rootDomain}`;\r\nconst searchApiUrl = `https://search-api.${rootDomain}`;\r\nconst prodServerSettings = {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n appHost: process.env.APPHOST || `https://app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${rootDomain}`,\r\n leaguesApiHost: prodLeaguesApiUri,\r\n apiHost: prodApiUri,\r\n searchApiHost: searchApiUrl,\r\n fontUrl: prodFontUrl,\r\n googleApiKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: process.env.STRIPE_CLIENT_ID || 'ca_G7kArGiIoboxUDj62elK8kxXinfQe0QI',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n roxKey: process.env.REACT_APP_ROX_KEY,\r\n cdnUrl: prodCdnUrl,\r\n publicPath: urljoin(prodCdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: prodSegmentKey,\r\n devtoolConfig: false,\r\n pixelId: prodFacebookPixelId,\r\n newRelicBrowserSnippet: createNewRelicBrowserSnippet(prodApiUri, 539633838),\r\n statsigKey: prodStatsigKey,\r\n};\r\n\r\nconst qaServerSettings = createTestSettings('qa', 590226463);\r\nconst ciServerSettings = createTestSettings('ci', 590213041);\r\nconst testServerSettings = createTestSettings('test', 589991131);\r\nconst test2ServerSettings = createTestSettings('test2', 587189898);\r\nconst test3ServerSettings = createTestSettings('test3', 587326842);\r\nconst test4ServerSettings = createTestSettings('test4', 539430739);\r\nconst test5ServerSettings = createTestSettings('test5', 284389075);\r\nconst test6ServerSettings = createTestSettings('test6', 284363017);\r\nconst test7ServerSettings = createTestSettings('test7', 518274954);\r\nconst test8ServerSettings = createTestSettings('test8', 269953869);\r\nconst test9ServerSettings = createTestSettings('test9', null);\r\nconst test10ServerSettings = createTestSettings('test10', null);\r\nconst test11ServerSettings = createTestSettings('test11', null);\r\nconst rcSettings = createTestSettings('rc', 590000593);\r\n\r\nlet config = localDevSettings; // Default to local dev settings\r\n\r\nconst configSource = (\r\n process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development'\r\n).toLowerCase();\r\n\r\nswitch (configSource) {\r\n case 'prod':\r\n config = prodServerSettings;\r\n break;\r\n case 'qa':\r\n config = qaServerSettings;\r\n break;\r\n case 'ci':\r\n config = ciServerSettings;\r\n break;\r\n case 'test':\r\n config = testServerSettings;\r\n break;\r\n case 'test1':\r\n config = testServerSettings;\r\n break;\r\n case 'test2':\r\n config = test2ServerSettings;\r\n break;\r\n case 'test3':\r\n config = test3ServerSettings;\r\n break;\r\n case 'test4':\r\n config = test4ServerSettings;\r\n break;\r\n case 'test5':\r\n config = test5ServerSettings;\r\n break;\r\n case 'test6':\r\n config = test6ServerSettings;\r\n break;\r\n case 'test7':\r\n config = test7ServerSettings;\r\n break;\r\n case 'test8':\r\n config = test8ServerSettings;\r\n break;\r\n case 'test9':\r\n config = test9ServerSettings;\r\n break;\r\n case 'test10':\r\n config = test10ServerSettings;\r\n break;\r\n case 'test11':\r\n config = test11ServerSettings;\r\n break;\r\n case 'rc':\r\n config = rcSettings;\r\n break;\r\n default:\r\n config = localDevSettings;\r\n}\r\n\r\n// Common settings\r\nconfig.outputPath = configConstants.outputPath;\r\nconfig.appCodePath = appCodePath;\r\nconfig.applicationVersion = applicationVersion;\r\nconfig.staticContentPath = staticContentPath;\r\n\r\nexport default config;\r\n","export const LeagueSessionTypes = {\r\n TOURNAMENT: 1,\r\n MULTI_ROUND: 2,\r\n};\r\n\r\nexport const FrequencyTypes = {\r\n ONCE_A_WEEK: 1,\r\n EVERY_TWO_WEEKS: 2,\r\n};\r\n\r\nexport const MatchFormatTypes = {\r\n SINGLES: 1,\r\n DOUBLES: 2,\r\n BOTH: 3,\r\n};\r\n\r\nexport const ResultTypes = {\r\n COMPLETED: 1,\r\n COMPLETED_WITH_PARTIAL_SCORES: 2,\r\n PLAYER_OR_TEAM_DEFAULTED: 3,\r\n WITHDREW: 4,\r\n RETIRED: 5,\r\n INCOMPLETE: 6,\r\n DEFAULTED: 7,\r\n MATCH_NOT_PLAYED: 8,\r\n};\r\n\r\nexport const ScheduleStatuses = {\r\n DRAFT: 1,\r\n PUBLISHED: 2,\r\n};\r\n\r\nexport const TennisScoringFormatTypes = {\r\n BEST_OF_THREE: 1,\r\n TWO_SETS_WITH_TIEBREAKER: 2,\r\n SINGLE_SET: 3,\r\n TIME_BASED: 4,\r\n FAST_FOUR: 5,\r\n};\r\n\r\nexport const PickleballScoringFormatTypes = {\r\n SINGLE_GAME: 6,\r\n BEST_OF_THREE_GAMES: 7,\r\n TIME_BASED_GAME: 8,\r\n};\r\n\r\nexport const StatusTypes = {\r\n OPEN: 1,\r\n CLOSED: 2,\r\n};\r\n\r\nexport const WithdrawTypes = {\r\n WITHDRAW: 1,\r\n REFUND: 2,\r\n WITHDRAW_AND_REFUND: 3,\r\n};\r\n\r\nexport const RequestStatusTypes = {\r\n ACCEPTED: 1,\r\n DENIED: 2,\r\n PENDING: 3,\r\n};\r\n\r\nexport const LeagueGenderTypes = {\r\n CO_ED: 1,\r\n MALE: 2,\r\n FEMALE: 3,\r\n};\r\n\r\nexport const LeagueTypes = {\r\n UT_ADULT_TEAM_TENNIS: 1,\r\n UT_JUNIOR_TEAM_TENNIS: 3,\r\n CLUB_ADULT_LEAGUE_TENNIS: 4,\r\n OTHER_TENNIS: 5,\r\n UT_ADULT_TEAM_PICKLEBALL: 6,\r\n UT_JUNIOR_TEAM_PICKLEBALL: 7,\r\n CLUB_ADULT_LEAGUE_PICKLEBALL: 8,\r\n OTHER_PICKLEBALL: 9,\r\n};\r\n\r\nexport const LeagueTierTypes = {\r\n ADULT: 1,\r\n JUNIOR: 2\r\n};\r\n\r\nexport const PlayerActionTypes = {\r\n WITHDRAW: 1,\r\n MOVE_TO_TEAM: 2,\r\n COPY_TO_TEAM: 3,\r\n MARK_AS_ROSTERED: 4,\r\n MARK_AS_SUBSTITUTE: 5,\r\n};\r\n\r\nexport const OrderByTypes = {\r\n TEAM_NAME: 0,\r\n SESSION_NAME: 1,\r\n RANK: 2,\r\n};\r\n\r\nexport const OrderByRuleTypes = {\r\n ASCENDING: { id: 0, value: 'asc' },\r\n DESCENDING: { id: 1, value: 'desc' },\r\n};\r\n\r\nexport const SessionDrawTypes = {\r\n FIRST_MATCH_BACK_DRAW: 1,\r\n SINGLE_ELIMINATION: 2\r\n};\r\n\r\nexport const MultiRoundScheduleTypes = {\r\n BY_ROUND: 0,\r\n BY_DATE: 1\r\n};\r\n\r\nexport const LeagueSanctionTypes = {\r\n USAP: 1,\r\n};\r\n\r\nexport const genderTypes = [\r\n { id: LeagueGenderTypes.CO_ED, value: 'all', label: 'Co-ed', description: 'Co-ed' },\r\n { id: LeagueGenderTypes.MALE, value: 'm', label: 'M', description: 'Male' },\r\n { id: LeagueGenderTypes.FEMALE, value: 'f', label: 'F', description: 'Female' },\r\n];\r\n\r\nexport const distanceTypes = [\r\n { id: 10, description: '10 miles' },\r\n { id: 25, description: '25 miles' },\r\n { id: 50, description: '50 miles' },\r\n { id: 75, description: '75 miles' },\r\n { id: 100, description: '100 miles' },\r\n { id: 125, description: '125 miles' },\r\n];\r\n\r\nexport const sessionTypes = [\r\n { id: LeagueSessionTypes.TOURNAMENT, description: 'Team Tournament' },\r\n { id: LeagueSessionTypes.MULTI_ROUND, description: 'Multi-Round' },\r\n];\r\n\r\nexport const multiRoundScheduleTypes = [\r\n { id: MultiRoundScheduleTypes.BY_ROUND, description: 'By Round' },\r\n { id: MultiRoundScheduleTypes.BY_DATE, description: 'By Date' },\r\n];\r\n\r\nexport const matchFrequencyTypes = [\r\n { id: FrequencyTypes.ONCE_A_WEEK, description: 'Once a week' },\r\n { id: FrequencyTypes.EVERY_TWO_WEEKS, description: 'Every 2 weeks' },\r\n];\r\n\r\nexport const tennisScoringTypes = [\r\n { id: TennisScoringFormatTypes.BEST_OF_THREE, description: 'Best of Three Sets' },\r\n { id: TennisScoringFormatTypes.TWO_SETS_WITH_TIEBREAKER, description: 'Two Sets w/ Match Tiebreaker' },\r\n { id: TennisScoringFormatTypes.SINGLE_SET, description: 'Single Set' },\r\n { id: TennisScoringFormatTypes.TIME_BASED, description: 'Time Based' },\r\n { id: TennisScoringFormatTypes.FAST_FOUR, description: 'Fast Four' },\r\n];\r\n\r\nexport const pickleballScoringTypes = [\r\n { id: PickleballScoringFormatTypes.SINGLE_GAME, description: 'Single Game' },\r\n { id: PickleballScoringFormatTypes.BEST_OF_THREE_GAMES, description: 'Best of Three Games' },\r\n { id: PickleballScoringFormatTypes.TIME_BASED_GAME, description: 'Time Based' },\r\n];\r\n\r\nexport const durationTypes = [\r\n { id: 1, description: '30 min' },\r\n { id: 2, description: '60 min' },\r\n { id: 3, description: '90 min' },\r\n { id: 4, description: '120 min' },\r\n { id: 5, description: 'Unlimited' },\r\n];\r\n\r\nexport const tierTypes = [\r\n { id: LeagueTierTypes.ADULT, description: 'Adult' },\r\n { id: LeagueTierTypes.JUNIOR, description: 'Junior' },\r\n];\r\n\r\nexport const openClosedStatusTypes = [\r\n { id: StatusTypes.OPEN, description: 'Open' },\r\n { id: StatusTypes.CLOSED, description: 'Closed' },\r\n];\r\n\r\nexport const sessionMatchFormatTypes = [\r\n { id: MatchFormatTypes.SINGLES, description: 'Singles' },\r\n { id: MatchFormatTypes.DOUBLES, description: 'Doubles' },\r\n { id: MatchFormatTypes.BOTH, description: 'Singles and Doubles' },\r\n];\r\n\r\nexport const drawTypes = [\r\n { id: SessionDrawTypes.FIRST_MATCH_BACK_DRAW, description: 'First match back draw' },\r\n { id: SessionDrawTypes.SINGLE_ELIMINATION, description: 'Single elimination' },\r\n];\r\n\r\nexport const weekdays = [\r\n { id: 0, description: 'Sunday' },\r\n { id: 1, description: 'Monday' },\r\n { id: 2, description: 'Tuesday' },\r\n { id: 3, description: 'Wednesday' },\r\n { id: 4, description: 'Thursday' },\r\n { id: 5, description: 'Friday' },\r\n { id: 6, description: 'Saturday' },\r\n];\r\n\r\nexport const playerWithdrawTypes = [\r\n { id: WithdrawTypes.WITHDRAW, description: 'Withdraw' },\r\n { id: WithdrawTypes.REFUND, description: 'Refund' },\r\n { id: WithdrawTypes.WITHDRAW_AND_REFUND, description: 'Withdraw & Refund' },\r\n];\r\n\r\nexport const matchResultTypes = [\r\n { id: ResultTypes.COMPLETED, description: 'Completed' },\r\n { id: ResultTypes.COMPLETED_WITH_PARTIAL_SCORES, description: 'Completed with parital scores' },\r\n { id: ResultTypes.DEFAULTED, description: 'Defaulted' },\r\n { id: ResultTypes.WITHDREW, description: 'Withdrew' },\r\n { id: ResultTypes.RETIRED, description: 'Retired' },\r\n { id: ResultTypes.INCOMPLETE, description: 'Incomplete' },\r\n { id: ResultTypes.MATCH_NOT_PLAYED, description: 'Match not played' },\r\n];\r\n\r\nexport const PlayerManageOptions = [\r\n { id: PlayerActionTypes.WITHDRAW, description: 'Withdraw' },\r\n { id: PlayerActionTypes.MOVE_TO_TEAM, description: 'Move to team' },\r\n { id: PlayerActionTypes.COPY_TO_TEAM, description: 'Copy to team' },\r\n { id: PlayerActionTypes.MARK_AS_SUBSTITUTE, description: 'Mark as Substitute Player' },\r\n { id: PlayerActionTypes.MARK_AS_ROSTERED, description: 'Mark as Rostered Player' },\r\n];\r\n\r\nexport const DateFilterTypes = {\r\n UPCOMING: 1,\r\n IN_PROGRESS: 2,\r\n PAST: 3\r\n};\r\n\r\nexport const searchDateFilterTypes = [\r\n { id: DateFilterTypes.UPCOMING, description: 'Upcoming' },\r\n { id: DateFilterTypes.IN_PROGRESS, description: 'In progress' },\r\n { id: DateFilterTypes.PAST, description: 'Past' },\r\n];\r\n\r\nexport const TournamentTeamsCount = {\r\n FOUR: 4,\r\n EIGHT: 8,\r\n SIXTEEN: 16,\r\n};\r\n\r\nexport const tournamentTeamsCountOptions = [\r\n { id: TournamentTeamsCount.FOUR, description: '4 teams / 2 matches' },\r\n { id: TournamentTeamsCount.EIGHT, description: '8 teams / 4 matches' },\r\n { id: TournamentTeamsCount.SIXTEEN, description: '16 teams / 8 matches' },\r\n];\r\n\r\nexport const LeagueSearchEntities = {\r\n CONFERENCES: 'conferences',\r\n SESSIONS: 'sessions',\r\n};\r\n\r\nexport const SportTypeIds = {\r\n TENNIS: 1,\r\n PICKLEBALL: 2\r\n};\r\n\r\nexport const SportTypes = {\r\n 1: 'Tennis',\r\n 2: 'Pickleball'\r\n};\r\n\r\nexport const sportTypes = [\r\n { id: SportTypeIds.TENNIS, description: 'Tennis' },\r\n { id: SportTypeIds.PICKLEBALL, description: 'Pickleball' },\r\n];\r\n\r\nexport const getTypeForId = (id, types) => {\r\n return types.find((type) => type.id === id);\r\n};\r\n\r\nexport const PlayerAvailabilityStatusTypes = {\r\n YES: 1,\r\n MAYBE: 2,\r\n NO: 3,\r\n NOT_SET: 4,\r\n};\r\n\r\nexport const PlayerAvailabilityStatus = {\r\n 1: 'YES',\r\n 2: 'MAYBE',\r\n 3: 'NO',\r\n};\r\n\r\nexport const PlayerAvailabilityColors = {\r\n GREEN: 'rsvpGreen',\r\n ORANGE: 'rsvpOrange',\r\n RED: 'rsvpRed',\r\n};\r\n\r\nexport const SessionStandingsRules = {\r\n 1: 'Win/Loss record',\r\n 2: '% of Team Matches won',\r\n 3: '% of Games won',\r\n 4: 'Win/Loss record',\r\n 5: '% of Team Matches won',\r\n 6: '% of Points won'\r\n};\r\n\r\nexport const SessionStandingsTypes = {\r\n TENNIS_WIN_LOSS_RECORD: 1,\r\n TENNIS_PERCENT_OF_TEAM_MATCHES_WON: 2,\r\n TENNIS_PERCENT_OF_GAMES_WON: 3,\r\n PICKLEBALL_WIN_LOSS_RECORD: 4,\r\n PICKLEBALL_PERCENT_OF_TEAM_MATCHES_WON: 5,\r\n PICKLEBALL_PERCENT_OF_POINTS_WON: 6,\r\n};\r\n\r\nexport const tennisSessionStandingsOptions = [\r\n { id: SessionStandingsTypes.TENNIS_WIN_LOSS_RECORD, description: 'Win/Loss record' },\r\n { id: SessionStandingsTypes.TENNIS_PERCENT_OF_TEAM_MATCHES_WON, description: '% of Team Matches won' },\r\n { id: SessionStandingsTypes.TENNIS_PERCENT_OF_GAMES_WON, description: '% of Games won' },\r\n];\r\n\r\nexport const pickleballSessionStandingsOptions = [\r\n { id: SessionStandingsTypes.PICKLEBALL_WIN_LOSS_RECORD, description: 'Win/Loss record' },\r\n { id: SessionStandingsTypes.PICKLEBALL_PERCENT_OF_TEAM_MATCHES_WON, description: '% of Team Matches won' },\r\n { id: SessionStandingsTypes.PICKLEBALL_PERCENT_OF_POINTS_WON, description: '% of Points won' },\r\n];\r\n\r\nexport const SearchSortTypes = {\r\n START_DATE: 'startdate',\r\n AGE: 'age',\r\n GENDER: 'gender',\r\n UTR: 'utr',\r\n UTRP: 'utrp'\r\n};\r\n\r\nexport const SessionDateStatuses = {\r\n 1: 'upcoming',\r\n 2: 'inprogress',\r\n 3: 'past',\r\n};\r\n\r\nexport const SliderTypes = {\r\n AGE: 'Age',\r\n UTR: 'UTR',\r\n UTRP: 'UTRP'\r\n};\r\n","import axios from 'axios';\r\n// import MockAdapter from 'axios-mock-adapter';\r\nimport config from '../config';\r\n\r\nexport const getProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/api',\r\n });\r\n};\r\n\r\nexport const getApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.apiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\nexport const getAxiosInstance = () => {\r\n return axios.create({});\r\n};\r\n\r\nexport const getLeaguesProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/leagues-api',\r\n });\r\n};\r\n\r\nexport const getLeaguesApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getLeaguesProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.leaguesApiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\nexport const getSearchProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/search-api',\r\n });\r\n};\r\n\r\nexport const getSearchApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getSearchProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.searchApiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\n// export const axiosMock = () => {\r\n// const axiosInstance = axios.create({});\r\n// const mock = new MockAdapter(axiosInstance);\r\n// return {\r\n// mock,\r\n// axiosInstance,\r\n// };\r\n// };\r\n","import * as queryString from 'query-string';\r\nimport { createApi } from '@reduxjs/toolkit/query/react';\r\nimport { axiosBaseQuery } from '../redux/services/baseQuery';\r\nimport { WithdrawTypes } from '../utils/types';\r\n\r\nimport { getLeaguesApiAxiosInstance, getApiAxiosInstance } from '../utils/network';\r\n\r\nconst leaguesApiAxiosInstance = getLeaguesApiAxiosInstance();\r\nconst mainApiAxiosInstance = getApiAxiosInstance();\r\n\r\nconst { REFUND } = WithdrawTypes;\r\n\r\nexport const getBreadcrumbs = (context, contextId) => {\r\n const url = `/v1/leagues/breadcrumbs?type=${context}&id=${contextId}`;\r\n return leaguesApiAxiosInstance.get(url);\r\n};\r\n\r\nexport const getUser = () => {\r\n return mainApiAxiosInstance.get(`v1/auth/current`);\r\n};\r\n\r\nexport const getPreferences = () => {\r\n return mainApiAxiosInstance.get(`v1/preferences/feed`)\r\n};\r\n\r\nexport const getActiveLeagueTeams = () => {\r\n const url = '/v2/leagues/member/teams?activeOnly=true';\r\n return leaguesApiAxiosInstance.get(url);\r\n};\r\n\r\nexport const getTeamsForSession = (sessionId, parameters) => {\r\n const url = `/v1/leagues/sessions/${sessionId}/teamsforcopying`;\r\n return leaguesApiAxiosInstance.get(url, {\r\n params: parameters,\r\n paramsSerializer: (params) => queryString.stringify(params, { arrayFormat: 'repeat' }),\r\n });\r\n};\r\n\r\nexport const searchLeagueSessions = (axiosInstance, requestBody) => {\r\n const url = `v4/search/leagues/sessions`;\r\n return axiosInstance.post(url, requestBody);\r\n};\r\n\r\nexport const scrollLeagueSessions = (axiosInstance, requestBody) => {\r\n const url = `v4/search/leagues/sessions/scroll`;\r\n return axiosInstance.post(url, requestBody);\r\n};\r\n\r\nexport const leaguesApi = createApi({\r\n reducerPath: 'leaguesApi',\r\n baseQuery: axiosBaseQuery({\r\n baseUrl: '',\r\n }),\r\n tagTypes: [\r\n 'league-summary',\r\n 'conference',\r\n 'conference-sessions',\r\n 'league-fees',\r\n 'conference-summary',\r\n 'session',\r\n 'session-summary',\r\n 'session-teams',\r\n 'session-schedule',\r\n 'session-standings',\r\n 'team',\r\n 'team-summary',\r\n 'team-schedule',\r\n 'players',\r\n 'registration-fees',\r\n 'schedule',\r\n 'match-summary',\r\n 'player-matches',\r\n 'member-teams',\r\n 'player-available-teams',\r\n 'league-conferences',\r\n 'session-names',\r\n 'user-leagues',\r\n 'team-match-rosters',\r\n 'team-match-lineups',\r\n 'billing-countries',\r\n 'session-schedule-by-date'\r\n ],\r\n endpoints: (build) => ({\r\n // GET\r\n getLeagueSummary: build.query({\r\n query: (leagueId) => ({ url: `/v1/leagues/${leagueId}/summary`, method: 'GET' }),\r\n providesTags: (result, error, leagueId) => [{ type: 'league-summary', id: leagueId }],\r\n }),\r\n getConference: build.query({\r\n query: (conferenceId) => ({ url: `/v2/leagues/conferences/${conferenceId}`, method: 'GET' }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'conference', id: conferenceId }],\r\n }),\r\n getConferenceSessions: build.query({\r\n query: ({ conferenceId, pageNumber, pageSize }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/sessions?pageNumber=${pageNumber}&pageSize=${pageSize}`,\r\n method: 'GET',\r\n }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'conference-sessions', id: conferenceId }],\r\n }),\r\n getLeagueFees: build.query({\r\n query: (conferenceId) => ({ url: `/v1/leagues/conferences/${conferenceId}/leaguefees`, method: 'GET' }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'league-fees', id: conferenceId }],\r\n }),\r\n getConferenceSummary: build.query({\r\n query: (conferenceId) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/summary`,\r\n method: 'GET',\r\n }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'conference-summary', id: conferenceId }],\r\n }),\r\n getSession: build.query({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session', id: sessionId }],\r\n }),\r\n getSessionSummary: build.query({\r\n query: (sessionId) => ({ url: `/v2/leagues/sessions/${sessionId}/summary`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session-summary', id: sessionId }],\r\n }),\r\n getSessionTeams: build.query({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/teams`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session-teams', id: sessionId }],\r\n }),\r\n getSessionSchedule: build.query({\r\n query: ({ sessionId, showDraftSchedule }) => ({\r\n url: `/v2/leagues/sessions/${sessionId}/schedule?showDraftSchedules=${showDraftSchedule}`,\r\n method: 'GET',\r\n }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, arg) => [{ type: 'session-schedule', id: arg.sessionId }],\r\n }),\r\n getSessionScheduleByDate: build.query({\r\n query: ({ sessionId, showDraftSchedule }) => ({\r\n url: `/v1/leagues/sessions/${sessionId}/scheduleByDate?showDraftSchedules=${showDraftSchedule}`,\r\n method: 'GET',\r\n }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, arg) => [{ type: 'session-schedule-by-date', id: arg.sessionId }],\r\n }),\r\n getSessionStandings: build.query({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/teamstandings`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, sessionId) => [{ type: 'session-standings', id: sessionId }],\r\n }),\r\n getTeam: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team', id: teamId }],\r\n }),\r\n getTeamSummary: build.query({\r\n query: (teamId) => ({ url: `/v2/leagues/teams/${teamId}/summary`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team-summary', id: teamId }],\r\n }),\r\n getTeamSchedule: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/schedule`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team-schedule', id: teamId }],\r\n }),\r\n getTeamScheduleByDate: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/schedulebydate`, method: 'GET' }),\r\n providesTags: (result, error, teamId) => [{ type: 'team-schedule', id: teamId }],\r\n }),\r\n getRegistrationFees: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/registration-fees`, method: 'GET' }),\r\n providesTags: ['registration-fees'],\r\n }),\r\n getPlayers: build.query({\r\n query: (teamId) => ({ url: `/v1/leagues/teams/${teamId}/members`, method: 'GET' }),\r\n transformResponse: (response) => {\r\n const players = response?.teamMembers?.map((member) => {\r\n return { ...member, teamId: response?.teamId };\r\n });\r\n return players;\r\n },\r\n providesTags: (result, error, teamId) => [{ type: 'players', id: teamId }],\r\n }),\r\n getSchedule: build.query({\r\n query: (scheduleId) => ({ url: `/v1/leagues/schedules/${scheduleId}`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, scheduleId) => [{ type: 'schedule', id: scheduleId }],\r\n }),\r\n getMatchSummary: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/summary`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, teamMatchId) => [{ type: 'match-summary', id: teamMatchId }],\r\n }),\r\n getPlayerMatches: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/playermatches`, method: 'GET' }),\r\n keepUnusedDataFor: 0,\r\n providesTags: (result, error, teamMatchId) => [{ type: 'player-matches', id: teamMatchId }],\r\n }),\r\n getLatestTeamMatchUpdate: build.query({\r\n query: ({ teamMatchId, timestamp }) => {\r\n let pollingUrl;\r\n if (timestamp) {\r\n pollingUrl = `/v1/leagues/teammatches/${teamMatchId}/latest?timestamp=${timestamp}`;\r\n } else {\r\n pollingUrl = `/v1/leagues/teammatches/${teamMatchId}/latest`;\r\n }\r\n return { url: pollingUrl, method: 'GET' };\r\n },\r\n }),\r\n getMemberTeams: build.query({\r\n query: () => ({ url: `/v2/leagues/member/teams`, method: 'GET' }),\r\n providesTags: () => [{ type: 'member-teams' }],\r\n }),\r\n getPlayersAvailableTeams: build.query({\r\n query: ({ sessionId, memberId }) => ({ url: `/v1/leagues/session/${sessionId}/playeravailableteams?memberId=${memberId}`, method: 'GET' }),\r\n providesTags: (result, error, arg) => [{ type: 'player-available-teams', id: arg.memberId }],\r\n keepUnusedDataFor: 0,\r\n }),\r\n getLeagueConferences: build.query({\r\n query: (leagueId) => ({ url: `/v1/leagues/${leagueId}/conferences`, method: 'GET' }),\r\n providesTags: (result, error, leagueId) => [{ type: 'league-conferences', id: leagueId }],\r\n }),\r\n getSessionNames: build.query({\r\n query: (conferenceId) => ({ url: `/v1/leagues/conferences/${conferenceId}/sessionnames`, method: 'GET' }),\r\n providesTags: (result, error, conferenceId) => [{ type: 'session-names', id: conferenceId }],\r\n }),\r\n getUserLeagues: build.query({\r\n query: () => ({ url: `/v1/leagues/my-leagues`, method: 'GET' }),\r\n providesTags: () => [{ type: 'user-leagues' }],\r\n }),\r\n getTeamMatchRosters: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/rosters`, method: 'GET' }),\r\n providesTags: (result, error, teamMatchId) => [{ type: 'team-match-rosters', id: teamMatchId }],\r\n }),\r\n getTeamMatchLineups: build.query({\r\n query: (teamMatchId) => ({ url: `/v1/leagues/teammatches/${teamMatchId}/lineups`, method: 'GET' }),\r\n providesTags: (result, error, teamMatchId) => [{ type: 'team-match-lineups', id: teamMatchId }],\r\n }),\r\n getBillingCountries: build.query({\r\n query: () => ({ url: `/v1/leagues/billingcountries`, method: 'GET' }),\r\n transformResponse: (response) => {\r\n const formattedCountries = response.map((country) => {\r\n return { id: country.value, description: country.label };\r\n });\r\n return formattedCountries;\r\n },\r\n providesTags: () => [{ type: 'billing-countries' }],\r\n }),\r\n\r\n // POST\r\n\r\n createConference: build.mutation({\r\n query: (conference) => ({ url: `/v1/leagues/conferences`, method: 'POST', data: conference }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'league-summary', id: arg.leagueId }],\r\n }),\r\n addOrganizer: build.mutation({\r\n query: ({ conferenceId, organizer }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/organizers`,\r\n method: 'POST',\r\n data: organizer,\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'conference', id: arg.conferenceId }],\r\n }),\r\n createSession: build.mutation({\r\n query: (session) => ({ url: `/v1/leagues/sessions`, method: 'POST', data: session }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'conference-sessions', id: arg.conferenceId }],\r\n }),\r\n initiateRegistration: build.mutation({\r\n query: (registrationData) => ({ url: `/v1/leagues/sessions/initiate-registration`, method: 'POST', data: registrationData }),\r\n }),\r\n requestToCaptain: build.mutation({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/captainrequests`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-summary', id: arg.sessionId }],\r\n }),\r\n createEmptySchedule: build.mutation({\r\n query: (sessionId) => ({ url: `/v2/leagues/sessions/${sessionId}/schedules/create-empty`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-schedule', id: arg.sessionId }],\r\n }),\r\n createSchedule: build.mutation({\r\n query: ({ sessionId, scheduleId }) => ({ url: `/v1/leagues/sessions/${sessionId}/schedules`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n }),\r\n createTeamSeeds: build.mutation({\r\n query: ({ sessionId, data, scheduleId }) => ({ url: `/v1/leagues/sessions/${sessionId}/teamseeds`, method: 'POST', data }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n }),\r\n createTeam: build.mutation({\r\n query: (team) => ({ url: `/v1/leagues/teams`, method: 'POST', data: team }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-teams', id: arg.sessionId }],\r\n }),\r\n addCaptain: build.mutation({\r\n query: ({ teamId, captain }) => ({ url: `/v1/leagues/teams/${teamId}/captains`, method: 'POST', data: captain }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'team-summary', id: arg.teamId },\r\n ],\r\n }),\r\n messageTeamPlayers: build.mutation({\r\n query: ({ teamId, message, includeCaptains }) => ({\r\n url: `/v1/leagues/teams/${teamId}/message`,\r\n method: 'POST',\r\n data: { message, includeCaptains },\r\n }),\r\n }),\r\n validateRegistrationPin: build.mutation({\r\n query: ({ teamId, pin }) => ({ url: `/v1/leagues/teams/${teamId}/validate-registration-pin`, method: 'POST', data: { pin } }),\r\n }),\r\n publishSchedule: build.mutation({\r\n query: ({ scheduleId, sessionId, data }) => ({ url: `/v1/leagues/schedules/${scheduleId}/publish`, method: 'POST', data }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n ],\r\n }),\r\n postPlayerMatchResult: build.mutation({\r\n query: ({ playerMatchId, playerMatch, teamMatchId }) => ({\r\n url: `/v1/leagues/playermatches/${playerMatchId}/playermatchresult`,\r\n method: 'POST',\r\n data: playerMatch,\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'player-matches', id: arg.teamMatchId }],\r\n }),\r\n requestToJoinSession: build.mutation({\r\n query: (sessionId) => ({ url: `/v1/leagues/sessions/${sessionId}/joinrequests`, method: 'POST' }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-summary', id: arg.sessionId }],\r\n }),\r\n copyTeamsToSession: build.mutation({\r\n query: ({ sessionId, teamData }) => ({ url: `/v1/leagues/sessions/${sessionId}/copyteams`, method: 'POST', data: teamData }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'session-teams', id: arg.sessionId }],\r\n }),\r\n validateUsapMembership: build.mutation({\r\n query: ({ sessionId, usapMemberId }) => ({ url: `/v1/leagues/sessions/${sessionId}/validate-usap-member`, method: 'POST', data: { usapMemberId } })\r\n }),\r\n\r\n // PUT\r\n\r\n addScheduleRound: build.mutation({\r\n query: ({ scheduleId, newRound }) => ({ url: `/v1/leagues/schedules/${scheduleId}/add-round`, method: 'PUT', data: newRound }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'schedule', id: arg.scheduleId },],\r\n }),\r\n addTeamMatch: build.mutation({\r\n query: ({ scheduleId, newMatch }) => ({ url: `/v1/leagues/schedules/${scheduleId}/add-teammatch`, method: 'PUT', data: newMatch }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'schedule', id: arg.scheduleId },],\r\n }),\r\n updateConference: build.mutation({\r\n query: ({ conferenceId, conference, leagueId }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}`,\r\n method: 'PUT',\r\n data: conference,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'conference', id: arg.conferenceId },\r\n { type: 'league-summary', id: arg.leagueId },\r\n ],\r\n }),\r\n updateSession: build.mutation({\r\n query: ({ sessionId, session, conferenceId }) => ({ url: `/v1/leagues/sessions/${sessionId}`, method: 'PUT', data: session }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'conference-sessions', id: arg.conferenceId },\r\n ],\r\n }),\r\n updateTeam: build.mutation({\r\n query: ({ teamId, team, sessionId }) => ({ url: `/v1/leagues/teams/${teamId}`, method: 'PUT', data: team }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team-summary', id: arg.teamId },\r\n ],\r\n }),\r\n updateUnpublishSchedule: build.mutation({\r\n query: ({ scheduleId, sessionId }) => ({ url: `/v1/leagues/schedules/${scheduleId}/unpublish`, method: 'PUT' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n }),\r\n updatePlayerRegistration: build.mutation({\r\n query: ({ sessionId, teamId, withdrawRequest, withDrawType }) => ({\r\n url: `/v1/leagues/teams/${teamId}/update-registration`,\r\n method: 'PUT',\r\n data: withdrawRequest,\r\n }),\r\n invalidatesTags: (result, error, arg) => {\r\n let tags = [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ];\r\n if (arg.withDrawType !== REFUND) {\r\n tags = [...tags, { type: 'players', id: arg.teamId }];\r\n }\r\n return tags;\r\n },\r\n }),\r\n updateTeamMatchSummary: build.mutation({\r\n query: ({ teamMatchId, sessionId, scheduleId, teamMatch }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}`,\r\n method: 'PUT',\r\n data: teamMatch,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'match-summary', id: arg.teamMatchId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n ],\r\n }),\r\n updateTeamMatchDateLocation: build.mutation({\r\n query: ({ teamMatchId, sessionId, scheduleId, data }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/location-date`,\r\n method: 'PUT',\r\n data,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'match-summary', id: arg.teamMatchId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n ],\r\n }),\r\n updateTeamMatchPositions: build.mutation({\r\n query: ({ teamMatchId, teamMatchPositions, scheduleId, sessionId }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/positions`,\r\n method: 'PUT',\r\n data: teamMatchPositions,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'match-summary', id: arg.teamMatchId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session-standings', id: arg.sessionId },\r\n ],\r\n }),\r\n updatePlayerMatchResult: build.mutation({\r\n query: ({ playerMatchId, playerMatch, teamMatchId }) => ({\r\n url: `/v1/leagues/playermatches/${playerMatchId}/playermatchresult`,\r\n method: 'PUT',\r\n data: playerMatch,\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'player-matches', id: arg.teamMatchId }],\r\n }),\r\n movePlayerToTeam: build.mutation({\r\n query: ({ memberId, fromTeamId, toTeamId, sessionId }) => ({\r\n url: `/v1/leagues/teammembers/move`,\r\n method: 'PUT',\r\n data: { memberId, fromTeamId, toTeamId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'member-teams' },\r\n { type: 'players', id: arg.fromTeamId },\r\n { type: 'players', id: arg.toTeamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team', id: arg.fromTeamId },\r\n { type: 'team', id: arg.toTeamId },\r\n { type: 'team-summary', id: arg.fromTeamId },\r\n { type: 'team-summary', id: arg.toTeamId },\r\n { type: 'player-available-teams', id: arg.memberId },\r\n ],\r\n }),\r\n copyPlayerToTeam: build.mutation({\r\n query: ({ memberId, fromTeamId, toTeamIds, isSubstitute, sessionId }) => ({\r\n url: `/v1/leagues/teammembers/copy`,\r\n method: 'PUT',\r\n data: { memberId, fromTeamId, toTeamIds, isSubstitute },\r\n }),\r\n invalidatesTags: (result, error, arg) => {\r\n const tags = [\r\n { type: 'member-teams' },\r\n { type: 'team-summary', id: arg.fromTeamId },\r\n { type: 'players', id: arg.fromTeamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team', id: arg.fromTeamId },\r\n { type: 'player-available-teams', id: arg.memberId },\r\n ];\r\n arg.toTeamIds.forEach((teamId) => {\r\n const newTags = [\r\n { type: 'players', id: teamId },\r\n { type: 'team', id: teamId },\r\n { type: 'team-summary', id: teamId },\r\n ];\r\n tags.push(...newTags);\r\n });\r\n return tags;\r\n },\r\n }),\r\n togglePlayerRosterStatus: build.mutation({\r\n query: ({ memberId, teamId, sessionId }) => ({\r\n url: `/v1/leagues/teammembers/toggle-substitute`,\r\n method: 'PUT',\r\n data: { memberId, teamId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'member-teams' },\r\n { type: 'team-summary', id: arg.teamId },\r\n { type: 'players', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'team', id: arg.teamId },\r\n { type: 'player-available-teams', id: arg.memberId },\r\n ],\r\n }),\r\n updatePlayerAvailabilityStatus: build.mutation({\r\n query: ({ teamMemberIds, playerAvailabilityStatusId, teamMatchId }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/playeravailability`,\r\n method: 'PUT',\r\n data: { teamMemberIds, playerAvailabilityStatusId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team-match-rosters', id: arg.teamMatchId },\r\n ],\r\n }),\r\n updateTeamMatchLineups: build.mutation({\r\n query: ({ teamMatchId, lineups }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/lineups`,\r\n method: 'PUT',\r\n data: lineups,\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team-match-lineups', id: arg.teamMatchId },\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n ],\r\n }),\r\n updatePlayerReminderStatus: build.mutation({\r\n query: ({ teamId, teamMemberIds, teamMatchId }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/reminders`,\r\n method: 'PUT',\r\n data: { teamId, teamMemberIds, teamMatchId },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team-match-rosters', id: arg.teamMatchId },\r\n ],\r\n }),\r\n updateTeamMatchLineupStatus: build.mutation({\r\n query: ({ teamMatchId, lineupStatusId, notifyPlayersWhenLocked }) => ({\r\n url: `/v1/leagues/teammatches/${teamMatchId}/setlineupstatus`,\r\n method: 'PUT',\r\n data: { lineupStatusId, notifyPlayersWhenLocked },\r\n }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n ],\r\n }),\r\n\r\n // DELETE\r\n\r\n removeOrganizer: build.mutation({\r\n query: ({ conferenceId, organizerId }) => ({\r\n url: `/v1/leagues/conferences/${conferenceId}/organizers/${organizerId}`,\r\n method: 'DELETE',\r\n }),\r\n invalidatesTags: (result, error, arg) => [{ type: 'conference', id: arg.conferenceId }],\r\n }),\r\n removeTeam: build.mutation({\r\n query: ({ teamId, sessionId }) => ({ url: `/v1/leagues/teams/${teamId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'session-teams', id: arg.sessionId },\r\n ],\r\n keepUnusedDataFor: 0,\r\n }),\r\n removeCaptain: build.mutation({\r\n query: ({ teamId, captainId }) => ({ url: `/v1/leagues/teams/${teamId}/captains/${captainId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'team', id: arg.teamId },\r\n { type: 'team-summary', id: arg.teamId },\r\n ],\r\n }),\r\n removeSchedule: build.mutation({\r\n query: ({ scheduleId, sessionId }) => ({ url: `/v1/leagues/schedules/${scheduleId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'session-teams', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n { type: 'session-schedule', id: arg.sessionId },\r\n { type: 'schedule', id: arg.scheduleId },\r\n ],\r\n }),\r\n removeSession: build.mutation({\r\n query: ({ sessionId, conferenceId }) => ({ url: `/v1/leagues/sessions/${sessionId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'conference-sessions', id: arg.conferenceId },\r\n { type: 'session-summary', id: arg.sessionId },\r\n { type: 'session', id: arg.sessionId },\r\n ],\r\n }),\r\n clearTeamMatch: build.mutation({\r\n query: ({teamMatchId}) => ({ url: `/v1/leagues/playermatches/${teamMatchId}/clear`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'team-match-lineups', id: arg.teamMatchId },\r\n ],\r\n }),\r\n removeScheduleRound: build.mutation({\r\n query: ({scheduleId, roundId}) => ({ url: `/v1/leagues/schedules/${scheduleId}/delete-round`, method: 'DELETE', data: { roundId }, }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'schedule', id: arg.scheduleId }\r\n ],\r\n }),\r\n removeTeamMatch: build.mutation({\r\n query: ({teamMatchId}) => ({ url: `/v1/leagues/teammatches/${teamMatchId}`, method: 'DELETE' }),\r\n invalidatesTags: (result, error, arg) => [\r\n { type: 'player-matches', id: arg.teamMatchId },\r\n { type: 'team-match-lineups', id: arg.teamMatchId },\r\n ],\r\n }),\r\n }),\r\n});\r\n\r\nexport const {\r\n useAddScheduleRoundMutation,\r\n useAddTeamMatchMutation,\r\n useGetLeagueSummaryQuery,\r\n useGetConferenceQuery,\r\n useGetConferenceSessionsQuery,\r\n useGetLeagueFeesQuery,\r\n useGetConferenceSummaryQuery,\r\n useGetSessionQuery,\r\n useGetSessionSummaryQuery,\r\n useGetSessionTeamsQuery,\r\n useGetSessionScheduleQuery,\r\n useLazyGetSessionScheduleByDateQuery,\r\n useGetSessionStandingsQuery,\r\n useGetTeamQuery,\r\n useGetTeamSummaryQuery,\r\n useGetRegistrationFeesQuery,\r\n useGetPlayersQuery,\r\n useGetScheduleQuery,\r\n useGetMatchSummaryQuery,\r\n useGetPlayerMatchesQuery,\r\n useGetTeamScheduleQuery,\r\n useLazyGetTeamScheduleByDateQuery,\r\n useGetLatestTeamMatchUpdateQuery,\r\n useGetMemberTeamsQuery,\r\n useGetPlayersAvailableTeamsQuery,\r\n useGetLeagueConferencesQuery,\r\n useGetSessionNamesQuery,\r\n useGetUserLeaguesQuery,\r\n useGetTeamMatchRostersQuery,\r\n useGetTeamMatchLineupsQuery,\r\n useGetBillingCountriesQuery,\r\n useCreateConferenceMutation,\r\n useAddOrganizerMutation,\r\n useCreateSessionMutation,\r\n useInitiateRegistrationMutation,\r\n useRequestToCaptainMutation,\r\n useCreateEmptyScheduleMutation,\r\n useCreateScheduleMutation,\r\n useCreateTeamSeedsMutation,\r\n usePublishScheduleMutation,\r\n useCreateTeamMutation,\r\n useAddCaptainMutation,\r\n useMessageTeamPlayersMutation,\r\n useValidateRegistrationPinMutation,\r\n usePostPlayerMatchResultMutation,\r\n useRequestToJoinSessionMutation,\r\n useCopyTeamsToSessionMutation,\r\n useValidateUsapMembershipMutation,\r\n useUpdateConferenceMutation,\r\n useUpdateSessionMutation,\r\n useUpdateTeamMutation,\r\n useUpdatePlayerRegistrationMutation,\r\n useUpdateTeamMatchSummaryMutation,\r\n useUpdateTeamMatchDateLocationMutation,\r\n useUpdateTeamMatchPositionsMutation,\r\n useUpdatePlayerMatchResultMutation,\r\n useUpdateUnpublishScheduleMutation,\r\n useMovePlayerToTeamMutation,\r\n useCopyPlayerToTeamMutation,\r\n useTogglePlayerRosterStatusMutation,\r\n useUpdatePlayerAvailabilityStatusMutation,\r\n useUpdateTeamMatchLineupsMutation,\r\n useUpdatePlayerReminderStatusMutation,\r\n useUpdateTeamMatchLineupStatusMutation,\r\n useRemoveOrganizerMutation,\r\n useRemoveTeamMutation,\r\n useRemoveCaptainMutation,\r\n useRemoveScheduleMutation,\r\n useRemoveSessionMutation,\r\n useClearTeamMatchMutation,\r\n useRemoveScheduleRoundMutation,\r\n useRemoveTeamMatchMutation\r\n} = leaguesApi;\r\n","/* eslint-disable */\r\nimport axios from 'axios';\r\nimport config from '../../config';\r\n\r\nconst MISSING_TEAM_TIME_SLOT_ERROR_CODE = 30057;\r\n\r\nexport const axiosBaseQuery =\r\n ({ baseUrl }) =>\r\n async ({ url, method, data }) => {\r\n const requestUrl = `${baseUrl}${url}`;\r\n const isUsingProxy = config.useProxy;\r\n const requestBaseUrl = isUsingProxy ? `/leagues-api${requestUrl}` : `${config.leaguesApiHost}${requestUrl}`;\r\n\r\n try {\r\n const result = await axios({ url: requestBaseUrl, method, data, withCredentials: !isUsingProxy });\r\n return { data: result.data };\r\n } catch (axiosError) {\r\n const err = axiosError;\r\n const errorMessage =\r\n err?.response?.data?.MessageStatusCode === MISSING_TEAM_TIME_SLOT_ERROR_CODE\r\n ? err?.response?.data?.Message\r\n : err.response?.data?.DisplayMessage;\r\n\r\n return {\r\n error: { status: err.response?.status, message: errorMessage || null },\r\n };\r\n }\r\n };\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { getUser } from '../../api/leaguesApi';\r\nimport config from '../../config';\r\n\r\nexport const getAuthUser = createAsyncThunk('auth/getAuthUser', async () => {\r\n try {\r\n const res = await getUser();\r\n return res.data;\r\n } catch (err) {\r\n window.open(`${config.appHost}/login?redirect=${window.location.href}`, '_self');\r\n const customError = {\r\n name: 'Axios Auth Error',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { getActiveLeagueTeams, getPreferences } from '../../api/leaguesApi';\r\n\r\nexport const getActiveTeams = createAsyncThunk('user/getActiveTeams', async () => {\r\n try {\r\n const response = await getActiveLeagueTeams();\r\n return response.data;\r\n } catch (err) {\r\n const customError = {\r\n name: 'Axios Types Error',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n\r\nexport const getUserPreferences = createAsyncThunk('user/getUserPreferences', async () => {\r\n try {\r\n const response = await getPreferences();\r\n return response.data;\r\n } catch (err) {\r\n const customError = {\r\n name: 'Axios Types Error',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n","import * as queryString from 'query-string';\r\nimport urljoin from 'url-join';\r\nimport srcset from 'srcset';\r\nimport config from '../config';\r\n\r\n/* eslint no-param-reassign: [\"error\", { \"props\": false }] */\r\n\r\nexport function urlIsAbsolute(url) {\r\n const regex = /^https?:\\/\\//;\r\n const startsWithHttpOrHttps = regex.test(url);\r\n return startsWithHttpOrHttps;\r\n}\r\n\r\nexport function formatUrlForCdn(cdnUrl, urlPath) {\r\n // urls that start with /v*/ need to have that stripped off, other urls need to be prefixed with the public path\r\n if (!urlIsAbsolute(urlPath)) {\r\n const regex = /^\\/v(0?[1-9]|[1-9][0-9])\\//;\r\n const isApiSource = regex.test(urlPath);\r\n\r\n if (isApiSource) {\r\n return urljoin(cdnUrl || '', urlPath);\r\n }\r\n\r\n return urljoin(config.publicPath, urlPath);\r\n }\r\n\r\n return urlPath;\r\n}\r\n\r\nexport function updateSrcSetForCdn(srcSet, cdnUrl) {\r\n const parsedSrcSet = srcset.parse(srcSet);\r\n parsedSrcSet.forEach((src) => {\r\n src.url = formatUrlForCdn(cdnUrl, src.url);\r\n });\r\n return srcset.stringify(parsedSrcSet);\r\n}\r\nexport function parseUrlParam(url, param) {\r\n const parsed = queryString.parse(url);\r\n if (param in parsed) {\r\n return parsed[param];\r\n }\r\n return '';\r\n}\r\n","import React from 'react';\r\nimport config from '../../config';\r\nimport { formatUrlForCdn, updateSrcSetForCdn } from '../../utils/url';\r\n\r\nconst Img = ({ srcSet, defaultImage, src, alt, useRawSrcSet, onImgLoad, ...rest }) => {\r\n const { cdnUrl } = config;\r\n const useCdn = cdnUrl;\r\n let cdnSrcSet;\r\n let cdnSrc;\r\n if (useCdn) {\r\n if (srcSet) {\r\n cdnSrcSet = useRawSrcSet ? srcSet : updateSrcSetForCdn(srcSet, cdnUrl);\r\n }\r\n cdnSrc = formatUrlForCdn(cdnUrl, src);\r\n }\r\n\r\n const handleSetImg = (img) => {\r\n if (img && onImgLoad) {\r\n onImgLoad(img);\r\n }\r\n };\r\n\r\n return (\r\n handleSetImg(el)}\r\n onError={(e) => {\r\n if (defaultImage) {\r\n e.target.src = `${defaultImage}`;\r\n e.target.srcset = `${defaultImage}`;\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default Img;\r\n","import config from '../config';\r\n\r\nconst { marketingAppHost, appHost } = config;\r\n\r\nexport const ageSliderDictionary = {\r\n 1: 8,\r\n 2: 9,\r\n 3: 10,\r\n 4: 11,\r\n 5: 12,\r\n 6: 13,\r\n 7: 14,\r\n 8: 15,\r\n 9: 16,\r\n 10: 17,\r\n 11: 18,\r\n 12: 21,\r\n 13: 25,\r\n 14: 30,\r\n 15: 35,\r\n 16: 40,\r\n 17: 45,\r\n 18: 50,\r\n 19: 55,\r\n 20: 60,\r\n 21: 65,\r\n 22: 70,\r\n};\r\n\r\nexport const utrpSliderDictionary = {\r\n 1: 'P1',\r\n 2: 'P2',\r\n 3: 'P3',\r\n 4: 'P4',\r\n};\r\n\r\nexport function getAgeKeyByValue(value) {\r\n // handle values outside the range\r\n if (value < 8) {\r\n return 1;\r\n }\r\n if (value > 70) {\r\n return 22;\r\n }\r\n // handle values within the range, fallback to 1 if there is no match\r\n return Object.keys(ageSliderDictionary).find((key) => ageSliderDictionary[key] === value) || 1;\r\n}\r\n\r\nexport const UTPRRanges = {\r\n P1: 1,\r\n P2: 2,\r\n P3: 3,\r\n P4: 4\r\n};\r\n\r\nexport const DefaultSliderValues = {\r\n utrRange: [1, 16],\r\n ageRange: [1, 22],\r\n utrpRange: [1, 10]\r\n};\r\n\r\nexport const SortType = {\r\n ASC: 'asc',\r\n DESC: 'desc',\r\n};\r\n\r\nexport const ResponseStatuses = {\r\n OK: 200,\r\n CREATED: 201,\r\n NO_CONTENT: 204,\r\n NOT_FOUND: 404,\r\n};\r\n\r\nexport const LeagueTabs = {\r\n CAPTAINS: 'captains',\r\n CONFERENCES: 'conferences',\r\n DETAILS: 'details',\r\n EDIT_CAPTAINS: 'edit captains',\r\n EDIT_SETTINGS: 'edit settings',\r\n ORGANIZERS: 'organizers',\r\n OVERVIEW: 'overview',\r\n PLAYERS: 'players',\r\n ROSTER: 'roster',\r\n SCHEDULE: 'schedule',\r\n SESSIONS: 'sessions',\r\n TEAMS: 'teams',\r\n DRAW: 'draw',\r\n LINES: 'lines',\r\n LOCATION: 'location',\r\n AWAY_TEAM: 'away team',\r\n HOME_TEAM: 'home team'\r\n};\r\n\r\nexport const ManageSessionTabs = {\r\n TEAMS: 'teams',\r\n SCHEDULE: 'schedule',\r\n DRAW: 'draw',\r\n PLAYERS: 'players',\r\n DETAILS: 'details'\r\n};\r\n\r\nexport const SessionTabs = {\r\n OVERVIEW: 'overview',\r\n SCHEDULE: 'schedule',\r\n DRAW: 'draw',\r\n PLAYERS: 'players',\r\n STANDINGS: 'team standings',\r\n};\r\n\r\nexport const BreadcrumbContexts = {\r\n LEAGUE: 'league',\r\n CONFERENCE: 'conference',\r\n SESSION: 'session',\r\n TEAM: 'team',\r\n};\r\n\r\nexport const LeagueRoles = {\r\n LEAGUE_ADMIN: 'League Admin',\r\n CONFERENCE_ORGANIZER: 'Conference Organizer',\r\n TEAM_CAPTAIN: 'Team Captain',\r\n};\r\n\r\nexport const DistanceSliderMarks = [\r\n { value: 10, label: '10mi' },\r\n { value: 25, label: '25mi' },\r\n { value: 50, label: '50mi' },\r\n { value: 75, label: '75mi' },\r\n { value: 100, label: '100mi' },\r\n { value: 125, label: '125mi' },\r\n];\r\n\r\nexport const dateFormat = 'MMM Do YYYY';\r\nexport const dateTimeFormat = 'MMM Do YYYY - h:mm A';\r\nexport const defaultGridSpacing = 3;\r\nexport const formPaperStyles = { px: 4, py: 2, my: 5 };\r\nexport const homeTeamIndicator = '(H)';\r\n\r\nexport const ScorePositionKeys = {\r\n POSITION_ONE_SCORE: 'position1Score',\r\n POSITION_ONE_TB_SCORE: 'position1Tiebreaker',\r\n POSITION_TWO_SCORE: 'position2Score',\r\n POSITION_TWO_TB_SCORE: 'position2Tiebreaker'\r\n};\r\n\r\nexport const managingTennisHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'matchesPlayed', label: 'Matches' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const tennisHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'record', label: 'Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const teamProfileTennisHeadCells = [\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const managingPickleballHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'utrp-numeric-single', label: 'UTR-P' },\r\n { id: 'utrp-numeric-double', label: 'UTR-P' },\r\n { id: 'matchesPlayed', label: 'Matches' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const pickleballHeadCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'utrp-numeric-single', label: 'UTR-P' },\r\n { id: 'utrp-numeric-double', label: 'UTR-P' },\r\n { id: 'record', label: 'Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const teamProfilePickleballHeadCells = [\r\n { id: 'utrp-numeric-single', label: 'UTR-P' },\r\n { id: 'utrp-numeric-double', label: 'UTR-P' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n { id: 'actions' },\r\n];\r\n\r\nexport const tennisTeamMatchHeadCells = [\r\n { id: 'name', label: 'Rostered Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const pickleballTeamMatchHeadCells = [\r\n { id: 'name', label: 'Rostered Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'utrp', label: 'UTRP' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const tennisSubstituteTeamMatchHeadCells = [\r\n { id: 'name', label: 'Substitute Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'singlesUtr', label: 'UTR-T (S)' },\r\n { id: 'doublesUtr', label: 'UTR-T (D)' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const pickleballSubstituteTeamMatchHeadCells = [\r\n { id: 'name', label: 'Substitute Players' },\r\n { id: 'playerAvailabilityStatusTypeId' },\r\n { id: 'utrp', label: 'UTRP' },\r\n { id: 'singlesRecord', label: 'Singles Record' },\r\n { id: 'doublesRecord', label: 'Doubles Record' },\r\n];\r\n\r\nexport const sessionStandingsHeadCells = [\r\n { id: 'rank', label: 'Rank' },\r\n { id: 'teamName', label: 'Name' },\r\n { id: 'teamPowerIndexSingles', label: 'TPI S' },\r\n { id: 'teamPowerIndexDoubles', label: 'TPI D' },\r\n { id: 'teamMatchWins', label: 'Wins' },\r\n { id: 'teamMatchLosses', label: 'Losses' },\r\n { id: 'playerMatchPoints', label: 'Points' },\r\n];\r\n\r\nexport const GridSizes = {\r\n ONE: 1,\r\n TWO: 2,\r\n THREE: 3,\r\n FOUR: 4,\r\n FIVE: 5,\r\n SIX: 6,\r\n SEVEN: 7,\r\n EIGHT: 8,\r\n NINE: 9,\r\n TEN: 10,\r\n ELEVEN: 11,\r\n TWELVE: 12\r\n};\r\n\r\nexport const TypographySizes = {\r\n LARGE: 'large',\r\n LARGE_BOLD: 'large-bold',\r\n LARGE_BOOK: 'large-book',\r\n LARGE_LIGHT: 'large-light',\r\n LARGE_MEDIUM: 'large-medium',\r\n MEDIUM_BOOK: 'medium-book',\r\n MEDIUM_MEDIUM: 'medium-medium',\r\n MEDIUM_SEMIBOLD: 'medium-semibold',\r\n SMALL_BOOK: 'small-book',\r\n SMALL_MEDIUM: 'small-medium',\r\n SMALL_MEDIUM_CAP: 'small-medium-cap',\r\n X_SMALL_BOOK: 'x-small-book',\r\n X_SMALL_BOOK_CAP: 'x-small-book-cap',\r\n X_SMALL_MEDIUM: 'x-small-medium',\r\n X_SMALL_MEDIUM_CAP: 'x-small-medium-cap',\r\n XX_SMALL_BOOK: 'xx-small-book',\r\n XX_SMALL_MEDIUM_CAP: 'xx-small-medium-cap',\r\n};\r\n\r\nexport const SharedUICategories = {\r\n PRIMARY: 'primary',\r\n SECONDARY: 'secondary',\r\n DISPLAY: 'display',\r\n PRIMARY_EXPANDED: 'primary-expanded',\r\n SECONDARY_FLIPPED: 'secondary-flipped',\r\n LINK: 'link'\r\n};\r\n\r\nexport const LineupStatusType = {\r\n DRAFT: 1,\r\n LOCKED: 2,\r\n PUBLISHED: 3\r\n};\r\n\r\nexport const LineupButtonLabels = {\r\n PUBLISH: 'Publish',\r\n UNPUBLISH: 'Unpublish',\r\n LOCK: 'Lock',\r\n UNLOCK: 'Unlock'\r\n};\r\n\r\nexport const LineupButtonTooltipText = {\r\n PUBLISH_TOOLTIP: 'Publishing will make your lineup visible to players outside your team',\r\n UNPUBLISH_TOOLTIP: 'Unpublishing will revert the lineup to \"Locked,\" so only your team can see it',\r\n LOCK_TOOLTIP: 'Locking will allow your team members to see the lineup',\r\n UNLOCK_TOOLTIP: 'Unlocking will limit lineup visibility to team captains only'\r\n};\r\n\r\nexport const FooterExploreItems = [\r\n { href: `${appHost}/cities`, label: 'Cities' },\r\n { href: `${appHost}/states`, label: 'States' },\r\n { href: `${appHost}/countries`, label: 'Countries' },\r\n];\r\n\r\nexport const FooterProviderItems = [\r\n { href: `${marketingAppHost}/pages/clubs`, label: 'Clubs' },\r\n { href: `${marketingAppHost}/pages/academies`, label: 'Academies' },\r\n { href: `${marketingAppHost}/pages/high-school`, label: 'High Schools' },\r\n { href: `${marketingAppHost}/pages/college`, label: 'Colleges' },\r\n { href: `${marketingAppHost}/pages/get-in-touch`, label: 'Get in Touch' },\r\n];\r\n\r\nexport const FooterMoreItems = [\r\n { href: `${marketingAppHost}/blogs/news`, label: 'News' },\r\n { href: `${marketingAppHost}/blogs/press`, label: 'Press' },\r\n { href: `${marketingAppHost}/collections/all`, label: 'Shop' },\r\n { href: 'https://apply.workable.com/universal-tennis/', label: 'Careers' },\r\n { href: `${marketingAppHost}/pages/about-us`, label: 'About Us' },\r\n { href: `${marketingAppHost}/pages/foundation`, label: 'Foundation' },\r\n { href: 'https://insights.utrsports.net/', label: 'Pro Insights' },\r\n];\r\n\r\nexport const FooterSupportItems = [\r\n { href: 'https://support.universaltennis.com/support/home', label: 'Help Center' },\r\n { href: `${marketingAppHost}/policies/privacy-policy`, label: 'Privacy Policy' },\r\n { href: `${marketingAppHost}/policies/terms-of-service`, label: 'Terms & Conditions' },\r\n { href: `${marketingAppHost}/pages/guidelines`, label: 'Guidelines' },\r\n { href: `${marketingAppHost}/pages/verified`, label: 'Verified Events' },\r\n { href: `${marketingAppHost}/pages/how-utr-works`, label: 'About UTR Rating' },\r\n { href: `${marketingAppHost}/pages/how-utr-p-works`, label: 'About UTR-P Rating' },\r\n];\r\n\r\nexport const FooterSocialMedia = [\r\n { id: 1, label: 'X', href: 'https://x.com/UTR_Sports_' },\r\n { id: 2, label: 'Facebook', href: 'https://www.facebook.com/UTRSports' },\r\n { id: 3, label: 'Instagram', href: 'https://www.instagram.com/utr_sports/' },\r\n { id: 4, label: 'TikTok', href: 'https://www.tiktok.com/@utr_sports' },\r\n { id: 5, label: 'YouTube', href: 'https://www.youtube.com/c/myutr' },\r\n];\r\n\r\nexport const RegistrationStepIds = {\r\n TEAM_SELECTION: 1,\r\n PASSWORD_CONFIRMATION: 2,\r\n EVENT_QUESTIONS: 3,\r\n CONFIRM_DETAILS: 4\r\n};\r\n","import moment from 'moment';\r\nimport { SportTypeIds } from './types';\r\nimport { ageSliderDictionary, utrpSliderDictionary } from './constants';\r\n\r\nconst { TENNIS } = SportTypeIds;\r\n\r\nexport const getAgeKeys = (ages) => {\r\n return ages.map((age) => parseInt(Object.keys(ageSliderDictionary).find((key) => ageSliderDictionary[key] === age)));\r\n};\r\n\r\nexport const ageDisplay = (value) => {\r\n const startRange = value[0];\r\n const endRange = value[1];\r\n if (startRange === 1 && endRange === Object.keys(ageSliderDictionary).length) {\r\n return 'All';\r\n }\r\n if (startRange === 1) {\r\n return `${ageSliderDictionary[endRange]} and Under`;\r\n }\r\n if (endRange === Object.keys(ageSliderDictionary).length) {\r\n return `${ageSliderDictionary[startRange]} and Over`;\r\n }\r\n return `${ageSliderDictionary[startRange]} to ${ageSliderDictionary[endRange]}`;\r\n};\r\n\r\nexport const getAdjustedTimeOfDay = ({ timeOfDay, format = null }) => {\r\n const day = moment();\r\n const offset = moment().utcOffset();\r\n const splitTime = timeOfDay.split(/:/);\r\n\r\n day.hours(parseInt(splitTime[0])).minutes(parseInt(splitTime[1]));\r\n day.add(offset, 'minutes');\r\n\r\n if (format) {\r\n return day.format(format);\r\n }\r\n\r\n const hours = day.get('hour');\r\n const minutes = day.get('minute');\r\n\r\n return `${hours}:${minutes}`;\r\n};\r\n\r\nexport const getPlayerDisplayUtr = (player, isDoubles = false) => {\r\n const {\r\n utrDoubles,\r\n utrDoublesDisplay,\r\n utrDoublesNotVerified,\r\n utrDoublesNotVerifiedDisplay,\r\n utrSingles,\r\n utrSinglesDisplay,\r\n utrSinglesNotVerified,\r\n utrSinglesNotVerifiedDisplay,\r\n utrRange,\r\n } = player || {};\r\n\r\n if (isDoubles) {\r\n if (utrDoubles && utrDoubles !== 0) {\r\n return { isVerified: true, rating: utrDoublesDisplay };\r\n }\r\n if (utrDoublesNotVerified && utrDoublesNotVerified !== 0) {\r\n return { isVerified: false, rating: utrDoublesNotVerifiedDisplay };\r\n }\r\n } else {\r\n if (utrSingles && utrSingles !== 0) {\r\n return { isVerified: true, rating: utrSinglesDisplay };\r\n }\r\n if (utrSinglesNotVerified && utrSinglesNotVerified !== 0) {\r\n return { isVerified: false, rating: utrSinglesNotVerifiedDisplay };\r\n }\r\n }\r\n\r\n if (utrRange) {\r\n const { minUtrDisplay, maxUtrDisplay } = utrRange;\r\n return { isVerified: false, rating: `${minUtrDisplay}-${maxUtrDisplay}` };\r\n }\r\n\r\n return { isVerified: false, rating: '0.00' };\r\n};\r\n\r\nexport const getPlayerDisplayPickleballRating = (player) => {\r\n const { utrRange } = player || {};\r\n const rating = utrRange?.pickleballRatingDisplay || 'UR';\r\n\r\n return { isVerified: false, rating };\r\n};\r\n\r\nexport const getPlayerTableDisplayPickleballRating = (player) => {\r\n const { utrRange } = player || {};\r\n\r\n let rating;\r\n\r\n if (utrRange?.minUtrDisplay && utrRange?.maxUtrDisplay) {\r\n rating = `${utrRange?.minUtrDisplay} - ${utrRange?.maxUtrDisplay}`;\r\n } else if (utrRange?.pickleballRatingDisplay) {\r\n rating = `${utrRange?.pickleballRatingDisplay}`;\r\n } else {\r\n rating = 'UR';\r\n }\r\n\r\n return rating;\r\n};\r\n\r\nexport const getPlayerRating = ({ player, isTennisMatch, isDoubles = false }) => {\r\n if (isTennisMatch) {\r\n return getPlayerDisplayUtr(player, isDoubles);\r\n }\r\n return getPlayerDisplayPickleballRating(player);\r\n};\r\n\r\nexport const getDisplayUTRPRating = (player, isDoubles) => {\r\n const { singlesPkbRatingDisplay, doublesPkbRatingDisplay, utrRange } = player || {};\r\n\r\n if (isDoubles) {\r\n const rating = doublesPkbRatingDisplay?.pkbRating || utrRange?.pickleballRatingDisplay || '-';\r\n const reliability = doublesPkbRatingDisplay?.reliability || (utrRange?.pickleballRatingDisplay && 'Estimated') || '';\r\n const displayVerifiedIcon = doublesPkbRatingDisplay?.reliability === 'Reliable' || doublesPkbRatingDisplay?.reliability === 'Projected';\r\n return { rating, reliability, displayVerifiedIcon };\r\n }\r\n\r\n const rating = singlesPkbRatingDisplay?.pkbRating || utrRange?.pickleballRatingDisplay || '-';\r\n const reliability = singlesPkbRatingDisplay?.reliability || (utrRange?.pickleballRatingDisplay && 'Estimated') || '';\r\n const displayVerifiedIcon = singlesPkbRatingDisplay?.reliability === 'Reliable' || singlesPkbRatingDisplay?.reliability === 'Projected';\r\n return { rating, reliability, displayVerifiedIcon };\r\n};\r\n\r\nexport const getFormattedDate = (startDateUtc, endDateUtc, format) => {\r\n const startDate = moment.utc(startDateUtc).local(true);\r\n const endDate = moment.utc(endDateUtc).local(true);\r\n const formattedStartDate = startDate.format(format);\r\n const formattedEndDate = endDate.format(format);\r\n const isOnSameDay = moment(startDate).isSame(endDate, 'day');\r\n\r\n return isOnSameDay ? formattedStartDate : `${formattedStartDate} - ${formattedEndDate}`;\r\n};\r\n\r\nexport const getAdjustedDate = ({ dateUtc, format = null, adjustForDSL = false }) => {\r\n const isTodayDLS = moment().isDST();\r\n const isDateDLS = moment(dateUtc).isDST();\r\n\r\n const shouldAddHour = (isTodayDLS && !isDateDLS && !adjustForDSL) || (!isTodayDLS && isDateDLS && adjustForDSL);\r\n const shouldSubtractHour = (!isTodayDLS && isDateDLS && !adjustForDSL) || (isTodayDLS && !isDateDLS && adjustForDSL);\r\n\r\n let date;\r\n\r\n if (shouldAddHour) {\r\n date = moment.utc(dateUtc).local().add(1, 'hour');\r\n } else if (shouldSubtractHour) {\r\n date = moment.utc(dateUtc).local().subtract(1, 'hour');\r\n } else {\r\n date = moment.utc(dateUtc).local();\r\n }\r\n\r\n if (format) {\r\n return date.format(format);\r\n }\r\n\r\n return date;\r\n};\r\n\r\nexport const getFormattedUtrRange = (minUtr, maxUtr) => {\r\n const isUtrMinInteger = Number.isInteger(minUtr);\r\n const isUtrMaxInteger = Number.isInteger(maxUtr);\r\n const minRange = isUtrMinInteger ? minUtr.toFixed(1) : minUtr;\r\n const maxRange = isUtrMaxInteger ? maxUtr.toFixed(1) : maxUtr;\r\n\r\n return `${minRange} - ${maxRange}`;\r\n};\r\n\r\nexport const utrpSliderDisplay = (value) => {\r\n const startRange = value[0];\r\n const endRange = value[1];\r\n if (startRange && endRange) {\r\n return `${utrpSliderDictionary[startRange]} to ${utrpSliderDictionary[endRange]}`;\r\n }\r\n return '';\r\n};\r\n\r\nexport const getConferenceTableHeadCells = (sportsTypeId) => {\r\n const rangeLabel = sportsTypeId === SportTypeIds.TENNIS ? 'UTR' : 'UTRP';\r\n return [\r\n { id: 'name', label: 'Conference Name' },\r\n { id: 'age', label: 'Age' },\r\n { id: 'gender', label: 'Gender' },\r\n { id: 'range', label: rangeLabel },\r\n { id: 'empty' },\r\n ];\r\n};\r\n\r\nexport const getFormattedConferenceRange = ({ conferenceRatings, sportTypeId, showRatingPrefix = false }) => {\r\n const { ratingMin, ratingMax } = conferenceRatings || {};\r\n\r\n if (sportTypeId && ratingMin && ratingMax) {\r\n const prefix = sportTypeId === TENNIS ? 'UTR' : 'UTRP';\r\n const range = getFormattedUtrRange(ratingMin, ratingMax);\r\n return showRatingPrefix ? `${prefix} ${range}` : range;\r\n }\r\n\r\n return '';\r\n};\r\n","import config from '../config';\r\nimport { ageDisplay, getAgeKeys, getFormattedConferenceRange } from './display';\r\nimport { DefaultSliderValues, SortType } from './constants';\r\nimport { genderTypes, PlayerAvailabilityStatusTypes, LeagueTypes, LeagueTierTypes, SportTypeIds, SliderTypes } from './types';\r\n\r\nconst { PICKLEBALL, TENNIS } = SportTypeIds;\r\nconst { UT_ADULT_TEAM_PICKLEBALL, UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_TENNIS } = LeagueTypes;\r\n\r\nexport const messageUser = (memberId, displayName) => {\r\n window.open(`${config.appHost}/inbox?rid=${memberId}&rname=${displayName}`, '_blank').focus();\r\n};\r\n\r\nexport const formatImageSizesByType = ({ baseUrl, imageSrc, imageType }) => {\r\n return `${baseUrl}${imageSrc}?size=1X&type=${imageType} 1x,\r\n ${baseUrl}${imageSrc}?size=2X&type=${imageType} 2x,\r\n ${baseUrl}${imageSrc}?size=3X&type=${imageType} 3x`;\r\n};\r\n\r\nexport const formatConferencesForTable = (conferences, sportTypeId) => {\r\n return conferences.map((conference) => {\r\n const { id, name, genderTypeId, minAge, maxAge, conferenceRatings } = conference;\r\n const genderType = genderTypes.find((gender) => gender.id === genderTypeId);\r\n const ageKeys = getAgeKeys([minAge, maxAge]);\r\n const age = ageDisplay(ageKeys);\r\n\r\n return {\r\n id,\r\n name,\r\n age,\r\n gender: genderType?.description,\r\n range: getFormattedConferenceRange({ conferenceRatings, sportTypeId })\r\n };\r\n });\r\n};\r\n\r\nexport const getAlternateIds = (alternates) => {\r\n return alternates?.filter((alternate) => alternate?.teamMemberId).map((alternate) => alternate.teamMemberId);\r\n};\r\n\r\nexport const getSinglesUtr = (utrRating) => {\r\n if (utrRating && typeof utrRating === 'string' && utrRating?.includes('-')) {\r\n const array = utrRating.split('-');\r\n const numArray = array?.map(Number);\r\n const numAverage = numArray?.reduce((accumulator, currentValue) => (accumulator + currentValue) / numArray.length);\r\n return numAverage;\r\n }\r\n return parseFloat(utrRating);\r\n};\r\n\r\nexport const getPowerIndex = (powerRating, isEstimated) => {\r\n let rating;\r\n if (isEstimated && powerRating) {\r\n rating = `${powerRating} Est`;\r\n } else if (powerRating) {\r\n rating = `${powerRating}`;\r\n } else {\r\n rating = '—';\r\n }\r\n return rating;\r\n};\r\n\r\nexport const getPlayerAvailabilityStatus = (status) => {\r\n const { NOT_SET } = PlayerAvailabilityStatusTypes;\r\n let availabilityStatus = status;\r\n if (!status) {\r\n availabilityStatus = NOT_SET;\r\n }\r\n return availabilityStatus;\r\n};\r\n\r\nexport const sortPlayersByAvailability = (players) => [...players].sort(function (a, b) {\r\n return getPlayerAvailabilityStatus(a?.playerAvailabilityStatusTypeId) - getPlayerAvailabilityStatus(b?.playerAvailabilityStatusTypeId) ||\r\n getSinglesUtr(b?.singlesUtr) - getSinglesUtr(a?.singlesUtr) ||\r\n b?.utrSingles - a?.utrSingles;\r\n});\r\n\r\nexport const validateLineups = (lineupData) => {\r\n let error = null;\r\n const { lineups, position1TeamAlternatePlayers, position2TeamAlternatePlayers } = lineupData;\r\n\r\n lineups.forEach((lineup) => {\r\n const { position1, position2 } = lineup || {};\r\n const { player1TeamMemberId: position1Player1Id, player2TeamMemberId: position1Player2Id } = position1 || {};\r\n const { player1TeamMemberId: position2Player1Id, player2TeamMemberId: position2Player2Id } = position2 || {};\r\n\r\n const playerIds = [position1Player1Id, position1Player2Id, position2Player1Id, position2Player2Id];\r\n const filteredIds = playerIds.filter((id) => id);\r\n const hasDuplicatePlayers = new Set(filteredIds).size !== filteredIds.length;\r\n\r\n if (hasDuplicatePlayers) {\r\n error = `The same player appears twice in ${lineup?.isDouble ? 'Doubles' : 'Singles'} Line Match ${lineup?.lineupPosition}`;\r\n }\r\n });\r\n\r\n const hasDuplicatePosition1Alternates = new Set(position1TeamAlternatePlayers?.teamMemberIds).size !== position1TeamAlternatePlayers?.teamMemberIds?.length;\r\n const hasDuplicatePosition2Alternates = new Set(position2TeamAlternatePlayers?.teamMemberIds).size !== position2TeamAlternatePlayers?.teamMemberIds?.length;\r\n\r\n if (hasDuplicatePosition1Alternates || hasDuplicatePosition2Alternates) {\r\n error = 'A player can only appear once as an alternate';\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const getPlayerAvatarImage = (profileImage) => {\r\n const { cdnUrl } = config;\r\n return `${cdnUrl}/v1/player/${profileImage}`;\r\n};\r\n\r\nexport const getPlayerProfileUrl = (playerId) => {\r\n return `${config.appHost}/profiles/${playerId}`;\r\n};\r\n\r\nexport const mapMembersForPlayerSearch = (members) => {\r\n return members.map((member) => {\r\n const { firstName, lastName, memberId, location, id } = member;\r\n return {\r\n id,\r\n displayName: `${firstName} ${lastName}`,\r\n location: {\r\n display: location?.placeName || location?.formattedAddress,\r\n },\r\n memberId,\r\n playerProfileImages: [],\r\n };\r\n });\r\n};\r\n\r\nconst descendingComparator = (a, b, orderBy) => {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nexport const getComparator = (order, orderBy) => {\r\n return order === SortType.DESC ? (a, b) => descendingComparator(a, b, orderBy) : (a, b) => -descendingComparator(a, b, orderBy);\r\n};\r\n\r\nexport const getNewRoundNumberOptions = (rounds) => {\r\n const options = [];\r\n options.push({ description: 'Before Round 1', id: 1 });\r\n for (let i = 0; i < rounds.length; i += 1) {\r\n options.push({ description: `After Round ${i + 1}`, id: i + 2 });\r\n }\r\n return options;\r\n};\r\n\r\nexport const getLeagueTypeIdForTier = (leagueTierTypes, sportTypeId) => {\r\n const { ADULT, JUNIOR } = LeagueTierTypes;\r\n\r\n if (leagueTierTypes?.length > 1 || !leagueTierTypes?.length) {\r\n if (sportTypeId === PICKLEBALL) {\r\n return [UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL];\r\n }\r\n if (sportTypeId === TENNIS) {\r\n return [UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS];\r\n }\r\n } else {\r\n if (leagueTierTypes[0] === ADULT && sportTypeId === TENNIS) {\r\n return [UT_ADULT_TEAM_TENNIS];\r\n }\r\n if (leagueTierTypes[0] === JUNIOR && sportTypeId === TENNIS) {\r\n return [UT_JUNIOR_TEAM_TENNIS];\r\n }\r\n if (leagueTierTypes[0] === ADULT && sportTypeId === PICKLEBALL) {\r\n return [UT_ADULT_TEAM_PICKLEBALL];\r\n }\r\n if (leagueTierTypes[0] === JUNIOR && sportTypeId === PICKLEBALL) {\r\n return [UT_JUNIOR_TEAM_PICKLEBALL];\r\n }\r\n }\r\n\r\n return [];\r\n};\r\n\r\nexport const getRangeForSlider = (sliderType) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n const UTPRRanges = {\r\n P1: 1,\r\n P2: 2,\r\n P3: 3,\r\n P4: 4\r\n };\r\n\r\n const { ageRange, utrRange } = DefaultSliderValues;\r\n switch (sliderType) {\r\n case AGE:\r\n return ageRange;\r\n case UTR:\r\n return utrRange;\r\n case UTRP:\r\n // slider value will be updated with DefaultSliderValues.utrpRange when search endpoint is updated with new conferenceRatings response\r\n return [UTPRRanges.P1, UTPRRanges.P4];\r\n default:\r\n return [];\r\n }\r\n};\r\n\r\nexport const getSportTypeForLeagueId = (id) => {\r\n const isTennisLeague = id === UT_ADULT_TEAM_TENNIS || id === UT_JUNIOR_TEAM_TENNIS;\r\n const isPickleballLeague = id === UT_JUNIOR_TEAM_PICKLEBALL || id === UT_ADULT_TEAM_PICKLEBALL;\r\n\r\n if (isTennisLeague) {\r\n return TENNIS;\r\n }\r\n\r\n if (isPickleballLeague) {\r\n return PICKLEBALL;\r\n }\r\n};\r\n","import React from 'react';\r\nimport Img from '../Img';\r\nimport { formatImageSizesByType } from '../../utils/helpers';\r\n\r\nimport styles from './backgroundImage.module.scss';\r\n\r\nconst BackgroundImage = ({ baseUrl, defaultImage, imageType, images, extraCls, children, parentStylesClass, style, useRawSrcSet }) => {\r\n const imageSrc = images.default;\r\n const formattedImageSizes = formatImageSizesByType({ baseUrl, imageSrc, imageType });\r\n let imgSrcUrl;\r\n\r\n if (imageSrc) {\r\n imgSrcUrl = `${baseUrl}${imageSrc}`;\r\n } else {\r\n imgSrcUrl = defaultImage;\r\n }\r\n\r\n const handleUpdateImage = (imageRef) => {\r\n const img = imageRef;\r\n if (img) {\r\n const src = img.currentSrc ? img.currentSrc : img.src;\r\n img.parentNode.style.backgroundImage = `url(\"${src}\")`;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default BackgroundImage;\r\n","/* eslint-disable global-require */\r\n/* eslint-disable no-eval */\r\n/* eslint-disable eqeqeq */\r\nimport Rox from 'rox-browser';\r\nimport { getFlagsContext } from './utils/rollout';\r\n\r\nclass UtrRoxFlag extends Rox.Flag {\r\n isEnabled(user) {\r\n return super.isEnabled(getFlagsContext(user));\r\n }\r\n}\r\n\r\nexport default {\r\n messaging: new UtrRoxFlag(),\r\n personalClub: new UtrRoxFlag(),\r\n createPlayerGroupMainMenu: new UtrRoxFlag(),\r\n ratingsListFlag: new UtrRoxFlag(),\r\n};\r\n","import React from 'react';\r\nimport flagContainer from '../../flagContainer';\r\n\r\nconst withFeatureFlags = (WrappedComponent) => {\r\n return (props) => ;\r\n};\r\n\r\nexport default withFeatureFlags;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n sideMenuOpen: false,\r\n};\r\n\r\nconst uiSlice = createSlice({\r\n name: 'ui',\r\n initialState,\r\n reducers: {\r\n setSideMenu(state, action) {\r\n state.sideMenuOpen = action.payload;\r\n },\r\n toggleSideMenu(state) {\r\n state.sideMenuOpen = !state.sideMenuOpen;\r\n },\r\n },\r\n});\r\n\r\nexport const { setSideMenu, toggleSideMenu } = uiSlice.actions;\r\nexport default uiSlice.reducer;\r\n","import React from 'react';\r\n\r\nconst Description = ({ descriptionItems, noEllipsis }) => {\r\n let description;\r\n const createDescriptionFromArray = (descriptionArray) => {\r\n return descriptionArray.filter(Boolean).join(' \\u2022 ');\r\n };\r\n\r\n if (typeof descriptionItems === 'string' || typeof descriptionItems === 'number') {\r\n description = descriptionItems;\r\n } else if (typeof descriptionItems === 'object') {\r\n description = createDescriptionFromArray(descriptionItems);\r\n }\r\n\r\n return noEllipsis ? (\r\n {description}\r\n ) : (\r\n {description}\r\n );\r\n};\r\n\r\nexport default Description;\r\n","export default __webpack_public_path__ + \"static/media/icon-search.9f01af10.svg\";","export default __webpack_public_path__ + \"static/media/icon-verified-blue.c9b19813.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-player.922c1cc4.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-club.80fda859.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-college.5087be21.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-event.8d53c48f.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-school.faf79fc7.svg\";","/* eslint-disable react/forbid-prop-types */\r\nimport React from 'react';\r\nimport Icon from '@mui/material/Icon';\r\n\r\nimport { utrIconPropTypes, deafultUtrIconPropTypes } from '../../../utils/proptypes';\r\n\r\nconst UtrIcon = (props) => {\r\n const { icon, size, alt, style, clickable, onClick } = props;\r\n if (clickable) {\r\n style.cursor = 'pointer';\r\n }\r\n return (\r\n \r\n {alt}\r\n \r\n );\r\n};\r\n\r\nUtrIcon.propTypes = {\r\n ...utrIconPropTypes\r\n};\r\n\r\nUtrIcon.defaultProps = {\r\n ...deafultUtrIconPropTypes\r\n};\r\n\r\nexport default UtrIcon;\r\n","import { cloneDeep } from 'lodash';\r\n\r\nconst _ = { cloneDeep };\r\n\r\nexport const ratingStatusPopUpData = {\r\n rated: {\r\n title: 'Established Rating',\r\n description:\r\n 'This player has played enough matches for their rating to be reliable. It usually takes 6-10 matches to get a reliable rating, depending on the reliability of your opponent and how close the score was.',\r\n },\r\n unrated: {\r\n title: 'Unrated',\r\n description: 'This player has not played any matches or had a rating in the past year.',\r\n },\r\n inactive: {\r\n title: 'Inactive Rating',\r\n description:\r\n 'This player has not played any matches in the past 12 months. Their rating is the last time they had a rating on UTR.',\r\n },\r\n projected: {\r\n title: 'Projected Rating',\r\n description:\r\n 'This player hasn’t played enough matches in the last 12 months for their rating to be reliable. It usually takes 6-10 matches to get a reliable rating, depending on the reliability of your opponent and how close the score was. As the player plays more matches, the grey reliability bar will fill up around the projected rating. Once it is full, the rating will become reliable and turn from grey to a colored circle.',\r\n },\r\n};\r\n\r\nconst ratedStrings = ['Projected', 'Inactive', 'Rated'];\r\n\r\nexport const getEventDateString = (eventSchedule, showYear) => {\r\n const { eventStartDate, eventEndDate, eventStartMonth, eventEndMonth, eventStartYear, eventEndYear } = eventSchedule;\r\n if (eventStartMonth === eventEndMonth) {\r\n if (eventStartDate === eventEndDate) {\r\n return `${eventStartMonth} ${eventStartDate}${showYear ? `, ${eventStartYear}` : ''}`;\r\n }\r\n return `${eventStartMonth} ${eventStartDate} - ${eventEndDate}${showYear ? `, ${eventStartYear}` : ''}`;\r\n }\r\n return `${eventStartMonth} ${eventStartDate}${showYear ? `, ${eventStartYear}` : ''} - ${eventEndMonth} ${eventEndDate}${\r\n showYear ? `, ${eventEndYear}` : ''\r\n }`;\r\n};\r\n\r\nconst getRatingStatus = (ratingStatus, ratingValue) => {\r\n if (ratingValue && ratingValue > 0 && ratedStrings.includes(ratingStatus)) {\r\n return ratingStatus;\r\n }\r\n /*\r\n If rating is 0 even though the rating status is available make it unrated\r\n and rating status is unrated consider it as unrated and then check for projected status if rating exists\r\n */\r\n if (ratingValue && ratingValue > 0) {\r\n // If unrated and there is a rating condider the rating to be projected\r\n return 'Projected';\r\n }\r\n return 'Unrated';\r\n};\r\n\r\nconst getRatingProgress = (ratingStatus, ratingValue, ratingProgress) => {\r\n if (ratingValue && ratingValue > 0 && ratedStrings.includes(ratingStatus)) {\r\n return ratingProgress;\r\n }\r\n if (ratingValue && ratingValue > 0) {\r\n return 0;\r\n }\r\n return ratingProgress;\r\n};\r\n\r\nexport const getRatingDetails = (rating, userIsPowered, showDecimals) => {\r\n const object = {};\r\n let utrValue;\r\n let verifiedRating = false;\r\n\r\n switch (rating.ratingChoice) {\r\n case 'SinglesUTR':\r\n utrValue = rating.myUtrSingles;\r\n object.status = getRatingStatus(rating.myUtrStatusSingles, rating.myUtrSingles);\r\n object.matchType = 'singles';\r\n object.sortValue = object.status === 'Rated' ? 3 : 2;\r\n object.progress = getRatingProgress(rating.myUtrStatusSingles, rating.myUtrSingles, rating.myUtrProgressSingles);\r\n break;\r\n case 'DoublesUTR':\r\n utrValue = rating.myUtrDoubles;\r\n object.status = getRatingStatus(rating.myUtrStatusDoubles, rating.myUtrDoubles);\r\n object.matchType = 'doubles';\r\n object.sortValue = object.status === 'Rated' ? 3 : 2;\r\n object.progress = getRatingProgress(rating.myUtrStatusDoubles, rating.myUtrDoubles, rating.myUtrProgressDoubles);\r\n break;\r\n case 'VerifiedDoublesUTR':\r\n utrValue = rating.doublesUtr;\r\n object.status = getRatingStatus(rating.ratingStatusDoubles, rating.doublesUtr);\r\n verifiedRating = true;\r\n object.matchType = 'doubles';\r\n object.sortValue = object.status === 'Rated' ? 5 : 4;\r\n object.progress = getRatingProgress(rating.ratingStatusDoubles, rating.doublesUtr, rating.ratingProgressDoubles);\r\n break;\r\n default:\r\n utrValue = rating.singlesUtr;\r\n object.status = getRatingStatus(rating.ratingStatusSingles, rating.singlesUtr);\r\n verifiedRating = true;\r\n object.matchType = 'singles';\r\n object.sortValue = object.status === 'Rated' ? 5 : 4;\r\n object.progress = getRatingProgress(rating.ratingStatusSingles, rating.singlesUtr, rating.ratingProgressSingles);\r\n break;\r\n }\r\n if (utrValue && typeof utrValue === 'string') {\r\n utrValue = parseFloat(utrValue);\r\n }\r\n\r\n // Text to display what kind of a Rating it is\r\n if (object.status === 'Projected') {\r\n object.utrType = 'UTR (P)';\r\n } else {\r\n object.utrType = 'UTR';\r\n }\r\n\r\n // Title text i.e text displayed on Hover\r\n if (object.status === 'Projected') {\r\n object.title = 'Projected';\r\n }\r\n\r\n object.actualValue = utrValue;\r\n // Display UR for all Unrated conditions\r\n if (!utrValue || utrValue === 0 || object.status === 'Unrated') {\r\n object.value = 'UR';\r\n object.sortValue = 1;\r\n } else {\r\n object.value = `${utrValue.toFixed(2)}`;\r\n if (userIsPowered || showDecimals) {\r\n object.value = `${utrValue.toFixed(2)}`;\r\n } else {\r\n object.value = `${Math.round(utrValue)}`;\r\n }\r\n }\r\n\r\n // Get number value of rating\r\n if (object.value !== 'UR') {\r\n object.ratingNumber = `${parseInt(object.value)}`;\r\n } else {\r\n object.ratingNumber = object.value;\r\n }\r\n\r\n // Get Decimal value of rating\r\n const ratingArray = object.value.split('.');\r\n if (ratingArray.length > 1) {\r\n [, object.ratingDecimal] = ratingArray;\r\n } else {\r\n object.ratingDecimal = '';\r\n }\r\n\r\n // Logic to show verified match icon\r\n object.verified = verifiedRating;\r\n\r\n // Info PopUp Data\r\n object.infoTitle = ratingStatusPopUpData[object.status.toLowerCase()].title;\r\n object.infoDescription = ratingStatusPopUpData[object.status.toLowerCase()].description;\r\n\r\n return object;\r\n};\r\n\r\nexport const updateRatingObject = ({ player, ratingType, utrType }) => {\r\n const unDisplayedStatusStatus = ['Inactive', 'Unrated'];\r\n const newRatingObject = player ? _.cloneDeep(player) : {};\r\n\r\n // force singles or doubles return\r\n if (ratingType && utrType) {\r\n if (ratingType === 'singles') {\r\n if (utrType === 'sanctioned') {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n }\r\n } else if (utrType === 'sanctioned') {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n }\r\n } else if (ratingType) {\r\n // only return singles value\r\n if (ratingType === 'singles') {\r\n if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n }\r\n // only return doubles value\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n }\r\n } else if (utrType) {\r\n // only return verified rating\r\n if (utrType === 'sanctioned') {\r\n if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n if (player.singlesUtr && player.singlesUtr > 0 && player.ratingStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for verified singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.ratingStatusSingles = 'Unrated';\r\n newRatingObject.singlesUtr = 0;\r\n }\r\n }\r\n // only return unverified rating\r\n } else if (player.myUtrSingles && player.myUtrSingles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusSingles)) {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n } else if (player.myUtrDoubles && player.myUtrDoubles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n if (player.myUtrSingles && player.myUtrSingles > 0 && player.myUtrStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.myUtrStatusSingles = 'Unrated';\r\n newRatingObject.myUtrSingles = 0;\r\n }\r\n }\r\n\r\n // return the most relevant rating (any)\r\n // if there is no forced display, use player perference\r\n } else if (player.ratingChoice) {\r\n // If there is a reating choice no updation needed\r\n // otherwise show Rated or Projected rating if exists in the priority order of verifiedSingles, verifiedDoubles, myutrSingles and myUtrDoubles\r\n /*\r\n Checking with statuses of 'Inactive' and 'Unrated' since status null condition with a rating should be treated as Projected rating in getRatingDetails Method\r\n */\r\n } else if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else if (player.myUtrSingles && player.myUtrSingles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusSingles)) {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n } else if (player.myUtrDoubles && player.myUtrDoubles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n if (player.myUtrSingles && player.myUtrSingles > 0 && player.myUtrStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.myUtrStatusSingles = 'Unrated';\r\n newRatingObject.myUtrSingles = 0;\r\n }\r\n }\r\n return newRatingObject;\r\n};\r\n","export const gtag = (name, props) => {\r\n if (window?.dataLayer) {\r\n window.dataLayer.push({\r\n event: name,\r\n ...props,\r\n });\r\n }\r\n};\r\n\r\nexport const getClickAttrs = ({ context, location, category }) => {\r\n const attrs = {};\r\n if (category) {\r\n attrs['data-category'] = category;\r\n }\r\n if (context) {\r\n attrs['data-context'] = context;\r\n }\r\n if (location) {\r\n attrs['data-location'] = location;\r\n }\r\n return attrs;\r\n};\r\n","import { LeagueTypes } from '../../utils/types';\r\n\r\nconst { UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS, UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL } = LeagueTypes;\r\n\r\nexport const tennisGlobalNavItems = [\r\n {\r\n label: 'Flex leagues',\r\n filterType: 'flexLeagues',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Adult Team Tennis',\r\n filterType: UT_ADULT_TEAM_TENNIS,\r\n sportType: 'tennis',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'Junior Team Tennis',\r\n filterType: UT_JUNIOR_TEAM_TENNIS,\r\n sportType: 'tennis',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'UTR pro tennis tour',\r\n filterType: 'proTennisTour',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Paid hits',\r\n filterType: 'paidHits',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Paid hitters',\r\n filterType: 'paidHitClubs',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Junior circuits',\r\n filterType: 'juniorCircuits',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'College circuits',\r\n filterType: 'collegeCircuits',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Junior regionals',\r\n filterType: 'juniorRegionals',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Camps',\r\n filterType: 'camps',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Clubs',\r\n filterType: 'clubs',\r\n sportType: 'tennis,pickleball',\r\n },\r\n {\r\n label: 'High schools',\r\n filterType: 'highSchools',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Colleges',\r\n filterType: 'colleges',\r\n sportType: 'tennis',\r\n },\r\n];\r\n\r\nexport const pickleballGlobalNavItems = [\r\n {\r\n label: 'Flex leagues',\r\n filterType: 'flexLeagues',\r\n sportType: 'pickleball',\r\n },\r\n {\r\n label: 'Golden Ticket',\r\n filterType: 'events',\r\n data: { 'Golden Ticket': true },\r\n sportType: 'pickleball',\r\n },\r\n {\r\n label: 'Adult team pickleball',\r\n filterType: UT_ADULT_TEAM_PICKLEBALL,\r\n sportType: 'pickleball',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'Junior team pickleball',\r\n filterType: UT_JUNIOR_TEAM_PICKLEBALL,\r\n sportType: 'pickleball',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'Clubs',\r\n filterType: 'clubs',\r\n sportType: 'tennis,pickleball',\r\n },\r\n];\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable no-undef */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable class-methods-use-this */\r\n/* eslint-disable react/no-string-refs */\r\nimport React, { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport 'url-search-params-polyfill';\r\nimport { CancelToken, isCancel } from 'axios';\r\n\r\nimport { GlobalNavigation } from '@universal-tennis/ui-shared';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport BackgroundImage from '../BackgroundImage';\r\nimport Description from './Description';\r\nimport Img from '../Img';\r\nimport SearchIcon from '../../assets/icons/icon-search.svg';\r\nimport VerifiedIcon from '../../assets/icons/icon-verified-blue.svg';\r\nimport PlayerIcon from '../../assets/icons/icon-avatar-player.svg';\r\nimport ClubIcon from '../../assets/icons/icon-avatar-club.svg';\r\nimport CollegeIcon from '../../assets/icons/icon-avatar-college.svg';\r\nimport EventIcon from '../../assets/icons/icon-avatar-event.svg';\r\nimport SchoolIcon from '../../assets/icons/icon-avatar-school.svg';\r\n\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport config from '../../config';\r\n\r\nimport { getApiAxiosInstance } from '../../utils/network';\r\nimport { getEventDateString, getRatingDetails, updateRatingObject } from './utils';\r\nimport { useStatsig } from '../../hooks/StatsigContextProvider';\r\n\r\nimport styles from './globalSearch.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\nimport { pickleballGlobalNavItems, tennisGlobalNavItems } from './globalSearchDictionary';\r\nimport { LeagueTypes } from '../../utils/types';\r\n\r\nconst { appHost, apiHost } = config;\r\nconst defaultSearchState = {\r\n clubs: { total: 0, hits: [] },\r\n colleges: { total: 0, hits: [] },\r\n events: { total: 0, hits: [] },\r\n highSchools: { total: 0, hits: [] },\r\n players: { total: 0, hits: [] },\r\n};\r\n\r\nconst GlobalSearch = () => {\r\n const { statsig } = useStatsig();\r\n const navigate = useNavigate();\r\n const cancelRef = useRef(null);\r\n const wrapperRef = useRef(null);\r\n const queryRef = useRef(null);\r\n const { preferences } = useSelector((state) => state?.user);\r\n const { UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS, UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL } = LeagueTypes;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [showDropDown, setShowDropDown] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [hasSearched, setHasSearched] = useState(false);\r\n const [searchState, setSearchState] = useState(defaultSearchState);\r\n const maxResultsForSection = 4;\r\n const { clubs, colleges, events, highSchools, players } = searchState;\r\n const isAdultTeamPickleballEnabled = statsig?.featureGates?.adultTeamPickleball;\r\n const isJuniorTeamPickleballEnabled = statsig?.featureGates?.juniorTeamPickleball;\r\n const isGlobalDropdownV2Enabled = statsig?.featureGates?.globalDropdownV2;\r\n\r\n const hasNoResults =\r\n clubs.total === 0 &&\r\n colleges.total === 0 &&\r\n events.total === 0 &&\r\n highSchools.total === 0 &&\r\n players.total === 0 &&\r\n !isLoading &&\r\n hasSearched &&\r\n searchQuery;\r\n\r\n const hasSomeResults =\r\n clubs.total > 0 || colleges.total > 0 || events.total > 0 || highSchools.total > 0 || players.total > 0 || isLoading;\r\n\r\n useEffect(() => {\r\n const getSearchResults = async () => {\r\n const axiosInstance = getApiAxiosInstance();\r\n const params = new URLSearchParams();\r\n\r\n params.append('query', searchQuery);\r\n params.append('top', 10);\r\n params.append('skip', 0);\r\n params.append('schoolClubSearch', true);\r\n\r\n const searchUrl = `${apiHost}/v2/search?${params}`;\r\n const cancel = cancelRef.current;\r\n\r\n if (cancel) {\r\n cancel();\r\n }\r\n\r\n const response = await axiosInstance\r\n .get(searchUrl, {\r\n cancelToken: new CancelToken((c) => {\r\n cancelRef.current = c;\r\n }),\r\n params,\r\n })\r\n .catch((error) => {\r\n if (!isCancel(error)) {\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n if (response?.data) {\r\n const { data } = response;\r\n const stateToSet = {\r\n clubs: data?.clubs,\r\n events: data?.events,\r\n players: data?.players,\r\n highSchools: data?.highSchools,\r\n colleges: data?.highSchools,\r\n };\r\n setSearchState(stateToSet);\r\n setIsLoading(false);\r\n setHasSearched(true);\r\n }\r\n };\r\n if (isLoading && !!searchQuery.length) {\r\n getSearchResults();\r\n }\r\n }, [isLoading, searchQuery]);\r\n\r\n const handleClickOutside = useCallback((event) => {\r\n if (wrapperRef && !wrapperRef.current.contains(event.target)) {\r\n setShowDropDown(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [handleClickOutside]);\r\n\r\n const handleOnFocus = () => {\r\n setShowDropDown(true);\r\n queryRef.current.value = searchQuery;\r\n };\r\n\r\n const handleKeyUp = (event) => {\r\n const query = event.target.value;\r\n\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n };\r\n\r\n const handlePaste = (event) => {\r\n const { target } = event;\r\n setTimeout(() => {\r\n const query = target.value.trim();\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n }, 200);\r\n };\r\n\r\n const handleSeeAllClick = async (event, typeFilter) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n setShowDropDown(false);\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (searchQuery) {\r\n params.append('query', searchQuery);\r\n }\r\n params.append('utrMin', 1);\r\n params.append('utrMax', 16);\r\n params.append('utrType', 'verified');\r\n params.append('utrTeamType', 'singles');\r\n params.append('utrFitPosition', 6);\r\n params.append('type', typeFilter);\r\n\r\n window.location = `${appHost}/search?${params}`;\r\n };\r\n\r\n const handleClearClick = () => {\r\n queryRef.current.value = '';\r\n setSearchState(defaultSearchState);\r\n setSearchQuery('');\r\n setShowDropDown(false);\r\n setHasSearched(false);\r\n\r\n setTimeout(() => {\r\n queryRef.current.focus();\r\n }, 200);\r\n };\r\n\r\n const handlePlayerClick = (player) => {\r\n window.location = `${appHost}/profiles/${player.id}`;\r\n };\r\n\r\n const handleEventClick = (event) => {\r\n window.location = `${appHost}/events/${event.id}`;\r\n };\r\n\r\n const handleClubClick = (club) => {\r\n window.location = `${appHost}/clubs/${club.id}`;\r\n };\r\n\r\n const handleTypeFilterClick = (typeFilter) => {\r\n setShowDropDown(false);\r\n window.location = `${appHost}/search?utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter}`;\r\n };\r\n\r\n const handleTeamLeagueSearchClick = (leagueId) => (event) => {\r\n event.preventDefault();\r\n setShowDropDown(false);\r\n navigate(`/search/league/${leagueId}`);\r\n };\r\n\r\n const handleTypeFilterClickV2 = (typeFilter) => {\r\n setShowDropDown(false);\r\n if (typeFilter.label === 'Golden Ticket') {\r\n window.location = `${appHost}/search?sportTypes=${typeFilter.sportType}&tours=${typeFilter.label}&utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter.filterType}`;\r\n } else {\r\n window.location = `${appHost}/search?sportTypes=${typeFilter.sportType}&utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter.filterType}`;\r\n }\r\n };\r\n\r\n const handleTeamLeagueSearchClickV2 = (leagueId) => {\r\n setShowDropDown(false);\r\n navigate(`/search/league/${leagueId.filterType}`);\r\n };\r\n\r\n const renderPlayer = (player, index) => {\r\n const { displayName, descriptionShort, gender, location, playerProfileImages } = player;\r\n const userIsPowered = false;\r\n const rating = getRatingDetails(updateRatingObject({ player }), userIsPowered);\r\n let description = '';\r\n\r\n if (descriptionShort) {\r\n description = [descriptionShort];\r\n } else {\r\n description = location && location.display ? [location.display] : [];\r\n }\r\n const descriptionItems = [...(gender ? [gender.charAt(0)] : []), ...description];\r\n\r\n return (\r\n index < maxResultsForSection && (\r\n handlePlayerClick(player)}\r\n key={`p${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Player Clicked - playerId: ${player.id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n
\r\n {`${displayName} `}\r\n {rating.verified ? : ''}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderSchool = (schoolClub, index) => {\r\n const { id, name, location, profilePhotoUrl, isCollege } = schoolClub;\r\n const { displayName, shortName } = schoolClub.school;\r\n const photoUrl = profilePhotoUrl ? `/v1/club/${profilePhotoUrl}?variant=icon` : null;\r\n const descriptionItems = [...(location && location.display ? [location.display] : [])];\r\n const schoolName = name || displayName || shortName;\r\n return (\r\n index < maxResultsForSection && (\r\n \r\n
\r\n
\r\n {photoUrl ? (\r\n {\r\n e.target.src = '/img/v2/icons/icon-utr-logo.svg';\r\n e.target.srcset = '/img/v2/icons/icon-utr-logo.svg';\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

{schoolName}

\r\n

{schoolName}

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderClub = (club, index) => {\r\n const { id, name, location, memberCount } = club;\r\n const descriptionItems = [\r\n ...(location && location.display ? [location && location.display] : []),\r\n ...(memberCount && memberCount >= 10 ? [`${memberCount} member${memberCount && memberCount > 1 ? 's' : ''}`] : []),\r\n ];\r\n return index < 4 ? (\r\n handleClubClick(club)}\r\n key={`c${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Club Clicked - id: ${id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n

{name}

\r\n
\r\n \r\n
\r\n
\r\n \r\n ) : null;\r\n };\r\n\r\n const renderEvent = (event, index) => {\r\n const { id, name, eventSchedule, eventState } = event;\r\n const descriptionItems = [];\r\n if (eventSchedule) {\r\n descriptionItems.push(getEventDateString(eventSchedule, eventState && eventState.value === 'completed'));\r\n }\r\n return (\r\n index < maxResultsForSection && (\r\n handleEventClick(event)}\r\n key={`e${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Event Clicked - id: ${id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n

{name}

\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderDropdown = () => {\r\n const hasQuery = !!searchQuery.length;\r\n const showTennisPills = !!preferences?.showTennisContent;\r\n const showPickleballPills = !!preferences?.showPickleballContent;\r\n return (\r\n
\r\n {isGlobalDropdownV2Enabled && !hasQuery && (\r\n \r\n \r\n \r\n )}\r\n
\r\n {!isGlobalDropdownV2Enabled && !hasQuery && (\r\n
\r\n
What are you looking for?
\r\n
\r\n handleTypeFilterClick('players')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Players`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Players\r\n \r\n handleTypeFilterClick('events')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `All Events`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n All Events\r\n \r\n {showTennisPills && (\r\n <>\r\n handleTypeFilterClick('flexLeagues')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Flex Leagues`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Flex Leagues\r\n \r\n \r\n Adult Team Tennis\r\n \r\n \r\n Junior Team Tennis\r\n \r\n handleTypeFilterClick('proTennisTour')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `UTR Pro Tennis Tour`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n UTR Pro Tennis Tour\r\n \r\n \r\n )}\r\n handleTypeFilterClick('clubs')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Clubs`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Clubs\r\n \r\n {showTennisPills && (\r\n <>\r\n handleTypeFilterClick('colleges')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Colleges`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Colleges\r\n \r\n handleTypeFilterClick('highSchools')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `High Schools`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n High Schools\r\n \r\n handleTypeFilterClick('paidHits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Paid Hits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Paid Hits\r\n \r\n handleTypeFilterClick(paidHitClubs)}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Paid Hitters`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Paid Hitters\r\n \r\n handleTypeFilterClick('juniorCircuits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Junior Circuits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Junior Circuits\r\n \r\n handleTypeFilterClick('collegeCircuits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `College Circuits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n College Circuits\r\n \r\n handleTypeFilterClick('juniorRegionals')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Junior Regionals`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Junior Regionals\r\n \r\n handleTypeFilterClick('camps')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Camps`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Camps\r\n \r\n \r\n )}\r\n {showPickleballPills && (\r\n <>\r\n handleTypeFilterClick('pickleball')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Pickleball`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Pickleball\r\n \r\n {isAdultTeamPickleballEnabled && (\r\n \r\n Adult Team Pickleball\r\n \r\n )}\r\n {isJuniorTeamPickleballEnabled && (\r\n \r\n Junior Team Pickleball\r\n \r\n )}\r\n \r\n )}\r\n
\r\n
\r\n )};\r\n {hasNoResults &&
No Matches Found
}\r\n {hasSomeResults && (\r\n
\r\n {!!players?.hits.length && (\r\n <>\r\n
\r\n Players\r\n handleSeeAllClick(e, 'players')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all players: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {players.hits.map((player, i) => renderPlayer(player.source, i))}\r\n \r\n )}\r\n\r\n {!!events?.hits.length && (\r\n <>\r\n
\r\n Events\r\n handleSeeAllClick(e, 'events')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all events: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {events.hits.map((event, i) => renderEvent(event.source, i))}\r\n \r\n )}\r\n {!!colleges?.hits.length && (\r\n <>\r\n
\r\n Colleges\r\n handleSeeAllClick(e, 'colleges')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all colleges: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {colleges.hits.map((school, i) => renderSchool(school.source, i))}\r\n \r\n )}\r\n {!!highSchools?.hits.length && (\r\n <>\r\n
\r\n High Schools\r\n handleSeeAllClick(e, 'highSchools')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all high schools: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {highSchools.hits.map((school, i) => renderSchool(school.source, i))}\r\n \r\n )}\r\n {!!clubs?.hits.length && (\r\n <>\r\n
\r\n Clubs\r\n handleSeeAllClick(e, 'clubs')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all clubs: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {clubs.hits.map((club, i) => renderClub(club.source, i))}\r\n \r\n )}\r\n {isLoading && (\r\n
\r\n \r\n Loading...\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {!!searchQuery.length && (\r\n handleClearClick()}\r\n />\r\n )}\r\n
\r\n {showDropDown &&
{renderDropdown()}
}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GlobalSearch;\r\n","export default __webpack_public_path__ + \"static/media/icon-home.0dd65c30.svg\";","export default __webpack_public_path__ + \"static/media/icon-play.53107f02.svg\";","export default __webpack_public_path__ + \"static/media/icon-profile.acbf78e2.svg\";","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Rox from 'rox-browser';\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport Img from '../Img';\r\nimport BackgroundImage from '../BackgroundImage';\r\nimport withFeatureFlags from '../hocs/withFeatureFlags';\r\nimport { toggleSideMenu } from '../../redux/uiSlice';\r\nimport GlobalSearch from '../GlobalSearch';\r\n\r\nimport HomeIcon from '../../assets/icons/icon-home.svg';\r\nimport PlayIcon from '../../assets/icons/icon-play.svg';\r\nimport ProfileIcon from '../../assets/icons/icon-profile.svg';\r\n\r\nimport config from '../../config';\r\nimport styles from './header.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\nimport { headerPropTypes } from '../../utils/proptypes';\r\n\r\nconst Header = (props) => {\r\n const { auth, featureFlags } = props;\r\n const showHeaderItems = !!auth.user;\r\n\r\n const handleLogoClick = () => {\r\n if (process.env.REACT_APP_CONFIG_SOURCE === 'prod') {\r\n window.open(`${config.appHost}`);\r\n } else {\r\n Rox.showOverrides();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n toggleSideMenu,\r\n};\r\n\r\nfunction mapStateToProps({ auth }) {\r\n return { auth };\r\n}\r\n\r\nHeader.propTypes = {\r\n ...headerPropTypes\r\n};\r\n\r\nexport default withFeatureFlags(connect(mapStateToProps, mapDispatchToProps)(Header));\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nconst Input = ({ control, name, hasError, label, isRequired = false, ...rest }) => (\r\n }\r\n />\r\n);\r\n\r\nexport default Input;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nconst LoadingIndicator = ({ size = 60, backgroundColor, ...props }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default LoadingIndicator;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\r\nimport Grid from '@mui/material/Grid';\r\nimport Typography from '@mui/material/Typography';\r\nimport throttle from 'lodash/throttle';\r\n\r\nconst parse = require('autosuggest-highlight/parse');\r\n\r\nconst autocompleteService = { current: null };\r\n\r\nconst LocationAutoComplete = ({ field, error, label, isRequired }) => {\r\n const [inputValue, setInputValue] = useState('');\r\n const [options, setOptions] = useState([]);\r\n\r\n const getPlacePredictions = useMemo(\r\n () =>\r\n throttle((request, callback) => {\r\n autocompleteService.current.getPlacePredictions(request, callback);\r\n }, 200),\r\n []\r\n );\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!autocompleteService.current && window.google) {\r\n autocompleteService.current = new window.google.maps.places.AutocompleteService();\r\n }\r\n if (!autocompleteService.current) {\r\n return undefined;\r\n }\r\n\r\n if (inputValue === '') {\r\n setOptions([]);\r\n return undefined;\r\n }\r\n\r\n getPlacePredictions({ input: inputValue }, (results) => {\r\n if (active) {\r\n let newOptions = [];\r\n\r\n if (results) {\r\n newOptions = [...newOptions, ...results];\r\n }\r\n\r\n setOptions(newOptions);\r\n }\r\n });\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [inputValue]);\r\n\r\n return (\r\n (typeof option === 'string' ? option : option.description)}\r\n filterOptions={(x) => x}\r\n options={[field.value, ...options]}\r\n autoComplete\r\n includeInputInList\r\n filterSelectedOptions\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n field.onChange(newValue);\r\n setOptions(newValue ? [newValue, ...options] : options);\r\n }\r\n }}\r\n onInputChange={(_, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n renderInput={(params) => }\r\n renderOption={(props, option) => {\r\n const matches = option.structured_formatting.main_text_matched_substrings;\r\n const parts = parse(\r\n option.structured_formatting.main_text,\r\n matches.map((match) => [match.offset, match.offset + match.length])\r\n );\r\n\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n\r\n \r\n {option.structured_formatting.secondary_text}\r\n \r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default LocationAutoComplete;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport LocationAutoComplete from '../LocationAutoComplete';\r\n\r\nconst Location = ({ control, name, hasError, label, isRequired = false }) => (\r\n }\r\n />\r\n);\r\n\r\nexport default Location;\r\n","import React from 'react';\r\nimport MuiSlider from '@mui/material/Slider';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport { ageSliderDictionary } from '../../../utils/constants';\r\nimport { ageDisplay } from '../../../utils/display';\r\nimport { SliderTypes } from '../../../utils/types';\r\n\r\nconst Slider = ({ label, field, control, isLabelHidden, sliderType }) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n\r\n const getSliderData = (value) => {\r\n let sliderLength;\r\n let display;\r\n let step = 1;\r\n\r\n switch (sliderType) {\r\n case AGE:\r\n sliderLength = Object.keys(ageSliderDictionary).length;\r\n display = ageDisplay(value);\r\n break;\r\n case UTR:\r\n sliderLength = 16;\r\n display = `${value[0]?.toFixed(1)} - ${value[1]?.toFixed(1)}`;\r\n step = 0.5;\r\n break;\r\n case UTRP:\r\n sliderLength = 10;\r\n display = `${value[0]?.toFixed(2)} - ${value[1]?.toFixed(2)}`;\r\n step = 0.5;\r\n break;\r\n default:\r\n sliderLength = '';\r\n display = '';\r\n }\r\n return { sliderLength, display, step };\r\n };\r\n\r\n return (\r\n {\r\n const { sliderLength, display, step } = getSliderData(value);\r\n return (\r\n
    \r\n
    \r\n \r\n
    {display}
    \r\n
    \r\n \r\n
    \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default Slider;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\n\r\nconst Select = (props) => {\r\n const {\r\n control,\r\n isFullWidth,\r\n isRequired = false,\r\n label,\r\n labelId,\r\n name,\r\n options,\r\n hasError,\r\n helperText,\r\n onSelectChange,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n (\r\n \r\n {label}\r\n {\r\n onChange(value);\r\n if (onSelectChange) {\r\n onSelectChange(value);\r\n }\r\n }}\r\n fullWidth={isFullWidth}\r\n label={label}\r\n labelId={labelId}\r\n error={hasError}\r\n >\r\n {options.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n {hasError && helperText && {helperText}}\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default Select;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\n\r\nimport { formSubmitButtonPropTypes, defaultFormSubmitButtonPropTypes } from '../../../utils/proptypes';\r\n\r\nconst FormSubmitButton = ({ label, isSubmitting, style }) => (\r\n \r\n }\r\n >\r\n {label}\r\n \r\n \r\n);\r\n\r\nFormSubmitButton.propTypes = {\r\n ...formSubmitButtonPropTypes\r\n};\r\n\r\nFormSubmitButton.defaultProps = {\r\n ...defaultFormSubmitButtonPropTypes\r\n};\r\n\r\nexport default FormSubmitButton;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { CancelToken, isCancel } from 'axios';\r\n\r\nimport { Autocomplete, TextField, Grid, Typography } from '@mui/material';\r\n\r\nimport BackgroundImage from '../../BackgroundImage';\r\nimport { getApiAxiosInstance } from '../../../utils/network';\r\nimport { playerSearchPropTypes, defaultPlayerSearchPropTypes } from '../../../utils/proptypes';\r\nimport { useDebounce } from '../../../hooks/useDebounce';\r\n\r\nconst PlayerSearch = ({ isProPlayerSearch = false, searchMembersOnly = false, showPickleballContent = false, showTennisContent = false, onPlayerSelected, selectedPlayers = [], label, isRequired = false }) => {\r\n const cancelRef = useRef(null);\r\n const resultLimit = 10;\r\n const [query, setQuery] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [searchResults, setSearchResults] = useState([]);\r\n const searchQuery = useDebounce(query, 500);\r\n const axiosInstance = getApiAxiosInstance();\r\n\r\n const clearState = () => {\r\n setIsLoading(false);\r\n setSearchResults([]);\r\n setQuery('');\r\n };\r\n\r\n useEffect(() => {\r\n const getSearchResults = async () => {\r\n setIsLoading(true);\r\n const params = new URLSearchParams();\r\n params.append('query', searchQuery);\r\n params.append('top', resultLimit);\r\n params.append('isDemoPlayer', false);\r\n params.append('showPickleballContent', false);\r\n params.append('showTennisContent', false);\r\n\r\n if (isProPlayerSearch) {\r\n params.append('filter', 'isPro:true');\r\n }\r\n\r\n if (searchMembersOnly) {\r\n params.append('exists', 'memberId');\r\n }\r\n\r\n if (showPickleballContent) {\r\n params.delete('showPickleballContent', false);\r\n }\r\n\r\n if (showTennisContent) {\r\n params.delete('showTennisContent', false);\r\n }\r\n\r\n const cancel = cancelRef.current;\r\n if (cancel) {\r\n cancel();\r\n }\r\n\r\n const response = await axiosInstance\r\n .get('v2/search/players', {\r\n cancelToken: new CancelToken((c) => {\r\n cancelRef.current = c;\r\n }),\r\n params,\r\n })\r\n .catch((error) => {\r\n if (!isCancel(error)) {\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n if (response?.data) {\r\n const { hits } = response.data;\r\n const filteredHits = hits.filter((hit) => {\r\n return selectedPlayers.every((player) => player.memberId !== hit.source.memberId);\r\n });\r\n const results = filteredHits;\r\n setSearchResults(results);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n if (searchQuery.length > 0) {\r\n getSearchResults();\r\n }\r\n }, [searchQuery]);\r\n\r\n const updateStateForQuery = (queryString) => {\r\n if (queryString?.length > 0) {\r\n setQuery(queryString);\r\n setSearchResults([]);\r\n } else {\r\n setQuery('');\r\n setSearchResults([]);\r\n }\r\n };\r\n\r\n const handleOnInputChange = (value) => {\r\n updateStateForQuery(value);\r\n };\r\n\r\n const handleOnInputPaste = (event) => {\r\n const { target } = event;\r\n setTimeout(() => {\r\n const queryString = target.value.trim();\r\n updateStateForQuery(queryString);\r\n }, 200);\r\n };\r\n\r\n const handleOnChange = (player) => {\r\n onPlayerSelected(player);\r\n clearState();\r\n };\r\n\r\n return (\r\n x}\r\n onPaste={handleOnInputPaste}\r\n options={searchResults}\r\n loading={isLoading}\r\n getOptionLabel={(option) => (option?.source?.displayName ? option.source.displayName : '')}\r\n isOptionEqualToValue={(option, value) => option?.source?.id === value.source.id}\r\n onInputChange={(_, value, reason) => {\r\n if ((value || value === '') && reason === 'input') {\r\n handleOnInputChange(value);\r\n }\r\n }}\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n handleOnChange(newValue.source);\r\n }\r\n }}\r\n renderInput={(params) => (\r\n {params.InputProps.endAdornment},\r\n }}\r\n />\r\n )}\r\n renderOption={(optionProps, option) => {\r\n const { playerProfileImages, displayName, location } = option?.source || {};\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {displayName}\r\n {location?.display}\r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nPlayerSearch.propTypes = {\r\n ...playerSearchPropTypes\r\n};\r\n\r\nPlayerSearch.defaultProps = {\r\n ...defaultPlayerSearchPropTypes\r\n};\r\n\r\nexport default PlayerSearch;\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const useDebounce = (value, delay) => {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n};\r\n","import React from 'react';\r\n\r\nimport { Grid, Typography, Box, Paper } from '@mui/material';\r\nimport CloseRoundedIcon from '@mui/icons-material/CloseRounded';\r\nimport BackgroundImage from '../../BackgroundImage';\r\n\r\nconst PlayerSearchResultCard = ({ player, onRemovePlayer, showRemoveButton, ...rest }) => {\r\n const { displayName, location, playerProfileImages } = player;\r\n\r\n const handleOnRemovePlayer = () => {\r\n onRemovePlayer(player);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {displayName}\r\n {location?.display}\r\n \r\n {showRemoveButton && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlayerSearchResultCard;\r\n","const geocoder = { current: null };\r\n\r\nexport const getLocationData = async (location) => {\r\n const request = { placeId: location.place_id };\r\n\r\n if (!geocoder.current && window.google) {\r\n geocoder.current = new window.google.maps.Geocoder();\r\n }\r\n\r\n let geocodeResults = null;\r\n\r\n await geocoder.current.geocode(request, (results, status) => {\r\n if (status === window.google.maps.places.PlacesServiceStatus.OK && results) {\r\n geocodeResults = results[0];\r\n }\r\n });\r\n\r\n if (geocodeResults) {\r\n const { formatted_address, place_id: placeId, geometry } = geocodeResults;\r\n return {\r\n placeId,\r\n formattedAddress: formatted_address,\r\n placeName: location.structured_formatting.main_text,\r\n lat: geometry.location.lat(),\r\n lng: geometry.location.lng(),\r\n };\r\n }\r\n};\r\n\r\nexport const getLocationNameFromCoordinates = async (lat, lng) => {\r\n if (!geocoder.current && window.google) {\r\n geocoder.current = new window.google.maps.Geocoder();\r\n }\r\n\r\n let geocodeResults = null;\r\n const latLng = { lat, lng };\r\n await geocoder.current.geocode({ location: latLng }, (results, status) => {\r\n if (status === window.google.maps.places.PlacesServiceStatus.OK && results) {\r\n geocodeResults = results[0];\r\n }\r\n });\r\n\r\n if (geocodeResults) {\r\n const { address_components } = geocodeResults;\r\n const city = address_components.find((comp) => comp.types.includes('locality'));\r\n const state = address_components.find((comp) => comp.types.includes('administrative_area_level_1'));\r\n return `${city?.long_name}, ${state?.short_name}`;\r\n }\r\n};\r\n\r\nexport const getBrowserLocationCoordinates = async () => {\r\n let locationError = null;\r\n const options = {\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 60000,\r\n };\r\n const position = await new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition(resolve, reject, options);\r\n }).catch((error) => {\r\n locationError = error;\r\n });\r\n\r\n return {\r\n lat: position?.coords?.latitude,\r\n lng: position?.coords?.longitude,\r\n error: locationError,\r\n };\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n isOpen: false,\r\n error: null,\r\n};\r\n\r\nconst errorPopupSlice = createSlice({\r\n name: 'errorPopup',\r\n initialState,\r\n reducers: {\r\n showErrorPopup(state, action) {\r\n state.isOpen = true;\r\n state.error = action.payload;\r\n },\r\n\r\n hideErrorPopup(state) {\r\n state.isOpen = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { showErrorPopup, hideErrorPopup } = errorPopupSlice.actions;\r\nexport default errorPopupSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n sportTypeId: null,\r\n};\r\n\r\nconst conferenceDetailsSlice = createSlice({\r\n name: 'conferenceDetails',\r\n initialState,\r\n reducers: {\r\n setSportTypeId(state, action) {\r\n state.sportTypeId = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setSportTypeId } = conferenceDetailsSlice.actions;\r\nexport default conferenceDetailsSlice.reducer;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport Input from '../../Form/Input';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Location from '../../Form/Location';\r\nimport Slider from '../../Form/Slider';\r\nimport Select from '../../Form/Select';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport PlayerSearch from '../../Form/PlayerSearch';\r\nimport PlayerSearchResultCard from '../../Cards/PlayerSearchResultCard';\r\nimport { DefaultSliderValues, ageSliderDictionary, getAgeKeyByValue, defaultGridSpacing, formPaperStyles } from '../../../utils/constants';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { genderTypes, SportTypeIds, SliderTypes } from '../../../utils/types';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { createConferenceFormPropTypes, defaultCreateConferenceFormPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { useCreateConferenceMutation, useUpdateConferenceMutation } from '../../../api/leaguesApi';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\n\r\nconst CreateConferenceForm = ({ isManaging, conferenceDetails = null, onConferenceUpdated, isLoadingConference }) => {\r\n const { utrRange, ageRange, utrpRange } = DefaultSliderValues;\r\n const { TENNIS } = SportTypeIds;\r\n const { UTR, UTRP, AGE } = SliderTypes;\r\n const [createConference] = useCreateConferenceMutation();\r\n const [updateConference, { isSuccess: isUpdated }] = useUpdateConferenceMutation();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const conferenceId = params?.conferenceId;\r\n\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [conferenceOrganizer, setConferenceOrganizer] = useState();\r\n const [leagueId, setLeagueId] = useState();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const buttonText = isManaging ? 'Save Changes' : 'Create Conference';\r\n const defaultValues = {\r\n name: '',\r\n location: '',\r\n leagueId: parseInt(params?.leagueId),\r\n genderTypeId: '',\r\n details: '',\r\n ageRange,\r\n conferenceRatingRange: [],\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n reset,\r\n formState: { errors, dirtyFields, isSubmitting },\r\n control,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (sportTypeId) {\r\n const confRange = sportTypeId === TENNIS ? utrRange : utrpRange;\r\n reset({ ...defaultValues, conferenceRatingRange: confRange });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isManaging && conferenceDetails) {\r\n const {\r\n maxAge,\r\n minAge,\r\n location,\r\n leagueId: conferenceLeagueId,\r\n sportTypeId: sportId,\r\n conferenceRatings,\r\n ...fetchedConference\r\n } = conferenceDetails;\r\n\r\n const conferenceLocation = location?.placeName || location?.formattedAddress || '';\r\n const confAgeRange = [parseInt(getAgeKeyByValue(minAge)), parseInt(getAgeKeyByValue(maxAge))];\r\n const { ratingMin, ratingMax } = conferenceRatings || {};\r\n const confRatingRange = [ratingMin, ratingMax];\r\n\r\n const formData = {\r\n ...fetchedConference,\r\n location: conferenceLocation,\r\n ageRange: confAgeRange,\r\n conferenceRatingRange: confRatingRange,\r\n };\r\n\r\n setOriginalLocation(location);\r\n setLeagueId(conferenceLeagueId);\r\n dispatch(setSportTypeId(sportId));\r\n reset(formData);\r\n }\r\n }, [conferenceDetails]);\r\n\r\n useEffect(() => {\r\n if (isUpdated) {\r\n onConferenceUpdated();\r\n }\r\n }, [isUpdated]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const conference = { ...formValues };\r\n const [minAge, maxAge] = conference.ageRange;\r\n const [ratingMin, ratingMax] = conference.conferenceRatingRange;\r\n\r\n if (dirtyFields.location) {\r\n const formattedLocation = await getLocationData(conference.location);\r\n conference.location = formattedLocation;\r\n } else {\r\n conference.location = originalLocation;\r\n }\r\n\r\n conference.minAge = ageSliderDictionary[minAge];\r\n conference.maxAge = ageSliderDictionary[maxAge];\r\n conference.conferenceRatings = {};\r\n\r\n conference.conferenceRatings.ratingMin = ratingMin;\r\n conference.conferenceRatings.ratingMax = ratingMax;\r\n\r\n delete conference.ageRange;\r\n delete conference.conferenceRatingRange;\r\n\r\n if (isManaging) {\r\n try {\r\n await updateConference({ conferenceId, conference, leagueId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n } else {\r\n conference.conferenceOrganizerMemberId = conferenceOrganizer.memberId;\r\n try {\r\n await createConference(conference).unwrap();\r\n navigate(`/leagues/${params?.leagueId}`);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleOnAddConferenceOrganizer = (organizer) => {\r\n setConferenceOrganizer(organizer);\r\n };\r\n\r\n const handleOnRemoveConferenceOrganizer = () => {\r\n setConferenceOrganizer(null);\r\n };\r\n\r\n const isTennisConference = sportTypeId === TENNIS;\r\n\r\n return (\r\n \r\n \r\n {!isManaging && (\r\n \r\n Create Conference\r\n \r\n \r\n )}\r\n {isManaging && isLoadingConference ? (\r\n \r\n ) : (\r\n
    \r\n \r\n Conference Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isManaging && (\r\n \r\n Conference Organizer\r\n \r\n \r\n {conferenceOrganizer ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n Conference Audience\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nCreateConferenceForm.propTypes = {\r\n ...createConferenceFormPropTypes\r\n};\r\n\r\nCreateConferenceForm.defaultProps = {\r\n ...defaultCreateConferenceFormPropTypes\r\n};\r\n\r\nexport default CreateConferenceForm;\r\n","import React from 'react';\r\n\r\nimport CreateConferenceForm from '../../components/Forms/CreateConferenceForm';\r\n\r\nconst CreateConferencePage = () => ;\r\n\r\nexport default CreateConferencePage;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport MuiDateTimePicker from '@mui/lab/DateTimePicker';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport { dateTimeFormat } from '../../../utils/constants';\r\n\r\nconst DateTimePicker = ({ control, name, label, isRequired = false, minutesStep, minDate, onDateChange }) => {\r\n const handleOnDateChange = (date) => {\r\n if (onDateChange) {\r\n onDateChange(date);\r\n }\r\n };\r\n\r\n return (\r\n \r\n (\r\n {\r\n onChange(e);\r\n handleOnDateChange(e);\r\n }}\r\n minDateTime={minDate}\r\n renderInput={(inputProps) => }\r\n />\r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default DateTimePicker;\r\n","import * as React from 'react';\r\n\r\nconst ApprovedIcon = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default ApprovedIcon;\r\n","import React from 'react';\r\n\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport ApprovedIcon from '../Icons/ApprovedIcon';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { popupPropTypes, defaultPopupPropTypes } from '../../utils/proptypes';\r\n\r\nconst Popup = ({ open, onClose, title, message, isSuccessful, errorMessage, buttonLabel, onAction, actionLabel }) => (\r\n \r\n \r\n {isSuccessful && (\r\n \r\n )}\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n {!!errorMessage && (\r\n \r\n \r\n {errorMessage}\r\n \r\n \r\n )}\r\n \r\n {buttonLabel && (\r\n \r\n )}\r\n {onAction && (\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nPopup.propTypes = {\r\n ...popupPropTypes\r\n};\r\n\r\nPopup.defaultProps = {\r\n ...defaultPopupPropTypes\r\n};\r\n\r\nexport default Popup;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport Radio from '@mui/material/Radio';\r\nimport MuiRadioGroup from '@mui/material/RadioGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\n\r\nimport { radioGroupPropTypes } from '../../../utils/proptypes';\r\n\r\nconst RadioGroup = ({ control, name, options, sx, ...rest }) => (\r\n (\r\n \r\n {options.map((option) => (\r\n } sx={sx} />\r\n ))}\r\n \r\n )}\r\n />\r\n);\r\n\r\nRadioGroup.propTypes = {\r\n ...radioGroupPropTypes,\r\n};\r\n\r\nexport default RadioGroup;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport TextField from '@mui/material/TextField';\r\nimport Divider from '@mui/material/Divider';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\n\r\nimport { tennisScoringTypes, durationTypes, MatchFormatTypes, pickleballScoringTypes, SportTypeIds } from '../../utils/types';\r\nimport { defaultGridSpacing } from '../../utils/constants';\r\n\r\nconst SessionMatchFormat = ({ matchFormat, control, errors, isDisabled, sportTypeId }) => {\r\n const { SINGLES, DOUBLES, BOTH } = MatchFormatTypes;\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n const scoringTypes = isTennisMatch ? tennisScoringTypes : pickleballScoringTypes;\r\n\r\n const Singles = () => {\r\n return (\r\n <>\r\n \r\n SINGLES\r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n \r\n Scoring Format\r\n \r\n {scoringTypes.map((scoringType) => (\r\n \r\n {scoringType.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n Time allotted per match\r\n \r\n {durationTypes.map((duration) => (\r\n \r\n {duration.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const Doubles = () => (\r\n <>\r\n \r\n DOUBLES\r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n \r\n Scoring Format\r\n \r\n {scoringTypes.map((scoringType) => (\r\n \r\n {scoringType.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n Time allotted per match\r\n \r\n {durationTypes.map((duration) => (\r\n \r\n {duration.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n
    \r\n {matchFormat === SINGLES && }\r\n {matchFormat === DOUBLES && }\r\n {matchFormat === BOTH && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default SessionMatchFormat;\r\n","import moment from 'moment';\r\nimport { sessionTypes, openClosedStatusTypes, getTypeForId, LeagueSessionTypes, FrequencyTypes } from './types';\r\nimport { getFormattedDate } from './display';\r\n\r\nconst { TOURNAMENT } = LeagueSessionTypes;\r\n\r\nexport const getSessionRounds = (schedule) => {\r\n const { draws } = schedule;\r\n\r\n const mappedDraws = draws?.reduce((acc, cur) => {\r\n if (cur?.rounds) {\r\n return [\r\n ...acc,\r\n ...cur.rounds\r\n ];\r\n }\r\n return acc;\r\n }, [])?.map((round) => ({ ...round, matches: round.teamMatches }));\r\n\r\n return mappedDraws;\r\n};\r\n\r\nexport const getRoundCount = (teamCount, matchesPerTeam) => {\r\n if (teamCount % 2 === 0) {\r\n return matchesPerTeam;\r\n }\r\n return Math.floor(matchesPerTeam + matchesPerTeam / (teamCount - 1));\r\n};\r\n\r\nexport const mapSession = (data) => {\r\n const { startDateUtc, endDateUtc, teamRegistrationEndDateUtc, teamRegistrationStartDateUtc, sessionTypeId, sessionStatusTypeId } = data;\r\n const dateFormat = 'MMM D';\r\n const sessionType = getTypeForId(sessionTypeId, sessionTypes);\r\n const status = getTypeForId(sessionStatusTypeId, openClosedStatusTypes);\r\n const sessionDates = getFormattedDate(startDateUtc, endDateUtc, dateFormat);\r\n const registrationDates = getFormattedDate(teamRegistrationStartDateUtc, teamRegistrationEndDateUtc, dateFormat);\r\n\r\n return {\r\n status: status.description,\r\n sessionType: sessionType.description,\r\n sessionDates,\r\n registrationDates,\r\n ...data,\r\n };\r\n};\r\n\r\nexport const getTooManyMatchesPerTeamError = (session) => {\r\n const { startDateUtc, endDateUtc, teamMatchFrequencyTypeId, sessionTypeId, matchesPerTeam } = session;\r\n if (sessionTypeId === TOURNAMENT) return false;\r\n if (!startDateUtc || !endDateUtc || !teamMatchFrequencyTypeId) return false;\r\n\r\n const numberOfTotalWeeks = moment(endDateUtc).diff(moment(startDateUtc), 'weeks') || 1;\r\n // teamMatchFrequencyTypeId dynamic in case we want to change to every 3/4 weeks.\r\n const totalWeeksAvailable =\r\n teamMatchFrequencyTypeId === FrequencyTypes.ONCE_A_WEEK\r\n ? numberOfTotalWeeks\r\n : Math.floor(numberOfTotalWeeks / teamMatchFrequencyTypeId);\r\n\r\n if (!totalWeeksAvailable) {\r\n return true;\r\n }\r\n if (+matchesPerTeam > totalWeeksAvailable) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { skipToken } from '@reduxjs/toolkit/dist/query/react';\r\nimport moment from 'moment';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport Paper from '@mui/material/Paper';\r\nimport TextField from '@mui/material/TextField';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport DateTimePicker from '../../Form/DateTimePicker';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport Input from '../../Form/Input';\r\nimport Location from '../../Form/Location';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Popup from '../../Popups/Popup';\r\nimport RadioGroup from '../../Form/RadioGroup';\r\nimport Select from '../../Form/Select';\r\nimport SessionMatchFormat from '../../SessionMatchFormat';\r\nimport { getTooManyMatchesPerTeamError } from '../../../utils/sessions';\r\n\r\nimport {\r\n FrequencyTypes,\r\n LeagueSessionTypes,\r\n MatchFormatTypes,\r\n SessionDrawTypes,\r\n SportTypeIds,\r\n SessionStandingsRules,\r\n SessionStandingsTypes,\r\n StatusTypes,\r\n TournamentTeamsCount,\r\n drawTypes,\r\n matchFrequencyTypes,\r\n openClosedStatusTypes,\r\n pickleballSessionStandingsOptions,\r\n sessionMatchFormatTypes,\r\n sessionTypes,\r\n tournamentTeamsCountOptions,\r\n tennisSessionStandingsOptions,\r\n} from '../../../utils/types';\r\nimport { LeagueTabs, defaultGridSpacing, formPaperStyles } from '../../../utils/constants';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { useCreateSessionMutation, useUpdateSessionMutation, useGetLeagueFeesQuery } from '../../../api/leaguesApi';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\nimport { createSessionFormPropTypes, defaultCreateSessionFormPropTypes } from '../../../utils/proptypes';\r\n\r\nconst minutesStep = 15;\r\nconst CUSTOM_MORE_MATCHES_TEXT = 'There are more matches per team than weeks in the session.';\r\n\r\nconst CreateSessionForm = ({ sessionDetails, isManaging, isLoadingSession, onSessionUpdated }) => {\r\n const navigate = useNavigate();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n\r\n const sessionId = params?.sessionId;\r\n const { OPEN } = StatusTypes;\r\n const { ONCE_A_WEEK } = FrequencyTypes;\r\n const { TOURNAMENT } = LeagueSessionTypes;\r\n const { TENNIS } = SportTypeIds;\r\n const { FIRST_MATCH_BACK_DRAW } = SessionDrawTypes;\r\n const { BOTH, DOUBLES, SINGLES } = MatchFormatTypes;\r\n const { FOUR, EIGHT, SIXTEEN } = TournamentTeamsCount;\r\n const { TENNIS_WIN_LOSS_RECORD, PICKLEBALL_WIN_LOSS_RECORD } = SessionStandingsTypes;\r\n const { hasRegisteredPlayers, hasPostedResults, hasPublishedSchedule, hasSchedule } = sessionDetails || {};\r\n const isTennisSession = sportTypeId === TENNIS;\r\n const buttonText = isManaging ? 'Save Changes' : 'Create Session';\r\n const isRestrictedSession = hasPostedResults && hasPublishedSchedule;\r\n const standingsRuleOptions = isTennisSession ? tennisSessionStandingsOptions : pickleballSessionStandingsOptions;\r\n\r\n const [startDate, setStartDate] = useState(moment());\r\n const [teamRegisterStartDate, setTeamRegisterStartDate] = useState(moment());\r\n const [totalPlayerCost, setTotalPlayerCost] = useState();\r\n const [matchFormat, setMatchFormat] = useState('');\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [isTournamentSession, setIsTournamentSession] = useState(false);\r\n const [conferenceId, setConferenceId] = useState(parseInt(params?.conferenceId) || skipToken);\r\n const [leagueVerifiedFee, setLeagueVerifiedFee] = useState(0);\r\n const [showRuleConfirmationModal, setShowRuleConfirmationModal] = useState(false);\r\n const [sessionStandingsRuleId, setSessionStandingsRuleId] = useState(isTennisSession ? TENNIS_WIN_LOSS_RECORD : PICKLEBALL_WIN_LOSS_RECORD);\r\n const [updatedStandingsRuleId, setUpdatedStandingsRuleId] = useState(null);\r\n\r\n const [createSession] = useCreateSessionMutation();\r\n const [updateSession, { isSuccess: isUpdated }] = useUpdateSessionMutation();\r\n const { data: leaguesFees, isLoading: isLoadingLeaguesFees, error } = useGetLeagueFeesQuery(conferenceId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n conferenceId: parseInt(params?.conferenceId),\r\n description: '',\r\n doublesMatchCount: '',\r\n doublesPointsPerMatch: '',\r\n doublesScoringFormatTypeId: '',\r\n doublesTimeAllowedTypeId: '',\r\n drawTypeId: FIRST_MATCH_BACK_DRAW,\r\n endDateUtc: moment().add(5, 'days'),\r\n matchesPerTeam: '',\r\n name: '',\r\n registrationFee: 0,\r\n registrationVerificationFee: 0,\r\n sessionStatusTypeId: OPEN,\r\n sessionMatchTypeId: SINGLES,\r\n sessionTypeId: '',\r\n singlesMatchCount: '',\r\n singlesPointsPerMatch: '',\r\n singlesScoringFormatTypeId: '',\r\n singlesTimeAllowedTypeId: '',\r\n startDateUtc: moment().add(3, 'days'),\r\n teamRegistrationEndDateUtc: moment().add(2, 'days').add(2, 'hour'),\r\n teamRegistrationStartDateUtc: moment().add(2, 'hour'),\r\n teamRequiredPlayersMin: 2,\r\n teamsMax: '',\r\n location: '',\r\n teamMatchFrequencyTypeId: ONCE_A_WEEK,\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields, isSubmitting },\r\n control,\r\n reset,\r\n getValues,\r\n setValue,\r\n setError,\r\n clearErrors,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (isManaging && sessionDetails) {\r\n const {\r\n conferenceId: sessionConferenceId,\r\n endDateUtc,\r\n startDateUtc,\r\n registrationFee,\r\n teamRegistrationStartDateUtc,\r\n teamRegistrationEndDateUtc,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n description,\r\n sessionStandingsTypeId,\r\n drawTypeId,\r\n ...fetchedSession\r\n } = sessionDetails;\r\n\r\n setConferenceId(sessionConferenceId);\r\n setSessionStandingsRuleId(sessionStandingsTypeId);\r\n\r\n let sessionLocation = '';\r\n const isTournament = sessionTypeId === TOURNAMENT;\r\n if (isTournament) {\r\n sessionLocation = sessionDetails.location?.placeName || '';\r\n setOriginalLocation(sessionDetails.location);\r\n setIsTournamentSession(true);\r\n }\r\n\r\n let formData;\r\n\r\n if (sessionMatchTypeId !== BOTH) {\r\n formData = {\r\n ...defaultValues,\r\n ...fetchedSession,\r\n sessionTypeId,\r\n drawTypeId,\r\n description: description || '',\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n } else {\r\n formData = {\r\n ...fetchedSession,\r\n drawTypeId,\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n description: description || '',\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n }\r\n setTotalPlayerCost(parseInt(registrationFee) + parseInt(registrationVerificationFee));\r\n setLeagueVerifiedFee(registrationVerificationFee);\r\n reset(formData);\r\n setMatchFormat(sessionMatchTypeId);\r\n dispatch(setSportTypeId(sessionDetails?.sportTypeId));\r\n }\r\n }, [sessionDetails]);\r\n\r\n useEffect(() => {\r\n if (isUpdated) {\r\n onSessionUpdated();\r\n }\r\n }, [isUpdated]);\r\n\r\n useEffect(() => {\r\n if (leaguesFees && !isManaging) {\r\n setLeagueVerifiedFee(leaguesFees?.registrationVerificationFee);\r\n setTotalPlayerCost(leaguesFees?.registrationVerificationFee);\r\n }\r\n }, [leaguesFees]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const session = { ...formValues };\r\n\r\n session.startDateUtc = getAdjustedDate({ dateUtc: session.startDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.endDateUtc = getAdjustedDate({ dateUtc: session.endDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.teamRegistrationStartDateUtc = getAdjustedDate({ dateUtc: session.teamRegistrationStartDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.teamRegistrationEndDateUtc = getAdjustedDate({ dateUtc: session.teamRegistrationEndDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.description = session.description.trim().length === 0 ? null : session.description;\r\n session.sessionMatchTypeId = matchFormat;\r\n session.sessionStandingsTypeId = sessionStandingsRuleId;\r\n\r\n if (!isManaging) {\r\n session.registrationVerificationFee = leagueVerifiedFee;\r\n }\r\n\r\n if (matchFormat === SINGLES) {\r\n delete session.doublesMatchCount;\r\n delete session.doublesPointsPerMatch;\r\n delete session.doublesScoringFormatTypeId;\r\n delete session.doublesTimeAllowedTypeId;\r\n } else if (matchFormat === DOUBLES) {\r\n delete session.singlesMatchCount;\r\n delete session.singlesPointsPerMatch;\r\n delete session.singlesScoringFormatTypeId;\r\n delete session.singlesTimeAllowedTypeId;\r\n }\r\n\r\n const sessionType = getValues('sessionTypeId');\r\n\r\n if (sessionType === TOURNAMENT) {\r\n delete session.teamMatchFrequencyTypeId;\r\n\r\n if (dirtyFields.location) {\r\n session.location = await getLocationData(formValues.location);\r\n } else {\r\n session.location = originalLocation;\r\n }\r\n } else {\r\n delete session.location;\r\n }\r\n\r\n if (isManaging) {\r\n try {\r\n await updateSession({ sessionId, session, conferenceId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n } else {\r\n try {\r\n await createSession(session).unwrap();\r\n navigate(`/leagues/conference/${params?.conferenceId}/manage`, { state: { activeTab: LeagueTabs.SESSIONS } });\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleEntryFeeChange = (e) => {\r\n const feeValue = parseInt(e.target.value);\r\n if (!Number.isNaN(feeValue)) {\r\n setTotalPlayerCost(parseInt(e.target.value) + leagueVerifiedFee);\r\n } else {\r\n setTotalPlayerCost(leagueVerifiedFee);\r\n }\r\n };\r\n\r\n const handleOnMatchFormatChange = (event) => {\r\n setMatchFormat(event.target.value);\r\n };\r\n\r\n const handleOnEventStartDateChange = (date) => {\r\n setStartDate(date);\r\n };\r\n\r\n const handleOnRegistrationStartDateChange = (date) => {\r\n setTeamRegisterStartDate(date);\r\n };\r\n\r\n const handleOnSessionTypeChange = (event) => {\r\n const isTournament = event.target.value === TOURNAMENT;\r\n setIsTournamentSession(isTournament);\r\n };\r\n\r\n const handleMatchesPerTeamCheck = (event) => {\r\n clearErrors('matchesPerTeam');\r\n setValue('matchesPerTeam', event.target.value);\r\n const session = getValues();\r\n\r\n const hasErrors = getTooManyMatchesPerTeamError({\r\n ...session,\r\n matchesPerTeam: +event.target.value,\r\n });\r\n\r\n if (hasErrors) {\r\n setError('matchesPerTeam', { type: 'custom', message: CUSTOM_MORE_MATCHES_TEXT });\r\n }\r\n\r\n return;\r\n };\r\n\r\n const handleOnTournamentTeamsChange = (event) => {\r\n const teamsCount = event.target.value;\r\n switch (teamsCount) {\r\n case FOUR:\r\n setValue('matchesPerTeam', 2);\r\n break;\r\n case EIGHT:\r\n setValue('matchesPerTeam', 4);\r\n break;\r\n case SIXTEEN:\r\n setValue('matchesPerTeam', 8);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const handleOnSessionRuleChange = (event) => {\r\n const ruleValue = event?.target?.value;\r\n\r\n if (ruleValue !== sessionStandingsRuleId) {\r\n setShowRuleConfirmationModal(true);\r\n setUpdatedStandingsRuleId(ruleValue);\r\n }\r\n };\r\n\r\n const handleOnConfirmRuleChange = () => {\r\n setShowRuleConfirmationModal(false);\r\n setSessionStandingsRuleId(updatedStandingsRuleId);\r\n };\r\n\r\n const handleOnCloseRuleModal = () => {\r\n setShowRuleConfirmationModal(false);\r\n setUpdatedStandingsRuleId(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n {!isManaging && (\r\n \r\n Create Session\r\n \r\n \r\n )}\r\n {isManaging && isLoadingSession && isLoadingLeaguesFees ? (\r\n \r\n ) : (\r\n
    \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTournamentSession && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!isTournamentSession && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n Team Standings Rule\r\n \r\n {standingsRuleOptions.map((rule) => (\r\n \r\n {rule?.description}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Match Format\r\n \r\n \r\n \r\n Format Type\r\n \r\n {sessionMatchFormatTypes.map((session) => (\r\n \r\n {session.description}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n Session Status\r\n Teams can be added to an open session\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTournamentSession ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!isTournamentSession && (\r\n \r\n \r\n {errors.matchesPerTeam && (\r\n \r\n {errors.matchesPerTeam.message}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n Player Fees\r\n \r\n \r\n Session Player Entry Fee\r\n \r\n (\r\n $,\r\n }}\r\n inputProps={{ style: { textAlign: 'right', width: 55 } }}\r\n onChange={(e) => {\r\n onChange(e);\r\n handleEntryFeeChange(e);\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n \r\n {`League Fee: $${leagueVerifiedFee}`}\r\n \r\n \r\n {`Total per Player: $${totalPlayerCost}`}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nCreateSessionForm.propTypes = {\r\n ...createSessionFormPropTypes\r\n};\r\n\r\nCreateSessionForm.defaultProps = {\r\n ...defaultCreateSessionFormPropTypes\r\n};\r\n\r\nexport default CreateSessionForm;\r\n","import React from 'react';\r\n\r\nimport CreateSessionForm from '../../components/Forms/CreateSessionForm';\r\n\r\nconst CreateSessionPage = () => ;\r\n\r\nexport default CreateSessionPage;\r\n","import React from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport Button from '@mui/material/Button';\r\nimport Grid from '@mui/material/Grid';\r\nimport Link from '@mui/material/Link';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport Select from '@mui/material/Select';\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport Typography from '@mui/material/Typography';\r\nimport MuiListSubheader from '@mui/material/ListSubheader';\r\nimport TextField from '@mui/material/TextField';\r\nimport Switch from '@mui/material/Switch';\r\n\r\nexport const StyledTableRow = styled(TableRow)(({ theme }) => ({\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n '&:last-child td, &:last-child th': {\r\n border: 0,\r\n },\r\n}));\r\n\r\nexport const TeamMatchCardSelect = styled(Select)(({ theme }) => ({\r\n ':after': { borderBottomColor: theme.appColors.gradientBlue },\r\n}));\r\n\r\nexport const PostScoreInput = styled(TextField, {\r\n shouldForwardProp: (prop) => prop !== 'showTiebreaker',\r\n})(({ showTiebreaker = false, disable = false }) => ({\r\n '& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button': {\r\n display: 'none',\r\n },\r\n '& input[type=number]': {\r\n MozAppearance: 'textfield',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& input': {\r\n textAlign: 'center'\r\n },\r\n '& fieldset': {\r\n borderRightWidth: showTiebreaker ? 0 : 1\r\n },\r\n borderRadius: 4,\r\n borderBottomRightRadius: showTiebreaker ? 0 : 4,\r\n borderTopRightRadius: showTiebreaker ? 0 : 4,\r\n\r\n },\r\n textAlign: 'center',\r\n width: 56,\r\n height: 56,\r\n disabled: disable,\r\n '&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {\r\n WebkitAppearance: 'none',\r\n },\r\n}));\r\n\r\nexport const PostScoreTieBreakInput = styled(TextField)(() => ({\r\n '& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button': {\r\n display: 'none',\r\n WebkitAppearance: 'none',\r\n },\r\n '& input[type=number]': {\r\n MozAppearance: 'textfield',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& input': {\r\n textAlign: 'center'\r\n },\r\n '& fieldset': {\r\n borderLeftWidth: 1\r\n },\r\n textAlign: 'center',\r\n borderRadius: 4,\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n },\r\n outline: 'none',\r\n width: 56,\r\n height: 56,\r\n}));\r\n\r\nexport const TiebreakerText = styled(Typography)(({ theme }) => ({\r\n position: 'absolute',\r\n fontSize: 10,\r\n top: 6,\r\n right: 12,\r\n color: theme.appColors.darkText,\r\n}));\r\n\r\nexport const ListSubheader = styled(MuiListSubheader)(({ theme }) => ({\r\n backgroundColor: theme.appColors.blue,\r\n color: theme.appColors.white,\r\n}));\r\n\r\nexport const ScoreCardTypography = styled(Typography, {\r\n shouldForwardProp: (prop) => prop !== 'isLoser' && prop !== 'isWinner',\r\n})(({ theme, isLoser, isWinner }) => {\r\n if (isLoser) {\r\n return {\r\n color: theme.appColors.grey,\r\n };\r\n }\r\n if (isWinner) {\r\n return {\r\n color: theme.appColors.black,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n };\r\n }\r\n return {\r\n color: theme.appColors.black,\r\n };\r\n});\r\n\r\nexport const ScoreCardTiebreakerTypography = styled(ScoreCardTypography)(() => ({\r\n fontSize: 12,\r\n marginLeft: 0.8,\r\n marginRight: 8,\r\n}));\r\n\r\nexport const StyledGrid = styled(Grid)(({ theme }) => ({\r\n color: theme.palette.common.black,\r\n padding: theme.spacing(2),\r\n}));\r\n\r\nexport const MemberTeamTableLink = styled(Link)(() => ({\r\n fontSize: '1rem',\r\n}));\r\n\r\nexport const LinkStyledButton = styled(Button)(() => ({\r\n '&:hover': {\r\n background: 'none',\r\n },\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n padding: 0,\r\n minHeight: 0,\r\n minWidth: 0,\r\n fontWeight: 'normal',\r\n textTransform: 'none',\r\n}));\r\n\r\nexport const PostScoreSubtitle = styled(Typography)(({ theme }) => ({\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n letterSpacing: 1,\r\n fontWeight: 500,\r\n color: theme.appColors.darkText,\r\n textTransform: 'uppercase',\r\n}));\r\n\r\nexport const CustomSwitch = styled(Switch)(({ theme }) => ({\r\n width: 54,\r\n height: 32,\r\n padding: 0,\r\n '& .MuiSwitch-switchBase': {\r\n padding: 0,\r\n margin: 2,\r\n transitionDuration: '300ms',\r\n '&.Mui-checked': {\r\n transform: 'translateX(22px)',\r\n color: theme.appColors.white,\r\n '& + .MuiSwitch-track': {\r\n backgroundColor: theme.appColors.lighterGreen,\r\n opacity: 1,\r\n border: 0,\r\n },\r\n '&.Mui-disabled + .MuiSwitch-track': {\r\n opacity: 0.5,\r\n },\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n width: 28,\r\n height: 28,\r\n },\r\n '& .MuiSwitch-track': {\r\n borderRadius: 32 / 2,\r\n backgroundColor: theme.appColors.coolGrey600,\r\n opacity: 1,\r\n },\r\n}));\r\n\r\nexport const StyledTooltip = styled(({ className, ...props }) => (\r\n \r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: theme.appColors.blueGrey100,\r\n boxShadow: theme.shadows[1],\r\n color: theme.palette.common.black,\r\n padding: 7,\r\n fontSize: 14,\r\n fontWeight: 325,\r\n textAlign: 'center',\r\n fontFamily: theme.typography.secondary.fontFamily\r\n },\r\n [`& .${tooltipClasses.arrow}`]: {\r\n color: theme.appColors.blueGrey100,\r\n '&::before': {\r\n backgroundColor: theme.appColors.blueGrey100,\r\n border: '1px solid #999'\r\n }\r\n },\r\n}));\r\n","import React, { useState } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { SinglePersonIcon, DoublePersonIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport MuiTableRow from '@mui/material/TableRow';\r\nimport TableSortLabel from '@mui/material/TableSortLabel';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport Typography from '@mui/material/Typography';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport { SortType } from '../../../utils/constants';\r\nimport { getComparator } from '../../../utils/helpers';\r\nimport { leaguesTablePropTypes } from '../../../utils/proptypes';\r\n\r\nconst LeaguesTable = (props) => {\r\n const theme = useTheme();\r\n const { headCells, tableData, isLoading, sortBy, rowComponent, title = null, isSortingDisabled = false } = props;\r\n const [sortOrder, setSortOrder] = useState(SortType.ASC);\r\n const [orderProperty, setOrderProperty] = useState(sortBy);\r\n const TableRow = rowComponent;\r\n\r\n const handleRequestSort = (property) => (event) => {\r\n event.preventDefault();\r\n const isAscending = orderProperty === property && sortOrder === SortType.ASC;\r\n setSortOrder(isAscending ? SortType.DESC : SortType.ASC);\r\n setOrderProperty(property);\r\n };\r\n\r\n return (\r\n \r\n {title && (\r\n \r\n \r\n {title}\r\n \r\n \r\n )}\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n \r\n <>\r\n {headCell.label}\r\n {headCell.id === 'utrp-numeric-single' && (\r\n \r\n )}\r\n {headCell.id === 'utrp-numeric-double' && (\r\n \r\n )}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {tableData &&\r\n tableData\r\n .slice()\r\n .sort(getComparator(sortOrder, orderProperty))\r\n .map((data, index) => {\r\n const labelId = `table-${index}`;\r\n return ;\r\n })}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nLeaguesTable.propTypes = {\r\n ...leaguesTablePropTypes,\r\n};\r\n\r\nexport default LeaguesTable;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport TableCell from '@mui/material/TableCell';\r\n\r\nimport { StyledTableRow } from '../../Styled';\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { formatConferencesForTable } from '../../../utils/helpers';\r\nimport { getConferenceTableHeadCells } from '../../../utils/display';\r\n\r\nconst ConferencesTable = ({ leagueConferences = [], isLoading, onManageClicked }) => {\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const [conferences, setConferences] = useState([]);\r\n const headCells = getConferenceTableHeadCells(sportTypeId);\r\n\r\n useEffect(() => {\r\n if (leagueConferences) {\r\n const formattedConferences = formatConferencesForTable(leagueConferences, sportTypeId);\r\n setConferences(formattedConferences);\r\n }\r\n }, [leagueConferences, sportTypeId]);\r\n\r\n const ConferenceTableRow = ({ rowData, labelId }) => {\r\n const { id, name, age, gender, range } = rowData;\r\n\r\n const handleOnManageConferenceClicked = (conferenceId) => {\r\n onManageClicked(conferenceId);\r\n };\r\n return (\r\n \r\n \r\n {name}\r\n \r\n {age}\r\n {gender}\r\n {range}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ConferencesTable;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport ConferencesTable from '../../../components/Tables/ConferencesTable';\r\n\r\nconst ConferencesTab = ({ conferences = [], onManageClicked, isLoading }) => {\r\n const handleOnManageClicked = (conferenceId) => {\r\n onManageClicked(conferenceId);\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {!conferences.length ? (\r\n \r\n No conferences have been created for this League.\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ConferencesTab;\r\n","import React, { useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport ConferencesTab from './ConferencesTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst LeagueDeskPage = ({ isLoading, leagueData, organizerLeagues, leagueId, isLeagueOrganizer, onLeagueSelected }) => {\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (leagueData) {\r\n dispatch(setSportTypeId(leagueData?.sportTypeId));\r\n }\r\n }, [leagueData]);\r\n\r\n const handleOnCreateConferenceClicked = () => {\r\n navigate(`/leagues/${leagueId}/conference/create`);\r\n };\r\n\r\n const handleOnManageClicked = (conferenceId) => {\r\n navigate(`/leagues/conference/${conferenceId}/manage`);\r\n };\r\n\r\n const handleOnLeagueChange = (event) => {\r\n const id = event?.target?.value;\r\n onLeagueSelected(id);\r\n };\r\n\r\n return (\r\n \r\n {isLoading && }\r\n {leagueData && (\r\n \r\n \r\n Team League Desk\r\n \r\n \r\n {isLeagueOrganizer && organizerLeagues?.length > 1 ? (\r\n \r\n Select League\r\n \r\n {organizerLeagues?.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n {leagueData.name}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LeagueDeskPage;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useNavigate } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport LeagueDeskPage from '..';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\nimport { useGetLeagueSummaryQuery, useGetUserLeaguesQuery } from '../../../api/leaguesApi';\r\n\r\nconst LeagueDeskWrapper = () => {\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const { leagueId } = useParams();\r\n const [organizerLeagues, setOrganizerLeagues] = useState([]);\r\n const [isLeagueOrganizer, setIsOrganizerLeague] = useState(false);\r\n\r\n const { data: leagueData, isLoading: isLoadingLeagueData, error: leagueDataError } = useGetLeagueSummaryQuery(parseInt(leagueId));\r\n const { data: userLeagues, isLoading: isLoadingOrganizerLeagues, error: organizerLeaguesError } = useGetUserLeaguesQuery();\r\n\r\n const isLoading = isLoadingLeagueData || isLoadingOrganizerLeagues;\r\n\r\n if (leagueDataError) {\r\n dispatch(showErrorPopup(leagueDataError));\r\n }\r\n\r\n if (organizerLeaguesError) {\r\n dispatch(showErrorPopup(organizerLeaguesError));\r\n }\r\n\r\n useEffect(() => {\r\n if (leagueData) {\r\n dispatch(setSportTypeId(leagueData?.sportTypeId));\r\n }\r\n\r\n if (userLeagues) {\r\n const tennisLeagues = userLeagues?.leagues?.tennis || [];\r\n const pickleballLeagues = userLeagues?.leagues?.pickleball || [];\r\n const formattedLeagues = [...tennisLeagues, ...pickleballLeagues].map((league) => {\r\n return (\r\n { id: league.id, description: league.name }\r\n );\r\n });\r\n const organizerLeagueIds = formattedLeagues.map((league) => league.id);\r\n const isOrganizerLeague = organizerLeagueIds.includes(parseInt(leagueId));\r\n\r\n setIsOrganizerLeague(isOrganizerLeague);\r\n setOrganizerLeagues(formattedLeagues);\r\n }\r\n }, [leagueData, userLeagues]);\r\n\r\n if (leagueDataError) {\r\n dispatch(showErrorPopup(leagueDataError));\r\n }\r\n\r\n if (organizerLeaguesError) {\r\n dispatch(showErrorPopup(organizerLeaguesError));\r\n }\r\n\r\n const handleOnLeagueSelected = (id) => {\r\n navigate(`/leagues/${id}`);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LeagueDeskWrapper;\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { getBreadcrumbs } from '../../api/leaguesApi';\r\n\r\nexport const getBreadcrumbData = createAsyncThunk('ui/getBreadcrumbData', async (data) => {\r\n const { context, contextId } = data || {};\r\n try {\r\n const response = await getBreadcrumbs(context, contextId);\r\n return response.data;\r\n } catch (err) {\r\n const customError = {\r\n name: 'Error loading breadcrumbs',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport LinearProgress from '@mui/material/LinearProgress';\r\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport { BreadcrumbContexts } from '../../utils/constants';\r\nimport { getBreadcrumbData } from '../../redux/services/breadcrumbService';\r\n\r\nconst Breadcrumbs = ({ context, contextId, shouldUpdateBreadcrumb, onBreadcrumbUpdated, isAdmin = false }) => {\r\n const dispatch = useDispatch();\r\n const { data, loading } = useSelector((state) => state.breadcrumbs);\r\n const { CONFERENCE, SESSION, TEAM } = BreadcrumbContexts;\r\n const { league, conference, session, team } = data;\r\n const leagueUrl = `/leagues/${league?.id}`;\r\n const conferenceUrl = `/leagues/conference/${conference?.id}/manage`;\r\n const sessionUrl = isAdmin ? `/leagues/session/${session?.id}/manage` : `/leagues/session/${session?.id}`;\r\n\r\n useEffect(() => {\r\n if (context && contextId) {\r\n if (!data || data[context]?.id !== parseInt(contextId)) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (shouldUpdateBreadcrumb) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n onBreadcrumbUpdated();\r\n }\r\n }, [shouldUpdateBreadcrumb]);\r\n\r\n const getLastLabel = () => {\r\n let label;\r\n switch (context) {\r\n case CONFERENCE:\r\n label = conference?.name;\r\n break;\r\n case SESSION:\r\n label = session?.name;\r\n break;\r\n case TEAM:\r\n label = team?.name;\r\n break;\r\n default:\r\n label = '';\r\n }\r\n return label;\r\n };\r\n\r\n const renderBreadcrumb = (url, name, isCurrentContext, isBelowContext) => {\r\n if (isCurrentContext) {\r\n return {getLastLabel()};\r\n }\r\n\r\n if (isBelowContext) {\r\n return {name};\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const isConferenceContext = conference?.id && conference?.name && context === CONFERENCE;\r\n const isBelowConferenceContext = conference?.id && conference?.name && (context === SESSION || context === TEAM);\r\n const isSessionContext = session?.id && session?.name && context === SESSION;\r\n const isBelowSessionContext = session?.id && session?.name && context === TEAM;\r\n const isTeamContext = team?.id && team?.name && context === TEAM;\r\n\r\n return (\r\n
    \r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n {data && (\r\n \r\n {isAdmin && league?.id && league?.name && {league.name}}\r\n {isAdmin && renderBreadcrumb(conferenceUrl, conference?.name, isConferenceContext, isBelowConferenceContext)}\r\n {renderBreadcrumb(sessionUrl, session?.name, isSessionContext, isBelowSessionContext)}\r\n {isTeamContext && {team?.name}}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n isOpen: false,\r\n title: null,\r\n message: null,\r\n};\r\n\r\nconst genericPopupSlice = createSlice({\r\n name: 'genericPopup',\r\n initialState,\r\n reducers: {\r\n showPopup(state, action) {\r\n state.isOpen = true;\r\n state.title = action.payload.title;\r\n state.message = action.payload.message;\r\n },\r\n\r\n hidePopup(state) {\r\n state.isOpen = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { showPopup, hidePopup } = genericPopupSlice.actions;\r\nexport default genericPopupSlice.reducer;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport Typography from '@mui/material/Typography';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayerSearch from '../Form/PlayerSearch';\r\nimport PlayerSearchResultCard from '../Cards/PlayerSearchResultCard';\r\nimport Popup from '../Popups/Popup';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { LeagueRoles } from '../../utils/constants';\r\nimport { mapMembersForPlayerSearch } from '../../utils/helpers';\r\n\r\nconst MemberRoleManager = ({ members = [], isUpdatingRole, isLoadingTeam, memberRole, onAddMemberRole, onRemoveMemberRole }) => {\r\n const { TEAM_CAPTAIN } = LeagueRoles;\r\n const dispatch = useDispatch();\r\n const [originalMembers, setOriginalMembers] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [isRemovingMember, setIsRemovingMember] = useState(false);\r\n const [memberAwaitingAction, setMemberAwaitingAction] = useState();\r\n const minimumAmountOfMembersNeeded = 1;\r\n const maximumAmountOfCaptains = 3;\r\n\r\n useEffect(() => {\r\n if (members?.length) {\r\n const mappedMembers = mapMembersForPlayerSearch(members);\r\n setOriginalMembers(mappedMembers);\r\n }\r\n }, [members]);\r\n\r\n const isPermittedToRemoveMember = () => {\r\n if (members?.length === minimumAmountOfMembersNeeded) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: `There must always be at least one ${memberRole}`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const isPermittedToAddMember = () => {\r\n if (members?.length === maximumAmountOfCaptains && memberRole === TEAM_CAPTAIN) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: `Only 3 Captains are permitted per team.`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const handleOnAddMemberRole = (member) => {\r\n setMemberAwaitingAction(member);\r\n setIsRemovingMember(false);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnRemoveMemberRole = (member) => {\r\n setMemberAwaitingAction(member);\r\n setIsRemovingMember(true);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToRemoveMember = isPermittedToRemoveMember();\r\n if (isAbleToRemoveMember) {\r\n onRemoveMemberRole(memberAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnConfirmAddition = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToAddMember = isPermittedToAddMember();\r\n if (isAbleToAddMember) {\r\n onAddMemberRole(memberAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const action = isRemovingMember ? 'Remove' : 'Add';\r\n const popupAction = isRemovingMember ? handleOnConfirmRemoval : handleOnConfirmAddition;\r\n const popupTitle = `${action} ${memberRole}`;\r\n const popupMessage = `Are you sure you want to ${action?.toLowerCase()} ${memberAwaitingAction?.displayName} as a ${memberRole}?`;\r\n\r\n return isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n {`Current ${memberRole}s`}\r\n \r\n \r\n {isUpdatingRole ? (\r\n \r\n ) : (\r\n originalMembers.map((player) => (\r\n \r\n ))\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberRoleManager;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport TableCell from '@mui/material/TableCell';\r\n\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { StyledTableRow } from '../../Styled';\r\nimport { openClosedStatusTypes, sessionTypes, getTypeForId } from '../../../utils/types';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\n\r\nconst headCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'type', label: 'Type' },\r\n { id: 'status', label: 'Status' },\r\n { id: 'startDate', label: 'Start Date' },\r\n { id: 'empty' },\r\n { id: 'view' },\r\n];\r\n\r\nconst SessionsTable = ({ conferenceSessions = [], isLoading, onManageClick, onViewClick, onRemoveClick }) => {\r\n const [sessions, setSessions] = useState([]);\r\n\r\n useEffect(() => {\r\n const formattedSessions = conferenceSessions.map((session) => {\r\n const { sessionTypeId, sessionStatusTypeId, startDateUtc, ...fetchedSession } = session;\r\n const sessionType = getTypeForId(sessionTypeId, sessionTypes);\r\n const sessionStatus = getTypeForId(sessionStatusTypeId, openClosedStatusTypes);\r\n\r\n return {\r\n ...fetchedSession,\r\n type: sessionType.description,\r\n status: sessionStatus.description,\r\n startDate: getAdjustedDate({ dateUtc: startDateUtc, format: 'MMMM Do YYYY' }),\r\n };\r\n });\r\n\r\n setSessions(formattedSessions);\r\n }, [conferenceSessions]);\r\n\r\n const SessionTableRow = ({ rowData, labelId }) => {\r\n const { id, name, type, status, startDate, hasRegisteredPlayers } = rowData;\r\n\r\n const handleManageClick = () => {\r\n onManageClick(id);\r\n };\r\n\r\n const handleOnViewClick = () => {\r\n onViewClick(id);\r\n };\r\n\r\n const handleOnRemoveClick = () => {\r\n onRemoveClick(id, hasRegisteredPlayers);\r\n };\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n {type}\r\n {status}\r\n {startDate}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default SessionsTable;\r\n","import React from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport Pagination from '@mui/material/Pagination';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport SessionsTable from '../../../components/Tables/SessionsTable';\r\n\r\nconst SessionsTab = ({ sessions, conferenceId, isLoading, onRemoveSession, onPageChange, pageCount, currentPage }) => {\r\n const navigate = useNavigate();\r\n\r\n const handleOnCreateSessionClick = () => {\r\n navigate(`/leagues/${conferenceId}/session/create`);\r\n };\r\n\r\n const handleOnManageClick = (sessionId) => {\r\n navigate(`/leagues/session/${sessionId}/manage`);\r\n };\r\n\r\n const handleOnViewClick = (sessionId) => {\r\n navigate(`/leagues/session/${sessionId}`);\r\n };\r\n\r\n const handleOnRemoveClick = (sessionId, hasRegisteredPlayers) => {\r\n onRemoveSession(sessionId, hasRegisteredPlayers);\r\n };\r\n\r\n const handleOnPageChange = (event, page) => {\r\n event.preventDefault();\r\n onPageChange(page);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {!sessions?.length ? (\r\n \r\n No sessions have been created for this conference.\r\n \r\n ) : (\r\n <>\r\n \r\n {pageCount > 1 && (\r\n \r\n \r\n \r\n\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SessionsTab;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useLocation, useParams } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport Tab from '@mui/material/Tab';\r\nimport TabContext from '@mui/lab/TabContext';\r\nimport TabList from '@mui/lab/TabList';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport Breadcrumbs from '../../components/Breadcrumbs';\r\nimport CreateConferenceForm from '../../components/Forms/CreateConferenceForm';\r\nimport MemberRoleManager from '../../components/MemberRoleManager';\r\nimport SessionsTab from './SessionsTab';\r\nimport Popup from '../../components/Popups/Popup';\r\n\r\nimport { LeagueTabs, LeagueRoles, BreadcrumbContexts } from '../../utils/constants';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport {\r\n useGetConferenceQuery,\r\n useAddOrganizerMutation,\r\n useRemoveOrganizerMutation,\r\n useRemoveSessionMutation,\r\n} from '../../api/leaguesApi';\r\nimport { useGetConferenceSessions } from '../../hooks/useGetConferenceSessions';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst ManageConferencePage = () => {\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const { conferenceId } = useParams();\r\n const { CONFERENCE } = BreadcrumbContexts;\r\n const { CONFERENCE_ORGANIZER } = LeagueRoles;\r\n const { DETAILS, SESSIONS, ORGANIZERS } = LeagueTabs;\r\n const [activeTab, setActiveTab] = useState(SESSIONS);\r\n const [shouldUpdateBreadcrumb, setShouldUpdateBreadcrumb] = useState(false);\r\n const [showDeleteConfirmation, setShowDeleteConfirmation] = useState(false);\r\n const [showDeleteError, setShowDeleteError] = useState(false);\r\n const [sessionIdToDelete, setSessionIdToDelete] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n\r\n const unableToDeleteMessage =\r\n 'There are players registered to teams. To delete the session, players must first be removed from the team.';\r\n const deleteSessionMessage =\r\n 'Deleting this session will remove it from the conference. Any teams associated with the session will be removed too. Are you sure you want to delete?';\r\n\r\n const {\r\n data: conferenceDetails,\r\n isLoading: isLoadingConference,\r\n error: conferenceError,\r\n isFetchingConference,\r\n } = useGetConferenceQuery(parseInt(conferenceId));\r\n\r\n const { sessionResults, isLoadingSessions, totalPages } = useGetConferenceSessions(parseInt(conferenceId), pageNumber);\r\n\r\n const [addOrganizer, { isLoading: isAddingOrganizer }] = useAddOrganizerMutation();\r\n const [removeOrganizer, { isLoading: isRemovingOrganizer }] = useRemoveOrganizerMutation();\r\n const [removeSession, { isLoading: isRemovingSession }] = useRemoveSessionMutation();\r\n const isUpdatingOrganizers = isAddingOrganizer || isRemovingOrganizer || isFetchingConference;\r\n const isSessionsLoading = isLoadingSessions || isRemovingSession;\r\n\r\n if (conferenceError) {\r\n dispatch(showErrorPopup(conferenceError));\r\n }\r\n\r\n useEffect(() => {\r\n if (location?.state?.activeTab) {\r\n setActiveTab(location?.state?.activeTab);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (conferenceDetails) {\r\n dispatch(setSportTypeId(conferenceDetails?.sportTypeId));\r\n }\r\n }, [conferenceDetails]);\r\n\r\n const handleTabChange = (_, value) => {\r\n setActiveTab(value);\r\n };\r\n\r\n const handleOnBreadcrumbUpdated = () => {\r\n setShouldUpdateBreadcrumb(false);\r\n };\r\n\r\n const handleOnConferenceUpdated = () => {\r\n setShouldUpdateBreadcrumb(true);\r\n setActiveTab(SESSIONS);\r\n };\r\n\r\n const handleOnRemoveConferenceOrganizer = async (removedOrganizer) => {\r\n try {\r\n await removeOrganizer({ conferenceId, organizerId: removedOrganizer.id });\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnAddConferenceOrganizer = async (addedOrganizer) => {\r\n try {\r\n await addOrganizer({ conferenceId, organizer: { memberId: addedOrganizer.memberId } }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnRemoveSession = async (sessionId, hasRegisteredPlayers) => {\r\n if (hasRegisteredPlayers) {\r\n setShowDeleteError(true);\r\n } else {\r\n setSessionIdToDelete(sessionId);\r\n setShowDeleteConfirmation(true);\r\n }\r\n };\r\n\r\n const handleOnDeleteConfirmed = async () => {\r\n setShowDeleteConfirmation(false);\r\n\r\n try {\r\n await removeSession({ sessionId: sessionIdToDelete, conferenceId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnCloseDeletePopup = () => {\r\n setShowDeleteConfirmation(false);\r\n };\r\n\r\n const handleOnCloseDeleteErrorPopup = () => {\r\n setShowDeleteError(false);\r\n };\r\n\r\n const handleOnPageChange = (page) => {\r\n setPageNumber(page);\r\n };\r\n\r\n const tabs = [SESSIONS, ORGANIZERS, DETAILS];\r\n return (\r\n \r\n \r\n \r\n \r\n Manage Conference\r\n \r\n \r\n \r\n \r\n \r\n {tabs.map((tab) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ManageConferencePage;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { useGetConferenceSessionsQuery } from '../api/leaguesApi';\r\n\r\nexport const useGetConferenceSessions = (conferenceId, pageNumber) => {\r\n const pageSize = 25;\r\n const dispatch = useDispatch();\r\n const [sessionResults, setSessionResults] = useState([]);\r\n const [totalPages, setTotalPages] = useState(null);\r\n\r\n const {\r\n data: sessions,\r\n isLoading: isLoadingSessions,\r\n error: sessionError,\r\n } = useGetConferenceSessionsQuery({ conferenceId, pageNumber, pageSize });\r\n\r\n if (sessionError) {\r\n dispatch(showErrorPopup(sessionError));\r\n }\r\n\r\n useEffect(() => {\r\n if (sessions) {\r\n const { results, totalCount } = sessions || {};\r\n const pages = Math.ceil(totalCount / pageSize);\r\n setTotalPages(pages);\r\n setSessionResults(results);\r\n }\r\n }, [sessions]);\r\n\r\n return { sessionResults, totalPages, isLoadingSessions };\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { SortableTable, SquareAvatarWithName, Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Stack from '@mui/material/Stack';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\n\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { OrderByTypes } from '../../../utils/types';\r\nimport { getPowerIndex } from '../../../utils/helpers';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { addTeamsTablePropTypes, defaultAddTeamsTablePropTypes, teamTableRowProps } from '../../../utils/proptypes';\r\n\r\nconst headCells = [\r\n { id: OrderByTypes.TEAM_NAME, label: 'Team Name' },\r\n { id: 'captainNames', label: 'Captains', isSortingDisabled: true },\r\n { id: OrderByTypes.SESSION_NAME, label: 'Session' },\r\n { id: 'teamPowerIndexSingle', label: 'TPI S', isSortingDisabled: true },\r\n { id: 'teamPowerIndexDouble', label: 'TPI D', isSortingDisabled: true },\r\n { id: 'record', label: 'Record', isSortingDisabled: true },\r\n { id: OrderByTypes.RANK, label: 'Rank' },\r\n { id: 'checkbox' },\r\n];\r\n\r\nconst MAX_CAPTAINS_TO_SHOW = 2;\r\n\r\nconst AddTeamsTable = ({\r\n sessionTeams = [],\r\n isLoading,\r\n sortByProperty,\r\n sortOrder,\r\n selectedTeamIds,\r\n onTeamSelected,\r\n onSortChange,\r\n maxTeamsReached,\r\n}) => {\r\n const [teams, setTeams] = useState([]);\r\n const theme = useTheme();\r\n const { MEDIUM_MEDIUM, SMALL_MEDIUM, SMALL_BOOK, X_SMALL_MEDIUM } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const tableCellStyles = { borderBottom: 'none', maxWidth: '200px' };\r\n const smallTableCellStyles = { borderBottom: 'none', maxWidth: '150px' };\r\n\r\n useEffect(() => {\r\n const formattedTeams = sessionTeams.map((team) => {\r\n const { captains, sessionEndDateUtc, sessionStartDateUtc, wins, losses, ...rest } = team;\r\n const captainNames = captains.slice(0, MAX_CAPTAINS_TO_SHOW).map((captain) => `${captain?.firstName} ${captain?.lastName}`);\r\n const dateFormat = 'll';\r\n const startDate = getAdjustedDate({ dateUtc: sessionStartDateUtc, format: dateFormat });\r\n const endDate = getAdjustedDate({ dateUtc: sessionEndDateUtc, format: dateFormat });\r\n return {\r\n ...rest,\r\n captainNames,\r\n sessionDates: `${startDate} - ${endDate}`,\r\n record: `${wins} - ${losses}`,\r\n isSelected: selectedTeamIds?.includes(team.id),\r\n };\r\n });\r\n setTeams(formattedTeams);\r\n }, [sessionTeams]);\r\n\r\n const handleOnOrderPropertyChange = (property) => {\r\n onSortChange(property);\r\n };\r\n\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const { id, name, teamMemberCount, sessionName, captainNames, sessionDates, record, rank, teamPowerIndex } = rowData;\r\n\r\n const teamUrl = `/teams/${id}`;\r\n\r\n const handleOnItemSelected = () => {\r\n const selectedTeam = teams.find((team) => team.id === id);\r\n onTeamSelected(id, selectedTeam);\r\n };\r\n\r\n const isItemSelected = selectedTeamIds.includes(id);\r\n\r\n TeamTableRow.propTypes = {\r\n ...teamTableRowProps,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {captainNames?.map((captain) => (\r\n \r\n {captain}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {sessionName}\r\n \r\n \r\n {sessionDates}\r\n \r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated)}\r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated)}\r\n \r\n \r\n \r\n \r\n {record}\r\n \r\n \r\n \r\n \r\n {rank}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return sessionTeams?.length && !isLoading ? (\r\n \r\n ) : (\r\n <>\r\n \r\n Teams.\r\n \r\n \r\n Select a conference and session to see teams\r\n \r\n \r\n );\r\n};\r\n\r\nAddTeamsTable.propTypes = {\r\n ...addTeamsTablePropTypes,\r\n};\r\n\r\nAddTeamsTable.defaultProps = {\r\n ...defaultAddTeamsTablePropTypes,\r\n};\r\n\r\nexport default AddTeamsTable;\r\n","import React from 'react';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nimport { modalBaseSimplePropTypes, defaultModalBaseSimplePropTypes } from '../../utils/proptypes';\r\n\r\nconst DialogTitleSimple = (props) => {\r\n const { children, onClose, hideHeaderCloseIcon, ...other } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose && !hideHeaderCloseIcon ? (\r\n theme.palette.grey[500],\r\n }}\r\n >\r\n \r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nconst ModalBaseSimple = (props) => {\r\n const { open, onClose, title, children } = props;\r\n return (\r\n \r\n {title}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nModalBaseSimple.propTypes = {\r\n ...modalBaseSimplePropTypes\r\n};\r\n\r\nModalBaseSimple.defaultProps = {\r\n ...defaultModalBaseSimplePropTypes\r\n};\r\n\r\nexport default ModalBaseSimple;\r\n","import React from 'react';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport FormGroup from '@mui/material/FormGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Button from '@mui/material/Button';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport ModalBaseSimple from './ModalBaseSimple';\r\n\r\nconst AddTeamsNotificationModal = ({ open = false, selections, teamsCount, onClose, onSendClick, onChange }) => {\r\n const handleOnChange = (event) => {\r\n onChange(event);\r\n };\r\n\r\n const teamsText = teamsCount === 1 ? 'team' : 'teams';\r\n\r\n return (\r\n \r\n \r\n \r\n Would you like to notify captains or players?\r\n \r\n }\r\n label=\"Notify captains their team has been added\"\r\n />\r\n }\r\n label=\"Invite players to register for their team\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddTeamsNotificationModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Button, Typography, SquareAvatarWithName, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\nimport Pagination from '@mui/material/Pagination';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport AddTeamsTable from '../Tables/AddTeamsTable';\r\nimport AddTeamsNotificationModal from './AddTeamsNotificationModal';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { addTeamsModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst AddTeamsModal = ({\r\n isOpen,\r\n isLoadingOptions,\r\n isLoadingTeams,\r\n onClose,\r\n teams,\r\n maxTeams,\r\n currentTeamCount,\r\n currentPage,\r\n pageCount,\r\n conferences = [],\r\n sessions = [],\r\n selectedConferenceId,\r\n selectedSessionIds = [],\r\n onConferenceChange,\r\n onSessionChange,\r\n onApplyClick,\r\n onPageChange,\r\n onSortChange,\r\n onCloseSessionDropdown,\r\n onAddTeams,\r\n sortByProperty,\r\n sortOrder,\r\n}) => {\r\n const theme = useTheme();\r\n const { PRIMARY, DISPLAY, SECONDARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, XX_SMALL_MEDIUM_CAP, MEDIUM_MEDIUM, SMALL_MEDIUM } = TypographySizes;\r\n const [selectedTeamIds, setSelectedTeamIds] = useState([]);\r\n const [teamsToAdd, setTeamsToAdd] = useState([]);\r\n const [teamCount, setTeamCount] = useState();\r\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\r\n const [showSessionDropdown, setShowSessionDropdown] = useState(false);\r\n const [notifications, setNotifications] = useState({ notifyCaptains: false, notifyPlayers: false });\r\n\r\n const hasSessions = !!sessions?.length;\r\n const sessionLabelText = !hasSessions ? 'No sessions available' : 'Select Sessions';\r\n const isApplyDisabled = !selectedSessionIds.length;\r\n\r\n useEffect(() => {\r\n const teamsCount = currentTeamCount + teamsToAdd.length;\r\n setTeamCount(teamsCount);\r\n }, [teamsToAdd]);\r\n\r\n useEffect(() => {\r\n setTeamCount(currentTeamCount);\r\n }, [currentTeamCount]);\r\n\r\n const clearState = () => {\r\n setTeamsToAdd([]);\r\n setNotifications({ notifyCaptains: false, notifyPlayers: false });\r\n setSelectedTeamIds([]);\r\n };\r\n\r\n const handleOnConferenceChange = (event) => {\r\n onConferenceChange(event.target.value);\r\n };\r\n\r\n const handleOnSessionsChange = (event) => {\r\n onSessionChange(event.target.value);\r\n };\r\n\r\n const handleOnApplyClick = (event) => {\r\n event.preventDefault();\r\n setShowSessionDropdown(false);\r\n onApplyClick();\r\n };\r\n\r\n const handleOnTeamSelected = (id, team) => {\r\n if (selectedTeamIds.includes(id)) {\r\n const updatedSelectedTeamIds = selectedTeamIds.filter((teamId) => teamId !== id);\r\n const updatedTeamsToAdd = teamsToAdd.filter((addedTeam) => addedTeam.id !== team.id);\r\n\r\n setSelectedTeamIds(updatedSelectedTeamIds);\r\n setTeamsToAdd(updatedTeamsToAdd);\r\n } else {\r\n const selectedIds = [...selectedTeamIds, id];\r\n if (selectedIds.length <= maxTeams - currentTeamCount) {\r\n setSelectedTeamIds(selectedIds);\r\n setTeamsToAdd([...teamsToAdd, team]);\r\n }\r\n }\r\n };\r\n\r\n const handleOnTeamRemoved = (id, team) => {\r\n const updatedSelectedTeamIds = selectedTeamIds?.filter((teamId) => teamId !== id);\r\n const updatedTeamsToAdd = teamsToAdd?.filter((addedTeam) => addedTeam.id !== team.id);\r\n\r\n setSelectedTeamIds(updatedSelectedTeamIds);\r\n setTeamsToAdd(updatedTeamsToAdd);\r\n };\r\n\r\n const handleOnPageChange = (event, page) => {\r\n event.preventDefault();\r\n onPageChange(page);\r\n };\r\n\r\n const handleOnSortPropertyChange = (property) => {\r\n onSortChange(property);\r\n };\r\n\r\n const getOptionSelections = (selectedOptions, options) => {\r\n const optionNames = options.reduce((selectedOptionDescriptions, option) => {\r\n if (selectedOptions.includes(option.sessionId)) {\r\n selectedOptionDescriptions.push(option.sessionName);\r\n }\r\n return selectedOptionDescriptions;\r\n }, []);\r\n\r\n return optionNames.join(', ');\r\n };\r\n\r\n const handleOnAddTeamsClick = () => {\r\n setShowConfirmationModal(true);\r\n };\r\n\r\n const handleOnCloseConfirmationModal = () => {\r\n setShowConfirmationModal(false);\r\n };\r\n\r\n const handleOnNotificationChange = (event) => {\r\n setNotifications({\r\n ...notifications,\r\n [event.target.name]: event.target.checked,\r\n });\r\n };\r\n\r\n const handleOnSendClick = () => {\r\n onAddTeams(notifications, selectedTeamIds);\r\n setShowConfirmationModal(false);\r\n clearState();\r\n };\r\n\r\n const handleOnCloseSessionDropdown = () => {\r\n setShowSessionDropdown(false);\r\n onCloseSessionDropdown();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Add an existing team\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Select Conference\r\n \r\n {conferences?.map((option) => (\r\n \r\n {option.name}\r\n \r\n ))}\r\n \r\n \r\n \r\n {sessionLabelText}\r\n setShowSessionDropdown(true)}\r\n onClose={handleOnCloseSessionDropdown}\r\n multiple\r\n disabled={!hasSessions || isLoadingOptions}\r\n labelId=\"session-select\"\r\n onChange={handleOnSessionsChange}\r\n renderValue={(selected) => getOptionSelections(selected, sessions)}\r\n >\r\n {sessions?.map((option) => (\r\n \r\n -1} />\r\n {option.sessionName}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoadingTeams ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {pageCount > 1 && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {`Selected Teams (${teamCount}/${maxTeams})`}\r\n {teamsToAdd.map((team) => (\r\n \r\n \r\n \r\n handleOnTeamRemoved(team?.id, team)} sx={{ '&:hover': { borderRadius: '50%' } }}>\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nAddTeamsModal.propTypes = {\r\n ...addTeamsModalPropTypes\r\n};\r\n\r\nexport default AddTeamsModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\n\r\nimport AddTeamsModal from '../Modals/AddTeamsModal';\r\nimport { useGetLeagueConferencesQuery, useGetSessionNamesQuery } from '../../api/leaguesApi';\r\nimport { useGetTeamsForSessions } from '../../hooks/useGetTeamsForSessions';\r\nimport { OrderByRuleTypes, OrderByTypes } from '../../utils/types';\r\n\r\nconst AddTeamContainer = ({ sessionId, leagueId, conferenceId, isOpen, onClose, maxTeams, teamCount, onAddTeams }) => {\r\n const dispatch = useDispatch();\r\n const { ASCENDING, DESCENDING } = OrderByRuleTypes;\r\n const { TEAM_NAME } = OrderByTypes;\r\n const [selectedConferenceId, setSelectedConferenceId] = useState(null);\r\n const [selectedSessionIds, setSelectedSessionIds] = useState([]);\r\n const [originalSessionIds, setOriginalSessionIds] = useState([]);\r\n const [sortOrder, setSortOrder] = useState(ASCENDING);\r\n const [sortByProperty, setSortByProperty] = useState(TEAM_NAME);\r\n const [sessionNames, setSessionNames] = useState([]);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n const { data, isFetching: isLoadingConferences, error } = useGetLeagueConferencesQuery(leagueId, { skip: !isOpen });\r\n\r\n const {\r\n data: conferenceSessionNames,\r\n isFetching: isLoadingSessionNames,\r\n error: sessionNamesError,\r\n } = useGetSessionNamesQuery(selectedConferenceId, { skip: !isOpen || !selectedConferenceId });\r\n\r\n const fetchingError = error || sessionNamesError;\r\n const isLoading = isLoadingConferences || isLoadingSessionNames;\r\n\r\n const { teamSearchResults, isFetchingResults, handleRefetch, clearSearchResults, totalPages } = useGetTeamsForSessions(\r\n sessionId,\r\n selectedSessionIds,\r\n sortByProperty,\r\n sortOrder,\r\n pageNumber\r\n );\r\n\r\n if (fetchingError) {\r\n dispatch(showErrorPopup(fetchingError));\r\n }\r\n\r\n useEffect(() => {\r\n if (conferenceId) {\r\n setSelectedConferenceId(conferenceId);\r\n }\r\n }, [conferenceId]);\r\n\r\n useEffect(() => {\r\n if (conferenceSessionNames?.results?.length) {\r\n const filteredSessionNames = conferenceSessionNames.results.filter((result) => result.sessionId !== sessionId);\r\n const sessionIds = filteredSessionNames.map((session) => session.sessionId);\r\n setSessionNames(filteredSessionNames);\r\n\r\n if (sessionIds?.length) {\r\n setSelectedSessionIds(sessionIds);\r\n setOriginalSessionIds(sessionIds);\r\n handleRefetch();\r\n } else {\r\n setSelectedSessionIds([]);\r\n setOriginalSessionIds([]);\r\n }\r\n }\r\n }, [conferenceSessionNames]);\r\n\r\n useEffect(() => {\r\n if (sessionNames?.length && isOpen) {\r\n handleRefetch();\r\n }\r\n }, [sessionNames, isOpen]);\r\n\r\n const handleAddTeams = async (notifications, teamIds) => {\r\n onClose();\r\n const { notifyPlayers, notifyCaptains } = notifications;\r\n const requestBody = {\r\n sessionId,\r\n teamIds,\r\n notifyPlayers,\r\n notifyCaptains,\r\n };\r\n\r\n onAddTeams(requestBody);\r\n };\r\n\r\n const handleOnCloseAddTeamModal = () => {\r\n onClose();\r\n };\r\n\r\n const handleOnConferenceChange = (id) => {\r\n clearSearchResults();\r\n setSessionNames([]);\r\n setPageNumber(1);\r\n setSelectedConferenceId(id);\r\n };\r\n\r\n const handleOnSessionIdsChange = (sessionIds) => {\r\n setSelectedSessionIds(sessionIds);\r\n };\r\n\r\n const handleOnApplyClick = () => {\r\n setPageNumber(1);\r\n setOriginalSessionIds(selectedSessionIds);\r\n handleRefetch();\r\n };\r\n\r\n const handleOnPageChange = (page) => {\r\n setPageNumber(page);\r\n handleRefetch();\r\n };\r\n\r\n const handleOnCloseSessionDropdown = () => {\r\n setSelectedSessionIds(originalSessionIds);\r\n };\r\n\r\n const handleOnSortChange = (property) => {\r\n if (property === sortByProperty) {\r\n const sortDirection = sortOrder === ASCENDING ? DESCENDING : ASCENDING;\r\n setSortOrder(sortDirection);\r\n } else {\r\n setSortOrder(ASCENDING);\r\n }\r\n setSortByProperty(property);\r\n handleRefetch();\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default AddTeamContainer;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { getTeamsForSession } from '../api/leaguesApi';\r\n\r\nexport const useGetTeamsForSessions = (sessionId, sessionIds, sortBy, sortOrder, pageNumber) => {\r\n const pageSize = 20;\r\n const dispatch = useDispatch();\r\n\r\n const [teamSearchResults, setTeamSearchResults] = useState([]);\r\n const [isFetchingResults, setIsFetchingResults] = useState(false);\r\n const [totalPages, setTotalPages] = useState(null);\r\n const [refetch, setRefetch] = useState(false);\r\n\r\n const handleRefetch = () => {\r\n setRefetch(true);\r\n };\r\n\r\n const clearSearchResults = () => {\r\n setTotalPages(null);\r\n setTeamSearchResults([]);\r\n };\r\n\r\n useEffect(() => {\r\n const handleOnSubmit = async () => {\r\n setIsFetchingResults(true);\r\n\r\n const parameters = {\r\n fromSessionIds: sessionIds || [],\r\n orderBy: sortBy,\r\n orderByRule: sortOrder.id,\r\n pageNumber,\r\n pageSize,\r\n };\r\n\r\n const response = await getTeamsForSession(sessionId, parameters).catch((searchError) => {\r\n setIsFetchingResults(false);\r\n dispatch(showErrorPopup(searchError));\r\n });\r\n\r\n if (response?.data) {\r\n const { results, totalCount } = response.data;\r\n const pages = Math.ceil(totalCount / pageSize);\r\n\r\n setTotalPages(pages);\r\n setTeamSearchResults(results);\r\n setIsFetchingResults(false);\r\n }\r\n\r\n setRefetch(false);\r\n };\r\n\r\n if (refetch) {\r\n handleOnSubmit();\r\n }\r\n }, [refetch]);\r\n\r\n return { teamSearchResults, isFetchingResults, handleRefetch, clearSearchResults, totalPages };\r\n};\r\n","import React, { useState } from 'react';\r\n\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport { Box, Checkbox, FormControlLabel } from '@mui/material';\r\n\r\nimport { confirmPublishSchedulePopupPropTypes, defaultConfirmPublishSchedulePopupPropTypes } from '../../utils/proptypes';\r\n\r\nconst ConfirmPublishSchedulePopup = ({ open, onClose, title, message, checkboxLabel, errorMessage, buttonLabel, onAction, actionLabel }) => {\r\n const [isNotifyingTeams, setIsNotifyingTeams] = useState(false);\r\n\r\n const handleActionButtonClick = () => {\r\n onAction({ isNotifyingTeams });\r\n };\r\n\r\n const handleOnNotifyChange = (event) => {\r\n setIsNotifyingTeams(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n \r\n {!!title && (\r\n \r\n {title}\r\n \r\n )}\r\n\r\n \r\n {message}\r\n \r\n {!!errorMessage && (\r\n \r\n {errorMessage}\r\n \r\n )}\r\n \r\n } label={checkboxLabel} />\r\n \r\n \r\n {buttonLabel && (\r\n \r\n )}\r\n {onAction && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nConfirmPublishSchedulePopup.propTypes = {\r\n ...confirmPublishSchedulePopupPropTypes\r\n};\r\n\r\nConfirmPublishSchedulePopup.defaultProps = {\r\n ...defaultConfirmPublishSchedulePopupPropTypes\r\n};\r\n\r\nexport default ConfirmPublishSchedulePopup;\r\n","import React from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nimport { bootstrapDialogTitlePropTypes, modalBaseWithHeaderPropTypes, defaultModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst BootstrapDialog = styled(Dialog)(({ theme }) => ({\r\n '& .MuiDialogContent-root': {\r\n padding: theme.spacing(2),\r\n },\r\n '& .MuiDialogActions-root': {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst BootstrapDialogTitle = (props) => {\r\n const { children, onClose, ...other } = props;\r\n\r\n return (\r\n \r\n {children}\r\n {onClose && (\r\n theme.palette.grey[500],\r\n }}\r\n >\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nBootstrapDialogTitle.propTypes = {\r\n ...bootstrapDialogTitlePropTypes\r\n};\r\n\r\nconst ModalBaseWithHeader = (props) => {\r\n const { title, onClose, open, children } = props;\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nModalBaseWithHeader.propTypes = {\r\n ...modalBaseWithHeaderPropTypes\r\n};\r\n\r\nModalBaseWithHeader.defaultProps = {\r\n ...defaultModalPropTypes\r\n};\r\n\r\nexport default ModalBaseWithHeader;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport OutlinedInput from '@mui/material/OutlinedInput';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nconst ITEM_HEIGHT = 48;\r\nconst ITEM_PADDING_TOP = 8;\r\nconst MenuProps = {\r\n PaperProps: {\r\n style: {\r\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\r\n width: 250,\r\n },\r\n },\r\n};\r\n\r\nexport const getOptionSelections = (selectedOptions, options) => {\r\n const optionDescriptions = options.reduce((selectedOptionDescriptions, option) => {\r\n if (selectedOptions.includes(option.id)) {\r\n selectedOptionDescriptions.push(option.description);\r\n }\r\n return selectedOptionDescriptions;\r\n }, []);\r\n\r\n return optionDescriptions.join(', ');\r\n};\r\n\r\nconst MultiSelect = ({ control, isFullWidth, isRequired = false, label, labelId, name, options, hasError }) => (\r\n (\r\n \r\n {label}\r\n }\r\n renderValue={(selected) => getOptionSelections(selected, options)}\r\n MenuProps={MenuProps}\r\n error={hasError}\r\n >\r\n {options.map((option) => (\r\n \r\n -1} />\r\n {option.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n);\r\n\r\nexport default MultiSelect;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport ModalBaseWithHeader from './ModalBaseWithHeader';\r\nimport MultiSelect from '../Form/MultiSelect';\r\n\r\nconst CopyPlayerModal = ({ availableTeams, onClose, open, onSubmit, isLoadingAvailableTeams }) => {\r\n const [isSubstituteChecked, setIsSubstituteChecked] = useState(false);\r\n\r\n const defaultValues = { teamIds: [] };\r\n const {\r\n handleSubmit,\r\n formState,\r\n formState: { errors },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (formState.isSubmitSuccessful) {\r\n reset({ teamIds: [] });\r\n setIsSubstituteChecked(false);\r\n }\r\n }, [formState, reset]);\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.teamIds, isSubstituteChecked);\r\n };\r\n\r\n const handleOnCheckboxChange = (event) => {\r\n setIsSubstituteChecked(event.target.checked);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n {isLoadingAvailableTeams && }\r\n {!!availableTeams.length && (\r\n <>\r\n \r\n Select one or more teams to copy the player to\r\n \r\n \r\n \r\n }\r\n label=\"Substitute Player\"\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default CopyPlayerModal;\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Select from '@mui/material/Select';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Grid from '@mui/material/Grid';\r\nimport ControlPointIcon from '@mui/icons-material/ControlPoint';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\n\r\nimport RemoveCircleOutlineIcon from '@mui/icons-material/RemoveCircleOutline';\r\n\r\nimport { Typography, FullPageModal } from '@universal-tennis/ui-shared';\r\nimport { useForm, useFieldArray } from 'react-hook-form';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { getPowerIndex } from '../../utils/helpers';\r\nimport { createDrawModalPropTypes, defaultCreateDrawModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst CreateDrawModal = (props) => {\r\n const theme = useTheme();\r\n const { onClose, open, onSubmit, selectableTeams, onSkip } = props;\r\n\r\n const mappedSelectableTeams = selectableTeams?.map((team) => {\r\n return {\r\n teamId: team?.id,\r\n name: team?.name,\r\n seed: team?.seed,\r\n teamPowerIndex: team?.teamPowerIndex\r\n };\r\n });\r\n const sortDefaultvalues = mappedSelectableTeams?.slice().filter((team) => !!team.seed);\r\n const sortedArray = sortDefaultvalues?.sort((a, b) => parseFloat(a.seed) - parseFloat(b.seed)) || [];\r\n\r\n const defaultValues = sortedArray.length === selectableTeams.length ? {\r\n drawTeams: sortedArray\r\n } : {\r\n drawTeams: [...sortedArray, { name: '' }]\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n register,\r\n watch,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const { fields, append, remove } = useFieldArray({\r\n control,\r\n name: 'drawTeams',\r\n rules: { minLength: 1 }\r\n });\r\n\r\n const SEED_DESCRIPTION = `Provide up to ${selectableTeams?.length} seeds for the draw.`;\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.drawTeams);\r\n };\r\n\r\n const watchFieldArray = watch('drawTeams', defaultValues);\r\n const controlledFields = fields.map((field, index) => {\r\n return {\r\n ...field,\r\n ...watchFieldArray[index]\r\n };\r\n });\r\n\r\n const isShowingCTAButton = (controlledFields.length >= 1 && controlledFields[0].teamId);\r\n\r\n const getTeamNameForSelection = (teamId) => {\r\n const selectedTeam = mappedSelectableTeams?.find((team) => team?.teamId === teamId);\r\n return `${selectedTeam?.name}`;\r\n };\r\n\r\n return (\r\n onSkip()}\r\n >\r\n \r\n \r\n
    \r\n \r\n \r\n {SEED_DESCRIPTION}\r\n \r\n\r\n {controlledFields.map((item, index) => {\r\n return (\r\n \r\n \r\n {index + 1}.\r\n \r\n\r\n \r\n Select Team\r\n getTeamNameForSelection(value)}\r\n {...register(`drawTeams.${index}.teamId`)}\r\n >\r\n {mappedSelectableTeams\r\n .filter((selectableTeam) => {\r\n const isSelectableTeamSelected = !!controlledFields.find((selectedTeam) => selectedTeam.teamId === selectableTeam.teamId);\r\n const isSelectableTeamIsInThisField = selectableTeam.teamId === item.teamId;\r\n\r\n if (isSelectableTeamIsInThisField) return selectableTeam;\r\n if (isSelectableTeamSelected) return;\r\n return selectableTeam;\r\n })\r\n .map((team) => (\r\n \r\n \r\n \r\n {team.name}\r\n \r\n \r\n TPI S: \r\n {getPowerIndex(team?.teamPowerIndex?.singlesRating, team?.teamPowerIndex?.isSinglesEstimated)}\r\n \r\n \r\n TPI D:\r\n {getPowerIndex(team?.teamPowerIndex?.doublesRating, team?.teamPowerIndex?.isDoublesEstimated)}\r\n \r\n \r\n \r\n )) }\r\n \r\n \r\n {selectableTeams?.length === controlledFields?.length ? null : (\r\n \r\n ) }\r\n {controlledFields?.length !== 1 ? (\r\n \r\n ) : null}\r\n \r\n );\r\n })}\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nCreateDrawModal.propTypes = {\r\n ...createDrawModalPropTypes\r\n};\r\n\r\nCreateDrawModal.defaultProps = {\r\n ...defaultCreateDrawModalPropTypes\r\n};\r\n\r\nexport default CreateDrawModal;\r\n","import React from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nimport { tennisScoringTypes, pickleballScoringTypes, durationTypes, SportTypeIds, getTypeForId } from '../../utils/types';\r\n\r\nimport { matchFormatPropTypes } from '../../utils/proptypes';\r\n\r\nconst MatchFormat = ({\r\n matchCount = '',\r\n pointsPerMatch = '',\r\n scoringFormatTypeId = '',\r\n timeAllowedTypeId = '',\r\n isDoubles = false,\r\n sportTypeId = '',\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n const scoringTypes = isTennisMatch ? tennisScoringTypes : pickleballScoringTypes;\r\n const scoringFormatDescription = getTypeForId(scoringFormatTypeId, scoringTypes)?.description;\r\n const timeAllottedPerMatch = getTypeForId(timeAllowedTypeId, durationTypes)?.description;\r\n\r\n const formatType = isDoubles ? 'Doubles' : 'Singles';\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {formatType} matches per team\r\n \r\n \r\n {matchCount}\r\n \r\n \r\n \r\n \r\n Points per match win\r\n \r\n \r\n {pointsPerMatch}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Scoring Format\r\n \r\n \r\n {scoringFormatDescription}\r\n \r\n \r\n \r\n \r\n Time allotted per match\r\n \r\n \r\n {timeAllottedPerMatch}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nMatchFormat.propTypes = {\r\n ...matchFormatPropTypes,\r\n};\r\n\r\nexport default MatchFormat;\r\n","import React from 'react';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst FullPageModal = ({ title, children, ctaTitle, onCtaClick, isOpen, onClose, isCtaButtonDisabled = false }) => {\r\n const theme = useTheme();\r\n const { PRIMARY, DISPLAY } = SharedUICategories;\r\n const { MEDIUM_BOOK } = TypographySizes;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default FullPageModal;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport MuiTimePicker from '@mui/lab/TimePicker';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nconst TimePicker = (props) => {\r\n const { control, name, label, isRequired = false } = props;\r\n\r\n return (\r\n \r\n (\r\n }\r\n />\r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default TimePicker;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { skipToken } from '@reduxjs/toolkit/dist/query/react';\r\nimport moment from 'moment';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport DatePicker from '@mui/lab/DatePicker';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport Paper from '@mui/material/Paper';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport FullPageModal from './FullPageModal';\r\nimport Input from '../Form/Input';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport Location from '../Form/Location';\r\nimport Popup from '../Popups/Popup';\r\nimport Select from '../Form/Select';\r\nimport SessionMatchFormat from '../SessionMatchFormat';\r\nimport TimePicker from '../Form/TimePicker';\r\nimport { CustomSwitch } from '../Styled';\r\nimport { getTooManyMatchesPerTeamError } from '../../utils/sessions';\r\n\r\nimport {\r\n FrequencyTypes,\r\n LeagueSessionTypes,\r\n MatchFormatTypes,\r\n SessionDrawTypes,\r\n SessionStandingsRules,\r\n SessionStandingsTypes,\r\n StatusTypes,\r\n TournamentTeamsCount,\r\n drawTypes,\r\n matchFrequencyTypes,\r\n sessionMatchFormatTypes,\r\n sessionTypes,\r\n tournamentTeamsCountOptions,\r\n tennisSessionStandingsOptions,\r\n pickleballSessionStandingsOptions,\r\n SportTypeIds,\r\n} from '../../utils/types';\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { getLocationData } from '../../utils/location';\r\nimport { useUpdateSessionMutation, useGetLeagueFeesQuery } from '../../api/leaguesApi';\r\nimport { getAdjustedDate } from '../../utils/display';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport { manageSessionModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst CUSTOM_MORE_MATCHES_TEXT = 'There are more matches per team than weeks in the session.';\r\n\r\nconst ManageSessionModal = ({ sessionDetails = {}, isLoadingSession = false, title = '', isOpen = false, onClose, onSaveClick }) => {\r\n const params = useParams();\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_BOOK, X_SMALL_BOOK, MEDIUM_BOOK } = TypographySizes;\r\n const dispatch = useDispatch();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n\r\n const sessionId = params?.sessionId;\r\n const { OPEN, CLOSED } = StatusTypes;\r\n const { ONCE_A_WEEK } = FrequencyTypes;\r\n const { TOURNAMENT } = LeagueSessionTypes;\r\n const { FIRST_MATCH_BACK_DRAW } = SessionDrawTypes;\r\n const { BOTH, DOUBLES, SINGLES } = MatchFormatTypes;\r\n const { FOUR, EIGHT, SIXTEEN } = TournamentTeamsCount;\r\n const { TENNIS_WIN_LOSS_RECORD, PICKLEBALL_WIN_LOSS_RECORD } = SessionStandingsTypes;\r\n const { hasRegisteredPlayers, hasPostedResults, hasPublishedSchedule, hasSchedule } = sessionDetails || {};\r\n const isRestrictedSession = hasPostedResults && hasPublishedSchedule;\r\n const canRegister = sessionDetails?.sessionStatusTypeId === OPEN;\r\n const isTennisSession = sportTypeId === SportTypeIds.TENNIS;\r\n const standingsRuleOptions = isTennisSession ? tennisSessionStandingsOptions : pickleballSessionStandingsOptions;\r\n\r\n const [sessionRegistrationStatus, setSessionRegistrationStatus] = useState(true);\r\n const [updatedSessionRegistrationStatus, setUpdatedSessionRegistrationStatus] = useState(OPEN);\r\n const [startDate, setStartDate] = useState(sessionDetails?.startDateUtc);\r\n const [endDate, setEndDate] = useState(sessionDetails?.endDateUtc);\r\n const [registrationStartDate, setRegistrationStartDate] = useState(sessionDetails?.teamRegistrationStartDateUtc);\r\n const [registrationEndDate, setRegistrationEndDate] = useState(sessionDetails?.teamRegistrationEndDateUtc);\r\n const [totalPlayerCost, setTotalPlayerCost] = useState();\r\n const [matchFormat, setMatchFormat] = useState('');\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalFormData, setOriginalFormData] = useState();\r\n const [isTournamentSession, setIsTournamentSession] = useState(false);\r\n const [conferenceId, setConferenceId] = useState(parseInt(params?.conferenceId) || skipToken);\r\n const [leagueVerifiedFee, setLeagueVerifiedFee] = useState(0);\r\n const [showRuleConfirmationModal, setShowRuleConfirmationModal] = useState(false);\r\n const [sessionStandingsRuleId, setSessionStandingsRuleId] = useState(\r\n isTennisSession ? TENNIS_WIN_LOSS_RECORD : PICKLEBALL_WIN_LOSS_RECORD\r\n );\r\n const [updatedStandingsRuleId, setUpdatedStandingsRuleId] = useState(null);\r\n\r\n const registrationStatusDescription = sessionRegistrationStatus ? 'Open' : 'Closed';\r\n const [updateSession] = useUpdateSessionMutation();\r\n const { isLoading: isLoadingLeaguesFees, error } = useGetLeagueFeesQuery(conferenceId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n conferenceId: parseInt(params?.conferenceId),\r\n description: '',\r\n doublesMatchCount: '',\r\n doublesPointsPerMatch: '',\r\n doublesScoringFormatTypeId: '',\r\n doublesTimeAllowedTypeId: '',\r\n drawTypeId: FIRST_MATCH_BACK_DRAW,\r\n endDateUtc: moment().add(5, 'days'),\r\n matchesPerTeam: '',\r\n name: '',\r\n registrationFee: 0,\r\n registrationVerificationFee: 0,\r\n sessionStatusTypeId: OPEN,\r\n sessionDetails: SINGLES,\r\n sessionTypeId: '',\r\n singlesMatchCount: '',\r\n singlesPointsPerMatch: '',\r\n singlesScoringFormatTypeId: '',\r\n singlesTimeAllowedTypeId: '',\r\n startDateUtc: moment().add(3, 'days'),\r\n teamRegistrationEndDateUtc: moment().add(2, 'days').add(2, 'hour'),\r\n teamRegistrationStartDateUtc: moment().add(2, 'hour'),\r\n teamRequiredPlayersMin: 2,\r\n teamsMax: '',\r\n location: '',\r\n teamMatchFrequencyTypeId: ONCE_A_WEEK,\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n getValues,\r\n setValue,\r\n setError,\r\n clearErrors,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (sessionDetails) {\r\n const {\r\n conferenceId: sessionConferenceId,\r\n endDateUtc,\r\n startDateUtc,\r\n registrationFee,\r\n teamRegistrationStartDateUtc,\r\n teamRegistrationEndDateUtc,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n sessionStandingsTypeId,\r\n sessionStatusTypeId,\r\n description,\r\n drawTypeId,\r\n ...fetchedSession\r\n } = sessionDetails;\r\n\r\n setConferenceId(sessionConferenceId);\r\n setSessionStandingsRuleId(sessionStandingsTypeId ?? sessionStandingsRuleId);\r\n\r\n let sessionLocation = '';\r\n const isTournament = sessionTypeId === TOURNAMENT;\r\n if (isTournament) {\r\n sessionLocation = sessionDetails?.location?.placeName || '';\r\n setOriginalLocation(sessionDetails?.location);\r\n setIsTournamentSession(true);\r\n }\r\n\r\n let formData;\r\n\r\n if (sessionMatchTypeId !== BOTH) {\r\n formData = {\r\n ...defaultValues,\r\n ...fetchedSession,\r\n sessionTypeId,\r\n drawTypeId,\r\n description: description || '',\r\n registrationFee,\r\n sessionStatusTypeId,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({\r\n dateUtc: teamRegistrationStartDateUtc,\r\n format: null,\r\n adjustForDSL: false,\r\n }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n } else {\r\n formData = {\r\n ...fetchedSession,\r\n drawTypeId,\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionStatusTypeId,\r\n sessionTypeId,\r\n description: description || '',\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({\r\n dateUtc: teamRegistrationStartDateUtc,\r\n format: null,\r\n adjustForDSL: false,\r\n }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n }\r\n\r\n setSessionRegistrationStatus(canRegister);\r\n setTotalPlayerCost(parseInt(registrationFee) + parseInt(registrationVerificationFee));\r\n setLeagueVerifiedFee(registrationVerificationFee);\r\n setOriginalFormData(formData);\r\n reset(formData);\r\n setMatchFormat(sessionMatchTypeId);\r\n dispatch(setSportTypeId(sessionDetails?.sportTypeId));\r\n }\r\n }, [sessionDetails]);\r\n\r\n const extractDate = (dateTimeStr) => {\r\n return getAdjustedDate({ dateUtc: moment(dateTimeStr).toISOString(), format: 'YYYY-MM-DD' });\r\n };\r\n\r\n const extractTime = (dateUtc) => {\r\n const dateTimeStr = getAdjustedDate({ dateUtc, format: null, adjustForDSL: true }).toISOString();\r\n const tIndex = dateTimeStr.indexOf('T');\r\n return dateTimeStr.substring(tIndex);\r\n };\r\n\r\n const onHandleRegistrationStatusSwitch = () => {\r\n const newId = updatedSessionRegistrationStatus === OPEN ? CLOSED : OPEN;\r\n setSessionRegistrationStatus((prevStatus) => !prevStatus);\r\n setUpdatedSessionRegistrationStatus(newId);\r\n };\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const session = { ...formValues };\r\n\r\n session.startDateUtc = `${extractDate(startDate)}${extractTime(session.startDateUtc)}`;\r\n session.endDateUtc = `${extractDate(endDate)}${extractTime(session.endDateUtc)}`;\r\n session.teamRegistrationStartDateUtc = `${extractDate(registrationStartDate)}${extractTime(session.teamRegistrationStartDateUtc)}`;\r\n session.teamRegistrationEndDateUtc = `${extractDate(registrationEndDate)}${extractTime(session.teamRegistrationEndDateUtc)}`;\r\n session.description = session.description.trim().length === 0 ? null : session.description;\r\n session.sessionMatchTypeId = matchFormat;\r\n session.sessionStatusTypeId = updatedSessionRegistrationStatus;\r\n session.sessionStandingsTypeId = sessionStandingsRuleId;\r\n\r\n if (matchFormat === SINGLES) {\r\n delete session.doublesMatchCount;\r\n delete session.doublesPointsPerMatch;\r\n delete session.doublesScoringFormatTypeId;\r\n delete session.doublesTimeAllowedTypeId;\r\n }\r\n\r\n if (matchFormat === DOUBLES) {\r\n delete session.singlesMatchCount;\r\n delete session.singlesPointsPerMatch;\r\n delete session.singlesScoringFormatTypeId;\r\n delete session.singlesTimeAllowedTypeId;\r\n }\r\n\r\n const sessionType = getValues('sessionTypeId');\r\n\r\n if (sessionType === TOURNAMENT) {\r\n delete session.teamMatchFrequencyTypeId;\r\n\r\n if (dirtyFields.location) {\r\n session.location = await getLocationData(formValues.location);\r\n } else {\r\n session.location = originalLocation;\r\n }\r\n } else {\r\n delete session.location;\r\n }\r\n\r\n try {\r\n await updateSession({ sessionId, session, conferenceId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleEntryFeeChange = (e) => {\r\n const feeValue = parseInt(e.target.value);\r\n if (!Number.isNaN(feeValue)) {\r\n setTotalPlayerCost(parseInt(e.target.value) + leagueVerifiedFee);\r\n } else {\r\n setTotalPlayerCost(leagueVerifiedFee);\r\n }\r\n };\r\n\r\n const handleOnMatchFormatChange = (event) => {\r\n setMatchFormat(event.target.value);\r\n };\r\n\r\n const handleOnEventStartDateChange = (date) => {\r\n setStartDate(date);\r\n };\r\n\r\n const handleOnEventEndDateChange = (date) => {\r\n setEndDate(date);\r\n };\r\n\r\n const handleOnRegistrationStartDateChange = (date) => {\r\n setRegistrationStartDate(date);\r\n };\r\n\r\n const handleOnRegistrationEndDateChange = (date) => {\r\n setRegistrationEndDate(date);\r\n };\r\n\r\n const handleOnSessionTypeChange = (event) => {\r\n const isTournament = event.target.value === TOURNAMENT;\r\n setIsTournamentSession(isTournament);\r\n };\r\n\r\n const handleMatchesPerTeamCheck = (event) => {\r\n clearErrors('matchesPerTeam');\r\n setValue('matchesPerTeam', event.target.value);\r\n const session = getValues();\r\n\r\n const hasErrors = getTooManyMatchesPerTeamError({\r\n ...session,\r\n matchesPerTeam: +event.target.value,\r\n });\r\n\r\n if (hasErrors) {\r\n setError('matchesPerTeam', { type: 'custom', message: CUSTOM_MORE_MATCHES_TEXT });\r\n }\r\n };\r\n\r\n const handleOnTournamentTeamsChange = (event) => {\r\n const teamsCount = event.target.value;\r\n switch (teamsCount) {\r\n case FOUR:\r\n setValue('matchesPerTeam', 2);\r\n break;\r\n case EIGHT:\r\n setValue('matchesPerTeam', 4);\r\n break;\r\n case SIXTEEN:\r\n setValue('matchesPerTeam', 8);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n setSessionRegistrationStatus(canRegister);\r\n setMatchFormat(sessionDetails?.sessionMatchTypeId);\r\n reset(originalFormData);\r\n onClose();\r\n };\r\n\r\n const handleOnSessionRuleChange = (event) => {\r\n const ruleValue = event?.target?.value;\r\n\r\n if (ruleValue !== sessionStandingsRuleId) {\r\n setShowRuleConfirmationModal(true);\r\n setUpdatedStandingsRuleId(ruleValue);\r\n }\r\n };\r\n\r\n const handleOnConfirmRuleChange = () => {\r\n setShowRuleConfirmationModal(false);\r\n setSessionStandingsRuleId(updatedStandingsRuleId);\r\n };\r\n\r\n const handleOnCloseRuleModal = () => {\r\n setShowRuleConfirmationModal(false);\r\n setUpdatedStandingsRuleId(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n {isLoadingSession && isLoadingLeaguesFees ? (\r\n \r\n ) : (\r\n
    \r\n \r\n General\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isTournamentSession && (\r\n \r\n Team Standings Rule\r\n \r\n {standingsRuleOptions.map((rule) => (\r\n \r\n {rule?.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {isTournamentSession && (\r\n \r\n )}\r\n \r\n \r\n {isTournamentSession && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!isTournamentSession && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Match Format\r\n \r\n \r\n \r\n \r\n \r\n Format Type\r\n \r\n {sessionMatchFormatTypes.map((session) => (\r\n \r\n {session.description}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n \r\n \r\n \r\n Session Status\r\n \r\n \r\n Teams can be added to an open session\r\n \r\n \r\n \r\n \r\n {registrationStatusDescription}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTournamentSession ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!isTournamentSession && (\r\n \r\n \r\n {errors.matchesPerTeam && (\r\n \r\n {errors.matchesPerTeam.message}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n Player Fees\r\n \r\n \r\n \r\n \r\n \r\n Session Player Entry Fee\r\n \r\n \r\n (\r\n $,\r\n }}\r\n inputProps={{ style: { textAlign: 'right', width: 55 } }}\r\n onChange={(e) => {\r\n onChange(e);\r\n handleEntryFeeChange(e);\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n \r\n {`League Fee: $${leagueVerifiedFee}`}\r\n \r\n \r\n {`Total per Player: $${totalPlayerCost}`}\r\n \r\n \r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nManageSessionModal.propTypes = { ...manageSessionModalPropTypes };\r\n\r\nexport default ManageSessionModal;\r\n","import React, { useState } from 'react';\r\nimport { Typography, EditIcon } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport {\r\n drawTypes,\r\n sessionTypes,\r\n LeagueSessionTypes,\r\n sessionMatchFormatTypes,\r\n MatchFormatTypes,\r\n StatusTypes,\r\n getTypeForId,\r\n} from '../../../utils/types';\r\n\r\nimport MatchFormat from '../../../components/MatchFormat';\r\nimport ManageSessionModal from '../../../components/Modals/ManageSessionModal';\r\nimport { manageSessionDetailsTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst DetailsTab = ({ sessionDetails = {} }) => {\r\n const theme = useTheme();\r\n const {\r\n name,\r\n sessionTypeId,\r\n drawTypeId,\r\n location,\r\n description,\r\n sessionMatchTypeId,\r\n singlesMatchCount,\r\n singlesPointsPerMatch,\r\n singlesScoringFormatTypeId,\r\n singlesTimeAllowedTypeId,\r\n sportTypeId,\r\n doublesMatchCount,\r\n doublesPointsPerMatch,\r\n doublesScoringFormatTypeId,\r\n doublesTimeAllowedTypeId,\r\n sessionStatusTypeId,\r\n teamsMax,\r\n registrationFee,\r\n registrationVerificationFee,\r\n startDateUtc,\r\n endDateUtc,\r\n teamRegistrationStartDateUtc,\r\n teamRegistrationEndDateUtc,\r\n } = sessionDetails || {};\r\n const { SECONDARY } = SharedUICategories;\r\n const { TOURNAMENT } = LeagueSessionTypes;\r\n const { BOTH, DOUBLES, SINGLES } = MatchFormatTypes;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const { OPEN } = StatusTypes;\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const sessionStatusMessage = sessionStatusTypeId === OPEN ? 'Open. Teams can be added.' : 'Closed. Teams can not be added.';\r\n const isTournament = sessionTypeId === TOURNAMENT;\r\n const totalPlayerCost = parseInt(registrationFee) + parseInt(registrationVerificationFee);\r\n const dateFormat = `MMM D, YYYY \\u2022 h:mm A`;\r\n const sessionStartDate = getAdjustedDate({ dateUtc: startDateUtc, format: dateFormat });\r\n const sessionEndDate = getAdjustedDate({ dateUtc: endDateUtc, format: dateFormat });\r\n const registrationStartDate = getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: dateFormat });\r\n const registrationEndDate = getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: dateFormat });\r\n const formatTypeDescription = getTypeForId(sessionMatchTypeId, sessionMatchFormatTypes)?.description;\r\n const drawTypeDescription = getTypeForId(drawTypeId, drawTypes)?.description;\r\n const typeDescription = getTypeForId(sessionTypeId, sessionTypes)?.description;\r\n\r\n const handleOnEditClick = () => {\r\n setShowEditModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditModal(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n General\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Name\r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n \r\n Type\r\n \r\n \r\n {typeDescription}\r\n \r\n \r\n {isTournament && (\r\n \r\n \r\n Draw Type\r\n \r\n \r\n {drawTypeDescription}\r\n \r\n \r\n )}\r\n {location && (\r\n \r\n \r\n Location\r\n \r\n \r\n {location?.formattedAddress}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Start Date\r\n \r\n \r\n {sessionStartDate}\r\n \r\n \r\n \r\n \r\n Session End Date\r\n \r\n \r\n {sessionEndDate}\r\n \r\n \r\n \r\n {description && (\r\n \r\n \r\n Description\r\n \r\n \r\n {description}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Team Match Format\r\n \r\n \r\n \r\n \r\n \r\n Format Type\r\n \r\n \r\n {formatTypeDescription}\r\n \r\n \r\n \r\n {sessionMatchTypeId === SINGLES && (\r\n \r\n )}\r\n {sessionMatchTypeId === DOUBLES && (\r\n \r\n )}\r\n {sessionMatchTypeId === BOTH && (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n \r\n \r\n \r\n Session Status\r\n \r\n \r\n {sessionStatusMessage}\r\n \r\n \r\n \r\n \r\n \r\n Registration Start Date\r\n \r\n \r\n {registrationStartDate}\r\n \r\n \r\n \r\n \r\n Registration End Date\r\n \r\n \r\n {registrationEndDate}\r\n \r\n \r\n \r\n \r\n \r\n Max Teams\r\n \r\n \r\n {teamsMax}\r\n \r\n \r\n \r\n \r\n \r\n Player Fees\r\n \r\n \r\n \r\n \r\n \r\n Session player entry fee\r\n \r\n \r\n {`$${registrationFee}`}\r\n \r\n \r\n \r\n \r\n League Fee\r\n \r\n \r\n {`$${registrationVerificationFee}`}\r\n \r\n \r\n \r\n \r\n Total per player\r\n \r\n \r\n {`$${totalPlayerCost}`}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDetailsTab.propTypes = {\r\n ...manageSessionDetailsTabPropTypes,\r\n};\r\n\r\nexport default DetailsTab;\r\n","import { getAdjustedDate } from '../../utils/display';\r\n\r\nexport const ONE_ROUND = 1;\r\nexport const FULL_PAGE_ROUNDS = 3;\r\nexport const BYE_ROUND = 'Bye';\r\nexport const TBD_ROUND = 'TBD';\r\nexport const MAIN_DRAW_TABLE_NUMBER = 1;\r\nexport const BACK_DRAW_TABLE_NUMBER = 2;\r\nexport const SINGLE_ROUND_BYE = 1;\r\nexport const DOUBLE_ROUND_BYE = 2;\r\nexport const MANAGE_SESSION_PAGE_TYPE = 'MANAGE_SESSION_PAGE';\r\n\r\nexport const getSortedSelectableTeamsBySeed = ({ selectableTeams }) => {\r\n const sortOptions = selectableTeams.slice();\r\n return sortOptions.sort((a, b) => {\r\n const aSeed = a.seed;\r\n const bSeed = b.seed;\r\n\r\n if (aSeed === null) {\r\n return 1;\r\n }\r\n\r\n if (bSeed === null) {\r\n return -1;\r\n }\r\n\r\n if (aSeed === bSeed) {\r\n return 0;\r\n }\r\n\r\n return parseFloat(aSeed) - parseFloat(bSeed);\r\n });\r\n};\r\n\r\nexport const getAllSelectedTeams = ({ teamMatches }) => {\r\n return teamMatches.reduce((acc, cur) => {\r\n const { position1Team, position2Team } = cur;\r\n const teamIDs = [position1Team?.teamId, position2Team?.teamId];\r\n return [...acc, ...teamIDs];\r\n }, []).filter((id) => !!id);\r\n};\r\n\r\nexport const getAvailableTeams = ({ selectableTeams, teamMatchesInRound, teamMatch }) => {\r\n const { position1Team, position2Team } = teamMatch;\r\n const alreadySelectedTeamIDs = getAllSelectedTeams({ teamMatches: teamMatchesInRound });\r\n const currentTeamMatchIDs = [position1Team?.teamId, position2Team?.teamId].filter((id) => !!id);\r\n const sortedSelectableTeamsArray = getSortedSelectableTeamsBySeed({ selectableTeams });\r\n\r\n return sortedSelectableTeamsArray.filter((item) => {\r\n const isSelectableTeamIsInThisMatch = currentTeamMatchIDs?.includes(item.id);\r\n const isSelectableTeamSelected = alreadySelectedTeamIDs?.includes(item.id);\r\n\r\n if (isSelectableTeamIsInThisMatch) return item;\r\n if (!isSelectableTeamSelected) return item;\r\n return;\r\n });\r\n};\r\n\r\nexport const getNameWithSeed = ({ team }) => {\r\n if (!team) return null;\r\n const seedNumberPos1 = team?.seed ? `${team?.seed}.` : null;\r\n return seedNumberPos1 ? `${seedNumberPos1} ${team?.name}` : `${team?.name}`;\r\n};\r\n\r\nexport const getHideViewOnPublish = ({ handleOnViewCard, hasPosition1Team, hasPosition2Team }) => {\r\n if (!hasPosition1Team || !hasPosition2Team) return {};\r\n\r\n return { onViewClick: handleOnViewCard };\r\n};\r\n\r\nexport const getHideEditOnByes = ({ teamMatch, onEditMatch, publishedPosition1Team, publishedPosition2Team, options }) => {\r\n const { optionOne, optionTwo } = options;\r\n const hasByes = optionOne === BYE_ROUND || optionTwo === BYE_ROUND;\r\n\r\n if (publishedPosition1Team?.name === BYE_ROUND || publishedPosition2Team?.name === BYE_ROUND || hasByes) {\r\n return {};\r\n }\r\n\r\n return { onEditClick: () => onEditMatch(teamMatch) };\r\n};\r\n\r\nexport const getFormattedDrawCardSelectOptions = ({ roundNumber, hasPublishedSchedule, position1TeamId, position2TeamId }) => {\r\n const optionOne =\r\n roundNumber === 1 && hasPublishedSchedule && !position1TeamId && !!position2TeamId ? BYE_ROUND : position1TeamId;\r\n const optionTwo =\r\n roundNumber === 1 && hasPublishedSchedule && !position2TeamId && !!position1TeamId ? BYE_ROUND : position2TeamId;\r\n\r\n return { optionOne, optionTwo };\r\n};\r\n\r\nexport const getFormatedFields = ({ isUsingState, currentMatch, location, matchDate }) => {\r\n const locationLabel = location?.placeName;\r\n const dateFormat = 'ddd, MMM Do [at] h:mm A';\r\n const dateLabel = matchDate && getAdjustedDate({ dateUtc: matchDate, format: dateFormat });\r\n\r\n const currentStateDateLabel =\r\n currentMatch?.matchDate && getAdjustedDate({ dateUtc: currentMatch.matchDate, format: dateFormat });\r\n const formatedDateLabel = isUsingState && currentStateDateLabel ? currentStateDateLabel : dateLabel;\r\n const formatedLocationLabel =\r\n isUsingState && currentMatch?.location?.placeName ? currentMatch?.location?.placeName : locationLabel;\r\n\r\n return { formatedDateLabel, formatedLocationLabel };\r\n};\r\n\r\nexport const getFormattedTeamPageDrawFields = ({ isUsingState, currentMatch, location, matchDate }) => {\r\n const locationLabel = location?.placeName;\r\n const dateFormat = 'ddd, MMM';\r\n const timeFormat = 'h:mm A';\r\n const dateLabel = matchDate && getAdjustedDate({ dateUtc: matchDate, format: dateFormat });\r\n const timeLabel = matchDate && getAdjustedDate({ dateUtc: matchDate, format: timeFormat });\r\n\r\n const currentStateDateLabel =\r\n currentMatch?.matchDate && getAdjustedDate({ dateUtc: currentMatch.matchDate, format: dateFormat });\r\n const currentStateTimeLabel =\r\n currentMatch?.matchDate && getAdjustedDate({ dateUtc: currentMatch.matchDate, format: timeFormat });\r\n const formattedDateLabel = isUsingState && currentStateDateLabel ? currentStateDateLabel : dateLabel;\r\n const formattedTimeLabel = isUsingState && currentStateTimeLabel ? currentStateTimeLabel : timeLabel;\r\n const formattedLocationLabel =\r\n isUsingState && currentMatch?.location?.placeName ? currentMatch?.location?.placeName : locationLabel;\r\n\r\n return { formattedDateLabel, formattedLocationLabel, formattedTimeLabel };\r\n};\r\n\r\nexport const getDrawCardSelectOptions = ({ selectableTeams, teamMatch, teamMatchesInRound }) => {\r\n if (!selectableTeams) return { options: [] };\r\n const availableTeams = getAvailableTeams({ selectableTeams, teamMatchesInRound, teamMatch });\r\n\r\n return availableTeams.map((team) => {\r\n const label = getNameWithSeed({ team });\r\n\r\n return {\r\n id: team.id,\r\n label,\r\n };\r\n });\r\n};\r\n\r\nconst getFindTeamMatchID = ({ rounds, teamMatchId }) => {\r\n const flattenMatches = rounds.reduce((acc, cur) => {\r\n if (cur.teamMatches) {\r\n return [...acc, ...cur.teamMatches];\r\n }\r\n return acc;\r\n }, []);\r\n\r\n return flattenMatches.find((match) => match.teamMatchId === teamMatchId);\r\n};\r\n\r\n// Users can only select teams in round 1 of the main draw, this may change.\r\nexport const getRoundOneMainDrawTeamMatches = ({ draws }) => draws?.find((draw) => draw.number === MAIN_DRAW_TABLE_NUMBER)?.rounds?.find((round) => round.number === 1)?.teamMatches;\r\n\r\nexport const getTeamIDsFromTeamMatches = ({ teamMatches }) => teamMatches?.reduce((acc, cur) => {\r\n const teamIDs = [cur?.position1Team?.teamId, cur?.position2Team?.teamId];\r\n return [...acc, ...teamIDs];\r\n}, []).filter((id) => !!id);\r\n\r\nconst getSingleByeDoubleNullLabels = ({ dataFormatted, rounds, teamMatch, tbdWinnerLabel = null, displayTournamentBracketStyle = false }) => {\r\n const position1FromTeamMatchId = teamMatch?.position1FromTeamMatchId;\r\n const position2FromTeamMatchId = teamMatch?.position2FromTeamMatchId;\r\n\r\n const position1FromTeamMatch = getFindTeamMatchID({ rounds, teamMatchId: position1FromTeamMatchId });\r\n const position2FromTeamMatch = getFindTeamMatchID({ rounds, teamMatchId: position2FromTeamMatchId });\r\n\r\n const getTbdWinnerLabel = (position) => {\r\n let label;\r\n if (tbdWinnerLabel && displayTournamentBracketStyle) {\r\n label = `Winner ${tbdWinnerLabel} ${position}`;\r\n } else {\r\n label = TBD_ROUND;\r\n }\r\n return label;\r\n };\r\n\r\n let publishedPosition1Team;\r\n let publishedPosition2Team;\r\n switch (true) {\r\n case position1FromTeamMatch?.byeStatusTypeId > position2FromTeamMatch?.byeStatusTypeId:\r\n publishedPosition1Team = { name: BYE_ROUND, points: null };\r\n publishedPosition2Team = { name: getTbdWinnerLabel(2), points: null };\r\n break;\r\n\r\n case position2FromTeamMatch?.byeStatusTypeId > position1FromTeamMatch?.byeStatusTypeId:\r\n publishedPosition1Team = { name: getTbdWinnerLabel(1), points: null };\r\n publishedPosition2Team = { name: BYE_ROUND, points: null };\r\n break;\r\n\r\n default:\r\n publishedPosition1Team = { name: getTbdWinnerLabel(1), points: null };\r\n publishedPosition2Team = { name: getTbdWinnerLabel(2), points: null };\r\n break;\r\n }\r\n\r\n return {\r\n dataFormatted,\r\n publishedPosition1Team,\r\n publishedPosition2Team\r\n };\r\n};\r\n\r\nexport const getDataFormattedAndPublishedTeams = ({ dateLabel, locationLabel, options, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch }) => {\r\n const { position1Team, position2Team, byeStatusTypeId } = teamMatch;\r\n const isMainFirstRoundPublished = isMainDraw && roundNumber === 1 && hasPublishedSchedule;\r\n\r\n const labelPost1 = getNameWithSeed({ team: position1Team });\r\n const labelPost2 = getNameWithSeed({ team: position2Team });\r\n\r\n const { optionOne, optionTwo } = getFormattedDrawCardSelectOptions({ roundNumber, hasPublishedSchedule, position1TeamId: position1Team?.teamId, position2TeamId: position2Team?.teamId });\r\n\r\n const optionOneNullOrBye = !optionOne && byeStatusTypeId === SINGLE_ROUND_BYE ? BYE_ROUND : '';\r\n const optionTwoNullOrBye = !optionTwo && byeStatusTypeId === SINGLE_ROUND_BYE ? BYE_ROUND : '';\r\n\r\n const dataFormatted = {\r\n options,\r\n selectedOptions: {\r\n optionOne: optionOne || optionOneNullOrBye,\r\n optionTwo: optionTwo || optionTwoNullOrBye,\r\n },\r\n dateLabel,\r\n locationLabel,\r\n };\r\n\r\n let emptyByeTbdLabel;\r\n switch (true) {\r\n case isMainFirstRoundPublished:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === DOUBLE_ROUND_BYE:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === SINGLE_ROUND_BYE:\r\n if (position1Team || position2Team) {\r\n emptyByeTbdLabel = BYE_ROUND;\r\n } else {\r\n return getSingleByeDoubleNullLabels({ dataFormatted, rounds: totalRounds, teamMatch });\r\n }\r\n break;\r\n\r\n default:\r\n emptyByeTbdLabel = TBD_ROUND;\r\n break;\r\n }\r\n\r\n const publishedPosition1Team = { name: position1Team ? labelPost1 : emptyByeTbdLabel, points: position1Team?.points };\r\n const publishedPosition2Team = { name: position2Team ? labelPost2 : emptyByeTbdLabel, points: position2Team?.points };\r\n\r\n return { dataFormatted, publishedPosition1Team, publishedPosition2Team };\r\n};\r\n\r\nexport const getTeamPageDataFormattedAndPublishedTeams = ({ dateLabel, locationLabel, timeLabel, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch, previousRoundName, currentMatchIndex }) => {\r\n const { position1Team, position2Team, byeStatusTypeId } = teamMatch;\r\n const isFirstRound = roundNumber === 1;\r\n const isMainFirstRoundPublished = isMainDraw && isFirstRound && hasPublishedSchedule;\r\n\r\n const dataFormatted = {\r\n dateLabel,\r\n timeLabel,\r\n locationLabel,\r\n };\r\n\r\n let emptyByeTbdLabel;\r\n switch (true) {\r\n case isMainFirstRoundPublished:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === DOUBLE_ROUND_BYE:\r\n emptyByeTbdLabel = BYE_ROUND;\r\n break;\r\n\r\n case byeStatusTypeId === SINGLE_ROUND_BYE:\r\n if (position1Team || position2Team) {\r\n emptyByeTbdLabel = BYE_ROUND;\r\n } else {\r\n return getSingleByeDoubleNullLabels({ dataFormatted, rounds: totalRounds, teamMatch, previousRoundName, displayTournamentBracketStyle: true });\r\n }\r\n break;\r\n\r\n default:\r\n emptyByeTbdLabel = TBD_ROUND;\r\n break;\r\n }\r\n\r\n const getTbdWinnerMatchIndex = (matchIndex) => {\r\n return [matchIndex + matchIndex + 1, matchIndex + matchIndex + 2];\r\n };\r\n\r\n const getEmptyByeTbdLabel = (positionTeam, winnerLabel, positionIndex) => {\r\n let label;\r\n if (positionTeam) {\r\n label = positionTeam.name;\r\n } else if (winnerLabel) {\r\n label = `Winner ${previousRoundName} ${getTbdWinnerMatchIndex(currentMatchIndex)[positionIndex]}`;\r\n } else {\r\n label = emptyByeTbdLabel;\r\n }\r\n return label;\r\n };\r\n\r\n const publishedPosition1Team = { name: getEmptyByeTbdLabel(position1Team, previousRoundName, 0), points: position1Team?.points, seed: position1Team?.seed, href: position1Team?.teamId && `/teams/${position1Team?.teamId}` };\r\n const publishedPosition2Team = { name: getEmptyByeTbdLabel(position2Team, previousRoundName, 1), points: position2Team?.points, seed: position2Team?.seed, href: position2Team?.teamId && `/teams/${position2Team?.teamId}` };\r\n\r\n return { dataFormatted, publishedPosition1Team, publishedPosition2Team };\r\n};\r\n","import { useEffect, useState } from 'react';\r\n\r\nconst MOBILE_SIZE = 768;\r\nconst DESKTOP_SIZE = 1200;\r\n\r\nconst useIsMobile = () => {\r\n const [width, setWidth] = useState();\r\n const handleWindowSizeChange = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n\r\n useEffect(() => {\r\n setWidth(window.innerWidth);\r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n };\r\n }, []);\r\n\r\n return width <= MOBILE_SIZE;\r\n};\r\n\r\nexport const useIsTablet = () => {\r\n const [width, setWidth] = useState();\r\n const handleWindowSizeChange = () => {\r\n setWidth(window.innerWidth);\r\n };\r\n\r\n useEffect(() => {\r\n setWidth(window.innerWidth);\r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n };\r\n }, []);\r\n\r\n return width >= MOBILE_SIZE && width <= DESKTOP_SIZE;\r\n};\r\n\r\nexport default useIsMobile;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { DrawCard } from '@universal-tennis/ui-shared';\r\nimport {\r\n FULL_PAGE_ROUNDS,\r\n ONE_ROUND,\r\n TBD_ROUND,\r\n getFormatedFields,\r\n getHideViewOnPublish,\r\n getDrawCardSelectOptions,\r\n getHideEditOnByes,\r\n getDataFormattedAndPublishedTeams,\r\n} from './utils';\r\nimport { useIsTablet } from '../../hooks/useIsMobile';\r\n\r\nconst TBDLabel = {\r\n name: TBD_ROUND,\r\n points: 0,\r\n};\r\n\r\nexport const useGetTableRowsData = ({\r\n selectableTeams,\r\n draw,\r\n totalRounds,\r\n onEditMatch,\r\n onViewMatch,\r\n onChangeClick,\r\n hasPublishedSchedule,\r\n isManaging,\r\n isMainDraw,\r\n}) => {\r\n const { rounds } = draw;\r\n const isTablet = useIsTablet();\r\n const [initialRoundIndex, setInitialRoundIndex] = useState(0);\r\n const [selectedHeaderRows, setSelectedHeaderRows] = useState([]);\r\n const [selectedTableRows, setSelectedTableRows] = useState([]);\r\n\r\n const getTableRows = () =>\r\n rounds &&\r\n rounds\r\n .map((round) => {\r\n const { number: roundNumber } = round;\r\n\r\n return round.teamMatches?.map((teamMatch) => {\r\n const { matchDate, location, position1Team, position2Team } = teamMatch;\r\n const { formatedDateLabel, formatedLocationLabel } = getFormatedFields({ teamMatch, location, matchDate });\r\n\r\n const isDisabled = !hasPublishedSchedule && roundNumber !== 1;\r\n const isScorelessMatch = !position1Team?.points && !position2Team?.points;\r\n\r\n const options = getDrawCardSelectOptions({ teamMatch, selectableTeams, teamMatchesInRound: round.teamMatches });\r\n const { dataFormatted, publishedPosition1Team, publishedPosition2Team } = getDataFormattedAndPublishedTeams({ dateLabel: formatedDateLabel, locationLabel: formatedLocationLabel, options, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch });\r\n\r\n const handleOnViewCard = () => {\r\n onViewMatch(teamMatch);\r\n };\r\n\r\n const hideViewOnPublish = getHideViewOnPublish({ roundNumber, handleOnViewCard, hasPosition1Team: position1Team, hasPosition2Team: position2Team });\r\n const hideEditOnPublish = getHideEditOnByes({ teamMatch, isDisabled, hasPublishedSchedule, onEditMatch, publishedPosition1Team, publishedPosition2Team, options: dataFormatted?.selectedOptions });\r\n\r\n if (hasPublishedSchedule) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isDisabled) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n onChangeClick({ selectedTeam, teamMatch })}\r\n emptyLabel=\"Select a team\"\r\n {...hideEditOnPublish}\r\n />\r\n );\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n const tableRows = getTableRows();\r\n const initialRounds = rounds\r\n ?.map((round) => ({\r\n name: round.name,\r\n }))\r\n ?.slice(initialRoundIndex, initialRoundIndex + FULL_PAGE_ROUNDS);\r\n const takeFirstThree = tableRows?.slice(initialRoundIndex, FULL_PAGE_ROUNDS + initialRoundIndex);\r\n\r\n setSelectedHeaderRows(initialRounds);\r\n setSelectedTableRows(takeFirstThree);\r\n }, [selectableTeams, draw, isTablet, hasPublishedSchedule, rounds, initialRoundIndex]);\r\n\r\n const handleOnForwardRoundClick = () => setInitialRoundIndex(initialRoundIndex + ONE_ROUND);\r\n const handleOnBackwardRoundClick = () => setInitialRoundIndex(initialRoundIndex - ONE_ROUND);\r\n\r\n const isShowingForward =\r\n !(initialRoundIndex + FULL_PAGE_ROUNDS === rounds?.length) &&\r\n initialRoundIndex !== rounds?.length - ONE_ROUND &&\r\n rounds?.length > FULL_PAGE_ROUNDS;\r\n\r\n const isShowingBackward = initialRoundIndex !== 0;\r\n\r\n return {\r\n tableRows: selectedTableRows,\r\n headerRows: selectedHeaderRows,\r\n handleOnForwardRoundClick,\r\n handleOnBackwardRoundClick,\r\n isShowingForward,\r\n isShowingBackward,\r\n };\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { TeamDrawCard } from '@universal-tennis/ui-shared';\r\nimport {\r\n FULL_PAGE_ROUNDS,\r\n ONE_ROUND,\r\n TBD_ROUND,\r\n getFormattedTeamPageDrawFields,\r\n getTeamPageDataFormattedAndPublishedTeams,\r\n} from './utils';\r\nimport { useIsTablet } from '../../hooks/useIsMobile';\r\n\r\nconst TBDLabel = {\r\n name: TBD_ROUND,\r\n points: 0,\r\n};\r\n\r\nexport const useGetTeamPageTableRowsData = ({\r\n selectableTeams,\r\n draw,\r\n totalRounds,\r\n hasPublishedSchedule,\r\n isMainDraw,\r\n}) => {\r\n const { rounds } = draw;\r\n const isTablet = useIsTablet();\r\n const [initialRoundIndex, setInitialRoundIndex] = useState(0);\r\n const [selectedHeaderRows, setSelectedHeaderRows] = useState([]);\r\n const [selectedTableRows, setSelectedTableRows] = useState([]);\r\n\r\n const getPreviousRoundName = (drawRounds, roundId) => {\r\n const roundIndex = drawRounds.findIndex((round) => round.id === roundId);\r\n\r\n if (roundIndex === -1 || roundIndex === 0) {\r\n return null;\r\n }\r\n\r\n const previousRound = drawRounds[roundIndex - 1];\r\n return previousRound.name;\r\n };\r\n\r\n const getTableRows = () =>\r\n rounds?.map((round) => {\r\n const { number: roundNumber } = round;\r\n\r\n return round.teamMatches?.map((teamMatch, index) => {\r\n const { matchDate = null, location = null, position1Team = null, position2Team = null, teamMatchId = '' } = teamMatch;\r\n const { formattedDateLabel = null, formattedLocationLabel = null, formattedTimeLabel = null } = getFormattedTeamPageDrawFields({ teamMatch, location, matchDate });\r\n\r\n const isNotFirstRound = roundNumber !== 1;\r\n const isDisabled = !hasPublishedSchedule && isNotFirstRound;\r\n const isScorelessMatch = !position1Team?.points && !position2Team?.points;\r\n const previousRoundName = getPreviousRoundName(rounds, round.id);\r\n const currentMatchIndex = index;\r\n const teamMatchLink = `/leagues/match/${teamMatchId}`;\r\n const showTeamMatchLink = position1Team !== null && position2Team !== null;\r\n\r\n const { dataFormatted = {}, publishedPosition1Team = {}, publishedPosition2Team = {} } = getTeamPageDataFormattedAndPublishedTeams({ dateLabel: formattedDateLabel, locationLabel: formattedLocationLabel, timeLabel: formattedTimeLabel, roundNumber, hasPublishedSchedule, isMainDraw, totalRounds, teamMatch, previousRoundName, currentMatchIndex });\r\n\r\n if (hasPublishedSchedule) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (isDisabled) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n });\r\n });\r\n\r\n useEffect(() => {\r\n const tableRows = getTableRows();\r\n const initialRounds = rounds\r\n ?.map((round) => ({\r\n name: round.name,\r\n }))\r\n ?.slice(initialRoundIndex, initialRoundIndex + FULL_PAGE_ROUNDS);\r\n const takeFirstThree = tableRows?.slice(initialRoundIndex, FULL_PAGE_ROUNDS + initialRoundIndex);\r\n\r\n setSelectedHeaderRows(initialRounds);\r\n setSelectedTableRows(takeFirstThree);\r\n }, [selectableTeams, draw, isTablet, hasPublishedSchedule, rounds, initialRoundIndex]);\r\n\r\n const handleOnForwardRoundClick = () => setInitialRoundIndex(initialRoundIndex + ONE_ROUND);\r\n const handleOnBackwardRoundClick = () => setInitialRoundIndex(initialRoundIndex - ONE_ROUND);\r\n\r\n const isShowingForward =\r\n !(initialRoundIndex + FULL_PAGE_ROUNDS === rounds?.length) &&\r\n initialRoundIndex !== rounds?.length - ONE_ROUND &&\r\n rounds?.length > FULL_PAGE_ROUNDS;\r\n\r\n const isShowingBackward = initialRoundIndex !== 0;\r\n\r\n return {\r\n tableRows: selectedTableRows,\r\n headerRows: selectedHeaderRows,\r\n handleOnForwardRoundClick,\r\n handleOnBackwardRoundClick,\r\n isShowingForward,\r\n isShowingBackward,\r\n };\r\n};\r\n","import React from 'react';\r\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { TeamDrawCardTable } from '@universal-tennis/ui-shared';\r\nimport { IconButton } from '@mui/material';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport { useGetTeamPageTableRowsData } from '../useGetTeamPageTableRowsData';\r\n\r\nconst TeamPageDrawTable = ({\r\n draw,\r\n hasPublishedSchedule,\r\n isLoading,\r\n isMainDraw,\r\n totalRounds,\r\n isMobile,\r\n showMainDraw = true\r\n}) => {\r\n const { drawId } = draw;\r\n const { tableRows, headerRows, handleOnBackwardRoundClick, handleOnForwardRoundClick, isShowingForward, isShowingBackward } = useGetTeamPageTableRowsData({ draw, totalRounds, drawId, hasPublishedSchedule, isMainDraw });\r\n\r\n const TeamPageDrawCardTable = ;\r\n\r\n const ForwardBackwardButtons = (\r\n !isMobile && (\r\n \r\n \r\n {isShowingBackward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n {isShowingForward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n )\r\n );\r\n\r\n return (\r\n \r\n {isLoading ? () : (\r\n \r\n {\r\n (showMainDraw && isMainDraw) || (!showMainDraw && !isMainDraw) ? (\r\n <>\r\n {ForwardBackwardButtons}\r\n {TeamPageDrawCardTable}\r\n \r\n ) : null\r\n }\r\n \r\n )}\r\n \r\n\r\n );\r\n};\r\n\r\nexport default TeamPageDrawTable;\r\n","import React from 'react';\r\n\r\nimport { useTheme, IconButton } from '@mui/material';\r\n\r\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\r\nimport ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport { Typography, DrawCardTable } from '@universal-tennis/ui-shared';\r\nimport { useGetTableRowsData } from './useGetTableRowsData';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport TeamPageDrawTable from './TeamPageDrawTable';\r\nimport { drawTablePropTypes } from '../../utils/proptypes';\r\n\r\nconst DrawTable = ({\r\n onEditMatch,\r\n onViewMatch,\r\n onChangeClick,\r\n draw,\r\n selectableTeams,\r\n hasPublishedSchedule,\r\n isUpdatingTeamMatch,\r\n isManaging,\r\n isLoading,\r\n isMainDraw,\r\n totalRounds,\r\n isMobile,\r\n displayTournamentBracketStyle,\r\n showMainDraw,\r\n}) => {\r\n const theme = useTheme();\r\n const { name, drawId } = draw;\r\n const { tableRows, headerRows, handleOnBackwardRoundClick, handleOnForwardRoundClick, isShowingForward, isShowingBackward } =\r\n useGetTableRowsData({\r\n draw,\r\n totalRounds,\r\n isUpdatingTeamMatch,\r\n selectableTeams,\r\n onEditMatch,\r\n onViewMatch,\r\n onChangeClick,\r\n drawId,\r\n hasPublishedSchedule,\r\n isManaging,\r\n isMainDraw,\r\n });\r\n\r\n return (\r\n <>\r\n {displayTournamentBracketStyle ? (\r\n \r\n ) : (\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {isShowingBackward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n \r\n {isShowingForward ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nDrawTable.propTypes = {\r\n ...drawTablePropTypes,\r\n};\r\n\r\nexport default DrawTable;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\nimport Loading from '../LoadingIndicator';\r\nimport DrawTable from './DrawTable';\r\nimport useIsMobile from '../../hooks/useIsMobile';\r\nimport { MAIN_DRAW_TABLE_NUMBER, MANAGE_SESSION_PAGE_TYPE, getRoundOneMainDrawTeamMatches, getTeamIDsFromTeamMatches } from './utils';\r\nimport { drawTypes, getTypeForId } from '../../utils/types';\r\n\r\nconst getHasAllTeamsSelected = ({ selectableTeams, schedule }) => {\r\n if (!schedule) return false;\r\n const { draws } = schedule;\r\n\r\n const teamMatches = getRoundOneMainDrawTeamMatches({ draws });\r\n const teamMatchesIDs = getTeamIDsFromTeamMatches({ teamMatches });\r\n const selectedTeams = selectableTeams?.filter((team) => teamMatchesIDs?.includes(team.id));\r\n\r\n return selectedTeams?.length === selectableTeams?.length;\r\n};\r\n\r\nconst getHasATeamInAllMatches = ({ schedule }) => {\r\n if (!schedule) return false;\r\n const { draws } = schedule;\r\n\r\n const teamMatches = getRoundOneMainDrawTeamMatches({ draws });\r\n const matchesWithoutTeams = teamMatches?.filter((match) => !match.position1Team?.teamId && !match.position2Team?.teamId);\r\n\r\n return matchesWithoutTeams?.length === 0;\r\n};\r\n\r\nconst DrawTab = ({\r\n onDrawCreateClick,\r\n onDrawEditClick,\r\n onDrawPublishClick,\r\n onDrawUnpublishClick,\r\n onDrawDeleteClick,\r\n onEditMatch,\r\n onViewMatch,\r\n isLoading,\r\n isDrawDisabled,\r\n hasPublishPrivileges,\r\n hasPostedResults,\r\n selectableTeams,\r\n descriptionText,\r\n schedule,\r\n hasPublishedSchedule,\r\n onChangeClick,\r\n pageType,\r\n}) => {\r\n const isLoadingInitalState = isLoading && !schedule;\r\n const isDrawTable = !!schedule;\r\n const drawType = getTypeForId(schedule?.drawTypeId, drawTypes);\r\n const isMobile = useIsMobile();\r\n const hasAllTeamsSelected = useMemo(() => getHasAllTeamsSelected({ selectableTeams, schedule }), [schedule]);\r\n const hasATeamInAllMatches = useMemo(() => getHasATeamInAllMatches({ schedule }), [schedule]);\r\n const totalRounds = schedule?.draws?.reduce((acc, cur) => {\r\n if (!cur.rounds) return acc;\r\n return [...acc, ...cur.rounds];\r\n }, []);\r\n\r\n let isPublishDisabled;\r\n switch (true) {\r\n case !hasPublishPrivileges:\r\n isPublishDisabled = true;\r\n break;\r\n\r\n case !hasPublishedSchedule && !(hasAllTeamsSelected && hasATeamInAllMatches):\r\n isPublishDisabled = true;\r\n break;\r\n\r\n case hasPublishedSchedule && hasPostedResults:\r\n isPublishDisabled = true;\r\n break;\r\n\r\n default:\r\n isPublishDisabled = false;\r\n break;\r\n }\r\n\r\n const InitialState = isDrawTable ? (\r\n \r\n \r\n \r\n \r\n \r\n {drawType?.description}\r\n \r\n \r\n {descriptionText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {schedule?.draws?.map((draw) => {\r\n if (pageType === MANAGE_SESSION_PAGE_TYPE && draw.number !== 1 && !hasPublishedSchedule) return;\r\n if (pageType !== MANAGE_SESSION_PAGE_TYPE && !hasPublishedSchedule) return;\r\n\r\n return (\r\n \r\n );\r\n })}\r\n \r\n ) : (\r\n \r\n \r\n Create a tournament draw\r\n \r\n\r\n \r\n A draw structures how your tournament is played. A draw can be created once team registration has closed.\r\n \r\n\r\n \r\n \r\n );\r\n\r\n return (\r\n \r\n {isLoadingInitalState ? : InitialState}\r\n \r\n\r\n );\r\n};\r\n\r\nexport default DrawTab;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography, Button, SwapIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Stack from '@mui/material/Stack';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport Input from '../../../components/Form/Input';\r\nimport Location from '../../../components/Form/Location';\r\nimport DateTimePicker from '../../../components/Form/DateTimePicker';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nconst MatchEditModal = ({ isOpen, onClose, onSubmit, match, allowTeamSwap = false, isMultiRoundSession, isAttemptingToPostScore = false }) => {\r\n const theme = useTheme();\r\n const { PRIMARY, SECONDARY, DISPLAY } = SharedUICategories;\r\n const { MEDIUM_BOOK } = TypographySizes;\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalDescription, setOriginalDescription] = useState();\r\n const [originalDate, setOriginalDate] = useState();\r\n const [homeTeam, setHomeTeam] = useState();\r\n const [awayTeam, setAwayTeam] = useState();\r\n const defaultValues = { location: '', matchDate: '', description: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const hasUpdatedTeamPositions = homeTeam !== match?.position1Team && awayTeam !== match?.position2Team;\r\n const isUpdated = dirtyFields?.location || dirtyFields?.matchDate || dirtyFields?.description || hasUpdatedTeamPositions;\r\n\r\n useEffect(() => {\r\n if (match) {\r\n let matchDate = '';\r\n let matchLocation = '';\r\n let matchDescription = '';\r\n\r\n if (match?.matchDate) {\r\n matchDate = getAdjustedDate({ dateUtc: match.matchDate });\r\n setOriginalDate(match.matchDate);\r\n }\r\n\r\n if (match?.location) {\r\n matchLocation = match.location?.placeName || match.location?.formattedAddress || '';\r\n setOriginalLocation(match.location);\r\n }\r\n\r\n if (match?.description) {\r\n matchDescription = match.description || '';\r\n setOriginalDescription(match.description);\r\n }\r\n\r\n if (match?.position1Team) {\r\n setHomeTeam(match?.position1Team);\r\n }\r\n\r\n if (match?.position2Team) {\r\n setAwayTeam(match?.position2Team);\r\n }\r\n\r\n reset({ matchDate, location: matchLocation, description: matchDescription });\r\n }\r\n }, [match]);\r\n\r\n const handleOnSubmit = async (formValues) => {\r\n const teamMatch = { ...formValues, teamMatchId: match?.teamMatchId };\r\n\r\n if (dirtyFields.location) {\r\n teamMatch.location = await getLocationData(formValues.location);\r\n } else {\r\n teamMatch.location = originalLocation;\r\n }\r\n\r\n if (dirtyFields.description) {\r\n teamMatch.description = formValues.description;\r\n } else {\r\n teamMatch.description = originalDescription;\r\n }\r\n\r\n if (dirtyFields.matchDate) {\r\n teamMatch.matchDate = teamMatch.matchDate.toISOString();\r\n } else {\r\n teamMatch.matchDate = originalDate;\r\n }\r\n\r\n teamMatch.position1TeamId = homeTeam?.teamId;\r\n teamMatch.position2TeamId = awayTeam?.teamId;\r\n\r\n onSubmit(teamMatch);\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n if (isUpdated) {\r\n reset({ matchDate: originalDate, location: originalLocation?.placeName, description: originalDescription });\r\n setHomeTeam(match?.position1Team);\r\n setAwayTeam(match?.position2Team);\r\n }\r\n };\r\n\r\n const handleOnSwap = () => {\r\n setHomeTeam(awayTeam);\r\n setAwayTeam(homeTeam);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {isAttemptingToPostScore ? 'Enter match date' : 'Edit team match'}\r\n \r\n \r\n {isAttemptingToPostScore && (\r\n \r\n To enter a score you must first enter a valid match date\r\n \r\n )}\r\n \r\n \r\n {!isAttemptingToPostScore && }\r\n {!isAttemptingToPostScore && }\r\n \r\n \r\n {allowTeamSwap && isMultiRoundSession && !isAttemptingToPostScore && (\r\n <>\r\n \r\n Teams\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MatchEditModal;\r\n","import React, { useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport ModalBaseWithHeader from './ModalBaseWithHeader';\r\nimport Select from '../Form/Select';\r\n\r\nconst MovePlayerModal = ({ availableTeams, onClose, open, onSubmit, isLoadingAvailableTeams }) => {\r\n const defaultValues = { teamId: '' };\r\n const {\r\n handleSubmit,\r\n formState,\r\n formState: { errors },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (formState.isSubmitSuccessful) {\r\n reset({ teamId: '' });\r\n }\r\n }, [formState, reset]);\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.teamId);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n {isLoadingAvailableTeams && }\r\n {!!availableTeams.length && (\r\n <>\r\n \r\n Select the team to move the player to.\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default MovePlayerModal;\r\n","import React from 'react';\r\nimport Button from '@mui/material/Button';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport Typography from '@mui/material/Typography';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { playerWithdrawTypes } from '../../utils/types';\r\nimport { playerWithdrawModalPropTypes, defaultModalPropTypes } from '../../utils/proptypes';\r\nimport ModalBaseWithHeader from './ModalBaseWithHeader';\r\nimport Select from '../Form/Select';\r\n\r\nconst PlayerWithdrawModal = (props) => {\r\n const { onClose, open, onSubmit, canBeRefunded } = props;\r\n const defaultValues = { withdrawType: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const handleFormSubmit = (values) => {\r\n onSubmit(values.withdrawType);\r\n reset();\r\n };\r\n\r\n const selectOptions = canBeRefunded ? playerWithdrawTypes : [playerWithdrawTypes[0]];\r\n const message = canBeRefunded ? 'You can withdraw and/or refund a player from a session.' : 'You can withdraw a player from a session.';\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nPlayerWithdrawModal.propTypes = {\r\n ...playerWithdrawModalPropTypes\r\n};\r\n\r\nPlayerWithdrawModal.defaultProps = {\r\n ...defaultModalPropTypes\r\n};\r\n\r\nexport default PlayerWithdrawModal;\r\n","import React, { useState } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography, SinglePersonIcon, DoublePersonIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport MuiTableRow from '@mui/material/TableRow';\r\nimport TableSortLabel from '@mui/material/TableSortLabel';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport { SortType, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getComparator } from '../../../utils/helpers';\r\nimport { genericTablePropTypes } from '../../../utils/proptypes';\r\n\r\nconst GenericTable = (props) => {\r\n const { headCells, tableData, isLoading, sortBy, rowComponent, isSortingDisabled = false } = props;\r\n const theme = useTheme();\r\n const [sortOrder, setSortOrder] = useState(SortType.ASC);\r\n const [orderProperty, setOrderProperty] = useState(sortBy);\r\n const TableRow = rowComponent;\r\n const { SECONDARY } = SharedUICategories;\r\n const { XX_SMALL_MEDIUM_CAP } = TypographySizes;\r\n\r\n const handleRequestSort = (property) => (event) => {\r\n event.preventDefault();\r\n const isAscending = orderProperty === property && sortOrder === SortType.ASC;\r\n setSortOrder(isAscending ? SortType.DESC : SortType.ASC);\r\n setOrderProperty(property);\r\n };\r\n\r\n return (\r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {headCells.map((headCell, index) => {\r\n const isFirstLabel = index === 0;\r\n const widthOfSortIcon = '22px';\r\n return (\r\n \r\n \r\n <>\r\n \r\n {headCell.label}\r\n \r\n {headCell.id === 'utrp-numeric-single' && (\r\n \r\n )}\r\n {headCell.id === 'utrp-numeric-double' && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n {tableData &&\r\n tableData.sort(getComparator(sortOrder, orderProperty)).map((data, index) => {\r\n const labelId = `table-${index}`;\r\n return ;\r\n })}\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nGenericTable.propTypes = {\r\n ...genericTablePropTypes,\r\n};\r\n\r\nexport default GenericTable;\r\n","export default __webpack_public_path__ + \"static/media/icon-chat-blue.a83f17d4.svg\";","import React from 'react';\r\n\r\nimport UtrIcon from '../UtrIcon';\r\nimport ChatIcon from '../../../assets/icons/icon-chat-blue.svg';\r\nimport { messageIconPropTypes, defaultMessageIconPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { messageUser } from '../../../utils/helpers';\r\n\r\nconst MessageIcon = (props) => {\r\n const { memberId, displayName, style, size = '24px' } = props;\r\n\r\n const handleClick = () => {\r\n messageUser(memberId, displayName);\r\n };\r\n\r\n if (memberId && displayName) {\r\n return ;\r\n }\r\n return null;\r\n};\r\n\r\nMessageIcon.propTypes = {\r\n ...messageIconPropTypes\r\n};\r\n\r\nMessageIcon.defaultProps = {\r\n ...defaultMessageIconPropTypes\r\n};\r\n\r\nexport default MessageIcon;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport MuiTypography from '@mui/material/Typography';\r\n\r\nimport VerifiedIcon from '../../assets/icons/icon-verified-blue.svg';\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst PlayerUtr = ({ utr, isVerified, isAppended = false, isUpdatedDesign = false }) => {\r\n const theme = useTheme();\r\n const displayComponent = isUpdatedDesign ? {utr} : {utr};\r\n\r\n return isVerified ? (\r\n \r\n {displayComponent}\r\n \r\n \r\n ) : (\r\n displayComponent\r\n );\r\n};\r\n\r\nexport default PlayerUtr;\r\n","import React, { useState } from 'react';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\r\nimport { PlayerActionTypes } from '../../utils/types';\r\n\r\nconst ITEM_HEIGHT = 48;\r\n\r\nconst MoreMenu = ({ options, onOptionSelected, disableMove, disableCopy, isSubstitute }) => {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const { MOVE_TO_TEAM, COPY_TO_TEAM, MARK_AS_ROSTERED, MARK_AS_SUBSTITUTE } = PlayerActionTypes;\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleOnItemSelected = (event) => {\r\n onOptionSelected(event.target.value);\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleOnClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const filteredOptions = isSubstitute\r\n ? options.filter((option) => option.id !== MARK_AS_SUBSTITUTE)\r\n : options.filter((option) => option.id !== MARK_AS_ROSTERED);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n {filteredOptions.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default MoreMenu;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Stack from '@mui/material/Stack';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport GenericTable from '../GenericTable';\r\nimport MessageIcon from '../../Icons/MessageIcon';\r\nimport PlayerUtr from '../../PlayerUtr';\r\nimport MoreMenu from '../../MoreMenu';\r\nimport { getPlayerDisplayUtr, getDisplayUTRPRating } from '../../../utils/display';\r\nimport { getPlayerProfileUrl, getPlayerAvatarImage } from '../../../utils/helpers';\r\nimport { PlayerManageOptions, PlayerActionTypes, SportTypeIds } from '../../../utils/types';\r\nimport {\r\n managingPickleballHeadCells,\r\n managingTennisHeadCells,\r\n tennisHeadCells,\r\n pickleballHeadCells,\r\n SharedUICategories,\r\n TypographySizes,\r\n} from '../../../utils/constants';\r\n\r\nimport { playersTablePropTypes, playersTableDefaultPropTypes, playerTableRowPropTypes } from '../../../utils/proptypes';\r\n\r\nconst PlayersTable = ({\r\n teamPlayers = [],\r\n isLoading,\r\n onWithdrawPlayer,\r\n onMovePlayer,\r\n onCopyPlayer,\r\n onTogglePlayerStatus,\r\n isManaging = false,\r\n hasSessionEnded,\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK } = TypographySizes;\r\n const { WITHDRAW, MOVE_TO_TEAM, COPY_TO_TEAM, MARK_AS_ROSTERED, MARK_AS_SUBSTITUTE } = PlayerActionTypes;\r\n const [players, setPlayers] = useState([]);\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n useEffect(() => {\r\n const formattedPlayers = teamPlayers.map((player) => {\r\n const { isVerified, rating } = getPlayerDisplayUtr(player);\r\n const { isVerified: isVerifiedDoubles, rating: doublesUtr } = getPlayerDisplayUtr(player, true);\r\n const {\r\n memberId,\r\n teamId,\r\n firstName,\r\n lastName,\r\n wins,\r\n losses,\r\n location,\r\n gender,\r\n playerId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n canBeRefunded,\r\n isSubstitute,\r\n } = player || {};\r\n return {\r\n id: memberId,\r\n gender,\r\n playerId,\r\n teamId,\r\n name: `${firstName} ${lastName}`,\r\n matchesPlayed: wins + losses,\r\n location: location?.placeName || location?.formattedAddress || '',\r\n record: `${wins} - ${losses}`,\r\n doublesUtr,\r\n isVerifiedDoubles,\r\n singlesUtr: rating,\r\n isVerifiedSingles: isVerified,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n singlesUTRP: getDisplayUTRPRating(player),\r\n doublesUTRP: getDisplayUTRPRating(player, true),\r\n };\r\n });\r\n setPlayers(formattedPlayers);\r\n }, [teamPlayers]);\r\n\r\n const PlayerTableRow = ({ rowData, labelId }) => {\r\n const {\r\n doublesUtr,\r\n id,\r\n isVerifiedDoubles,\r\n isVerifiedSingles,\r\n matchesPlayed,\r\n name,\r\n playerId,\r\n profileImage,\r\n record,\r\n singlesUtr,\r\n teamId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n singlesUTRP,\r\n doublesUTRP,\r\n } = rowData;\r\n\r\n PlayerTableRow.propTypes = {\r\n ...playerTableRowPropTypes,\r\n };\r\n\r\n const handleOnMenuOptionSelected = (selectedOption) => {\r\n switch (selectedOption) {\r\n case WITHDRAW:\r\n onWithdrawPlayer(id, teamId, canBeRefunded);\r\n break;\r\n case MOVE_TO_TEAM:\r\n onMovePlayer(id, teamId);\r\n break;\r\n case COPY_TO_TEAM:\r\n onCopyPlayer(id, teamId);\r\n break;\r\n case MARK_AS_ROSTERED:\r\n case MARK_AS_SUBSTITUTE:\r\n onTogglePlayerStatus(id, teamId);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const avatarImage = getPlayerAvatarImage(profileImage);\r\n const playerUrl = getPlayerProfileUrl(playerId);\r\n\r\n PlayerTableRow.propTypes = {\r\n ...playerTableRowPropTypes,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isTennisMatch ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n {singlesUTRP?.rating}\r\n \r\n \r\n \r\n \r\n {doublesUTRP?.rating}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {isManaging ? matchesPlayed : record}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isManaging && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const pickleballHeaderCells = isManaging ? managingPickleballHeadCells : pickleballHeadCells;\r\n const tennisHeaderCells = isManaging ? managingTennisHeadCells : tennisHeadCells;\r\n const headCells = isTennisMatch ? tennisHeaderCells : pickleballHeaderCells;\r\n\r\n return ;\r\n};\r\n\r\nPlayersTable.propTypes = {\r\n ...playersTablePropTypes,\r\n};\r\n\r\nPlayersTable.defaultProps = {\r\n ...playersTableDefaultPropTypes,\r\n};\r\n\r\nexport default PlayersTable;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { AvatarWithName, Typography, VerifiedIcon } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Stack from '@mui/material/Stack';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport GenericTable from '../../GenericTable';\r\nimport MessageIcon from '../../../Icons/MessageIcon';\r\nimport PlayerUtr from '../../../PlayerUtr';\r\nimport MoreMenu from '../../../MoreMenu';\r\nimport { getPlayerDisplayUtr, getDisplayUTRPRating } from '../../../../utils/display';\r\nimport { PlayerManageOptions, PlayerActionTypes, SportTypeIds } from '../../../../utils/types';\r\nimport {\r\n teamProfilePickleballHeadCells,\r\n teamProfileTennisHeadCells,\r\n SharedUICategories,\r\n TypographySizes,\r\n} from '../../../../utils/constants';\r\nimport { getPlayerAvatarImage, getPlayerProfileUrl } from '../../../../utils/helpers';\r\nimport { playerTablePropTypes, playersTableRowPropTypes } from '../../../../utils/proptypes';\r\n\r\n// This component will replace all PlayerTable components once the new designs are gradually added\r\n\r\nconst PlayersTable = ({\r\n teamPlayers = [],\r\n isLoading,\r\n onWithdrawPlayer,\r\n onMovePlayer,\r\n onCopyPlayer,\r\n onTogglePlayerStatus,\r\n isManaging = false,\r\n isSubstitutePlayers = false,\r\n hasSessionEnded,\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK } = TypographySizes;\r\n const { WITHDRAW, MOVE_TO_TEAM, COPY_TO_TEAM, MARK_AS_ROSTERED, MARK_AS_SUBSTITUTE } = PlayerActionTypes;\r\n const [players, setPlayers] = useState([]);\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n useEffect(() => {\r\n const formattedPlayers = teamPlayers.map((player) => {\r\n const { isVerified, rating } = getPlayerDisplayUtr(player);\r\n const { isVerified: isVerifiedDoubles, rating: doublesUtr } = getPlayerDisplayUtr(player, true);\r\n const {\r\n memberId,\r\n teamId,\r\n firstName,\r\n lastName,\r\n playerId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n canBeRefunded,\r\n isSubstitute,\r\n profileImage,\r\n record,\r\n } = player || {};\r\n return {\r\n id: memberId,\r\n playerId,\r\n teamId,\r\n name: `${firstName} ${lastName}`,\r\n doublesUtr,\r\n isVerifiedDoubles,\r\n singlesUtr: rating,\r\n isVerifiedSingles: isVerified,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n profileImage,\r\n singlesUTRP: getDisplayUTRPRating(player),\r\n doublesUTRP: getDisplayUTRPRating(player, true),\r\n singlesRecord: `${record?.singlesWins}-${record?.singlesLosses}`,\r\n doublesRecord: `${record?.doublesWins}-${record?.doublesLosses}`,\r\n };\r\n });\r\n setPlayers(formattedPlayers);\r\n }, [teamPlayers]);\r\n\r\n const PlayerTableRow = ({ rowData, labelId }) => {\r\n const {\r\n doublesUtr,\r\n id,\r\n isVerifiedDoubles,\r\n isVerifiedSingles,\r\n name,\r\n profileImage,\r\n playerId,\r\n singlesUtr,\r\n teamId,\r\n hasPostedScores,\r\n canBeMovedOrCopied,\r\n isSubstitute,\r\n canBeRefunded,\r\n singlesUTRP,\r\n doublesUTRP,\r\n singlesRecord,\r\n doublesRecord,\r\n } = rowData;\r\n\r\n PlayerTableRow.propTypes = {\r\n ...playersTableRowPropTypes,\r\n };\r\n\r\n const handleOnMenuOptionSelected = (selectedOption) => {\r\n switch (selectedOption) {\r\n case WITHDRAW:\r\n onWithdrawPlayer(id, teamId, canBeRefunded);\r\n break;\r\n case MOVE_TO_TEAM:\r\n onMovePlayer(id, teamId);\r\n break;\r\n case COPY_TO_TEAM:\r\n onCopyPlayer(id, teamId);\r\n break;\r\n case MARK_AS_ROSTERED:\r\n case MARK_AS_SUBSTITUTE:\r\n onTogglePlayerStatus(id, teamId);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const avatarImage = getPlayerAvatarImage(profileImage);\r\n const playerUrl = getPlayerProfileUrl(playerId);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTennisMatch ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n {singlesUTRP?.rating}\r\n \r\n {singlesUTRP?.displayVerifiedIcon && }\r\n \r\n {singlesUTRP?.reliability !== 'Reliable' && (\r\n \r\n {singlesUTRP?.reliability}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {doublesUTRP?.rating}\r\n \r\n {doublesUTRP?.displayVerifiedIcon && }\r\n \r\n {doublesUTRP?.reliability !== 'Reliable' && (\r\n \r\n {doublesUTRP?.reliability}\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {singlesRecord}\r\n \r\n \r\n \r\n \r\n {doublesRecord}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isManaging && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const nameHeadCell = { id: 'name', label: isSubstitutePlayers ? 'Substitute Player' : 'Rostered Player' };\r\n const headCells = isTennisMatch ? [nameHeadCell, ...teamProfileTennisHeadCells] : [nameHeadCell, ...teamProfilePickleballHeadCells];\r\n\r\n return ;\r\n};\r\n\r\nPlayersTable.propTypes = {\r\n ...playerTablePropTypes,\r\n};\r\n\r\nexport default PlayersTable;\r\n","export const groupPlayersByStatus = (players) => {\r\n return players.reduce(\r\n (statuses, player) => {\r\n statuses[player.isSubstitute ? 'substitutes' : 'rostered'].push(player);\r\n return statuses;\r\n },\r\n { substitutes: [], rostered: [] }\r\n );\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport PlayersTable from '../../Tables/PlayersTable/PlayersTable';\r\n\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { useGetPlayersQuery } from '../../../api/leaguesApi';\r\nimport { groupPlayersByStatus } from '../../../utils/teams';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { playersTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst PlayersTab = ({ teamId = '', isCaptainView = false, onMessageAllPlayers = () => {} }) => {\r\n const dispatch = useDispatch();\r\n const [teamPlayers, setTeamPlayers] = useState({});\r\n const { data: players, isLoading, error } = useGetPlayersQuery(teamId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n useEffect(() => {\r\n if (players?.length) {\r\n const groupedPlayers = groupPlayersByStatus(players);\r\n setTeamPlayers(groupedPlayers);\r\n }\r\n }, [players]);\r\n\r\n const handleOnMessageAllClick = () => {\r\n onMessageAllPlayers();\r\n };\r\n\r\n return (\r\n \r\n {isLoading && }\r\n {isCaptainView && !isLoading && (\r\n \r\n )}\r\n {!!teamPlayers?.rostered?.length && (\r\n \r\n \r\n \r\n )}\r\n {!!teamPlayers?.substitutes?.length && (\r\n \r\n \r\n \r\n )}\r\n {!isLoading && !teamPlayers?.rostered?.length && !teamPlayers?.substitutes?.length && (\r\n \r\n {' '}\r\n No players have registered for this team\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nPlayersTab.propTypes = {\r\n ...playersTabPropTypes,\r\n};\r\n\r\nexport default PlayersTab;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport FormControl from '@mui/material/FormControl';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayersTable from '../Tables/PlayersTable';\r\nimport PlayerTab from './PlayersTab';\r\n\r\nimport { groupPlayersByStatus } from '../../utils/teams';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useGetPlayersQuery, useGetSessionTeamsQuery } from '../../api/leaguesApi';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { playerTabPropTypes } from '../../utils/proptypes';\r\n\r\nconst PlayersTab = ({\r\n sessionId,\r\n onWithdrawPlayer,\r\n onMovePlayer,\r\n onCopyPlayer,\r\n onTogglePlayerStatus,\r\n isManaging = false,\r\n hasSessionEnded,\r\n isUpdating,\r\n displaySinglesAndDoublesRecord,\r\n}) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { MEDIUM_MEDIUM } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [teamId, setTeamId] = useState('');\r\n const [teams, setTeams] = useState([]);\r\n const [players, setPlayers] = useState([]);\r\n\r\n const {\r\n data: teamPlayers,\r\n isLoading: isLoadingPlayers,\r\n error: playersError,\r\n isFetchingPlayers,\r\n } = useGetPlayersQuery(teamId, { skip: !teamId });\r\n const { data: sessionTeams, isFetching: isLoadingSessionTeams, error: teamsError } = useGetSessionTeamsQuery(sessionId);\r\n\r\n const isLoading = isUpdating || isLoadingPlayers || isLoadingSessionTeams || isFetchingPlayers;\r\n\r\n if (teamsError) {\r\n dispatch(showErrorPopup(teamsError));\r\n }\r\n\r\n if (playersError) {\r\n dispatch(showErrorPopup(playersError));\r\n }\r\n\r\n useEffect(() => {\r\n if (sessionTeams) {\r\n const teamSelections = sessionTeams?.teams?.map((team) => {\r\n return {\r\n id: team.id,\r\n description: team.name,\r\n };\r\n });\r\n setTeams(teamSelections);\r\n }\r\n }, [sessionTeams]);\r\n\r\n useEffect(() => {\r\n if (teamPlayers) {\r\n const groupedPlayers = groupPlayersByStatus(teamPlayers);\r\n setPlayers(groupedPlayers);\r\n }\r\n }, [teamPlayers]);\r\n\r\n const handleOnTeamChange = (event) => {\r\n setTeamId(event.target.value);\r\n };\r\n\r\n const showNoResults = !players?.rostered?.length && !players?.substitutes?.length && teamId && !isLoading;\r\n const isFirstSearch = !teamId && !players?.length && !isLoading;\r\n\r\n const renderContent = () => {\r\n return (\r\n <>\r\n {isFirstSearch && (\r\n \r\n Select team from dropdown.\r\n \r\n )}\r\n {showNoResults && (\r\n \r\n No players have registered for this team.\r\n \r\n )}\r\n {!!players?.rostered?.length && (\r\n \r\n {displaySinglesAndDoublesRecord ? (\r\n \r\n ) : (\r\n <>\r\n \r\n Rostered\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!!players?.substitutes?.length && (\r\n \r\n {displaySinglesAndDoublesRecord ? (\r\n \r\n ) : (\r\n <>\r\n \r\n Substitutes\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {!teams?.length && !isLoading ? (\r\n \r\n \r\n No teams have been created for this session.\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n Select Team\r\n \r\n \r\n {isLoading ? : renderContent()}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nPlayersTab.propTypes = {\r\n ...playerTabPropTypes,\r\n};\r\n\r\nexport default PlayersTab;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport moment from 'moment';\r\n\r\nimport { SwapNoBorderIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport DatePicker from '@mui/lab/DatePicker';\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Paper from '@mui/material/Paper';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport Location from '../Form/Location';\r\nimport Select from '../Form/Select';\r\nimport TimePicker from '../Form/TimePicker';\r\nimport FullPageModal from '../Modals/FullPageModal';\r\n\r\nimport { getLocationData } from '../../utils/location';\r\nimport { defaultGridSpacing } from '../../utils/constants';\r\nimport { addTeamMatchModalPropTypes } from '../../utils/proptypes';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useGetSessionTeamsQuery, useAddTeamMatchMutation } from '../../api/leaguesApi';\r\n\r\nconst AddTeamMatchModal = ({\r\n sessionId = '',\r\n isOpen = false,\r\n onClose,\r\n roundId = '',\r\n onSaveClick,\r\n scheduleId = '',\r\n refetchSessionSchedule,\r\n session,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const [matchStartDate, setMatchStartDate] = useState('');\r\n const [awayTeam, setAwayTeam] = useState('');\r\n const [homeTeam, setHomeTeam] = useState('');\r\n const [selectedHomeTeam, setSelectedHomeTeam] = useState('');\r\n const [selectedAwayTeam, setSelectedAwayTeam] = useState('');\r\n const [teams, setTeams] = useState([]);\r\n const [onAddTeamMatch] = useAddTeamMatchMutation({ scheduleId });\r\n\r\n const getDateTimeString = (date, time) => {\r\n const tIndex = time.indexOf('T');\r\n const formattedTime = time.slice(tIndex);\r\n return `${date}${formattedTime}`;\r\n };\r\n\r\n const { data: sessionTeams, isFetching: isLoadingSessionTeams, error: teamsError } = useGetSessionTeamsQuery(sessionId);\r\n\r\n if (teamsError) {\r\n dispatch(showErrorPopup(teamsError));\r\n }\r\n\r\n const defaultValues = {\r\n position1TeamId: '',\r\n position2TeamId: '',\r\n matchLocation: '',\r\n matchStartDate: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n reset,\r\n formState: { errors, dirtyFields, isValid, isDirty },\r\n control,\r\n } = useForm({ defaultValues: { ...defaultValues }, mode: 'all' });\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const manualMultiweekRound = { ...formValues };\r\n manualMultiweekRound.matchStartTimeUtc = moment(manualMultiweekRound.matchStartTimeUtc, 'hh:mm:ss');\r\n\r\n const dateStr = matchStartDate.toISOString();\r\n const date = moment(dateStr).utc().format('YYYY-MM-DD');\r\n const time = manualMultiweekRound.matchStartTimeUtc.toISOString();\r\n\r\n if (dirtyFields.matchLocation) {\r\n const formattedLocation = await getLocationData(manualMultiweekRound.matchLocation);\r\n manualMultiweekRound.matchLocation = formattedLocation;\r\n }\r\n\r\n const payload = {\r\n roundId,\r\n position1TeamId: homeTeam,\r\n position2TeamId: awayTeam !== '' ? awayTeam : null,\r\n matchDateTime: getDateTimeString(date, time),\r\n matchLocation: manualMultiweekRound.matchLocation,\r\n };\r\n\r\n try {\r\n await onAddTeamMatch({\r\n scheduleId,\r\n newMatch: payload,\r\n }).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n\r\n reset(defaultValues);\r\n };\r\n\r\n const handleOnCustomStartDateChange = (date) => {\r\n setMatchStartDate(date);\r\n };\r\n\r\n const handleOnAwayTeamChange = (event) => {\r\n const selectedTeam = event?.target?.value;\r\n setSelectedAwayTeam(selectedTeam);\r\n setAwayTeam(selectedTeam);\r\n };\r\n\r\n const handleOnHomeTeamChange = (event) => {\r\n const selectedTeam = event?.target?.value;\r\n setSelectedHomeTeam(selectedTeam);\r\n setHomeTeam(selectedTeam);\r\n };\r\n\r\n const handleOnSwapTeams = () => {\r\n const tempHomeTeam = selectedHomeTeam;\r\n setSelectedHomeTeam(selectedAwayTeam);\r\n setSelectedAwayTeam(tempHomeTeam);\r\n\r\n // Update displayed teams in the dropdowns\r\n setHomeTeam(selectedAwayTeam);\r\n setAwayTeam(tempHomeTeam);\r\n };\r\n\r\n useEffect(() => {\r\n if (sessionTeams) {\r\n const teamSelections = sessionTeams?.teams.map((team) => {\r\n return {\r\n id: team.id,\r\n description: team.name,\r\n };\r\n });\r\n setTeams(teamSelections);\r\n }\r\n }, [sessionTeams]);\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const clearForm = () => {\r\n reset(defaultValues);\r\n setHomeTeam('');\r\n setAwayTeam('');\r\n setMatchStartDate('');\r\n };\r\n\r\n const handleOnClose = () => {\r\n clearForm();\r\n onClose();\r\n };\r\n\r\n const shouldDisableDate = (date) => {\r\n const sessionStartDate = moment(session?.startDateUtc);\r\n const sessionEndDate = moment(session?.endDateUtc);\r\n const currentDate = moment(date).startOf('day');\r\n return currentDate.isBefore(sessionStartDate?.startOf('day')) || currentDate?.isAfter(sessionEndDate.endOf('day'));\r\n };\r\n const isCtaButtonDisabled = matchStartDate === '' || !isValid || homeTeam === null || homeTeam === undefined || !isDirty;\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n }\r\n shouldDisableDate={shouldDisableDate}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {teams?.length && !isLoadingSessionTeams && (\r\n team.id !== selectedHomeTeam)}\r\n labelId=\"away-team-select\"\r\n isFullWidth\r\n control={control}\r\n hasError={!!errors.position2TeamId}\r\n value={awayTeam}\r\n onSelectChange={handleOnAwayTeamChange}\r\n disabled={teams.length === 1}\r\n sx={{ mb: 3 }}\r\n />\r\n )}\r\n {teams?.length && !isLoadingSessionTeams && (\r\n team.id !== selectedAwayTeam)}\r\n labelId=\"home-team-select\"\r\n isFullWidth\r\n control={control}\r\n hasError={!!errors.position1TeamId}\r\n value={homeTeam}\r\n onSelectChange={handleOnHomeTeamChange}\r\n isRequired\r\n helperText=\"Required\"\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n\r\nAddTeamMatchModal.propTypes = {\r\n ...addTeamMatchModalPropTypes,\r\n};\r\n\r\nexport default AddTeamMatchModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport UIButton from '@mui/material/Button';\r\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';\r\nimport Menu from '@mui/material/Menu';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Stack from '@mui/material/Stack';\r\n\r\nimport { PlayerAvailabilityStatusTypes, PlayerAvailabilityStatus, PlayerAvailabilityColors } from '../../utils/types';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst PlayerAvailabilityResponse = ({ onAvailabilityChange, currentUserData, error }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { YES, MAYBE, NO } = PlayerAvailabilityStatusTypes;\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [availabilityStatus, setAvailabilityStatus] = useState();\r\n const [userTeamMemberId, setUserTeamMemberId] = useState();\r\n const [showAvailabilityOptions, setShowAvailabilityOptions] = useState(false);\r\n const [showRsvpStatus, setShowRsvpStatus] = useState(false);\r\n const [buttonColor, setButtonColor] = useState('');\r\n const open = Boolean(anchorEl);\r\n\r\n const getColorForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return PlayerAvailabilityColors.GREEN;\r\n case MAYBE:\r\n return PlayerAvailabilityColors.ORANGE;\r\n case NO:\r\n return PlayerAvailabilityColors.RED;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (currentUserData) {\r\n const { playerAvailabilityStatusTypeId, teamMemberId } = currentUserData || {};\r\n const isUserMemberOfTeam = !!teamMemberId;\r\n\r\n if (isUserMemberOfTeam && playerAvailabilityStatusTypeId) {\r\n setShowRsvpStatus(true);\r\n setShowAvailabilityOptions(false);\r\n setAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n const color = getColorForAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n setButtonColor(color);\r\n } else if (isUserMemberOfTeam && !playerAvailabilityStatusTypeId) {\r\n setShowAvailabilityOptions(true);\r\n }\r\n setUserTeamMemberId(teamMemberId);\r\n }\r\n }, [currentUserData]);\r\n\r\n useEffect(() => {\r\n if (error) {\r\n const { playerAvailabilityStatusTypeId } = currentUserData || {};\r\n if (currentUserData?.playerAvailabilityStatusTypeId) {\r\n setAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n const color = getColorForAvailabilityStatus(playerAvailabilityStatusTypeId);\r\n setButtonColor(color);\r\n } else {\r\n setShowAvailabilityOptions(true);\r\n setShowRsvpStatus(false);\r\n }\r\n }\r\n }, [error]);\r\n\r\n const handleOnRsvpClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleOnAvailabilityChange = (status) => {\r\n const color = getColorForAvailabilityStatus(status);\r\n\r\n setButtonColor(color);\r\n setAvailabilityStatus(status);\r\n\r\n if (showAvailabilityOptions) {\r\n setShowAvailabilityOptions(false);\r\n setShowRsvpStatus(true);\r\n }\r\n\r\n if (anchorEl) {\r\n setAnchorEl(null);\r\n }\r\n\r\n onAvailabilityChange({ teamMemberId: userTeamMemberId, availabilityStatus: status });\r\n };\r\n\r\n const handleOnClose = () => {\r\n setAnchorEl(null);\r\n };\r\n const rsvpStatus = PlayerAvailabilityStatus[availabilityStatus];\r\n return (\r\n <>\r\n {showRsvpStatus && (\r\n <>\r\n }\r\n onClick={handleOnRsvpClick}\r\n >\r\n {`RSVP:${rsvpStatus}`}\r\n \r\n \r\n handleOnAvailabilityChange(YES)}>\r\n Yes\r\n \r\n handleOnAvailabilityChange(MAYBE)}>\r\n Maybe\r\n \r\n handleOnAvailabilityChange(NO)}>\r\n No\r\n \r\n \r\n \r\n\r\n )}\r\n {showAvailabilityOptions && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvailabilityResponse;\r\n","import React from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\nimport Link from '@mui/material/Link';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../../utils/constants';\r\nimport { teamMatchLinkPropTypes } from '../../../../utils/proptypes';\r\n\r\nconst TeamMatchLink = ({ teamMatchLink, roundName, isMultiWeekByDate }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK } = TypographySizes;\r\n\r\n return (\r\n \r\n {!isMultiWeekByDate && (\r\n \r\n {roundName}\r\n \r\n )}\r\n \r\n Team Match\r\n \r\n \r\n );\r\n};\r\n\r\nTeamMatchLink.propTypes = {\r\n ...teamMatchLinkPropTypes,\r\n};\r\n\r\nexport default TeamMatchLink;\r\n","import React from 'react';\r\nimport Box from '@mui/material/Box';\r\n\r\nconst arrowStyles = {\r\n borderTop: '10px solid transparent',\r\n borderBottom: '10px solid transparent',\r\n borderLeft: '10px solid white',\r\n height: 0,\r\n width: 0\r\n};\r\nconst rectangleStyles = {\r\n background: 'white',\r\n height: 20,\r\n width: 3\r\n};\r\n\r\nconst blackArrowStyles = {\r\n borderTop: '8px solid transparent',\r\n borderBottom: '8px solid transparent',\r\n borderLeft: '8px solid black',\r\n height: 0,\r\n width: 0\r\n};\r\n\r\nconst blackRectangleStyles = {\r\n background: 'black',\r\n height: 16,\r\n width: 3\r\n};\r\n\r\nconst WinnerIndicator = ({ sx, isBlack }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default WinnerIndicator;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport { SquareAvatarWithName, Typography, DeleteIcon, EditIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport PlayerAvailabilityResponse from '../../PlayerAvailabilityResponse';\r\nimport TeamMatchLink from './TeamMatchLink';\r\nimport WinnerIndicator from '../../WinnerIndicator';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { StyledGrid } from '../../Styled';\r\nimport { scheduleMatchCardPropTypes, defaultScheduleMatchCardPropTypes } from '../../../utils/proptypes';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { useUpdatePlayerAvailabilityStatusMutation } from '../../../api/leaguesApi';\r\n\r\nconst ScheduleMatchCard = ({\r\n match,\r\n round,\r\n isLeagueDeskSchedule = false,\r\n onEditMatch,\r\n onDeleteMatch,\r\n matchNumber = null,\r\n isMultiWeekByDate = false,\r\n}) => {\r\n const { teamMatchId, matchDate, location, position1Team, position2Team, winnerTeamId } = match;\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { DISPLAY, PRIMARY, SECONDARY } = SharedUICategories;\r\n const { LARGE, MEDIUM_BOOK, MEDIUM_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const [userAvailabilityData, setUserAvailabilityData] = useState();\r\n const [isUserOnBothTeams, setIsUserOnBothTeams] = useState();\r\n const [showAvailability, setShowAvailability] = useState();\r\n\r\n const day = getAdjustedDate({ dateUtc: matchDate, format: 'D' });\r\n const month = getAdjustedDate({ dateUtc: matchDate, format: 'MMM' });\r\n const time = getAdjustedDate({ dateUtc: matchDate, format: 'h:mm A' });\r\n const isPosition1Winner = position1Team.teamId === winnerTeamId;\r\n const isPosition2Winner = position2Team.teamId === winnerTeamId;\r\n const isMediumScreen = useMediaQuery(theme.breakpoints.down('md'));\r\n const teamNameGridItemWidth = '200px';\r\n const isMediumAndUpScreen = useMediaQuery(theme.breakpoints.up('md'));\r\n const maxLinkWidth = isMediumAndUpScreen ? teamNameGridItemWidth : 'auto';\r\n const mediumScreenMargin = isMediumScreen ? 2 : 0;\r\n const teamMatchLink = `/leagues/match/${teamMatchId}`;\r\n const roundName = round ? round?.name : match?.round?.roundName;\r\n const hasNoScoresPosted = position1Team?.points === 0 && position2Team?.points === 0;\r\n const widthOfFirstGridItem = '90px';\r\n const borderRightStyles = `1px solid ${theme.appColors.lightGrey}`;\r\n const displayMatchActions = isLeagueDeskSchedule && !match?.hasPostedScores && !isMultiWeekByDate;\r\n\r\n const [updatePlayerAvailability, { error: playerAvailabilityError }] = useUpdatePlayerAvailabilityStatusMutation();\r\n\r\n useEffect(() => {\r\n if (match) {\r\n const { requestingMemberPlayerAvailability: userAvailabilityPosition1 } = match?.position1Team || {};\r\n const { requestingMemberPlayerAvailability: userAvailabilityPosition2 } = match?.position2Team || {};\r\n const showAvailabilityOptions = !!userAvailabilityPosition1 || !!userAvailabilityPosition2;\r\n const isUserMemberOfBothTeams = !!userAvailabilityPosition1?.teamMemberId && !!userAvailabilityPosition2?.teamMemberId;\r\n\r\n if (isUserMemberOfBothTeams || !!userAvailabilityPosition1) {\r\n setUserAvailabilityData(userAvailabilityPosition1);\r\n } else if (userAvailabilityPosition2) {\r\n setUserAvailabilityData(userAvailabilityPosition2);\r\n }\r\n\r\n setShowAvailability(showAvailabilityOptions);\r\n setIsUserOnBothTeams(isUserMemberOfBothTeams);\r\n }\r\n }, [match]);\r\n\r\n const getWinnerFontSize = (isPositionWinner) => {\r\n if (isPositionWinner) {\r\n return MEDIUM_MEDIUM;\r\n }\r\n return MEDIUM_BOOK;\r\n };\r\n\r\n const getWinnerFontColor = (isPositionWinner) => {\r\n if (isPositionWinner) {\r\n return theme.appColors.black;\r\n }\r\n return theme.appColors.blueGrey;\r\n };\r\n\r\n const handleOnPlayerAvailabilityChange = async ({ teamMemberId, availabilityStatus }) => {\r\n let teamMemberIds = [teamMemberId];\r\n\r\n if (isUserOnBothTeams) {\r\n teamMemberIds = [\r\n position1Team?.requestingMemberPlayerAvailability?.teamMemberId,\r\n position2Team?.requestingMemberPlayerAvailability?.teamMemberId,\r\n ];\r\n }\r\n\r\n try {\r\n await updatePlayerAvailability({\r\n teamMemberIds,\r\n playerAvailabilityStatusId: availabilityStatus,\r\n teamMatchId: parseInt(teamMatchId),\r\n }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnEditClick = () => {\r\n onEditMatch(match);\r\n };\r\n\r\n const handleOnDeleteClick = () => {\r\n onDeleteMatch(teamMatchId, round?.name, matchNumber);\r\n };\r\n\r\n const ByeMatch = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n —\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {displayMatchActions && (\r\n \r\n \r\n handleOnDeleteClick()} aria-label=\"Delete team match\">\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {location ? (\r\n \r\n \r\n \r\n \r\n \r\n {`${month} ${day}`}\r\n \r\n \r\n {time}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isPosition2Winner && }\r\n \r\n \r\n {hasNoScoresPosted ? '—' : position2Team.points}\r\n \r\n \r\n \r\n {isPosition1Winner && }\r\n \r\n \r\n {hasNoScoresPosted ? '—' : position1Team.points}\r\n \r\n \r\n \r\n \r\n \r\n {location.placeName}\r\n \r\n \r\n {location.formattedAddress}\r\n \r\n \r\n {showAvailability && (\r\n \r\n \r\n \r\n )}\r\n {displayMatchActions && (\r\n \r\n \r\n <>\r\n \r\n \r\n \r\n handleOnDeleteClick()} aria-label=\"Delete team match\">\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nScheduleMatchCard.propTypes = {\r\n ...scheduleMatchCardPropTypes,\r\n};\r\n\r\nScheduleMatchCard.defaultProps = {\r\n ...defaultScheduleMatchCardPropTypes,\r\n};\r\n\r\nexport default ScheduleMatchCard;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport { useTheme } from '@mui/material';\r\nimport Box from '@mui/material/Box';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport { AddIcon, Button, Typography, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport ScheduleMatchCard from '../Cards/ScheduleMatchCard';\r\n\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { multiWeekByRoundPropTypes } from '../../utils/proptypes';\r\n\r\nconst MultiWeekRound = ({ round, onEditMatch, onDeleteMatch, isLeagueDeskSchedule, onDeleteRound, onAddTeamMatch, teams, isManaging }) => {\r\n const theme = useTheme();\r\n const { SMALL_BOOK } = TypographySizes;\r\n const { SECONDARY, LINK } = SharedUICategories;\r\n const roundMatches = [...(round?.matches || {})];\r\n const sortedRoundMatches = useMemo(() => {\r\n const sortMatches = (matches) => matches?.sort((a, b) => new Date(a.matchDate) - new Date(b.matchDate));\r\n return sortMatches([...roundMatches]);\r\n }, [roundMatches]);\r\n const roundHasNoPostedScores = !round?.hasPostedScores;\r\n\r\n const handleOnEditClick = (match) => {\r\n onEditMatch(match);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {round?.name}\r\n \r\n {roundHasNoPostedScores && isManaging && (\r\n onDeleteRound(round?.id, round?.name)}>\r\n \r\n \r\n )}\r\n \r\n {sortedRoundMatches.map((match, index) => {\r\n const matchNumber = index + 1;\r\n return (\r\n \r\n );\r\n })}\r\n {isManaging && (\r\n onAddTeamMatch(round?.id)}\r\n startIcon={}\r\n category={LINK}\r\n disabled={!teams?.length}\r\n >\r\n \r\n Add a team match\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nMultiWeekRound.propTypes = {\r\n ...multiWeekByRoundPropTypes,\r\n};\r\n\r\nexport default MultiWeekRound;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport ScheduleMatchCard from '../Cards/ScheduleMatchCard';\r\n\r\nimport { multiWeekByDatePropTypes } from '../../utils/proptypes';\r\n\r\nconst MultiWeekByDate = ({ scheduleByDate, onEditMatch, isLeagueDeskSchedule }) => {\r\n const { teamMatches } = scheduleByDate || [];\r\n\r\n const handleOnEditClick = (match) => {\r\n onEditMatch(match);\r\n };\r\n\r\n return (\r\n \r\n {teamMatches?.map((match) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nMultiWeekByDate.propTypes = {\r\n ...multiWeekByDatePropTypes,\r\n};\r\n\r\nexport default MultiWeekByDate;\r\n","import React from 'react';\r\n\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport { TypographySizes, SharedUICategories } from '../../../../utils/constants';\r\n\r\nconst TeamPageDrawTableSelect = ({ selectedValue = true, onChange }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK } = TypographySizes;\r\n return (\r\n \r\n \r\n \r\n Main Draw\r\n Back Draw\r\n \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nexport default TeamPageDrawTableSelect;\r\n","import React, { useState } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport AddTeamMatchModal from '../AddTeamMatchModal';\r\nimport MultiWeekRound from '../MultiWeekRound';\r\nimport MultiWeekByDate from '../MultiWeekByDate';\r\nimport DrawTable from '../DrawTab/DrawTable';\r\nimport useIsMobile from '../../hooks/useIsMobile';\r\nimport { MAIN_DRAW_TABLE_NUMBER, MANAGE_SESSION_PAGE_TYPE } from '../DrawTab/utils';\r\nimport { MultiRoundScheduleTypes } from '../../utils/types';\r\nimport TeamPageDrawTableSelect from '../DrawTab/TeamPageDrawTable/TeamPageDrawTableSelect';\r\nimport { schedulePropTypes } from '../../utils/proptypes';\r\n\r\nconst Schedule = ({\r\n seasonRounds,\r\n isManaging = false,\r\n onEditMatch,\r\n onDeleteMatch,\r\n isLeagueDeskSchedule = false,\r\n drawSchedule,\r\n isSchedulePublished,\r\n pageType,\r\n scheduleByDate,\r\n multiRoundScheduleType,\r\n displayTournamentBracketStyle,\r\n sessionId,\r\n onDeleteRound,\r\n scheduleId,\r\n refetchSessionSchedule,\r\n teams,\r\n session,\r\n}) => {\r\n const isMobile = useIsMobile();\r\n const navigate = useNavigate();\r\n const [showAddTeamMatchModal, setShowAddTeamMatchModal] = useState(false);\r\n const [roundId, setRoundId] = useState();\r\n const [showMainDraw, setShowMainDraw] = useState(true);\r\n const { BY_ROUND, BY_DATE } = MultiRoundScheduleTypes;\r\n const hasSeasonRounds =\r\n !!seasonRounds?.length && multiRoundScheduleType === BY_ROUND && (pageType === MANAGE_SESSION_PAGE_TYPE || isSchedulePublished);\r\n const hasDrawSchedule = drawSchedule?.draws.length && isSchedulePublished;\r\n const hasMultiRoundScheduleByDate = !!scheduleByDate?.teamMatches?.length && multiRoundScheduleType === BY_DATE;\r\n const totalRounds = drawSchedule?.draws.reduce((acc, cur) => {\r\n if (!cur.rounds) return acc;\r\n return [...acc, ...cur.rounds];\r\n }, []);\r\n\r\n const handleOnEditMatch = (match) => {\r\n onEditMatch(match);\r\n };\r\n\r\n const handleOnAddTeamMatch = (roundIdToSet) => {\r\n setRoundId(roundIdToSet);\r\n setShowAddTeamMatchModal(true);\r\n };\r\n\r\n const handleOnCloseAddTeamMatchModal = () => {\r\n setShowAddTeamMatchModal(false);\r\n };\r\n\r\n const handleOnViewDrawMatchClick = (match) => {\r\n navigate(`/leagues/match/${match?.teamMatchId}`);\r\n };\r\n\r\n return (\r\n <>\r\n {displayTournamentBracketStyle && hasDrawSchedule && (\r\n {\r\n setShowMainDraw(e.target.value);\r\n }}\r\n />\r\n )}\r\n {hasSeasonRounds &&\r\n seasonRounds.map((round) => (\r\n \r\n ))}\r\n \r\n {hasMultiRoundScheduleByDate && (\r\n \r\n )}\r\n {hasDrawSchedule &&\r\n drawSchedule?.draws.map((draw) => {\r\n if (!isSchedulePublished) return;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nSchedule.propTypes = {\r\n ...schedulePropTypes,\r\n};\r\n\r\nexport default Schedule;\r\n","import React from 'react';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport InputLabel from '@mui/material/InputLabel';\r\n\r\nimport { multiRoundScheduleTypes } from '../../../utils/types';\r\n\r\nconst MultiRoundScheduleSelect = (props) => {\r\n const { scheduleType, disabled, onChange } = props;\r\n\r\n return (\r\n \r\n Select Schedule View\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MultiRoundScheduleSelect;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport MultiRoundScheduleSelect from '../../../../components/Form/MultiRoundScheduleSelect';\r\n\r\nimport { MultiRoundScheduleTypes } from '../../../../utils/types';\r\nimport { TypographySizes, SharedUICategories } from '../../../../utils/constants';\r\nimport { manageSessionActionsPropTypes } from '../../../../utils/proptypes';\r\n\r\nconst SessionActions = ({\r\n onAddRound,\r\n onAddTeamClick,\r\n onGenerateSchedule,\r\n onCreateSchedule,\r\n onPublish,\r\n onUnpublishSchedule,\r\n onScheduleChange,\r\n onDeleteSchedule,\r\n isCreatingManualSchedule,\r\n hasPostedScores,\r\n isLoadingSchedule = false,\r\n isScheduleCreated = false,\r\n isSchedulePublished = false,\r\n multiRoundScheduleType,\r\n teams = [],\r\n maxTeamsCount = null,\r\n hasSessionEnded = false,\r\n}) => {\r\n const theme = useTheme();\r\n const { DISPLAY, SECONDARY, PRIMARY, PRIMARY_EXPANDED } = SharedUICategories;\r\n const { BY_ROUND } = MultiRoundScheduleTypes;\r\n const { MEDIUM_BOOK, SMALL_BOOK } = TypographySizes;\r\n const paperStyles = { px: 2.5, pb: 2.5, pt: 2, width: '300px' };\r\n const displayManualScheduleSelect = isSchedulePublished && isScheduleCreated;\r\n const isTeamActionsDisabled = teams.length === maxTeamsCount || hasSessionEnded;\r\n\r\n return (\r\n <>\r\n {!isScheduleCreated && !isCreatingManualSchedule && (\r\n \r\n \r\n \r\n Auto generate schedule?\r\n \r\n \r\n Select this option to automatically create a balanced schedule. Each team will play a set number of matches,\r\n with an even mix of home and away games, based on your initial settings.\r\n \r\n \r\n \r\n \r\n \r\n Manually create schedule?\r\n \r\n \r\n Choose this option if you prefer to build your schedule from scratch. You'll control the number of rounds,\r\n team matches per round, and which teams face off in each match.\r\n \r\n \r\n \r\n \r\n )}\r\n {isScheduleCreated && (\r\n \r\n \r\n {displayManualScheduleSelect && (\r\n \r\n )}\r\n \r\n {multiRoundScheduleType === BY_ROUND && (\r\n \r\n \r\n \r\n \r\n \r\n {isSchedulePublished ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSessionActions.propTypes = {\r\n ...manageSessionActionsPropTypes,\r\n};\r\n\r\nexport default SessionActions;\r\n","import React from 'react';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\n\r\nimport RadioGroup from '../Form/RadioGroup';\r\nimport Select from '../Form/Select';\r\n\r\nimport { tennisSessionStandingsOptions, pickleballSessionStandingsOptions, SessionStandingsTypes } from '../../utils/types';\r\nimport { getNewRoundNumberOptions } from '../../utils/helpers';\r\nimport { addScheduleRoundPopupPropTypes } from '../../utils/proptypes';\r\n\r\nconst AddScheduleRoundPopup = ({\r\n rounds = [],\r\n open = false,\r\n onClose,\r\n title = '',\r\n insertRoundMessage = '',\r\n teamStandingsMessage = '',\r\n errorMessage = '',\r\n buttonLabel = '',\r\n onAction,\r\n actionLabel,\r\n isTennis = false,\r\n disableAddRoundButton,\r\n}) => {\r\n const { TENNIS_WIN_LOSS_RECORD, PICKLEBALL_WIN_LOSS_RECORD } = SessionStandingsTypes;\r\n const radioGroupOptions = isTennis ? tennisSessionStandingsOptions : pickleballSessionStandingsOptions;\r\n const defaultSessionStandingType = isTennis ? TENNIS_WIN_LOSS_RECORD : PICKLEBALL_WIN_LOSS_RECORD;\r\n const newRoundNumberOptions = rounds && getNewRoundNumberOptions(rounds);\r\n const firstRound = 1;\r\n\r\n const defaultValues = {\r\n newRoundNumber: firstRound,\r\n sessionStandingTypeId: defaultSessionStandingType,\r\n };\r\n const { handleSubmit, control, reset } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const handleOnAddRound = () => {\r\n handleSubmit(onAction)();\r\n };\r\n\r\n const handleOnClose = () => {\r\n reset(defaultValues);\r\n onClose();\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n {!!title && (\r\n \r\n {title}\r\n \r\n )}\r\n {rounds?.length > 0 && (\r\n \r\n \r\n {insertRoundMessage}\r\n \r\n \r\n \r\n )}\r\n \r\n {teamStandingsMessage}\r\n \r\n \r\n {!!errorMessage && (\r\n \r\n {errorMessage}\r\n \r\n )}\r\n \r\n {buttonLabel && (\r\n \r\n )}\r\n {onAction && (\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nAddScheduleRoundPopup.propTypes = {\r\n ...addScheduleRoundPopupPropTypes,\r\n};\r\n\r\nexport default AddScheduleRoundPopup;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { getSessionRounds } from '../utils/sessions';\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { showPopup } from '../redux/genericPopupSlice';\r\nimport {\r\n useGetSessionScheduleQuery,\r\n useLazyGetSessionScheduleByDateQuery,\r\n useCreateScheduleMutation,\r\n useRemoveScheduleMutation,\r\n useUpdateUnpublishScheduleMutation,\r\n usePublishScheduleMutation\r\n} from '../api/leaguesApi';\r\nimport { ResponseStatuses } from '../utils/constants';\r\nimport { ScheduleStatuses, MultiRoundScheduleTypes } from '../utils/types';\r\n\r\nconst useSessionSchedule = ({ sessionId, showDraftSchedule, isMultiRoundSession, skipFetch = false }) => {\r\n const dispatch = useDispatch();\r\n const { NOT_FOUND } = ResponseStatuses;\r\n const { PUBLISHED } = ScheduleStatuses;\r\n const { BY_ROUND, BY_DATE } = MultiRoundScheduleTypes;\r\n const [drawSchedule, setDrawSchedule] = useState();\r\n const [hasPostedScores, setHasPostedScores] = useState(false);\r\n const [isScheduleCreated, setIsScheduleCreated] = useState(false);\r\n const [isSchedulePublished, setIsSchedulePublished] = useState(false);\r\n const [multiRoundScheduleType, setMultiRoundScheduleType] = useState(BY_ROUND);\r\n const [scheduleByDate, setScheduleByDate] = useState();\r\n const [scheduleId, setScheduleId] = useState();\r\n const [scheduleRounds, setScheduleRounds] = useState();\r\n\r\n const {\r\n data: schedule,\r\n isFetching: isFetchingSchedule,\r\n refetch: refetchSessionSchedule,\r\n error: scheduleError,\r\n } = useGetSessionScheduleQuery({ sessionId, showDraftSchedule }, { skip: isMultiRoundSession === null || skipFetch });\r\n const [getScheduleByDate, { data: dateSchedule, isFetching: isFetchingScheduleByDate, error: dateScheduleError, }] = useLazyGetSessionScheduleByDateQuery();\r\n const [createSchedule, { isLoading: isCreatingSchedule }] = useCreateScheduleMutation();\r\n const [removeSchedule] = useRemoveScheduleMutation();\r\n const [unpublishSchedule] = useUpdateUnpublishScheduleMutation();\r\n const [publishSchedule, { isLoading: isPublishingSchedule }] = usePublishScheduleMutation();\r\n const isLoadingSchedule = isFetchingSchedule || isFetchingScheduleByDate || isPublishingSchedule || isCreatingSchedule;\r\n\r\n const getMappedSchedule = (data) => {\r\n if (isMultiRoundSession) {\r\n setScheduleRounds(getSessionRounds(data));\r\n } else {\r\n setDrawSchedule(data);\r\n }\r\n };\r\n\r\n const resetSchedule = () => {\r\n setIsScheduleCreated(false);\r\n setDrawSchedule(null);\r\n setScheduleRounds(null);\r\n setScheduleByDate(null);\r\n setScheduleId(null);\r\n setMultiRoundScheduleType(BY_ROUND);\r\n };\r\n\r\n const onCreateSchedule = async () => {\r\n try {\r\n const scheduleData = await createSchedule({ sessionId }).unwrap();\r\n if (scheduleData) {\r\n getMappedSchedule(scheduleData);\r\n setScheduleId(scheduleData?.scheduleId);\r\n setIsScheduleCreated(true);\r\n setIsSchedulePublished(false);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onDeleteSchedule = async () => {\r\n try {\r\n await removeSchedule({ scheduleId, sessionId });\r\n resetSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onPublishSchedule = async (scheduleData) => {\r\n const scheduleType = isMultiRoundSession ? 'schedule' : 'draw';\r\n try {\r\n await publishSchedule({ scheduleId, sessionId, data: scheduleData }).unwrap();\r\n setIsSchedulePublished(true);\r\n dispatch(showPopup({ title: 'Success!', message: `The session ${scheduleType} has been published!` }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onUnpublishSchedule = async () => {\r\n try {\r\n await unpublishSchedule({ scheduleId, sessionId });\r\n setIsSchedulePublished(false);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onGetScheduleByDate = async (scheduleType) => {\r\n if (scheduleType === BY_DATE) {\r\n try {\r\n const response = await getScheduleByDate({ sessionId, showDraftSchedule });\r\n if (response) {\r\n setScheduleByDate(response?.data);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n\r\n setMultiRoundScheduleType(scheduleType);\r\n };\r\n\r\n if (dateScheduleError) {\r\n const hasError = dateScheduleError?.status !== NOT_FOUND;\r\n if (hasError) {\r\n dispatch(showErrorPopup(dateScheduleError));\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (schedule) {\r\n const { scheduleId: id, hasPostedScores: hasScoresPosted, statusId } = schedule || {};\r\n setHasPostedScores(hasScoresPosted);\r\n setScheduleId(id);\r\n setIsSchedulePublished(statusId === PUBLISHED);\r\n setIsScheduleCreated(true);\r\n getMappedSchedule(schedule);\r\n }\r\n\r\n if (dateSchedule) {\r\n const { scheduleId: id, hasPostedScores: hasScoresPosted, statusId } = dateSchedule || {};\r\n setScheduleByDate(dateSchedule);\r\n setHasPostedScores(hasScoresPosted);\r\n setScheduleId(id);\r\n setIsSchedulePublished(statusId === PUBLISHED);\r\n }\r\n }, [schedule, dateSchedule]);\r\n\r\n useEffect(() => {\r\n if (scheduleError) {\r\n if (scheduleError?.status === NOT_FOUND) {\r\n resetSchedule();\r\n } else {\r\n dispatch(showErrorPopup(scheduleError));\r\n }\r\n }\r\n }, [scheduleError]);\r\n\r\n return {\r\n scheduleId,\r\n scheduleRounds,\r\n scheduleByDate,\r\n drawSchedule,\r\n hasPostedScores,\r\n isCreatingSchedule,\r\n isLoadingSchedule,\r\n isScheduleCreated,\r\n isSchedulePublished,\r\n isPublishingSchedule,\r\n onCreateSchedule,\r\n onDeleteSchedule,\r\n onPublishSchedule,\r\n onUnpublishSchedule,\r\n onGetScheduleByDate,\r\n refetchSessionSchedule,\r\n multiRoundScheduleType\r\n };\r\n};\r\n\r\nexport default useSessionSchedule;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Popup from '../../../components/Popups/Popup';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport Schedule from '../../../components/Schedule';\r\nimport SessionActions from './SessionActions';\r\nimport MatchEditModal from '../../TeamMatchPage/MatchEditModal';\r\nimport ConfirmPublishSchedulePopup from '../../../components/Popups/ConfirmPublishSchedulePopup';\r\nimport AddScheduleRoundPopup from '../../../components/Popups/AddScheduleRoundPopup';\r\n\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { LeagueSessionTypes, SportTypeIds } from '../../../utils/types';\r\nimport { getRoundCount, getTooManyMatchesPerTeamError } from '../../../utils/sessions';\r\nimport {\r\n useUpdateTeamMatchSummaryMutation,\r\n useCreateEmptyScheduleMutation,\r\n useAddScheduleRoundMutation,\r\n useRemoveScheduleRoundMutation,\r\n useRemoveTeamMatchMutation,\r\n} from '../../../api/leaguesApi';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { MANAGE_SESSION_PAGE_TYPE } from '../../../components/DrawTab/utils';\r\nimport useSessionSchedule from '../../../hooks/useSessionSchedule';\r\nimport { manageSessionScheduleTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst SCHEDULE_CREATION_MORE_MATCHES_TEXT =\r\n 'There are more matches per team than weeks in the session. All match dates will default to the session start date. Please be sure to update match times prior to publishing';\r\n\r\nconst ScheduleTab = ({ session, isLoadingSession, onAddTeamClick, teams, maxTeamsCount, hasSessionEnded }) => {\r\n const dispatch = useDispatch();\r\n const { startDateUtc, endDateUtc, id: sessionId, sessionTypeId, matchesPerTeam } = session;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const { TENNIS } = SportTypeIds;\r\n const teamCount = teams?.length;\r\n const [isCreatingManualSchedule, setIsCreatingManualSchedule] = useState(false);\r\n const [showGeneratePopup, setShowGeneratePopup] = useState(false);\r\n const [showPublishPopup, setShowPublishPopup] = useState(false);\r\n const [showAddRoundPopup, setShowAddRoundPopup] = useState(false);\r\n const [showDeleteRoundPopup, setShowDeleteRoundPopup] = useState(false);\r\n const [showDeleteMatchPopup, setShowDeleteMatchPopup] = useState(false);\r\n const [showUnpublishPopup, setShowUnpublishPopup] = useState(false);\r\n const [roundIdToDelete, setRoundIdToDelete] = useState();\r\n const [roundName, setRoundName] = useState();\r\n const [matchNumber, setMatchNumber] = useState();\r\n const [matchIdToDelete, setMatchIdToDelete] = useState();\r\n const [showDeleteSchedulePopup, setShowDeleteSchedulePopup] = useState(false);\r\n const [matchToUpdate, setMatchToUpdate] = useState(null);\r\n const [showEditMatchModal, setShowEditMatchModal] = useState(false);\r\n\r\n const isMultiRoundSession = sessionTypeId === MULTI_ROUND;\r\n const dateFormat = 'll';\r\n const startDate = getAdjustedDate({ dateUtc: startDateUtc, format: dateFormat });\r\n const endDate = getAdjustedDate({ dateUtc: endDateUtc, format: dateFormat });\r\n const roundCount = getRoundCount(teamCount, matchesPerTeam);\r\n const schedulePopupMessage = `Using the ${teamCount} teams in this session, we will generate a schedule with ${roundCount} rounds from ${startDate} - ${endDate}.`;\r\n const publishPopupMessage =\r\n 'Publishing will make the schedule viewable to the public. The schedule can be modified until the first match score is posted.';\r\n const insertRoundMessage = 'Where would you like to insert this round?';\r\n const teamStandingsMessage = 'How would you like team standings to be calculated?';\r\n const deletePopupMessage = 'Are you sure you want to delete this schedule?';\r\n const confirmPublishCheckboxMessage = 'Notify teams that the schedule has been published';\r\n const unpublishPopupMessage = 'Are you sure you want to Unpublish this Schedule?';\r\n\r\n const [updateTeamMatchSummary, { isLoading: isUpdatingSummary }] = useUpdateTeamMatchSummaryMutation();\r\n const [onCreateEmptySchedule] = useCreateEmptyScheduleMutation({ sessionId });\r\n const {\r\n scheduleId,\r\n scheduleRounds,\r\n scheduleByDate,\r\n drawSchedule,\r\n hasPostedScores,\r\n isLoadingSchedule,\r\n isScheduleCreated,\r\n isSchedulePublished,\r\n onCreateSchedule,\r\n onDeleteSchedule,\r\n onGetScheduleByDate,\r\n onPublishSchedule,\r\n onUnpublishSchedule,\r\n multiRoundScheduleType,\r\n refetchSessionSchedule,\r\n } = useSessionSchedule({ sessionId, showDraftSchedule: true, isMultiRoundSession });\r\n\r\n const [onAddScheduleRound, { isLoading: isAddingRound }] = useAddScheduleRoundMutation({ scheduleId });\r\n const [onDeleteRound] = useRemoveScheduleRoundMutation();\r\n const [onRemoveMatch] = useRemoveTeamMatchMutation();\r\n\r\n const isTennis = session.sportTypeId === TENNIS;\r\n const isLoading = isLoadingSession || isLoadingSchedule || isUpdatingSummary;\r\n\r\n const handleOnScheduleChange = (event) => {\r\n const scheduleType = event?.target?.value;\r\n onGetScheduleByDate(scheduleType);\r\n };\r\n\r\n const handleOnGenerateSchedule = () => {\r\n setShowGeneratePopup(true);\r\n };\r\n\r\n const handleOnCreateSchedule = async () => {\r\n setIsCreatingManualSchedule(true);\r\n try {\r\n await onCreateEmptySchedule(sessionId).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnConfirmGenerateSchedule = () => {\r\n setShowGeneratePopup(false);\r\n onCreateSchedule();\r\n };\r\n\r\n const handleOnConfirmPublishSchedule = ({ isNotifyingTeams }) => {\r\n setShowPublishPopup(false);\r\n onPublishSchedule({ notifyTeams: isNotifyingTeams });\r\n };\r\n\r\n const handleOnPublish = () => {\r\n setShowPublishPopup(true);\r\n };\r\n\r\n const handleOnUnpublish = () => {\r\n setShowUnpublishPopup(true);\r\n };\r\n\r\n const handleOnDeleteSchedule = () => {\r\n setShowDeleteSchedulePopup(true);\r\n };\r\n\r\n const handleOnConfirmDeleteSchedule = async () => {\r\n onDeleteSchedule();\r\n setShowDeleteSchedulePopup(false);\r\n setIsCreatingManualSchedule(false);\r\n };\r\n\r\n const handleOnCloseGeneratePopup = () => {\r\n setShowGeneratePopup(false);\r\n };\r\n\r\n const handleOnClosePublishPopup = () => {\r\n setShowPublishPopup(false);\r\n };\r\n\r\n const handleOnEditMatch = (match) => {\r\n setMatchToUpdate(match);\r\n setShowEditMatchModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditMatchModal(false);\r\n };\r\n\r\n const handleOnEditSubmit = async (teamMatch) => {\r\n setShowEditMatchModal(false);\r\n try {\r\n await updateTeamMatchSummary({ teamMatchId: matchToUpdate.teamMatchId, sessionId, scheduleId, teamMatch }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnDisplayAddRound = () => {\r\n setShowAddRoundPopup(true);\r\n };\r\n\r\n const handleOnAddRound = async (newRound) => {\r\n if (!isAddingRound) {\r\n try {\r\n await onAddScheduleRound({\r\n scheduleId,\r\n newRound,\r\n }).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n setShowAddRoundPopup(false);\r\n };\r\n\r\n const handleOnCloseAddRoundPopup = async () => {\r\n setShowAddRoundPopup(false);\r\n };\r\n\r\n const handleOnDeleteRound = (roundId, name) => {\r\n setRoundIdToDelete(roundId);\r\n setRoundName(name);\r\n setShowDeleteRoundPopup(true);\r\n };\r\n\r\n const handleOnConfirmDeleteRound = async () => {\r\n try {\r\n await onDeleteRound({ scheduleId, roundId: roundIdToDelete }).unwrap();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowDeleteRoundPopup(false);\r\n };\r\n\r\n const handleOnDeleteMatch = (teamMatchId, round, matchIndex) => {\r\n setMatchIdToDelete(teamMatchId);\r\n setRoundName(round);\r\n setMatchNumber(matchIndex);\r\n setShowDeleteMatchPopup(true);\r\n };\r\n\r\n const handleOnConfirmDeleteTeamMatch = async () => {\r\n try {\r\n await onRemoveMatch({ teamMatchId: matchIdToDelete });\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowDeleteMatchPopup(false);\r\n };\r\n\r\n const handleOnUnpublishSchedule = async () => {\r\n try {\r\n await onUnpublishSchedule();\r\n refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowUnpublishPopup(false);\r\n };\r\n\r\n const hasErrors = getTooManyMatchesPerTeamError(session);\r\n\r\n return (\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n setShowDeleteSchedulePopup(false)}\r\n title=\"Delete Schedule\"\r\n message={deletePopupMessage}\r\n />\r\n \r\n setShowDeleteRoundPopup(false)}\r\n title=\"Delete Round\"\r\n message={`Are you sure you wish to remove ${roundName} from the schedule? This could result in teams having different numbers of matches for the season.`}\r\n />\r\n setShowDeleteMatchPopup(false)}\r\n title=\"Delete Team Match\"\r\n message={`Are you sure you wish to remove team match ${matchNumber} from ${roundName}? This could result in teams having different numbers of matches for the season.`}\r\n />\r\n setShowUnpublishPopup(false)}\r\n title=\"Unpublish Schedule\"\r\n message={unpublishPopupMessage}\r\n />\r\n \r\n );\r\n};\r\n\r\nScheduleTab.propTypes = {\r\n ...manageSessionScheduleTabPropTypes,\r\n};\r\n\r\nexport default ScheduleTab;\r\n","import React from 'react';\r\n\r\nimport { AvatarWithName, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { getPlayerAvatarImage, getPlayerProfileUrl } from '../../../utils/helpers';\r\nimport { manageSessionCaptainCardPropTypes } from '../../../utils/proptypes';\r\n\r\nconst ManageSessionCaptainCard = ({ captain, onRemoveClick }) => {\r\n const theme = useTheme();\r\n const { displayName, memberId, playerId, profileImage, location } = captain;\r\n const href = getPlayerProfileUrl(playerId);\r\n\r\n const handleOnRemoveClick = () => {\r\n onRemoveClick(captain);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {location?.display}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nManageSessionCaptainCard.propTypes = {\r\n ...manageSessionCaptainCardPropTypes,\r\n};\r\n\r\nexport default ManageSessionCaptainCard;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Button, AddIcon, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Paper from '@mui/material/Paper';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\n\r\nimport ManageSessionCaptainCard from '../Cards/ManageSessionCaptainCard';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayerSearch from '../Form/PlayerSearch';\r\nimport Popup from '../Popups/Popup';\r\nimport { mapMembersForPlayerSearch } from '../../utils/helpers';\r\nimport { manageSessionTeamCaptainPropTypes } from '../../utils/proptypes';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\n\r\nconst ManageSessionTeamCaptain = ({\r\n captains = [],\r\n isUpdatingCaptains = false,\r\n isLoadingTeam = false,\r\n onAddCaptain,\r\n onRemoveCaptain,\r\n isRequired = false,\r\n maxCaptains = null,\r\n}) => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const { SMALL_BOOK } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [originalCaptains, setOriginalCaptains] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [showCaptainSearch, setShowCaptainSearch] = useState(false);\r\n const [isRemovingCaptain, setIsRemovingCaptain] = useState(false);\r\n const [captainAwaitingAction, setCaptainAwaitingAction] = useState();\r\n const minimumAmountOfCaptainsNeeded = 1;\r\n const maximumAmountOfCaptains = maxCaptains || 3;\r\n const maxCaptainsAdded = captains?.length === maximumAmountOfCaptains && captains[0] !== null;\r\n\r\n useEffect(() => {\r\n if (captains?.length > 0) {\r\n const mappedMembers = mapMembersForPlayerSearch(captains);\r\n setOriginalCaptains(mappedMembers);\r\n }\r\n }, [captains]);\r\n\r\n const isPermittedToRemoveCaptain = () => {\r\n if (captains?.length === minimumAmountOfCaptainsNeeded) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: 'There must always be at least one captain',\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const handleOnAddCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(false);\r\n setShowConfirmationPopup(true);\r\n setShowCaptainSearch(false);\r\n };\r\n\r\n const handleOnRemoveCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(true);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToRemoveCaptain = isPermittedToRemoveCaptain();\r\n if (isAbleToRemoveCaptain) {\r\n onRemoveCaptain(captainAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnConfirmAddition = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n if (!maxCaptainsAdded) {\r\n onAddCaptain(captainAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnAddCaptainClick = () => {\r\n setShowCaptainSearch((prevStatus) => !prevStatus);\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const action = isRemovingCaptain ? 'Remove' : 'Add';\r\n const popupAction = isRemovingCaptain ? handleOnConfirmRemoval : handleOnConfirmAddition;\r\n const popupTitle = `${action} captain`;\r\n const popupMessage = `Are you sure you want to ${action?.toLowerCase()} ${captainAwaitingAction?.displayName} as a captain?`;\r\n const displayMaxCaptainsAddedText = maxCaptainsAdded;\r\n\r\n return isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {isUpdatingCaptains ? (\r\n \r\n ) : (\r\n originalCaptains?.map((captain) => (\r\n \r\n ))\r\n )}\r\n \r\n {showCaptainSearch && (\r\n \r\n \r\n \r\n )}\r\n {!maxCaptainsAdded && (\r\n }\r\n >\r\n \r\n Add a team captain\r\n \r\n \r\n )}\r\n \r\n {displayMaxCaptainsAddedText && (\r\n \r\n Max captains added\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nManageSessionTeamCaptain.propTypes = {\r\n ...manageSessionTeamCaptainPropTypes,\r\n};\r\n\r\nexport default ManageSessionTeamCaptain;\r\n","import React, { useState } from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport TextField from '@mui/material/TextField';\r\nimport Visibility from '@mui/icons-material/Visibility';\r\nimport VisibilityOff from '@mui/icons-material/VisibilityOff';\r\n\r\nconst PasswordInput = (props) => {\r\n const { control, name, label, error, isRequired = false, helperText } = props;\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const togglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n return (\r\n (\r\n \r\n \r\n \r\n {showPassword ? : }\r\n \r\n \r\n ),\r\n }}\r\n label={label}\r\n />\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default PasswordInput;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { Box } from '@mui/material';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport ManageSessionTeamCaptain from '../../../components/ManageSessionTeamCaptain';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport FullPageModal from '../../../components/Modals/FullPageModal';\r\nimport Input from '../../../components/Form/Input';\r\nimport Location from '../../../components/Form/Location';\r\nimport PasswordInput from '../../../components/Form/PasswordInput';\r\nimport TimePicker from '../../../components/Form/TimePicker';\r\nimport Select from '../../../components/Form/Select';\r\nimport { CustomSwitch } from '../../../components/Styled';\r\n\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { weekdays, LeagueSessionTypes, StatusTypes } from '../../../utils/types';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { getAdjustedTimeOfDay } from '../../../utils/display';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { manageTeamModalPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { useGetTeamQuery, useUpdateTeamMutation, useAddCaptainMutation, useRemoveCaptainMutation } from '../../../api/leaguesApi';\r\n\r\nconst ManageTeamModal = ({ isOpen, onClose, teamId, onSaveClick }) => {\r\n const dispatch = useDispatch();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_BOOK } = TypographySizes;\r\n const { OPEN, CLOSED } = StatusTypes;\r\n const { data: teamDetails, isLoading: isLoadingTeam, isFetching } = useGetTeamQuery(teamId);\r\n const [addCaptain, { isLoading: isAddingCaptain }] = useAddCaptainMutation();\r\n const [removeCaptain, { isLoading: isRemovingCaptain }] = useRemoveCaptainMutation();\r\n const { TOURNAMENT, MULTI_ROUND } = LeagueSessionTypes;\r\n const [sessionTypeId, setSessionTypeId] = useState();\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalFormData, setOriginalFormData] = useState();\r\n const [teamRegistrationStatus, setTeamRegistrationStatus] = useState(true);\r\n const [updatedTeamRegistrationStatus, setUpdatedTeamRegistrationStatus] = useState(OPEN);\r\n const registrationStatusDescription = teamRegistrationStatus ? 'Open' : 'Closed';\r\n const isUpdatingCaptains = isAddingCaptain || isRemovingCaptain || isFetching;\r\n\r\n const [updateTeam] = useUpdateTeamMutation();\r\n\r\n const defaultValues = {\r\n name: '',\r\n registrationPin: '',\r\n teamRegistrationAvailabilityStatusTypeId: 1,\r\n dayOfWeek: '',\r\n location: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (teamDetails) {\r\n const {\r\n name,\r\n timeOfDay,\r\n homeCourtLocation,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n registrationPin,\r\n sessionTypeId: teamSessionTypeId,\r\n dayOfWeek,\r\n } = teamDetails;\r\n\r\n let time = null;\r\n if (timeOfDay) {\r\n const adjustedTime = getAdjustedTimeOfDay({ timeOfDay });\r\n time = moment(adjustedTime, 'hh:mm:ss');\r\n }\r\n\r\n let timeSlotDay = '';\r\n if (dayOfWeek) {\r\n timeSlotDay = weekdays.find((weekday) => weekday.description === dayOfWeek);\r\n }\r\n\r\n const canRegister = teamRegistrationAvailabilityStatusTypeId === 1;\r\n const teamLocation = homeCourtLocation?.placeName || homeCourtLocation?.formattedAddress || '';\r\n const formData = {\r\n name,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n location: teamLocation,\r\n matchStartTimeUtc: time,\r\n dayOfWeek: timeSlotDay.id,\r\n registrationPin: registrationPin || '',\r\n };\r\n\r\n setTeamRegistrationStatus(canRegister);\r\n setSessionTypeId(teamSessionTypeId);\r\n setOriginalLocation(homeCourtLocation);\r\n setOriginalFormData(formData);\r\n reset(formData);\r\n }\r\n }, [teamDetails]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const team = { ...formValues };\r\n const { matchStartTimeUtc, location: teamLocation } = formValues;\r\n\r\n if (sessionTypeId === MULTI_ROUND) {\r\n const matchTime = matchStartTimeUtc.clone();\r\n const utcOffset = matchTime.utcOffset();\r\n const adjustedTime = matchTime.subtract(utcOffset, 'minutes');\r\n const hours = adjustedTime.get('hour');\r\n const minutes = adjustedTime.get('minutes');\r\n\r\n team.timeOfDay = `${hours}:${minutes}`;\r\n }\r\n\r\n team.teamRegistrationAvailabilityStatusTypeId = parseInt(updatedTeamRegistrationStatus);\r\n\r\n if (dirtyFields.location) {\r\n const formattedLocation = await getLocationData(teamLocation);\r\n team.homeCourtLocation = formattedLocation;\r\n } else {\r\n team.homeCourtLocation = originalLocation;\r\n }\r\n\r\n if (sessionTypeId === TOURNAMENT) {\r\n delete team.dayOfWeek;\r\n delete team.timeOfDay;\r\n }\r\n\r\n delete team.location;\r\n delete team.matchStartTimeUtc;\r\n delete team.sessionId;\r\n\r\n try {\r\n await updateTeam({ teamId: teamDetails?.id, team, sessionId: teamDetails?.sessionId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n reset(originalFormData);\r\n };\r\n\r\n const handleOnRemoveTeamCaptain = async (removedCaptain) => {\r\n try {\r\n await removeCaptain({ teamId, captainId: removedCaptain.id });\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnAddTeamCaptain = async (addedCaptain) => {\r\n try {\r\n await addCaptain({ teamId, captain: { memberId: addedCaptain.memberId } }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const onHandleRegistrationStatusSwitch = () => {\r\n const newId = updatedTeamRegistrationStatus === OPEN ? CLOSED : OPEN;\r\n setTeamRegistrationStatus((prevStatus) => !prevStatus);\r\n setUpdatedTeamRegistrationStatus(newId);\r\n };\r\n\r\n return (\r\n \r\n \r\n {isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n
    \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionTypeId === MULTI_ROUND && (\r\n <>\r\n \r\n League Play Time Slot\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n Registration Settings\r\n \r\n \r\n \r\n \r\n Team Player Registration\r\n \r\n \r\n \r\n {registrationStatusDescription}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n You can set an optional password that your players will need in order to register for this team.\r\n \r\n \r\n \r\n
    \r\n \r\n Captains\r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nManageTeamModal.propTypes = {\r\n ...manageTeamModalPropTypes,\r\n};\r\n\r\nexport default ManageTeamModal;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport ManageSessionCaptainCard from '../Cards/ManageSessionCaptainCard';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayerSearch from '../Form/PlayerSearch';\r\nimport Popup from '../Popups/Popup';\r\nimport { mapMembersForPlayerSearch } from '../../utils/helpers';\r\nimport { createTeamCaptainManagerPropTypes } from '../../utils/proptypes';\r\n\r\nconst CreateTeamCaptainManager = ({\r\n captains = [],\r\n isUpdatingCaptains = false,\r\n isLoadingTeam = false,\r\n onAddCaptain,\r\n onRemoveCaptain,\r\n isRequired = false,\r\n}) => {\r\n const [originalCaptains, setOriginalCaptains] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [showCaptainSearch, setShowCaptainSearch] = useState(false);\r\n const [isRemovingCaptain, setIsRemovingCaptain] = useState(false);\r\n const [captainAwaitingAction, setCaptainAwaitingAction] = useState();\r\n const captainsArray = captains && Array.isArray(captains) ? captains : [captains];\r\n\r\n const maxCaptainsAdded = captainsArray?.length === 1 && captainsArray[0] !== null;\r\n\r\n useEffect(() => {\r\n if (captains && captainsArray?.length > 0) {\r\n const mappedMembers = mapMembersForPlayerSearch(captainsArray);\r\n setOriginalCaptains(mappedMembers);\r\n }\r\n }, [captains]);\r\n\r\n const handleOnAddCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(false);\r\n setShowConfirmationPopup(true);\r\n setShowCaptainSearch(false);\r\n };\r\n\r\n const handleOnRemoveCaptain = (captain) => {\r\n setCaptainAwaitingAction(captain);\r\n setIsRemovingCaptain(true);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n onRemoveCaptain(captainAwaitingAction);\r\n setOriginalCaptains([]);\r\n };\r\n\r\n const handleOnConfirmAddition = () => {\r\n setShowConfirmationPopup(false);\r\n onAddCaptain(captainAwaitingAction);\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const action = isRemovingCaptain ? 'Remove' : 'Add';\r\n const popupAction = isRemovingCaptain ? handleOnConfirmRemoval : handleOnConfirmAddition;\r\n const popupTitle = `${action} captain`;\r\n const popupMessage = `Are you sure you want to ${action?.toLowerCase()} ${captainAwaitingAction?.displayName} as a captain?`;\r\n const displayCaptainSearch = showCaptainSearch || !maxCaptainsAdded;\r\n\r\n const renderCaptains = () =>\r\n originalCaptains.map((captain) => (\r\n \r\n ));\r\n\r\n const renderCaptainSearch = () => (\r\n \r\n \r\n \r\n );\r\n\r\n return isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n {isUpdatingCaptains ? : renderCaptains()}\r\n {displayCaptainSearch && renderCaptainSearch()}\r\n \r\n \r\n );\r\n};\r\n\r\nCreateTeamCaptainManager.propTypes = {\r\n ...createTeamCaptainManagerPropTypes,\r\n};\r\n\r\nexport default CreateTeamCaptainManager;\r\n","import React, { useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport CreateTeamCaptainManager from '../../../components/CreateTeamCaptainManager';\r\nimport FullPageModal from '../../../components/Modals/FullPageModal';\r\nimport Input from '../../../components/Form/Input';\r\nimport Location from '../../../components/Form/Location';\r\nimport PasswordInput from '../../../components/Form/PasswordInput';\r\nimport TimePicker from '../../../components/Form/TimePicker';\r\nimport Select from '../../../components/Form/Select';\r\nimport { CustomSwitch } from '../../../components/Styled';\r\n\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { LeagueSessionTypes, StatusTypes, weekdays } from '../../../utils/types';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { defaultCreateTeamModalPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { useCreateTeamMutation } from '../../../api/leaguesApi';\r\n\r\nconst CreateTeamModal = ({ isOpen = false, onClose, onSaveClick, sessionTypeId }) => {\r\n const dispatch = useDispatch();\r\n const params = useParams();\r\n const sessionId = params?.sessionId;\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_BOOK } = TypographySizes;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const { OPEN, CLOSED } = StatusTypes;\r\n const [homeLocation, setHomeLocation] = useState('');\r\n const [teamRegistrationStatus, setTeamRegistrationStatus] = useState(true);\r\n const [updatedTeamRegistrationStatus, setUpdatedTeamRegistrationStatus] = useState(OPEN);\r\n const registrationStatusDescription = teamRegistrationStatus ? 'Open' : 'Closed';\r\n const [teamCaptain, setTeamCaptain] = useState();\r\n\r\n const [createTeam, { isLoading }] = useCreateTeamMutation();\r\n\r\n const defaultValues = {\r\n name: '',\r\n sessionId,\r\n registrationPin: '',\r\n teamRegistrationAvailabilityStatusTypeId: 1,\r\n dayOfWeek: '',\r\n location: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, isValid, isDirty },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const disableCtaButton = !isValid || !teamCaptain || !isDirty;\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const team = { ...formValues };\r\n const { matchStartTimeUtc, location } = formValues;\r\n const formattedLocation = await getLocationData(location);\r\n\r\n if (sessionTypeId === MULTI_ROUND) {\r\n const matchTime = matchStartTimeUtc.clone();\r\n const utcOffset = matchTime.utcOffset();\r\n const adjustedTime = matchTime.subtract(utcOffset, 'minutes');\r\n const hours = adjustedTime.get('hour');\r\n const minutes = adjustedTime.get('minutes');\r\n\r\n team.timeOfDay = `${hours}:${minutes}`;\r\n }\r\n\r\n try {\r\n team.homeCourtLocation = formattedLocation;\r\n team.teamRegistrationAvailabilityStatusTypeId = parseInt(updatedTeamRegistrationStatus);\r\n team.teamCaptainMemberId = teamCaptain.memberId;\r\n await createTeam(team).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n\r\n setTeamRegistrationStatus(OPEN);\r\n setTeamCaptain(null);\r\n reset(defaultValues);\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n reset(defaultValues);\r\n setTeamCaptain(null);\r\n setTeamRegistrationStatus(OPEN);\r\n onClose();\r\n };\r\n\r\n const handleOnAddTeamCaptain = (player) => {\r\n setTeamCaptain(player);\r\n };\r\n\r\n const handleOnRemoveTeamCaptain = () => {\r\n setTeamCaptain(null);\r\n };\r\n\r\n const handleOnLocationChange = (e) => {\r\n setHomeLocation(e.target.value);\r\n };\r\n\r\n const onHandleRegistrationStatusSwitch = () => {\r\n const newId = updatedTeamRegistrationStatus === OPEN ? CLOSED : OPEN;\r\n setTeamRegistrationStatus((prevStatus) => !prevStatus);\r\n setUpdatedTeamRegistrationStatus(newId);\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Captains\r\n \r\n \r\n \r\n {sessionTypeId === MULTI_ROUND && (\r\n <>\r\n \r\n League Play Time Slot\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n Registration Settings\r\n \r\n \r\n \r\n \r\n Team Player Registration\r\n \r\n \r\n \r\n {registrationStatusDescription}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Password\r\n \r\n \r\n \r\n You can set an optional password that your players will need in order to register for this team.\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nCreateTeamModal.propTypes = {\r\n ...defaultCreateTeamModalPropTypes,\r\n};\r\n\r\nexport default CreateTeamModal;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { SquareAvatarWithName, AvatarWithName, Typography, SortableTable, EditIcon, DeleteIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport { Box } from '@mui/material';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport IconButton from '@mui/material/IconButton';\r\n\r\nimport MessageIcon from '../../Icons/MessageIcon';\r\nimport { getComparator, getPowerIndex } from '../../../utils/helpers';\r\nimport { SortType, TypographySizes, SharedUICategories } from '../../../utils/constants';\r\nimport { teamsTablePropTypes, teamsTableRowProps } from '../../../utils/proptypes';\r\n\r\nconst headCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'location', label: 'Location' },\r\n { id: 'captainName', label: 'Captain' },\r\n { id: 'teamPowerIndexSingles', label: 'TPI S', isSortingDisabled: true },\r\n { id: 'teamPowerIndexDoubles', label: 'TPI D', isSortingDisabled: true },\r\n { id: 'numberOfPlayers', label: '# players' },\r\n { id: 'actions' },\r\n];\r\n\r\nconst TeamsTable = ({ sessionTeams = [], onManageClicked, onRemoveClicked, hasSessionStarted = false }) => {\r\n const theme = useTheme();\r\n const [teams, setTeams] = useState([]);\r\n const { MEDIUM_MEDIUM, SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [sortOrder, setSortOrder] = useState(SortType.ASC);\r\n const [orderProperty, setOrderProperty] = useState('name');\r\n const tableData = teams?.sort(getComparator(sortOrder, orderProperty));\r\n\r\n const handleRequestSort = (property) => {\r\n const isAscending = orderProperty === property && sortOrder === SortType.ASC;\r\n setSortOrder(isAscending ? SortType.DESC : SortType.ASC);\r\n setOrderProperty(property);\r\n };\r\n\r\n useEffect(() => {\r\n const formattedTeams = sessionTeams.map((team) => {\r\n const { captains } = team;\r\n return {\r\n ...team,\r\n captainName: `${captains[0]?.firstName} ${captains[0]?.lastName}`,\r\n };\r\n });\r\n setTeams(formattedTeams);\r\n }, [sessionTeams]);\r\n\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const { id, name, homeCourtLocation, teamMemberCount, captains, captainName, teamPowerIndex } = rowData;\r\n const { memberId } = captains?.[0] || [];\r\n const isRemoveDisabled = teamMemberCount > 0 || hasSessionStarted;\r\n const teamUrl = `/teams/${id}`;\r\n const tableCellStyles = { borderBottom: 'none', backgroundColor: theme.appColors.white };\r\n\r\n const singlesPowerRating = getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated);\r\n const doublesPowerRating = getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated);\r\n\r\n const handleOnManageClicked = () => {\r\n onManageClicked(id);\r\n };\r\n\r\n const handleOnRemoveClicked = () => {\r\n const teamData = { id, teamMemberCount, name };\r\n onRemoveClicked(teamData);\r\n };\r\n\r\n TeamTableRow.propTypes = {\r\n ...teamsTableRowProps,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {homeCourtLocation?.formattedAddress}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {singlesPowerRating}\r\n \r\n \r\n \r\n \r\n {doublesPowerRating}\r\n \r\n \r\n \r\n \r\n {teamMemberCount}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nTeamsTable.propTypes = {\r\n ...teamsTablePropTypes,\r\n};\r\n\r\nexport default TeamsTable;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport ManageTeamModal from '../ManageTeamModal';\r\nimport CreateTeamModal from '../CreateTeamModal';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport Popup from '../../../components/Popups/Popup';\r\nimport TeamsTable from '../../../components/Tables/TeamsTable';\r\nimport { showPopup } from '../../../redux/genericPopupSlice';\r\nimport { TypographySizes, SharedUICategories } from '../../../utils/constants';\r\nimport { manageSessionTeamsTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst TeamsTab = ({\r\n teams = [],\r\n maxTeamsCount,\r\n sessionTypeId,\r\n isLoading,\r\n onRemoveTeam,\r\n hasSessionStarted,\r\n hasSessionEnded,\r\n onAddTeamClick,\r\n}) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { MEDIUM_MEDIUM } = TypographySizes;\r\n const { SECONDARY } = SharedUICategories;\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [teamToRemove, setTeamToRemove] = useState(null);\r\n const [showCreateTeamModal, setShowCreateTeamModal] = useState(false);\r\n const [showManageTeamModal, setShowManageTeamModal] = useState(false);\r\n const isTeamActionsDisabled = teams.length === maxTeamsCount || hasSessionEnded;\r\n const [selectedTeamId, setSelectedTeamId] = useState(null);\r\n\r\n const handleOnAddTeamClick = () => {\r\n onAddTeamClick();\r\n };\r\n\r\n const handleOnCreateTeamClick = () => {\r\n setShowCreateTeamModal(true);\r\n };\r\n\r\n const handleOnManageClick = (teamId) => {\r\n setSelectedTeamId(teamId);\r\n setShowManageTeamModal(true);\r\n };\r\n\r\n const handleOnCloseManageTeamModal = () => {\r\n setShowManageTeamModal(false);\r\n };\r\n\r\n const handleOnCloseCreateTeamModal = () => {\r\n setShowCreateTeamModal(false);\r\n };\r\n\r\n const handleOnRemoveClick = (teamData) => {\r\n const { teamMemberCount, ...rest } = teamData;\r\n if (teamMemberCount > 0) {\r\n dispatch(showPopup({ title: 'Error', message: 'You cannot remove a team that has registered players' }));\r\n } else {\r\n setTeamToRemove({ ...rest });\r\n setShowConfirmationPopup(true);\r\n }\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n onRemoveTeam(teamToRemove);\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n
    \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {!teams.length ? (\r\n \r\n \r\n No teams have been created for this session.\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTeamsTab.propTypes = {\r\n ...manageSessionTeamsTabPropTypes,\r\n};\r\n\r\nexport default TeamsTab;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { useTheme, Container } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport Tab from '@mui/material/Tab';\r\nimport Tabs from '@mui/material/Tabs';\r\n\r\nimport { SharedUICategories, TypographySizes, ManageSessionTabs } from '../../../utils/constants';\r\nimport { manageSessionPageHeaderPropTypes } from '../../../utils/proptypes';\r\nimport { getBreadcrumbData } from '../../../redux/services/breadcrumbService';\r\n\r\nconst ManageSessionPageHeader = ({ context, contextId, tab, sessionName = '', onTabChange, isMultiRoundSession, shouldUpdateBreadcrumb, onBreadcrumbUpdated }) => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const { DISPLAY, SECONDARY } = SharedUICategories;\r\n const { LARGE_LIGHT, X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { TEAMS, SCHEDULE, PLAYERS, DETAILS, DRAW } = ManageSessionTabs;\r\n const { data } = useSelector((state) => state.breadcrumbs);\r\n const { league, conference } = data;\r\n const leagueUrl = `/leagues/${league?.id}`;\r\n const conferenceUrl = `/leagues/conference/${conference?.id}/manage`;\r\n const scheduleDrawLabel = isMultiRoundSession ? SCHEDULE : DRAW;\r\n\r\n useEffect(() => {\r\n if (context && contextId) {\r\n if (!data || data[context]?.id !== parseInt(contextId)) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (shouldUpdateBreadcrumb) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n onBreadcrumbUpdated();\r\n }\r\n }, [shouldUpdateBreadcrumb]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {league?.name}\r\n \r\n \r\n \r\n   /  \r\n \r\n \r\n \r\n {conference?.name}\r\n \r\n \r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nManageSessionPageHeader.propTypes = {\r\n ...manageSessionPageHeaderPropTypes\r\n};\r\n\r\nexport default ManageSessionPageHeader;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate, useLocation, useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport moment from 'moment';\r\nimport { skipToken } from '@reduxjs/toolkit/dist/query/react';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport TabContext from '@mui/lab/TabContext';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\n\r\nimport AddTeamContainer from '../../components/AddTeamContainer';\r\nimport ConfirmPublishSchedulePopup from '../../components/Popups/ConfirmPublishSchedulePopup';\r\nimport CopyPlayerModal from '../../components/Modals/CopyPlayerModal';\r\nimport CreateDrawModal from '../../components/Modals/CreateDrawModal';\r\nimport DetailsTab from './DetailsTab';\r\nimport DrawTab from '../../components/DrawTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport MatchEditModal from '../TeamMatchPage/MatchEditModal';\r\nimport MovePlayerModal from '../../components/Modals/MovePlayerModal';\r\nimport PlayerWithdrawModal from '../../components/Modals/PlayerWithdrawModal';\r\nimport PlayersTab from '../../components/PlayerTab';\r\nimport Popup from '../../components/Popups/Popup';\r\nimport ScheduleTab from './ScheduleTab';\r\nimport TeamsTab from './TeamsTab';\r\nimport ManageSessionPageHeader from './ManageSessionPageHeader';\r\n\r\nimport useSessionSchedule from '../../hooks/useSessionSchedule';\r\nimport { BYE_ROUND, MANAGE_SESSION_PAGE_TYPE, SINGLE_ROUND_BYE } from '../../components/DrawTab/utils';\r\nimport { LeagueTabs, BreadcrumbContexts } from '../../utils/constants';\r\nimport { WithdrawTypes, playerWithdrawTypes, getTypeForId, LeagueSessionTypes, StatusTypes } from '../../utils/types';\r\nimport { getAdjustedDate } from '../../utils/display';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport {\r\n useGetSessionQuery,\r\n useGetSessionTeamsQuery,\r\n useGetPlayersAvailableTeamsQuery,\r\n useUpdatePlayerRegistrationMutation,\r\n useRemoveTeamMutation,\r\n useMovePlayerToTeamMutation,\r\n useCopyPlayerToTeamMutation,\r\n useTogglePlayerRosterStatusMutation,\r\n useCreateTeamSeedsMutation,\r\n useUpdateTeamMatchPositionsMutation,\r\n useCopyTeamsToSessionMutation,\r\n useUpdateTeamMatchDateLocationMutation,\r\n} from '../../api/leaguesApi';\r\n\r\nconst publishPopupMessage = 'Publishing the draw allows the public to view the draw.';\r\nconst deletePopupMessage = 'Are you sure you want to delete this Draw?';\r\nconst unpublishPopupMessage = 'Are you sure you want to Unpublish this Draw?';\r\n\r\nconst positions = {\r\n ONE: 1,\r\n TWO: 2,\r\n};\r\n\r\nconst ManageSessionPage = () => {\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const params = useParams();\r\n const navigate = useNavigate();\r\n const theme = useTheme();\r\n\r\n const sessionId = parseInt(params.sessionId);\r\n const { data } = useSelector((state) => state.breadcrumbs);\r\n const { WITHDRAW, REFUND } = WithdrawTypes;\r\n const { DETAILS, TEAMS, PLAYERS, SCHEDULE, DRAW } = LeagueTabs;\r\n const { SESSION } = BreadcrumbContexts;\r\n\r\n const [activeTab, setActiveTab] = useState(TEAMS);\r\n const [showWithdrawModal, setShowWithdrawModal] = useState(false);\r\n const [showDrawModal, setShowDrawModal] = useState(false);\r\n const [showMoveModal, setShowMoveModal] = useState(false);\r\n const [showCopyModal, setShowCopyModal] = useState(false);\r\n const [matchToUpdate, setMatchToUpdate] = useState(null);\r\n const [showEditMatchModal, setShowEditMatchModal] = useState(false);\r\n const [showAddTeamModal, setShowAddTeamModal] = useState(false);\r\n const [withdrawData, setWithdrawData] = useState({ playerId: null, teamId: null });\r\n const [movePlayerData, setMovePlayerData] = useState({ memberId: null, fromTeamId: null });\r\n const [copyPlayerData, setCopyPlayerData] = useState({ memberId: null, fromTeamId: null, isSubstitute: false });\r\n const [availableTeamData, setAvailableTeamData] = useState(skipToken);\r\n const [availablePlayerTeams, setAvailablePlayerTeams] = useState(skipToken);\r\n const [canPlayerBeRefunded, setCanPlayerBeRefunded] = useState(false);\r\n const [showPublishPopup, setShowPublishPopup] = useState(false);\r\n const [showUnpublishPopup, setShowUnpublishPopup] = useState(false);\r\n const [leagueId, setLeagueId] = useState(null);\r\n const [showDeletePopup, setShowDeletePopup] = useState(false);\r\n const [selectedConferenceId, setSelectedConferenceId] = useState(null);\r\n const [sessionDetails, setSessionDetails] = useState({\r\n hasSessionStarted: false,\r\n hasSessionEnded: false,\r\n isMultiRoundSession: null,\r\n });\r\n\r\n const {\r\n data: playerTeamAvailability,\r\n isLoading: isLoadingAvailableTeams,\r\n error: availableTeamsError,\r\n } = useGetPlayersAvailableTeamsQuery(availableTeamData);\r\n const { data: session, isLoading: isLoadingSession, error: sessionError, refetch: refetchSession } = useGetSessionQuery(sessionId);\r\n const {\r\n data: sessionTeams,\r\n isFetching: isLoadingSessionTeams,\r\n error: teamsError,\r\n refetch: refetchSessionTeams,\r\n } = useGetSessionTeamsQuery(sessionId);\r\n const [removeTeam, { isLoading: isRemovingTeam }] = useRemoveTeamMutation();\r\n const [updatePlayerRegistration, { isLoading: isWithdrawing }] = useUpdatePlayerRegistrationMutation();\r\n const [movePlayer, { isLoading: isMovingPlayer }] = useMovePlayerToTeamMutation();\r\n const [copyPlayer, { isLoading: isCopyingPlayer }] = useCopyPlayerToTeamMutation();\r\n const [createTeamSeeds, { isLoading: isCreatingTeamSeeds }] = useCreateTeamSeedsMutation();\r\n const [shouldUpdateBreadcrumb, setShouldUpdateBreadcrumb] = useState(false);\r\n const [updateTeamMatchDateLocation, { isLoading: isUpdatingTeamMatchLocation }] = useUpdateTeamMatchDateLocationMutation();\r\n const [updateTeamMatchPositions] = useUpdateTeamMatchPositionsMutation();\r\n const [togglePlayerRosterStatus, { isLoading: isUpdatingRosterStatus }] = useTogglePlayerRosterStatusMutation();\r\n const [addTeams, { isLoading: isAddingTeams }] = useCopyTeamsToSessionMutation();\r\n\r\n const {\r\n scheduleId,\r\n drawSchedule,\r\n onCreateSchedule,\r\n onDeleteSchedule,\r\n isPublishingSchedule,\r\n isCreatingSchedule,\r\n onPublishSchedule,\r\n onUnpublishSchedule,\r\n refetchSessionSchedule,\r\n } = useSessionSchedule({ sessionId, showDraftSchedule: true, isMultiRoundSession: sessionDetails?.isMultiRoundSession });\r\n\r\n const isLoadingTeams = isLoadingSessionTeams || isRemovingTeam || isLoadingSession || isAddingTeams;\r\n const isUpdatingTeamPlayers = isWithdrawing || isMovingPlayer || isCopyingPlayer || isUpdatingRosterStatus;\r\n const isLoadingSeedsTable = isCreatingSchedule || isCreatingTeamSeeds;\r\n\r\n const { OPEN } = StatusTypes;\r\n\r\n const resetDrawCache = async () => {\r\n await refetchSession();\r\n await refetchSessionTeams();\r\n await refetchSessionSchedule();\r\n };\r\n\r\n if (availableTeamsError) {\r\n dispatch(showPopup({ isError: true, title: 'Error loading available teams for player', message: availableTeamsError?.message }));\r\n }\r\n\r\n if (sessionError) {\r\n dispatch(showErrorPopup(sessionError));\r\n }\r\n\r\n if (teamsError) {\r\n dispatch(showErrorPopup(teamsError));\r\n }\r\n\r\n useEffect(() => {\r\n if (location?.state?.activeTab) {\r\n setActiveTab(location?.state?.activeTab);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (session) {\r\n const hasSessionStarted = moment(session.startDateUtc).isSameOrBefore(moment());\r\n const hasSessionEnded = moment(session.endDateUtc).isSameOrBefore(moment());\r\n const isMultiRoundSession = session.sessionTypeId === LeagueSessionTypes.MULTI_ROUND;\r\n setSessionDetails({ hasSessionStarted, hasSessionEnded, isMultiRoundSession });\r\n dispatch(setSportTypeId(session?.sportTypeId));\r\n }\r\n }, [session]);\r\n\r\n useEffect(() => {\r\n if (playerTeamAvailability) {\r\n const teamSelections = playerTeamAvailability?.availableTeams.map((team) => {\r\n return { id: team.teamId, description: team.teamName };\r\n });\r\n setAvailablePlayerTeams(teamSelections);\r\n }\r\n }, [playerTeamAvailability]);\r\n\r\n useEffect(() => {\r\n if (data?.session?.id === sessionId) {\r\n setLeagueId(data.league.id);\r\n setSelectedConferenceId(data.conference.id);\r\n }\r\n }, [data]);\r\n\r\n const handleOnAddTeam = () => {\r\n setShowAddTeamModal(true);\r\n };\r\n\r\n const handleOnCloseAddTeamModal = () => {\r\n setShowAddTeamModal(false);\r\n };\r\n\r\n const handleOnWithdrawPlayer = (playerId, playerTeamId, canBeRefunded) => {\r\n setCanPlayerBeRefunded(canBeRefunded);\r\n setShowWithdrawModal(true);\r\n setWithdrawData({ playerId, teamId: playerTeamId });\r\n };\r\n\r\n const handleOnCloseWithdrawModal = () => {\r\n setShowWithdrawModal(false);\r\n };\r\n\r\n const handleDrawCreateClick = () => {\r\n setShowDrawModal(!showDrawModal);\r\n };\r\n\r\n const handleOnDrawEditClick = () => {\r\n setShowDrawModal(!showDrawModal);\r\n };\r\n\r\n const handleOnMovePlayer = (memberId, playerTeamId) => {\r\n setAvailableTeamData({ sessionId, memberId });\r\n setShowMoveModal(true);\r\n setMovePlayerData({ memberId, fromTeamId: playerTeamId });\r\n };\r\n\r\n const handleOnCloseMoveModal = () => {\r\n setShowMoveModal(false);\r\n setAvailableTeamData(skipToken);\r\n };\r\n\r\n const handleOnCopyPlayer = (memberId, playerTeamId) => {\r\n setAvailableTeamData({ sessionId, memberId });\r\n setShowCopyModal(true);\r\n setCopyPlayerData({ memberId, fromTeamId: playerTeamId });\r\n };\r\n\r\n const handleOnCloseCopyModal = () => {\r\n setShowCopyModal(false);\r\n setAvailableTeamData(skipToken);\r\n };\r\n\r\n const handleOnClosePublishPopup = () => {\r\n setShowPublishPopup(false);\r\n };\r\n\r\n const handleOnPublishClick = () => {\r\n setShowPublishPopup(true);\r\n };\r\n\r\n const handleOnDrawUnpublishClick = () => {\r\n setShowUnpublishPopup(true);\r\n };\r\n\r\n const handleOnDrawDeleteClick = () => {\r\n setShowDeletePopup(true);\r\n };\r\n\r\n const handleOnEditMatch = (match) => {\r\n setMatchToUpdate(match);\r\n setShowEditMatchModal(true);\r\n };\r\n\r\n const handleOnViewMatch = ({ teamMatchId }) => {\r\n navigate(`/leagues/match/${teamMatchId}`);\r\n };\r\n\r\n const handleOnEditSubmit = async (teamMatch) => {\r\n setShowEditMatchModal(false);\r\n const { teamMatchId } = teamMatch;\r\n const matchDateTimeData = {\r\n location: teamMatch?.location,\r\n matchDate: teamMatch?.matchDate,\r\n description: teamMatch?.description,\r\n };\r\n\r\n try {\r\n await updateTeamMatchDateLocation({ teamMatchId, sessionId, scheduleId, data: matchDateTimeData }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnRemoveTeam = async (teamData) => {\r\n const { id, name } = teamData;\r\n try {\r\n await removeTeam({ teamId: id, sessionId }).unwrap();\r\n dispatch(showPopup({ title: 'Success', message: `${name} has been removed` }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleWithdrawSubmit = async (withdrawType) => {\r\n setShowWithdrawModal(false);\r\n const withdrawRequest = { sessionId: parseInt(sessionId), memberId: withdrawData.playerId };\r\n\r\n let isWithdrawingPlayer = false;\r\n let isRefunding = false;\r\n\r\n if (withdrawType === WITHDRAW) {\r\n isWithdrawingPlayer = true;\r\n } else if (withdrawType === REFUND) {\r\n isRefunding = true;\r\n } else {\r\n isWithdrawingPlayer = true;\r\n isRefunding = true;\r\n }\r\n\r\n withdrawRequest.withdraw = isWithdrawingPlayer;\r\n withdrawRequest.refund = isRefunding;\r\n\r\n try {\r\n await updatePlayerRegistration({ sessionId, teamId: withdrawData.teamId, withdrawRequest, withdrawType }).unwrap();\r\n const transactionType = getTypeForId(withdrawType, playerWithdrawTypes);\r\n dispatch(showPopup({ title: 'Success', message: `Your ${transactionType?.description?.toLowerCase()} was successful.` }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleMovePlayerSubmit = async (newTeamId) => {\r\n setShowMoveModal(false);\r\n\r\n const moveRequest = { ...movePlayerData, toTeamId: newTeamId };\r\n\r\n try {\r\n await movePlayer({ ...moveRequest, sessionId }).unwrap();\r\n dispatch(showPopup({ title: 'Success', message: 'Player moved successfully' }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleCopyPlayerSubmit = async (newTeamIds, isSubstitute) => {\r\n setShowCopyModal(false);\r\n\r\n const copyRequest = { ...copyPlayerData, toTeamIds: newTeamIds, isSubstitute };\r\n\r\n try {\r\n await copyPlayer({ ...copyRequest, sessionId }).unwrap();\r\n dispatch(showPopup({ title: 'Success', message: 'Player copied successfully' }));\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnTogglePlayerStatus = async (memberId, teamId) => {\r\n try {\r\n await togglePlayerRosterStatus({ memberId, teamId, sessionId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnDrawSubmit = async (seeds) => {\r\n const formatData = seeds.map(({ teamId, seed }, index) => {\r\n const formatSeed = seed && index + 1 < seed ? index + 1 : seed;\r\n\r\n return {\r\n teamId,\r\n seed: formatSeed || index + 1,\r\n };\r\n });\r\n\r\n const filteredData = formatData.filter((item) => item.teamId);\r\n\r\n try {\r\n if (filteredData.length > 0) {\r\n await createTeamSeeds({ scheduleId, sessionId, data: { teamseeds: filteredData } }).unwrap();\r\n }\r\n if (!drawSchedule) {\r\n await onCreateSchedule();\r\n }\r\n await resetDrawCache();\r\n handleDrawCreateClick();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnAddTeams = async (requestBody) => {\r\n try {\r\n await addTeams({ sessionId, teamData: requestBody }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnDrawSkip = async () => {\r\n const mockTeam = {\r\n teamId: sessionTeams?.teams[0]?.id,\r\n seed: null,\r\n };\r\n\r\n try {\r\n await createTeamSeeds({ scheduleId, sessionId, data: { teamseeds: [mockTeam] } }).unwrap();\r\n await onCreateSchedule();\r\n await resetDrawCache();\r\n handleDrawCreateClick();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnChangeClick = async ({ selectedTeam, teamMatch }) => {\r\n const { teamMatchId } = teamMatch;\r\n const { position1Team, position2Team } = teamMatch;\r\n const { id, position } = selectedTeam;\r\n const formatId = !id || id === BYE_ROUND || id === null || id === undefined ? null : id;\r\n const hasBye = id === BYE_ROUND;\r\n\r\n let teamMatchPositions;\r\n switch (position) {\r\n case positions.ONE: {\r\n const position2TeamId = position2Team?.teamId || null;\r\n const hasNoByeRound = !position2TeamId && !formatId;\r\n\r\n teamMatchPositions = {\r\n position1TeamId: formatId,\r\n position2TeamId,\r\n byeStatusTypeId: hasBye && !hasNoByeRound ? SINGLE_ROUND_BYE : null,\r\n };\r\n break;\r\n }\r\n\r\n case positions.TWO: {\r\n const position1TeamId = position1Team?.teamId || null;\r\n const hasNoByeRound = !position1TeamId && !formatId;\r\n\r\n teamMatchPositions = {\r\n position1TeamId,\r\n position2TeamId: formatId,\r\n byeStatusTypeId: hasBye && !hasNoByeRound ? SINGLE_ROUND_BYE : null,\r\n };\r\n break;\r\n }\r\n default:\r\n teamMatchPositions = {\r\n position1TeamId: null,\r\n position2TeamId: null,\r\n byeStatusTypeId: null,\r\n };\r\n break;\r\n }\r\n\r\n try {\r\n await updateTeamMatchPositions({ teamMatchId, teamMatchPositions, scheduleId, sessionId });\r\n await refetchSessionSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnConfirmPublishSchedule = async ({ isNotifyingTeams }) => {\r\n const publishData = {\r\n notifyTeams: isNotifyingTeams,\r\n };\r\n\r\n try {\r\n await onPublishSchedule(publishData);\r\n await resetDrawCache();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n\r\n setShowPublishPopup(false);\r\n };\r\n\r\n const handleOnConfirmDeleteSchedule = async () => {\r\n try {\r\n await onDeleteSchedule();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowDeletePopup(false);\r\n };\r\n\r\n const handleOnUnpublishSchedule = async () => {\r\n try {\r\n await onUnpublishSchedule();\r\n await resetDrawCache();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n setShowUnpublishPopup(false);\r\n };\r\n\r\n const { hasSessionStarted, hasSessionEnded, isMultiRoundSession } = sessionDetails;\r\n const dateFormat = 'MMM Do, YYYY';\r\n const startDrawLabel = session?.startDateUtc && getAdjustedDate({ dateUtc: session?.startDateUtc, format: dateFormat });\r\n const endDrawLabel = session?.startDateUtc && getAdjustedDate({ dateUtc: session?.endDateUtc, format: dateFormat });\r\n\r\n const isDrawDisabled = session?.sessionStatusTypeId === OPEN || sessionTeams?.teams?.length === 0;\r\n const hasPostedResults = session?.hasPostedResults;\r\n\r\n const handleOnTabChanged = (_, newValue) => {\r\n setActiveTab(newValue);\r\n };\r\n\r\n const handleOnBreadcrumbUpdated = () => {\r\n setShouldUpdateBreadcrumb(false);\r\n };\r\n\r\n return (\r\n \r\n {isLoadingSession ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n {showDrawModal && (\r\n \r\n )}\r\n \r\n \r\n setShowUnpublishPopup(false)}\r\n title=\"Unpublish Draw\"\r\n message={unpublishPopupMessage}\r\n />\r\n setShowDeletePopup(false)}\r\n title=\"Delete Draw\"\r\n message={deletePopupMessage}\r\n />\r\n \r\n setShowEditMatchModal(false)}\r\n onSubmit={handleOnEditSubmit}\r\n match={matchToUpdate}\r\n allowTeamSwap\r\n />\r\n {showAddTeamModal && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ManageSessionPage;\r\n","import React from 'react';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport Typography from '@mui/material/Typography';\r\nimport Button from '@mui/material/Button';\r\nimport Divider from '@mui/material/Divider';\r\n\r\nimport ModalBaseSimple from './ModalBaseSimple';\r\n\r\nimport { shareTeamModalPropTypes, defaultModalPropTypes } from '../../utils/proptypes';\r\n\r\nconst ShareTeamModal = ({ open, url, onClose, onCopyClick }) => {\r\n return (\r\n \r\n \r\n \r\n To add a player to your team share this link to your team page.\r\n \r\n \r\n When they click the link they can register for your team. If you have a team PIN, make sure to send it with\r\n your invitation.\r\n \r\n \r\n \r\n Team Page Link\r\n \r\n {url}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nShareTeamModal.propTypes = {\r\n ...shareTeamModalPropTypes\r\n};\r\n\r\nShareTeamModal.defaultProps = {\r\n ...defaultModalPropTypes\r\n};\r\n\r\nexport default ShareTeamModal;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport TableCell from '@mui/material/TableCell';\r\nimport Typography from '@mui/material/Typography';\r\nimport Button from '@mui/material/Button';\r\nimport ShareIcon from '@mui/icons-material/Share';\r\n\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { getPlayerProfileUrl } from '../../../utils/helpers';\r\nimport { StyledTableRow, MemberTeamTableLink } from '../../Styled';\r\n\r\nconst headCells = [\r\n { id: 'team', label: 'Team' },\r\n { id: 'record', label: 'Record' },\r\n { id: 'session', label: 'Session' },\r\n { id: 'captain', label: 'Captain' },\r\n { id: 'actions' },\r\n];\r\n\r\nconst MemberTeamsTable = ({ memberTeams = [], isLoading, onShareClicked }) => {\r\n const [teams, setTeams] = useState([]);\r\n\r\n useEffect(() => {\r\n const formattedTeams = memberTeams.map((team) => {\r\n const { teamId, teamName, teamMatchWins, teamMatchLosses, sessionId, sessionName, captains } = team;\r\n const [teamCaptain] = captains;\r\n return {\r\n teamId,\r\n teamName,\r\n record: `${teamMatchWins} - ${teamMatchLosses}`,\r\n sessionName,\r\n sessionId,\r\n captainName: `${teamCaptain.firstName} ${teamCaptain.lastName}`,\r\n captainPlayerId: teamCaptain.playerId,\r\n };\r\n });\r\n setTeams(formattedTeams);\r\n }, [memberTeams]);\r\n\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const { teamName, teamId, record, sessionName, sessionId, captainName, captainPlayerId } = rowData;\r\n\r\n const handleOnShareClicked = (event) => {\r\n event.preventDefault();\r\n onShareClicked(teamId);\r\n };\r\n\r\n return (\r\n \r\n \r\n {teamName}\r\n \r\n \r\n {record}\r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n {captainName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default MemberTeamsTable;\r\n","import React, { useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport ShareTeamModal from '../../components/Modals/ShareTeamModal';\r\nimport MemberTeamsTable from '../../components/Tables/MemberTeamsTable';\r\nimport { useGetMemberTeamsQuery } from '../../api/leaguesApi';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { SportTypeIds } from '../../utils/types';\r\n\r\nconst MemberTeamsPage = () => {\r\n const dispatch = useDispatch();\r\n const { sportId } = useParams();\r\n const [showShareModal, setShowShareModal] = useState(false);\r\n const [sharedTeamId, setSharedTeamId] = useState(null);\r\n const { data, isFetching, error } = useGetMemberTeamsQuery();\r\n const teamUrl = `https://leagues.utrsports.net/teams/${sharedTeamId}`;\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const handleOnShareClick = (teamId) => {\r\n setSharedTeamId(teamId);\r\n setShowShareModal(true);\r\n };\r\n\r\n const handleOnCloseShareModal = () => {\r\n setShowShareModal(false);\r\n };\r\n\r\n const handleOnShareCopyClick = () => {\r\n navigator.clipboard.writeText(teamUrl);\r\n setShowShareModal(false);\r\n };\r\n\r\n const teamsToDisplay = parseInt(sportId) === SportTypeIds.TENNIS ? data?.memberTeams?.tennis : data?.memberTeams?.pickleball || [];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberTeamsPage;\r\n","export default __webpack_public_path__ + \"static/media/usap-sanctioned-logo.282a14f8.png\";","import React, { useEffect, useState } from 'react';\r\nimport { SortableTable } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport Typography from '@mui/material/Typography';\r\nimport Link from '@mui/material/Link';\r\n\r\nimport UtrIcon from '../../Icons/UtrIcon';\r\n\r\nimport { StyledTableRow } from '../../Styled';\r\nimport { ageDisplay, getAgeKeys, getAdjustedDate } from '../../../utils/display';\r\nimport { genderTypes, LeagueSanctionTypes } from '../../../utils/types';\r\nimport { leagueSearchResultsTablePropTypes, sessionTableRowProps } from '../../../utils/proptypes';\r\nimport usapLogo from '../../../assets/logos/usap-sanctioned-logo.png';\r\n\r\nconst headCells = [\r\n { id: 'name', label: 'Name', isSortingDisabled: true },\r\n { id: 'conference', label: 'Conference', isSortingDisabled: true },\r\n { id: 'location', label: 'Location', isSortingDisabled: true },\r\n { id: 'age', label: 'Age' },\r\n { id: 'rating', label: 'Rating' },\r\n { id: 'gender', label: 'Gender' },\r\n { id: 'startDate', label: 'Start' },\r\n { id: 'end', label: 'End', isSortingDisabled: true },\r\n];\r\n\r\nconst LeaguesSearchResultsTable = ({ searchResults, isLoading, onSortChange, sortByProperty, sortOrder }) => {\r\n const { USAP } = LeagueSanctionTypes;\r\n const [sessions, setSessions] = useState([]);\r\n\r\n useEffect(() => {\r\n if (searchResults?.length) {\r\n const formattedResults = searchResults.map((result) => {\r\n const { name, conferenceName, location, minAge, maxAge, utrRangeMin, utrRangeMax, genderTypeId, sportTypeId, startDateUtc, endDateUtc, sanctionTypeId } = result;\r\n const genderType = genderTypes.find((gender) => gender.id === genderTypeId);\r\n const dateFormat = 'L';\r\n const ageKeys = getAgeKeys([minAge, maxAge]);\r\n const age = ageDisplay(ageKeys);\r\n const startDate = getAdjustedDate({ dateUtc: startDateUtc, format: dateFormat });\r\n const end = getAdjustedDate({ dateUtc: endDateUtc, format: dateFormat });\r\n const isUSAPSanctionedSession = sanctionTypeId === USAP;\r\n return {\r\n ...result,\r\n sessionName: name,\r\n conference: conferenceName,\r\n sportTypeId,\r\n location: location?.placeName || location?.formattedAddress,\r\n rating: `${utrRangeMin}-${utrRangeMax}`,\r\n age,\r\n gender: genderType.description,\r\n startDate,\r\n end,\r\n isUSAPSanctionedSession\r\n };\r\n });\r\n setSessions(formattedResults);\r\n }\r\n }, [searchResults]);\r\n\r\n const handleOnOrderPropertyChange = (property) => {\r\n onSortChange(property);\r\n };\r\n\r\n const SessionTableRow = ({ rowData, labelId }) => {\r\n const { id, name, conference, location, age, rating, gender, startDate, end, isUSAPSanctionedSession } = rowData;\r\n const sessionUrl = `/leagues/session/${id}`;\r\n\r\n SessionTableRow.propTypes = {\r\n ...sessionTableRowProps\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n {isUSAPSanctionedSession && (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n {conference}\r\n {location}\r\n {age}\r\n {rating}\r\n {gender}\r\n {startDate}\r\n {end}\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {!isLoading && !searchResults.length ? (\r\n \r\n No results found for your search\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nLeaguesSearchResultsTable.propTypes = {\r\n ...leagueSearchResultsTablePropTypes\r\n};\r\n\r\nexport default LeaguesSearchResultsTable;\r\n","import React, { useState } from 'react';\r\n\r\nimport Popover from '@mui/material/Popover';\r\nimport Button from '@mui/material/Button';\r\n\r\nconst FilterButton = ({ buttonTitle, children, isFilterApplied, isOpen = false, onOpen, onClose }) => {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const handleClick = (event) => {\r\n onOpen();\r\n setAnchorEl(event.currentTarget);\r\n };\r\n const handleClose = () => {\r\n onClose();\r\n setAnchorEl(null);\r\n };\r\n\r\n const id = isOpen ? 'button-popover' : undefined;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default FilterButton;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\r\nimport Grid from '@mui/material/Grid';\r\nimport Typography from '@mui/material/Typography';\r\nimport throttle from 'lodash/throttle';\r\n\r\nconst parse = require('autosuggest-highlight/parse');\r\n\r\nconst autocompleteService = { current: null };\r\n\r\nconst LocationAutoCompleteControlled = ({ value, label, isRequired, onChange, variant = 'outlined' }) => {\r\n const [inputValue, setInputValue] = useState('');\r\n const [options, setOptions] = useState([]);\r\n\r\n const getPlacePredictions = useMemo(\r\n () =>\r\n throttle((request, callback) => {\r\n autocompleteService.current.getPlacePredictions(request, callback);\r\n }, 200),\r\n []\r\n );\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!autocompleteService.current && window.google) {\r\n autocompleteService.current = new window.google.maps.places.AutocompleteService();\r\n }\r\n if (!autocompleteService.current) {\r\n return undefined;\r\n }\r\n\r\n if (inputValue === '') {\r\n setOptions(value ? [value] : []);\r\n return undefined;\r\n }\r\n\r\n getPlacePredictions({ input: inputValue }, (results) => {\r\n if (active) {\r\n let newOptions = [];\r\n\r\n if (value) {\r\n newOptions = [value];\r\n }\r\n\r\n if (results) {\r\n newOptions = [...newOptions, ...results];\r\n }\r\n\r\n setOptions(newOptions);\r\n }\r\n });\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [inputValue, value]);\r\n\r\n return (\r\n (typeof option === 'string' ? option : option.description)}\r\n filterOptions={(x) => x}\r\n options={[value, ...options]}\r\n autoComplete\r\n value={value}\r\n disableClearable\r\n includeInputInList\r\n filterSelectedOptions\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n onChange(newValue);\r\n setOptions(newValue ? [newValue, ...options] : options);\r\n }\r\n }}\r\n onInputChange={(_, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n renderInput={(params) => }\r\n renderOption={(props, option) => {\r\n const matches = option.structured_formatting.main_text_matched_substrings;\r\n const parts = parse(\r\n option.structured_formatting.main_text,\r\n matches.map((match) => [match.offset, match.offset + match.length])\r\n );\r\n\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {parts.map((part, index) => (\r\n /* eslint-disable-next-line react/no-array-index-key */\r\n \r\n {part.text}\r\n \r\n ))}\r\n \r\n {option.structured_formatting.secondary_text}\r\n \r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default LocationAutoCompleteControlled;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport DistanceSlider from '@mui/material/Slider';\r\nimport Typography from '@mui/material/Typography';\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\r\n\r\nimport FilterButton from '../../../components/FilterButton';\r\nimport Location from '../../../components/ControlledLocationAutoComplete';\r\nimport { DistanceSliderMarks } from '../../../utils/constants';\r\nimport { getBrowserLocationCoordinates, getLocationData, getLocationNameFromCoordinates } from '../../../utils/location';\r\n\r\nconst LocationFilter = ({\r\n hasResetFilters,\r\n onApplyFilter,\r\n onIsLoadingCurrentLocation,\r\n onClearLocation,\r\n onCurrentLocationClick,\r\n currentLocation,\r\n}) => {\r\n const defaultSliderValue = 50;\r\n const defaultFilterData = {\r\n value: '',\r\n label: 'Location',\r\n sliderValue: defaultSliderValue,\r\n };\r\n const [filterData, setFilterData] = useState(defaultFilterData);\r\n const [isFilterApplied, setIsFilterApplied] = useState(false);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const { value, label, sliderValue } = filterData;\r\n\r\n const getLocationName = async (lat, lng) => {\r\n const location = await getLocationNameFromCoordinates(lat, lng);\r\n setFilterData({ ...filterData, value: location, label: `Near ${location}` });\r\n setIsFilterApplied(true);\r\n };\r\n\r\n useEffect(() => {\r\n if (hasResetFilters) {\r\n setFilterData(defaultFilterData);\r\n setIsFilterApplied(false);\r\n }\r\n }, [hasResetFilters]);\r\n\r\n useEffect(() => {\r\n if (currentLocation) {\r\n getLocationName(currentLocation.lat, currentLocation.lng);\r\n } else {\r\n setIsFilterApplied(false);\r\n setFilterData(defaultFilterData);\r\n }\r\n }, [currentLocation]);\r\n\r\n const handleOnLocationChange = (newLocation) => {\r\n setFilterData({ ...filterData, value: newLocation });\r\n };\r\n\r\n const handleOnSliderChange = (event) => {\r\n setFilterData({ ...filterData, sliderValue: event.target.value });\r\n };\r\n\r\n const handleOnCurrentLocationClick = async () => {\r\n setIsOpen(false);\r\n if (navigator.geolocation) {\r\n onIsLoadingCurrentLocation(true);\r\n\r\n const { lat, lng, error } = await getBrowserLocationCoordinates();\r\n onCurrentLocationClick(lat, lng, sliderValue, error);\r\n\r\n if (lat && lng) {\r\n await getLocationName(lat, lng);\r\n }\r\n }\r\n };\r\n\r\n const handleOnApplyLocation = async () => {\r\n setIsOpen(false);\r\n if (value?.place_id) {\r\n const locationData = await getLocationData(value);\r\n const { lat, lng } = locationData;\r\n onApplyFilter(sliderValue, lat, lng);\r\n await getLocationName(lat, lng);\r\n } else {\r\n onApplyFilter(sliderValue);\r\n }\r\n\r\n setIsFilterApplied(true);\r\n };\r\n\r\n const handleOnOpenLocation = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleOnCloseLocation = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n const handleOnClearLocation = () => {\r\n setFilterData(defaultFilterData);\r\n setIsOpen(false);\r\n setIsFilterApplied(false);\r\n onClearLocation();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Location\r\n \r\n \r\n \r\n \r\n \r\n \r\n Distance\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LocationFilter;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { isEqual } from 'lodash';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Slider from '@mui/material/Slider';\r\nimport Typography from '@mui/material/Typography';\r\nimport FilterButton from '../../../components/FilterButton';\r\n\r\nimport { ageSliderDictionary, utrpSliderDictionary } from '../../../utils/constants';\r\nimport { ageDisplay, utrpSliderDisplay } from '../../../utils/display';\r\nimport { SliderTypes } from '../../../utils/types';\r\nimport { getRangeForSlider } from '../../../utils/helpers';\r\nimport { sliderFilterPropTypes } from '../../../utils/proptypes';\r\n\r\nconst _ = { isEqual };\r\n\r\nconst SliderFilter = ({ onApplyFilter, hasResetFilters, sliderType }) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n const rangeValue = getRangeForSlider(sliderType);\r\n const title = SliderTypes[sliderType.toUpperCase()];\r\n const defaultFilterData = {\r\n value: rangeValue,\r\n label: title,\r\n };\r\n const [filterData, setFilterData] = useState(defaultFilterData);\r\n const [isFilterApplied, setIsFilterApplied] = useState(false);\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const getSliderData = (value) => {\r\n let sliderLength;\r\n let display;\r\n let step = 1;\r\n\r\n switch (sliderType) {\r\n case AGE:\r\n sliderLength = Object.keys(ageSliderDictionary).length;\r\n display = ageDisplay(value);\r\n break;\r\n case UTR:\r\n sliderLength = 16;\r\n display = `${value[0]?.toFixed(1)} - ${value[1]?.toFixed(1)}`;\r\n step = 0.5;\r\n break;\r\n case UTRP:\r\n sliderLength = Object.keys(utrpSliderDictionary).length;\r\n display = utrpSliderDisplay(value);\r\n break;\r\n default:\r\n sliderLength = '';\r\n display = '';\r\n }\r\n return { sliderLength, display, step };\r\n };\r\n\r\n const { value, label } = filterData;\r\n const { sliderLength, display, step } = getSliderData(value);\r\n\r\n useEffect(() => {\r\n if (hasResetFilters) {\r\n setFilterData(defaultFilterData);\r\n setIsFilterApplied(false);\r\n }\r\n }, [hasResetFilters]);\r\n\r\n const handleOnSliderChange = (event) => {\r\n setFilterData({ ...filterData, value: event.target.value });\r\n };\r\n\r\n const handleOnApplyClicked = () => {\r\n onApplyFilter(value);\r\n\r\n const isEqualToDefaultValue = _.isEqual(value, defaultFilterData.value);\r\n if (isEqualToDefaultValue) {\r\n setFilterData(defaultFilterData);\r\n setIsFilterApplied(false);\r\n } else {\r\n setFilterData({ ...filterData, label: display });\r\n setIsFilterApplied(true);\r\n }\r\n\r\n setIsOpen(false);\r\n };\r\n\r\n const handleOnOpenLocation = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleOnCloseLocation = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n {display}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSliderFilter.propTypes = {\r\n ...sliderFilterPropTypes\r\n};\r\n\r\nexport default SliderFilter;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Button } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport FormGroup from '@mui/material/FormGroup';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Checkbox from '@mui/material/Checkbox';\r\n\r\nimport FilterButton from '../FilterButton';\r\nimport { multiSelectFilterPropTypes } from '../../utils/proptypes';\r\n\r\nconst MultiSelectFilter = ({ selectOptions, onApplyFilter, hasResetFilters, label, currentValue }) => {\r\n const [filterData, setFilterData] = useState([]);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [isFilterApplied, setIsFilterApplied] = useState(false);\r\n\r\n useEffect(() => {\r\n if (currentValue && !filterData.includes(currentValue)) {\r\n if (hasResetFilters) {\r\n setFilterData([currentValue]);\r\n } else {\r\n setFilterData([...filterData, currentValue]);\r\n }\r\n setIsFilterApplied(true);\r\n }\r\n\r\n if (!currentValue && hasResetFilters) {\r\n setFilterData([]);\r\n setIsFilterApplied(false);\r\n }\r\n }, [currentValue, hasResetFilters]);\r\n\r\n const handleOnChange = (event) => {\r\n const value = parseInt(event.target.value);\r\n\r\n if (filterData.includes(value)) {\r\n const updatedData = filterData.filter((status) => status !== value);\r\n setFilterData(updatedData);\r\n } else {\r\n setFilterData([...filterData, value]);\r\n }\r\n };\r\n\r\n const handleOnApplyClicked = () => {\r\n const hasNoSelections = !filterData.length;\r\n const appliedFilters = hasNoSelections ? null : filterData;\r\n onApplyFilter(appliedFilters);\r\n\r\n if (hasNoSelections) {\r\n setFilterData([]);\r\n setIsFilterApplied(false);\r\n } else {\r\n setIsFilterApplied(true);\r\n }\r\n setIsOpen(false);\r\n };\r\n\r\n const handleOnOpen = () => {\r\n setIsOpen(true);\r\n };\r\n\r\n const handleOnClose = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n const getButtonLabel = () => {\r\n let buttonLabel = label;\r\n\r\n if (filterData.length) {\r\n const appliedFilters = selectOptions.filter((type) => filterData.includes(type.id)).map((status) => status.description);\r\n buttonLabel = `${appliedFilters.join(', ')}`;\r\n }\r\n return buttonLabel;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {selectOptions.map((status) => {\r\n const { id, description } = status;\r\n const isChecked = filterData.includes(id);\r\n return (\r\n }\r\n label={description}\r\n />\r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nMultiSelectFilter.propTypes = {\r\n ...multiSelectFilterPropTypes.propTypes\r\n};\r\n\r\nMultiSelectFilter.defaultProps = {\r\n ...multiSelectFilterPropTypes.defaultProps\r\n};\r\n\r\nexport default MultiSelectFilter;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { getSearchApiAxiosInstance } from '../utils/network';\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { searchLeagueSessions, scrollLeagueSessions } from '../api/leaguesApi';\r\nimport { ResponseStatuses } from '../utils/constants';\r\n\r\nconst usePostLeaguesSearch = ({ searchFilters }) => {\r\n const maxResults = 20;\r\n const axiosInstance = getSearchApiAxiosInstance();\r\n const dispatch = useDispatch();\r\n\r\n const [apiResponse, setApiResponse] = useState();\r\n const [searchResults, setSearchResults] = useState([]);\r\n const [isFetchingResults, setIsFetchingResults] = useState(false);\r\n const [isEndOfResults, setIsEndOfResults] = useState(false);\r\n const [refetch, setRefetch] = useState(false);\r\n const [currentScrollId, setCurrentScrollId] = useState(null);\r\n const [isLoadingMoreResults, setIsLoadingMoreResults] = useState(false);\r\n\r\n const handleOnLoadMoreClick = () => {\r\n setRefetch(true);\r\n setIsLoadingMoreResults(true);\r\n };\r\n\r\n const handleRefetch = () => {\r\n setRefetch(true);\r\n setCurrentScrollId(null);\r\n };\r\n\r\n const clearSearchResults = () => {\r\n setSearchResults([]);\r\n setCurrentScrollId(null);\r\n };\r\n\r\n const getSearchResults = async () => {\r\n const requestBody = {\r\n pagination: { take: maxResults },\r\n searchProperties: { ...searchFilters },\r\n };\r\n const response = await searchLeagueSessions(axiosInstance, requestBody).catch((searchError) => {\r\n setIsFetchingResults(false);\r\n dispatch(showErrorPopup(searchError));\r\n });\r\n\r\n setApiResponse(response);\r\n };\r\n\r\n const handleInvalidScrollId = () => {\r\n setSearchResults([]);\r\n setCurrentScrollId(null);\r\n getSearchResults();\r\n };\r\n\r\n const getScrollResults = async (scrollId) => {\r\n const response = await scrollLeagueSessions(axiosInstance, { scrollId }).catch((searchError) => {\r\n if (searchError.response?.status === ResponseStatuses.NOT_FOUND) {\r\n setIsFetchingResults(false);\r\n handleInvalidScrollId();\r\n return;\r\n }\r\n dispatch(showErrorPopup(searchError));\r\n });\r\n\r\n setApiResponse(response);\r\n };\r\n\r\n useEffect(() => {\r\n if (apiResponse?.data) {\r\n const { documents, scrollId } = apiResponse.data || {};\r\n\r\n if (scrollId) {\r\n setCurrentScrollId(scrollId);\r\n }\r\n setIsFetchingResults(false);\r\n\r\n if (documents.length < maxResults) {\r\n setIsEndOfResults(true);\r\n } else {\r\n setIsEndOfResults(false);\r\n }\r\n\r\n if (isLoadingMoreResults) {\r\n setSearchResults([...searchResults, ...documents]);\r\n } else {\r\n setSearchResults(documents);\r\n }\r\n\r\n setRefetch(false);\r\n setIsLoadingMoreResults(false);\r\n }\r\n }, [apiResponse]);\r\n\r\n useEffect(() => {\r\n const handleOnSearchSubmit = async () => {\r\n setIsFetchingResults(true);\r\n\r\n const requestScrollId = isLoadingMoreResults ? currentScrollId : null;\r\n\r\n if (requestScrollId) {\r\n await getScrollResults(requestScrollId);\r\n } else {\r\n await getSearchResults();\r\n }\r\n };\r\n\r\n if (refetch) {\r\n handleOnSearchSubmit();\r\n }\r\n }, [refetch, isLoadingMoreResults]);\r\n\r\n return { searchResults, isFetchingResults, isEndOfResults, handleOnLoadMoreClick, handleRefetch, clearSearchResults };\r\n};\r\n\r\nexport default usePostLeaguesSearch;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport Stack from '@mui/material/Stack';\r\nimport Typography from '@mui/material/Typography';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\n\r\nimport LeaguesSearchResultsTable from '../../components/Tables/LeagueSearchResultsTable';\r\nimport LocationFilter from './LocationFilter';\r\nimport SliderFilter from './SliderFilter';\r\nimport MultiSelectFilter from '../../components/MultiSelectFilter';\r\nimport usePostLeaguesSearch from '../../hooks/usePostLeaguesSearch';\r\n\r\nimport { genderTypes, SportTypeIds, tierTypes, OrderByRuleTypes, searchDateFilterTypes, SessionDateStatuses, SliderTypes, SearchSortTypes } from '../../utils/types';\r\nimport { ageSliderDictionary, utrpSliderDictionary } from '../../utils/constants';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { getLeagueTypeIdForTier, getSportTypeForLeagueId } from '../../utils/helpers';\r\nimport { searchPagePropTypes } from '../../utils/proptypes';\r\n\r\nconst defaultDistance = 50;\r\n\r\nconst SearchPage = ({ userLocation, leagueTypeId, sportType, leagueTierType }) => {\r\n const dispatch = useDispatch();\r\n const { TENNIS } = SportTypeIds;\r\n const { START_DATE, UTR: UTR_SORT, UTRP: UTRP_SORT } = SearchSortTypes;\r\n const { ASCENDING, DESCENDING } = OrderByRuleTypes;\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n const dateStatus = searchDateFilterTypes[0].id;\r\n const defaultDateStatus = SessionDateStatuses[dateStatus];\r\n\r\n const defaultSearchFilters = {\r\n leagueTypeIds: [parseInt(leagueTypeId)],\r\n distanceFilter: {\r\n distance: defaultDistance,\r\n lat: userLocation?.lat || null,\r\n long: userLocation?.lng || null,\r\n },\r\n ageFilter: null,\r\n utrFilter: null,\r\n utrPFilter: null,\r\n sessionDateStatuses: [defaultDateStatus],\r\n genderTypeIds: [],\r\n sportTypeIds: [sportType],\r\n sortBy: SearchSortTypes.START_DATE,\r\n orderByRule: ASCENDING.id\r\n };\r\n\r\n const [searchFilters, setSearchFilters] = useState(defaultSearchFilters);\r\n const [hasResetSearchFilters, setHasResetSearchFilters] = useState(false);\r\n const [currentLocation, setCurrentLocation] = useState();\r\n const [currentLeagueTierType, setCurrentLeagueTierType] = useState(leagueTierType);\r\n const [currentDateStatus, setCurrentDateStatus] = useState(dateStatus);\r\n const [isLoadingCurrentLocation, setIsLoadingCurrentLocation] = useState();\r\n const [sortOrder, setSortOrder] = useState(ASCENDING);\r\n const [sortByProperty, setSortByProperty] = useState(START_DATE);\r\n\r\n const { searchResults, isFetchingResults, isEndOfResults, handleOnLoadMoreClick, handleRefetch, clearSearchResults } = usePostLeaguesSearch({ searchFilters });\r\n\r\n const handleOnUrlChange = async () => {\r\n clearSearchResults();\r\n };\r\n\r\n useEffect(() => {\r\n const resetSearchOnUrlChange = async () => {\r\n const { lat, lng } = userLocation || {};\r\n const leagueId = parseInt(leagueTypeId);\r\n const sportTypeId = getSportTypeForLeagueId(leagueId);\r\n\r\n await handleOnUrlChange();\r\n\r\n setSearchFilters({\r\n ...defaultSearchFilters,\r\n sportTypeIds: [sportTypeId],\r\n leagueTypeIds: [leagueId],\r\n });\r\n setHasResetSearchFilters(true);\r\n setCurrentLeagueTierType(leagueTierType);\r\n setCurrentLocation({ lat, lng });\r\n handleRefetch();\r\n };\r\n if (leagueTypeId && userLocation) {\r\n resetSearchOnUrlChange();\r\n }\r\n }, [leagueTypeId, userLocation, leagueTierType]);\r\n\r\n const resetSearch = () => {\r\n handleRefetch();\r\n setHasResetSearchFilters(false);\r\n };\r\n\r\n const handleOnApplyDateFilter = (dateStatuses) => {\r\n resetSearch();\r\n\r\n if (dateStatuses) {\r\n const sessionDateStatuses = dateStatuses?.map((status) => SessionDateStatuses[status]);\r\n setSearchFilters({ ...searchFilters, sessionDateStatuses });\r\n } else {\r\n setCurrentDateStatus(null);\r\n setSearchFilters({ ...searchFilters, sessionDateStatuses: null });\r\n }\r\n };\r\n\r\n const handleOnApplyTypeFilter = (tierTypeId) => {\r\n resetSearch();\r\n const leagueTypeIds = getLeagueTypeIdForTier(tierTypeId, sportType);\r\n\r\n if (!tierTypeId) {\r\n setCurrentLeagueTierType(null);\r\n }\r\n\r\n setSearchFilters({ ...searchFilters, leagueTypeIds });\r\n };\r\n\r\n const handleOnApplyAgeFilter = (ages) => {\r\n const [min, max] = ages;\r\n const minAge = ageSliderDictionary[min];\r\n const maxAge = ageSliderDictionary[max];\r\n\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, ageFilter: { minAge, maxAge } });\r\n };\r\n\r\n const handleOnApplyTennisRatingFilter = (utrs) => {\r\n const [utrRangeMin, utrRangeMax] = utrs;\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, utrFilter: { utrRangeMin, utrRangeMax } });\r\n };\r\n\r\n const handleOnApplyPickleballRatingFilter = (utrps) => {\r\n const [utrPMin, utrPRMax] = utrps;\r\n const utrPRangeMin = utrpSliderDictionary[utrPMin];\r\n const utrPRangeMax = utrpSliderDictionary[utrPRMax];\r\n\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, utrPFilter: { utrPRangeMin, utrPRangeMax } });\r\n };\r\n\r\n const handleOnApplyGenderFilter = (genderTypeIds) => {\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, genderTypeIds });\r\n };\r\n\r\n const handleOnClearFilters = () => {\r\n resetSearch();\r\n\r\n const leagueTypeIds = getLeagueTypeIdForTier(null, sportType);\r\n setSearchFilters({ ...defaultSearchFilters, leagueTypeIds, distanceFilter: null, sessionDateStatuses: [], sportTypeIds: [] });\r\n\r\n setHasResetSearchFilters(true);\r\n setCurrentLocation(null);\r\n setCurrentDateStatus(null);\r\n setCurrentLeagueTierType(null);\r\n };\r\n\r\n const handleOnApplyLocationFilter = async (sliderValue, lat, lng) => {\r\n if (lat && lng) {\r\n setSearchFilters({ ...searchFilters, distanceFilter: { lat, long: lng, distance: sliderValue } });\r\n setCurrentLocation({ lat, lng });\r\n } else {\r\n setSearchFilters({ ...searchFilters, distanceFilter: { ...searchFilters.distanceFilter, distance: sliderValue } });\r\n }\r\n\r\n resetSearch();\r\n };\r\n\r\n const handleOnClearSearchLocationFilters = () => {\r\n resetSearch();\r\n setSearchFilters({ ...searchFilters, distanceFilter: null });\r\n };\r\n\r\n const handleOnCurrentLocationClick = async (lat, lng, distance, error) => {\r\n if (navigator.geolocation) {\r\n if (lat && lng) {\r\n setSearchFilters({ ...searchFilters, distanceFilter: { lat, long: lng, distance } });\r\n resetSearch();\r\n setIsLoadingCurrentLocation(false);\r\n }\r\n if (error) {\r\n dispatch(showPopup({ title: 'Location Service Error', message: error?.message }));\r\n setIsLoadingCurrentLocation(false);\r\n }\r\n } else {\r\n dispatch(showPopup({ title: 'Location Service', message: 'Geolocation is not available' }));\r\n }\r\n };\r\n\r\n const handleOnIsLoadingCurrentLocation = (isLoadingLocation) => {\r\n setIsLoadingCurrentLocation(isLoadingLocation);\r\n };\r\n\r\n const handleOnSortChange = (property) => {\r\n resetSearch();\r\n\r\n if (property === sortByProperty) {\r\n const sortDirection = sortOrder === ASCENDING ? DESCENDING : ASCENDING;\r\n setSortOrder(sortDirection);\r\n setSearchFilters({ ...searchFilters, orderByRule: sortDirection.id });\r\n } else {\r\n setSortOrder(ASCENDING);\r\n let sortBy = property.toLowerCase();\r\n if (property === 'rating') {\r\n sortBy = sportType === TENNIS ? UTR_SORT : UTRP_SORT;\r\n }\r\n\r\n setSearchFilters({ ...searchFilters, orderByRule: ASCENDING.id, sortBy });\r\n }\r\n setSortByProperty(property);\r\n };\r\n\r\n return (\r\n \r\n {`Search team ${sportType === TENNIS ? 'tennis' : 'pickleball'} leagues`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isEndOfResults && !!searchResults?.length && (\r\n \r\n }\r\n >\r\n Load More\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nSearchPage.propTypes = {\r\n ...searchPagePropTypes.propTypes\r\n};\r\n\r\nSearchPage.defaultProps = {\r\n ...searchPagePropTypes.defaultProps\r\n};\r\n\r\nexport default SearchPage;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport SearchPage from '..';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport { LeagueTypes, SportTypeIds, LeagueTierTypes } from '../../../utils/types';\r\n\r\nconst SearchWrapper = () => {\r\n const { user } = useSelector((state) => state.auth);\r\n const location = user?.location;\r\n const { leagueTypeId } = useParams();\r\n const { ADULT, JUNIOR } = LeagueTierTypes;\r\n const { TENNIS, PICKLEBALL } = SportTypeIds;\r\n const { UT_ADULT_TEAM_PICKLEBALL, UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_TENNIS } = LeagueTypes;\r\n const [userLocation, setUserLocation] = useState(null);\r\n const [sportType, setSportType] = useState(null);\r\n const [leagueTierType, setLeagueTierType] = useState(null);\r\n\r\n useEffect(() => {\r\n if (location?.latLng?.length) {\r\n const [lat, lng] = location.latLng;\r\n setUserLocation({ lat, lng });\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n if (leagueTypeId) {\r\n const parsedLeagueId = parseInt(leagueTypeId);\r\n\r\n if (parsedLeagueId === UT_ADULT_TEAM_PICKLEBALL || parsedLeagueId === UT_JUNIOR_TEAM_PICKLEBALL) {\r\n setSportType(PICKLEBALL);\r\n } else if (parsedLeagueId === UT_ADULT_TEAM_TENNIS || parsedLeagueId === UT_JUNIOR_TEAM_TENNIS) {\r\n setSportType(TENNIS);\r\n }\r\n\r\n if (parsedLeagueId === UT_ADULT_TEAM_PICKLEBALL || parsedLeagueId === UT_ADULT_TEAM_TENNIS) {\r\n setLeagueTierType(ADULT);\r\n } else if (parsedLeagueId === UT_JUNIOR_TEAM_PICKLEBALL || parsedLeagueId === UT_JUNIOR_TEAM_TENNIS) {\r\n setLeagueTierType(JUNIOR);\r\n }\r\n }\r\n }, [leagueTypeId]);\r\n\r\n return !userLocation ? : ;\r\n};\r\n\r\nexport default SearchWrapper;\r\n","import React from 'react';\r\n\r\nimport { useTheme, Container } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Tab from '@mui/material/Tab';\r\nimport Tabs from '@mui/material/Tabs';\r\n\r\nimport { SharedUICategories, TypographySizes, SessionTabs } from '../../../utils/constants';\r\nimport { sessionPageHeaderPropTypes } from '../../../utils/proptypes';\r\n\r\nconst SessionPageHeader = ({ tab, sessionName = '', onTabChange, isMultiRoundSession, conferenceName }) => {\r\n const theme = useTheme();\r\n const { DISPLAY, SECONDARY } = SharedUICategories;\r\n const { LARGE_LIGHT, X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { OVERVIEW, SCHEDULE, PLAYERS, DRAW, STANDINGS } = SessionTabs;\r\n const scheduleDrawLabel = isMultiRoundSession ? SCHEDULE : DRAW;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {conferenceName}\r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSessionPageHeader.propTypes = {\r\n ...sessionPageHeaderPropTypes,\r\n};\r\n\r\nexport default SessionPageHeader;\r\n","import React from 'react';\r\nimport parsePhoneNumber from 'libphonenumber-js';\r\n\r\nimport { AvatarWithName, Typography, DeleteIcon, MessageIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport Link from '@mui/material/Link';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { messageUser, getPlayerAvatarImage, getPlayerProfileUrl } from '../../../utils/helpers';\r\nimport { managerCardPropTypes } from '../../../utils/proptypes';\r\n\r\nconst ManagerCard = ({ managers = [], isUserLoggedIn = false, isCaptainView, onRemoveClick }) => {\r\n const theme = useTheme();\r\n\r\n const handleOnMessageClick = (memberId, displayName) => {\r\n messageUser(memberId, displayName);\r\n };\r\n\r\n const handleOnRemoveClick = (managerData) => {\r\n onRemoveClick(managerData);\r\n };\r\n\r\n return managers.map(({ id, firstName, lastName, memberId, phone, email, playerId, profileImage }) => {\r\n const displayName = `${firstName} ${lastName}`;\r\n const parsedNumber = parsePhoneNumber(phone || '');\r\n const phoneNumber = parsedNumber?.formatInternational();\r\n const href = playerId && getPlayerProfileUrl(playerId);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {isUserLoggedIn ? (\r\n <>\r\n {phoneNumber ? (\r\n \r\n \r\n \r\n {phoneNumber}\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n {email && (\r\n \r\n \r\n \r\n {email}\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n ***-***-****\r\n \r\n \r\n \r\n \r\n ******@*****.com\r\n \r\n \r\n \r\n )}\r\n \r\n handleOnMessageClick(memberId, displayName)}>\r\n \r\n \r\n {isCaptainView && (\r\n handleOnRemoveClick({ captainId: id, displayName })}>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n });\r\n};\r\n\r\nManagerCard.propTypes = {\r\n ...managerCardPropTypes,\r\n};\r\n\r\nexport default ManagerCard;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\nimport { useTheme } from '@mui/material';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport { getAgeKeys, ageDisplay, getFormattedConferenceRange } from '../../utils/display';\r\nimport { getTypeForId, genderTypes, RequestStatusTypes, StatusTypes, SportTypeIds, LeagueSanctionTypes } from '../../utils/types';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { registrationInfoCardPropTypes } from '../../utils/proptypes';\r\nimport usapLogo from '../../assets/logos/usap-sanctioned-logo.png';\r\n\r\nconst RegistrationInfoCard = ({\r\n cost = '',\r\n format = '',\r\n sessionDates = '',\r\n sessionData = {},\r\n onRequestToCaptain,\r\n onRegisterButtonClick,\r\n}) => {\r\n const theme = useTheme();\r\n const { USAP } = LeagueSanctionTypes;\r\n const { XX_SMALL_MEDIUM_CAP, MEDIUM_BOOK, X_SMALL_BOOK } = TypographySizes;\r\n const { PRIMARY, SECONDARY } = SharedUICategories;\r\n const { conference, session, captainRequest } = sessionData;\r\n const { conferenceRatings, sportTypeId } = conference || {};\r\n const { TENNIS } = SportTypeIds;\r\n const { currentRequest, isCaptainInSession } = captainRequest || {};\r\n const { PENDING } = RequestStatusTypes;\r\n const ageKeys = getAgeKeys([conference?.minAge, conference?.maxAge]);\r\n const ageRange = ageDisplay(ageKeys);\r\n const gender = getTypeForId(conference?.genderTypeId, genderTypes)?.description;\r\n const isTennis = sportTypeId === TENNIS;\r\n const rangeTitle = isTennis ? 'UTR Range' : 'UTR-P Range';\r\n const range = getFormattedConferenceRange({ conferenceRatings, sportTypeId, showRatingPrefix: false });\r\n const location = conference?.location?.placeName ? `${conference?.location?.placeName}` : '';\r\n const today = moment.utc();\r\n const isUSAPSanctionedSession = session?.sanctionTypeId === USAP;\r\n const isPlayerInSession = sessionData?.memberTeams?.length !== 0;\r\n const isCaptainRequestPending = currentRequest?.sessionRequestStatusTypeId === PENDING;\r\n const isTodayBeforeSessionEndDate = today.isBefore(session?.endDateUtc, 'day');\r\n const isTodayBeforeRegistrationEndDate = today.isBefore(session?.teamRegistrationEndDateUtc, 'day');\r\n const isNotAPlayerOrCaptainInSession = !isPlayerInSession && !isCaptainInSession;\r\n const showRequestToCaptainButton = isTodayBeforeRegistrationEndDate && !isCaptainRequestPending && isNotAPlayerOrCaptainInSession;\r\n const canRegister = isTodayBeforeSessionEndDate && isNotAPlayerOrCaptainInSession;\r\n const formattedStartDate = moment(session?.teamRegistrationStartDateUtc).format('MMMM Do');\r\n const formattedEndDate = moment(session?.teamRegistrationEndDateUtc).format('MMMM Do');\r\n const TEAMS_FORMING_TEXT = `Teams are forming now. Register between ${formattedStartDate} - ${formattedEndDate}.`;\r\n const TEAMS_FORMING_CAPTAIN_TEXT = `${TEAMS_FORMING_TEXT} Interested in being captain?`;\r\n const showTeamsFormingText =\r\n (isTodayBeforeRegistrationEndDate && isNotAPlayerOrCaptainInSession) || session?.sessionStatusTypeId === StatusTypes.CLOSED;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cost\r\n \r\n \r\n {cost}\r\n \r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n {gender}\r\n \r\n \r\n \r\n \r\n Age Range\r\n \r\n \r\n {ageRange}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rangeTitle}\r\n \r\n \r\n {range}\r\n \r\n \r\n \r\n \r\n Format\r\n \r\n \r\n {format}\r\n \r\n \r\n {location && (\r\n \r\n \r\n Location\r\n \r\n \r\n {location}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n Session Dates\r\n \r\n \r\n {sessionDates}\r\n \r\n \r\n {isUSAPSanctionedSession && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {showTeamsFormingText && showRequestToCaptainButton && (\r\n \r\n {isCaptainRequestPending ? TEAMS_FORMING_TEXT : TEAMS_FORMING_CAPTAIN_TEXT}\r\n \r\n )}\r\n {isPlayerInSession && isTodayBeforeSessionEndDate && (\r\n \r\n You're Registered for teams.\r\n \r\n )}\r\n {showRequestToCaptainButton && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRegistrationInfoCard.propTypes = {\r\n ...registrationInfoCardPropTypes,\r\n};\r\n\r\nexport default RegistrationInfoCard;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport ManagerCard from '../../../components/Cards/ManagerCard';\r\nimport RegistrationInfoCard from '../../../components/RegistrationInfoCard';\r\n\r\nimport useIsMobile from '../../../hooks/useIsMobile';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { sessionOverviewTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst OverviewTab = ({\r\n description = '',\r\n cost = '',\r\n sessionDates = '',\r\n matchFormat = '',\r\n sessionData = {},\r\n isUserLoggedIn = false,\r\n managers = [],\r\n onRegisterButtonClick,\r\n onRequestToCaptain,\r\n}) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { XX_SMALL_MEDIUM_CAP, SMALL_BOOK } = TypographySizes;\r\n const isMobile = useIsMobile();\r\n\r\n const desktopPadding = '40px';\r\n const mobilePadding = '24px';\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Registration Information\r\n \r\n \r\n \r\n \r\n \r\n {description && (\r\n <>\r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n \r\n {description}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n Organizers\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nOverviewTab.propTypes = {\r\n ...sessionOverviewTabPropTypes,\r\n};\r\n\r\nexport default OverviewTab;\r\n","import React from 'react';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport MultiRoundScheduleSelect from '../../../components/Form/MultiRoundScheduleSelect';\r\nimport Schedule from '../../../components/Schedule';\r\n\r\nimport useSessionSchedule from '../../../hooks/useSessionSchedule';\r\nimport { LeagueSessionTypes } from '../../../utils/types';\r\n\r\nconst ScheduleTab = ({ session, isLoadingSession }) => {\r\n const { id, sessionTypeId } = session;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const isMultiRoundSession = sessionTypeId === MULTI_ROUND;\r\n const {\r\n scheduleRounds,\r\n scheduleByDate,\r\n drawSchedule,\r\n isSchedulePublished,\r\n isLoadingSchedule,\r\n onGetScheduleByDate,\r\n multiRoundScheduleType,\r\n } = useSessionSchedule({ sessionId: id, showDraftSchedule: false, isMultiRoundSession });\r\n\r\n const handleOnScheduleChange = (event) => {\r\n onGetScheduleByDate(event?.target?.value);\r\n };\r\n\r\n const displayMultiRoundScheduleSelect = scheduleRounds && isSchedulePublished && isMultiRoundSession;\r\n\r\n return (\r\n \r\n {isLoadingSession || isLoadingSchedule ? (\r\n \r\n ) : (\r\n <>\r\n {displayMultiRoundScheduleSelect && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ScheduleTab;\r\n","import React from 'react';\r\nimport { Typography, SquareAvatarWithName } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Link from '@mui/material/Link';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableRow from '@mui/material/TableRow';\r\n\r\nimport GenericTable from '../GenericTable';\r\nimport { SportTypeIds } from '../../../utils/types';\r\nimport { sessionStandingsHeadCells, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getPowerIndex } from '../../../utils/helpers';\r\nimport { teamTableRowPropTypes, sessionStandingsTablePropTypes } from '../../../utils/proptypes';\r\n\r\nconst SessionStandingsTable = ({ sessionStandings = [], isLoading, sportTypeId }) => {\r\n const theme = useTheme();\r\n const { SECONDARY, MEDIUM_MEDIUM } = SharedUICategories;\r\n const { SMALL_BOOK, SMALL_MEDIUM } = TypographySizes;\r\n const TeamTableRow = ({ rowData, labelId }) => {\r\n const {\r\n id,\r\n teamName,\r\n teamMatchWins,\r\n teamMatchLosses,\r\n playerMatchPoints,\r\n playerMatchGameWinPercentage,\r\n teamId,\r\n rank,\r\n teamPowerIndex,\r\n } = rowData;\r\n\r\n const gamesWonPercentage = (playerMatchGameWinPercentage * 100).toFixed(2);\r\n const teamUrl = `/teams/${teamId}`;\r\n\r\n TeamTableRow.propTypes = {\r\n ...teamTableRowPropTypes,\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {rank}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated)}\r\n \r\n \r\n \r\n \r\n {getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated)}\r\n \r\n \r\n \r\n \r\n {teamMatchWins}\r\n \r\n \r\n \r\n \r\n {teamMatchLosses}\r\n \r\n \r\n \r\n \r\n {playerMatchPoints}\r\n \r\n \r\n \r\n {`${gamesWonPercentage}%`}\r\n \r\n \r\n );\r\n };\r\n\r\n const percentageLabel = sportTypeId === SportTypeIds.TENNIS ? 'Games Won %' : 'Pts won %';\r\n const standingsHeadCells = [...sessionStandingsHeadCells, { id: 'playerMatchGameWinPercentage', label: percentageLabel }];\r\n\r\n return (\r\n \r\n \r\n \r\n Standings are determined using win/loss record. For more details,{' '}\r\n \r\n click here\r\n \r\n .\r\n \r\n \r\n );\r\n};\r\n\r\nSessionStandingsTable.propTypes = {\r\n ...sessionStandingsTablePropTypes,\r\n};\r\n\r\nexport default SessionStandingsTable;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nimport SessionStandingsTable from '../../../components/Tables/SessionStandingsTable';\r\n\r\nimport { standingsTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst StandingsTab = ({ sportTypeId = '', teamStandings = [] }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { MEDIUM_MEDIUM } = TypographySizes;\r\n\r\n return (\r\n \r\n {!teamStandings?.length ? (\r\n \r\n \r\n No team standings are available for this session.\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nStandingsTab.propTypes = {\r\n ...standingsTabPropTypes,\r\n};\r\n\r\nexport default StandingsTab;\r\n","import React, { useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { ContactCard, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport PasswordInput from '../../Form/PasswordInput';\r\nimport { messageUser } from '../../../utils/helpers';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport { passwordConfirmationProptypes } from '../../../utils/proptypes';\r\n\r\nconst PasswordConfirmation = ({ onPinSubmitted, isInvalidPasscode, captains = [], isLoading }) => {\r\n const defaultValues = { pin: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors, isSubmitting },\r\n control,\r\n setValue,\r\n setError,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (isInvalidPasscode) {\r\n setError('pin', isInvalidPasscode);\r\n }\r\n }, [isInvalidPasscode]);\r\n\r\n const handleOnPinSubmitted = (formValues) => {\r\n onPinSubmitted(formValues.pin);\r\n setValue('pin', '');\r\n };\r\n\r\n const handleOnMessageClick = (id, displayName) => {\r\n messageUser(id, displayName);\r\n };\r\n\r\n return (\r\n \r\n \r\n Enter team passcode\r\n \r\n \r\n \r\n Registration for this team is password protected. Please enter the password or PIN you received from the team captain or\r\n organizer.\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n Don't have a passcode? Message the team captain.\r\n \r\n {!!captains?.length && (\r\n \r\n {captains.map((item) => {\r\n const displayName = `${item?.firstName} ${item?.lastName}`;\r\n return (\r\n
    \r\n \r\n handleOnMessageClick(item.id, displayName)} name={displayName} phone={item?.phone} email={item?.email} />\r\n
    \r\n );\r\n })}\r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nPasswordConfirmation.propTypes = {\r\n ...passwordConfirmationProptypes\r\n};\r\n\r\nexport default PasswordConfirmation;\r\n","import React, { useRef, useImperativeHandle } from 'react';\r\n\r\nconst StripeInput = React.forwardRef((props, inputRef) => {\r\n const elementRef = useRef();\r\n const { component: Component, ...rest } = props;\r\n useImperativeHandle(inputRef, () => ({\r\n focus: () => elementRef.current.focus,\r\n }));\r\n\r\n const handleOnReady = (element) => {\r\n elementRef.current = element;\r\n };\r\n\r\n return ;\r\n});\r\n\r\nexport default StripeInput;\r\n","import React, { useState } from 'react';\r\nimport { CardElement, useStripe, useElements } from '@stripe/react-stripe-js';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Stack from '@mui/material/Stack';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport Input from '../../Form/Input';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Select from '../../Form/Select';\r\nimport StripeInput from '../../Form/StripeInput';\r\nimport config from '../../../config';\r\nimport { useGetBillingCountriesQuery } from '../../../api/leaguesApi';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { submitPaymentFormPropTypes } from '../../../utils/proptypes';\r\n\r\nconst { marketingAppHost } = config;\r\n\r\nconst registrationTerms = [\r\n `By registering, I agree to UTR Sports'`,\r\n `any additional terms provided by the event organizer in the event description. I also agree to provide my contact info to the event organizer solely for the purpose of participating in this event.`,\r\n];\r\n\r\nconst SubmitPaymentForm = ({ clientSecret, onRegistrationSuccessful, segmentTrackingBody }) => {\r\n const dispatch = useDispatch();\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n const [stripeError, setStripeError] = useState('');\r\n\r\n const { data: billingCountries, isFetching, error } = useGetBillingCountriesQuery();\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n name: '',\r\n email: '',\r\n address: {\r\n country: '',\r\n },\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, isSubmitting },\r\n control,\r\n register,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const handleFormSubmit = async (formValues, event) => {\r\n if (window?.analytics) {\r\n window.analytics.track('Payment Info Entered', segmentTrackingBody);\r\n }\r\n event?.preventDefault();\r\n if (!stripe || !elements) {\r\n return;\r\n }\r\n\r\n const { error: stripeCardError } = await stripe.confirmCardPayment(clientSecret, {\r\n payment_method: {\r\n card: elements.getElement(CardElement),\r\n billing_details: formValues,\r\n },\r\n });\r\n\r\n if (stripeCardError) {\r\n setStripeError(stripeCardError.message);\r\n } else {\r\n onRegistrationSuccessful();\r\n if (window?.analytics) {\r\n window.analytics.track('Order Completed', segmentTrackingBody);\r\n }\r\n }\r\n };\r\n\r\n const handleInputOnFocus = () => {\r\n if (stripeError) {\r\n setStripeError(null);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {isFetching ? (\r\n \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n {errors.email && (\r\n \r\n Must be in email format\r\n \r\n )}\r\n \r\n \r\n {registrationTerms[0]}\r\n  terms of service \r\n {registrationTerms[1]}\r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nSubmitPaymentForm.propTypes = {\r\n ...submitPaymentFormPropTypes\r\n};\r\n\r\nexport default SubmitPaymentForm;\r\n","import React, { useEffect } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { useSelector } from 'react-redux';\r\nimport SubmitPaymentForm from '../SubmitPaymentForm';\r\nimport { registrationConfirmationPropTypes } from '../../../utils/proptypes';\r\n\r\nconst RegistrationConfirmation = ({ registrationFees, clientSecret, onRegistrationSuccess, sessionId }) => {\r\n const { user } = useSelector((state) => state.auth);\r\n const { sessionEntryFee, leagueFee, serviceFee = 0, currencySymbol, total } = registrationFees || '';\r\n const formattedServiceFee = serviceFee?.toFixed(2);\r\n const formattedTotalFee = total?.toFixed(2);\r\n const finalCurrencySymbol = currencySymbol ?? '$';\r\n const PAID_LEAGUE = 'paid_league';\r\n const FREE_LEAGUE = 'free-league';\r\n const isPaidLeague = leagueFee + sessionEntryFee > 0;\r\n const segmentTrackingBody = {\r\n league_session_id: sessionId,\r\n member_id: user?.id,\r\n order_type: isPaidLeague ? PAID_LEAGUE : FREE_LEAGUE,\r\n currency: finalCurrencySymbol,\r\n session_fee: sessionEntryFee,\r\n league_fee: leagueFee,\r\n service_fee: serviceFee,\r\n amount_paid: total,\r\n revenue: total,\r\n };\r\n\r\n useEffect(() => {\r\n if (window?.analytics) {\r\n window.analytics.track('Checkout Started', segmentTrackingBody);\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n Session Fee\r\n {finalCurrencySymbol}{sessionEntryFee}\r\n \r\n 0 ? 0 : 2} display=\"flex\" justifyContent=\"space-between\">\r\n League Fee\r\n {finalCurrencySymbol}{leagueFee}\r\n \r\n {serviceFee > 0 && (\r\n \r\n Service Fee\r\n {finalCurrencySymbol}{formattedServiceFee}\r\n \r\n )}\r\n \r\n \r\n Total\r\n {finalCurrencySymbol}{formattedTotalFee}\r\n \r\n \r\n \r\n Payment Information\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nRegistrationConfirmation.propTypes = {\r\n ...registrationConfirmationPropTypes,\r\n};\r\n\r\nexport default RegistrationConfirmation;\r\n","import * as React from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport { Typography, TeamCard, Button } from '@universal-tennis/ui-shared';\r\nimport { teamSelectionProptypes } from '../../../utils/proptypes';\r\n\r\nconst formatCaptainsString = (captains) => {\r\n if (!captains) return '';\r\n return captains.map((captain) => `${captain.firstName} ${captain.lastName}`)\r\n .map((item, i, array) => {\r\n if (i === 0) {\r\n return item;\r\n }\r\n if (i === array.length - 1) {\r\n return ` and ${item}`;\r\n }\r\n return ` ${item}`;\r\n })\r\n .toString();\r\n};\r\nconst TeamSelection = ({ onTeamCardClick, onNotifyOrgClick, teams, canSendSessionJoinRequest }) => {\r\n if (!teams) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n <>\r\n {teams.map((item) => {\r\n const getCaptains = formatCaptainsString(item?.captains);\r\n const formatDescription = `Captained by ${getCaptains}. ${item.hasRegistrationPin ? 'Requires a passcode for registration.' : ''}`;\r\n return (\r\n
    \r\n \r\n onTeamCardClick(item.id)} title={item.name} description={formatDescription} />\r\n
    \r\n );\r\n })}\r\n {teams.length === 0 && (\r\n \r\n Teams have not been added. Check back later to register for a team\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n No Team? No Problem.\r\n \r\n \r\n \r\n We'll send a message to the organizer that you are interested in finding a team.\r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nTeamSelection.propTypes = {\r\n ...teamSelectionProptypes\r\n};\r\n\r\nexport default TeamSelection;\r\n","import React, { useEffect } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useForm } from 'react-hook-form';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\nimport Input from '../../Form/Input';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\n\r\nimport { TypographySizes, SharedUICategories } from '../../../utils/constants';\r\nimport { defaultUsapValidationProptypes, usapValidationProptypes } from '../../../utils/proptypes';\r\n\r\nconst USAPValidation = ({ onMemberIdSubmitted, validationError = null, isLoading }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK, SMALL_MEDIUM } = TypographySizes;\r\n const usapUrl = 'https://usapickleball.sport80.com/';\r\n\r\n const defaultValues = {\r\n usapMemberId: ''\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, isSubmitting },\r\n control,\r\n setValue,\r\n setError\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (validationError) {\r\n setError('usapMemberId', '');\r\n }\r\n }, [validationError]);\r\n\r\n const handleFormSubmit = (values) => {\r\n onMemberIdSubmitted(values?.usapMemberId);\r\n setValue('usapMemberId', '');\r\n };\r\n\r\n return (\r\n
    \r\n \r\n Enter your USAP member ID (required)\r\n If you don't have an ID or need to renew, click here.\r\n \r\n \r\n {validationError && (\r\n {validationError}\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nUSAPValidation.propTypes = {\r\n ...usapValidationProptypes\r\n};\r\n\r\nUSAPValidation.defaultProps = {\r\n ...defaultUsapValidationProptypes\r\n};\r\n\r\nexport default USAPValidation;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { Elements } from '@stripe/react-stripe-js';\r\nimport { loadStripe } from '@stripe/stripe-js';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Drawer from '@mui/material/Drawer';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PasswordConfirmation from './PasswordConfirmation';\r\nimport RegistrationConfirmation from './RegistrationConfirmation';\r\nimport TeamSelection from './TeamSelection';\r\nimport USAPValidation from './USAPValidation';\r\nimport config from '../../config';\r\nimport { RegistrationStepIds, TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { defaultRegistrationDrawerPropTypes, registrationDrawerPropTypes } from '../../utils/proptypes';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useValidateRegistrationPinMutation, useValidateUsapMembershipMutation, useInitiateRegistrationMutation } from '../../api/leaguesApi';\r\n\r\nconst RegistrationDrawer = ({\r\n isOpen,\r\n isUsapSanctionedSession,\r\n onClose,\r\n onFreeSessionRegistration,\r\n onRegistrationSuccess,\r\n onTeamSelectionClick,\r\n registrationFees,\r\n teamData,\r\n teams,\r\n isSessionPage = false,\r\n ...rest\r\n}) => {\r\n const { user } = useSelector((state) => state.auth);\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const isLargeScreen = useMediaQuery(theme.breakpoints.up('sm'));\r\n\r\n const [activeStep, setActiveStep] = useState(0);\r\n const [clientSecret, setClientSecret] = useState(null);\r\n const [isInvalidPin, setIsInvalidPin] = useState(false);\r\n const [registrationPin, setRegistrationPin] = useState(null);\r\n const [usapMemberId, setUsapMemberId] = useState(null);\r\n const [registrationSteps, setRegistrationSteps] = useState([]);\r\n const [stripeInstance, setStripeInstance] = useState(null);\r\n const [usapValidationError, setUsapValidationError] = useState(null);\r\n const [isInitiatingRegistration, setIsInitiatingRegistration] = useState(false);\r\n\r\n const userName = `${user?.firstName} ${user?.lastName}`;\r\n const drawerWidth = isLargeScreen ? 450 : '100%';\r\n\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_MEDIUM_CAP, X_SMALL_MEDIUM } = TypographySizes;\r\n const { hasRegistrationPin, teamId, sessionSummary, teamName } = teamData || {};\r\n const { TEAM_SELECTION, PASSWORD_CONFIRMATION, EVENT_QUESTIONS, CONFIRM_DETAILS } = RegistrationStepIds;\r\n\r\n const [validatePin, { isLoading: isLoadingPinValidation }] = useValidateRegistrationPinMutation();\r\n const [validateUsapMembership, { isSuccess: isUsapMembershipValid, isLoading: isLoadingMemberValidation }] = useValidateUsapMembershipMutation();\r\n const [initiateRegistration] = useInitiateRegistrationMutation();\r\n\r\n const initiateTeamRegistration = async (pin, memberId) => {\r\n setIsInitiatingRegistration(true);\r\n try {\r\n const registrationData = { teamId, sessionId: sessionSummary.id, registrationPin: pin, usapMemberId: memberId };\r\n const { clientSecret: secret, paymentAccountId, isFreeSession } = await initiateRegistration(registrationData).unwrap();\r\n if (isFreeSession) {\r\n setIsInitiatingRegistration(false);\r\n onFreeSessionRegistration();\r\n return;\r\n }\r\n if (secret && paymentAccountId) {\r\n const stripe = await loadStripe(config.stripeKey, { stripeAccount: paymentAccountId });\r\n setClientSecret(secret);\r\n setStripeInstance(stripe);\r\n setIsInitiatingRegistration(false);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n setIsInitiatingRegistration(false);\r\n }\r\n };\r\n\r\n const handleNext = () => {\r\n setActiveStep((prev) => prev + 1);\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep((prev) => (prev <= 0 ? prev : prev - 1));\r\n };\r\n\r\n const startRegistration = async ({ shouldAdvanceStep = false, pin, memberId }) => {\r\n if (shouldAdvanceStep) {\r\n handleNext();\r\n }\r\n\r\n await initiateTeamRegistration(pin, memberId);\r\n };\r\n\r\n useEffect(() => {\r\n const steps = [];\r\n\r\n if (isSessionPage) {\r\n steps.push({ id: TEAM_SELECTION, title: 'Team Selection' });\r\n }\r\n\r\n if (hasRegistrationPin) {\r\n steps.push({ id: PASSWORD_CONFIRMATION, title: 'Password Confirmation' });\r\n }\r\n\r\n if (isUsapSanctionedSession) {\r\n steps.push({ id: EVENT_QUESTIONS, title: 'Event Questions' });\r\n }\r\n\r\n steps.push({ id: CONFIRM_DETAILS, title: 'Confirm Details' });\r\n\r\n setRegistrationSteps(steps);\r\n\r\n const stepCount = steps?.length || 0;\r\n const isTeamPage = !isSessionPage;\r\n const hasTeamData = !!teamData;\r\n\r\n const hasPaymentOnly = (isTeamPage && stepCount === 1) || (hasTeamData && isSessionPage && stepCount === 2);\r\n const hasMultipleStepsSessionPage = hasTeamData && isSessionPage && stepCount > 2;\r\n\r\n if (hasPaymentOnly) {\r\n startRegistration({ shouldAdvanceStep: isSessionPage });\r\n } else if (hasMultipleStepsSessionPage) {\r\n handleNext();\r\n }\r\n }, [isSessionPage, hasRegistrationPin, isUsapSanctionedSession, teamData]);\r\n\r\n useEffect(() => {\r\n if (isUsapMembershipValid) {\r\n startRegistration({ shouldAdvanceStep: true, pin: registrationPin, memberId: usapMemberId });\r\n }\r\n }, [isUsapMembershipValid]);\r\n\r\n const handleOnTeamCardClick = (id) => {\r\n if (id === teamData?.teamId) {\r\n handleNext();\r\n } else {\r\n onTeamSelectionClick(id);\r\n }\r\n };\r\n\r\n const handleOnPinSubmitted = async (pin) => {\r\n setIsInvalidPin(false);\r\n\r\n try {\r\n const { isValid } = await validatePin({ teamId, pin }).unwrap();\r\n if (isValid) {\r\n setRegistrationPin(pin);\r\n if (isUsapSanctionedSession) {\r\n handleNext();\r\n } else {\r\n await startRegistration({ shouldAdvanceStep: true, pin });\r\n }\r\n } else {\r\n setRegistrationPin(null);\r\n setIsInvalidPin(true);\r\n }\r\n } catch (apiError) {\r\n setIsInvalidPin(true);\r\n }\r\n };\r\n\r\n const handleOnUSAPMemberIdSubmitted = async (memberId) => {\r\n setUsapValidationError(null);\r\n setUsapMemberId(memberId);\r\n try {\r\n await validateUsapMembership({ sessionId: sessionSummary?.id, usapMemberId: memberId }).unwrap();\r\n } catch (apiError) {\r\n setUsapValidationError(apiError?.message);\r\n }\r\n };\r\n\r\n const handleOnCloseButtonClicked = () => {\r\n onClose();\r\n };\r\n\r\n const showBackButton = activeStep !== 0;\r\n const isTeamSelectionStep = activeStep === registrationSteps.findIndex((step) => step.id === TEAM_SELECTION);\r\n const isPinValidationStep = activeStep === registrationSteps.findIndex((step) => step.id === PASSWORD_CONFIRMATION);\r\n const isEventQuestionsStep = activeStep === registrationSteps.findIndex((step) => step.id === EVENT_QUESTIONS);\r\n const isConfirmDetailsStep = activeStep === registrationSteps.findIndex((step) => step.id === CONFIRM_DETAILS);\r\n\r\n return (\r\n \r\n \r\n {showBackButton ? (\r\n \r\n \r\n \r\n ) : (\r\n
    \r\n )}\r\n \r\n \r\n {registrationSteps[activeStep]?.title}\r\n \r\n \r\n {userName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {(teams?.length > 0 || (!isSessionPage && teamName)) && !isTeamSelectionStep ? (\r\n \r\n {teamName}\r\n \r\n\r\n ) : null}\r\n {isTeamSelectionStep && isSessionPage && (\r\n \r\n )}\r\n {isPinValidationStep && hasRegistrationPin && (\r\n \r\n )}\r\n {isEventQuestionsStep && isUsapSanctionedSession && (\r\n \r\n )}\r\n {isConfirmDetailsStep && isInitiatingRegistration && (\r\n \r\n )}\r\n {isConfirmDetailsStep && clientSecret && (\r\n \r\n \r\n \r\n\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nRegistrationDrawer.propTypes = {\r\n ...registrationDrawerPropTypes\r\n};\r\n\r\nRegistrationDrawer.defaultProps = {\r\n ...defaultRegistrationDrawerPropTypes\r\n};\r\n\r\nexport default RegistrationDrawer;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\nimport TabContext from '@mui/lab/TabContext';\r\n\r\nimport Popup from '../../components/Popups/Popup';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport SessionPageHeader from './SessionPageHeader';\r\nimport OverviewTab from './OverviewTab';\r\nimport PlayersTab from '../../components/PlayerTab';\r\nimport ScheduleTab from './ScheduleTab';\r\nimport StandingsTab from './StandingsTab';\r\nimport RegistrationDrawer from '../../components/RegistrationDrawer';\r\nimport { SessionTabs } from '../../utils/constants';\r\nimport { LeagueSessionTypes, SportTypeIds, LeagueSanctionTypes } from '../../utils/types';\r\nimport { mapSession } from '../../utils/sessions';\r\nimport { gtag } from '../../utils/analytics';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport {\r\n useGetSessionSummaryQuery,\r\n useRequestToCaptainMutation,\r\n useGetSessionStandingsQuery,\r\n useGetTeamSummaryQuery,\r\n useGetRegistrationFeesQuery,\r\n useGetSessionTeamsQuery,\r\n useRequestToJoinSessionMutation,\r\n} from '../../api/leaguesApi';\r\nimport { sessionPagePropTypes } from '../../utils/proptypes';\r\n\r\nconst SessionPage = () => {\r\n const { OVERVIEW, PLAYERS, SCHEDULE, DRAW, STANDINGS } = SessionTabs;\r\n const { user } = useSelector((state) => state.auth);\r\n const dispatch = useDispatch();\r\n const { sessionId } = useParams();\r\n const { MULTI_ROUND, TOURNAMENT } = LeagueSessionTypes;\r\n const [activeTab, setActiveTab] = useState(OVERVIEW);\r\n const [teamId, setTeamId] = useState(null);\r\n const [currentTeamData, setCurrentTeamData] = useState(null);\r\n const [showRegistrationDrawer, setShowRegistrationDrawer] = useState(false);\r\n const [showRegistrationSuccessPopup, setShowRegistrationSuccessPopup] = useState(false);\r\n const [showNotifyOrganizerSuccessPopup, setShowNotifyOrganizerSuccessPopup] = useState(false);\r\n const [showNotifyOrganizerFailurePopup, setShowNotifyOrganizerFailurePopup] = useState(false);\r\n const isUserLoggedIn = !!user;\r\n\r\n const { data: teamsAvailableData } = useGetSessionTeamsQuery(sessionId);\r\n const { data: teamData } = useGetTeamSummaryQuery(teamId, { skip: !teamId });\r\n const { data: registrationFees } = useGetRegistrationFeesQuery(teamId, { skip: !teamId });\r\n const { data: sessionData, isLoading, error: sessionSummaryError, refetch: refetchSummary } = useGetSessionSummaryQuery(sessionId);\r\n const {\r\n data: sessionStandings,\r\n isLoading: isLoadingStandings,\r\n error: standingsError,\r\n refetch: refetchStandings,\r\n } = useGetSessionStandingsQuery(sessionId);\r\n\r\n const [requestToCaptain, { isSuccess: isSuccessfulRequest }] = useRequestToCaptainMutation();\r\n const [requestToJoinSession] = useRequestToJoinSessionMutation();\r\n\r\n if (sessionSummaryError) {\r\n dispatch(showErrorPopup(sessionSummaryError));\r\n }\r\n\r\n if (standingsError) {\r\n dispatch(showErrorPopup(standingsError));\r\n }\r\n\r\n useEffect(() => {\r\n if (isSuccessfulRequest) {\r\n dispatch(\r\n showPopup({\r\n isError: false,\r\n title: 'Success',\r\n message: 'Your Captain request has been submitted! You will be contacted by the conference organizer shortly.',\r\n })\r\n );\r\n }\r\n }, [isSuccessfulRequest]);\r\n\r\n useEffect(() => {\r\n if (teamData) {\r\n setCurrentTeamData(teamData);\r\n }\r\n }, [teamData]);\r\n\r\n useEffect(() => {\r\n if (sessionData?.session?.sportTypeId) {\r\n dispatch(setSportTypeId(sessionData?.session?.sportTypeId));\r\n }\r\n }, [sessionData]);\r\n\r\n const handleRemoveTeamData = () => {\r\n setTeamId(null);\r\n setCurrentTeamData(null);\r\n };\r\n\r\n const handleRestAPIState = () => {\r\n refetchSummary();\r\n refetchStandings();\r\n };\r\n\r\n const handleOnTabChanged = (_, newValue) => {\r\n setActiveTab(newValue);\r\n };\r\n\r\n const handleOnRequestToCaptain = async () => {\r\n try {\r\n await requestToCaptain(sessionId).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnTeamSelectionClick = (id) => {\r\n setTeamId(id);\r\n if (teamData?.teamId === id) {\r\n setCurrentTeamData(teamData);\r\n }\r\n };\r\n\r\n const handleOnNotifyOrgClick = async () => {\r\n try {\r\n await requestToJoinSession(sessionId).unwrap();\r\n setShowNotifyOrganizerSuccessPopup(true);\r\n } catch (apiError) {\r\n setShowNotifyOrganizerFailurePopup(true);\r\n }\r\n };\r\n\r\n const handleOnRegisterClick = () => {\r\n gtag('event', {\r\n category: 'Checkout Started',\r\n context: `Leagues Session Page - sessionId: ${sessionId}`,\r\n });\r\n setShowRegistrationDrawer(true);\r\n };\r\n\r\n const handleOnRegistrationSuccess = () => {\r\n const { sessionEntryFee, leagueFee } = registrationFees || '';\r\n const totalFee = sessionEntryFee + leagueFee;\r\n const isTennis = sessionData?.session?.sportTypeId === SportTypeIds.TENNIS;\r\n gtag('purchase', {\r\n category: 'Event Registration',\r\n context: `Team ${isTennis ? 'Tennis' : 'Pickleball'}`,\r\n value: totalFee,\r\n });\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const handleOnCloseRegistrationSuccessPopup = async () => {\r\n await setShowRegistrationDrawer(false);\r\n await setShowRegistrationSuccessPopup(false);\r\n await handleRestAPIState();\r\n await handleRemoveTeamData();\r\n };\r\n\r\n const handleOnCloseNotificationSuccessPopup = () => {\r\n setShowRegistrationDrawer(false);\r\n setShowNotifyOrganizerSuccessPopup(false);\r\n };\r\n\r\n const handleOnCloseNotificationFailurePopup = () => {\r\n setShowNotifyOrganizerFailurePopup(false);\r\n };\r\n\r\n const handleOnCloseDrawer = () => {\r\n handleRemoveTeamData();\r\n setShowRegistrationDrawer(false);\r\n };\r\n\r\n const handleOnFreeSessionRegistration = () => {\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const isMultiRoundSession = sessionData?.session?.sessionTypeId === MULTI_ROUND;\r\n\r\n const renderSessionContent = (data) => {\r\n const { session: currentSession, conferenceOrganizers } = data;\r\n const mappedSession = mapSession(currentSession);\r\n const {\r\n description,\r\n doublesMatchCount,\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionDates,\r\n sportTypeId,\r\n singlesMatchCount,\r\n } = mappedSession;\r\n const sessionDescription = description || 'No description was provided for this session.';\r\n const cost = `$${registrationFee} - $${registrationFee + registrationVerificationFee}`;\r\n const singlesFormat = `${singlesMatchCount} Singles`;\r\n const doublesFormat = `${doublesMatchCount} Doubles`;\r\n const isTournament = currentSession?.sessionTypeId === TOURNAMENT;\r\n const MATCH_TAB = isTournament ? DRAW : SCHEDULE;\r\n const teamStandings = [...sessionStandings.teamStandings];\r\n const noSidePadding = { px: 0 };\r\n let format;\r\n if (singlesMatchCount !== 0 && doublesMatchCount !== 0) {\r\n format = `${doublesFormat} / ${singlesFormat}`;\r\n } else if (doublesMatchCount === 0) {\r\n format = singlesFormat;\r\n } else if (singlesMatchCount === 0) {\r\n format = doublesFormat;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {(isLoading || isLoadingStandings) && }\r\n {sessionData && sessionStandings && (\r\n <>\r\n \r\n \r\n {renderSessionContent(sessionData)}\r\n \r\n )}\r\n {showRegistrationDrawer && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSessionPage.propTypes = {\r\n ...sessionPagePropTypes,\r\n};\r\n\r\nexport default SessionPage;\r\n","import React from 'react';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Typography from '@mui/material/Typography';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Link from '@mui/material/Link';\r\n\r\nconst CompletedSessionModal = ({ isOpen, onClose }) => {\r\n const verifiedRulesLink = 'https://www.utrsports.net/verified';\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n };\r\n\r\n return (\r\n \r\n Verified Session Complete\r\n \r\n \r\n {`Editing scores for this team match is closed as its verified session ended more than 3 days ago. For questions, please view the `}\r\n \r\n verifed rules\r\n \r\n .\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CompletedSessionModal;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { StyledTooltip } from '../../../components/Styled';\r\nimport { SharedUICategories, TypographySizes, LineupStatusType, LineupButtonLabels, LineupButtonTooltipText } from '../../../utils/constants';\r\n\r\nconst LineupControls = ({ lineupData, canUserViewLineups, hasMatchDatePassed, onShowLineupModal, onLineupStatusChange }) => {\r\n const { LOCKED, PUBLISHED, DRAFT } = LineupStatusType;\r\n const { PUBLISH, UNPUBLISH, LOCK, UNLOCK } = LineupButtonLabels;\r\n const { PUBLISH_TOOLTIP, LOCK_TOOLTIP, UNPUBLISH_TOOLTIP, UNLOCK_TOOLTIP } = LineupButtonTooltipText;\r\n\r\n const [lineupStatusId, setLineupStatusId] = useState(false);\r\n const [showSetLinesButton, setShowLinesButton] = useState(false);\r\n const [showEditLinesButton, setShowEditLinesButton] = useState(false);\r\n const [showLockButton, setShowLockButton] = useState(false);\r\n const [showPublishButton, setShowPublishButton] = useState(false);\r\n const [isLineupStatusButtonsDisabled, setIsLineupStatusButtonsDisabled] = useState(false);\r\n const [isUserCaptain, setIsUserCaptain] = useState(false);\r\n const [lineupButtonLabels, setLineupButtonLabels] = useState({\r\n lockButton: LOCK,\r\n publishButton: PUBLISH,\r\n lockTooltip: LOCK_TOOLTIP,\r\n publishTooltip: PUBLISH_TOOLTIP\r\n });\r\n\r\n useEffect(() => {\r\n if (lineupData) {\r\n const { isTeamCaptain, numberOfSetLines, hasPostedScores, statusId, numberOfLines } = lineupData;\r\n const isDraftLineup = statusId === DRAFT;\r\n const isLockedLineup = statusId === LOCKED;\r\n const isCaptainWithNoScoresPosted = isTeamCaptain && !hasPostedScores;\r\n const isSetLinesButtonVisible = isCaptainWithNoScoresPosted && numberOfSetLines === 0;\r\n const isEditLinesButtonVisible = isCaptainWithNoScoresPosted && numberOfSetLines > 0 && isDraftLineup;\r\n const isLockButtonVisible = isCaptainWithNoScoresPosted && (isDraftLineup || isLockedLineup) && numberOfSetLines > 0;\r\n const isPublishButtonVisible = isCaptainWithNoScoresPosted && numberOfSetLines > 0;\r\n const isStatusButtonsDisabled = isTeamCaptain && isDraftLineup && numberOfSetLines < numberOfLines;\r\n const lockButtonLabel = isDraftLineup ? LOCK : UNLOCK;\r\n const lockTooltipText = isDraftLineup ? LOCK_TOOLTIP : UNLOCK_TOOLTIP;\r\n const publishButtonLabel = isDraftLineup || isLockedLineup ? PUBLISH : UNPUBLISH;\r\n const publishTooltipText = isDraftLineup || isLockedLineup ? PUBLISH_TOOLTIP : UNPUBLISH_TOOLTIP;\r\n\r\n setLineupStatusId(statusId);\r\n setShowLinesButton(isSetLinesButtonVisible);\r\n setShowEditLinesButton(isEditLinesButtonVisible);\r\n setShowLockButton(isLockButtonVisible);\r\n setShowPublishButton(isPublishButtonVisible);\r\n setIsUserCaptain(isTeamCaptain);\r\n setIsLineupStatusButtonsDisabled(isStatusButtonsDisabled);\r\n setLineupButtonLabels({\r\n lockButton: lockButtonLabel,\r\n publishButton: publishButtonLabel,\r\n lockTooltip: lockTooltipText,\r\n publishTooltip: publishTooltipText\r\n });\r\n }\r\n }, [lineupData]);\r\n\r\n const handleOnShowLineupModal = () => {\r\n onShowLineupModal();\r\n };\r\n\r\n const handleOnToggleLock = () => {\r\n let updatedStatus;\r\n\r\n if (lineupStatusId === DRAFT || lineupStatusId === PUBLISHED) {\r\n updatedStatus = LOCKED;\r\n } else {\r\n updatedStatus = DRAFT;\r\n }\r\n\r\n onLineupStatusChange(updatedStatus);\r\n };\r\n\r\n const handleOnTogglePublish = () => {\r\n let updatedStatus;\r\n\r\n if (lineupStatusId === DRAFT || lineupStatusId === LOCKED) {\r\n updatedStatus = PUBLISHED;\r\n } else if (lineupStatusId === PUBLISHED) {\r\n updatedStatus = LOCKED;\r\n }\r\n\r\n onLineupStatusChange(updatedStatus);\r\n };\r\n\r\n return (\r\n \r\n {showSetLinesButton && (\r\n \r\n \r\n \r\n )}\r\n {isUserCaptain && (\r\n \r\n \r\n {showLockButton && (\r\n isLineupStatusButtonsDisabled ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n )}\r\n {showPublishButton && (\r\n isLineupStatusButtonsDisabled ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n {showEditLinesButton && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!isUserCaptain && !canUserViewLineups && !hasMatchDatePassed && (\r\n \r\n Lines have not been published\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LineupControls;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport { UTMap, Typography } from '@universal-tennis/ui-shared';\r\n\r\nconst LocationTab = ({ description = '', location }) => {\r\n const { placeId, placeName, formattedAddress } = location || {};\r\n\r\n return (\r\n \r\n {location ? (\r\n \r\n \r\n {placeName}\r\n \r\n \r\n {formattedAddress}\r\n \r\n \r\n \r\n \r\n \r\n {description}\r\n \r\n \r\n ) : (\r\n \r\n TBD\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LocationTab;\r\n","import { ResultTypes } from './types';\r\n\r\nconst { COMPLETED, COMPLETED_WITH_PARTIAL_SCORES, DEFAULTED, WITHDREW, RETIRED, INCOMPLETE, MATCH_NOT_PLAYED } = ResultTypes;\r\n\r\nexport const SideKeys = {\r\n SIDE_1: 'side1',\r\n SIDE_2: 'side2',\r\n};\r\n\r\nexport const MatchPositionKeys = {\r\n MATCH_POSITION_1: 'position1',\r\n MATCH_POSITION_2: 'position2',\r\n};\r\n\r\nexport const MatchPositions = {\r\n POSITION_1: 1,\r\n POSITION_2: 2,\r\n};\r\n\r\nexport const PlayerKeys = {\r\n PLAYER_1: 'player1',\r\n PLAYER_2: 'player2',\r\n};\r\n\r\nexport const ValidationErrors = {\r\n SET_SCORE_INVALID: 'Invalid score for set ',\r\n SET_SCORE_INCOMPLETE: 'Incomplete score for set ',\r\n MISSING_TIEBREAKER_SCORE: 'Missing tiebreaker scores for set ',\r\n TIEBREAKER_SAME_SCORE: 'Tiebreaker scores cannot be the same',\r\n TIEBREAKER_MISMATCHED_SCORE: 'Tiebreaker winner must have higher set score',\r\n TIEBREAKER_MINIMUM_NOT_MET: 'Tiebreaker winner must have at least 7 points',\r\n TIEBREAKER_FAST_FOUR_MINIMUM_NOT_MET: 'Tiebreaker winner must have at least 5 points',\r\n TIEBREAKER_MARGIN_INVALID: 'Tiebreaker winner must win by 2 points',\r\n TIEBREAKER_OUT_OF_RANGE: 'Tiebreaker score is out of range for set ',\r\n TWO_WITH_TIEBREAKER_INVALID_SET_THREE_SCORE: 'Set 3 score must be 1-0 or 0-1',\r\n NO_WINNER_DETERMINED: 'Match outcome must have an evident winner',\r\n NO_MULTIPLE_PARTIAL_SCORES: 'Match outcome cannot have more than one set with a partial score',\r\n NO_SCORES_FOR_OUTCOME: 'Match outcome should not have scores entered',\r\n SET_SCORES_REQUIRED_FOR_OUTCOME: 'At minimum a score needs to be entered for set 1',\r\n UNDER_WIN_LIMIT: 'Winning team must have 2 wins for this match format',\r\n OVER_WIN_LIMIT: 'Winning team cannot have more than 2 wins for this match format',\r\n SETS_ORDERED_INCORRECTLY: 'Sets are ordered incorrectly',\r\n GAME_SCORE_INVALID: 'Invalid score for game ',\r\n GAME_SCORE_INCOMPLETE: 'Incomplete score for game ',\r\n GAME_SCORE_NO_TIE: 'Cannot have a tie score for game ',\r\n GAME_SCORES_REQUIRED_FOR_OUTCOME: 'At minimum a score needs to be entered for game 1',\r\n};\r\n\r\nexport const isNumericScore = (score) => {\r\n return !Number.isNaN(parseInt(score));\r\n};\r\n\r\nexport const hasScoresEntered = (matchScores) => {\r\n let hasScore = false;\r\n matchScores.forEach((input) => {\r\n const hasPosition1Score = input?.position1Score || input?.position1Score === 0;\r\n const hasPosition2Score = input?.position2Score || input?.position2Score === 0;\r\n if (hasPosition1Score || hasPosition2Score) {\r\n hasScore = true;\r\n }\r\n });\r\n return hasScore;\r\n};\r\n\r\nexport const findPlayerInTeam = (playerId, teamMembers = []) => {\r\n return teamMembers.find((player) => player.playerId === playerId);\r\n};\r\n\r\nexport const getPlayerName = (playerId, teamMembers) => {\r\n const player = findPlayerInTeam(playerId, teamMembers);\r\n return `${player?.firstName} ${player?.lastName}`;\r\n};\r\n\r\nexport const clearMatchScores = (match) => {\r\n const { side1, side2 } = match || {};\r\n const clearedSideResult = {\r\n set1Score: null,\r\n set2Score: null,\r\n set3Score: null,\r\n set4Score: null,\r\n set5Score: null,\r\n tieBreakSet1Score: null,\r\n tieBreakSet2Score: null,\r\n tieBreakSet3Score: null,\r\n tieBreakSet4Score: null,\r\n tieBreakSet5Score: null,\r\n };\r\n\r\n const updatedMatch = {\r\n ...match,\r\n side1: { ...side1, sideResult: { ...side1.sideResult, ...clearedSideResult } },\r\n side2: { ...side2, sideResult: { ...side2.sideResult, ...clearedSideResult } },\r\n };\r\n\r\n return updatedMatch;\r\n};\r\n\r\nexport const switchMatchScores = (match) => {\r\n const { side1, side2 } = match || {};\r\n const updatedMatch = {\r\n ...match,\r\n side1: { ...side1, sideResult: { ...side2.sideResult, sideId: side1.sideResult.sideId } },\r\n side2: { ...side2, sideResult: { ...side1.sideResult, sideId: side2.sideResult.sideId } },\r\n };\r\n return updatedMatch;\r\n};\r\n\r\nconst getResultScore = (score) => {\r\n return score === '' ? null : score;\r\n};\r\n\r\nexport const getPositionsForMatch = (match = {}, isSide1Position1) => {\r\n const { side1, side2 } = match;\r\n const position1 = isSide1Position1 ? side1 : side2;\r\n const position2 = isSide1Position1 ? side2 : side1;\r\n\r\n return { position1, position2 };\r\n};\r\n\r\nexport const hasDuplicatePlayersInMatch = (match) => {\r\n const { side1, side2, isDoubles } = match;\r\n\r\n if (isDoubles) {\r\n const playerIds = [side1?.player1?.playerId, side1?.player2?.playerId, side2?.player1?.playerId, side2?.player2?.playerId].filter((playerId) => playerId);\r\n if (playerIds.length !== new Set(playerIds).size) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n return side1?.player1?.playerId && side2?.player1?.playerId && side1?.player1?.playerId === side2?.player1?.playerId;\r\n};\r\n\r\nexport const hasInvalidPlayerCount = (match, matchOutcomeId) => {\r\n const { side1, side2, isDoubles } = match;\r\n const requiredPlayersForDoublesDefault = 2;\r\n const requiredPlayersForSinglesDefault = 1;\r\n const requiredPlayersForSingles = 2;\r\n const requiredPlayersForDoubles = 4;\r\n const playerIds = [side1?.player1?.playerId, side1?.player2?.playerId, side2?.player1?.playerId, side2?.player2?.playerId].filter((playerId) => playerId);\r\n\r\n switch (matchOutcomeId) {\r\n case MATCH_NOT_PLAYED: {\r\n if (playerIds.length !== 0) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n case DEFAULTED: {\r\n if (isDoubles && playerIds.length !== requiredPlayersForDoublesDefault) {\r\n return true;\r\n }\r\n if (!isDoubles && playerIds.length !== requiredPlayersForSinglesDefault) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n case RETIRED:\r\n case WITHDREW:\r\n case COMPLETED:\r\n case INCOMPLETE:\r\n case COMPLETED_WITH_PARTIAL_SCORES: {\r\n if (isDoubles && playerIds.length !== requiredPlayersForDoubles) {\r\n return true;\r\n }\r\n if (!isDoubles && playerIds.length !== requiredPlayersForSingles) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const createDefaultedMatchResults = (match, matchOutcome, isSide1Position1) => {\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const { side1, side2 } = match;\r\n const clearedSideResult = {\r\n set1Score: null,\r\n set2Score: null,\r\n set3Score: null,\r\n set4Score: null,\r\n set5Score: null,\r\n tieBreakSet1Score: null,\r\n tieBreakSet2Score: null,\r\n tieBreakSet3Score: null,\r\n tieBreakSet4Score: null,\r\n tieBreakSet5Score: null,\r\n };\r\n const results = {\r\n winningSideId: matchOutcome.winningSideId,\r\n resultCompletionTypeId: DEFAULTED,\r\n side1Results: {\r\n ...clearedSideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n sideId: side1.sideId,\r\n },\r\n side2Results: {\r\n ...clearedSideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n sideId: side2.sideId,\r\n },\r\n };\r\n if (matchOutcome.outcomeId === MATCH_NOT_PLAYED) {\r\n return {\r\n ...results,\r\n winningSideId: null,\r\n resultCompletionTypeId: MATCH_NOT_PLAYED,\r\n };\r\n }\r\n\r\n const { side1Results, side2Results } = results;\r\n const position1 = isSide1Position1 ? side1 : side2;\r\n const position2 = isSide1Position1 ? side2 : side1;\r\n const position1Results = isSide1Position1 ? side1Results : side2Results;\r\n const position2Results = isSide1Position1 ? side2Results : side1Results;\r\n\r\n const position1Winner = position1?.sideId === matchOutcome.winningSideId;\r\n\r\n if (position1Winner) {\r\n position1Results.player1MemberId = position1?.player1?.memberId || position1?.player1?.id;\r\n position1Results.player1PlayerId = position1?.player1?.playerId;\r\n position1Results.player2MemberId = position1?.player2?.memberId || position1?.player2?.id;\r\n position1Results.player2PlayerId = position1?.player2?.playerId;\r\n } else {\r\n position2Results.player1MemberId = position2?.player1?.memberId || position2?.player1?.id;\r\n position2Results.player1PlayerId = position2?.player1?.playerId;\r\n position2Results.player2MemberId = position2?.player2?.memberId || position2?.player2?.id;\r\n position2Results.player2PlayerId = position2?.player2?.playerId;\r\n }\r\n\r\n return results;\r\n};\r\n\r\nexport const createMatchResults = (match, sets, winningSideId, resultCompletionTypeId, isSide1Position1) => {\r\n const { side1, side2 } = match;\r\n const results = {\r\n winningSideId,\r\n resultCompletionTypeId,\r\n side1Results: {\r\n ...side1.sideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n },\r\n side2Results: {\r\n ...side2.sideResult,\r\n player1MemberId: null,\r\n player1PlayerId: null,\r\n player2MemberId: null,\r\n player2PlayerId: null,\r\n },\r\n };\r\n const { side1Results, side2Results } = results;\r\n\r\n const position1 = isSide1Position1 ? side1 : side2;\r\n const position2 = isSide1Position1 ? side2 : side1;\r\n const position1Results = isSide1Position1 ? side1Results : side2Results;\r\n const position2Results = isSide1Position1 ? side2Results : side1Results;\r\n\r\n position1Results.player1MemberId = position1?.player1?.memberId || position1?.player1?.id;\r\n position1Results.player1PlayerId = position1?.player1?.playerId;\r\n position1Results.player2MemberId = position1?.player2?.memberId || position1?.player2?.id;\r\n position1Results.player2PlayerId = position1?.player2?.playerId;\r\n position1Results.set1Score = getResultScore(sets[0].position1Score);\r\n position1Results.set2Score = getResultScore(sets[1]?.position1Score);\r\n position1Results.set3Score = getResultScore(sets[2]?.position1Score);\r\n position1Results.tieBreakSet1Score = getResultScore(sets[0]?.position1Tiebreaker);\r\n position1Results.tieBreakSet2Score = getResultScore(sets[1]?.position1Tiebreaker);\r\n position1Results.tieBreakSet3Score = getResultScore(sets[2]?.position1Tiebreaker);\r\n\r\n position2Results.player1MemberId = position2?.player1?.memberId || position2?.player1?.id;\r\n position2Results.player1PlayerId = position2?.player1?.playerId;\r\n position2Results.player2MemberId = position2?.player2?.memberId || position2?.player2?.id;\r\n position2Results.player2PlayerId = position2?.player2?.playerId;\r\n position2Results.set1Score = getResultScore(sets[0].position2Score);\r\n position2Results.set2Score = getResultScore(sets[1]?.position2Score);\r\n position2Results.set3Score = getResultScore(sets[2]?.position2Score);\r\n position2Results.tieBreakSet1Score = getResultScore(sets[0]?.position2Tiebreaker);\r\n position2Results.tieBreakSet2Score = getResultScore(sets[1]?.position2Tiebreaker);\r\n position2Results.tieBreakSet3Score = getResultScore(sets[2]?.position2Tiebreaker);\r\n\r\n return results;\r\n};\r\n\r\nexport const getMatchOutcomeOptions = (match, position1Team, position2Team, isSide1Position1) => {\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1) || {};\r\n const positionOnePlayerOne = position1?.player1?.firstName && position1?.player1?.lastName ? `${position1?.player1?.firstName} ${position1?.player1?.lastName}` : 'Not set';\r\n const positionTwoPlayerOne = position2?.player1?.firstName && position2?.player1?.lastName ? `${position2?.player1?.firstName} ${position2?.player1?.lastName}` : 'Not set';\r\n const position1SideId = position1?.sideId;\r\n const position2SideId = position2?.sideId;\r\n const isDoubles = match?.isDoubles;\r\n const position1Name = isDoubles ? position1Team?.name : positionOnePlayerOne;\r\n const position2Name = isDoubles ? position2Team?.name : positionTwoPlayerOne;\r\n\r\n const matchOutcomes = [\r\n { id: 1, outcomeId: COMPLETED, name: 'Completed' },\r\n { id: 2, outcomeId: COMPLETED_WITH_PARTIAL_SCORES, name: 'Completed with partial scores' },\r\n { id: 3, outcomeId: INCOMPLETE, name: 'Postponed' },\r\n { id: 4, outcomeId: DEFAULTED, winningSideId: position2SideId, name: `Defaulted - ${position1Team?.name}` },\r\n { id: 5, outcomeId: DEFAULTED, winningSideId: position1SideId, name: `Defaulted - ${position2Team?.name}` },\r\n { id: 6, outcomeId: MATCH_NOT_PLAYED, name: `Match not played` },\r\n { id: 7, outcomeId: RETIRED, winningSideId: position2SideId, name: `Retired - ${position1Name}` },\r\n { id: 8, outcomeId: RETIRED, winningSideId: position1SideId, name: `Retired - ${position2Name}` },\r\n { id: 9, outcomeId: WITHDREW, winningSideId: position2SideId, name: `Withdrew - ${position1Name}` },\r\n { id: 10, outcomeId: WITHDREW, winningSideId: position1SideId, name: `Withdrew - ${position2Name}` },\r\n ];\r\n\r\n return matchOutcomes;\r\n};\r\n\r\nexport const hasScores = (scoreType) => {\r\n const hasPosition1Score = isNumericScore(scoreType?.position1Score);\r\n const hasPosition2Score = isNumericScore(scoreType?.position2Score);\r\n\r\n return hasPosition1Score && hasPosition2Score;\r\n};\r\n\r\nexport const hasPartialScores = (scoreType) => {\r\n const hasPosition1Score = isNumericScore(scoreType?.position1Score);\r\n const hasPosition2Score = isNumericScore(scoreType?.position2Score);\r\n\r\n if ((hasPosition1Score && !hasPosition2Score) || (hasPosition2Score && !hasPosition1Score)) {\r\n return true;\r\n }\r\n\r\n if (hasPosition1Score && hasPosition2Score) {\r\n return false;\r\n }\r\n};\r\n\r\nexport const isPosition1Winner = (contest) => {\r\n const position1Score = parseInt(contest?.position1Score);\r\n const position2Score = parseInt(contest?.position2Score);\r\n\r\n return position1Score > position2Score;\r\n};\r\n\r\nexport const isPosition2Winner = (contest) => {\r\n const position1Score = parseInt(contest?.position1Score);\r\n const position2Score = parseInt(contest?.position2Score);\r\n\r\n return position2Score > position1Score;\r\n};\r\n\r\nexport const getOutcomeForExistingMatch = ({ options = [], resultCompletionTypeId, winnerSideId }) => {\r\n let outcome;\r\n let outcomeIndex;\r\n const playerSpecificOutcomes = [RETIRED, WITHDREW, DEFAULTED];\r\n\r\n if (playerSpecificOutcomes.includes(resultCompletionTypeId)) {\r\n outcomeIndex = options?.findIndex(\r\n (option) => resultCompletionTypeId === option?.outcomeId && winnerSideId === option?.winningSideId\r\n );\r\n\r\n outcome = options[outcomeIndex];\r\n } else {\r\n outcomeIndex = options?.findIndex((option) => option?.outcomeId === resultCompletionTypeId);\r\n outcome = options[outcomeIndex];\r\n }\r\n\r\n return outcome;\r\n};\r\n","import { isEqual } from 'lodash';\r\nimport { TennisScoringFormatTypes, ResultTypes } from './types';\r\nimport { isNumericScore, hasScores, hasPartialScores, ValidationErrors, isPosition1Winner, isPosition2Winner, getPositionsForMatch } from './postScoreShared';\r\n\r\nconst _ = { isEqual };\r\nconst { BEST_OF_THREE, TWO_SETS_WITH_TIEBREAKER, SINGLE_SET, TIME_BASED, FAST_FOUR } = TennisScoringFormatTypes;\r\nconst { COMPLETED, COMPLETED_WITH_PARTIAL_SCORES, DEFAULTED, WITHDREW, RETIRED } = ResultTypes;\r\n\r\nexport const DefaultSets = [\r\n { id: 1, position1Score: '', position2Score: '', position1Tiebreaker: '', position2Tiebreaker: '' },\r\n { id: 2, position1Score: '', position2Score: '', position1Tiebreaker: '', position2Tiebreaker: '' },\r\n { id: 3, position1Score: '', position2Score: '', position1Tiebreaker: '', position2Tiebreaker: '' },\r\n];\r\n\r\nexport const isSetTied = (set, scoringFormatTypeId) => {\r\n const hasPosition1Score = isNumericScore(set?.position1Score);\r\n const hasPosition2Score = isNumericScore(set?.position2Score);\r\n const hasTiebreakerScore = set.position1Tiebreaker !== '' || set.position2Tiebreaker !== '';\r\n\r\n let isTieScore;\r\n\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set?.position1Score === 7 && set?.position2Score === 6) || (set?.position1Score === 6 && set?.position2Score === 7));\r\n break;\r\n case TWO_SETS_WITH_TIEBREAKER:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set?.position1Score === 7 && set?.position2Score === 6) ||\r\n (set?.position1Score === 6 && set?.position2Score === 7) ||\r\n (set.id === 3 && Math.abs(set?.position1Score - set?.position2Score) === 1));\r\n break;\r\n case SINGLE_SET:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set.position1Score >= 6 && set.position2Score > 6) || (set.position1Score > 6 && set.position2Score >= 6)) &&\r\n Math.abs(set.position1Score - set.position2Score) === 1;\r\n break;\r\n case FAST_FOUR:\r\n isTieScore =\r\n hasPosition1Score &&\r\n hasPosition2Score &&\r\n ((set?.position1Score === 4 && set?.position2Score === 3) || (set?.position1Score === 3 && set?.position2Score === 4));\r\n break;\r\n case TIME_BASED:\r\n isTieScore = hasPosition1Score && hasPosition2Score && Math.abs(set?.position1Score - set?.position2Score) === 1;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return isTieScore || hasTiebreakerScore;\r\n};\r\n\r\nexport const switchSetScores = (sets) => {\r\n const switchedSets = sets.map((set) => {\r\n const { id, position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n return {\r\n id,\r\n position1Score: position2Score,\r\n position2Score: position1Score,\r\n position1Tiebreaker: position2Tiebreaker,\r\n position2Tiebreaker: position1Tiebreaker,\r\n };\r\n });\r\n\r\n return switchedSets;\r\n};\r\n\r\nexport const getValidatedValueForSet = (setId, value, scoringFormatTypeId, isTieBreaker) => {\r\n const maxScoreForRegularSets = 7;\r\n const maxScoreForProSets = 11;\r\n const maxScoreForFastFourSets = 4;\r\n const maxScoreForMatchTiebreakerSet = 1;\r\n let score = parseInt(value);\r\n\r\n score %= 100;\r\n\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE:\r\n if (score > maxScoreForRegularSets && !isTieBreaker) {\r\n score = maxScoreForRegularSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case TWO_SETS_WITH_TIEBREAKER:\r\n if (setId === 1 || setId === 2) {\r\n if (score > maxScoreForRegularSets && !isTieBreaker) {\r\n score = maxScoreForRegularSets;\r\n }\r\n } else if (score > maxScoreForMatchTiebreakerSet && !isTieBreaker) {\r\n score = maxScoreForMatchTiebreakerSet;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case SINGLE_SET:\r\n if (score > maxScoreForProSets && !isTieBreaker) {\r\n score = maxScoreForProSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case TIME_BASED:\r\n if (score > maxScoreForProSets && !isTieBreaker) {\r\n score = maxScoreForProSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n case FAST_FOUR:\r\n if (score > maxScoreForFastFourSets && !isTieBreaker) {\r\n score = maxScoreForFastFourSets;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return Number.isNaN(score) ? '' : score;\r\n};\r\n\r\nconst hasUnorderedScoringSets = (sets) => {\r\n const scoringSets = sets.filter((set) => hasScores(set));\r\n const skippedFirstSetIds = [2, 3];\r\n const skippedSecondSetIds = [1, 3];\r\n const sortedSetIds = scoringSets.map((set) => set.id).sort();\r\n\r\n return _.isEqual(sortedSetIds, skippedFirstSetIds) || _.isEqual(sortedSetIds, skippedSecondSetIds);\r\n};\r\n\r\nconst validateTiebreaker = (set) => {\r\n const tiebreakerVictoryMargin = 1;\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n\r\n let tiebreakerError = null;\r\n\r\n const isTiebreakerMismatch =\r\n (position1Score > position2Score && position2Tiebreaker > position1Tiebreaker) ||\r\n (position2Score > position1Score && position1Tiebreaker > position2Tiebreaker);\r\n\r\n if (position1Tiebreaker === position2Tiebreaker) {\r\n tiebreakerError = ValidationErrors.TIEBREAKER_SAME_SCORE;\r\n } else if (isTiebreakerMismatch) {\r\n tiebreakerError = ValidationErrors.TIEBREAKER_MISMATCHED_SCORE;\r\n } else if (Math.abs(position1Tiebreaker - position2Tiebreaker) < tiebreakerVictoryMargin) {\r\n tiebreakerError = ValidationErrors.TIEBREAKER_MARGIN_INVALID;\r\n }\r\n\r\n return tiebreakerError;\r\n};\r\n\r\nexport const validateCompletedBestOfThree = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const minPointsAllowed = 6;\r\n const maxPointsAllowed = 7;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const hasNotMetMinimumAmountOfPoints = position1Score < minPointsAllowed && position2Score < minPointsAllowed;\r\n\r\n const isTiebreakerScore =\r\n (position1Score === maxPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position2Score === maxPointsAllowed && position1Score === minPointsAllowed);\r\n\r\n const hasTieScore =\r\n (position1Score === minPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position1Score === maxPointsAllowed && position2Score === maxPointsAllowed);\r\n\r\n const hasOutOfRangeScore =\r\n (position1Score === maxPointsAllowed && position2Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === maxPointsAllowed && position1Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position1Score === minPointsAllowed && position2Score === maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === minPointsAllowed && position1Score === maxPointsAllowedForSevenPointWinner);\r\n\r\n let error = null;\r\n\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (isTiebreakerScore && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateCompletedTwoSetWithTiebreaker = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const minPointsAllowed = 6;\r\n const maxPointsAllowed = 7;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const maxThirdSetPointsAllowed = 1;\r\n const minThirdSetPointsAllowed = 0;\r\n\r\n const isTiebreakerSet3Score =\r\n (position1Score === maxThirdSetPointsAllowed && position2Score === minThirdSetPointsAllowed) ||\r\n (position2Score === maxThirdSetPointsAllowed && position1Score === minThirdSetPointsAllowed);\r\n\r\n const isTiebreakerScore =\r\n (position1Score === maxPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position2Score === maxPointsAllowed && position1Score === minPointsAllowed);\r\n\r\n const hasTieScore =\r\n (position1Score === minPointsAllowed && position2Score === minPointsAllowed) ||\r\n (position1Score === maxPointsAllowed && position2Score === maxPointsAllowed);\r\n\r\n const hasOutOfRangeScore =\r\n (position1Score === maxPointsAllowed && position2Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === maxPointsAllowed && position1Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position1Score === minPointsAllowed && position2Score === maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === minPointsAllowed && position1Score === maxPointsAllowedForSevenPointWinner);\r\n\r\n const hasNotMetMinimumAmountOfPoints = position1Score < minPointsAllowed && position2Score < minPointsAllowed;\r\n const hasThirdSetTie = position1Score === position2Score;\r\n const hasOutOfRangeThirdSetScore = position1Score > maxThirdSetPointsAllowed || position2Score > maxThirdSetPointsAllowed;\r\n\r\n let error = null;\r\n\r\n if (set.id !== 3) {\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n } else if (hasThirdSetTie || hasOutOfRangeThirdSetScore) {\r\n error = ValidationErrors.TWO_WITH_TIEBREAKER_INVALID_SET_THREE_SCORE;\r\n }\r\n\r\n if ((isTiebreakerScore || isTiebreakerSet3Score) && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateCompletedSingleSet = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const maxPointsAllowedForElevenPointWinner = 9;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const maxProSetPointsAllowed = 11;\r\n const maxRegularSetPointsAllowed = 7;\r\n const minPointsAllowed = 0;\r\n const minPointsNeededForWin = 6;\r\n const tiebreakerMargin = 1;\r\n\r\n const isTiebreakerScore =\r\n ((position1Score >= minPointsAllowed && position1Score <= maxProSetPointsAllowed) ||\r\n (position2Score >= minPointsAllowed && position2Score <= maxProSetPointsAllowed)) &&\r\n Math.abs(position1Score - position2Score) === tiebreakerMargin;\r\n\r\n const hasOutOfRangeRegularSetScore =\r\n (position1Score === maxRegularSetPointsAllowed && position2Score < maxPointsAllowedForSevenPointWinner) ||\r\n (position2Score === maxRegularSetPointsAllowed && position1Score < maxPointsAllowedForSevenPointWinner);\r\n\r\n const hasOutOfRangeProSetScore =\r\n (position1Score === maxProSetPointsAllowed && position2Score < maxPointsAllowedForElevenPointWinner) ||\r\n (position2Score === maxProSetPointsAllowed && position1Score < maxPointsAllowedForElevenPointWinner);\r\n\r\n const hasOutOfRangeScore =\r\n position1Score > maxProSetPointsAllowed ||\r\n position2Score > maxProSetPointsAllowed ||\r\n position1Score < minPointsAllowed ||\r\n position2Score < minPointsAllowed;\r\n\r\n const hasNotMetMinimumAmountOfPoints = position1Score < minPointsNeededForWin && position2Score < minPointsNeededForWin;\r\n\r\n const hasTieScore = position1Score === position2Score;\r\n\r\n let error = null;\r\n\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore || hasOutOfRangeProSetScore || hasOutOfRangeRegularSetScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (isTiebreakerScore && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateCompletedFastFour = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const maxPointsAllowed = 4;\r\n const minTiebreakerPoints = 3;\r\n const hasNotMetMinimumAmountOfPoints = position1Score < maxPointsAllowed && position2Score < maxPointsAllowed;\r\n\r\n const isTiebreakerScore =\r\n (position1Score === maxPointsAllowed && position2Score === minTiebreakerPoints) ||\r\n (position2Score === maxPointsAllowed && position1Score === minTiebreakerPoints);\r\n\r\n const hasTieScore = position1Score === position2Score;\r\n\r\n let error = null;\r\n\r\n if (hasNotMetMinimumAmountOfPoints || hasTieScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (isTiebreakerScore && !hasTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const validateTimeBasedSet = (set) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const maxSetPointsAllowed = 11;\r\n const minPointsAllowed = 0;\r\n let error = null;\r\n\r\n const hasTieScore = position1Score === position2Score && set.id === 1;\r\n const hasOutOfRangeScore =\r\n position1Score > maxSetPointsAllowed ||\r\n position2Score > maxSetPointsAllowed ||\r\n position1Score < minPointsAllowed ||\r\n position2Score < minPointsAllowed;\r\n\r\n if (hasTieScore || hasOutOfRangeScore) {\r\n error = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n }\r\n\r\n if (!error && hasTiebreakerScore) {\r\n error = validateTiebreaker(set);\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const isValidCompletedSetScore = (set, scoringFormatTypeId) => {\r\n const hasSetScores = hasScores(set);\r\n const hasPartialSetScores = hasPartialScores(set);\r\n let error = null;\r\n\r\n if (hasSetScores) {\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE: {\r\n const validationError = validateCompletedBestOfThree(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n case TWO_SETS_WITH_TIEBREAKER: {\r\n const validationError = validateCompletedTwoSetWithTiebreaker(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n case SINGLE_SET: {\r\n const validationError = validateCompletedSingleSet(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n case FAST_FOUR: {\r\n const validationError = validateCompletedFastFour(set);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n } else if (hasPartialSetScores) {\r\n error = `${ValidationErrors.SET_SCORE_INCOMPLETE} ${set.id}`;\r\n }\r\n\r\n return { isValidCompletedSet: !error, error };\r\n};\r\n\r\nexport const isValidPartialSetScore = (set, scoringFormatTypeId) => {\r\n const { position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const hasTiebreakerScore = position1Tiebreaker !== '' || position2Tiebreaker !== '';\r\n const hasSetScores = hasScores(set);\r\n const hasPartialSetScores = hasPartialScores(set);\r\n const minScoreForSet = 0;\r\n const maxScoreForRegularSet = 7;\r\n const minTieScoreForRegularSet = 6;\r\n const maxScoreForProSet = 11;\r\n const maxScoreForFastFourSet = 4;\r\n const minTieScoreForFastFourSet = 3;\r\n const maxScoreFastFourTiebreaker = 5;\r\n const maxPointsAllowedForSevenPointWinner = 5;\r\n const minScoreNeededForTiebreaker = 6;\r\n const errorMessage = `${ValidationErrors.SET_SCORE_INVALID} ${set.id}`;\r\n let error = null;\r\n\r\n if (hasSetScores) {\r\n switch (scoringFormatTypeId) {\r\n case BEST_OF_THREE:\r\n case TWO_SETS_WITH_TIEBREAKER: {\r\n const isPosition1ScoreInvalid =\r\n position1Score < minScoreForSet ||\r\n position1Score > maxScoreForRegularSet ||\r\n (position1Score === maxScoreForRegularSet && position2Score < maxPointsAllowedForSevenPointWinner);\r\n const isPosition2ScoreInvalid =\r\n position2Score < minScoreForSet ||\r\n position2Score > maxScoreForRegularSet ||\r\n (position2Score === maxScoreForRegularSet && position1Score < maxPointsAllowedForSevenPointWinner);\r\n const hasMissingTiebreakerScore =\r\n (position1Score === maxScoreForRegularSet && position2Score === minTieScoreForRegularSet && !hasTiebreakerScore) ||\r\n (position2Score === maxScoreForRegularSet && position1Score === minTieScoreForRegularSet && !hasTiebreakerScore);\r\n\r\n if (isPosition1ScoreInvalid || isPosition2ScoreInvalid) {\r\n error = errorMessage;\r\n break;\r\n }\r\n\r\n if (hasMissingTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n break;\r\n }\r\n break;\r\n }\r\n case SINGLE_SET: {\r\n const isPosition1ScoreInvalid = position1Score < minScoreForSet || position1Score > maxScoreForProSet;\r\n const isPosition2ScoreInvalid = position2Score < minScoreForSet || position2Score > maxScoreForProSet;\r\n const hasMissingTiebreakerScore =\r\n ((position1Score === minScoreNeededForTiebreaker && position2Score > minScoreNeededForTiebreaker) ||\r\n (position2Score === minScoreNeededForTiebreaker && position1Score > minScoreNeededForTiebreaker)) && Math.abs(position1Score - position2Score) === 1;\r\n\r\n if (isPosition1ScoreInvalid || isPosition2ScoreInvalid) {\r\n error = errorMessage;\r\n break;\r\n }\r\n\r\n if (hasMissingTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n break;\r\n }\r\n break;\r\n }\r\n case FAST_FOUR: {\r\n const isPosition1ScoreInvalid = position1Score < minScoreForSet || position1Score > maxScoreForFastFourSet;\r\n const isPosition2ScoreInvalid = position2Score < minScoreForSet || position2Score > maxScoreForFastFourSet;\r\n const hasMissingTiebreakerScore =\r\n (position1Score === maxScoreForFastFourSet && position2Score === minTieScoreForFastFourSet && !hasTiebreakerScore) ||\r\n (position2Score === maxScoreForFastFourSet && position1Score === minTieScoreForFastFourSet && !hasTiebreakerScore);\r\n\r\n if (isPosition1ScoreInvalid || isPosition2ScoreInvalid) {\r\n error = errorMessage;\r\n break;\r\n }\r\n if (hasMissingTiebreakerScore) {\r\n error = `${ValidationErrors.MISSING_TIEBREAKER_SCORE} ${set.id}`;\r\n break;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n } else if (hasPartialSetScores) {\r\n error = `${ValidationErrors.SET_SCORE_INCOMPLETE} ${set.id}`;\r\n }\r\n if (hasTiebreakerScore) {\r\n const isPosition1TiebreakerInvalid = position1Tiebreaker < minScoreForSet;\r\n const isPosition2TiebreakerInvalid = position2Tiebreaker < minScoreForSet;\r\n\r\n if (isPosition1TiebreakerInvalid || isPosition2TiebreakerInvalid) {\r\n error = errorMessage;\r\n }\r\n if (scoringFormatTypeId === FAST_FOUR) {\r\n if (position1Tiebreaker > maxScoreFastFourTiebreaker || position2Tiebreaker > maxScoreFastFourTiebreaker) {\r\n error = errorMessage;\r\n }\r\n }\r\n }\r\n\r\n return { isValidPartialScore: !error, error };\r\n};\r\n\r\nexport const getPartialScoreWinnerForTimeBasedSets = (sets) => {\r\n const scoringSets = sets.filter((set) => hasScores(set));\r\n let position1GamesWon = 0;\r\n let position2GamesWon = 0;\r\n let isPosition1FirstSetWinner;\r\n let validationError = null;\r\n\r\n for (let index = 0; index < scoringSets.length; index += 1) {\r\n const set = sets[index];\r\n const { position1Score, position2Score } = set;\r\n const isFirstSet = set.id === 1;\r\n\r\n validationError = validateTimeBasedSet(set);\r\n\r\n if (validationError) {\r\n break;\r\n } else {\r\n position1GamesWon += parseInt(position1Score);\r\n position2GamesWon += parseInt(position2Score);\r\n\r\n if (isFirstSet) {\r\n isPosition1FirstSetWinner = isPosition1Winner(set);\r\n }\r\n }\r\n }\r\n\r\n const isGamesWonTied = position1GamesWon === position2GamesWon;\r\n let isWinnerPosition1;\r\n\r\n if (isGamesWonTied) {\r\n isWinnerPosition1 = isPosition1FirstSetWinner;\r\n } else {\r\n isWinnerPosition1 = position1GamesWon > position2GamesWon;\r\n }\r\n\r\n return { validationError, isWinnerPosition1 };\r\n};\r\n\r\nexport const getWinnerForSets = (sets, matchOutcome, scoringFormatTypeId) => {\r\n const maxAmountOfPartialSets = 1;\r\n let partialSetCount = 0;\r\n let validationError = null;\r\n let isWinnerPosition1 = false;\r\n let position1CompletedWins = 0;\r\n let position2CompletedWins = 0;\r\n let position1PartialWins = 0;\r\n let position2PartialWins = 0;\r\n let invalidSetId = null;\r\n\r\n if (hasUnorderedScoringSets(sets)) {\r\n validationError = ValidationErrors.SETS_ORDERED_INCORRECTLY;\r\n } else {\r\n if (scoringFormatTypeId === TIME_BASED && matchOutcome === COMPLETED_WITH_PARTIAL_SCORES) {\r\n return getPartialScoreWinnerForTimeBasedSets(sets);\r\n }\r\n\r\n sets.forEach((set) => {\r\n const hasSetScores = hasScores(set);\r\n const hasPartialSetScores = hasPartialScores(set);\r\n\r\n switch (matchOutcome) {\r\n case COMPLETED: {\r\n const { error } = isValidCompletedSetScore(set, scoringFormatTypeId);\r\n if (error) {\r\n validationError = error;\r\n break;\r\n }\r\n\r\n if (isPosition1Winner(set)) {\r\n position1CompletedWins += 1;\r\n } else if (isPosition2Winner(set)) {\r\n position2CompletedWins += 1;\r\n }\r\n break;\r\n }\r\n case COMPLETED_WITH_PARTIAL_SCORES:\r\n {\r\n if (invalidSetId === set.id && hasSetScores) {\r\n validationError = ValidationErrors.NO_MULTIPLE_PARTIAL_SCORES;\r\n break;\r\n }\r\n\r\n const { isValidCompletedSet } = isValidCompletedSetScore(set, scoringFormatTypeId);\r\n\r\n if (isValidCompletedSet) {\r\n if (isPosition1Winner(set)) {\r\n position1CompletedWins += 1;\r\n } else if (isPosition2Winner(set)) {\r\n position2CompletedWins += 1;\r\n }\r\n } else if (!isValidCompletedSet && partialSetCount <= maxAmountOfPartialSets) {\r\n const { isValidPartialScore, error } = isValidPartialSetScore(set, scoringFormatTypeId);\r\n\r\n if (isValidPartialScore) {\r\n partialSetCount += 1;\r\n invalidSetId = set.id + 1;\r\n\r\n if (isPosition1Winner(set)) {\r\n position1PartialWins += 1;\r\n } else if (isPosition2Winner(set)) {\r\n position2PartialWins += 1;\r\n }\r\n } else {\r\n validationError = error;\r\n break;\r\n }\r\n }\r\n }\r\n break;\r\n case WITHDREW:\r\n case DEFAULTED:\r\n if (hasSetScores || hasPartialSetScores) {\r\n validationError = ValidationErrors.NO_SCORES_FOR_OUTCOME;\r\n break;\r\n }\r\n break;\r\n case RETIRED: {\r\n if (invalidSetId === set.id && hasSetScores) {\r\n validationError = ValidationErrors.NO_MULTIPLE_PARTIAL_SCORES;\r\n break;\r\n }\r\n\r\n if (!hasSetScores && set.id === 1) {\r\n validationError = ValidationErrors.SET_SCORES_REQUIRED_FOR_OUTCOME;\r\n break;\r\n }\r\n\r\n const { isValidCompletedSet, error: validSetError } = isValidCompletedSetScore(set, scoringFormatTypeId);\r\n if (isValidCompletedSet) {\r\n break;\r\n } else if (!isValidCompletedSet && partialSetCount <= maxAmountOfPartialSets) {\r\n const { isValidPartialScore, error } = isValidPartialSetScore(set, scoringFormatTypeId);\r\n if (isValidPartialScore) {\r\n partialSetCount += 1;\r\n invalidSetId = set.id + 1;\r\n break;\r\n } else {\r\n validationError = error;\r\n break;\r\n }\r\n } else {\r\n validationError = validSetError;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n\r\n if (validationError) {\r\n return { validationError };\r\n }\r\n\r\n const totalPosition1Wins = position1CompletedWins + position1PartialWins;\r\n const totalPosition2Wins = position2CompletedWins + position2PartialWins;\r\n isWinnerPosition1 = totalPosition1Wins > totalPosition2Wins;\r\n\r\n const twoWinMaxFormats = [BEST_OF_THREE, TWO_SETS_WITH_TIEBREAKER, FAST_FOUR];\r\n\r\n if (twoWinMaxFormats.includes(scoringFormatTypeId) && matchOutcome === COMPLETED) {\r\n const winsRequired = 2;\r\n const isUnderWinRequirement =\r\n (isWinnerPosition1 && totalPosition1Wins < winsRequired) || (!isWinnerPosition1 && totalPosition2Wins < winsRequired);\r\n const isOverWinRequirement =\r\n (isWinnerPosition1 && totalPosition1Wins > winsRequired) || (!isWinnerPosition1 && totalPosition2Wins > winsRequired);\r\n\r\n if (isUnderWinRequirement) {\r\n validationError = ValidationErrors.UNDER_WIN_LIMIT;\r\n } else if (isOverWinRequirement) {\r\n validationError = ValidationErrors.OVER_WIN_LIMIT;\r\n }\r\n } else if (matchOutcome === COMPLETED_WITH_PARTIAL_SCORES) {\r\n if (position1CompletedWins > position2CompletedWins) {\r\n isWinnerPosition1 = true;\r\n } else if (position1CompletedWins < position2CompletedWins) {\r\n isWinnerPosition1 = false;\r\n } else if (totalPosition1Wins > totalPosition2Wins) {\r\n isWinnerPosition1 = true;\r\n } else if (totalPosition1Wins < totalPosition2Wins) {\r\n isWinnerPosition1 = false;\r\n } else if (totalPosition1Wins === totalPosition2Wins) {\r\n validationError = ValidationErrors.NO_WINNER_DETERMINED;\r\n }\r\n } else if (totalPosition1Wins === totalPosition2Wins && matchOutcome === COMPLETED) {\r\n validationError = ValidationErrors.NO_WINNER_DETERMINED;\r\n }\r\n\r\n return { validationError, isWinnerPosition1 };\r\n};\r\n\r\nexport const getExistingMatchSets = (match, isSide1Position1) => {\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1);\r\n const position1Result = position1?.sideResult;\r\n const position2Result = position2?.sideResult;\r\n\r\n const hasSet1Position1Score = isNumericScore(position1Result?.set1Score);\r\n const hasSet1Position2Score = isNumericScore(position2Result?.set1Score);\r\n const hasSet1Position1TiebreakerScore = isNumericScore(position1Result?.tieBreakSet1Score);\r\n const hasSet1Position2TiebreakerScore = isNumericScore(position2Result?.tieBreakSet1Score);\r\n\r\n const hasSet2Position1Score = isNumericScore(position1Result?.set2Score);\r\n const hasSet2Position2Score = isNumericScore(position2Result?.set2Score);\r\n const hasSet2Position1TiebreakerScore = isNumericScore(position1Result?.tieBreakSet2Score);\r\n const hasSet2Position2TiebreakerScore = isNumericScore(position2Result?.tieBreakSet2Score);\r\n\r\n const hasSet3Position1Score = isNumericScore(position1Result?.set3Score);\r\n const hasSet3Position2Score = isNumericScore(position2Result?.set3Score);\r\n const hasSet3Position1TiebreakerScore = isNumericScore(position1Result?.tieBreakSet3Score);\r\n const hasSet3Position2TiebreakerScore = isNumericScore(position2Result?.tieBreakSet3Score);\r\n\r\n return [\r\n {\r\n id: 1,\r\n position1Score: hasSet1Position1Score ? position1Result?.set1Score : '',\r\n position2Score: hasSet1Position2Score ? position2Result?.set1Score : '',\r\n position1Tiebreaker: hasSet1Position1TiebreakerScore ? position1Result?.tieBreakSet1Score : '',\r\n position2Tiebreaker: hasSet1Position2TiebreakerScore ? position2Result?.tieBreakSet1Score : '',\r\n },\r\n {\r\n id: 2,\r\n position1Score: hasSet2Position1Score ? position1Result?.set2Score : '',\r\n position2Score: hasSet2Position2Score ? position2Result?.set2Score : '',\r\n position1Tiebreaker: hasSet2Position1TiebreakerScore ? position1Result?.tieBreakSet2Score : '',\r\n position2Tiebreaker: hasSet2Position2TiebreakerScore ? position2Result?.tieBreakSet2Score : '',\r\n },\r\n {\r\n id: 3,\r\n position1Score: hasSet3Position1Score ? position1Result?.set3Score : '',\r\n position2Score: hasSet3Position2Score ? position2Result?.set3Score : '',\r\n position1Tiebreaker: hasSet3Position1TiebreakerScore ? position1Result?.tieBreakSet3Score : '',\r\n position2Tiebreaker: hasSet3Position2TiebreakerScore ? position2Result?.tieBreakSet3Score : '',\r\n },\r\n ];\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { PostScoreInput, PostScoreTieBreakInput, TiebreakerText } from '../../../../components/Styled';\r\nimport { ScorePositionKeys } from '../../../../utils/constants';\r\nimport { isSetTied } from '../../../../utils/postScore';\r\n\r\nconst UTSet = ({ onScoreChange, onFocus, set, currentSetId, scoringFormatTypeId, isDisabled }) => {\r\n const { id, position1Score, position2Score, position1Tiebreaker, position2Tiebreaker } = set;\r\n const { POSITION_ONE_SCORE, POSITION_ONE_TB_SCORE, POSITION_TWO_SCORE, POSITION_TWO_TB_SCORE } = ScorePositionKeys;\r\n\r\n const [isTie, setIsTie] = useState(false);\r\n const [showTiebreakerInput, setShowTiebreakerInput] = useState(false);\r\n\r\n const showPosition1Tiebreaker = isTie && !showTiebreakerInput && !!position1Tiebreaker;\r\n const showPosition2Tiebreaker = isTie && !showTiebreakerInput && !!position2Tiebreaker;\r\n\r\n useEffect(() => {\r\n const isSetTie = isSetTied(set, scoringFormatTypeId);\r\n setIsTie(isSetTie);\r\n setShowTiebreakerInput(isSetTie && currentSetId === set.id);\r\n }, [set, currentSetId]);\r\n\r\n const handleOnScoreChange = (changedSet, positionKey, event, isTiebreaker = false) => {\r\n const { value } = event.target;\r\n onScoreChange(changedSet, positionKey, value, isTiebreaker);\r\n };\r\n\r\n const handleOnFocus = () => {\r\n onFocus(set);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n handleOnScoreChange(set, POSITION_TWO_SCORE, event)}\r\n onFocus={handleOnFocus}\r\n value={position2Score}\r\n showTiebreaker={showTiebreakerInput}\r\n />\r\n {showPosition2Tiebreaker && {position2Tiebreaker}}\r\n {showTiebreakerInput && (\r\n handleOnScoreChange(set, POSITION_TWO_TB_SCORE, event, true)}\r\n onFocus={handleOnFocus}\r\n placeholder=\"0\"\r\n value={position2Tiebreaker}\r\n />\r\n )}\r\n \r\n \r\n handleOnScoreChange(set, POSITION_ONE_SCORE, event)}\r\n onFocus={handleOnFocus}\r\n placeholder=\"0\"\r\n value={position1Score}\r\n showTiebreaker={showTiebreakerInput}\r\n />\r\n {showPosition1Tiebreaker && {position1Tiebreaker}}\r\n {showTiebreakerInput && (\r\n handleOnScoreChange(set, POSITION_ONE_TB_SCORE, event, true)}\r\n placeholder=\"0\"\r\n value={position1Tiebreaker}\r\n />\r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default UTSet;\r\n","import React, { useMemo } from 'react';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\n\r\nimport { ResultTypes } from '../../../utils/types';\r\n\r\nconst MatchOutcomeSelect = ({ options, hasEnteredScores, onMatchOutComeChange, outcome }) => {\r\n const { DEFAULTED, MATCH_NOT_PLAYED, RETIRED, WITHDREW } = ResultTypes;\r\n const handleOnMatchOutcomeChange = (event) => {\r\n const { value } = event.target;\r\n onMatchOutComeChange(value);\r\n };\r\n\r\n const filteredOptions = useMemo(() => {\r\n if (outcome?.outcomeId === DEFAULTED || outcome?.outcomeId === MATCH_NOT_PLAYED) {\r\n return options.filter((option) => option.outcomeId !== RETIRED && option.outcomeId !== WITHDREW);\r\n }\r\n\r\n if (hasEnteredScores) {\r\n return options.filter((option) => option.outcomeId !== WITHDREW);\r\n }\r\n\r\n return options.filter((option) => option.outcomeId !== RETIRED);\r\n }, [options, hasEnteredScores]);\r\n\r\n return (\r\n \r\n Match Outcome\r\n `${selected.name}`}\r\n label=\"Match Outcome\"\r\n >\r\n {filteredOptions?.map((option) => {\r\n return (\r\n \r\n {option.name}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MatchOutcomeSelect;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\n\r\nimport { PlayerKeys, findPlayerInTeam } from '../../../utils/postScoreShared';\r\n\r\nconst PlayerSelect = ({ isDoubles, player1Id = '', player2Id, playerOptions = [], side, onPlayerChange, isSmallScreen }) => {\r\n const { PLAYER_1, PLAYER_2 } = PlayerKeys;\r\n\r\n const handleOnPlayerChange = (player) => (event) => {\r\n const selectedPlayer = findPlayerInTeam(event.target.value, playerOptions);\r\n onPlayerChange(selectedPlayer, side, player);\r\n };\r\n\r\n const renderOptions = () => {\r\n return playerOptions?.map((player) => (\r\n \r\n {`${player.firstName} ${player.lastName}`}\r\n \r\n ));\r\n };\r\n\r\n return (\r\n \r\n {isDoubles ? (\r\n \r\n \r\n Player 1\r\n \r\n \r\n None\r\n \r\n {renderOptions()}\r\n \r\n \r\n \r\n Player 2\r\n \r\n \r\n None\r\n \r\n {renderOptions()}\r\n \r\n \r\n \r\n ) : (\r\n \r\n Player Name\r\n \r\n \r\n None\r\n \r\n {renderOptions()}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerSelect;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { cloneDeep, isEqual } from 'lodash';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\nimport { Typography, Button, SwapIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Stack from '@mui/material/Stack';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport UTSet from './UTSet';\r\nimport { ScorePositionKeys, SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { ResultTypes, TennisScoringFormatTypes, tennisScoringTypes, getTypeForId } from '../../../utils/types';\r\nimport {\r\n SideKeys,\r\n createMatchResults,\r\n getMatchOutcomeOptions,\r\n getPositionsForMatch,\r\n switchMatchScores,\r\n createDefaultedMatchResults,\r\n hasDuplicatePlayersInMatch,\r\n hasScoresEntered,\r\n hasInvalidPlayerCount,\r\n getOutcomeForExistingMatch\r\n} from '../../../utils/postScoreShared';\r\n\r\nimport {\r\n DefaultSets,\r\n getExistingMatchSets,\r\n getValidatedValueForSet,\r\n getWinnerForSets,\r\n isSetTied, switchSetScores\r\n} from '../../../utils/postScore';\r\n\r\nimport MatchOutcomeSelect from '../MatchOutcomeSelect';\r\nimport PlayerSelect from '../PlayerSelect';\r\n\r\nconst _ = { cloneDeep, isEqual };\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst PostTennisScoreModal = ({\r\n isOpen,\r\n onClose,\r\n position1Team,\r\n position2Team,\r\n position1Players,\r\n position2Players,\r\n selectedMatch,\r\n onSaveMatchScore,\r\n onDuplicatePlayersInMatch,\r\n onInvalidPlayerCount\r\n}) => {\r\n const theme = useTheme();\r\n const { SINGLE_SET } = TennisScoringFormatTypes;\r\n const { SIDE_1, SIDE_2 } = SideKeys;\r\n const { DISPLAY, PRIMARY, SECONDARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, X_SMALL_MEDIUM_CAP, } = TypographySizes;\r\n const { name: position1TeamName, teamId: position1TeamId } = position1Team || {};\r\n const { name: position2TeamName } = position2Team || {};\r\n const { DEFAULTED, MATCH_NOT_PLAYED, INCOMPLETE } = ResultTypes;\r\n const [currentMatch, setCurrentMatch] = useState();\r\n const [sets, setSets] = useState(DefaultSets);\r\n const [originalSets, setOriginalSets] = useState([]);\r\n const [currentSetId, setCurrentSetId] = useState(0);\r\n const [originalMatch, setOriginalMatch] = useState();\r\n const [scoringError, setScoringError] = useState();\r\n const [hasEnteredScores, setHasEnteredScores] = useState(false);\r\n const [matchOutcomeOptions, setMatchOutcomeOptions] = useState();\r\n const [matchOutcome, setMatchOutcome] = useState();\r\n const [originalMatchOutcome, setOriginalMatchOutcome] = useState();\r\n const [winningSideId, setWinningSideId] = useState(null);\r\n const [isEditing, setIsEditing] = useState(false);\r\n const hasUnchangedScores = _.isEqual(originalSets, sets);\r\n const hasUnchangedMatch = _.isEqual(originalMatch, currentMatch);\r\n const hasUnchangedMatchOutcome = _.isEqual(originalMatchOutcome, matchOutcome);\r\n const isUnchangedMatch = hasUnchangedMatch && hasUnchangedScores && hasUnchangedMatchOutcome;\r\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'));\r\n const isSide1Position1 = selectedMatch?.side1?.teamId === position1TeamId;\r\n\r\n useEffect(() => {\r\n if (selectedMatch) {\r\n setCurrentMatch(selectedMatch);\r\n setOriginalMatch(selectedMatch);\r\n\r\n const options = getMatchOutcomeOptions(selectedMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n\r\n if (!matchOutcome) {\r\n setMatchOutcome(options[0]);\r\n setOriginalMatchOutcome(options[0]);\r\n }\r\n\r\n if (selectedMatch?.resultCompletionTypeId) {\r\n const { resultCompletionTypeId, winningSideId: winnerSideId } = selectedMatch;\r\n const existingSets = getExistingMatchSets(selectedMatch, isSide1Position1);\r\n\r\n if (selectedMatch?.scoringFormatTypeId === SINGLE_SET) {\r\n setSets([existingSets[0]]);\r\n setOriginalSets([existingSets[0]]);\r\n } else {\r\n setSets(existingSets);\r\n setOriginalSets(existingSets);\r\n }\r\n\r\n setIsEditing(true);\r\n\r\n const outcome = getOutcomeForExistingMatch({ options, resultCompletionTypeId, winnerSideId });\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n\r\n setMatchOutcome(outcome);\r\n setOriginalMatchOutcome(outcome);\r\n } else if (selectedMatch?.scoringFormatTypeId === SINGLE_SET) {\r\n setSets([DefaultSets[0]]);\r\n } else {\r\n setSets(DefaultSets);\r\n }\r\n }\r\n }, [selectedMatch]);\r\n\r\n useEffect(() => {\r\n if (!hasUnchangedMatch) {\r\n const options = getMatchOutcomeOptions(currentMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n }\r\n }, [currentMatch]);\r\n\r\n const handleOnClose = () => {\r\n setMatchOutcome(matchOutcomeOptions[0]);\r\n onClose();\r\n setScoringError(null);\r\n };\r\n\r\n useEffect(() => {\r\n const hasScores = hasScoresEntered(sets);\r\n setHasEnteredScores(hasScores);\r\n }, [sets]);\r\n\r\n const handleOnSetScoreChange = (set, positionKey, value, isTiebreaker) => {\r\n setScoringError(null);\r\n\r\n const { id: setId } = set;\r\n const validatedValue = getValidatedValueForSet(setId, value, currentMatch?.scoringFormatTypeId, isTiebreaker);\r\n const newSets = _.cloneDeep(sets);\r\n const setIndex = newSets.findIndex((newSet) => newSet.id === setId);\r\n const updatedSet = newSets[setIndex];\r\n updatedSet[positionKey] = validatedValue;\r\n\r\n if (validatedValue && !isTiebreaker && setId !== 1) {\r\n if (positionKey === ScorePositionKeys.POSITION_TWO_SCORE && !isSetTied(updatedSet, currentMatch?.scoringFormatTypeId)) {\r\n setCurrentSetId(setId + 1);\r\n }\r\n }\r\n setSets(newSets);\r\n };\r\n\r\n const handleOnSetFocus = (set) => {\r\n setCurrentSetId(set.id);\r\n };\r\n\r\n const handleOnSaveScore = () => {\r\n let results;\r\n let hasNoErrors = true;\r\n\r\n const hasDuplicatePlayers = hasDuplicatePlayersInMatch(currentMatch);\r\n const hasInvalidPlayerAmount = hasInvalidPlayerCount(currentMatch, matchOutcome?.outcomeId);\r\n\r\n if (hasDuplicatePlayers) {\r\n onDuplicatePlayersInMatch();\r\n return;\r\n }\r\n\r\n if (hasInvalidPlayerAmount) {\r\n onInvalidPlayerCount();\r\n return;\r\n }\r\n\r\n if (matchOutcome.outcomeId === MATCH_NOT_PLAYED || matchOutcome.outcomeId === DEFAULTED) {\r\n results = createDefaultedMatchResults(currentMatch, matchOutcome, isSide1Position1);\r\n } else {\r\n const { validationError, isWinnerPosition1 } = getWinnerForSets(\r\n sets,\r\n matchOutcome.outcomeId,\r\n currentMatch?.scoringFormatTypeId\r\n );\r\n\r\n if (validationError) {\r\n hasNoErrors = false;\r\n setScoringError(validationError);\r\n } else {\r\n let winnerId = null;\r\n\r\n if (!winningSideId && matchOutcome.outcomeId !== INCOMPLETE) {\r\n winnerId = isSide1Position1 && isWinnerPosition1 ? currentMatch.side1.sideId : currentMatch.side2.sideId;\r\n }\r\n\r\n const winningSide = winningSideId || winnerId;\r\n results = createMatchResults(currentMatch, sets, winningSide, matchOutcome.outcomeId, isSide1Position1);\r\n }\r\n }\r\n\r\n if (hasNoErrors) {\r\n onSaveMatchScore(currentMatch.id, results, isEditing);\r\n setIsEditing(false);\r\n setMatchOutcome(null);\r\n }\r\n };\r\n\r\n const handleOnMatchOutcomeChange = (outcome) => {\r\n setScoringError(null);\r\n\r\n const outcomeIndex = matchOutcomeOptions.findIndex((option) => option.id === outcome?.id);\r\n setMatchOutcome(matchOutcomeOptions[outcomeIndex]);\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n };\r\n\r\n const handleOnSwitchScores = () => {\r\n const updatedSetScores = switchSetScores(sets);\r\n setSets(updatedSetScores);\r\n\r\n if (currentMatch?.resultCompletionTypeId) {\r\n const updatedMatch = switchMatchScores(currentMatch);\r\n setCurrentMatch(updatedMatch);\r\n }\r\n };\r\n\r\n const handleOnPlayerChange = (player, side, playerPosition) => {\r\n setCurrentMatch({\r\n ...currentMatch,\r\n [side]: { ...currentMatch[side], [playerPosition]: player },\r\n });\r\n };\r\n\r\n let position1Player1Id;\r\n let position1Player2Id;\r\n let position2Player1Id;\r\n let position2Player2Id;\r\n const isDoubles = currentMatch?.isDoubles;\r\n\r\n if (currentMatch) {\r\n const { position1, position2 } = getPositionsForMatch(currentMatch, isSide1Position1);\r\n position1Player1Id = position1?.player1?.playerId;\r\n position1Player2Id = position1.player2?.playerId;\r\n position2Player1Id = position2?.player1?.playerId;\r\n position2Player2Id = position2.player2?.playerId;\r\n }\r\n\r\n const matchName = `${isDoubles ? 'Doubles' : 'Singles'} Match #${currentMatch?.lineupPosition}`;\r\n const scoringType = getTypeForId(currentMatch?.scoringFormatTypeId, tennisScoringTypes);\r\n const position1PlayerSide = isSide1Position1 ? SIDE_1 : SIDE_2;\r\n const position2PlayerSide = isSide1Position1 ? SIDE_2 : SIDE_1;\r\n const nonScoringOutcomes = [ResultTypes.DEFAULTED, ResultTypes.MATCH_NOT_PLAYED, ResultTypes.WITHDREW];\r\n const hasNonScoringOutcome = nonScoringOutcomes.includes(matchOutcome?.outcomeId);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${matchName} - ${scoringType?.description}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Match Outcome\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Scores\r\n \r\n \r\n \r\n {isSmallScreen ? (\r\n \r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {sets?.map((set) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {sets?.map((set) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {scoringError && (\r\n \r\n \r\n {scoringError}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PostTennisScoreModal;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { PostScoreInput } from '../../../../components/Styled';\r\nimport { ScorePositionKeys } from '../../../../utils/constants';\r\n\r\nconst PickleballGame = ({ onScoreChange, game, isDisabled }) => {\r\n const { id, position1Score, position2Score } = game;\r\n const { POSITION_ONE_SCORE, POSITION_TWO_SCORE } = ScorePositionKeys;\r\n\r\n const handleOnScoreChange = (changedGame, positionKey, event, isTiebreaker = false) => {\r\n const { value } = event.target;\r\n onScoreChange(changedGame, positionKey, value, isTiebreaker);\r\n };\r\n\r\n return (\r\n
    \r\n \r\n handleOnScoreChange(game, POSITION_TWO_SCORE, event)}\r\n placeholder=\"0\"\r\n value={position2Score}\r\n />\r\n \r\n \r\n handleOnScoreChange(game, POSITION_ONE_SCORE, event)}\r\n placeholder=\"0\"\r\n value={position1Score}\r\n />\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default PickleballGame;\r\n","import { ResultTypes, PickleballScoringFormatTypes } from './types';\r\nimport { isNumericScore, ValidationErrors, hasScores, hasPartialScores, getPositionsForMatch, isPosition1Winner, isPosition2Winner } from './postScoreShared';\r\n\r\nconst { BEST_OF_THREE_GAMES, SINGLE_GAME, TIME_BASED_GAME } = PickleballScoringFormatTypes;\r\nconst { COMPLETED, COMPLETED_WITH_PARTIAL_SCORES, DEFAULTED, WITHDREW, RETIRED } = ResultTypes;\r\n\r\nconst GAME_ONE_ID = 1;\r\n\r\nexport const DefaultPickleballGames = [\r\n { id: 1, position1Score: '', position2Score: '' },\r\n { id: 2, position1Score: '', position2Score: '' },\r\n { id: 3, position1Score: '', position2Score: '' },\r\n];\r\n\r\nexport const switchGameScores = (games) => {\r\n const switchedGames = games.map((game) => {\r\n const { id, position1Score, position2Score } = game;\r\n return {\r\n id,\r\n position1Score: position2Score,\r\n position2Score: position1Score,\r\n };\r\n });\r\n\r\n return switchedGames;\r\n};\r\n\r\nexport const getValidatedValueForGame = (value) => {\r\n const maxScoreForGames = 99;\r\n let score = parseInt(value);\r\n\r\n score %= 100;\r\n\r\n if (score > maxScoreForGames) {\r\n score = maxScoreForGames;\r\n } else if (score < 0) {\r\n score = 0;\r\n }\r\n\r\n return Number.isNaN(score) ? '' : score;\r\n};\r\n\r\nexport const validatePickleballGame = (game) => {\r\n const { position1Score, position2Score } = game;\r\n const minPointsAllowed = 0;\r\n const maxPointsAllowed = 99;\r\n const hasTieScore = position1Score === position2Score;\r\n const hasOutOfRangeScore =\r\n (position1Score < minPointsAllowed) || (position2Score < minPointsAllowed) ||\r\n (position1Score > maxPointsAllowed) || (position2Score > maxPointsAllowed);\r\n\r\n let error = null;\r\n\r\n if (hasOutOfRangeScore) {\r\n error = `${ValidationErrors.GAME_SCORE_INVALID} ${game.id}`;\r\n }\r\n\r\n if (hasTieScore && game.id === GAME_ONE_ID) {\r\n error = `${ValidationErrors.GAME_SCORE_NO_TIE} ${game.id}`;\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const isValidCompletedGameScore = (game, scoringFormatTypeId) => {\r\n const hasGameScores = hasScores(game);\r\n const hasPartialGameScores = hasPartialScores(game);\r\n let error = null;\r\n\r\n if (hasGameScores) {\r\n switch (scoringFormatTypeId) {\r\n case SINGLE_GAME:\r\n case TIME_BASED_GAME:\r\n case BEST_OF_THREE_GAMES: {\r\n const validationError = validatePickleballGame(game);\r\n if (validationError) {\r\n error = validationError;\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n } else if (hasPartialGameScores) {\r\n error = `${ValidationErrors.GAME_SCORE_INCOMPLETE} ${game.id}`;\r\n }\r\n\r\n return { isValidCompletedGame: !error, error };\r\n};\r\n\r\nexport const getWinnerForGames = (games, matchOutcome, scoringFormatTypeId) => {\r\n let validationError = null;\r\n let isWinnerPosition1 = false;\r\n let tieScoreGameId = null;\r\n let position1Wins = 0;\r\n let position2Wins = 0;\r\n let positionOneTotalPoints = 0;\r\n let positionTwoTotalPoints = 0;\r\n\r\n games.forEach((game) => {\r\n const hasGameScores = hasScores(game);\r\n const hasPartialGameScores = hasPartialScores(game);\r\n const isTieScore = hasScores && game?.position1Score === game?.position2Score;\r\n\r\n switch (matchOutcome) {\r\n case COMPLETED_WITH_PARTIAL_SCORES:\r\n case COMPLETED: {\r\n const { error } = isValidCompletedGameScore(game, scoringFormatTypeId);\r\n if (error) {\r\n validationError = error;\r\n break;\r\n }\r\n\r\n if (isPosition1Winner(game)) {\r\n position1Wins += 1;\r\n } else if (isPosition2Winner(game)) {\r\n position2Wins += 1;\r\n }\r\n\r\n positionOneTotalPoints += parseInt(game?.position1Score);\r\n positionTwoTotalPoints += parseInt(game?.position2Score);\r\n\r\n if (isTieScore && game.id !== GAME_ONE_ID) {\r\n tieScoreGameId = game.id;\r\n }\r\n\r\n if (tieScoreGameId && tieScoreGameId < game.id) {\r\n validationError = `${ValidationErrors.GAME_SCORE_NO_TIE} ${tieScoreGameId}`;\r\n }\r\n\r\n break;\r\n }\r\n case WITHDREW:\r\n case DEFAULTED:\r\n if (hasGameScores || hasPartialGameScores) {\r\n validationError = ValidationErrors.NO_SCORES_FOR_OUTCOME;\r\n break;\r\n }\r\n break;\r\n case RETIRED: {\r\n if (!hasGameScores && game.id === GAME_ONE_ID) {\r\n validationError = ValidationErrors.GAME_SCORES_REQUIRED_FOR_OUTCOME;\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n });\r\n\r\n if (validationError) {\r\n return { validationError };\r\n }\r\n\r\n if (matchOutcome === COMPLETED_WITH_PARTIAL_SCORES || matchOutcome === COMPLETED) {\r\n if (position1Wins > position2Wins) {\r\n isWinnerPosition1 = true;\r\n } else if (position1Wins < position2Wins) {\r\n isWinnerPosition1 = false;\r\n } else if (position1Wins === position2Wins && positionOneTotalPoints > positionTwoTotalPoints) {\r\n isWinnerPosition1 = true;\r\n } else if (position1Wins === position2Wins && positionOneTotalPoints < positionTwoTotalPoints) {\r\n isWinnerPosition1 = false;\r\n } else if (position1Wins === position2Wins) {\r\n validationError = ValidationErrors.NO_WINNER_DETERMINED;\r\n }\r\n }\r\n\r\n return { validationError, isWinnerPosition1 };\r\n};\r\n\r\nexport const getExistingPickleballMatchGames = (match, isSide1Position1) => {\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1);\r\n const position1Result = position1?.sideResult;\r\n const position2Result = position2?.sideResult;\r\n\r\n const hasSet1Position1Score = isNumericScore(position1Result?.set1Score);\r\n const hasSet1Position2Score = isNumericScore(position2Result?.set1Score);\r\n\r\n const hasSet2Position1Score = isNumericScore(position1Result?.set2Score);\r\n const hasSet2Position2Score = isNumericScore(position2Result?.set2Score);\r\n\r\n const hasSet3Position1Score = isNumericScore(position1Result?.set3Score);\r\n const hasSet3Position2Score = isNumericScore(position2Result?.set3Score);\r\n\r\n return [\r\n {\r\n id: 1,\r\n position1Score: hasSet1Position1Score ? position1Result?.set1Score : '',\r\n position2Score: hasSet1Position2Score ? position2Result?.set1Score : '',\r\n },\r\n {\r\n id: 2,\r\n position1Score: hasSet2Position1Score ? position1Result?.set2Score : '',\r\n position2Score: hasSet2Position2Score ? position2Result?.set2Score : '',\r\n },\r\n {\r\n id: 3,\r\n position1Score: hasSet3Position1Score ? position1Result?.set3Score : '',\r\n position2Score: hasSet3Position2Score ? position2Result?.set3Score : '',\r\n },\r\n ];\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { cloneDeep, isEqual } from 'lodash';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\nimport { Typography, Button, SwapIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Stack from '@mui/material/Stack';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport PickleballGame from './PickleballGame';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { ResultTypes, getTypeForId, pickleballScoringTypes } from '../../../utils/types';\r\nimport {\r\n SideKeys,\r\n createMatchResults,\r\n getMatchOutcomeOptions,\r\n getPositionsForMatch,\r\n hasScores,\r\n hasScoresEntered,\r\n switchMatchScores,\r\n createDefaultedMatchResults,\r\n hasDuplicatePlayersInMatch,\r\n getOutcomeForExistingMatch,\r\n hasInvalidPlayerCount\r\n} from '../../../utils/postScoreShared';\r\n\r\nimport {\r\n DefaultPickleballGames,\r\n getExistingPickleballMatchGames,\r\n getValidatedValueForGame,\r\n getWinnerForGames,\r\n switchGameScores\r\n} from '../../../utils/postPickleballScore';\r\n\r\nimport MatchOutcomeSelect from '../MatchOutcomeSelect';\r\nimport PlayerSelect from '../PlayerSelect';\r\n\r\nconst _ = { cloneDeep, isEqual };\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst PostPickleballScoreModal = ({\r\n isOpen,\r\n onClose,\r\n position1Team,\r\n position2Team,\r\n position1Players,\r\n position2Players,\r\n selectedMatch,\r\n onSaveMatchScore,\r\n onDuplicatePlayersInMatch,\r\n onInvalidPlayerCount\r\n}) => {\r\n const theme = useTheme();\r\n const { SIDE_1, SIDE_2 } = SideKeys;\r\n const { DISPLAY, PRIMARY, SECONDARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, X_SMALL_MEDIUM_CAP, } = TypographySizes;\r\n const { name: position1TeamName, teamId: position1TeamId } = position1Team || {};\r\n const { name: position2TeamName } = position2Team || {};\r\n const { DEFAULTED, MATCH_NOT_PLAYED, INCOMPLETE } = ResultTypes;\r\n const [currentMatch, setCurrentMatch] = useState();\r\n const [games, setGames] = useState(DefaultPickleballGames);\r\n const [originalGames, setOriginalGames] = useState([]);\r\n const [originalMatch, setOriginalMatch] = useState();\r\n const [scoringError, setScoringError] = useState();\r\n const [hasEnteredScores, setHasEnteredScores] = useState(false);\r\n const [matchOutcomeOptions, setMatchOutcomeOptions] = useState();\r\n const [matchOutcome, setMatchOutcome] = useState();\r\n const [originalMatchOutcome, setOriginalMatchOutcome] = useState();\r\n const [winningSideId, setWinningSideId] = useState(null);\r\n const [isEditing, setIsEditing] = useState(false);\r\n const hasUnchangedScores = _.isEqual(originalGames, games);\r\n const hasUnchangedMatch = _.isEqual(originalMatch, currentMatch);\r\n const hasUnchangedMatchOutcome = _.isEqual(originalMatchOutcome, matchOutcome);\r\n const isUnchangedMatch = hasUnchangedMatch && hasUnchangedScores && hasUnchangedMatchOutcome;\r\n const isSmallScreen = useMediaQuery(theme.breakpoints.down('sm'));\r\n const isSide1Position1 = selectedMatch?.side1?.teamId === position1TeamId;\r\n\r\n useEffect(() => {\r\n if (selectedMatch) {\r\n setCurrentMatch(selectedMatch);\r\n setOriginalMatch(selectedMatch);\r\n\r\n const options = getMatchOutcomeOptions(selectedMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n\r\n if (!matchOutcome) {\r\n setMatchOutcome(options[0]);\r\n setOriginalMatchOutcome(options[0]);\r\n }\r\n\r\n if (selectedMatch?.resultCompletionTypeId) {\r\n setIsEditing(true);\r\n\r\n const { resultCompletionTypeId, winningSideId: winnerSideId } = selectedMatch;\r\n const existingGames = getExistingPickleballMatchGames(selectedMatch, isSide1Position1);\r\n setGames(existingGames);\r\n setOriginalGames(existingGames);\r\n\r\n const outcome = getOutcomeForExistingMatch({ options, resultCompletionTypeId, winnerSideId });\r\n setMatchOutcome(outcome);\r\n setOriginalMatchOutcome(outcome);\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n } else {\r\n setGames(DefaultPickleballGames);\r\n }\r\n }\r\n }, [selectedMatch]);\r\n\r\n useEffect(() => {\r\n if (!hasUnchangedMatch) {\r\n const options = getMatchOutcomeOptions(currentMatch, position1Team, position2Team, isSide1Position1);\r\n setMatchOutcomeOptions(options);\r\n }\r\n }, [currentMatch]);\r\n\r\n const handleOnClose = () => {\r\n setMatchOutcome(matchOutcomeOptions[0]);\r\n onClose();\r\n setScoringError(null);\r\n };\r\n\r\n useEffect(() => {\r\n const hasSetScores = hasScoresEntered(games);\r\n setHasEnteredScores(hasSetScores);\r\n }, [games]);\r\n\r\n const handleOnGameScoreChange = (game, positionKey, value) => {\r\n setScoringError(null);\r\n\r\n const { id: gameId } = game;\r\n const validatedValue = getValidatedValueForGame(value);\r\n const newGames = _.cloneDeep(games);\r\n const gameIndex = newGames.findIndex((newGame) => newGame.id === gameId);\r\n const updatedGame = newGames[gameIndex];\r\n updatedGame[positionKey] = validatedValue;\r\n\r\n setGames(newGames);\r\n };\r\n\r\n const handleOnSaveScore = () => {\r\n let results;\r\n let hasNoErrors = true;\r\n\r\n const hasDuplicatePlayers = hasDuplicatePlayersInMatch(currentMatch);\r\n const hasInvalidPlayerAmount = hasInvalidPlayerCount(currentMatch, matchOutcome?.outcomeId);\r\n\r\n if (hasDuplicatePlayers) {\r\n onDuplicatePlayersInMatch();\r\n return;\r\n }\r\n\r\n if (hasInvalidPlayerAmount) {\r\n onInvalidPlayerCount();\r\n return;\r\n }\r\n\r\n if (matchOutcome.outcomeId === MATCH_NOT_PLAYED || matchOutcome.outcomeId === DEFAULTED) {\r\n results = createDefaultedMatchResults(currentMatch, matchOutcome, isSide1Position1);\r\n } else {\r\n const { validationError, isWinnerPosition1 } = getWinnerForGames(\r\n games,\r\n matchOutcome.outcomeId,\r\n currentMatch?.scoringFormatTypeId\r\n );\r\n\r\n if (validationError) {\r\n hasNoErrors = false;\r\n setScoringError(validationError);\r\n } else {\r\n let winnerId = null;\r\n\r\n if (!winningSideId && matchOutcome.outcomeId !== INCOMPLETE) {\r\n winnerId = isSide1Position1 && isWinnerPosition1 ? currentMatch.side1.sideId : currentMatch.side2.sideId;\r\n }\r\n\r\n const winningSide = winningSideId || winnerId;\r\n results = createMatchResults(currentMatch, games, winningSide, matchOutcome.outcomeId, isSide1Position1);\r\n }\r\n }\r\n\r\n if (hasNoErrors) {\r\n onSaveMatchScore(currentMatch.id, results, isEditing);\r\n setIsEditing(false);\r\n setMatchOutcome(null);\r\n }\r\n };\r\n\r\n const handleOnMatchOutcomeChange = (outcome) => {\r\n setScoringError(null);\r\n\r\n const outcomeIndex = matchOutcomeOptions.findIndex((option) => option.id === outcome?.id);\r\n setMatchOutcome(matchOutcomeOptions[outcomeIndex]);\r\n\r\n if (outcome?.winningSideId) {\r\n setWinningSideId(outcome.winningSideId);\r\n }\r\n };\r\n\r\n const handleOnSwitchScores = () => {\r\n const updatedGames = switchGameScores(games);\r\n setGames(updatedGames);\r\n\r\n if (currentMatch?.resultCompletionTypeId) {\r\n const updatedMatch = switchMatchScores(currentMatch);\r\n setCurrentMatch(updatedMatch);\r\n }\r\n };\r\n\r\n const handleOnPlayerChange = (player, side, playerPosition) => {\r\n setCurrentMatch({\r\n ...currentMatch,\r\n [side]: { ...currentMatch[side], [playerPosition]: player },\r\n });\r\n };\r\n\r\n let position1Player1Id;\r\n let position1Player2Id;\r\n let position2Player1Id;\r\n let position2Player2Id;\r\n const isDoubles = currentMatch?.isDoubles;\r\n\r\n if (currentMatch) {\r\n const { position1, position2 } = getPositionsForMatch(currentMatch, isSide1Position1);\r\n position1Player1Id = position1?.player1?.playerId;\r\n position1Player2Id = position1.player2?.playerId;\r\n position2Player1Id = position2?.player1?.playerId;\r\n position2Player2Id = position2.player2?.playerId;\r\n }\r\n\r\n const matchName = `${isDoubles ? 'Doubles' : 'Singles'} Match #${currentMatch?.lineupPosition}`;\r\n const scoringType = getTypeForId(currentMatch?.scoringFormatTypeId, pickleballScoringTypes);\r\n const position1PlayerSide = isSide1Position1 ? SIDE_1 : SIDE_2;\r\n const position2PlayerSide = isSide1Position1 ? SIDE_2 : SIDE_1;\r\n const nonScoringOutcomes = [ResultTypes.DEFAULTED, ResultTypes.MATCH_NOT_PLAYED, ResultTypes.WITHDREW];\r\n const hasNonScoringOutcome = nonScoringOutcomes.includes(matchOutcome?.outcomeId);\r\n\r\n const renderPickleballGames = () => {\r\n return (\r\n games.map((game, index) => {\r\n let hasPreviousGameScore = true;\r\n let hasCurrentScores = false;\r\n\r\n if (game.id !== 1) {\r\n hasPreviousGameScore = hasScores(games[index - 1]);\r\n hasCurrentScores = hasScores(game);\r\n }\r\n\r\n return (\r\n \r\n );\r\n })\r\n );\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {`${matchName} - ${scoringType?.description}`}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Match Outcome\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Scores\r\n \r\n \r\n \r\n {isSmallScreen ? (\r\n \r\n\r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {renderPickleballGames()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n {position2TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName?.toUpperCase()}\r\n \r\n \r\n \r\n \r\n \r\n {renderPickleballGames()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {scoringError && (\r\n \r\n \r\n {scoringError}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PostPickleballScoreModal;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { isNumericScore } from '../../../../utils/postScoreShared';\r\nimport { ResultTypes } from '../../../../utils/types';\r\nimport { SharedUICategories, TypographySizes } from '../../../../utils/constants';\r\n\r\nconst SetScores = ({ position = {}, isPositionWinner = false, outcomeDescription = '', isScorelessOutcome = false, resultCompletionTypeId = null }) => {\r\n const theme = useTheme();\r\n const { DEFAULTED, WITHDREW, RETIRED } = ResultTypes;\r\n const hasSet1Score = isNumericScore(position?.sideResult?.set1Score);\r\n const hasSet2Score = isNumericScore(position?.sideResult?.set2Score);\r\n const hasSet3Score = isNumericScore(position?.sideResult?.set3Score);\r\n const hasSet1TiebreakerScore = isNumericScore(position?.sideResult?.tieBreakSet1Score);\r\n const hasSet2TiebreakerScore = isNumericScore(position?.sideResult?.tieBreakSet2Score);\r\n const hasSet3TiebreakerScore = isNumericScore(position?.sideResult?.tieBreakSet3Score);\r\n const fontSize = isPositionWinner ? TypographySizes.MEDIUM_MEDIUM : TypographySizes.MEDIUM_BOOK;\r\n const fontColor = isPositionWinner ? theme.appColors.black : theme.appColors.blueGrey;\r\n const displayOutcomeDescription = (resultCompletionTypeId === DEFAULTED || resultCompletionTypeId === RETIRED || resultCompletionTypeId === WITHDREW) && !isPositionWinner;\r\n const noScores = !displayOutcomeDescription && !hasSet1Score && !hasSet2Score && !hasSet3Score && !isScorelessOutcome;\r\n\r\n return (\r\n \r\n \r\n {displayOutcomeDescription && (\r\n {outcomeDescription}\r\n )}\r\n {hasSet1Score && (\r\n \r\n {position?.sideResult?.set1Score}\r\n {hasSet1TiebreakerScore && (\r\n \r\n {position?.sideResult?.tieBreakSet1Score}\r\n \r\n )}\r\n \r\n )}\r\n {hasSet2Score && (\r\n \r\n {position?.sideResult?.set2Score}\r\n {hasSet2TiebreakerScore && (\r\n \r\n {position?.sideResult?.tieBreakSet2Score}\r\n \r\n )}\r\n \r\n )}\r\n {hasSet3Score && (\r\n \r\n {position?.sideResult?.set3Score}\r\n {hasSet3TiebreakerScore && (\r\n \r\n {position?.sideResult?.tieBreakSet3Score}\r\n \r\n )}\r\n \r\n )}\r\n {noScores && (\r\n \r\n -\r\n -\r\n -\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SetScores;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport { getPlayerDisplayUtr } from '../../utils/display';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport { getPlayerProfileUrl } from '../../utils/helpers';\r\n\r\nconst PlayerAvatarWithUtr = ({ player1 = {}, player2 = {}, isWinner = false, isDoubles = false }) => {\r\n const theme = useTheme();\r\n const fontSize = isWinner ? TypographySizes.MEDIUM_MEDIUM : TypographySizes.MEDIUM_BOOK;\r\n const player1FirstLast = player1 && `${player1.firstName} ${player1.lastName}`;\r\n const player2FirstLast = player2 && `${player2.firstName} ${player2.lastName}`;\r\n const player1Name = player1FirstLast || 'To Be Determined';\r\n const player2Name = player2FirstLast || 'To Be Determined';\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n const AvatarWithUtrTemplate = ({ player, playerName }) => {\r\n const href = player ? getPlayerProfileUrl(player?.playerId) : null;\r\n const rating = isTennisMatch ? getPlayerDisplayUtr(player, isDoubles).rating : player?.utrRange?.pickleballRatingDisplay;\r\n return (\r\n <>\r\n \r\n {player && {rating}}\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {isDoubles && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvatarWithUtr;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography, CloseIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\nimport { Button, IconButton } from '@mui/material';\r\n\r\nimport TeamMatchSetScores from './TeamMatchSetScores';\r\nimport { ResultTypes, matchResultTypes, getTypeForId } from '../../../utils/types';\r\nimport { getPositionsForMatch } from '../../../utils/postScoreShared';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport PlayerAvatarWithUtr from '../../PlayerAvatarWithUtr';\r\nimport WinnerIndicator from '../../WinnerIndicator';\r\n\r\nconst TeamMatchScoreCard = ({ position1Team = {}, position2Team = {}, match = null, isManaging = false, onEditClicked, isDoubles = false, onClearMatchClick }) => {\r\n const { side1, side2, resultCompletionTypeId, winningSideId } = match || {};\r\n const { DEFAULTED, WITHDREW, INCOMPLETE, MATCH_NOT_PLAYED } = ResultTypes;\r\n const { name: position1TeamName, teamId: position1TeamId } = position1Team || {};\r\n const { name: position2TeamName } = position2Team || {};\r\n\r\n const isSide1Position1 = position1TeamId === side1?.teamId;\r\n const { position1, position2 } = getPositionsForMatch(match, isSide1Position1);\r\n const isPosition1Winner = position1.sideId === winningSideId;\r\n const isPosition2Winner = position2.sideId === winningSideId;\r\n\r\n const theme = useTheme();\r\n const isIncompleteOutcome = resultCompletionTypeId === INCOMPLETE;\r\n const isDefaultedOutcome = resultCompletionTypeId === DEFAULTED;\r\n const scorelessOutcomes = [DEFAULTED, WITHDREW];\r\n const isScorelessOutcome = scorelessOutcomes.includes(resultCompletionTypeId);\r\n const outcome = getTypeForId(resultCompletionTypeId, matchResultTypes);\r\n const showClearButton = !!resultCompletionTypeId || side1?.player1 || side1?.player2 || side2?.player1 || side2?.player2;\r\n\r\n const handleOnEditClicked = () => {\r\n onEditClicked(match, isDoubles);\r\n };\r\n\r\n const handleOnClearPlayerMatch = () => {\r\n onClearMatchClick(match);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isDoubles ? 'Doubles' : 'Singles'} Line Match {match.lineupPosition}\r\n \r\n {isManaging && (\r\n \r\n \r\n {showClearButton && (\r\n <>\r\n |\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {resultCompletionTypeId === MATCH_NOT_PLAYED ? (\r\n \r\n \r\n Match not played\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {position2TeamName}\r\n {isDefaultedOutcome && !isPosition2Winner ? (\r\n \r\n -\r\n \r\n ) : (\r\n \r\n {isPosition2Winner && }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {isIncompleteOutcome && (\r\n Incomplete\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {position1TeamName}\r\n {isDefaultedOutcome && !isPosition1Winner ? (\r\n \r\n -\r\n \r\n ) : (\r\n \r\n {isPosition1Winner && }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TeamMatchScoreCard;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\n\r\nimport PlayerAvatarWithUtr from '../../PlayerAvatarWithUtr';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nconst TeamMatchAlternatesCard = ({ positionAlternates = [] }) => {\r\n const theme = useTheme();\r\n const { alternatePlayers } = positionAlternates;\r\n\r\n return (\r\n <>\r\n \r\n {positionAlternates?.teamName} Alternates\r\n \r\n \r\n \r\n \r\n {alternatePlayers.map((alternate) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamMatchAlternatesCard;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography, Button, CalendarIcon, SessionIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport Container from '@mui/material/Container';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport WinnerIndicator from '../../../components/WinnerIndicator';\r\nimport { homeTeamIndicator } from '../../../utils/constants';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { LeagueSessionTypes } from '../../../utils/types';\r\nimport { teamMatchSummaryPropTypes, defaultTeamMatchSummaryPropTypes } from '../../../utils/proptypes';\r\nimport { TBD_ROUND } from '../../../components/DrawTab/utils';\r\n\r\nconst TeamMatchSummary = ({ isLoading, onEditClicked, summary = {}, scores, isUpdating = true, winningTeamId }) => {\r\n const { canEditTeamMatch, sessionName, position1Team, position2Team, matchDate, sessionId, sessionTypeId } = summary;\r\n const { MULTI_ROUND } = LeagueSessionTypes;\r\n const isMultiRoundSession = sessionTypeId === MULTI_ROUND;\r\n const hasNoScoresPosted = scores?.position1 === 0 && scores?.position2 === 0;\r\n const homeTeam = position1Team?.name;\r\n const homeScore = hasNoScoresPosted ? '-' : scores?.position1;\r\n const awayTeam = position2Team?.name;\r\n const awayScore = hasNoScoresPosted ? '-' : scores?.position2;\r\n const date = matchDate ? getAdjustedDate({ dateUtc: matchDate, format: 'MMM Do, YYYY [\\u2022] h:mm A' }) : TBD_ROUND;\r\n const theme = useTheme();\r\n const hasWinner = position1Team?.isWinner || position2Team?.isWinner;\r\n const isPosition1Winner = hasWinner && position1Team?.teamId === winningTeamId;\r\n const isPosition2Winner = hasWinner && position2Team?.teamId === winningTeamId;\r\n const sessionUrl = `/leagues/session/${sessionId}`;\r\n const awayTeamUrl = `/teams/${position2Team?.teamId}`;\r\n const homeTeamUrl = `/teams/${position1Team?.teamId}`;\r\n const homeTeamTextColor = hasWinner && isPosition2Winner ? theme.appColors.grey : theme.appColors.white;\r\n const awayTeamTextColor = hasWinner && isPosition1Winner ? theme.appColors.grey : theme.appColors.white;\r\n\r\n const handleOnEditClick = () => {\r\n onEditClicked();\r\n };\r\n\r\n const truncatedTextStyles = {\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n minWidth: 0\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n Team match\r\n {canEditTeamMatch && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {awayTeam}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {homeTeam}\r\n \r\n \r\n {isMultiRoundSession && {homeTeamIndicator}}\r\n \r\n\r\n \r\n \r\n \r\n {isUpdating ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {isPosition2Winner && ()}\r\n \r\n {awayScore}\r\n \r\n \r\n \r\n {isPosition1Winner && ()}\r\n \r\n {homeScore}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {date}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nTeamMatchSummary.propTypes = {\r\n ...teamMatchSummaryPropTypes\r\n};\r\n\r\nTeamMatchSummary.defaultProps = {\r\n ...defaultTeamMatchSummaryPropTypes\r\n};\r\n\r\nexport default TeamMatchSummary;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport { PlayerAvailabilityStatusTypes } from '../../../../utils/types';\r\n\r\nconst PlayerAvailabilityEditModal = ({ onStatusChange, isOpen, onClose }) => {\r\n const { YES, MAYBE, NO } = PlayerAvailabilityStatusTypes;\r\n\r\n const handleOnAvailabilityChange = (event) => {\r\n const status = event.currentTarget.value;\r\n onStatusChange(status);\r\n };\r\n\r\n return (\r\n \r\n \r\n Update player RSVP\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n What would you like to update the player's RSVP to?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvailabilityEditModal;\r\n","import React, { useState } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\n\r\nimport { PlayerAvailabilityStatusTypes } from '../../../../utils/types';\r\nimport { CustomSwitch } from '../../../../components/Styled';\r\n\r\nconst PlayerAvailabilityReminderModal = ({ isOpen, onClose, players, onReminderChange }) => {\r\n const theme = useTheme();\r\n const { YES, NO, MAYBE } = PlayerAvailabilityStatusTypes;\r\n\r\n const [playersToRemind, setPlayersToRemind] = useState([]);\r\n\r\n const handleAvailabilityReminderSwitch = (playerIds) => {\r\n const index = playersToRemind?.findIndex((selectedPlayerIds) =>\r\n selectedPlayerIds?.every((id) => playerIds.includes(id)));\r\n const removePlayerIds = index !== -1;\r\n if (removePlayerIds) {\r\n const updatedPlayersToRemind = [...playersToRemind];\r\n updatedPlayersToRemind?.splice(index, 1);\r\n setPlayersToRemind(updatedPlayersToRemind);\r\n } else {\r\n setPlayersToRemind([...playersToRemind, playerIds]);\r\n }\r\n };\r\n\r\n const isReminderSwitchChecked = (playerIds) => {\r\n return playersToRemind?.some((selectedPlayerIds) =>\r\n selectedPlayerIds?.every((id) => playerIds.includes(id)));\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n setPlayersToRemind([]);\r\n };\r\n\r\n const handleSendNotification = () => {\r\n onReminderChange({ teamMemberIds: playersToRemind?.flat() });\r\n onClose();\r\n setPlayersToRemind([]);\r\n };\r\n\r\n const getLabelForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return 'Yes';\r\n case MAYBE:\r\n return 'Maybe';\r\n case NO:\r\n return 'No';\r\n default:\r\n return 'No response';\r\n }\r\n };\r\n\r\n const groupedPlayersByAvailability = players.reduce((result, player) => {\r\n const statusTypeId = player.playerAvailabilityStatusTypeId;\r\n if (!result[statusTypeId]) {\r\n result[statusTypeId] = [];\r\n }\r\n result[statusTypeId].push(player.teamMemberId);\r\n return result;\r\n }, {});\r\n\r\n return (\r\n \r\n \r\n Send reminders to\r\n \r\n \r\n {Object.entries(groupedPlayersByAvailability).map(([status, ids]) => {\r\n return (\r\n \r\n \r\n {getLabelForAvailabilityStatus(parseInt(status))}\r\n {ids.length}\r\n \r\n handleAvailabilityReminderSwitch(ids)} />\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvailabilityReminderModal;\r\n","import React from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AvailabilityYesIcon, AvailabilityNoIcon, AvailabilityMaybeIcon, AvailabilityNotSetIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport IconButton from '@mui/material/IconButton';\r\nimport { PlayerAvailabilityStatusTypes } from '../../utils/types';\r\n\r\nconst PlayerAvailabilityIndicator = ({ availabilityStatus = null, onAvailabilityClick, isIconOnly = false }) => {\r\n const theme = useTheme();\r\n const { YES, MAYBE, NO } = PlayerAvailabilityStatusTypes;\r\n const iconSize = 24;\r\n\r\n const getButtonForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return ;\r\n case MAYBE:\r\n return ;\r\n case NO:\r\n return ;\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n const getIconForAvailabilityStatus = (status) => {\r\n switch (status) {\r\n case YES:\r\n return ;\r\n case MAYBE:\r\n return ;\r\n case NO:\r\n return ;\r\n default:\r\n return ;\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {isIconOnly ? (\r\n getIconForAvailabilityStatus(availabilityStatus)\r\n ) : (\r\n getButtonForAvailabilityStatus(availabilityStatus)\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PlayerAvailabilityIndicator;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport Paper from '@mui/material/Paper';\r\nimport { SharedUICategories, TypographySizes } from '../../../../utils/constants';\r\nimport { SportTypeIds } from '../../../../utils/types';\r\nimport { getPlayerAvatarImage } from '../../../../utils/helpers';\r\n\r\nimport LoadingIndicator from '../../../../components/LoadingIndicator';\r\nimport PlayerAvailabilityIndicator from '../../../../components/PlayerAvailabilityIndicator';\r\n\r\nconst PlayerTableRow = ({ rowData, labelId, onAvailabilityClick, isUserCaptain, isUserTeamMember }) => {\r\n const {\r\n doublesUtr,\r\n id,\r\n teamMemberId,\r\n name,\r\n playerAvailabilityStatusTypeId,\r\n profileImage,\r\n singlesRecord,\r\n doublesRecord,\r\n singlesUtr,\r\n utrp\r\n } = rowData;\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_BOOK } = TypographySizes;\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n const playerImage = getPlayerAvatarImage(profileImage);\r\n\r\n const handleOnAvailabilityClick = () => {\r\n onAvailabilityClick(teamMemberId);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {(isUserCaptain || isUserTeamMember) && (\r\n \r\n )}\r\n \r\n {isTennisMatch ? (\r\n <>\r\n \r\n {singlesUtr}\r\n \r\n \r\n {doublesUtr}\r\n \r\n \r\n ) : (\r\n \r\n {utrp}\r\n \r\n )}\r\n \r\n {singlesRecord}\r\n \r\n \r\n {doublesRecord}\r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nconst TeamTabTable = ({ headCells = [], tableData = [], isLoading, onAvailabilityClick, isUserCaptain, isUserTeamMember }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { XX_SMALL_MEDIUM_CAP } = TypographySizes;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {headCells.map((headCell, index) => (\r\n \r\n {headCell.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {tableData &&\r\n tableData\r\n .map((data, index) => {\r\n const labelId = `table-${index}`;\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default TeamTabTable;\r\n","import React from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Slide from '@mui/material/Slide';\r\nimport Box from '@mui/material/Box';\r\nimport Snackbar from '@mui/material/Snackbar';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst SuccessSnackbar = ({\r\n isOpen,\r\n onClose,\r\n title,\r\n message\r\n}) => {\r\n const theme = useTheme();\r\n return (\r\n \r\n \r\n {title}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SuccessSnackbar;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\n\r\nimport { Box } from '@mui/material';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport PlayerAvailabilityEditModal from './PlayerAvailabilityEditModal';\r\nimport PlayerAvailabilityReminderModal from './PlayerAvailabilityReminderModal';\r\nimport TeamTabTable from './TeamTabTable';\r\nimport SuccessSnackbar from '../../../components/SuccessSnackbar';\r\n\r\nimport { getPlayerDisplayUtr } from '../../../utils/display';\r\nimport { SportTypeIds } from '../../../utils/types';\r\nimport { sortPlayersByAvailability } from '../../../utils/helpers';\r\nimport {\r\n tennisTeamMatchHeadCells,\r\n pickleballTeamMatchHeadCells,\r\n tennisSubstituteTeamMatchHeadCells,\r\n pickleballSubstituteTeamMatchHeadCells,\r\n TypographySizes,\r\n SharedUICategories\r\n} from '../../../utils/constants';\r\n\r\nconst TeamTab = ({\r\n teamPlayers = [],\r\n isLoading,\r\n teamName,\r\n onAvailabilityChange,\r\n onReminderChange,\r\n displaySuccessSnackbar,\r\n onCloseSuccessSnackbar,\r\n isUserCaptain,\r\n isUserTeamMember\r\n}) => {\r\n const [players, setPlayers] = useState([]);\r\n const [showRemindersModal, setShowRemindersModal] = useState(false);\r\n const [showAvailabilityModal, setShowAvailabilityModal] = useState(false);\r\n const [availabilityIdToBeUpdated, setAvailabilityIdToBeUpdated] = useState();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const { PRIMARY, SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK, LARGE_BOOK } = TypographySizes;\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n useEffect(() => {\r\n const formattedPlayers = teamPlayers.map((player) => {\r\n const { rating } = getPlayerDisplayUtr(player);\r\n const { rating: doublesUtr } = getPlayerDisplayUtr(player, true);\r\n const {\r\n memberId,\r\n firstName,\r\n lastName,\r\n playerAvailabilityStatusTypeId,\r\n record,\r\n profileImage,\r\n isSubstitute,\r\n utrRange,\r\n teamMemberId,\r\n } = player || {};\r\n return {\r\n id: memberId,\r\n name: `${firstName} ${lastName}`,\r\n playerAvailabilityStatusTypeId,\r\n singlesRecord: record ? `${record?.singlesWins} - ${record?.singlesLosses}` : '-',\r\n doublesRecord: record ? `${record?.doublesWins} - ${record?.doublesLosses}` : '-',\r\n doublesUtr,\r\n profileImage,\r\n isSubstitute,\r\n singlesUtr: rating,\r\n teamMemberId,\r\n utrp: utrRange?.pickleballRatingDisplay || 'UR'\r\n };\r\n });\r\n setPlayers(formattedPlayers);\r\n }, [teamPlayers]);\r\n\r\n const handleOnSendRemindersClick = () => {\r\n setShowRemindersModal(true);\r\n };\r\n\r\n const handleOnCloseRemindersModal = () => {\r\n setShowRemindersModal(false);\r\n };\r\n\r\n const handleOnCloseAvailabilityModal = () => {\r\n setShowAvailabilityModal(false);\r\n };\r\n\r\n const handleOnAvailabilityClick = (teamMemberId) => {\r\n setAvailabilityIdToBeUpdated(teamMemberId);\r\n setShowAvailabilityModal(true);\r\n };\r\n\r\n const handleOnAvailabilityStatusChange = (status) => {\r\n handleOnCloseAvailabilityModal();\r\n onAvailabilityChange({ teamMemberId: availabilityIdToBeUpdated, availabilityStatus: status });\r\n };\r\n\r\n const filteredRosteredPlayers = players?.filter((player) => !player.isSubstitute);\r\n const filteredSubstitutePlayers = players?.filter((player) => player.isSubstitute);\r\n const headCells = isTennisMatch ? tennisTeamMatchHeadCells : pickleballTeamMatchHeadCells;\r\n const substituteHeadCells = isTennisMatch ? tennisSubstituteTeamMatchHeadCells : pickleballSubstituteTeamMatchHeadCells;\r\n const remindersPlayerData = [...filteredRosteredPlayers, ...filteredSubstitutePlayers];\r\n\r\n return (\r\n \r\n \r\n {teamName}\r\n {isUserCaptain && !!players.length && }\r\n \r\n {!players.length && (\r\n \r\n No players have been rostered on the team.\r\n \r\n )}\r\n {!!filteredRosteredPlayers?.length && (\r\n \r\n )}\r\n {!!filteredSubstitutePlayers?.length && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamTab;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport PlayerUtr from '../PlayerUtr';\r\nimport { getPlayerDisplayPickleballRating, getPlayerDisplayUtr } from '../../utils/display';\r\n\r\nconst PlayerRating = ({ player, isDoubles = false, isAppended = false }) => {\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n\r\n const { isVerified, rating } = isTennisMatch ? getPlayerDisplayUtr(player, isDoubles) : getPlayerDisplayPickleballRating(player);\r\n\r\n return isTennisMatch ? (\r\n \r\n ) : (\r\n {rating}\r\n );\r\n};\r\n\r\nexport default PlayerRating;\r\n","import React from 'react';\r\nimport { AvatarWithName, Typography } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Stack from '@mui/material/Stack';\r\n\r\nimport PlayerRating from '../PlayerRating';\r\nimport PlayerAvailabilityIndicator from '../PlayerAvailabilityIndicator';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport config from '../../config';\r\n\r\nconst LineupDropdownItem = ({ player }) => {\r\n const theme = useTheme();\r\n const { firstName, lastName, profileImage, record, playerAvailabilityStatusTypeId } = player || {};\r\n const { doublesWins, doublesLosses, singlesWins, singlesLosses } = record || {};\r\n const playerImage = `${config.cdnUrl}/v1/player/${profileImage}`;\r\n const name = `${firstName} ${lastName}`;\r\n const noRecord = '0 - 0';\r\n let totalPlayed = 0;\r\n let doublesRecord = noRecord;\r\n let singlesRecord = noRecord;\r\n\r\n if (record) {\r\n totalPlayed = doublesLosses + doublesWins + singlesLosses + singlesWins;\r\n doublesRecord = `${doublesWins} - ${doublesLosses}`;\r\n singlesRecord = `${singlesWins} - ${singlesLosses}`;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n {`Played: ${totalPlayed}`}\r\n {`SGLS: ${singlesRecord}`}\r\n {`DBLS: ${doublesRecord}`}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LineupDropdownItem;\r\n","import React from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline';\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport RemoveIcon from '@mui/icons-material/HighlightOff';\r\nimport Select from '@mui/material/Select';\r\n\r\nimport LineupDropdownItem from '../../LineupDropdownItem';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\n\r\nconst LineupAlternatesCard = ({\r\n teamName = '',\r\n roster = [],\r\n fields,\r\n register,\r\n name,\r\n teamId,\r\n error,\r\n onAddAlternate,\r\n onRemoveAlternate,\r\n isDisabled\r\n}) => {\r\n const handleOnAddAlternateClick = () => {\r\n onAddAlternate(teamId);\r\n };\r\n\r\n const handleOnRemoveAlternateClick = (indexToRemove) => {\r\n onRemoveAlternate(indexToRemove, teamId);\r\n };\r\n\r\n const getPlayerNameForSelection = (teamMemberId) => {\r\n const player = roster?.find((teamPlayer) => teamPlayer?.teamMemberId === teamMemberId);\r\n return `${player?.firstName} ${player?.lastName}`;\r\n };\r\n\r\n return (\r\n \r\n \r\n {`${teamName} Alternates`}\r\n \r\n \r\n \r\n {fields?.map((field, index) => (\r\n \r\n \r\n {`${teamName} alternate`}\r\n getPlayerNameForSelection(value)}\r\n sx={{ width: '100%' }}\r\n {...register(`${name}.${index}.teamMemberId`)}\r\n >\r\n {roster?.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n {fields?.length !== 1 && (\r\n handleOnRemoveAlternateClick(index)} aria-label=\"delete\">\r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LineupAlternatesCard;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Select from '@mui/material/Select';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\n\r\nimport LineupDropdownItem from '../../LineupDropdownItem';\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { MatchPositions, MatchPositionKeys } from '../../../utils/postScoreShared';\r\nimport { sortPlayersByAvailability } from '../../../utils/helpers';\r\n\r\nconst LineupCard = ({\r\n isDoubles = false,\r\n position1Team,\r\n position2Team,\r\n lineup,\r\n onPlayerChange,\r\n canEditPosition1,\r\n canEditPosition2,\r\n}) => {\r\n const { POSITION_1, POSITION_2 } = MatchPositions;\r\n const { MATCH_POSITION_1, MATCH_POSITION_2 } = MatchPositionKeys;\r\n const [currentLineup, setCurrentLineup] = useState();\r\n const [selectedPlayer1Position1, setSelectedPlayer1Position1] = useState();\r\n const [selectedPlayer2Position1, setSelectedPlayer2Position1] = useState();\r\n const [selectedPlayer1Position2, setSelectedPlayer1Position2] = useState();\r\n const [selectedPlayer2Position2, setSelectedPlayer2Position2] = useState();\r\n\r\n const cardTitle = `${isDoubles ? 'Doubles' : 'Singles'} line match ${lineup?.lineupPosition}`;\r\n const showBothPositions = canEditPosition1 && canEditPosition2;\r\n const position1Players = position1Team?.teamMembers;\r\n const position2Players = position2Team?.teamMembers;\r\n const position1TeamName = position1Team?.name;\r\n const position2TeamName = position2Team?.name;\r\n const teamName = canEditPosition1 && !canEditPosition2 ? position1TeamName : position2TeamName;\r\n\r\n const position = !showBothPositions && canEditPosition1 && !canEditPosition2 ? POSITION_1 : POSITION_2;\r\n\r\n useEffect(() => {\r\n if (lineup) {\r\n setCurrentLineup(lineup);\r\n setSelectedPlayer1Position1(lineup?.position1?.player1TeamMemberId);\r\n setSelectedPlayer2Position1(lineup?.position1?.player2TeamMemberId);\r\n setSelectedPlayer1Position2(lineup?.position2?.player1TeamMemberId);\r\n setSelectedPlayer2Position2(lineup?.position2?.player2TeamMemberId);\r\n }\r\n }, [lineup]);\r\n\r\n const handleOnPlayerChange = (event, teamPosition, isPlayerTwo = false) => {\r\n const isPosition1 = teamPosition === POSITION_1;\r\n const positionKey = isPosition1 ? MATCH_POSITION_1 : MATCH_POSITION_2;\r\n const positionTeamId = isPosition1 ? position1Team?.teamId : position2Team?.teamId;\r\n const playerTeamMemberId = event.target.value;\r\n\r\n if (isPosition1 && !isPlayerTwo) {\r\n setSelectedPlayer1Position1(event.target.value);\r\n } else if (isPosition1 && isPlayerTwo) {\r\n setSelectedPlayer2Position1(event.target.value);\r\n } else if (!isPosition1 && !isPlayerTwo) {\r\n setSelectedPlayer1Position2(event.target.value);\r\n } else if (!isPosition1 && isPlayerTwo) {\r\n setSelectedPlayer2Position2(event.target.value);\r\n }\r\n\r\n const updatedLineup = {\r\n ...currentLineup,\r\n [positionKey]: {\r\n teamId: positionTeamId,\r\n player1TeamMemberId: isPlayerTwo ? currentLineup[positionKey]?.player1TeamMemberId : playerTeamMemberId,\r\n player2TeamMemberId: isPlayerTwo ? playerTeamMemberId : currentLineup[positionKey]?.player2TeamMemberId\r\n }\r\n };\r\n\r\n setCurrentLineup(updatedLineup);\r\n onPlayerChange({ updatedLineup, playerTeamMemberId, teamId: positionTeamId });\r\n };\r\n\r\n const getPlayerNameForSelection = (teamMemberId, teamPosition) => {\r\n const isPosition1 = teamPosition === POSITION_1;\r\n const team = isPosition1 ? position1Players : position2Players;\r\n const player = team.find((teamPlayer) => teamPlayer?.teamMemberId === teamMemberId);\r\n\r\n return `${player?.firstName} ${player?.lastName}`;\r\n };\r\n\r\n const sortedPosition2Players = useMemo(() => {\r\n return sortPlayersByAvailability(position2Players) || [];\r\n }, [position2Players]);\r\n\r\n const sortedPosition1Players = useMemo(() => {\r\n return sortPlayersByAvailability(position1Players) || [];\r\n }, [position1Players]);\r\n\r\n const doublesPlayer2Value = position === POSITION_1 ? selectedPlayer2Position1 : selectedPlayer2Position2;\r\n const doublesPlayer1Value = position === POSITION_1 ? selectedPlayer1Position1 : selectedPlayer1Position2;\r\n const singlesPlayerValue = position === POSITION_1 ? selectedPlayer1Position1 : selectedPlayer1Position2;\r\n const players = canEditPosition1 && !canEditPosition2 ? sortedPosition1Players : sortedPosition2Players;\r\n\r\n return (\r\n \r\n \r\n {cardTitle}\r\n \r\n \r\n {isDoubles ? (\r\n \r\n {showBothPositions ? (\r\n \r\n \r\n {position2TeamName}\r\n handleOnPlayerChange(event, POSITION_2)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_2)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition2Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position2TeamName}\r\n handleOnPlayerChange(event, POSITION_2, true)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_2)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition2Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position1TeamName}\r\n handleOnPlayerChange(event, POSITION_1)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_1)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition1Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position1TeamName}\r\n handleOnPlayerChange(event, POSITION_1, true)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_1)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition1Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {teamName}\r\n handleOnPlayerChange(event, position)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, position)}\r\n >\r\n \r\n None\r\n \r\n {players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {teamName}\r\n handleOnPlayerChange(event, position, true)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, position)}\r\n >\r\n \r\n None\r\n \r\n {players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n ) : (\r\n \r\n {showBothPositions ? (\r\n \r\n \r\n {position2TeamName}\r\n handleOnPlayerChange(event, POSITION_2)}\r\n label={position2TeamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_2)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition2Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {position1TeamName}\r\n handleOnPlayerChange(event, POSITION_1)}\r\n label={position1TeamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, POSITION_1)}\r\n >\r\n \r\n None\r\n \r\n {sortedPosition1Players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n {teamName}\r\n handleOnPlayerChange(event, position)}\r\n label={teamName}\r\n renderValue={(value) => getPlayerNameForSelection(value, position)}\r\n >\r\n \r\n None\r\n \r\n {players.map((player) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LineupCard;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport { useForm, useFieldArray } from 'react-hook-form';\r\n\r\nimport AppBar from '@mui/material/AppBar';\r\nimport Box from '@mui/material/Box';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\nimport Container from '@mui/material/Container';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Slide from '@mui/material/Slide';\r\nimport Toolbar from '@mui/material/Toolbar';\r\n\r\nimport LineupAlternatesCard from '../Cards/LineupAlternatesCard';\r\nimport LineupCard from '../Cards/LineupCard';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { MatchPositions } from '../../utils/postScoreShared';\r\nimport { getAlternateIds, validateLineups } from '../../utils/helpers';\r\nimport { useUpdateTeamMatchLineupsMutation, useGetTeamMatchLineupsQuery } from '../../api/leaguesApi';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport LoadingIndicator from '../LoadingIndicator';\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst POSITION_1_ALTERNATES = 'position1Alternates';\r\nconst POSITION_2_ALTERNATES = 'position2Alternates';\r\nconst APPENDED_ALTERNATE = { teamMemberId: '' };\r\n\r\nconst SetLineupModal = ({\r\n onClose,\r\n isOpen,\r\n position1Team,\r\n position2Team,\r\n}) => {\r\n const theme = useTheme();\r\n const dispatch = useDispatch();\r\n const { teamMatchId } = useParams();\r\n const { DISPLAY, PRIMARY } = SharedUICategories;\r\n const { MEDIUM_BOOK, } = TypographySizes;\r\n const [matchLineups, setMatchLineups] = useState([]);\r\n const [position1AlternatePlayers, setPosition1AlternatePlayers] = useState([]);\r\n const [position2AlternatePlayers, setPosition2AlternatePlayers] = useState([]);\r\n const [isAlternatesDisabled, setIsAlternatesDisabled] = useState(false);\r\n\r\n const { data: lineupData, isFetching, error } = useGetTeamMatchLineupsQuery(teamMatchId);\r\n const [updateLineups] = useUpdateTeamMatchLineupsMutation();\r\n const isPosition1Lineup = lineupData?.canEditPosition1 && !lineupData?.canEditPosition2;\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n position1Alternates: [{ teamMemberId: '' }],\r\n position2Alternates: [{ teamMemberId: '' }]\r\n };\r\n const { register, control, handleSubmit, formState: { errors }, getValues, resetField } = useForm({ defaultValues, mode: 'all' });\r\n const { fields: position1Fields, append: position1Append, remove: position1Remove } = useFieldArray({\r\n control,\r\n name: POSITION_1_ALTERNATES,\r\n rules: { minLength: 1 }\r\n });\r\n const { fields: position2Fields, append: position2Append, remove: position2Remove } = useFieldArray({\r\n control,\r\n name: POSITION_2_ALTERNATES,\r\n rules: { minLength: 1 }\r\n });\r\n\r\n const mappedAlternateIds = (alternates) => {\r\n return alternates?.map((alternate) => ({ teamMemberId: alternate?.teamMemberId }));\r\n };\r\n\r\n useEffect(() => {\r\n if (lineupData) {\r\n setMatchLineups([...lineupData.singlesLineups, ...lineupData.doublesLineups]);\r\n\r\n if (lineupData?.position1Alternates?.alternates?.length) {\r\n const position1Ids = mappedAlternateIds(lineupData.position1Alternates.alternates);\r\n resetField(POSITION_1_ALTERNATES, { defaultValue: position1Ids });\r\n }\r\n if (lineupData?.position2Alternates?.alternates?.length) {\r\n const position2Ids = mappedAlternateIds(lineupData.position2Alternates.alternates);\r\n resetField(POSITION_2_ALTERNATES, { defaultValue: position2Ids });\r\n }\r\n }\r\n }, [lineupData]);\r\n\r\n useEffect(() => {\r\n if (position1Team && position2Team) {\r\n setPosition1AlternatePlayers(position1Team?.teamMembers);\r\n setPosition2AlternatePlayers(position2Team?.teamMembers);\r\n }\r\n }, [position1Team, position2Team]);\r\n\r\n useEffect(() => {\r\n if (matchLineups) {\r\n setIsAlternatesDisabled(true);\r\n const lineupTeamMemberIds = matchLineups.reduce((lineupIds, lineup) => {\r\n if (!lineupIds?.position1Ids && !lineupIds?.position2Ids) {\r\n lineupIds.position1Ids = [];\r\n lineupIds.position2Ids = [];\r\n }\r\n\r\n if (lineupIds?.position1Ids?.length || lineupIds?.position2Ids?.length) {\r\n setIsAlternatesDisabled(false);\r\n }\r\n\r\n if (lineup.position1?.player1TeamMemberId) {\r\n lineupIds.position1Ids.push(lineup.position1?.player1TeamMemberId);\r\n }\r\n if (lineup.position1?.player2TeamMemberId) {\r\n lineupIds.position1Ids.push(lineup.position1?.player2TeamMemberId);\r\n }\r\n\r\n if (lineup.position2?.player1TeamMemberId) {\r\n lineupIds.position2Ids.push(lineup.position2?.player1TeamMemberId);\r\n }\r\n if (lineup.position2?.player2TeamMemberId) {\r\n lineupIds.position2Ids.push(lineup.position2?.player2TeamMemberId);\r\n }\r\n\r\n return lineupIds;\r\n }, {});\r\n\r\n const position1Alternates = position1Team?.teamMembers?.filter((player) => !lineupTeamMemberIds?.position1Ids?.includes(player.teamMemberId));\r\n const position2Alternates = position2Team?.teamMembers?.filter((player) => !lineupTeamMemberIds?.position2Ids?.includes(player.teamMemberId));\r\n setPosition1AlternatePlayers(position1Alternates);\r\n setPosition2AlternatePlayers(position2Alternates);\r\n }\r\n }, [matchLineups]);\r\n\r\n const handleOnFormSubmit = async (formValues) => {\r\n const position1AlternateIds = getAlternateIds(formValues?.position1Alternates);\r\n const position2AlternateIds = getAlternateIds(formValues?.position2Alternates);\r\n\r\n const lineups = {\r\n lineups: matchLineups,\r\n position1TeamAlternatePlayers: {\r\n teamId: position1Team?.teamId,\r\n teamMemberIds: position1AlternateIds\r\n },\r\n position2TeamAlternatePlayers: {\r\n teamId: position2Team?.teamId,\r\n teamMemberIds: position2AlternateIds\r\n },\r\n };\r\n\r\n const validationError = validateLineups(lineups);\r\n\r\n if (validationError) {\r\n dispatch(showErrorPopup({ message: validationError }));\r\n return;\r\n }\r\n\r\n try {\r\n await updateLineups({ teamMatchId, lineups }).unwrap();\r\n onClose();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleOnPlayerChange = ({ updatedLineup, playerTeamMemberId, teamId }) => {\r\n const foundIndex = matchLineups.findIndex((lineup) => lineup?.playerMatchId === updatedLineup?.playerMatchId);\r\n const isExistingLineup = foundIndex !== -1;\r\n const updatedMatchLineups = [...matchLineups];\r\n const alternates = getValues();\r\n\r\n if (isExistingLineup) {\r\n updatedMatchLineups[foundIndex] = updatedLineup;\r\n setMatchLineups(updatedMatchLineups);\r\n } else {\r\n const updatedLineups = [...updatedMatchLineups, updatedLineup];\r\n setMatchLineups(updatedLineups);\r\n }\r\n\r\n if (teamId === position1Team?.teamId) {\r\n const position1AlternateIds = getAlternateIds(alternates?.position1Alternates);\r\n if (position1AlternateIds.includes(playerTeamMemberId)) {\r\n const playerIndex = alternates?.position1Alternates?.findIndex((alternate) => alternate.teamMemberId === playerTeamMemberId);\r\n position1Remove(playerIndex);\r\n\r\n if (playerIndex === 0) {\r\n position1Append(APPENDED_ALTERNATE);\r\n }\r\n }\r\n } else if (teamId === position2Team?.teamId) {\r\n const position2AlternateIds = getAlternateIds(alternates?.position2Alternates);\r\n if (position2AlternateIds.includes(playerTeamMemberId)) {\r\n const playerIndex = alternates?.position2Alternates?.findIndex((alternate) => alternate.teamMemberId === playerTeamMemberId);\r\n position2Remove(playerIndex);\r\n\r\n if (playerIndex === 0) {\r\n position2Append(APPENDED_ALTERNATE);\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleOnAddAlternate = (teamId) => {\r\n const isPosition1Team = teamId === position1Team?.teamId;\r\n\r\n if (isPosition1Team) {\r\n position1Append(APPENDED_ALTERNATE);\r\n } else {\r\n position2Append(APPENDED_ALTERNATE);\r\n }\r\n };\r\n\r\n const handleOnRemoveAlternate = (indexToRemove, teamId) => {\r\n const isPosition1Team = teamId === position1Team?.teamId;\r\n\r\n if (isPosition1Team) {\r\n position1Remove(indexToRemove);\r\n } else {\r\n position2Remove(indexToRemove);\r\n }\r\n };\r\n\r\n const alternatePositionFields = isPosition1Lineup ? position1Fields : position2Fields;\r\n const alternateError = isPosition1Lineup ? !!errors.position1Alternates : !!errors.position2Alternates;\r\n const alternateFieldName = isPosition1Lineup ? POSITION_1_ALTERNATES : POSITION_2_ALTERNATES;\r\n const alternateRoster = isPosition1Lineup ? position1AlternatePlayers : position2AlternatePlayers;\r\n const alternateTeamName = isPosition1Lineup ? position1Team?.name : position2Team?.name;\r\n const alternateTeamId = isPosition1Lineup ? position1Team?.teamId : position2Team?.teamId;\r\n\r\n return (\r\n \r\n {isFetching ? (\r\n \r\n ) : (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n Set lines\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {lineupData?.singlesLineups?.map((lineup) => (\r\n \r\n \r\n \r\n ))}\r\n {lineupData?.doublesLineups?.map((lineup) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n {lineupData?.canEditPosition1 && lineupData?.canEditPosition2 ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default SetLineupModal;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { useGetPlayerMatchesQuery, useUpdateTeamMatchLineupStatusMutation } from '../api/leaguesApi';\r\nimport { LineupStatusType } from '../utils/constants';\r\n\r\nconst LineupStatusMessaging = {\r\n locked: {\r\n title: 'Lineups locked!',\r\n message: 'To make changes, unlock this lineup',\r\n notifyPlayersMessage: 'Notifications have been sent to all players. To make changes, unlock this lineup.'\r\n },\r\n published: {\r\n title: 'Lineups published!',\r\n message: 'Your lineup is live. Notifications will go out when both teams\\' lineups are visible.'\r\n }\r\n};\r\n\r\nexport const usePlayerMatches = (teamMatchId) => {\r\n const dispatch = useDispatch();\r\n const { LOCKED, PUBLISHED } = LineupStatusType;\r\n const [playerMatches, setPlayerMatches] = useState(null);\r\n const [lineupData, setLineupData] = useState(null);\r\n const [canUserViewLineups, setCanUserViewLineup] = useState(false);\r\n const [showCompletedSessionWarning, setShowCompletedSessionWarning] = useState();\r\n const [lineupStatusConfirmation, setLineupStatusConfirmation] = useState({ title: '', message: '', showConfirmation: false });\r\n\r\n const { data, isFetching: isLoadingPlayerMatches, error } = useGetPlayerMatchesQuery(teamMatchId);\r\n const [updateLineupStatus] = useUpdateTeamMatchLineupStatusMutation();\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n useEffect(() => {\r\n if (data) {\r\n setPlayerMatches(data);\r\n const { showVerifiedCompletedSessionWarning, lineups } = data || {};\r\n setShowCompletedSessionWarning(showVerifiedCompletedSessionWarning);\r\n\r\n if (lineups) {\r\n setLineupData(lineups);\r\n setCanUserViewLineup(lineups?.canViewLineups);\r\n }\r\n }\r\n }, [data]);\r\n\r\n const getSnackbarConfirmationNotification = (status, isNotifyingPlayers) => {\r\n const { locked, published } = LineupStatusMessaging;\r\n const isCurrentStatusPublished = lineupData?.statusId === PUBLISHED;\r\n\r\n if (isNotifyingPlayers && status === LOCKED && !isCurrentStatusPublished) {\r\n return { title: locked.title, message: locked.notifyPlayersMessage, showConfirmation: true };\r\n }\r\n if (!isNotifyingPlayers && status === LOCKED && !isCurrentStatusPublished) {\r\n return { title: locked.title, message: locked.message, showConfirmation: true };\r\n }\r\n if (status === PUBLISHED) {\r\n return { title: published.title, message: published.message, showConfirmation: true };\r\n }\r\n\r\n return lineupStatusConfirmation;\r\n };\r\n\r\n const handleOnLineupStatusChange = async ({ status, isNotifyingPlayers }) => {\r\n try {\r\n await updateLineupStatus({\r\n teamMatchId: parseInt(teamMatchId),\r\n lineupStatusId: status,\r\n notifyPlayersWhenLocked: isNotifyingPlayers\r\n }).unwrap();\r\n const confirmation = getSnackbarConfirmationNotification(status, isNotifyingPlayers);\r\n setLineupStatusConfirmation(confirmation);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnCloseStatusConfirmation = () => {\r\n setLineupStatusConfirmation({ title: '', message: '', showConfirmation: false });\r\n };\r\n\r\n return {\r\n playerMatches,\r\n showCompletedSessionWarning,\r\n isLoadingPlayerMatches,\r\n lineupData,\r\n handleOnLineupStatusChange,\r\n handleOnCloseStatusConfirmation,\r\n lineupStatusConfirmation,\r\n canUserViewLineups\r\n };\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport moment from 'moment';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport Container from '@mui/material/Container';\r\nimport Tab from '@mui/material/Tab';\r\nimport TabContext from '@mui/lab/TabContext';\r\nimport TabList from '@mui/lab/TabList';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\n\r\nimport CompletedSessionModal from './CompletedSessionModal';\r\nimport LineupControls from './LineupControls';\r\nimport LocationTab from './LocationTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport MatchEditModal from './MatchEditModal';\r\nimport PlayerAvailabilityResponse from '../../components/PlayerAvailabilityResponse';\r\nimport Popup from '../../components/Popups/Popup';\r\nimport PostTennisScoreModal from './PostTennisScoreModal';\r\nimport PostPickleballScoreModal from './PostPickleballScoreModal';\r\nimport TeamMatchScoreCard from '../../components/Cards/TeamMatchScoreCard';\r\nimport TeamMatchAlternatesCard from '../../components/Cards/TeamMatchAlternatesCard';\r\nimport TeamMatchSummary from './TeamMatchSummary';\r\nimport TeamTab from './TeamTab';\r\nimport SetLineupModal from '../../components/Modals/SetLineupModal';\r\nimport SuccessSnackbar from '../../components/SuccessSnackbar';\r\n\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport { LeagueTabs, LineupStatusType } from '../../utils/constants';\r\nimport {\r\n useGetLatestTeamMatchUpdateQuery,\r\n useGetMatchSummaryQuery,\r\n useUpdateTeamMatchSummaryMutation,\r\n usePostPlayerMatchResultMutation,\r\n useUpdatePlayerMatchResultMutation,\r\n useUpdatePlayerAvailabilityStatusMutation,\r\n useUpdatePlayerReminderStatusMutation,\r\n useClearTeamMatchMutation,\r\n} from '../../api/leaguesApi';\r\nimport { useGetTeamMatchRosters } from '../../hooks/useGetTeamMatchRosters';\r\nimport { usePlayerMatches } from '../../hooks/usePlayerMatches';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst TeamMatchPage = () => {\r\n const dispatch = useDispatch();\r\n const theme = useTheme();\r\n const { LINES, LOCATION, AWAY_TEAM, HOME_TEAM } = LeagueTabs;\r\n const { teamMatchId } = useParams();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n\r\n const [activeTab, setActiveTab] = useState(LINES);\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showPostScoreModal, setShowPostScoreModal] = useState(false);\r\n const [selectedMatch, setSelectedMatch] = useState();\r\n const [teamScores, setTeamScores] = useState({ position1: 0, position2: 0 });\r\n const [pollingInterval, setPollingInterval] = useState(0);\r\n const [isPostingScore, setIsPostingScore] = useState(false);\r\n const [winningTeamId, setWinningTeamId] = useState(null);\r\n const [timestamp, setTimestamp] = useState(null);\r\n const [showCompletedSessionModal, setShowCompletedSessionModal] = useState(false);\r\n const [showLineupModal, setShowLineupModal] = useState(false);\r\n const [showClearMatchModal, setShowClearMatchModal] = useState(false);\r\n const [showAvailabilityReminderSnackbar, setShowAvailabilityReminderSnackbar] = useState(false);\r\n const [matchToBeCleared, setMatchToBeCleared] = useState(null);\r\n const [showLineupNotificationModal, setShowLineupNotificationModal] = useState(false);\r\n const [updatedLineupStatus, setUpdatedLineupStatus] = useState(null);\r\n const [hasMatchDatePassed, setHasMatchDatePassed] = useState(false);\r\n const [isAttemptingToPostScore, setIsAttemptingToPostScore] = useState(false);\r\n const [teamMatchDate, setTeamMatchDate] = useState(null);\r\n\r\n const { position1Team, position2Team, userAvailabilityData, userTeamMemberIds, isLoadingRosters, isUserOnBothTeams } =\r\n useGetTeamMatchRosters(teamMatchId);\r\n const { data, isFetching, error, refetch: refetchMatchSummary } = useGetMatchSummaryQuery(teamMatchId);\r\n const { data: latestResultData, error: latestResultError } = useGetLatestTeamMatchUpdateQuery(\r\n { teamMatchId, timestamp },\r\n { pollingInterval, skip: pollingInterval === 0 }\r\n );\r\n const {\r\n playerMatches,\r\n showCompletedSessionWarning,\r\n isLoadingPlayerMatches,\r\n lineupData,\r\n handleOnLineupStatusChange,\r\n lineupStatusConfirmation,\r\n handleOnCloseStatusConfirmation,\r\n canUserViewLineups,\r\n } = usePlayerMatches(teamMatchId);\r\n\r\n const [postPlayerMatchResult] = usePostPlayerMatchResultMutation();\r\n const [updatePlayerMatchResult] = useUpdatePlayerMatchResultMutation();\r\n const [updateTeamMatchSummary, { isLoading: isUpdatingSummary }] = useUpdateTeamMatchSummaryMutation();\r\n const [updatePlayerAvailability, { error: playerAvailabilityError }] = useUpdatePlayerAvailabilityStatusMutation();\r\n const [updatePlayerReminder] = useUpdatePlayerReminderStatusMutation();\r\n const [clearTeamMatch, { isLoading: isClearingTeamMatch }] = useClearTeamMatchMutation();\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n if (latestResultError) {\r\n dispatch(showErrorPopup(latestResultError));\r\n }\r\n\r\n const sortMatchesByLineupPosition = (matches) => {\r\n return [...matches].sort((a, b) => (a.lineupPosition > b.lineupPosition ? 1 : -1));\r\n };\r\n\r\n useEffect(() => {\r\n if (data) {\r\n if (data.position1Team?.isWinner) {\r\n setWinningTeamId(data.position1Team?.teamId);\r\n } else if (data.position2Team?.isWinner) {\r\n setWinningTeamId(data.position2Team?.teamId);\r\n } else {\r\n setWinningTeamId(null);\r\n }\r\n\r\n if (data?.resultsLastUpdatedMs) {\r\n setTimestamp(data?.resultsLastUpdatedMs);\r\n }\r\n\r\n if (data?.matchDate) {\r\n const isNowAfterMatchDate = moment.utc().isAfter(data.matchDate);\r\n setHasMatchDatePassed(isNowAfterMatchDate);\r\n setTeamMatchDate(data.matchDate);\r\n }\r\n\r\n const position1 = data?.position1Team?.playerMatchPoints;\r\n const position2 = data?.position2Team?.playerMatchPoints;\r\n setTeamScores({ position1, position2 });\r\n dispatch(setSportTypeId(data?.sportTypeId));\r\n }\r\n }, [data]);\r\n\r\n useEffect(() => {\r\n if (latestResultData) {\r\n const isUpdated = latestResultData?.update;\r\n if (isUpdated) {\r\n setPollingInterval(0);\r\n setIsPostingScore(false);\r\n refetchMatchSummary();\r\n }\r\n }\r\n }, [latestResultData]);\r\n\r\n const handleOnEditClicked = () => {\r\n setShowEditModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditModal(false);\r\n };\r\n\r\n const handleOnEditSubmit = async (teamMatch) => {\r\n setShowEditModal(false);\r\n\r\n try {\r\n await updateTeamMatchSummary({ teamMatchId: data?.teamMatchId, teamMatch }).unwrap();\r\n if (isAttemptingToPostScore) {\r\n setIsAttemptingToPostScore(false);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const showDuplicatePlayersError = () => {\r\n dispatch(showPopup({ title: 'Match Error', message: 'A player can only be listed once in an individual match' }));\r\n };\r\n\r\n const showInvalidPlayerCountError = () => {\r\n dispatch(showPopup({ title: 'Match Error', message: 'The amount of players set for this outcome is invalid.' }));\r\n };\r\n\r\n const handleOnCloseScoreModal = () => {\r\n setShowPostScoreModal(false);\r\n };\r\n\r\n const handleOnSaveMatchScore = async (playerMatchId, results, isUpdating) => {\r\n if (isPostingScore) {\r\n setPollingInterval(0);\r\n }\r\n\r\n setShowPostScoreModal(false);\r\n setIsPostingScore(true);\r\n\r\n try {\r\n if (isUpdating) {\r\n await updatePlayerMatchResult({ playerMatchId, playerMatch: results, teamMatchId }).unwrap();\r\n } else {\r\n await postPlayerMatchResult({ playerMatchId, playerMatch: results, teamMatchId }).unwrap();\r\n }\r\n setPollingInterval(3000);\r\n } catch (apiError) {\r\n setPollingInterval(0);\r\n dispatch(showErrorPopup(apiError));\r\n setIsPostingScore(false);\r\n }\r\n };\r\n\r\n const handleOnEditScoreClicked = (match, isDoubles) => {\r\n if (showCompletedSessionWarning) {\r\n setShowCompletedSessionModal(true);\r\n return;\r\n }\r\n\r\n if (!teamMatchDate) {\r\n setIsAttemptingToPostScore(true);\r\n setShowEditModal(true);\r\n return;\r\n }\r\n\r\n const singlesMatches = playerMatches?.singlePlayerMatches.length ? playerMatches?.singlePlayerMatches : [];\r\n const doublesMatches = playerMatches?.doublesPlayerMatches.length ? playerMatches?.doublesPlayerMatches : [];\r\n const allMatches = [...singlesMatches, ...doublesMatches];\r\n const matchToBeUpdated = allMatches?.find((playerMatch) => playerMatch.id === match.id);\r\n const selectedMatchToBeUpdated = {\r\n ...matchToBeUpdated,\r\n isDoubles,\r\n scoringFormatTypeId: isDoubles ? playerMatches?.doublesScoringFormatTypeId : playerMatches?.singlesScoringFormatTypeId,\r\n };\r\n\r\n setSelectedMatch(selectedMatchToBeUpdated);\r\n setShowPostScoreModal(true);\r\n };\r\n\r\n const handleOnCloseCompletedSessionModal = () => {\r\n setShowCompletedSessionModal(false);\r\n };\r\n\r\n const handleOnCloseSuccessSnackbar = () => {\r\n setShowAvailabilityReminderSnackbar(false);\r\n };\r\n\r\n const handleOnTabChange = (_, value) => {\r\n setActiveTab(value);\r\n };\r\n\r\n const handleOnPlayerAvailabilityChange = async ({ teamMemberId, availabilityStatus }) => {\r\n let teamMemberIds = [teamMemberId];\r\n\r\n if (isUserOnBothTeams) {\r\n teamMemberIds = userTeamMemberIds;\r\n }\r\n\r\n try {\r\n await updatePlayerAvailability({\r\n teamMemberIds,\r\n playerAvailabilityStatusId: availabilityStatus,\r\n teamMatchId: parseInt(teamMatchId),\r\n }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnShowLineupModal = () => {\r\n setShowLineupModal(true);\r\n };\r\n\r\n const handleOnCloseLineupModal = () => {\r\n setShowLineupModal(false);\r\n };\r\n\r\n const handleOnReminderChange = async ({ teamMemberIds, teamId }) => {\r\n try {\r\n await updatePlayerReminder({\r\n teamId: parseInt(teamId),\r\n teamMemberIds,\r\n teamMatchId: parseInt(teamMatchId),\r\n }).unwrap();\r\n setShowAvailabilityReminderSnackbar(true);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnClearMatchClick = (match) => {\r\n setMatchToBeCleared(match);\r\n setShowClearMatchModal(true);\r\n };\r\n\r\n const handleOnConfirmClearMatch = async () => {\r\n if (isPostingScore) {\r\n setPollingInterval(0);\r\n }\r\n\r\n setShowClearMatchModal(false);\r\n setIsPostingScore(true);\r\n\r\n try {\r\n await clearTeamMatch({ teamMatchId: matchToBeCleared?.id }).unwrap();\r\n setPollingInterval(3000);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n setIsPostingScore(false);\r\n setPollingInterval(0);\r\n }\r\n };\r\n\r\n const handleOnLineupStatusClick = (status) => {\r\n setUpdatedLineupStatus(status);\r\n\r\n if (status === LineupStatusType.LOCKED && lineupData.statusId !== LineupStatusType.PUBLISHED) {\r\n setShowLineupNotificationModal(true);\r\n } else {\r\n handleOnLineupStatusChange({ status, isNotifyingPlayers: false });\r\n }\r\n };\r\n\r\n const handleOnLineupModalAction = (isNotifyingPlayers) => {\r\n setShowLineupNotificationModal(false);\r\n handleOnLineupStatusChange({ status: updatedLineupStatus, isNotifyingPlayers });\r\n };\r\n\r\n const handleOnCloseClearMatchModal = () => {\r\n setShowClearMatchModal(false);\r\n };\r\n\r\n const singleMatchesToDisplay = playerMatches?.singlePlayerMatches.length\r\n ? sortMatchesByLineupPosition([...(playerMatches?.singlePlayerMatches || {})])\r\n : [];\r\n const doubleMatchesToDisplay = playerMatches?.doublesPlayerMatches.length\r\n ? sortMatchesByLineupPosition([...(playerMatches?.doublesPlayerMatches || {})])\r\n : [];\r\n const showPosition2Alternates = !!playerMatches?.position2TeamAlternates?.alternatePlayers?.length;\r\n const showPosition1Alternates = !!playerMatches?.position1TeamAlternates?.alternatePlayers?.length;\r\n const tabs = [LINES, AWAY_TEAM, HOME_TEAM, LOCATION];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {userAvailabilityData && (\r\n \r\n \r\n \r\n )}\r\n {data && (\r\n \r\n \r\n {tabs.map((tab) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {isLoadingPlayerMatches || isClearingTeamMatch ? (\r\n \r\n ) : (\r\n \r\n {playerMatches && data && (\r\n \r\n \r\n {(canUserViewLineups || hasMatchDatePassed) && (\r\n <>\r\n {!!singleMatchesToDisplay.length &&\r\n singleMatchesToDisplay.map((match) => (\r\n \r\n \r\n \r\n ))}\r\n {!!doubleMatchesToDisplay.length &&\r\n doubleMatchesToDisplay.map((match) => (\r\n \r\n \r\n \r\n ))}\r\n {showPosition2Alternates && (\r\n \r\n \r\n \r\n )}\r\n {showPosition1Alternates && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n handleOnReminderChange({ teamMemberIds, teamId: position2Team?.teamId })}\r\n displaySuccessSnackbar={showAvailabilityReminderSnackbar}\r\n onCloseSuccessSnackbar={handleOnCloseSuccessSnackbar}\r\n isUserCaptain={position2Team?.requestingMember?.isCaptain}\r\n isUserTeamMember={!!position2Team?.requestingMember?.teamMemberId}\r\n />\r\n \r\n \r\n handleOnReminderChange({ teamMemberIds, teamId: position1Team?.teamId })}\r\n displaySuccessSnackbar={showAvailabilityReminderSnackbar}\r\n onCloseSuccessSnackbar={handleOnCloseSuccessSnackbar}\r\n isUserCaptain={position1Team?.requestingMember?.isCaptain}\r\n isUserTeamMember={!!position1Team?.requestingMember?.teamMemberId}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {sportTypeId === SportTypeIds.TENNIS ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {showLineupModal && (\r\n \r\n )}\r\n \r\n handleOnLineupModalAction(true)}\r\n actionLabel=\"Yes\"\r\n buttonLabel=\"No\"\r\n open={showLineupNotificationModal}\r\n onClose={() => handleOnLineupModalAction(false)}\r\n title=\"Notify players?\"\r\n message=\"Would you like to notify players that the lines have been locked?\"\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default TeamMatchPage;\r\n","import { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport { showErrorPopup } from '../redux/errorPopupSlice';\r\nimport { useGetTeamMatchRostersQuery } from '../api/leaguesApi';\r\n\r\nexport const useGetTeamMatchRosters = (teamMatchId) => {\r\n const dispatch = useDispatch();\r\n const [position1Team, setPosition1Team] = useState([]);\r\n const [position2Team, setPosition2Team] = useState([]);\r\n const [userAvailabilityData, setUserAvailabilityData] = useState();\r\n const [isUserOnBothTeams, setIsUserOnBothTeams] = useState(false);\r\n const [userTeamMemberIds, setUserTeamMemberIds] = useState(false);\r\n\r\n const { data: rosters, error, isLoading: isLoadingRosters } = useGetTeamMatchRostersQuery(teamMatchId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n useEffect(() => {\r\n if (rosters) {\r\n const { position1Team: position1, position2Team: position2 } = rosters;\r\n\r\n if (position1?.requestingMember?.teamMemberId && position2?.requestingMember?.teamMemberId === null) {\r\n setUserAvailabilityData(position1?.requestingMember);\r\n } else if (position2?.requestingMember?.teamMemberId && position1?.requestingMember?.teamMemberId === null) {\r\n setUserAvailabilityData(position2?.requestingMember);\r\n } else if (position1?.requestingMember?.teamMemberId && position2?.requestingMember?.teamMemberId) {\r\n setUserAvailabilityData(position1?.requestingMember);\r\n setIsUserOnBothTeams(true);\r\n setUserTeamMemberIds([position1?.requestingMember?.teamMemberId, position2?.requestingMember?.teamMemberId]);\r\n }\r\n\r\n setPosition1Team(position1);\r\n setPosition2Team(position2);\r\n }\r\n }, [rosters]);\r\n\r\n return { position1Team, position2Team, userAvailabilityData, userTeamMemberIds, isLoadingRosters, isUserOnBothTeams };\r\n};\r\n","import * as React from 'react';\r\nimport MuiAlert from '@mui/material/Alert';\r\n\r\nconst Alert = React.forwardRef(function Alert(props, ref) {\r\n return ;\r\n});\r\n\r\nexport default Alert;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch } from 'react-redux';\r\nimport moment from 'moment';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport FullPageModal from './FullPageModal';\r\nimport Input from '../Form/Input';\r\nimport Location from '../Form/Location';\r\nimport PasswordInput from '../Form/PasswordInput';\r\nimport Select from '../Form/Select';\r\nimport TimePicker from '../Form/TimePicker';\r\n\r\nimport { defaultGridSpacing, SharedUICategories, TypographySizes } from '../../utils/constants';\r\nimport { getAdjustedTimeOfDay } from '../../utils/display';\r\nimport { getLocationData } from '../../utils/location';\r\nimport { openClosedStatusTypes, weekdays, LeagueSessionTypes } from '../../utils/types';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { useUpdateTeamMutation } from '../../api/leaguesApi';\r\n\r\nconst EditTeamDetailsModal = ({ teamDetails, title, isOpen, onClose, onSaveClick }) => {\r\n const dispatch = useDispatch();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { TOURNAMENT, MULTI_ROUND } = LeagueSessionTypes;\r\n const [sessionTypeId, setSessionTypeId] = useState();\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [originalFormData, setOriginalFormData] = useState();\r\n\r\n const [updateTeam] = useUpdateTeamMutation();\r\n\r\n const defaultValues = {\r\n name: '',\r\n registrationPin: '',\r\n teamRegistrationAvailabilityStatusTypeId: 1,\r\n dayOfWeek: '',\r\n location: '',\r\n matchStartTimeUtc: moment(),\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (teamDetails) {\r\n const {\r\n name,\r\n timeOfDay,\r\n homeCourtLocation,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n registrationPin,\r\n sessionTypeId: teamSessionTypeId,\r\n dayOfWeek,\r\n } = teamDetails;\r\n\r\n let time = null;\r\n if (timeOfDay) {\r\n const adjustedTime = getAdjustedTimeOfDay({ timeOfDay });\r\n time = moment(adjustedTime, 'hh:mm:ss');\r\n }\r\n\r\n let timeSlotDay = '';\r\n if (dayOfWeek) {\r\n timeSlotDay = weekdays.find((weekday) => weekday.description === dayOfWeek);\r\n }\r\n\r\n const teamLocation = homeCourtLocation?.placeName || homeCourtLocation?.formattedAddress || '';\r\n const formData = {\r\n name,\r\n teamRegistrationAvailabilityStatusTypeId,\r\n location: teamLocation,\r\n matchStartTimeUtc: time,\r\n dayOfWeek: timeSlotDay.id,\r\n registrationPin: registrationPin || '',\r\n };\r\n\r\n setSessionTypeId(teamSessionTypeId);\r\n setOriginalLocation(homeCourtLocation);\r\n setOriginalFormData(formData);\r\n reset(formData);\r\n }\r\n }, []);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const team = { ...formValues };\r\n const { matchStartTimeUtc, location: teamLocation, teamRegistrationAvailabilityStatusTypeId } = formValues;\r\n\r\n if (sessionTypeId === MULTI_ROUND) {\r\n const matchTime = matchStartTimeUtc.clone();\r\n const utcOffset = matchTime.utcOffset();\r\n const adjustedTime = matchTime.subtract(utcOffset, 'minutes');\r\n const hours = adjustedTime.get('hour');\r\n const minutes = adjustedTime.get('minutes');\r\n\r\n team.timeOfDay = `${hours}:${minutes}`;\r\n }\r\n\r\n team.teamRegistrationAvailabilityStatusTypeId = parseInt(teamRegistrationAvailabilityStatusTypeId);\r\n\r\n if (dirtyFields.location) {\r\n const formattedLocation = await getLocationData(teamLocation);\r\n team.homeCourtLocation = formattedLocation;\r\n } else {\r\n team.homeCourtLocation = originalLocation;\r\n }\r\n\r\n if (sessionTypeId === TOURNAMENT) {\r\n delete team.dayOfWeek;\r\n delete team.timeOfDay;\r\n }\r\n\r\n delete team.location;\r\n delete team.matchStartTimeUtc;\r\n delete team.sessionId;\r\n\r\n try {\r\n await updateTeam({ teamId: teamDetails?.id, team, sessionId: teamDetails?.sessionId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnSave = () => {\r\n handleSubmit(handleFormSubmit)();\r\n onSaveClick();\r\n };\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n reset(originalFormData);\r\n };\r\n\r\n return (\r\n \r\n \r\n
    \r\n \r\n General\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionTypeId === MULTI_ROUND && (\r\n <>\r\n League Play Time Slot\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n Team Registration\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default EditTeamDetailsModal;\r\n","import React, { useState } from 'react';\r\nimport { Typography, EditIcon, VisibilityIcon, VisibilityOffIcon } from '@universal-tennis/ui-shared';\r\nimport { useTheme } from '@mui/material/styles';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport Grid from '@mui/material/Grid';\r\nimport IconButton from '@mui/material/IconButton';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport EditTeamDetailsModal from '../../../components/Modals/EditTeamDetailsModal';\r\n\r\nimport { SharedUICategories, TypographySizes } from '../../../utils/constants';\r\nimport { getAdjustedTimeOfDay } from '../../../utils/display';\r\nimport { weekdays, openClosedStatusTypes, getTypeForId } from '../../../utils/types';\r\n\r\nconst DetailsTab = ({ teamDetails }) => {\r\n const theme = useTheme();\r\n const { SECONDARY } = SharedUICategories;\r\n const { X_SMALL_MEDIUM_CAP, SMALL_MEDIUM, SMALL_BOOK } = TypographySizes;\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const { timeOfDay, dayOfWeek, registrationPin, homeCourtLocation, name, teamRegistrationAvailabilityStatusTypeId } = teamDetails || {};\r\n const teamLocation = homeCourtLocation?.placeName || homeCourtLocation?.formattedAddress || '';\r\n const registrationStatus = getTypeForId(teamRegistrationAvailabilityStatusTypeId, openClosedStatusTypes);\r\n\r\n let time = null;\r\n if (teamDetails?.timeOfDay) {\r\n time = getAdjustedTimeOfDay({ timeOfDay, format: 'LT' });\r\n }\r\n\r\n let timeSlotDay = '';\r\n if (teamDetails?.dayOfWeek) {\r\n timeSlotDay = weekdays.find((weekday) => weekday.description === dayOfWeek);\r\n }\r\n\r\n const handleOnEditClick = () => {\r\n setShowEditModal(true);\r\n };\r\n\r\n const handleOnCloseEditModal = () => {\r\n setShowEditModal(false);\r\n };\r\n\r\n const togglePasswordVisibility = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n return (\r\n \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n General\r\n \r\n \r\n Team name\r\n {name}\r\n \r\n \r\n Home court\r\n {teamLocation}\r\n \r\n \r\n \r\n \r\n \r\n League Play Time Slot\r\n \r\n \r\n Day\r\n {timeSlotDay?.description}\r\n \r\n \r\n Match start time\r\n {time}\r\n \r\n \r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n Team player registrations\r\n {registrationStatus?.description}\r\n \r\n \r\n \r\n Password\r\n \r\n {showPassword ? : }\r\n \r\n \r\n {registrationPin ? (\r\n {showPassword ? registrationPin : '********'}\r\n ) : (\r\n None\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DetailsTab;\r\n","import React, { useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Checkbox from '@mui/material/Checkbox';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport FullPageModal from './FullPageModal';\r\nimport Input from '../Form/Input';\r\nimport { SharedUICategories, TypographySizes } from '../../utils/constants';\r\n\r\nconst MessagePlayersModal = ({ isOpen, onMessageSubmitted, onRequestClose }) => {\r\n const { SECONDARY } = SharedUICategories;\r\n const { SMALL_BOOK } = TypographySizes;\r\n const [shouldIncludeCaptains, setShouldIncludeCaptains] = useState(false);\r\n const defaultValues = { message: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields },\r\n control,\r\n reset,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const clearForm = () => {\r\n reset({ message: '' });\r\n setShouldIncludeCaptains(false);\r\n };\r\n\r\n const handleOnSubmit = (formValues) => {\r\n onMessageSubmitted(formValues.message, shouldIncludeCaptains);\r\n clearForm();\r\n };\r\n\r\n const handleOnRequestClose = () => {\r\n onRequestClose();\r\n clearForm();\r\n };\r\n\r\n const handleOnCheckboxChange = (event) => {\r\n setShouldIncludeCaptains(event.target.checked);\r\n };\r\n\r\n const handleOnSaveClick = () => {\r\n handleSubmit(handleOnSubmit)();\r\n };\r\n\r\n return (\r\n \r\n \r\n Send an email to all players on the team\r\n \r\n }\r\n label={Include captains}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MessagePlayersModal;\r\n","import React from 'react';\r\nimport moment from 'moment';\r\nimport { useTheme } from '@mui/material';\r\nimport { Button, Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Card from '@mui/material/Card';\r\nimport CardContent from '@mui/material/CardContent';\r\nimport Grid from '@mui/material/Grid';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\n\r\nimport { getAgeKeys, ageDisplay, getFormattedConferenceRange } from '../../../utils/display';\r\nimport { getTypeForId, genderTypes, SportTypeIds } from '../../../utils/types';\r\nimport { teamProfileInfoPropTypes } from '../../../utils/proptypes';\r\n\r\nconst TeamProfileInfoCard = ({ teamData, registrationFees, onJoinClick, onShareClick, isRegistrationAvailable }) => {\r\n const theme = useTheme();\r\n const { conference, homeCourtLocation, sessionSummary } = teamData;\r\n const { minAge, maxAge, genderTypeId, conferenceRatings, sportTypeId } = conference || {};\r\n const { sessionEntryFee, total } = registrationFees;\r\n const { TENNIS } = SportTypeIds;\r\n const ageKeys = getAgeKeys([minAge, maxAge]);\r\n const ageRange = ageDisplay(ageKeys);\r\n const ages = ageRange?.toLowerCase() === 'all' ? 'All ages' : ageRange;\r\n const isTennis = sportTypeId === TENNIS;\r\n const rangeTitle = isTennis ? 'UTR Range' : 'UTR-P Range';\r\n const range = getFormattedConferenceRange({ conferenceRatings, sportTypeId, showRatingPrefix: false });\r\n const gender = getTypeForId(genderTypeId, genderTypes);\r\n const location = homeCourtLocation?.formattedAddress ? `${homeCourtLocation?.formattedAddress}` : '';\r\n const cost = sessionEntryFee === total ? `$${total}` : `$${sessionEntryFee}-$${total}`;\r\n const today = moment.utc();\r\n const isTodayAfterSessionEndDate = today.isAfter(sessionSummary?.endDateUtc, 'day');\r\n const isRegistrationDisabled = !isRegistrationAvailable || isTodayAfterSessionEndDate;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Cost\r\n \r\n \r\n {cost}\r\n \r\n \r\n \r\n \r\n Gender\r\n \r\n \r\n {gender?.description}\r\n \r\n \r\n \r\n \r\n Age Range\r\n \r\n \r\n {ages}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {rangeTitle}\r\n \r\n \r\n {range}\r\n \r\n \r\n {location && (\r\n \r\n \r\n Location\r\n \r\n \r\n {location}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n }\r\n sx={{ mb: 2 }}\r\n >\r\n Join This Team\r\n \r\n \r\n Contact a captain to know more\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTeamProfileInfoCard.propTypes = {\r\n ...teamProfileInfoPropTypes,\r\n};\r\n\r\nexport default TeamProfileInfoCard;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useTheme } from '@mui/material';\r\n\r\nimport { Typography, Button, AddIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport ManagerCard from '../../../components/Cards/ManagerCard';\r\nimport FullPageModal from '../../../components/Modals/FullPageModal';\r\nimport PlayerSearch from '../../../components/Form/PlayerSearch';\r\nimport Popup from '../../../components/Popups/Popup';\r\nimport TeamProfileInfoCard from '../../../components/Cards/TeamProfileInfoCard';\r\n\r\nimport { mapMembersForPlayerSearch } from '../../../utils/helpers';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { showPopup } from '../../../redux/genericPopupSlice';\r\nimport { useAddCaptainMutation, useRemoveCaptainMutation } from '../../../api/leaguesApi';\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport useIsMobile from '../../../hooks/useIsMobile';\r\nimport { teamPageOverviewTabPropTypes, defaultTeamPageOverviewTabPropTypes } from '../../../utils/proptypes';\r\n\r\nconst OverviewTab = ({\r\n teamSummary,\r\n isCaptainView,\r\n isRegistrationAvailable,\r\n isLoadingRegistration,\r\n onRegisterClick,\r\n onShareClick,\r\n fees,\r\n captains,\r\n isUserLoggedIn,\r\n}) => {\r\n const theme = useTheme();\r\n const isMobile = useIsMobile();\r\n const { teamId } = useParams();\r\n const dispatch = useDispatch();\r\n\r\n const [showAddCaptainModal, setShowAddCaptainModal] = useState(false);\r\n const [originalCaptains, setOriginalCaptains] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [captainToBeUpdated, setCaptainToBeUpdated] = useState();\r\n\r\n const [addCaptain, { isLoading: isAddingCaptain }] = useAddCaptainMutation();\r\n const [removeCaptain, { isLoading: isRemovingCaptain }] = useRemoveCaptainMutation();\r\n const isUpdatingCaptains = isAddingCaptain || isRemovingCaptain;\r\n const popupMessage = `Are you sure you want to remove ${captainToBeUpdated?.displayName} as a Captain?`;\r\n const minimumAmountOfMembersNeeded = 1;\r\n const maximumAmountOfCaptains = 3;\r\n const desktopPadding = '40px';\r\n const mobilePadding = '24px';\r\n\r\n useEffect(() => {\r\n if (captains?.length) {\r\n const mappedCaptains = mapMembersForPlayerSearch(captains);\r\n setOriginalCaptains(mappedCaptains);\r\n }\r\n }, [captains]);\r\n\r\n const isPermittedToRemoveMember = () => {\r\n if (captains?.length === minimumAmountOfMembersNeeded) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Sorry',\r\n message: `There must always be at least one Captain`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const isPermittedToAddMember = () => {\r\n if (captains?.length === maximumAmountOfCaptains) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Sorry',\r\n message: `Only 3 Captains are permitted per team.`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const handleOnConfirmRemoval = async () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToRemoveMember = isPermittedToRemoveMember();\r\n if (isAbleToRemoveMember) {\r\n try {\r\n await removeCaptain({ teamId, captainId: captainToBeUpdated.captainId }).unwrap();\r\n setCaptainToBeUpdated(null);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleOnConfirmAddition = async () => {\r\n setShowAddCaptainModal(false);\r\n\r\n const isAbleToAddMember = isPermittedToAddMember();\r\n if (isAbleToAddMember) {\r\n try {\r\n await addCaptain({ teamId, captain: { memberId: captainToBeUpdated.memberId } }).unwrap();\r\n setCaptainToBeUpdated(null);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const handleOnAddCaptainClick = () => {\r\n setShowAddCaptainModal(true);\r\n };\r\n\r\n const handleOnPlayerSelected = (player) => {\r\n setCaptainToBeUpdated(player);\r\n };\r\n\r\n const handleOnCloseAddCaptainModal = async () => {\r\n setShowAddCaptainModal(false);\r\n };\r\n\r\n const handleOnRemoveClick = (captainToBeRemoved) => {\r\n setCaptainToBeUpdated(captainToBeRemoved);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Registration Information\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Captains\r\n \r\n \r\n {isUpdatingCaptains ? (\r\n \r\n ) : (\r\n <>\r\n \r\n {isCaptainView && (\r\n }\r\n >\r\n \r\n Add a team captain\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nOverviewTab.propTypes = {\r\n ...teamPageOverviewTabPropTypes,\r\n};\r\nOverviewTab.defaultProps = {\r\n ...defaultTeamPageOverviewTabPropTypes\r\n};\r\n\r\nexport default OverviewTab;\r\n","import React from 'react';\r\n\r\nimport ToggleButton from '@mui/material/ToggleButton';\r\nimport ToggleButtonGroup from '@mui/material/ToggleButtonGroup';\r\n\r\nimport { multiRoundScheduleTypes } from '../../../utils/types';\r\n\r\nconst MultiRoundScheduleToggle = (props) => {\r\n const { scheduleType, disabled, onChange } = props;\r\n\r\n return (\r\n \r\n {multiRoundScheduleTypes.map((option) => (\r\n {option.description}\r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default MultiRoundScheduleToggle;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport MultiRoundScheduleToggle from '../../../components/Form/MultiRoundScheduleToggle';\r\nimport Schedule from '../../../components/Schedule';\r\nimport { ResponseStatuses } from '../../../utils/constants';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { ScheduleStatuses, MultiRoundScheduleTypes } from '../../../utils/types';\r\nimport { useGetTeamScheduleQuery, useLazyGetTeamScheduleByDateQuery } from '../../../api/leaguesApi';\r\n\r\nimport { teamPageScheduleTabPropTypes } from '../../../utils/proptypes';\r\n\r\nimport useSessionSchedule from '../../../hooks/useSessionSchedule';\r\n\r\nconst ScheduleTab = ({ teamId, isTournament, session }) => {\r\n const dispatch = useDispatch();\r\n const { NOT_FOUND } = ResponseStatuses;\r\n const [rounds, setRounds] = useState([]);\r\n const [multiRoundScheduleType, setMultiRoundScheduleType] = useState(0);\r\n\r\n const [getTeamScheduleByDate, { data: teamScheduleByDate, isFetching: isLoadingTeamScheduleByDate, error: teamScheduleByDateError }] =\r\n useLazyGetTeamScheduleByDateQuery();\r\n const { data: teamSchedule, isLoading, error } = useGetTeamScheduleQuery(teamId, { skip: isTournament });\r\n const { drawSchedule, isLoadingSchedule } = useSessionSchedule({\r\n sessionId: session?.id,\r\n showDraftSchedule: false,\r\n isMultiRoundSession: !isTournament,\r\n skipFetch: !isTournament,\r\n });\r\n\r\n if (teamScheduleByDateError) {\r\n const hasError = teamScheduleByDateError?.status !== NOT_FOUND;\r\n if (hasError) {\r\n dispatch(showErrorPopup(teamScheduleByDateError));\r\n }\r\n }\r\n\r\n if (error) {\r\n const hasError = error?.status !== NOT_FOUND;\r\n if (hasError) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n }\r\n\r\n const handleOnScheduleChange = async (event) => {\r\n const scheduleType = parseInt(event?.target?.value);\r\n if (!teamScheduleByDate && scheduleType === MultiRoundScheduleTypes.BY_DATE) {\r\n await getTeamScheduleByDate(teamId);\r\n }\r\n\r\n setMultiRoundScheduleType(scheduleType);\r\n };\r\n\r\n useEffect(() => {\r\n if (teamSchedule) {\r\n const mappedRoundMatches = teamSchedule.rounds.map((round) => {\r\n const filteredTeamMatches = teamSchedule.teamMatches.filter((match) => match.roundId === round.roundId);\r\n return {\r\n ...round,\r\n matches: filteredTeamMatches,\r\n };\r\n });\r\n setRounds(mappedRoundMatches);\r\n }\r\n }, [teamSchedule]);\r\n\r\n const isSchedulePublished =\r\n drawSchedule?.statusId === ScheduleStatuses.PUBLISHED || teamSchedule?.statusId === ScheduleStatuses.PUBLISHED;\r\n\r\n return (\r\n \r\n {isLoading || isLoadingSchedule || isLoadingTeamScheduleByDate ? (\r\n \r\n ) : (\r\n <>\r\n {teamSchedule && isSchedulePublished && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nScheduleTab.propTypes = {\r\n ...teamPageScheduleTabPropTypes,\r\n};\r\n\r\nexport default ScheduleTab;\r\n","import React from 'react';\r\n\r\nimport { useTheme, Container } from '@mui/material';\r\n\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Link from '@mui/material/Link';\r\nimport Tab from '@mui/material/Tab';\r\nimport Tabs from '@mui/material/Tabs';\r\n\r\nimport { SharedUICategories, TypographySizes, LeagueTabs } from '../../../utils/constants';\r\nimport { getPowerIndex } from '../../../utils/helpers';\r\nimport useIsMobile from '../../../hooks/useIsMobile';\r\nimport { teamPageHeaderPropTypes } from '../../../utils/proptypes';\r\n\r\nconst TeamPageHeader = ({\r\n tab,\r\n teamName,\r\n wins,\r\n losses,\r\n sessionId,\r\n sessionName,\r\n isCaptainView,\r\n onTabChange,\r\n isTournament,\r\n teamPowerIndex,\r\n}) => {\r\n const theme = useTheme();\r\n const isMobile = useIsMobile();\r\n const { DISPLAY, SECONDARY } = SharedUICategories;\r\n const { LARGE_LIGHT, X_SMALL_MEDIUM_CAP } = TypographySizes;\r\n const { OVERVIEW, PLAYERS, DETAILS, SCHEDULE, DRAW } = LeagueTabs;\r\n const mobileAndDesktopCategory = isMobile ? SECONDARY : DISPLAY;\r\n const mobileAndDesktopSize = isMobile ? X_SMALL_MEDIUM_CAP : LARGE_LIGHT;\r\n const mobileDisplay = isMobile && 'flex';\r\n const mobileSpacing = isMobile && 0.5;\r\n const mobileColon = isMobile && ':';\r\n const record = `${wins || 0} - ${losses || 0}`;\r\n const MATCH_TAB = isTournament ? DRAW : SCHEDULE;\r\n const sessionLink = `/leagues/session/${sessionId}`;\r\n const singlesPowerRating = getPowerIndex(teamPowerIndex?.singlesRating, teamPowerIndex?.isSinglesEstimated);\r\n const doublesPowerRating = getPowerIndex(teamPowerIndex?.doublesRating, teamPowerIndex?.isDoublesEstimated);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {sessionName}\r\n \r\n \r\n \r\n {teamName}\r\n \r\n \r\n \r\n \r\n \r\n TPI S{mobileColon}\r\n \r\n \r\n {singlesPowerRating}\r\n \r\n \r\n \r\n \r\n TPI D{mobileColon}\r\n \r\n \r\n {doublesPowerRating}\r\n \r\n \r\n \r\n \r\n Record{mobileColon}\r\n \r\n \r\n {record}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isCaptainView && }\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTeamPageHeader.propTypes = {\r\n ...teamPageHeaderPropTypes,\r\n};\r\n\r\nexport default TeamPageHeader;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport Snackbar from '@mui/material/Snackbar';\r\nimport TabPanel from '@mui/lab/TabPanel';\r\nimport TabContext from '@mui/lab/TabContext';\r\n\r\nimport Alert from '../../components/Alert';\r\nimport DetailsTab from './DetailsTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport MessagePlayersModal from '../../components/Modals/MessagePlayersModal';\r\nimport OverviewTab from './OverviewTab';\r\nimport PlayersTab from '../../components/PlayerTab/PlayersTab';\r\nimport Popup from '../../components/Popups/Popup';\r\nimport RegistrationDrawer from '../../components/RegistrationDrawer';\r\nimport ScheduleTab from './ScheduleTab';\r\nimport ShareTeamModal from '../../components/Modals/ShareTeamModal';\r\nimport TeamPageHeader from './TeamPageHeader';\r\n\r\nimport { LeagueTabs } from '../../utils/constants';\r\nimport { LeagueSessionTypes, SportTypeIds, LeagueSanctionTypes } from '../../utils/types';\r\nimport { gtag } from '../../utils/analytics';\r\nimport { showErrorPopup } from '../../redux/errorPopupSlice';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\nimport {\r\n useGetTeamQuery,\r\n useGetTeamSummaryQuery,\r\n useGetRegistrationFeesQuery,\r\n useMessageTeamPlayersMutation,\r\n} from '../../api/leaguesApi';\r\n\r\nconst TeamPage = () => {\r\n const { user } = useSelector((state) => state.auth);\r\n const { teamId } = useParams();\r\n const parsedTeamId = parseInt(teamId);\r\n const { OVERVIEW, PLAYERS, SCHEDULE, DRAW, DETAILS } = LeagueTabs;\r\n const dispatch = useDispatch();\r\n const isUserLoggedIn = !!user;\r\n\r\n const [isCaptainView, setIsCaptainView] = useState(false);\r\n const [tab, setTab] = useState(OVERVIEW);\r\n const [showRegistrationDrawer, setShowRegistrationDrawer] = useState(false);\r\n const [showShareModal, setShowShareModal] = useState(false);\r\n const [showRegistrationSuccessPopup, setShowRegistrationSuccessPopup] = useState(false);\r\n const [showMessagePlayersPopup, setShowMessagePlayersPopup] = useState(false);\r\n const [isSuccessAlertOpen, setIsSuccessAlertOpen] = useState(false);\r\n const noSidePadding = { pl: 0, pr: 0 };\r\n\r\n const { data: teamData, isFetching: isLoadingTeam, error: teamDataError, refetch: refetchTeam } = useGetTeamSummaryQuery(parsedTeamId);\r\n const {\r\n data: teamDetails,\r\n isLoading: isLoadingTeamDetails,\r\n error: teamDetailsError,\r\n } = useGetTeamQuery(parsedTeamId, { skip: !isCaptainView });\r\n const { data: registrationFees, error: feesError } = useGetRegistrationFeesQuery(parsedTeamId);\r\n const [messageAllPlayers, { isSuccess: hasMessagedPlayers }] = useMessageTeamPlayersMutation();\r\n\r\n if (teamDetailsError) {\r\n dispatch(showErrorPopup(teamDetailsError));\r\n }\r\n\r\n if (teamDataError) {\r\n dispatch(showErrorPopup(teamDataError));\r\n }\r\n\r\n if (feesError) {\r\n dispatch(showErrorPopup(feesError));\r\n }\r\n\r\n useEffect(() => {\r\n if (teamData && user) {\r\n const { captains, conference } = teamData;\r\n const captainIds = captains.map((captain) => captain.memberId);\r\n const isCaptain = captainIds.includes(user?.id);\r\n setIsCaptainView(isCaptain);\r\n dispatch(setSportTypeId(conference?.sportTypeId));\r\n }\r\n }, [teamData, user]);\r\n\r\n useEffect(() => {\r\n if (hasMessagedPlayers) {\r\n setIsSuccessAlertOpen(true);\r\n }\r\n }, [hasMessagedPlayers]);\r\n\r\n const handleOnTabChange = (_, newValue) => {\r\n setTab(newValue);\r\n };\r\n\r\n const handleOnRegisterClick = async () => {\r\n gtag('event', {\r\n category: 'Checkout Started',\r\n context: `Leagues Team Page - teamId: ${teamId}`,\r\n });\r\n\r\n setShowRegistrationDrawer(true);\r\n };\r\n\r\n const handleOnCloseDrawerRequest = () => {\r\n setShowRegistrationDrawer(false);\r\n };\r\n\r\n const handleOnRegistrationSuccess = () => {\r\n const { sessionEntryFee, leagueFee } = registrationFees || '';\r\n const totalFee = sessionEntryFee + leagueFee;\r\n const isTennis = teamData?.conference?.sportTypeId === SportTypeIds.TENNIS;\r\n gtag('purchase', {\r\n category: 'Event Registration',\r\n context: `Team ${isTennis ? 'Tennis' : 'Pickleball'}`,\r\n value: totalFee,\r\n });\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const handleOnCloseRegistrationSuccessPopup = () => {\r\n refetchTeam();\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(false);\r\n };\r\n\r\n const handleOnShareClick = () => {\r\n setShowShareModal(true);\r\n };\r\n\r\n const handleOnShareCopyClick = () => {\r\n navigator.clipboard.writeText(window.location.href);\r\n setShowShareModal(false);\r\n };\r\n\r\n const handleOnCloseShareModal = () => {\r\n setShowShareModal(false);\r\n };\r\n\r\n const handleOnMessagePlayersClick = () => {\r\n setShowMessagePlayersPopup(true);\r\n };\r\n\r\n const handleOnMessagePlayers = async (message, includeCaptains) => {\r\n setShowMessagePlayersPopup(false);\r\n\r\n try {\r\n await messageAllPlayers({ teamId, message, includeCaptains }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\r\n\r\n const handleOnCloseMessagePlayerModal = () => {\r\n setShowMessagePlayersPopup(false);\r\n };\r\n\r\n const handleOnCloseSuccessAlert = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n\r\n setIsSuccessAlertOpen(false);\r\n };\r\n\r\n const handleOnFreeSessionRegistration = () => {\r\n setShowRegistrationDrawer(false);\r\n setShowRegistrationSuccessPopup(true);\r\n };\r\n\r\n const renderTeamContent = (teamSummary, fees) => {\r\n const { isRegistrationAvailable, sessionSummary } = teamSummary;\r\n const isTournament = sessionSummary?.typeId === LeagueSessionTypes.TOURNAMENT;\r\n const MATCH_TAB = isTournament ? DRAW : SCHEDULE;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isCaptainView && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n const isUsapSanctionedSession = teamData?.sessionSummary?.sanctionTypeId === LeagueSanctionTypes?.USAP;\r\n\r\n return (\r\n \r\n {isLoadingTeam && }\r\n {teamData && registrationFees && (\r\n <>\r\n \r\n \r\n {renderTeamContent(teamData, registrationFees)}\r\n {showRegistrationDrawer && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n Message sent!\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default TeamPage;\r\n","import React from 'react';\r\nimport { Route, Routes } from 'react-router-dom';\r\n\r\nimport CreateConferencePage from './pages/CreateConferencePage';\r\nimport CreateSessionPage from './pages/CreateSessionPage';\r\nimport LeagueDeskWrapper from './pages/LeagueDesk/LeagueDeskWrapper';\r\nimport ManageConferencePage from './pages/ManageConferencePage';\r\nimport ManageSessionPage from './pages/ManageSessionPage';\r\nimport MemberTeamsPage from './pages/MemberTeamsPage';\r\nimport SearchWrapper from './pages/SearchPage/SearchWrapper';\r\nimport SessionPage from './pages/SessionPage';\r\nimport TeamMatchPage from './pages/TeamMatchPage';\r\nimport TeamPage from './pages/TeamPage';\r\n\r\nconst AppRoutes = () => (\r\n \r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n } />\r\n \r\n\r\n);\r\n\r\nexport default AppRoutes;\r\n","export const ClubTierTypes = {\r\n HIGH_SCHOOL: 5,\r\n PERFORMANCE_HIGH_SCHOOL: 17,\r\n PAID_HIT: 16,\r\n CREATE_PLAY: 11,\r\n};\r\n\r\nexport const ClubRoles = {\r\n ADMIN: 'Admin',\r\n OWNER: 'Owner',\r\n MEMBER: 'Member',\r\n};\r\n\r\nexport const clubTiers = ['Pro', 'Special', 'Free College', 'High School', 'Pro College'];\r\n\r\nexport const getClubTypeString = (tierTypeId) => {\r\n switch (tierTypeId) {\r\n case 1:\r\n return 'groups';\r\n case 4:\r\n case 6:\r\n return 'colleges';\r\n case 5:\r\n return 'schools';\r\n default:\r\n return 'clubs';\r\n }\r\n};\r\n\r\nexport const getClubsVisibleToUser = (clubs) => {\r\n const { CREATE_PLAY } = ClubTierTypes;\r\n const hiddenClubTypes = [CREATE_PLAY];\r\n return clubs.filter((club) => !hiddenClubTypes.includes(club.tierTypeId));\r\n};\r\n\r\nexport const sortClubMembershipsByPaidHit = (clubs = []) => {\r\n const { PAID_HIT } = ClubTierTypes;\r\n const paidHitClub = clubs?.find((club) => club.tierTypeId === PAID_HIT);\r\n const filteredClubs = clubs?.filter((club) => club.tierTypeId !== PAID_HIT);\r\n\r\n if (paidHitClub) {\r\n return [paidHitClub, ...filteredClubs];\r\n }\r\n return clubs;\r\n};\r\n","import React from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nimport { getClickAttrs } from '../../utils/analytics';\r\n\r\nimport styles from './menu.module.scss';\r\n\r\nconst MenuLink = (props) => {\r\n const location = useLocation();\r\n const { path, text, trackedContent } = props || {};\r\n const { pathname } = location || {};\r\n\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default MenuLink;\r\n","/* global analytics */\r\n/* eslint-disable */\r\nimport React, { useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport Cookies from 'cookies-js';\r\nimport Box from '@mui/material/Box';\r\nimport SwipeableDrawer from '@mui/material/SwipeableDrawer';\r\n\r\nimport withFeatureFlags from '../hocs/withFeatureFlags';\r\nimport { getClubTypeString, getClubsVisibleToUser, sortClubMembershipsByPaidHit, ClubRoles, clubTiers } from '../../utils/clubs';\r\nimport { getApiAxiosInstance } from '../../utils/network';\r\nimport config from '../../config';\r\nimport MenuLink from './MenuLink';\r\nimport useIsMobile from '../../hooks/useIsMobile';\r\nimport { setSideMenu } from '../../redux/uiSlice';\r\nimport { SportTypeIds } from '../../utils/types';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\n\r\nimport styles from './menu.module.scss';\r\n\r\nconst { marketingAppHost, links, appHost } = config;\r\nconst { TENNIS, PICKLEBALL } = SportTypeIds\r\n\r\n\r\nconst SlideMenu = ({ featureFlags }) => {\r\n const location = useLocation()\r\n const dispatch = useDispatch();\r\n const { user } = useSelector((state) => state.auth);\r\n const { sideMenuOpen } = useSelector((state) => state.ui);\r\n const { memberTeams, isLoadingMemberTeams } = useSelector((state) => state.user);\r\n const [collapsed, setCollapsed] = useState(false);\r\n const [toggleMyProfile, setToggleMyProfile] = useState(false);\r\n const [toggleMyAccount, setToggleMyAccount] = useState(false);\r\n\r\n const { createPlayerGroupMainMenu, personalClub, ratingsListFlag } = featureFlags;\r\n const { pathname } = location;\r\n const MAX_TEAM_TENNIS_TEAMS_TO_DISPLAY = 3;\r\n const MAX_CLUBS_TO_DISPLAY = 2;\r\n const isMobile = useIsMobile();\r\n\r\n const handleLogOut = async (ev) => {\r\n if (ev) {\r\n ev.preventDefault();\r\n }\r\n\r\n const axiosInstance = getApiAxiosInstance();\r\n const res = await axiosInstance.get('/v1/auth/logout');\r\n\r\n if (res.status === 200) {\r\n if (window && window.analytics) {\r\n analytics.reset();\r\n }\r\n Cookies.expire('jwt');\r\n window.location.href = `${appHost}/`;\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n dispatch(setSideMenu(false));\r\n };\r\n\r\n const handleCollapse = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n const handleToggleMyProfile = () => {\r\n setToggleMyProfile(!toggleMyProfile);\r\n };\r\n\r\n const handleToggleMyAccount = () => {\r\n setToggleMyAccount(!toggleMyAccount);\r\n };\r\n\r\n const { ADMIN, OWNER, MEMBER } = ClubRoles;\r\n const visibleClubs = user?.clubMemberships ? getClubsVisibleToUser(user?.clubMemberships) : [];\r\n const clubsWhereUserIsAdminOrOwner = user ? visibleClubs.filter((club) => club.roleValue === ADMIN || club.roleValue === OWNER) : [];\r\n const isPremiumClubsOrganizer = clubsWhereUserIsAdminOrOwner.findIndex((club) => clubTiers.includes(club.tierTypeName)) !== -1;\r\n const clubsWhereUserIsMember = user ? visibleClubs.filter((club) => club.roleValue === MEMBER) : [];\r\n const clubsOrderedByAdminOwner = [...clubsWhereUserIsAdminOrOwner, ...clubsWhereUserIsMember];\r\n const sortedClubMemberships = sortClubMembershipsByPaidHit(clubsOrderedByAdminOwner);\r\n\r\n let clubMembershipsToDisplay =\r\n sortedClubMemberships?.length > MAX_CLUBS_TO_DISPLAY\r\n ? [...sortedClubMemberships].splice(0, MAX_CLUBS_TO_DISPLAY)\r\n : sortedClubMemberships;\r\n\r\n return (\r\n dispatch(setSideMenu(false))}\r\n onOpen={() => dispatch(setSideMenu(true))}\r\n >\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n {!!user?.firstName ? (\r\n
    \r\n {user?.firstName} {user?.lastName}\r\n
    \r\n ) : (\r\n
    Welcome to UTR Sports!
    \r\n )}\r\n {!user?.onboardingCompleted && user?.onboardingRequired && pathname === `/` && (\r\n
    \r\n {\r\n ev.preventDefault();\r\n }}\r\n href={`${appHost}/home`}\r\n {...getClickAttrs({\r\n category: 'Menu',\r\n context: 'Menu Item - Home',\r\n location: 'Menu',\r\n })}\r\n >\r\n Home\r\n \r\n
    \r\n )}\r\n
    \r\n {(user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n
    \r\n
    \r\n {user?.claimedPlayer && }\r\n \r\n {(user?.isPowered || user?.isProClubHeadOrganizer) && (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n {(user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n <>\r\n
    \r\n
    handleToggleMyProfile()} className={styles.menuTitle}>\r\n My Profile {toggleMyProfile ? '-' : '+'}\r\n
    \r\n {toggleMyProfile && (\r\n
    \r\n {user?.claimedPlayer && (\r\n \r\n )}\r\n \r\n \r\n {user?.isPowered && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n \r\n )}\r\n\r\n {user ? (\r\n
    \r\n
    \r\n
    \r\n {(user?.isPowered || user?.enableBetaFeatures) &&\r\n (user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n
    \r\n
    Clubs, Teams & Groups
    \r\n {clubMembershipsToDisplay.map((clubMembership) => (\r\n \r\n ))}\r\n {(visibleClubs && visibleClubs.length) > 0 && (\r\n \r\n )}\r\n {personalClub?.isEnabled(user) &&\r\n createPlayerGroupMainMenu?.isEnabled(user) &&\r\n !user?.isPersonalClubHeadOrganizer && (\r\n \r\n + Create my Players Group\r\n \r\n )}\r\n {!user?.canCreateEvent && isPremiumClubsOrganizer && (\r\n \r\n Create an Event\r\n \r\n )}\r\n
    \r\n )}\r\n {user && !isLoadingMemberTeams && !!memberTeams?.tennis?.length && (\r\n
    \r\n
    Team Tennis
    \r\n {memberTeams.tennis.slice(0, MAX_TEAM_TENNIS_TEAMS_TO_DISPLAY).map((team) => (\r\n \r\n ))}\r\n \r\n
    \r\n )}\r\n {user && !isLoadingMemberTeams && !!memberTeams?.pickleball?.length && (\r\n
    \r\n
    Team Pickleball
    \r\n {memberTeams.pickleball.slice(0, MAX_TEAM_TENNIS_TEAMS_TO_DISPLAY).map((team) => (\r\n \r\n ))}\r\n \r\n
    \r\n )}\r\n {user?.isClubOrganizer && (\r\n
    \r\n \r\n Club Resources\r\n \r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n {user?.isPowered && (user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n
    \r\n
    Saved Lists
    \r\n \r\n \r\n
    \r\n )}\r\n {user?.isAdmin && (\r\n \r\n )}\r\n {ratingsListFlag?.isEnabled(user) && (\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n Club Resources\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n Players & Organizers {collapsed ? '-' : '+'}\r\n
    \r\n {collapsed && (\r\n
    \r\n \r\n Players\r\n \r\n \r\n Organizations\r\n \r\n \r\n College\r\n \r\n \r\n High School\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    handleToggleMyAccount()} className={styles.menuTitle}>\r\n My Account {toggleMyAccount ? '-' : '+'}\r\n
    \r\n {toggleMyAccount && (\r\n
    \r\n \r\n {(user?.isPowered || user?.isProClubHeadOrganizer) && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {(user?.onboardingCompleted || !user?.onboardingRequired) && (\r\n \r\n UTR Sports\r\n \r\n )}\r\n \r\n Support\r\n \r\n \r\n Sign Out\r\n \r\n
    \r\n
    \r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n
    Organizers / Coaches
    \r\n \r\n Organizations\r\n \r\n \r\n College\r\n \r\n \r\n High School\r\n \r\n
    \r\n
    \r\n \r\n Sign In\r\n \r\n \r\n Join\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default withFeatureFlags(SlideMenu);\r\n","import React from 'react';\r\n\r\nimport styles from './loading.module.scss';\r\n\r\nconst Loading = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    LOADING

    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default Loading;\r\n","import React from 'react';\r\n\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Divider from '@mui/material/Divider';\r\n\r\nimport { hidePopup } from '../../redux/genericPopupSlice';\r\n\r\nconst GenericPopup = () => {\r\n const dispatch = useDispatch();\r\n const { isOpen, message, title } = useSelector((state) => state.genericPopup);\r\n\r\n const handleOnClose = () => {\r\n dispatch(hidePopup());\r\n };\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GenericPopup;\r\n","import React from 'react';\r\n\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport DialogTitle from '@mui/material/DialogTitle';\r\nimport Divider from '@mui/material/Divider';\r\nimport Link from '@mui/material/Link';\r\n\r\nimport config from '../../config';\r\nimport { hideErrorPopup } from '../../redux/errorPopupSlice';\r\n\r\nconst ErrorPopup = () => {\r\n const dispatch = useDispatch();\r\n const { isOpen, error } = useSelector((state) => state.errorPopup);\r\n\r\n const handleOnClose = () => {\r\n dispatch(hideErrorPopup());\r\n };\r\n\r\n return (\r\n \r\n \r\n Unable to complete your request\r\n \r\n \r\n \r\n \r\n {error?.message}\r\n \r\n \r\n For support, please submit a question here\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ErrorPopup;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { StatsigProvider } from 'statsig-react';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport segmentAnalytics from 'react-segment';\r\nimport { Footer } from '@universal-tennis/ui-shared';\r\nimport { StatsigContextProvider } from './hooks/StatsigContextProvider';\r\n\r\nimport { getAuthUser } from './redux/services/authServices';\r\nimport { getActiveTeams, getUserPreferences } from './redux/services/userService';\r\n\r\nimport Header from './components/Header';\r\nimport Routes from './routes';\r\nimport Menu from './components/Menu';\r\nimport Loading from './components/Loading';\r\nimport GenericPopup from './components/Popups/GenericPopup';\r\nimport ErrorPopup from './components/Popups/ErrorPopup';\r\n\r\nimport config from './config';\r\n\r\nimport { FooterExploreItems, FooterMoreItems, FooterProviderItems, FooterSupportItems, FooterSocialMedia } from './utils/constants';\r\nimport { Rox, setContextProps as RoxSetCustomProperties } from './utils/rollout';\r\nimport flagContainer from './flagContainer';\r\n\r\nconst App = () => {\r\n const { user, loading: isLoadingUser, isUserLoaded } = useSelector((state) => state.auth);\r\n const { isMemberTeamsLoaded, isLoadingMemberTeams, isLoadingPreferences, isPreferencesLoaded } = useSelector((state) => state.user);\r\n const dispatch = useDispatch();\r\n const [roxInit, setRoxInit] = useState(false);\r\n segmentAnalytics.default.load(config.segmentKey);\r\n const env = process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development';\r\n const footerPlacementMinPageHeight = '80vh';\r\n\r\n useEffect(() => {\r\n if (!user && !isLoadingUser && !isUserLoaded) {\r\n dispatch(getAuthUser());\r\n }\r\n if (!roxInit) {\r\n try {\r\n Rox.register('featureFlags', flagContainer);\r\n Rox.setup(config.roxKey, {}).then(() => {\r\n RoxSetCustomProperties();\r\n setRoxInit(true);\r\n });\r\n } catch (err) {\r\n console.log('client re-register of rox');\r\n }\r\n }\r\n\r\n if (!isMemberTeamsLoaded && !isLoadingMemberTeams) {\r\n dispatch(getActiveTeams());\r\n }\r\n\r\n if (!isPreferencesLoaded && !isLoadingPreferences) {\r\n dispatch(getUserPreferences());\r\n }\r\n }, []);\r\n\r\n const showExpandedNav = !!user;\r\n\r\n const handleOnSocialMediaClick = (id) => {\r\n const socialMediaItem = FooterSocialMedia.find((item) => item?.id === id);\r\n window.open(socialMediaItem.href, '_blank', 'noopener');\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {isLoadingUser ? (\r\n \r\n ) : (\r\n <>\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n \r\n \r\n\r\n );\r\n};\r\n\r\nApp.propTypes = {};\r\n\r\nexport default App;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { getActiveTeams, getUserPreferences } from './services/userService';\r\n\r\nconst initialState = {\r\n memberTeams: {\r\n tennis: [],\r\n pickleball: []\r\n },\r\n isLoadingMemberTeams: false,\r\n isMemberTeamsLoaded: false,\r\n preferences: {},\r\n isLoadingPreferences: false,\r\n isPreferencesLoaded: false,\r\n};\r\n\r\nconst userSlice = createSlice({\r\n name: 'user',\r\n initialState,\r\n extraReducers: {\r\n [getActiveTeams.pending]: (state) => {\r\n state.isLoadingMemberTeams = true;\r\n state.isMemberTeamsLoaded = false;\r\n },\r\n [getActiveTeams.fulfilled]: (state, action) => {\r\n state.memberTeams = action.payload.memberTeams;\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = true;\r\n },\r\n [getActiveTeams.rejected]: (state) => {\r\n state.memberTeams = [];\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = false;\r\n },\r\n [getUserPreferences.pending]: (state) => {\r\n state.isLoadingPreferences = true;\r\n state.isPreferencesLoaded = false;\r\n },\r\n [getUserPreferences.fulfilled]: (state, action) => {\r\n state.preferences = action.payload;\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = true;\r\n },\r\n [getUserPreferences.rejected]: (state) => {\r\n state.preferences = {};\r\n state.isLoadingMemberTeams = false;\r\n state.isMemberTeamsLoaded = false;\r\n },\r\n },\r\n});\r\n\r\nexport default userSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { getAuthUser } from './services/authServices';\r\n\r\nconst initialState = {\r\n user: null,\r\n isLoadingUser: false,\r\n isUserLoaded: false,\r\n};\r\n\r\nconst authSlice = createSlice({\r\n name: 'auth',\r\n initialState,\r\n reducers: {\r\n clearUser(state) {\r\n state.user = null;\r\n },\r\n },\r\n extraReducers: {\r\n [getAuthUser.pending]: (state) => {\r\n state.isLoadingUser = true;\r\n },\r\n [getAuthUser.fulfilled]: (state, action) => {\r\n state.user = action.payload;\r\n state.isLoadingUser = false;\r\n state.isUserLoaded = true;\r\n },\r\n [getAuthUser.rejected]: (state) => {\r\n state.user = null;\r\n state.isLoadingUser = false;\r\n state.isUserLoaded = true;\r\n },\r\n },\r\n});\r\n\r\nexport const { clearUser, updateProfilePicture } = authSlice.actions;\r\nexport default authSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\nimport { getBreadcrumbData } from './services/breadcrumbService';\r\n\r\nconst initialState = {\r\n data: {},\r\n loading: false,\r\n};\r\n\r\nconst breadcrumbSlice = createSlice({\r\n name: 'breadcrumbs',\r\n initialState,\r\n extraReducers: {\r\n [getBreadcrumbData.pending]: (state) => {\r\n state.data = {};\r\n state.loading = true;\r\n },\r\n [getBreadcrumbData.fulfilled]: (state, action) => {\r\n state.data = action.payload;\r\n state.loading = false;\r\n },\r\n [getBreadcrumbData.rejected]: (state) => {\r\n state.data = {};\r\n state.loading = false;\r\n },\r\n },\r\n});\r\n\r\nexport default breadcrumbSlice.reducer;\r\n","import { combineReducers } from 'redux';\r\nimport user from './userSlice';\r\nimport auth from './authSlice';\r\nimport breadcrumbs from './breadcrumbSlice';\r\nimport ui from './uiSlice';\r\nimport genericPopup from './genericPopupSlice';\r\nimport errorPopup from './errorPopupSlice';\r\nimport conferenceDetails from './conferenceDetailsSlice';\r\nimport { leaguesApi } from '../api/leaguesApi';\r\n\r\nexport default combineReducers({\r\n user,\r\n auth,\r\n breadcrumbs,\r\n ui,\r\n genericPopup,\r\n errorPopup,\r\n conferenceDetails,\r\n [leaguesApi.reducerPath]: leaguesApi.reducer,\r\n});\r\n","import { configureStore } from '@reduxjs/toolkit';\r\nimport { persistStore, persistReducer, FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER } from 'redux-persist';\r\nimport storage from 'redux-persist/lib/storage';\r\n\r\nimport { getLeaguesApiAxiosInstance, getApiAxiosInstance } from '../utils/network';\r\nimport { leaguesApi } from '../api/leaguesApi';\r\nimport rootReducer from './rootReducer';\r\n\r\nconst apiInstances = { main: getApiAxiosInstance(), leagues: getLeaguesApiAxiosInstance() };\r\n\r\nconst persistConfig = {\r\n key: 'root',\r\n version: 1,\r\n storage,\r\n whitelist: ['breadcrumbs', 'conferenceDetails'],\r\n blacklist: [leaguesApi.reducerPath],\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\r\n\r\nexport const store = configureStore({\r\n reducer: persistedReducer,\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n thunk: {\r\n extraArgument: apiInstances,\r\n },\r\n serializableCheck: {\r\n ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],\r\n },\r\n }).concat(leaguesApi.middleware),\r\n});\r\nexport const persistor = persistStore(store);\r\n\r\nif (process.env.NODE_ENV === 'development' && module.hot) {\r\n module.hot.accept('./rootReducer', () => {\r\n const newRootReducer = require('./rootReducer').default;\r\n store.replaceReducer(newRootReducer);\r\n });\r\n}\r\n","import { createTheme } from '@mui/material';\r\n\r\nconst appColors = {\r\n black: '#000',\r\n white: '#fff',\r\n blue: '#008ded',\r\n lightBlue: '#62E6FC',\r\n blueGrey: '#778DA9',\r\n blueGrey100: '#D6DDE5',\r\n lighterGrey: '#e8eff7',\r\n lightGrey: '#d7e0ea',\r\n grey: '#828B96',\r\n darkGrey: '#5a7290',\r\n darkestGrey: '#3b4859',\r\n gradientBlue: '#00c0f7',\r\n secondaryButtonDisabled: '#bac6d6',\r\n gradientTurquoise: '#01dfcb',\r\n main: '#008ded',\r\n darkText: '#2b3339',\r\n coolGrey: '#F0F4F9',\r\n coolGrey500: '#C1CCDA',\r\n coolGrey600: '#A7B2C1',\r\n interactionBlue: '#007BCE',\r\n red: '#E0004F',\r\n green: '#108B15',\r\n lighterGreen: '#16BA1C',\r\n orange: '#FB7800',\r\n gradient: 'linear-gradient(to right, #00c0f7, #01dfcb)',\r\n\r\n};\r\n\r\nconst secondaryFont = 'Gotham SSm A, Gotham SSm B, Helvetica, Arial, sans-serif';\r\nconst primaryFont = 'Tungsten A, Tungsten B, Helvetica, Arial, sans-serif';\r\nconst appGradient = `linear-gradient(to right, ${appColors.gradientBlue}, ${appColors.gradientTurquoise})`;\r\nconst tabButtonSidePadding = '16px';\r\n\r\nconst defaultButtonStyle = {\r\n borderRadius: 22,\r\n fontSize: 12,\r\n padding: '0 22px',\r\n height: '40px',\r\n whiteSpace: 'nowrap',\r\n lineHeight: '39px',\r\n border: '1px solid transparent',\r\n};\r\n\r\nconst darkButtonStyle = {\r\n ...defaultButtonStyle,\r\n backgroundColor: appColors.black,\r\n color: appColors.white,\r\n '&:hover': {\r\n backgroundColor: appColors.darkestGrey,\r\n borderColor: appColors.darkestGrey,\r\n },\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst lightButtonStyle = {\r\n ...defaultButtonStyle,\r\n borderColor: appColors.black,\r\n backgroundColor: 'transparent',\r\n color: appColors.black,\r\n '&:hover': {\r\n borderColor: appColors.darkestGrey,\r\n },\r\n '&:disabled': {\r\n borderColor: appColors.secondaryButtonDisabled,\r\n color: appColors.secondaryButtonDisabled,\r\n },\r\n};\r\n\r\nconst whiteButtonStyle = {\r\n ...defaultButtonStyle,\r\n borderColor: appColors.white,\r\n borderWidth: 2,\r\n backgroundColor: 'transparent',\r\n color: appColors.white,\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst filterButtonStyle = {\r\n ...defaultButtonStyle,\r\n backgroundColor: 'transparent',\r\n color: appColors.blue,\r\n borderColor: appColors.blue,\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst filterSelectedButtonStyle = {\r\n ...defaultButtonStyle,\r\n backgroundColor: appColors.blue,\r\n color: appColors.white,\r\n '&:disabled': {\r\n backgroundColor: appColors.lightGrey,\r\n borderColor: appColors.lightGrey,\r\n },\r\n};\r\n\r\nconst smallButtonStyle = {\r\n ...defaultButtonStyle,\r\n fontSize: 11,\r\n height: 35,\r\n lineHeight: '34px',\r\n};\r\n\r\nconst largeButtonStyle = {\r\n ...defaultButtonStyle,\r\n fontSize: 12,\r\n lineHeight: '43px',\r\n borderRadius: 24,\r\n padding: '0 50px',\r\n};\r\n\r\nlet theme = createTheme({\r\n appColors,\r\n typography: {\r\n primary: {\r\n fontFamily: primaryFont\r\n },\r\n secondary: {\r\n fontFamily: secondaryFont\r\n },\r\n fontFamily: secondaryFont,\r\n },\r\n palette: {\r\n primary: {\r\n main: appColors.main,\r\n },\r\n },\r\n});\r\n\r\ntheme = createTheme(theme, {\r\n palette: {\r\n rsvpGreen: {\r\n main: appColors.green\r\n },\r\n rsvpOrange: {\r\n main: appColors.orange\r\n },\r\n rsvpRed: {\r\n main: appColors.red\r\n },\r\n },\r\n typography: {\r\n subtitle2: {\r\n lineHeight: '1.71',\r\n letterSpacing: '0.8px',\r\n color: appColors.blue,\r\n },\r\n h2: {\r\n fontSize: '3rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '0.9',\r\n letterSpacing: '1px',\r\n },\r\n h3: {\r\n fontSize: '2.5rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '0.9',\r\n letterSpacing: '1px',\r\n },\r\n h3_grey: {\r\n fontSize: '2.5rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '0.9',\r\n letterSpacing: '1px',\r\n color: appColors.darkGrey,\r\n },\r\n h4_grey: {\r\n fontSize: '2.125rem',\r\n fontWeight: theme.typography.fontWeightRegular,\r\n lineHeight: '1.235',\r\n letterSpacing: '1px',\r\n color: appColors.grey,\r\n },\r\n h5_grey: {\r\n fontSize: '1.5rem',\r\n fontWeight: theme.typography.fontWeightRegular,\r\n lineHeight: '1.35',\r\n letterSpacing: '1px',\r\n color: appColors.grey,\r\n },\r\n subHeading: {\r\n fontSize: '1.25rem',\r\n fontWeight: theme.typography.fontWeightLight,\r\n lineHeight: '1',\r\n letterSpacing: '1px',\r\n color: appColors.darkText,\r\n },\r\n caption: {\r\n fontSize: '0.9rem',\r\n },\r\n caption_blue: {\r\n fontSize: '1.5rem',\r\n color: appColors.gradientBlue,\r\n },\r\n body1: {\r\n fontWeight: theme.typography.fontWeightLight,\r\n },\r\n details: {\r\n fontSize: '0.875rem',\r\n lineHeight: '1.43',\r\n },\r\n details_grey: {\r\n fontSize: '0.875rem',\r\n lineHeight: '1.43',\r\n color: appColors.darkGrey,\r\n },\r\n cardSubtitle: {\r\n fontSize: '0.8rem',\r\n color: appColors.grey,\r\n },\r\n },\r\n components: {\r\n MuiButtonBase: {\r\n styleOverrides: {\r\n root: {\r\n '&.MuiTab-root': {\r\n color: appColors.blue,\r\n textTransform: 'capitalize',\r\n '&.Mui-selected': {\r\n color: theme.palette.common.black,\r\n },\r\n },\r\n },\r\n },\r\n defaultProps: {\r\n disableRipple: true,\r\n },\r\n },\r\n MuiButton: {\r\n styleOverrides: {\r\n root: {\r\n '&:focus': {\r\n outline: 'none',\r\n },\r\n },\r\n },\r\n variants: [\r\n {\r\n props: { variant: 'dark' },\r\n style: { ...darkButtonStyle },\r\n },\r\n {\r\n props: { variant: 'dark', size: 'large' },\r\n style: { ...darkButtonStyle, ...largeButtonStyle },\r\n },\r\n {\r\n props: { variant: 'dark', size: 'small' },\r\n style: { ...darkButtonStyle, ...smallButtonStyle },\r\n },\r\n {\r\n props: { variant: 'light' },\r\n style: { ...lightButtonStyle },\r\n },\r\n {\r\n props: { variant: 'light', size: 'large' },\r\n style: { ...lightButtonStyle, ...largeButtonStyle },\r\n },\r\n {\r\n props: { variant: 'light', size: 'small' },\r\n style: { ...lightButtonStyle, ...smallButtonStyle },\r\n },\r\n {\r\n props: { variant: 'contained' },\r\n style: { color: theme.palette.common.white },\r\n },\r\n {\r\n props: { variant: 'filter' },\r\n style: { ...filterButtonStyle },\r\n },\r\n {\r\n props: { variant: 'filter-selected' },\r\n style: { ...filterSelectedButtonStyle },\r\n },\r\n {\r\n props: { variant: 'white' },\r\n style: { ...whiteButtonStyle },\r\n },\r\n {\r\n props: { variant: 'white', size: 'large' },\r\n style: { ...whiteButtonStyle, ...largeButtonStyle },\r\n },\r\n {\r\n props: { variant: 'white', size: 'small' },\r\n style: { ...whiteButtonStyle, ...smallButtonStyle },\r\n },\r\n ],\r\n },\r\n MuiInputLabel: {\r\n styleOverrides: {\r\n root: {\r\n fontSize: 14,\r\n color: appColors.grey,\r\n '&.MuiInputLabel-shrink': {\r\n color: appColors.grey,\r\n fontSize: 16,\r\n },\r\n },\r\n },\r\n },\r\n MuiSlider: {\r\n styleOverrides: {\r\n thumb: {\r\n color: theme.palette.common.white,\r\n border: `1px solid ${appColors.grey}`,\r\n height: theme.spacing(3),\r\n width: theme.spacing(3),\r\n },\r\n track: {\r\n background: appGradient,\r\n borderRadius: 4,\r\n height: theme.spacing(),\r\n },\r\n },\r\n },\r\n MuiTabs: {\r\n styleOverrides: {\r\n indicator: {\r\n backgroundColor: 'transparent',\r\n color: theme.palette.common.black,\r\n border: 0,\r\n borderBottom: `1px solid`,\r\n // this border image allows for the tab underline indicator to only be the width of the button label\r\n borderImage: `linear-gradient(to right, transparent ${tabButtonSidePadding}, black ${tabButtonSidePadding}, black calc(100% - ${tabButtonSidePadding}), transparent calc(100% - ${tabButtonSidePadding})) 1 0`,\r\n borderImageSlice: 1,\r\n },\r\n },\r\n },\r\n MuiCard: {\r\n styleOverrides: {\r\n root: {\r\n boxShadow: '0 2px 4px 0 rgba(0, 0, 0, 0.05)',\r\n '& .MuiCardContent-root:last-child': {\r\n // TODO: figure out why this is not working?!\r\n paddingBottom: '16px',\r\n },\r\n },\r\n },\r\n },\r\n MuiToggleButton: {\r\n styleOverrides: {\r\n root: {\r\n width: '120px',\r\n color: appColors.black,\r\n fontSize: 12,\r\n backgroundColor: appColors.lightGrey,\r\n '&.Mui-selected, &.Mui-selected:hover': {\r\n color: appColors.white,\r\n backgroundColor: appColors.black\r\n }\r\n },\r\n },\r\n }\r\n },\r\n});\r\n\r\nexport default theme;\r\n","import React from 'react';\r\n\r\nimport { errorBoundaryPropTypes } from './proptypes';\r\n\r\nclass ErrorBoundary extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { error: null, errorInfo: null };\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n // Catch errors in any components below and re-render with error message\r\n this.setState({\r\n error,\r\n errorInfo,\r\n });\r\n\r\n window.NREUM.noticeError(error, { errorMessage: errorInfo, errorType: 'my-utr-selfrate' });\r\n }\r\n\r\n render() {\r\n const { main } = this.props;\r\n const { error, errorInfo } = this.state;\r\n const env = process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development';\r\n\r\n if (errorInfo) {\r\n return (\r\n
    \r\n {main\r\n ?

    Something went wrong.

    \r\n : Something went wrong.}\r\n
    \r\n {error?.toString() && env !== 'production'}\r\n
    \r\n {errorInfo.componentStack}\r\n
    \r\n
    \r\n );\r\n }\r\n // Normally, just render children\r\n return this.props.children;\r\n }\r\n}\r\n\r\nErrorBoundary.propTypes = {\r\n ...errorBoundaryPropTypes\r\n};\r\n\r\nexport default ErrorBoundary;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport { BrowserRouter } from 'react-router-dom';\r\n\r\nimport { Provider } from 'react-redux';\r\nimport { ThemeProvider } from '@mui/material/styles';\r\n\r\nimport './assets/sass/global.scss';\r\nimport App from './App';\r\nimport { persistor, store } from './redux/store';\r\nimport theme from './theme';\r\nimport ErrorBoundary from './utils/ErrorBoundary';\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\n// reportWebVitals();\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"header_container__3Ngg_\",\"container-fluid\":\"header_container-fluid__XpMai\",\"container-xl\":\"header_container-xl__1fkK6\",\"container-lg\":\"header_container-lg__3N3A_\",\"container-md\":\"header_container-md__2PNVi\",\"container-sm\":\"header_container-sm__3bb9u\",\"row\":\"header_row__25LVs\",\"no-gutters\":\"header_no-gutters__24jSF\",\"col\":\"header_col__1Gv7B\",\"col-xl\":\"header_col-xl__gCSOz\",\"col-xl-auto\":\"header_col-xl-auto__34ANA\",\"col-xl-12\":\"header_col-xl-12__3dxux\",\"col-xl-11\":\"header_col-xl-11__wwzxL\",\"col-xl-10\":\"header_col-xl-10__IjN0y\",\"col-xl-9\":\"header_col-xl-9__18EW2\",\"col-xl-8\":\"header_col-xl-8__3N2Yp\",\"col-xl-7\":\"header_col-xl-7__7Inqs\",\"col-xl-6\":\"header_col-xl-6__1ai14\",\"col-xl-5\":\"header_col-xl-5__3dGzX\",\"col-xl-4\":\"header_col-xl-4__wxMtk\",\"col-xl-3\":\"header_col-xl-3__3o9k0\",\"col-xl-2\":\"header_col-xl-2__3iikg\",\"col-xl-1\":\"header_col-xl-1__1AwG9\",\"col-lg\":\"header_col-lg__78pWk\",\"col-lg-auto\":\"header_col-lg-auto__3qlaL\",\"col-lg-12\":\"header_col-lg-12__2eeeY\",\"col-lg-11\":\"header_col-lg-11__3xeyq\",\"col-lg-10\":\"header_col-lg-10__2_mvq\",\"col-lg-9\":\"header_col-lg-9__5E4f6\",\"col-lg-8\":\"header_col-lg-8__1aYhK\",\"col-lg-7\":\"header_col-lg-7__2il9k\",\"col-lg-6\":\"header_col-lg-6__1cK_q\",\"col-lg-5\":\"header_col-lg-5__2HcQh\",\"col-lg-4\":\"header_col-lg-4__3JnAK\",\"col-lg-3\":\"header_col-lg-3__2dteL\",\"col-lg-2\":\"header_col-lg-2__2rNUq\",\"col-lg-1\":\"header_col-lg-1__1otSS\",\"col-md\":\"header_col-md__1WedE\",\"col-md-auto\":\"header_col-md-auto__170L0\",\"col-md-12\":\"header_col-md-12__25Qie\",\"col-md-11\":\"header_col-md-11__2qNWx\",\"col-md-10\":\"header_col-md-10__2NAbB\",\"col-md-9\":\"header_col-md-9__W1hy9\",\"col-md-8\":\"header_col-md-8__2wCjW\",\"col-md-7\":\"header_col-md-7__1DczZ\",\"col-md-6\":\"header_col-md-6__2u6_4\",\"col-md-5\":\"header_col-md-5__Kgz3W\",\"col-md-4\":\"header_col-md-4__3HlI6\",\"col-md-3\":\"header_col-md-3__1bZwk\",\"col-md-2\":\"header_col-md-2__2COTI\",\"col-md-1\":\"header_col-md-1__3Tqkb\",\"col-sm\":\"header_col-sm__21C_w\",\"col-sm-auto\":\"header_col-sm-auto__VSMUJ\",\"col-sm-12\":\"header_col-sm-12__kV-db\",\"col-sm-11\":\"header_col-sm-11__3HQvO\",\"col-sm-10\":\"header_col-sm-10__1XsdK\",\"col-sm-9\":\"header_col-sm-9__3tNDA\",\"col-sm-8\":\"header_col-sm-8__3Tivf\",\"col-sm-7\":\"header_col-sm-7__1WiIX\",\"col-sm-6\":\"header_col-sm-6__Rh-HN\",\"col-sm-5\":\"header_col-sm-5__33Mba\",\"col-sm-4\":\"header_col-sm-4__24UGs\",\"col-sm-3\":\"header_col-sm-3__3gg3Q\",\"col-sm-2\":\"header_col-sm-2__1kNsf\",\"col-sm-1\":\"header_col-sm-1__36CiL\",\"col-auto\":\"header_col-auto__ApVT2\",\"col-12\":\"header_col-12__3k06X\",\"col-11\":\"header_col-11__2w60A\",\"col-10\":\"header_col-10__YIgiz\",\"col-9\":\"header_col-9__1baDH\",\"col-8\":\"header_col-8__1xq-A\",\"col-7\":\"header_col-7__18gk2\",\"col-6\":\"header_col-6__2gWXb\",\"col-5\":\"header_col-5__2Y0x1\",\"col-4\":\"header_col-4__2z3ZD\",\"col-3\":\"header_col-3__dYf5x\",\"col-2\":\"header_col-2__1MkWt\",\"col-1\":\"header_col-1__i547E\",\"row-cols-1\":\"header_row-cols-1__2vC2U\",\"row-cols-2\":\"header_row-cols-2__2FCUa\",\"row-cols-3\":\"header_row-cols-3__35vrZ\",\"row-cols-4\":\"header_row-cols-4__2AmI7\",\"row-cols-5\":\"header_row-cols-5__Z68uO\",\"row-cols-6\":\"header_row-cols-6__2WvAx\",\"order-first\":\"header_order-first__1HP08\",\"order-last\":\"header_order-last__LTwr9\",\"order-0\":\"header_order-0__q0p7X\",\"order-1\":\"header_order-1__94whN\",\"order-2\":\"header_order-2__17ON3\",\"order-3\":\"header_order-3__1Ep_4\",\"order-4\":\"header_order-4__3zDfz\",\"order-5\":\"header_order-5__3cN51\",\"order-6\":\"header_order-6__y8Ouk\",\"order-7\":\"header_order-7__2rHow\",\"order-8\":\"header_order-8__28-H4\",\"order-9\":\"header_order-9__eih2C\",\"order-10\":\"header_order-10__12FRb\",\"order-11\":\"header_order-11__xaVkH\",\"order-12\":\"header_order-12__23rFK\",\"offset-1\":\"header_offset-1__2j_cx\",\"offset-2\":\"header_offset-2__4eHBs\",\"offset-3\":\"header_offset-3__3AWEX\",\"offset-4\":\"header_offset-4__stz-5\",\"offset-5\":\"header_offset-5__1RCsB\",\"offset-6\":\"header_offset-6__vy6Lb\",\"offset-7\":\"header_offset-7__2KBBX\",\"offset-8\":\"header_offset-8__3HAxH\",\"offset-9\":\"header_offset-9__2SOsY\",\"offset-10\":\"header_offset-10__1QKxe\",\"offset-11\":\"header_offset-11__2EALQ\",\"row-cols-sm-1\":\"header_row-cols-sm-1__2u4Qk\",\"row-cols-sm-2\":\"header_row-cols-sm-2__2FAnV\",\"row-cols-sm-3\":\"header_row-cols-sm-3__1RJZI\",\"row-cols-sm-4\":\"header_row-cols-sm-4__2g6bh\",\"row-cols-sm-5\":\"header_row-cols-sm-5__1BGLZ\",\"row-cols-sm-6\":\"header_row-cols-sm-6__2bj9Y\",\"order-sm-first\":\"header_order-sm-first__ai8oi\",\"order-sm-last\":\"header_order-sm-last__1IRi3\",\"order-sm-0\":\"header_order-sm-0__uishi\",\"order-sm-1\":\"header_order-sm-1__1NvxO\",\"order-sm-2\":\"header_order-sm-2__30Ggw\",\"order-sm-3\":\"header_order-sm-3__3uZy7\",\"order-sm-4\":\"header_order-sm-4__2XR-j\",\"order-sm-5\":\"header_order-sm-5__PoPCi\",\"order-sm-6\":\"header_order-sm-6__3lADH\",\"order-sm-7\":\"header_order-sm-7__TZcIl\",\"order-sm-8\":\"header_order-sm-8__eF0ui\",\"order-sm-9\":\"header_order-sm-9__1KNJo\",\"order-sm-10\":\"header_order-sm-10__1CDEx\",\"order-sm-11\":\"header_order-sm-11__1XOEz\",\"order-sm-12\":\"header_order-sm-12__rriim\",\"offset-sm-0\":\"header_offset-sm-0__1PrvO\",\"offset-sm-1\":\"header_offset-sm-1__13q1O\",\"offset-sm-2\":\"header_offset-sm-2__3G6u4\",\"offset-sm-3\":\"header_offset-sm-3__2-0PD\",\"offset-sm-4\":\"header_offset-sm-4__1L202\",\"offset-sm-5\":\"header_offset-sm-5__345gD\",\"offset-sm-6\":\"header_offset-sm-6__2Ec6H\",\"offset-sm-7\":\"header_offset-sm-7__scD0P\",\"offset-sm-8\":\"header_offset-sm-8__2AkrL\",\"offset-sm-9\":\"header_offset-sm-9__1YQ-L\",\"offset-sm-10\":\"header_offset-sm-10__2A7JL\",\"offset-sm-11\":\"header_offset-sm-11__3VEpT\",\"row-cols-md-1\":\"header_row-cols-md-1__3j3zB\",\"row-cols-md-2\":\"header_row-cols-md-2__29Enq\",\"row-cols-md-3\":\"header_row-cols-md-3__1TZWl\",\"row-cols-md-4\":\"header_row-cols-md-4__2VMrO\",\"row-cols-md-5\":\"header_row-cols-md-5__2P1kG\",\"row-cols-md-6\":\"header_row-cols-md-6__2WuLn\",\"order-md-first\":\"header_order-md-first__2inco\",\"order-md-last\":\"header_order-md-last__gohoV\",\"order-md-0\":\"header_order-md-0__3Zl9M\",\"order-md-1\":\"header_order-md-1__kK6Xq\",\"order-md-2\":\"header_order-md-2__2BrA5\",\"order-md-3\":\"header_order-md-3__3E59y\",\"order-md-4\":\"header_order-md-4__1FEaE\",\"order-md-5\":\"header_order-md-5__qFk9S\",\"order-md-6\":\"header_order-md-6__ZVwHa\",\"order-md-7\":\"header_order-md-7__238fj\",\"order-md-8\":\"header_order-md-8__2sONP\",\"order-md-9\":\"header_order-md-9__2Gx3X\",\"order-md-10\":\"header_order-md-10__3AnaQ\",\"order-md-11\":\"header_order-md-11__3WnfS\",\"order-md-12\":\"header_order-md-12__hhfC1\",\"offset-md-0\":\"header_offset-md-0__3uHAx\",\"offset-md-1\":\"header_offset-md-1__1kYps\",\"offset-md-2\":\"header_offset-md-2__2WcrB\",\"offset-md-3\":\"header_offset-md-3__31AKc\",\"offset-md-4\":\"header_offset-md-4__2rlRN\",\"offset-md-5\":\"header_offset-md-5__2pp2x\",\"offset-md-6\":\"header_offset-md-6__YxZKu\",\"offset-md-7\":\"header_offset-md-7__2xqF7\",\"offset-md-8\":\"header_offset-md-8__3jfij\",\"offset-md-9\":\"header_offset-md-9__2frBB\",\"offset-md-10\":\"header_offset-md-10__3P-Ot\",\"offset-md-11\":\"header_offset-md-11__20-bQ\",\"row-cols-lg-1\":\"header_row-cols-lg-1__3CDkX\",\"row-cols-lg-2\":\"header_row-cols-lg-2__2xnBg\",\"row-cols-lg-3\":\"header_row-cols-lg-3__mv15e\",\"row-cols-lg-4\":\"header_row-cols-lg-4__39NbC\",\"row-cols-lg-5\":\"header_row-cols-lg-5__2mhuB\",\"row-cols-lg-6\":\"header_row-cols-lg-6__1-w7a\",\"order-lg-first\":\"header_order-lg-first__169Ca\",\"order-lg-last\":\"header_order-lg-last__10oWW\",\"order-lg-0\":\"header_order-lg-0__Hvq67\",\"order-lg-1\":\"header_order-lg-1__23HE5\",\"order-lg-2\":\"header_order-lg-2__343Q5\",\"order-lg-3\":\"header_order-lg-3__31HZi\",\"order-lg-4\":\"header_order-lg-4__f_P5u\",\"order-lg-5\":\"header_order-lg-5__1S_ig\",\"order-lg-6\":\"header_order-lg-6__1afoB\",\"order-lg-7\":\"header_order-lg-7__xUb4Q\",\"order-lg-8\":\"header_order-lg-8__2-150\",\"order-lg-9\":\"header_order-lg-9__2qjw8\",\"order-lg-10\":\"header_order-lg-10__1_lLY\",\"order-lg-11\":\"header_order-lg-11__2KMJG\",\"order-lg-12\":\"header_order-lg-12__3gkzi\",\"offset-lg-0\":\"header_offset-lg-0__z5a-y\",\"offset-lg-1\":\"header_offset-lg-1__1f5KE\",\"offset-lg-2\":\"header_offset-lg-2__3rNxg\",\"offset-lg-3\":\"header_offset-lg-3__3YjWt\",\"offset-lg-4\":\"header_offset-lg-4__2qmDl\",\"offset-lg-5\":\"header_offset-lg-5__1vshg\",\"offset-lg-6\":\"header_offset-lg-6__30Zgm\",\"offset-lg-7\":\"header_offset-lg-7__d4P0e\",\"offset-lg-8\":\"header_offset-lg-8__t179x\",\"offset-lg-9\":\"header_offset-lg-9__2ApHY\",\"offset-lg-10\":\"header_offset-lg-10__3cIMi\",\"offset-lg-11\":\"header_offset-lg-11__2pOfc\",\"row-cols-xl-1\":\"header_row-cols-xl-1__L-F4Q\",\"row-cols-xl-2\":\"header_row-cols-xl-2__2XcUG\",\"row-cols-xl-3\":\"header_row-cols-xl-3__1NC22\",\"row-cols-xl-4\":\"header_row-cols-xl-4__cYYsN\",\"row-cols-xl-5\":\"header_row-cols-xl-5__2cuaa\",\"row-cols-xl-6\":\"header_row-cols-xl-6__1G53V\",\"order-xl-first\":\"header_order-xl-first__28ZYO\",\"order-xl-last\":\"header_order-xl-last__37YuI\",\"order-xl-0\":\"header_order-xl-0__2MSue\",\"order-xl-1\":\"header_order-xl-1__3x0m0\",\"order-xl-2\":\"header_order-xl-2__3VanM\",\"order-xl-3\":\"header_order-xl-3__2m2bU\",\"order-xl-4\":\"header_order-xl-4__3RvMv\",\"order-xl-5\":\"header_order-xl-5__3MwGU\",\"order-xl-6\":\"header_order-xl-6__2F-6p\",\"order-xl-7\":\"header_order-xl-7__3oO4v\",\"order-xl-8\":\"header_order-xl-8__1VRj5\",\"order-xl-9\":\"header_order-xl-9__CKzSI\",\"order-xl-10\":\"header_order-xl-10__202xf\",\"order-xl-11\":\"header_order-xl-11__2-qW3\",\"order-xl-12\":\"header_order-xl-12__BWed9\",\"offset-xl-0\":\"header_offset-xl-0__1dKK3\",\"offset-xl-1\":\"header_offset-xl-1__2FE8J\",\"offset-xl-2\":\"header_offset-xl-2__3K4JG\",\"offset-xl-3\":\"header_offset-xl-3__1cl_z\",\"offset-xl-4\":\"header_offset-xl-4__2cwSH\",\"offset-xl-5\":\"header_offset-xl-5__1Xwuj\",\"offset-xl-6\":\"header_offset-xl-6__1Bwig\",\"offset-xl-7\":\"header_offset-xl-7__3F9_0\",\"offset-xl-8\":\"header_offset-xl-8__2iXlJ\",\"offset-xl-9\":\"header_offset-xl-9__3nyuy\",\"offset-xl-10\":\"header_offset-xl-10__2MORZ\",\"offset-xl-11\":\"header_offset-xl-11__2zrzn\",\"d-none\":\"header_d-none__1NgDy\",\"d-inline\":\"header_d-inline__8cRhN\",\"d-inline-block\":\"header_d-inline-block__6O7-F\",\"d-block\":\"header_d-block__1mFv0\",\"d-table\":\"header_d-table__2Tz_U\",\"d-table-row\":\"header_d-table-row__1fgF-\",\"d-table-cell\":\"header_d-table-cell__j-Vba\",\"d-flex\":\"header_d-flex__2r4cr\",\"d-inline-flex\":\"header_d-inline-flex__165TW\",\"d-sm-none\":\"header_d-sm-none__33w-V\",\"d-sm-inline\":\"header_d-sm-inline__1Grpg\",\"d-sm-inline-block\":\"header_d-sm-inline-block__z89uJ\",\"d-sm-block\":\"header_d-sm-block__2HBaQ\",\"d-sm-table\":\"header_d-sm-table__2Vw8N\",\"d-sm-table-row\":\"header_d-sm-table-row__2Kka4\",\"d-sm-table-cell\":\"header_d-sm-table-cell__Gpi8i\",\"d-sm-flex\":\"header_d-sm-flex__3U98o\",\"d-sm-inline-flex\":\"header_d-sm-inline-flex__2GLUA\",\"d-md-none\":\"header_d-md-none__3yg4g\",\"d-md-inline\":\"header_d-md-inline__3Qxm9\",\"d-md-inline-block\":\"header_d-md-inline-block__3Hc-1\",\"d-md-block\":\"header_d-md-block__d4-Fq\",\"d-md-table\":\"header_d-md-table__2FuLA\",\"d-md-table-row\":\"header_d-md-table-row__1kBC9\",\"d-md-table-cell\":\"header_d-md-table-cell__7vgD3\",\"d-md-flex\":\"header_d-md-flex__hQ2eu\",\"d-md-inline-flex\":\"header_d-md-inline-flex__1V4Ai\",\"d-lg-none\":\"header_d-lg-none__3XKXm\",\"d-lg-inline\":\"header_d-lg-inline__-XuNO\",\"d-lg-inline-block\":\"header_d-lg-inline-block__1OVBd\",\"d-lg-block\":\"header_d-lg-block__12s8s\",\"d-lg-table\":\"header_d-lg-table__3CzVA\",\"d-lg-table-row\":\"header_d-lg-table-row__bwxkm\",\"d-lg-table-cell\":\"header_d-lg-table-cell__3U-ch\",\"d-lg-flex\":\"header_d-lg-flex__23Xob\",\"d-lg-inline-flex\":\"header_d-lg-inline-flex__3RS0u\",\"d-xl-none\":\"header_d-xl-none__whNcG\",\"d-xl-inline\":\"header_d-xl-inline__6kkmD\",\"d-xl-inline-block\":\"header_d-xl-inline-block__3osmE\",\"d-xl-block\":\"header_d-xl-block__3nXxn\",\"d-xl-table\":\"header_d-xl-table__2NES0\",\"d-xl-table-row\":\"header_d-xl-table-row__2zkJG\",\"d-xl-table-cell\":\"header_d-xl-table-cell__3QN6y\",\"d-xl-flex\":\"header_d-xl-flex__2cq7N\",\"d-xl-inline-flex\":\"header_d-xl-inline-flex__dpE2D\",\"d-print-none\":\"header_d-print-none__20zym\",\"d-print-inline\":\"header_d-print-inline__153zg\",\"d-print-inline-block\":\"header_d-print-inline-block__3J44V\",\"d-print-block\":\"header_d-print-block__22qt8\",\"d-print-table\":\"header_d-print-table__1HioU\",\"d-print-table-row\":\"header_d-print-table-row__tdMT-\",\"d-print-table-cell\":\"header_d-print-table-cell__1X-5K\",\"d-print-flex\":\"header_d-print-flex__1ACNT\",\"d-print-inline-flex\":\"header_d-print-inline-flex__3wsa0\",\"flex-row\":\"header_flex-row__qjXEB\",\"flex-column\":\"header_flex-column__1GWTD\",\"flex-row-reverse\":\"header_flex-row-reverse__3DxhX\",\"flex-column-reverse\":\"header_flex-column-reverse__1ctgd\",\"flex-wrap\":\"header_flex-wrap__1n7Yd\",\"flex-nowrap\":\"header_flex-nowrap__1eb1R\",\"flex-wrap-reverse\":\"header_flex-wrap-reverse__3NABW\",\"flex-fill\":\"header_flex-fill__erRmo\",\"flex-grow-0\":\"header_flex-grow-0__13PEb\",\"flex-grow-1\":\"header_flex-grow-1__1d6J7\",\"flex-shrink-0\":\"header_flex-shrink-0__UERVl\",\"flex-shrink-1\":\"header_flex-shrink-1__2u75A\",\"justify-content-start\":\"header_justify-content-start__38eIo\",\"justify-content-end\":\"header_justify-content-end__xNQec\",\"justify-content-center\":\"header_justify-content-center__3kb13\",\"justify-content-between\":\"header_justify-content-between__3BGr2\",\"justify-content-around\":\"header_justify-content-around__1pYye\",\"align-items-start\":\"header_align-items-start__1J0lx\",\"align-items-end\":\"header_align-items-end__yigb0\",\"align-items-center\":\"header_align-items-center__k8kTV\",\"align-items-baseline\":\"header_align-items-baseline__TZ-oK\",\"align-items-stretch\":\"header_align-items-stretch__233sz\",\"align-content-start\":\"header_align-content-start__2ez5A\",\"align-content-end\":\"header_align-content-end__W8vHE\",\"align-content-center\":\"header_align-content-center__2MNTY\",\"align-content-between\":\"header_align-content-between__2Hn1Z\",\"align-content-around\":\"header_align-content-around__3yNcF\",\"align-content-stretch\":\"header_align-content-stretch__2Reaa\",\"align-self-auto\":\"header_align-self-auto__3fB17\",\"align-self-start\":\"header_align-self-start__3nrDm\",\"align-self-end\":\"header_align-self-end__37ZrT\",\"align-self-center\":\"header_align-self-center__1oai0\",\"align-self-baseline\":\"header_align-self-baseline__3KWpX\",\"align-self-stretch\":\"header_align-self-stretch__CKpkR\",\"flex-sm-row\":\"header_flex-sm-row__2Iw6R\",\"flex-sm-column\":\"header_flex-sm-column__3zsFK\",\"flex-sm-row-reverse\":\"header_flex-sm-row-reverse__uMnkw\",\"flex-sm-column-reverse\":\"header_flex-sm-column-reverse__2xmJJ\",\"flex-sm-wrap\":\"header_flex-sm-wrap__2RfAK\",\"flex-sm-nowrap\":\"header_flex-sm-nowrap__2iEg-\",\"flex-sm-wrap-reverse\":\"header_flex-sm-wrap-reverse__2p2TD\",\"flex-sm-fill\":\"header_flex-sm-fill__1nivg\",\"flex-sm-grow-0\":\"header_flex-sm-grow-0__1Qijj\",\"flex-sm-grow-1\":\"header_flex-sm-grow-1__1FWXU\",\"flex-sm-shrink-0\":\"header_flex-sm-shrink-0__1pB9X\",\"flex-sm-shrink-1\":\"header_flex-sm-shrink-1__3zVuK\",\"justify-content-sm-start\":\"header_justify-content-sm-start__25Lhk\",\"justify-content-sm-end\":\"header_justify-content-sm-end__3xoNn\",\"justify-content-sm-center\":\"header_justify-content-sm-center__35X7A\",\"justify-content-sm-between\":\"header_justify-content-sm-between__1LBGJ\",\"justify-content-sm-around\":\"header_justify-content-sm-around__lLr-W\",\"align-items-sm-start\":\"header_align-items-sm-start__12n3f\",\"align-items-sm-end\":\"header_align-items-sm-end__1oEND\",\"align-items-sm-center\":\"header_align-items-sm-center__3jcnJ\",\"align-items-sm-baseline\":\"header_align-items-sm-baseline__1E0wW\",\"align-items-sm-stretch\":\"header_align-items-sm-stretch__1OJ--\",\"align-content-sm-start\":\"header_align-content-sm-start__l2Jng\",\"align-content-sm-end\":\"header_align-content-sm-end__1HsbJ\",\"align-content-sm-center\":\"header_align-content-sm-center__1d-X-\",\"align-content-sm-between\":\"header_align-content-sm-between__15e4R\",\"align-content-sm-around\":\"header_align-content-sm-around__27c7D\",\"align-content-sm-stretch\":\"header_align-content-sm-stretch__1lzsK\",\"align-self-sm-auto\":\"header_align-self-sm-auto__PaiA7\",\"align-self-sm-start\":\"header_align-self-sm-start__gZEAQ\",\"align-self-sm-end\":\"header_align-self-sm-end__1XSOb\",\"align-self-sm-center\":\"header_align-self-sm-center__jDx-_\",\"align-self-sm-baseline\":\"header_align-self-sm-baseline__1R-yu\",\"align-self-sm-stretch\":\"header_align-self-sm-stretch__2EoL5\",\"flex-md-row\":\"header_flex-md-row__10Eyo\",\"flex-md-column\":\"header_flex-md-column__-f7yw\",\"flex-md-row-reverse\":\"header_flex-md-row-reverse__1YtKJ\",\"flex-md-column-reverse\":\"header_flex-md-column-reverse__1FvFP\",\"flex-md-wrap\":\"header_flex-md-wrap__1OoCD\",\"flex-md-nowrap\":\"header_flex-md-nowrap__1ABOy\",\"flex-md-wrap-reverse\":\"header_flex-md-wrap-reverse__3GZhz\",\"flex-md-fill\":\"header_flex-md-fill__1TqoT\",\"flex-md-grow-0\":\"header_flex-md-grow-0__3nzQE\",\"flex-md-grow-1\":\"header_flex-md-grow-1__zFkI-\",\"flex-md-shrink-0\":\"header_flex-md-shrink-0__3vbI-\",\"flex-md-shrink-1\":\"header_flex-md-shrink-1__j9dcr\",\"justify-content-md-start\":\"header_justify-content-md-start__10iWO\",\"justify-content-md-end\":\"header_justify-content-md-end__3Tz06\",\"justify-content-md-center\":\"header_justify-content-md-center___wCW3\",\"justify-content-md-between\":\"header_justify-content-md-between__3igt-\",\"justify-content-md-around\":\"header_justify-content-md-around__1Ct5m\",\"align-items-md-start\":\"header_align-items-md-start__3CUYe\",\"align-items-md-end\":\"header_align-items-md-end__1iSi2\",\"align-items-md-center\":\"header_align-items-md-center__1KHfZ\",\"align-items-md-baseline\":\"header_align-items-md-baseline__9sdsc\",\"align-items-md-stretch\":\"header_align-items-md-stretch__1Kw_t\",\"align-content-md-start\":\"header_align-content-md-start__10o7e\",\"align-content-md-end\":\"header_align-content-md-end__yidFO\",\"align-content-md-center\":\"header_align-content-md-center__5Wug8\",\"align-content-md-between\":\"header_align-content-md-between__2UZbi\",\"align-content-md-around\":\"header_align-content-md-around__1Z6Oj\",\"align-content-md-stretch\":\"header_align-content-md-stretch__2ZbXO\",\"align-self-md-auto\":\"header_align-self-md-auto__1D98S\",\"align-self-md-start\":\"header_align-self-md-start__3drpU\",\"align-self-md-end\":\"header_align-self-md-end__2QpUK\",\"align-self-md-center\":\"header_align-self-md-center__1o6yd\",\"align-self-md-baseline\":\"header_align-self-md-baseline__1gvyz\",\"align-self-md-stretch\":\"header_align-self-md-stretch__F1aeg\",\"flex-lg-row\":\"header_flex-lg-row__3bobF\",\"flex-lg-column\":\"header_flex-lg-column__2WGgk\",\"flex-lg-row-reverse\":\"header_flex-lg-row-reverse__15w2y\",\"flex-lg-column-reverse\":\"header_flex-lg-column-reverse__1Nnu4\",\"flex-lg-wrap\":\"header_flex-lg-wrap__2SODp\",\"flex-lg-nowrap\":\"header_flex-lg-nowrap__ehu7O\",\"flex-lg-wrap-reverse\":\"header_flex-lg-wrap-reverse__IxOVB\",\"flex-lg-fill\":\"header_flex-lg-fill__2v7OX\",\"flex-lg-grow-0\":\"header_flex-lg-grow-0__1IrWA\",\"flex-lg-grow-1\":\"header_flex-lg-grow-1__3mc58\",\"flex-lg-shrink-0\":\"header_flex-lg-shrink-0__1IqdH\",\"flex-lg-shrink-1\":\"header_flex-lg-shrink-1__V6_YH\",\"justify-content-lg-start\":\"header_justify-content-lg-start__1oPup\",\"justify-content-lg-end\":\"header_justify-content-lg-end__97Ds_\",\"justify-content-lg-center\":\"header_justify-content-lg-center__2xwXS\",\"justify-content-lg-between\":\"header_justify-content-lg-between__H4DLA\",\"justify-content-lg-around\":\"header_justify-content-lg-around__3CuAl\",\"align-items-lg-start\":\"header_align-items-lg-start__AzUjW\",\"align-items-lg-end\":\"header_align-items-lg-end__2a2b2\",\"align-items-lg-center\":\"header_align-items-lg-center__2sxac\",\"align-items-lg-baseline\":\"header_align-items-lg-baseline__wd56p\",\"align-items-lg-stretch\":\"header_align-items-lg-stretch__Dcbne\",\"align-content-lg-start\":\"header_align-content-lg-start__24luw\",\"align-content-lg-end\":\"header_align-content-lg-end__NI13v\",\"align-content-lg-center\":\"header_align-content-lg-center__sJ0e1\",\"align-content-lg-between\":\"header_align-content-lg-between__2sq_m\",\"align-content-lg-around\":\"header_align-content-lg-around__3U8Iu\",\"align-content-lg-stretch\":\"header_align-content-lg-stretch__kXjkl\",\"align-self-lg-auto\":\"header_align-self-lg-auto__1S6eY\",\"align-self-lg-start\":\"header_align-self-lg-start__1YCDE\",\"align-self-lg-end\":\"header_align-self-lg-end__3Rhfu\",\"align-self-lg-center\":\"header_align-self-lg-center__2nlJ-\",\"align-self-lg-baseline\":\"header_align-self-lg-baseline__2D82J\",\"align-self-lg-stretch\":\"header_align-self-lg-stretch__2tWea\",\"flex-xl-row\":\"header_flex-xl-row__1OUFw\",\"flex-xl-column\":\"header_flex-xl-column__1gQCc\",\"flex-xl-row-reverse\":\"header_flex-xl-row-reverse__1QB4i\",\"flex-xl-column-reverse\":\"header_flex-xl-column-reverse__2RGro\",\"flex-xl-wrap\":\"header_flex-xl-wrap__HqBOV\",\"flex-xl-nowrap\":\"header_flex-xl-nowrap__2O_aL\",\"flex-xl-wrap-reverse\":\"header_flex-xl-wrap-reverse__3zBUF\",\"flex-xl-fill\":\"header_flex-xl-fill__2zXSk\",\"flex-xl-grow-0\":\"header_flex-xl-grow-0__25YbK\",\"flex-xl-grow-1\":\"header_flex-xl-grow-1__2GIla\",\"flex-xl-shrink-0\":\"header_flex-xl-shrink-0__3NgxH\",\"flex-xl-shrink-1\":\"header_flex-xl-shrink-1__2btSv\",\"justify-content-xl-start\":\"header_justify-content-xl-start__h_4iG\",\"justify-content-xl-end\":\"header_justify-content-xl-end__31WKm\",\"justify-content-xl-center\":\"header_justify-content-xl-center__26Lt4\",\"justify-content-xl-between\":\"header_justify-content-xl-between__1TZLH\",\"justify-content-xl-around\":\"header_justify-content-xl-around__2PQYp\",\"align-items-xl-start\":\"header_align-items-xl-start__3Cp3F\",\"align-items-xl-end\":\"header_align-items-xl-end__3f_iQ\",\"align-items-xl-center\":\"header_align-items-xl-center__1XdNF\",\"align-items-xl-baseline\":\"header_align-items-xl-baseline__2pGgE\",\"align-items-xl-stretch\":\"header_align-items-xl-stretch__1Eezg\",\"align-content-xl-start\":\"header_align-content-xl-start__1KruK\",\"align-content-xl-end\":\"header_align-content-xl-end__ZQ_FD\",\"align-content-xl-center\":\"header_align-content-xl-center__15cwN\",\"align-content-xl-between\":\"header_align-content-xl-between__3P8Ka\",\"align-content-xl-around\":\"header_align-content-xl-around__2HIx5\",\"align-content-xl-stretch\":\"header_align-content-xl-stretch__3u_-q\",\"align-self-xl-auto\":\"header_align-self-xl-auto__DOBI0\",\"align-self-xl-start\":\"header_align-self-xl-start__1dTys\",\"align-self-xl-end\":\"header_align-self-xl-end__2HuvV\",\"align-self-xl-center\":\"header_align-self-xl-center__GpP0n\",\"align-self-xl-baseline\":\"header_align-self-xl-baseline__3DBYF\",\"align-self-xl-stretch\":\"header_align-self-xl-stretch__1YdQV\",\"m-0\":\"header_m-0__2fSIL\",\"mt-0\":\"header_mt-0__3uAm5\",\"my-0\":\"header_my-0__2Su_t\",\"mr-0\":\"header_mr-0__DSV6v\",\"mx-0\":\"header_mx-0__3vqdF\",\"mb-0\":\"header_mb-0__3nNY5\",\"ml-0\":\"header_ml-0__3WVdY\",\"m-1\":\"header_m-1__12n7I\",\"mt-1\":\"header_mt-1__25I1z\",\"my-1\":\"header_my-1__1Xamx\",\"mr-1\":\"header_mr-1__3MQ-H\",\"mx-1\":\"header_mx-1__2odEB\",\"mb-1\":\"header_mb-1__1AvRJ\",\"ml-1\":\"header_ml-1__FYF6z\",\"m-2\":\"header_m-2__14AoF\",\"mt-2\":\"header_mt-2__V2e9-\",\"my-2\":\"header_my-2__3HDjx\",\"mr-2\":\"header_mr-2__3n2yP\",\"mx-2\":\"header_mx-2__tYsJb\",\"mb-2\":\"header_mb-2__3jhfW\",\"ml-2\":\"header_ml-2__Mloyp\",\"m-3\":\"header_m-3__3gvA_\",\"mt-3\":\"header_mt-3__ogI1y\",\"my-3\":\"header_my-3__eeAUa\",\"mr-3\":\"header_mr-3__x1K0H\",\"mx-3\":\"header_mx-3__2_7dV\",\"mb-3\":\"header_mb-3__ujdjH\",\"ml-3\":\"header_ml-3__1N-jO\",\"m-4\":\"header_m-4__CrwR3\",\"mt-4\":\"header_mt-4__AennR\",\"my-4\":\"header_my-4__1AEhB\",\"mr-4\":\"header_mr-4__3fOid\",\"mx-4\":\"header_mx-4__FJXro\",\"mb-4\":\"header_mb-4__2nd48\",\"ml-4\":\"header_ml-4__34Zv-\",\"m-5\":\"header_m-5__30MnC\",\"mt-5\":\"header_mt-5__3DhX0\",\"my-5\":\"header_my-5__1BBOp\",\"mr-5\":\"header_mr-5__3wJR8\",\"mx-5\":\"header_mx-5__3xSst\",\"mb-5\":\"header_mb-5__359EK\",\"ml-5\":\"header_ml-5__2bi6V\",\"p-0\":\"header_p-0__21qj8\",\"pt-0\":\"header_pt-0__259hM\",\"py-0\":\"header_py-0__3SZAH\",\"pr-0\":\"header_pr-0__3lHXP\",\"px-0\":\"header_px-0__YygxH\",\"pb-0\":\"header_pb-0__1uzCB\",\"pl-0\":\"header_pl-0__2vo5e\",\"p-1\":\"header_p-1__2Sba5\",\"pt-1\":\"header_pt-1__1OSkC\",\"py-1\":\"header_py-1__2bhnl\",\"pr-1\":\"header_pr-1__22v2w\",\"px-1\":\"header_px-1__1dLOB\",\"pb-1\":\"header_pb-1__qAQYE\",\"pl-1\":\"header_pl-1__u6cmp\",\"p-2\":\"header_p-2__3Tu4S\",\"pt-2\":\"header_pt-2__31FnK\",\"py-2\":\"header_py-2__DrUgL\",\"pr-2\":\"header_pr-2__3bhOH\",\"px-2\":\"header_px-2__2H7P0\",\"pb-2\":\"header_pb-2__2BqLe\",\"pl-2\":\"header_pl-2__1yHrD\",\"p-3\":\"header_p-3__3RlHd\",\"pt-3\":\"header_pt-3__VVlPP\",\"py-3\":\"header_py-3__QmRMV\",\"pr-3\":\"header_pr-3__1W07d\",\"px-3\":\"header_px-3__2-So1\",\"pb-3\":\"header_pb-3__3id8s\",\"pl-3\":\"header_pl-3__2oKOL\",\"p-4\":\"header_p-4__3xWGK\",\"pt-4\":\"header_pt-4__2Lw5S\",\"py-4\":\"header_py-4__pr1At\",\"pr-4\":\"header_pr-4__jHYv3\",\"px-4\":\"header_px-4__2Pcdh\",\"pb-4\":\"header_pb-4___bjmX\",\"pl-4\":\"header_pl-4__2Hltc\",\"p-5\":\"header_p-5__2sQcB\",\"pt-5\":\"header_pt-5__3Z8SO\",\"py-5\":\"header_py-5__2ytKU\",\"pr-5\":\"header_pr-5__2stPT\",\"px-5\":\"header_px-5__2aZEa\",\"pb-5\":\"header_pb-5__1vdzv\",\"pl-5\":\"header_pl-5__1bPVy\",\"m-n1\":\"header_m-n1__2zdAV\",\"mt-n1\":\"header_mt-n1__3dEsX\",\"my-n1\":\"header_my-n1__34uuE\",\"mr-n1\":\"header_mr-n1__qo2-r\",\"mx-n1\":\"header_mx-n1__3sl_z\",\"mb-n1\":\"header_mb-n1__2lVFX\",\"ml-n1\":\"header_ml-n1__3wzcm\",\"m-n2\":\"header_m-n2__3_-rf\",\"mt-n2\":\"header_mt-n2__3AJJ2\",\"my-n2\":\"header_my-n2__ZUzGr\",\"mr-n2\":\"header_mr-n2__1Wrb1\",\"mx-n2\":\"header_mx-n2__1TRhL\",\"mb-n2\":\"header_mb-n2__-nYGg\",\"ml-n2\":\"header_ml-n2__10Ypj\",\"m-n3\":\"header_m-n3__3HI8b\",\"mt-n3\":\"header_mt-n3__3fdQm\",\"my-n3\":\"header_my-n3__3rXTL\",\"mr-n3\":\"header_mr-n3__5Yz0O\",\"mx-n3\":\"header_mx-n3__RbINR\",\"mb-n3\":\"header_mb-n3__345Es\",\"ml-n3\":\"header_ml-n3__w4xUM\",\"m-n4\":\"header_m-n4__RDYus\",\"mt-n4\":\"header_mt-n4__1hreh\",\"my-n4\":\"header_my-n4__mxGkF\",\"mr-n4\":\"header_mr-n4__3-zMZ\",\"mx-n4\":\"header_mx-n4__jl6l2\",\"mb-n4\":\"header_mb-n4__AVp3G\",\"ml-n4\":\"header_ml-n4__26FUf\",\"m-n5\":\"header_m-n5__2syA5\",\"mt-n5\":\"header_mt-n5__1YPHp\",\"my-n5\":\"header_my-n5__3BYC0\",\"mr-n5\":\"header_mr-n5__3m9zX\",\"mx-n5\":\"header_mx-n5__34Ivl\",\"mb-n5\":\"header_mb-n5__5mTGX\",\"ml-n5\":\"header_ml-n5__2tcxg\",\"m-auto\":\"header_m-auto__37sAu\",\"mt-auto\":\"header_mt-auto__11Lwh\",\"my-auto\":\"header_my-auto__ydVek\",\"mr-auto\":\"header_mr-auto__1dPkD\",\"mx-auto\":\"header_mx-auto__2Lu28\",\"mb-auto\":\"header_mb-auto__3Q7wr\",\"ml-auto\":\"header_ml-auto__1PplA\",\"m-sm-0\":\"header_m-sm-0__1pvrA\",\"mt-sm-0\":\"header_mt-sm-0__1kDqE\",\"my-sm-0\":\"header_my-sm-0__1xmQH\",\"mr-sm-0\":\"header_mr-sm-0__37hvH\",\"mx-sm-0\":\"header_mx-sm-0__2DneY\",\"mb-sm-0\":\"header_mb-sm-0__aQFb1\",\"ml-sm-0\":\"header_ml-sm-0__f0SYN\",\"m-sm-1\":\"header_m-sm-1__eXQcf\",\"mt-sm-1\":\"header_mt-sm-1__CH45_\",\"my-sm-1\":\"header_my-sm-1__26o8s\",\"mr-sm-1\":\"header_mr-sm-1__z7sp2\",\"mx-sm-1\":\"header_mx-sm-1__hg-6s\",\"mb-sm-1\":\"header_mb-sm-1__570Mw\",\"ml-sm-1\":\"header_ml-sm-1__3Dcec\",\"m-sm-2\":\"header_m-sm-2__1VPtT\",\"mt-sm-2\":\"header_mt-sm-2__1L8f_\",\"my-sm-2\":\"header_my-sm-2__16xTv\",\"mr-sm-2\":\"header_mr-sm-2__2VxiP\",\"mx-sm-2\":\"header_mx-sm-2__3LySo\",\"mb-sm-2\":\"header_mb-sm-2__2wXFQ\",\"ml-sm-2\":\"header_ml-sm-2__3VzVv\",\"m-sm-3\":\"header_m-sm-3__3WrVl\",\"mt-sm-3\":\"header_mt-sm-3__1u8uq\",\"my-sm-3\":\"header_my-sm-3__1r7zW\",\"mr-sm-3\":\"header_mr-sm-3__1oLhR\",\"mx-sm-3\":\"header_mx-sm-3__1Zp2M\",\"mb-sm-3\":\"header_mb-sm-3__3EnXM\",\"ml-sm-3\":\"header_ml-sm-3__3dAb1\",\"m-sm-4\":\"header_m-sm-4__1h1b8\",\"mt-sm-4\":\"header_mt-sm-4__1305s\",\"my-sm-4\":\"header_my-sm-4__3yfaZ\",\"mr-sm-4\":\"header_mr-sm-4__1204a\",\"mx-sm-4\":\"header_mx-sm-4__LGKmb\",\"mb-sm-4\":\"header_mb-sm-4__3HVyl\",\"ml-sm-4\":\"header_ml-sm-4__V8kCx\",\"m-sm-5\":\"header_m-sm-5__XNnmJ\",\"mt-sm-5\":\"header_mt-sm-5__3YrQX\",\"my-sm-5\":\"header_my-sm-5__cH8SN\",\"mr-sm-5\":\"header_mr-sm-5__PvHP0\",\"mx-sm-5\":\"header_mx-sm-5__Di2vx\",\"mb-sm-5\":\"header_mb-sm-5__1F1Ph\",\"ml-sm-5\":\"header_ml-sm-5__1Wfv5\",\"p-sm-0\":\"header_p-sm-0__UCWYK\",\"pt-sm-0\":\"header_pt-sm-0__3Z_7k\",\"py-sm-0\":\"header_py-sm-0__2BVH1\",\"pr-sm-0\":\"header_pr-sm-0__3uN9r\",\"px-sm-0\":\"header_px-sm-0__1zJWQ\",\"pb-sm-0\":\"header_pb-sm-0__9nkqn\",\"pl-sm-0\":\"header_pl-sm-0__2PMJM\",\"p-sm-1\":\"header_p-sm-1__2LRH2\",\"pt-sm-1\":\"header_pt-sm-1__2A2VQ\",\"py-sm-1\":\"header_py-sm-1__1DhXL\",\"pr-sm-1\":\"header_pr-sm-1__369IV\",\"px-sm-1\":\"header_px-sm-1__2BMCG\",\"pb-sm-1\":\"header_pb-sm-1__3iM6_\",\"pl-sm-1\":\"header_pl-sm-1__196UN\",\"p-sm-2\":\"header_p-sm-2__1Dccr\",\"pt-sm-2\":\"header_pt-sm-2__zooLp\",\"py-sm-2\":\"header_py-sm-2__iQv9y\",\"pr-sm-2\":\"header_pr-sm-2__37mRP\",\"px-sm-2\":\"header_px-sm-2__zZtGN\",\"pb-sm-2\":\"header_pb-sm-2__2FlJP\",\"pl-sm-2\":\"header_pl-sm-2__fE51E\",\"p-sm-3\":\"header_p-sm-3__1HQYj\",\"pt-sm-3\":\"header_pt-sm-3__1jLdk\",\"py-sm-3\":\"header_py-sm-3__xReW4\",\"pr-sm-3\":\"header_pr-sm-3__2xtRg\",\"px-sm-3\":\"header_px-sm-3__2km53\",\"pb-sm-3\":\"header_pb-sm-3__3tWGv\",\"pl-sm-3\":\"header_pl-sm-3__2qjl5\",\"p-sm-4\":\"header_p-sm-4__ds-An\",\"pt-sm-4\":\"header_pt-sm-4__1e__c\",\"py-sm-4\":\"header_py-sm-4__3DchL\",\"pr-sm-4\":\"header_pr-sm-4__1hyVd\",\"px-sm-4\":\"header_px-sm-4__3P0Mh\",\"pb-sm-4\":\"header_pb-sm-4__3wh2u\",\"pl-sm-4\":\"header_pl-sm-4__3ahj3\",\"p-sm-5\":\"header_p-sm-5__2km6b\",\"pt-sm-5\":\"header_pt-sm-5__CzV1s\",\"py-sm-5\":\"header_py-sm-5__3pDcy\",\"pr-sm-5\":\"header_pr-sm-5__2FOe9\",\"px-sm-5\":\"header_px-sm-5__2Xsz1\",\"pb-sm-5\":\"header_pb-sm-5__nW1Ba\",\"pl-sm-5\":\"header_pl-sm-5__YCOB-\",\"m-sm-n1\":\"header_m-sm-n1__2jlAg\",\"mt-sm-n1\":\"header_mt-sm-n1__2-LBk\",\"my-sm-n1\":\"header_my-sm-n1__3I9M4\",\"mr-sm-n1\":\"header_mr-sm-n1__THXEk\",\"mx-sm-n1\":\"header_mx-sm-n1__2EcD-\",\"mb-sm-n1\":\"header_mb-sm-n1__Hzxkb\",\"ml-sm-n1\":\"header_ml-sm-n1__1EBg_\",\"m-sm-n2\":\"header_m-sm-n2__37fw0\",\"mt-sm-n2\":\"header_mt-sm-n2__3FSIH\",\"my-sm-n2\":\"header_my-sm-n2__DOl7O\",\"mr-sm-n2\":\"header_mr-sm-n2__1Jfbp\",\"mx-sm-n2\":\"header_mx-sm-n2__1Kwqs\",\"mb-sm-n2\":\"header_mb-sm-n2__2iMUO\",\"ml-sm-n2\":\"header_ml-sm-n2__DBf2H\",\"m-sm-n3\":\"header_m-sm-n3__Lo6jp\",\"mt-sm-n3\":\"header_mt-sm-n3__3IYLb\",\"my-sm-n3\":\"header_my-sm-n3__1RRfG\",\"mr-sm-n3\":\"header_mr-sm-n3__2Lta6\",\"mx-sm-n3\":\"header_mx-sm-n3__2Jr9A\",\"mb-sm-n3\":\"header_mb-sm-n3__2W62d\",\"ml-sm-n3\":\"header_ml-sm-n3__27dv2\",\"m-sm-n4\":\"header_m-sm-n4__KbG6o\",\"mt-sm-n4\":\"header_mt-sm-n4__3FgNB\",\"my-sm-n4\":\"header_my-sm-n4__1hdN0\",\"mr-sm-n4\":\"header_mr-sm-n4__3tBq7\",\"mx-sm-n4\":\"header_mx-sm-n4__1KQJd\",\"mb-sm-n4\":\"header_mb-sm-n4__2Uq-A\",\"ml-sm-n4\":\"header_ml-sm-n4__1Ytv_\",\"m-sm-n5\":\"header_m-sm-n5__NAqGF\",\"mt-sm-n5\":\"header_mt-sm-n5__1kLzc\",\"my-sm-n5\":\"header_my-sm-n5__1hrm7\",\"mr-sm-n5\":\"header_mr-sm-n5__22uzP\",\"mx-sm-n5\":\"header_mx-sm-n5__2Itpt\",\"mb-sm-n5\":\"header_mb-sm-n5__lJUuy\",\"ml-sm-n5\":\"header_ml-sm-n5__1LEuZ\",\"m-sm-auto\":\"header_m-sm-auto__1z1xD\",\"mt-sm-auto\":\"header_mt-sm-auto__3HT67\",\"my-sm-auto\":\"header_my-sm-auto__3_nsI\",\"mr-sm-auto\":\"header_mr-sm-auto__1_gys\",\"mx-sm-auto\":\"header_mx-sm-auto__28XVi\",\"mb-sm-auto\":\"header_mb-sm-auto__jA8O1\",\"ml-sm-auto\":\"header_ml-sm-auto__KGNIZ\",\"m-md-0\":\"header_m-md-0__3RnoD\",\"mt-md-0\":\"header_mt-md-0__1QlCy\",\"my-md-0\":\"header_my-md-0__WlXxf\",\"mr-md-0\":\"header_mr-md-0__H_fdR\",\"mx-md-0\":\"header_mx-md-0__1hdx1\",\"mb-md-0\":\"header_mb-md-0__2NkC5\",\"ml-md-0\":\"header_ml-md-0__3Bc7B\",\"m-md-1\":\"header_m-md-1__3_lHl\",\"mt-md-1\":\"header_mt-md-1__3KyQ0\",\"my-md-1\":\"header_my-md-1__1EIko\",\"mr-md-1\":\"header_mr-md-1__3fxMf\",\"mx-md-1\":\"header_mx-md-1__3htEh\",\"mb-md-1\":\"header_mb-md-1__2GAvq\",\"ml-md-1\":\"header_ml-md-1__Xd28f\",\"m-md-2\":\"header_m-md-2__1dcXz\",\"mt-md-2\":\"header_mt-md-2__3jnvJ\",\"my-md-2\":\"header_my-md-2__1pwBE\",\"mr-md-2\":\"header_mr-md-2__RelT6\",\"mx-md-2\":\"header_mx-md-2__367IV\",\"mb-md-2\":\"header_mb-md-2__3Skrz\",\"ml-md-2\":\"header_ml-md-2__3WGVq\",\"m-md-3\":\"header_m-md-3__3fwQ8\",\"mt-md-3\":\"header_mt-md-3__3hjYi\",\"my-md-3\":\"header_my-md-3__pU3yt\",\"mr-md-3\":\"header_mr-md-3__3hTzM\",\"mx-md-3\":\"header_mx-md-3__1amT7\",\"mb-md-3\":\"header_mb-md-3__1Rtc2\",\"ml-md-3\":\"header_ml-md-3__u8Awg\",\"m-md-4\":\"header_m-md-4__3F_IJ\",\"mt-md-4\":\"header_mt-md-4__K73aN\",\"my-md-4\":\"header_my-md-4__tH152\",\"mr-md-4\":\"header_mr-md-4__1z9v4\",\"mx-md-4\":\"header_mx-md-4__2TR-6\",\"mb-md-4\":\"header_mb-md-4__92W_8\",\"ml-md-4\":\"header_ml-md-4__75tmG\",\"m-md-5\":\"header_m-md-5__F8Hge\",\"mt-md-5\":\"header_mt-md-5__egUp2\",\"my-md-5\":\"header_my-md-5__2DRdp\",\"mr-md-5\":\"header_mr-md-5__VlBWB\",\"mx-md-5\":\"header_mx-md-5__SlwgI\",\"mb-md-5\":\"header_mb-md-5__FiNpi\",\"ml-md-5\":\"header_ml-md-5__3WmQC\",\"p-md-0\":\"header_p-md-0__3RKhp\",\"pt-md-0\":\"header_pt-md-0__1aDNi\",\"py-md-0\":\"header_py-md-0__1YEAT\",\"pr-md-0\":\"header_pr-md-0__2Vb9U\",\"px-md-0\":\"header_px-md-0__18x04\",\"pb-md-0\":\"header_pb-md-0__3dMR8\",\"pl-md-0\":\"header_pl-md-0__2rFkt\",\"p-md-1\":\"header_p-md-1__2AnSf\",\"pt-md-1\":\"header_pt-md-1__1b32-\",\"py-md-1\":\"header_py-md-1__vFxxf\",\"pr-md-1\":\"header_pr-md-1__1_xk9\",\"px-md-1\":\"header_px-md-1__3RhjG\",\"pb-md-1\":\"header_pb-md-1__1uSYb\",\"pl-md-1\":\"header_pl-md-1__108_1\",\"p-md-2\":\"header_p-md-2__2DRVR\",\"pt-md-2\":\"header_pt-md-2__umi1O\",\"py-md-2\":\"header_py-md-2__10ZNK\",\"pr-md-2\":\"header_pr-md-2__LtK-w\",\"px-md-2\":\"header_px-md-2__2YCF4\",\"pb-md-2\":\"header_pb-md-2__2NL1x\",\"pl-md-2\":\"header_pl-md-2__RFr6R\",\"p-md-3\":\"header_p-md-3__ATRAW\",\"pt-md-3\":\"header_pt-md-3__X0f9i\",\"py-md-3\":\"header_py-md-3__1arhJ\",\"pr-md-3\":\"header_pr-md-3__1iTwc\",\"px-md-3\":\"header_px-md-3__25JUS\",\"pb-md-3\":\"header_pb-md-3__3QQB1\",\"pl-md-3\":\"header_pl-md-3__2TOaa\",\"p-md-4\":\"header_p-md-4__3h8sk\",\"pt-md-4\":\"header_pt-md-4__CcHif\",\"py-md-4\":\"header_py-md-4__2T1-8\",\"pr-md-4\":\"header_pr-md-4__3dp_k\",\"px-md-4\":\"header_px-md-4__3oc6o\",\"pb-md-4\":\"header_pb-md-4__UrUny\",\"pl-md-4\":\"header_pl-md-4__1ki3H\",\"p-md-5\":\"header_p-md-5__YL-26\",\"pt-md-5\":\"header_pt-md-5__1gM5t\",\"py-md-5\":\"header_py-md-5__rzGGH\",\"pr-md-5\":\"header_pr-md-5__2dKEX\",\"px-md-5\":\"header_px-md-5__3eyj4\",\"pb-md-5\":\"header_pb-md-5__3pSWp\",\"pl-md-5\":\"header_pl-md-5__1UePb\",\"m-md-n1\":\"header_m-md-n1__3SnH4\",\"mt-md-n1\":\"header_mt-md-n1__b6wk6\",\"my-md-n1\":\"header_my-md-n1__WEf_y\",\"mr-md-n1\":\"header_mr-md-n1__qJqXx\",\"mx-md-n1\":\"header_mx-md-n1__2AWEI\",\"mb-md-n1\":\"header_mb-md-n1__16AnD\",\"ml-md-n1\":\"header_ml-md-n1__3i29q\",\"m-md-n2\":\"header_m-md-n2__1PDm6\",\"mt-md-n2\":\"header_mt-md-n2__t5sV7\",\"my-md-n2\":\"header_my-md-n2__1oyNG\",\"mr-md-n2\":\"header_mr-md-n2__9iDY3\",\"mx-md-n2\":\"header_mx-md-n2__K7-1A\",\"mb-md-n2\":\"header_mb-md-n2__2PSju\",\"ml-md-n2\":\"header_ml-md-n2__a8hEx\",\"m-md-n3\":\"header_m-md-n3__19H_e\",\"mt-md-n3\":\"header_mt-md-n3__17FMY\",\"my-md-n3\":\"header_my-md-n3__1qBhr\",\"mr-md-n3\":\"header_mr-md-n3__2doE_\",\"mx-md-n3\":\"header_mx-md-n3__jOwar\",\"mb-md-n3\":\"header_mb-md-n3__2bIDx\",\"ml-md-n3\":\"header_ml-md-n3__3ASrx\",\"m-md-n4\":\"header_m-md-n4__1SS24\",\"mt-md-n4\":\"header_mt-md-n4__2vVzG\",\"my-md-n4\":\"header_my-md-n4__13MXx\",\"mr-md-n4\":\"header_mr-md-n4__1UzWb\",\"mx-md-n4\":\"header_mx-md-n4__2dHtd\",\"mb-md-n4\":\"header_mb-md-n4__2WdS-\",\"ml-md-n4\":\"header_ml-md-n4__2nV-P\",\"m-md-n5\":\"header_m-md-n5__KT-A3\",\"mt-md-n5\":\"header_mt-md-n5__1lAIR\",\"my-md-n5\":\"header_my-md-n5__-_lBt\",\"mr-md-n5\":\"header_mr-md-n5__r14wk\",\"mx-md-n5\":\"header_mx-md-n5__36UL3\",\"mb-md-n5\":\"header_mb-md-n5__16Fhf\",\"ml-md-n5\":\"header_ml-md-n5__3XorD\",\"m-md-auto\":\"header_m-md-auto__1nEcb\",\"mt-md-auto\":\"header_mt-md-auto__LHmve\",\"my-md-auto\":\"header_my-md-auto__325bO\",\"mr-md-auto\":\"header_mr-md-auto__1lzZ2\",\"mx-md-auto\":\"header_mx-md-auto__3i4gQ\",\"mb-md-auto\":\"header_mb-md-auto__3YwG2\",\"ml-md-auto\":\"header_ml-md-auto__2hDY0\",\"m-lg-0\":\"header_m-lg-0__YZ6ED\",\"mt-lg-0\":\"header_mt-lg-0__3aHPG\",\"my-lg-0\":\"header_my-lg-0__tBnQM\",\"mr-lg-0\":\"header_mr-lg-0__3krbJ\",\"mx-lg-0\":\"header_mx-lg-0__1f-19\",\"mb-lg-0\":\"header_mb-lg-0__1FDDy\",\"ml-lg-0\":\"header_ml-lg-0__1DNn9\",\"m-lg-1\":\"header_m-lg-1__1Liom\",\"mt-lg-1\":\"header_mt-lg-1__2nqGb\",\"my-lg-1\":\"header_my-lg-1__3XzYv\",\"mr-lg-1\":\"header_mr-lg-1__1mrPp\",\"mx-lg-1\":\"header_mx-lg-1__2O3n_\",\"mb-lg-1\":\"header_mb-lg-1__v7ZHH\",\"ml-lg-1\":\"header_ml-lg-1__3Mpyo\",\"m-lg-2\":\"header_m-lg-2__3M7o1\",\"mt-lg-2\":\"header_mt-lg-2__35G_D\",\"my-lg-2\":\"header_my-lg-2__35X7u\",\"mr-lg-2\":\"header_mr-lg-2__3RlFW\",\"mx-lg-2\":\"header_mx-lg-2__1n989\",\"mb-lg-2\":\"header_mb-lg-2__3kG1v\",\"ml-lg-2\":\"header_ml-lg-2__1p8Nd\",\"m-lg-3\":\"header_m-lg-3__2dF30\",\"mt-lg-3\":\"header_mt-lg-3__dn5mi\",\"my-lg-3\":\"header_my-lg-3__3uaHr\",\"mr-lg-3\":\"header_mr-lg-3__2Hwnd\",\"mx-lg-3\":\"header_mx-lg-3__17bed\",\"mb-lg-3\":\"header_mb-lg-3__3lbDf\",\"ml-lg-3\":\"header_ml-lg-3__2Vfm1\",\"m-lg-4\":\"header_m-lg-4__2YeUK\",\"mt-lg-4\":\"header_mt-lg-4__3DDPj\",\"my-lg-4\":\"header_my-lg-4__9mV-f\",\"mr-lg-4\":\"header_mr-lg-4__1EhQZ\",\"mx-lg-4\":\"header_mx-lg-4__2ldir\",\"mb-lg-4\":\"header_mb-lg-4__pIhVh\",\"ml-lg-4\":\"header_ml-lg-4__3ZkUZ\",\"m-lg-5\":\"header_m-lg-5__2QEEt\",\"mt-lg-5\":\"header_mt-lg-5__37qCG\",\"my-lg-5\":\"header_my-lg-5__1sRJW\",\"mr-lg-5\":\"header_mr-lg-5__1gXsq\",\"mx-lg-5\":\"header_mx-lg-5__2Bs0e\",\"mb-lg-5\":\"header_mb-lg-5__3YtX6\",\"ml-lg-5\":\"header_ml-lg-5__1NRLt\",\"p-lg-0\":\"header_p-lg-0__3DpPw\",\"pt-lg-0\":\"header_pt-lg-0__2nnF9\",\"py-lg-0\":\"header_py-lg-0__-cUpr\",\"pr-lg-0\":\"header_pr-lg-0__qbAYF\",\"px-lg-0\":\"header_px-lg-0__2yyNw\",\"pb-lg-0\":\"header_pb-lg-0__2PsTo\",\"pl-lg-0\":\"header_pl-lg-0__kxGY6\",\"p-lg-1\":\"header_p-lg-1__2UJFU\",\"pt-lg-1\":\"header_pt-lg-1__3_hbj\",\"py-lg-1\":\"header_py-lg-1__2fCps\",\"pr-lg-1\":\"header_pr-lg-1__HATZo\",\"px-lg-1\":\"header_px-lg-1__dSwF0\",\"pb-lg-1\":\"header_pb-lg-1__3KMAo\",\"pl-lg-1\":\"header_pl-lg-1__1JPR0\",\"p-lg-2\":\"header_p-lg-2__37XQp\",\"pt-lg-2\":\"header_pt-lg-2__2yaWQ\",\"py-lg-2\":\"header_py-lg-2__2y91b\",\"pr-lg-2\":\"header_pr-lg-2__3Kmx5\",\"px-lg-2\":\"header_px-lg-2__1Ht4B\",\"pb-lg-2\":\"header_pb-lg-2__1jOTd\",\"pl-lg-2\":\"header_pl-lg-2__2HvOS\",\"p-lg-3\":\"header_p-lg-3__IQ7IT\",\"pt-lg-3\":\"header_pt-lg-3__32hMs\",\"py-lg-3\":\"header_py-lg-3__2K4pB\",\"pr-lg-3\":\"header_pr-lg-3__4Wms_\",\"px-lg-3\":\"header_px-lg-3__3qS57\",\"pb-lg-3\":\"header_pb-lg-3__1ldT_\",\"pl-lg-3\":\"header_pl-lg-3__2o1pU\",\"p-lg-4\":\"header_p-lg-4__23kdp\",\"pt-lg-4\":\"header_pt-lg-4__1B5Kg\",\"py-lg-4\":\"header_py-lg-4__3pj8O\",\"pr-lg-4\":\"header_pr-lg-4__3lcP_\",\"px-lg-4\":\"header_px-lg-4__1NOb-\",\"pb-lg-4\":\"header_pb-lg-4__SFE7O\",\"pl-lg-4\":\"header_pl-lg-4__2nFbh\",\"p-lg-5\":\"header_p-lg-5__1ds2T\",\"pt-lg-5\":\"header_pt-lg-5__2FLOV\",\"py-lg-5\":\"header_py-lg-5__3TnsW\",\"pr-lg-5\":\"header_pr-lg-5__1kc0p\",\"px-lg-5\":\"header_px-lg-5__3Ok_R\",\"pb-lg-5\":\"header_pb-lg-5__1H-qE\",\"pl-lg-5\":\"header_pl-lg-5__1B0Cp\",\"m-lg-n1\":\"header_m-lg-n1__12apP\",\"mt-lg-n1\":\"header_mt-lg-n1__2hGYd\",\"my-lg-n1\":\"header_my-lg-n1__3pns-\",\"mr-lg-n1\":\"header_mr-lg-n1__1N_GC\",\"mx-lg-n1\":\"header_mx-lg-n1__20Q6s\",\"mb-lg-n1\":\"header_mb-lg-n1__2fayS\",\"ml-lg-n1\":\"header_ml-lg-n1__19iev\",\"m-lg-n2\":\"header_m-lg-n2__1ICWM\",\"mt-lg-n2\":\"header_mt-lg-n2__1EM42\",\"my-lg-n2\":\"header_my-lg-n2__1Gtyv\",\"mr-lg-n2\":\"header_mr-lg-n2__Vx_NN\",\"mx-lg-n2\":\"header_mx-lg-n2__26BRg\",\"mb-lg-n2\":\"header_mb-lg-n2__cbnZ_\",\"ml-lg-n2\":\"header_ml-lg-n2__2RP5M\",\"m-lg-n3\":\"header_m-lg-n3__22J6x\",\"mt-lg-n3\":\"header_mt-lg-n3__29W4s\",\"my-lg-n3\":\"header_my-lg-n3__313QN\",\"mr-lg-n3\":\"header_mr-lg-n3__3gNdj\",\"mx-lg-n3\":\"header_mx-lg-n3__i4a9a\",\"mb-lg-n3\":\"header_mb-lg-n3__3DFUr\",\"ml-lg-n3\":\"header_ml-lg-n3__1FGEl\",\"m-lg-n4\":\"header_m-lg-n4__pFYTc\",\"mt-lg-n4\":\"header_mt-lg-n4__2fdO3\",\"my-lg-n4\":\"header_my-lg-n4__vqIkR\",\"mr-lg-n4\":\"header_mr-lg-n4__3pHKb\",\"mx-lg-n4\":\"header_mx-lg-n4__2Npji\",\"mb-lg-n4\":\"header_mb-lg-n4__3LQHa\",\"ml-lg-n4\":\"header_ml-lg-n4__WQY7O\",\"m-lg-n5\":\"header_m-lg-n5__3xn5S\",\"mt-lg-n5\":\"header_mt-lg-n5__1vv9b\",\"my-lg-n5\":\"header_my-lg-n5__3hGGV\",\"mr-lg-n5\":\"header_mr-lg-n5__t4lJX\",\"mx-lg-n5\":\"header_mx-lg-n5__D_ER2\",\"mb-lg-n5\":\"header_mb-lg-n5__12gwR\",\"ml-lg-n5\":\"header_ml-lg-n5__2UfSU\",\"m-lg-auto\":\"header_m-lg-auto__38tA-\",\"mt-lg-auto\":\"header_mt-lg-auto__yK5Q2\",\"my-lg-auto\":\"header_my-lg-auto__3HgYh\",\"mr-lg-auto\":\"header_mr-lg-auto__16CW9\",\"mx-lg-auto\":\"header_mx-lg-auto__2WjlL\",\"mb-lg-auto\":\"header_mb-lg-auto__3iRGu\",\"ml-lg-auto\":\"header_ml-lg-auto__1Obzu\",\"m-xl-0\":\"header_m-xl-0__v6JSx\",\"mt-xl-0\":\"header_mt-xl-0__2e8GI\",\"my-xl-0\":\"header_my-xl-0__2Bpum\",\"mr-xl-0\":\"header_mr-xl-0__1i1wp\",\"mx-xl-0\":\"header_mx-xl-0__LzGJi\",\"mb-xl-0\":\"header_mb-xl-0__Of5xP\",\"ml-xl-0\":\"header_ml-xl-0__1sFjQ\",\"m-xl-1\":\"header_m-xl-1__1BmTI\",\"mt-xl-1\":\"header_mt-xl-1__16OgX\",\"my-xl-1\":\"header_my-xl-1__3M82k\",\"mr-xl-1\":\"header_mr-xl-1__2vTLM\",\"mx-xl-1\":\"header_mx-xl-1__3YxUS\",\"mb-xl-1\":\"header_mb-xl-1__tjFVX\",\"ml-xl-1\":\"header_ml-xl-1__3k5zJ\",\"m-xl-2\":\"header_m-xl-2__1-Jpk\",\"mt-xl-2\":\"header_mt-xl-2__2tuJK\",\"my-xl-2\":\"header_my-xl-2__1FU8F\",\"mr-xl-2\":\"header_mr-xl-2__YAPNd\",\"mx-xl-2\":\"header_mx-xl-2__ygX4-\",\"mb-xl-2\":\"header_mb-xl-2__f4r5Z\",\"ml-xl-2\":\"header_ml-xl-2__3Zqwu\",\"m-xl-3\":\"header_m-xl-3__3prKG\",\"mt-xl-3\":\"header_mt-xl-3__1IXaa\",\"my-xl-3\":\"header_my-xl-3__1wsAI\",\"mr-xl-3\":\"header_mr-xl-3__2YPhv\",\"mx-xl-3\":\"header_mx-xl-3__33hW4\",\"mb-xl-3\":\"header_mb-xl-3__1fLGu\",\"ml-xl-3\":\"header_ml-xl-3__19Yio\",\"m-xl-4\":\"header_m-xl-4__3AtgN\",\"mt-xl-4\":\"header_mt-xl-4__1tlih\",\"my-xl-4\":\"header_my-xl-4__2pUbp\",\"mr-xl-4\":\"header_mr-xl-4__2niq0\",\"mx-xl-4\":\"header_mx-xl-4__3n5eI\",\"mb-xl-4\":\"header_mb-xl-4__286GJ\",\"ml-xl-4\":\"header_ml-xl-4__22iJe\",\"m-xl-5\":\"header_m-xl-5__1JFQU\",\"mt-xl-5\":\"header_mt-xl-5__QZiQH\",\"my-xl-5\":\"header_my-xl-5__3QoeY\",\"mr-xl-5\":\"header_mr-xl-5__13DW8\",\"mx-xl-5\":\"header_mx-xl-5__106iU\",\"mb-xl-5\":\"header_mb-xl-5__1V2NH\",\"ml-xl-5\":\"header_ml-xl-5__36Wv5\",\"p-xl-0\":\"header_p-xl-0__15_73\",\"pt-xl-0\":\"header_pt-xl-0__2UxGQ\",\"py-xl-0\":\"header_py-xl-0__k4isc\",\"pr-xl-0\":\"header_pr-xl-0__1jGLu\",\"px-xl-0\":\"header_px-xl-0__1_5k-\",\"pb-xl-0\":\"header_pb-xl-0__15vJM\",\"pl-xl-0\":\"header_pl-xl-0__176KF\",\"p-xl-1\":\"header_p-xl-1__J2-TI\",\"pt-xl-1\":\"header_pt-xl-1__GjqGT\",\"py-xl-1\":\"header_py-xl-1__2Orfw\",\"pr-xl-1\":\"header_pr-xl-1__2g-CV\",\"px-xl-1\":\"header_px-xl-1__3vy-E\",\"pb-xl-1\":\"header_pb-xl-1__1kMcZ\",\"pl-xl-1\":\"header_pl-xl-1__SwUdD\",\"p-xl-2\":\"header_p-xl-2__2avRq\",\"pt-xl-2\":\"header_pt-xl-2__ruDB9\",\"py-xl-2\":\"header_py-xl-2__3l4p5\",\"pr-xl-2\":\"header_pr-xl-2__6TPUk\",\"px-xl-2\":\"header_px-xl-2__1Zcra\",\"pb-xl-2\":\"header_pb-xl-2__3imNn\",\"pl-xl-2\":\"header_pl-xl-2__2MiFx\",\"p-xl-3\":\"header_p-xl-3__3jvd8\",\"pt-xl-3\":\"header_pt-xl-3__35_rF\",\"py-xl-3\":\"header_py-xl-3__1UYqB\",\"pr-xl-3\":\"header_pr-xl-3__1laxS\",\"px-xl-3\":\"header_px-xl-3__1iamY\",\"pb-xl-3\":\"header_pb-xl-3__3ZwFz\",\"pl-xl-3\":\"header_pl-xl-3__H1zG_\",\"p-xl-4\":\"header_p-xl-4__3bFNs\",\"pt-xl-4\":\"header_pt-xl-4__tyTW3\",\"py-xl-4\":\"header_py-xl-4__3tXGu\",\"pr-xl-4\":\"header_pr-xl-4__2Mmtm\",\"px-xl-4\":\"header_px-xl-4__3X3CC\",\"pb-xl-4\":\"header_pb-xl-4__qXNYp\",\"pl-xl-4\":\"header_pl-xl-4__1j55I\",\"p-xl-5\":\"header_p-xl-5__fGRFy\",\"pt-xl-5\":\"header_pt-xl-5__1RYqW\",\"py-xl-5\":\"header_py-xl-5__2C2Ss\",\"pr-xl-5\":\"header_pr-xl-5__3_QnS\",\"px-xl-5\":\"header_px-xl-5__2hev6\",\"pb-xl-5\":\"header_pb-xl-5__2GlFh\",\"pl-xl-5\":\"header_pl-xl-5__1cvyr\",\"m-xl-n1\":\"header_m-xl-n1__o9dP6\",\"mt-xl-n1\":\"header_mt-xl-n1__glGBf\",\"my-xl-n1\":\"header_my-xl-n1__squiS\",\"mr-xl-n1\":\"header_mr-xl-n1__2izNn\",\"mx-xl-n1\":\"header_mx-xl-n1__1LwFL\",\"mb-xl-n1\":\"header_mb-xl-n1__3Dk7R\",\"ml-xl-n1\":\"header_ml-xl-n1__3Ejh6\",\"m-xl-n2\":\"header_m-xl-n2__3dAcT\",\"mt-xl-n2\":\"header_mt-xl-n2__2J98i\",\"my-xl-n2\":\"header_my-xl-n2__eBVBU\",\"mr-xl-n2\":\"header_mr-xl-n2__1nvTt\",\"mx-xl-n2\":\"header_mx-xl-n2__ogzFs\",\"mb-xl-n2\":\"header_mb-xl-n2__3n_Wl\",\"ml-xl-n2\":\"header_ml-xl-n2__1LfiY\",\"m-xl-n3\":\"header_m-xl-n3__wj1k4\",\"mt-xl-n3\":\"header_mt-xl-n3__3yYhk\",\"my-xl-n3\":\"header_my-xl-n3__1ZH2i\",\"mr-xl-n3\":\"header_mr-xl-n3__1ckRq\",\"mx-xl-n3\":\"header_mx-xl-n3__1HH5-\",\"mb-xl-n3\":\"header_mb-xl-n3__3-p2H\",\"ml-xl-n3\":\"header_ml-xl-n3__1iY6V\",\"m-xl-n4\":\"header_m-xl-n4__Ku_WI\",\"mt-xl-n4\":\"header_mt-xl-n4__3kuzq\",\"my-xl-n4\":\"header_my-xl-n4__3xkOq\",\"mr-xl-n4\":\"header_mr-xl-n4__1z0ZH\",\"mx-xl-n4\":\"header_mx-xl-n4__3gMqi\",\"mb-xl-n4\":\"header_mb-xl-n4__3wyQV\",\"ml-xl-n4\":\"header_ml-xl-n4__398-r\",\"m-xl-n5\":\"header_m-xl-n5__2huyO\",\"mt-xl-n5\":\"header_mt-xl-n5__24_Nr\",\"my-xl-n5\":\"header_my-xl-n5__BIocv\",\"mr-xl-n5\":\"header_mr-xl-n5__3gaLn\",\"mx-xl-n5\":\"header_mx-xl-n5__13XP5\",\"mb-xl-n5\":\"header_mb-xl-n5__2X5ww\",\"ml-xl-n5\":\"header_ml-xl-n5__2_gXu\",\"m-xl-auto\":\"header_m-xl-auto__4H28C\",\"mt-xl-auto\":\"header_mt-xl-auto__2vPxO\",\"my-xl-auto\":\"header_my-xl-auto__2cASd\",\"mr-xl-auto\":\"header_mr-xl-auto__1wcOA\",\"mx-xl-auto\":\"header_mx-xl-auto__1TeHr\",\"mb-xl-auto\":\"header_mb-xl-auto__ngxjd\",\"ml-xl-auto\":\"header_ml-xl-auto__3C-td\",\"gradient-bg5\":\"header_gradient-bg5__pwixL\",\"nav\":\"header_nav__3RlcK\",\"nav-link\":\"header_nav-link__39dm_\",\"disabled\":\"header_disabled__yH3Fs\",\"nav-tabs\":\"header_nav-tabs__2kvb0\",\"active\":\"header_active__2L2Uh\",\"nav-item\":\"header_nav-item__ccCkX\",\"show\":\"header_show__3XPCE\",\"dropdown-menu\":\"header_dropdown-menu__1yuls\",\"nav-pills\":\"header_nav-pills__3oQrl\",\"nav-fill\":\"header_nav-fill__2rQJv\",\"nav-justified\":\"header_nav-justified__18Mcz\",\"tab-content\":\"header_tab-content__1AihG\",\"tab-pane\":\"header_tab-pane__2aGAk\",\"proLink\":\"header_proLink__PXQKY\",\"navDivider\":\"header_navDivider__38JPa\",\"hamburger\":\"header_hamburger__Y0jqs\",\"post\":\"header_post__1mxbV\",\"navLink\":\"header_navLink__HeNlQ\",\"mobileNavLink\":\"header_mobileNavLink__3Lgjr\",\"tranformGlyph45\":\"header_tranformGlyph45__1fs6m\",\"impersonating\":\"header_impersonating__17PzR\",\"authed\":\"header_authed__mihmJ\",\"joinBtn\":\"header_joinBtn__3_ay8\"};"],"sourceRoot":""}