{"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/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","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/Form/StripeInput/index.jsx","components/RegistrationDrawer/SubmitPaymentForm/index.jsx","components/RegistrationDrawer/RegistrationConfirmation/index.jsx","components/RegistrationDrawer/TeamSelection/index.js","components/RegistrationDrawer/PasswordConfirmation/index.js","components/RegistrationDrawer/RegistrationStepper/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/Modals/RegistrationPinModal.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","leagueFee","serviceFee","currencySymbol","league_session_id","member_id","order_type","currency","session_fee","league_fee","service_fee","amount_paid","revenue","sessionMatchTypeId","captainRequest","currentRequest","sessionRequestStatusTypeId","isCaptainInSession","memberTeams","session","phone","timeOfDay","registrationPin","dayOfWeek","drawId","teamName","teamMatchWins","teamMatchLosses","playerMatchPoints","playerMatchGameWinPercentage","StatsigContext","React","createContext","StatsigContextProvider","isAdultTeamPickleballEnabled","useGate","value","isJuniorTeamPickleballEnabled","useState","state","setState","useEffect","adultTeamPickleball","juniorTeamPickleball","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","LeagueTierTypes","PlayerActionTypes","OrderByTypes","OrderByRuleTypes","SessionDrawTypes","MultiRoundScheduleTypes","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","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","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","SESSION_PAGE","TEAM_PAGE","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","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","UT_ADULT_TEAM_PICKLEBALL","UT_ADULT_TEAM_TENNIS","UT_JUNIOR_TEAM_PICKLEBALL","UT_JUNIOR_TEAM_TENNIS","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","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","isAdultTeamPickballEnabled","isJuniorTeamPickballEnabled","hasNoResults","hasSomeResults","getSearchResults","URLSearchParams","append","searchUrl","cancel","current","cancelToken","CancelToken","c","catch","isCancel","stateToSet","handleClickOutside","useCallback","contains","addEventListener","removeEventListener","handleSeeAllClick","typeFilter","preventDefault","handleTypeFilterClick","handleTeamLeagueSearchClick","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","globalSearchDropDown","Button","variant","paidHitClubs","globalSearchDropdownNoMatches","globalSearchDropdownOptions","searchTypeTitle","i","source","loading","renderDropdown","mapDispatchToProps","connect","auth","showHeaderItems","nav","Container","maxWidth","Box","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","pb","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","pt","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","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","sportType","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","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","hasRegistrationPin","PasswordConfirmation","onPinSubmitted","isInvalidPasscode","paddingTop","onMessageClick","RegistrationStepper","onPasscodeSubmitted","pageName","onTeamRemoveClick","stripeInstance","isTeamPage","activeStep","setActiveStep","onTeamSelectionClick","handleNext","handleOnPinSubmitted","steps","content","fetchData","RegistrationDrawer","drawerWidth","Drawer","anchor","SessionPage","isInvalidPin","setIsInvalidPin","setClientSecret","setStripeInstance","currentTeamData","setCurrentTeamData","showRegistrationDrawer","setShowRegistrationDrawer","showRegistrationSuccessPopup","setShowRegistrationSuccessPopup","showNotifyOrganizerSuccessPopup","setShowNotifyOrganizerSuccessPopup","showNotifyOrganizerFailurePopup","setShowNotifyOrganizerFailurePopup","teamsAvailableData","sessionSummaryError","refetchSummary","isLoadingStandings","standingsError","refetchStandings","isSuccessfulRequest","validatePin","handleRemoveTeamData","initiateTeamRegistration","secret","paymentAccountId","isFreeSession","loadStripe","stripeAccount","handleOnRequestToCaptain","handleOnPasscodeSubmitted","handleOnNotifyOrgClick","handleOnRegisterClick","handleOnCloseRegistrationSuccessPopup","handleOnCloseNotificationSuccessPopup","handleOnCloseNotificationFailurePopup","currentSession","mappedSession","registrationDates","mapSession","sessionDescription","singlesFormat","doublesFormat","MATCH_TAB","noSidePadding","renderSessionContent","totalFee","sessionJoinRequest","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","validationError","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","isLoadingRegistration","isTodayAfterSessionEndDate","isRegistrationDisabled","teamSummary","onRegisterClick","fees","showAddCaptainModal","setShowAddCaptainModal","captainToBeUpdated","setCaptainToBeUpdated","mappedCaptains","handleOnConfirmRemoval","handleOnConfirmAddition","handleOnCloseAddCaptainModal","captainToBeRemoved","RegistrationPinModal","isValidatingPin","isInvalidPassword","handleOnRequestClose","MultiRoundScheduleToggle","ToggleButtonGroup","exclusive","ToggleButton","setRounds","teamScheduleByDate","isLoadingTeamScheduleByDate","teamScheduleByDateError","teamSchedule","handleOnScheduleChange","mappedRoundMatches","filteredTeamMatches","TeamPageHeader","mobileAndDesktopCategory","mobileAndDesktopSize","mobileDisplay","mobileSpacing","mobileColon","sessionLink","lightBlue","TeamPage","parsedTeamId","setIsCaptainView","setTab","showPinModal","setShowPinModal","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","borderWidth","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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uCAAuC,wBAAwB,sCAAsC,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,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,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,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAA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U,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.18d51d02.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\",\"globalSearchDropdownTypes\":\"globalSearch_globalSearchDropdownTypes__3Tnqq\",\"globalSearchDropdownTypeBtn\":\"globalSearch_globalSearchDropdownTypeBtn__2-Td8\",\"globalSearchDropDown\":\"globalSearch_globalSearchDropDown__3XOh_\",\"globalSearchDropdownQuery\":\"globalSearch_globalSearchDropdownQuery__30AoL\",\"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\",\"searchExpander\":\"globalSearch_searchExpander__2I1tb\"};","export const featureGates = {\r\n ADULT_TEAM_PICKLEBALL: 'adult_team_pickleball',\r\n JUNIOR_TEAM_PICKLEBALL: 'junior_team_pickleball',\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.array,\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 isLoadingRegistration: 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 registrationCofirmationPropTypes = {\r\n registrationFees: PropTypes.shape({\r\n sessionEntryFee: PropTypes.number,\r\n leagueFee: PropTypes.number,\r\n serviceFee: PropTypes.number,\r\n currencySymbol: PropTypes.string,\r\n total: PropTypes.number\r\n }),\r\n clientSecret: PropTypes.string.isRequired,\r\n onRegistrationSuccess: PropTypes.func.isRequired,\r\n teamData: PropTypes.shape({\r\n sessionSummary: PropTypes.shape({\r\n id: PropTypes.string\r\n })\r\n })\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.string,\r\n member_id: PropTypes.string,\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 }),\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.isRequired,\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 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","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 [state, setState] = useState({});\r\n\r\n useEffect(() => {\r\n setState({\r\n featureGates: {\r\n adultTeamPickleball: isAdultTeamPickleballEnabled,\r\n juniorTeamPickleball: isJuniorTeamPickleballEnabled,\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 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\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 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 SESSION_PAGE = 'SESSION_PAGE';\r\nexport const TEAM_PAGE = 'TEAM_PAGE';\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","/* 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 Button from '@mui/material/Button';\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 { LeagueTypes } from '../../utils/types';\r\nimport { useStatsig } from '../../hooks/StatsigContextProvider';\r\n\r\nimport styles from './globalSearch.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\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 isAdultTeamPickballEnabled = statsig?.featureGates?.adultTeamPickleball;\r\n const isJuniorTeamPickballEnabled = statsig?.featureGates?.juniorTeamPickleball;\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 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 {!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 {isAdultTeamPickballEnabled && (\r\n \r\n Adult Team Pickleball\r\n \r\n )}\r\n {isJuniorTeamPickballEnabled && (\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 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","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 { StyledTableRow } from '../../Styled';\r\nimport { ageDisplay, getAgeKeys, getAdjustedDate } from '../../../utils/display';\r\nimport { genderTypes } from '../../../utils/types';\r\nimport { leagueSearchResultsTablePropTypes, sessionTableRowProps } from '../../../utils/proptypes';\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 [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 } = 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 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 };\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 } = 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 {name}\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 { getAgeKeys, ageDisplay, getFormattedConferenceRange } from '../../utils/display';\r\nimport { getTypeForId, genderTypes, RequestStatusTypes, StatusTypes, SportTypeIds } from '../../utils/types';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { registrationInfoCardPropTypes } from '../../utils/proptypes';\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 { 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 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 \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, { 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 { registrationCofirmationPropTypes } from '../../../utils/proptypes';\r\n\r\nconst RegistrationConfirmation = ({ registrationFees, clientSecret, onRegistrationSuccess, teamData }) => {\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: teamData?.sessionSummary?.id,\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 ...registrationCofirmationPropTypes,\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\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\nexport default TeamSelection;\r\n","import React, { useEffect } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport { Button, ContactCard, Typography } from '@universal-tennis/ui-shared';\r\nimport { useForm } from 'react-hook-form';\r\nimport PasswordInput from '../../Form/PasswordInput';\r\nimport { messageUser } from '../../../utils/helpers';\r\n\r\nconst PasswordConfirmation = ({ onPinSubmitted, isInvalidPasscode, teamData }) => {\r\n const { captains } = teamData || {};\r\n const defaultValues = { pin: '' };\r\n const {\r\n handleSubmit,\r\n formState: { errors },\r\n control,\r\n setValue,\r\n setError,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n useEffect(() => {\r\n if (isInvalidPasscode) {\r\n setError('pin', isInvalidPasscode);\r\n }\r\n }, [isInvalidPasscode]);\r\n const handleOnPinSubmitted = (formValues) => {\r\n onPinSubmitted(formValues.pin);\r\n setValue('pin', '');\r\n };\r\n const handleOnMessageClick = (id, displayName) => {\r\n messageUser(id, displayName);\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\nexport default PasswordConfirmation;\r\n","import React, { useEffect } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport { Typography } from '@universal-tennis/ui-shared';\r\nimport { Elements } from '@stripe/react-stripe-js';\r\nimport RegistrationConfirmation from '../RegistrationConfirmation';\r\nimport TeamSelection from '../TeamSelection';\r\nimport PasswordConfirmation from '../PasswordConfirmation';\r\nimport { SESSION_PAGE, TEAM_PAGE } from '../../../utils/constants';\r\n\r\nconst SELECT_TEXT = 'Select a team to join';\r\n\r\nconst RegistrationStepper = ({ onPasscodeSubmitted, onTeamRemoveClick, pageName, stripeInstance, ...rest }) => {\r\n const isTeamPage = pageName === TEAM_PAGE;\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const { teamData, onTeamSelectionClick, teams } = rest;\r\n const { teamName } = teamData || '';\r\n\r\n const handleNext = () => {\r\n setActiveStep(activeStep + 1);\r\n };\r\n\r\n const handleOnTeamCardClick = (id) => {\r\n onTeamSelectionClick(id);\r\n };\r\n\r\n const handleOnPinSubmitted = async (pin) => {\r\n const isValid = await onPasscodeSubmitted(pin);\r\n if (isValid) {\r\n await handleNext();\r\n }\r\n };\r\n\r\n const steps = isTeamPage\r\n ? [{ label: 'Confirm Details', content: }]\r\n : [\r\n {\r\n label: 'Team Selection',\r\n content: ,\r\n },\r\n {\r\n label: 'Password Confirmation',\r\n content: ,\r\n },\r\n {\r\n label: 'Confirm Details',\r\n content: (\r\n )\r\n },\r\n ];\r\n\r\n const handleLast = () => {\r\n setActiveStep(steps.length - 1);\r\n };\r\n\r\n useEffect(() => {\r\n const fetchData = async () => {\r\n if (!teamData.hasRegistrationPin) {\r\n await onPasscodeSubmitted();\r\n handleLast();\r\n } else {\r\n handleNext();\r\n }\r\n };\r\n if (teamName && pageName === SESSION_PAGE) {\r\n fetchData();\r\n }\r\n }, [teamName]);\r\n\r\n return (\r\n \r\n {teams?.length > 0 || (isTeamPage && teamName) ? (\r\n \r\n {teamName || SELECT_TEXT}\r\n \r\n ) : null}\r\n <>\r\n {steps[activeStep].content}\r\n \r\n \r\n );\r\n};\r\nexport default RegistrationStepper;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Drawer from '@mui/material/Drawer';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport useMediaQuery from '@mui/material/useMediaQuery';\r\n\r\nimport IconButton from '@mui/material/IconButton';\r\nimport CloseIcon from '@mui/icons-material/Close';\r\n\r\nimport RegistrationStepper from './RegistrationStepper';\r\n\r\nconst RegistrationDrawer = ({ isOpen, onClose, isLoading, ...rest }) => {\r\n const theme = useTheme();\r\n const isLargeScreen = useMediaQuery(theme.breakpoints.up('sm'));\r\n const drawerWidth = isLargeScreen ? 450 : '100%';\r\n\r\n const handleOnCloseButtonClicked = () => {\r\n onClose();\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\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\nimport { loadStripe } from '@stripe/stripe-js';\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 config from '../../config';\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, SESSION_PAGE } from '../../utils/constants';\r\nimport { LeagueSessionTypes, SportTypeIds } 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 useInitiateRegistrationMutation,\r\n useValidateRegistrationPinMutation,\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 [isInvalidPin, setIsInvalidPin] = useState(false);\r\n const [clientSecret, setClientSecret] = useState(null);\r\n const [stripeInstance, setStripeInstance] = 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 [validatePin] = useValidateRegistrationPinMutation();\r\n const [initiateRegistration] = useInitiateRegistrationMutation();\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 initiateTeamRegistration = async (registrationPin) => {\r\n try {\r\n const { sessionSummary } = currentTeamData;\r\n const registrationData = { teamId: parseInt(teamId), sessionId: sessionSummary.id, registrationPin };\r\n const { clientSecret: secret, paymentAccountId, isFreeSession } = await initiateRegistration(registrationData).unwrap();\r\n if (isFreeSession) {\r\n setShowRegistrationSuccessPopup(true);\r\n setShowRegistrationDrawer(false);\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 }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\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 handleOnPasscodeSubmitted = async (pin) => {\r\n setIsInvalidPin(false);\r\n if (!pin) {\r\n await initiateTeamRegistration();\r\n setIsInvalidPin(false);\r\n return true;\r\n }\r\n try {\r\n const { isValid } = await validatePin({ teamId, pin }).unwrap();\r\n if (isValid) {\r\n await initiateTeamRegistration(pin);\r\n setIsInvalidPin(false);\r\n return true;\r\n }\r\n setIsInvalidPin(true);\r\n } catch (apiError) {\r\n setIsInvalidPin(true);\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 handleOnCloseModal = () => {\r\n handleRemoveTeamData();\r\n setShowRegistrationDrawer(false);\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, isLoadingRegistration }) => {\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 } 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\n\r\nexport default OverviewTab;\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 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\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PasswordInput from '../Form/PasswordInput';\r\n\r\nconst dialogContent =\r\n 'Please enter the password or PIN you received from the team captain or organizer. Don\\'t have a PIN or password? Message the team captain.';\r\n\r\nconst RegistrationPinModal = ({\r\n isOpen,\r\n onPinSubmitted,\r\n onRequestClose,\r\n isValidatingPin = true,\r\n teamName,\r\n isInvalidPassword,\r\n}) => {\r\n const defaultValues = { pin: '' };\r\n const {\r\n handleSubmit,\r\n setError,\r\n setValue,\r\n formState: { errors },\r\n control,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n const handleOnSubmit = (formValues) => {\r\n onPinSubmitted(formValues.pin);\r\n setValue('pin', '');\r\n };\r\n\r\n const handleOnRequestClose = () => {\r\n onRequestClose();\r\n };\r\n\r\n useEffect(() => {\r\n if (isInvalidPassword) {\r\n setError('pin', isInvalidPassword);\r\n }\r\n }, [isInvalidPassword]);\r\n\r\n return (\r\n \r\n Enter Team Password\r\n {teamName}\r\n
    \r\n \r\n \r\n Registration for this team is password protected.\r\n \r\n {dialogContent}\r\n {isValidatingPin ? (\r\n \r\n ) : (\r\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 RegistrationPinModal;\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 { loadStripe } from '@stripe/stripe-js';\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 RegistrationPinModal from '../../components/Modals/RegistrationPinModal';\r\nimport ScheduleTab from './ScheduleTab';\r\nimport ShareTeamModal from '../../components/Modals/ShareTeamModal';\r\nimport TeamPageHeader from './TeamPageHeader';\r\n\r\nimport config from '../../config';\r\nimport { LeagueTabs, TEAM_PAGE } from '../../utils/constants';\r\nimport { LeagueSessionTypes, SportTypeIds } 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 useValidateRegistrationPinMutation,\r\n useInitiateRegistrationMutation,\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 [clientSecret, setClientSecret] = useState(null);\r\n const [stripeInstance, setStripeInstance] = useState(null);\r\n const [isInvalidPin, setIsInvalidPin] = useState(false);\r\n const [showPinModal, setShowPinModal] = useState(false);\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 [validatePin, { isLoading: isValidatingPin }] = useValidateRegistrationPinMutation();\r\n const [initiateRegistration, { isLoading: isLoadingRegistration }] = useInitiateRegistrationMutation();\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 initiateTeamRegistration = async (registrationPin) => {\r\n try {\r\n const { sessionSummary } = teamData;\r\n const registrationData = { teamId: parseInt(teamId), sessionId: sessionSummary.id, registrationPin };\r\n const { clientSecret: secret, paymentAccountId, isFreeSession } = await initiateRegistration(registrationData).unwrap();\r\n\r\n if (isFreeSession) {\r\n setShowRegistrationSuccessPopup(true);\r\n return;\r\n }\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 setShowRegistrationDrawer(true);\r\n }\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n };\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 if (teamData.hasRegistrationPin) {\r\n setShowPinModal(true);\r\n } else {\r\n await initiateTeamRegistration();\r\n }\r\n };\r\n\r\n const handleOnCloseDrawerRequest = () => {\r\n setShowRegistrationDrawer(false);\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 setShowPinModal(false);\r\n await initiateTeamRegistration(pin);\r\n } else {\r\n setIsInvalidPin(true);\r\n }\r\n } catch (apiError) {\r\n setIsInvalidPin(true);\r\n }\r\n };\r\n\r\n const handleOnClosePinModal = () => {\r\n setShowPinModal(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 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 return (\r\n \r\n {isLoadingTeam && }\r\n {teamData && registrationFees && (\r\n <>\r\n \r\n \r\n {renderTeamContent(teamData, registrationFees)}\r\n {stripeInstance && (\r\n \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 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":""}