{"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/Footer/footer.module.scss","components/GlobalSearch/globalSearch.module.scss","utils/statsig.js","utils/proptypes.js","hooks/StatsigContextProvider.js","config-local.js","config.js","utils/types.js","utils/network.js","api/leaguesApi.js","redux/services/baseQuery.js","redux/services/authServices.js","redux/services/userService.js","utils/url.js","components/Img/index.js","utils/constants.js","utils/display.js","utils/helpers.js","components/BackgroundImage/index.jsx","flagContainer.js","components/hocs/withFeatureFlags.js","redux/uiSlice.js","components/GlobalSearch/Description/index.jsx","assets/icons/icon-search.svg","assets/icons/icon-verified-blue.svg","assets/icons/icon-avatar-player.svg","assets/icons/icon-avatar-club.svg","assets/icons/icon-avatar-college.svg","assets/icons/icon-avatar-event.svg","assets/icons/icon-avatar-school.svg","components/Icons/UtrIcon/index.jsx","components/GlobalSearch/utils.js","utils/analytics.js","components/GlobalSearch/globalSearchDictionary.js","components/GlobalSearch/index.jsx","assets/icons/icon-home.svg","assets/icons/icon-play.svg","assets/icons/icon-profile.svg","components/Header/index.jsx","components/Form/Input/index.jsx","components/LoadingIndicator/index.jsx","components/Form/LocationAutoComplete/index.jsx","components/Form/Location/index.jsx","components/Form/Slider/index.jsx","components/Form/Select/index.jsx","components/Form/FormSubmitButton/index.jsx","components/Form/PlayerSearch/index.jsx","hooks/useDebounce.js","components/Cards/PlayerSearchResultCard/index.jsx","utils/location.js","redux/errorPopupSlice.js","redux/conferenceDetailsSlice.js","components/Forms/CreateConferenceForm/index.jsx","pages/CreateConferencePage/index.jsx","components/Form/DateTimePicker/index.jsx","components/Icons/ApprovedIcon/index.js","components/Popups/Popup.jsx","components/Form/RadioGroup/index.jsx","components/SessionMatchFormat/index.jsx","utils/sessions.js","components/Forms/CreateSessionForm/index.jsx","pages/CreateSessionPage/index.jsx","components/Styled/index.jsx","components/Tables/LeaguesTableWrapper/index.jsx","components/Tables/ConferencesTable/index.jsx","pages/LeagueDesk/ConferencesTab/index.jsx","pages/LeagueDesk/index.jsx","pages/LeagueDesk/LeagueDeskWrapper/index.jsx","redux/services/breadcrumbService.js","components/Breadcrumbs/index.jsx","redux/genericPopupSlice.js","components/MemberRoleManager/index.jsx","components/Tables/SessionsTable/index.jsx","pages/ManageConferencePage/SessionsTab/index.jsx","pages/ManageConferencePage/index.jsx","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/Footer/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","isGlobalDropdownV2Enabled","useState","state","setState","useEffect","adultTeamPickleball","juniorTeamPickleball","globalDropdownV2","memoizedState","useMemo","statsig","Provider","localConfig","localConf","console","log","rootDomain","brandedDomain","twitterHandle","links","support","supportHome","appStoreUrl","googlePlayUrl","sessionStandingsRule","devRoxKey","utrStripeAccountId","UTR_STRIPE_ACCOUNT_ID","googleApiKey","nonProdFacebookPixelId","devStatsigKey","localDevSettings","appHost","marketingAppHost","leaguesAppHost","apiAuthToken","apiHost","leaguesApiHost","searchApiHost","siteBaseUrl","brandedUrl","twitterAccount","fontUrl","roxKey","stripeHost","stripeClientId","stripeKey","useProxy","publicPath","pixelId","cdnUrl","isLocalhost","statsigKey","createNewRelicBrowserSnippet","apiUri","newRelicAppId","createTestSettings","environmentName","cdnUrlStatic","APIHOST","leaguesApiUri","LEAGUESAPIHOST","searchApiUri","newRelicBrowserSnippet","APPHOST","appHostName","APPHOSTNAME","MARKETINGAPPHOST","userSiteHost","USERSITEHOST","userSiteHostName","urljoin","segmentKey","devtoolConfig","prodCdnUrl","prodCdnUrlStatic","prodApiUri","prodLeaguesApiUri","searchApiUrl","prodServerSettings","STRIPE_CLIENT_ID","qaServerSettings","ciServerSettings","testServerSettings","test2ServerSettings","test3ServerSettings","test4ServerSettings","test5ServerSettings","test6ServerSettings","test7ServerSettings","test8ServerSettings","test9ServerSettings","test10ServerSettings","test11ServerSettings","rcSettings","config","CONFIG_SOURCE","configConstants","LeagueSessionTypes","FrequencyTypes","MatchFormatTypes","ResultTypes","ScheduleStatuses","TennisScoringFormatTypes","PickleballScoringFormatTypes","StatusTypes","WithdrawTypes","RequestStatusTypes","LeagueTypes","UT_ADULT_TEAM_TENNIS","UT_JUNIOR_TEAM_TENNIS","CLUB_ADULT_LEAGUE_TENNIS","OTHER_TENNIS","UT_ADULT_TEAM_PICKLEBALL","UT_JUNIOR_TEAM_PICKLEBALL","CLUB_ADULT_LEAGUE_PICKLEBALL","OTHER_PICKLEBALL","LeagueTierTypes","PlayerActionTypes","OrderByTypes","OrderByRuleTypes","SessionDrawTypes","MultiRoundScheduleTypes","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","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","TENNIS","getAgeKeys","ages","parseInt","ageDisplay","startRange","endRange","getAdjustedTimeOfDay","format","day","moment","offset","utcOffset","splitTime","split","hours","minutes","add","getPlayerDisplayUtr","player","isDoubles","utrDoubles","utrDoublesDisplay","utrDoublesNotVerified","utrDoublesNotVerifiedDisplay","utrSingles","utrSinglesDisplay","utrSinglesNotVerified","utrSinglesNotVerifiedDisplay","utrRange","isVerified","minUtrDisplay","maxUtrDisplay","getPlayerDisplayPickleballRating","pickleballRatingDisplay","getDisplayUTRPRating","singlesPkbRatingDisplay","doublesPkbRatingDisplay","pkbRating","getFormattedDate","utc","local","endDate","formattedStartDate","formattedEndDate","isSame","getAdjustedDate","date","dateUtc","adjustForDSL","isTodayDLS","isDST","isDateDLS","shouldSubtractHour","subtract","getFormattedConferenceRange","showRatingPrefix","ratingMin","ratingMax","prefix","range","minUtr","maxUtr","isUtrMinInteger","Number","isInteger","isUtrMaxInteger","minRange","toFixed","maxRange","getFormattedUtrRange","PICKLEBALL","messageUser","focus","getAlternateIds","alternates","filter","alternate","getSinglesUtr","utrRating","includes","numArray","reduce","accumulator","parseFloat","getPowerIndex","powerRating","isEstimated","getPlayerAvailabilityStatus","availabilityStatus","sortPlayersByAvailability","players","sort","b","playerAvailabilityStatusTypeId","validateLineups","lineupData","position1TeamAlternatePlayers","position2TeamAlternatePlayers","lineup","filteredIds","player1TeamMemberId","player2TeamMemberId","Set","size","isDouble","lineupPosition","hasDuplicatePosition1Alternates","hasDuplicatePosition2Alternates","getPlayerAvatarImage","getPlayerProfileUrl","mapMembersForPlayerSearch","members","descendingComparator","orderBy","getComparator","order","getLeagueTypeIdForTier","leagueTierTypes","ADULT","JUNIOR","BackgroundImage","imgSrcUrl","imageType","images","extraCls","parentStylesClass","style","imageSrc","default","formattedImageSizes","formatImageSizesByType","className","styles","backgroundImage","imageRef","currentSrc","parentNode","UtrRoxFlag","Flag","personalClub","createPlayerGroupMainMenu","ratingsListFlag","withFeatureFlags","WrappedComponent","props","featureFlags","flagContainer","uiSlice","createSlice","initialState","sideMenuOpen","reducers","setSideMenu","action","payload","toggleSideMenu","actions","Description","descriptionItems","noEllipsis","Boolean","join","UtrIcon","icon","clickable","onClick","cursor","Icon","width","height","overflow","fontSize","defaultProps","_","cloneDeep","ratingStatusPopUpData","rated","unrated","inactive","projected","ratedStrings","getRatingStatus","ratingStatus","ratingValue","getRatingProgress","ratingProgress","gtag","dataLayer","event","getClickAttrs","category","attrs","tennisGlobalNavItems","filterType","sportType","isLeagues","pickleballGlobalNavItems","defaultSearchState","clubs","hits","colleges","events","highSchools","GlobalSearch","useContext","navigate","useNavigate","cancelRef","useRef","wrapperRef","queryRef","preferences","useSelector","setIsLoading","showDropDown","setShowDropDown","searchQuery","setSearchQuery","hasSearched","setHasSearched","searchState","setSearchState","hasNoResults","hasSomeResults","getSearchResults","URLSearchParams","append","searchUrl","cancel","current","cancelToken","CancelToken","c","catch","isCancel","stateToSet","handleClickOutside","useCallback","contains","addEventListener","removeEventListener","handleSeeAllClick","typeFilter","preventDefault","handleTypeFilterClick","handleTeamLeagueSearchClick","handleTypeFilterClickV2","handleTeamLeagueSearchClickV2","renderPlayer","index","descriptionShort","userIsPowered","showDecimals","utrValue","verifiedRating","ratingChoice","myUtrSingles","myUtrStatusSingles","matchType","sortValue","progress","myUtrProgressSingles","myUtrDoubles","myUtrStatusDoubles","myUtrProgressDoubles","ratingStatusDoubles","ratingProgressDoubles","ratingStatusSingles","ratingProgressSingles","utrType","actualValue","Math","ratingNumber","ratingArray","ratingDecimal","verified","infoTitle","infoDescription","getRatingDetails","ratingType","unDisplayedStatusStatus","newRatingObject","updateRatingObject","charAt","globalSearchDropdownOption","handlePlayerClick","PlayerIcon","VerifiedIcon","place","renderSchool","schoolClub","profilePhotoUrl","isCollege","school","shortName","photoUrl","schoolName","globalSearchDropdownOptionImage","CollegeIcon","SchoolIcon","renderClub","club","memberCount","handleClubClick","ClubIcon","renderEvent","eventSchedule","eventState","showYear","eventStartDate","eventEndDate","eventStartMonth","eventEndMonth","eventStartYear","eventEndYear","getEventDateString","handleEventClick","EventIcon","globalSearchContainer","hasMarketingLinks","globalSearchInputContainer","searchIconDropDownOpen","feedbackLeft","SearchIcon","marginTop","globalSearchInput","onKeyUp","onPaste","setTimeout","trim","onFocus","placeholder","feedbackRight","globalSearchDropdownContainer","hasQuery","showTennisPills","showTennisContent","showPickleballPills","showPickleballContent","Box","pb","pt","tennisNavItems","pickleballNavItems","onTeamLeagueSearchClick","onTypeFilterClick","showTennisItems","showPickleballItems","leagueTypes","globalSearchDropDown","Button","variant","paidHitClubs","globalSearchDropdownNoMatches","globalSearchDropdownOptions","searchTypeTitle","i","source","loading","renderDropdown","mapDispatchToProps","connect","auth","showHeaderItems","nav","Container","maxWidth","flexWrap","alignItems","showOverrides","hamburger","onMenuClick","joinBtn","navLink","authed","createPlay","ProfileIcon","position","mobileNavLink","HomeIcon","PlayIcon","Input","control","hasError","rules","required","render","field","TextField","fullWidth","LoadingIndicator","backgroundColor","justifyContent","bgcolor","CircularProgress","autocompleteService","LocationAutoComplete","inputValue","setInputValue","options","setOptions","getPlacePredictions","throttle","request","callback","active","google","maps","places","AutocompleteService","input","results","newOptions","Autocomplete","getOptionLabel","option","filterOptions","x","autoComplete","includeInputInList","filterSelectedOptions","onChange","newValue","onInputChange","newInputValue","renderInput","renderOption","structured_formatting","main_text_matched_substrings","parts","main_text","match","Grid","container","item","component","LocationOnIcon","sx","color","mr","xs","part","fontWeight","highlight","text","Typography","secondary_text","Location","Slider","isLabelHidden","sliderType","sliderLength","step","getSliderData","htmlFor","max","min","Select","isFullWidth","helperText","onSelectChange","FormControl","InputLabel","MenuItem","FormHelperText","FormSubmitButton","isSubmitting","LoadingButton","disabled","loadingIndicator","PlayerSearch","isProPlayerSearch","searchMembersOnly","onPlayerSelected","selectedPlayers","setQuery","searchResults","setSearchResults","delay","debouncedValue","setDebouncedValue","handler","clearTimeout","useDebounce","delete","filteredHits","hit","every","updateStateForQuery","handleOnChange","isOptionEqualToValue","reason","handleOnInputChange","InputProps","endAdornment","optionProps","spacing","PlayerSearchResultCard","onRemovePlayer","showRemoveButton","Paper","mb","md","ml","geocoder","getLocationData","placeId","place_id","Geocoder","geocodeResults","geocode","PlacesServiceStatus","OK","formatted_address","geometry","getLocationNameFromCoordinates","latLng","address_components","city","comp","long_name","short_name","getBrowserLocationCoordinates","locationError","enableHighAccuracy","timeout","maximumAge","Promise","resolve","reject","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","errorPopupSlice","isOpen","showErrorPopup","hideErrorPopup","conferenceDetailsSlice","setSportTypeId","CreateConferenceForm","isManaging","isLoadingConference","ageRange","utrpRange","isUpdated","isSuccess","useParams","dispatch","useDispatch","originalLocation","setOriginalLocation","conferenceOrganizer","setConferenceOrganizer","setLeagueId","buttonText","defaultValues","details","conferenceRatingRange","useForm","mode","handleSubmit","reset","formState","errors","dirtyFields","confRange","conferenceLeagueId","sportId","fetchedConference","conferenceLocation","confAgeRange","confRatingRange","formData","handleFormSubmit","formValues","formattedLocation","unwrap","conferenceOrganizerMemberId","isTennisConference","mt","Divider","onSubmit","lg","multiline","minRows","elevation","CreateConferencePage","DateTimePicker","minutesStep","minDate","onDateChange","LocalizationProvider","dateAdapter","DateAdapter","inputFormat","minDateTime","inputProps","ApprovedIcon","xmlns","viewBox","fill","fillRule","clipRule","d","cx","cy","r","stroke","Popup","isSuccessful","buttonLabel","onAction","actionLabel","Dialog","p","DialogContent","padding","DialogContentText","align","DialogActions","RadioGroup","FormControlLabel","Radio","SessionMatchFormat","matchFormat","isDisabled","SINGLES","DOUBLES","BOTH","scoringTypes","Singles","minWidth","scoringType","duration","Doubles","TOURNAMENT","getTooManyMatchesPerTeamError","numberOfTotalWeeks","diff","totalWeeksAvailable","floor","CreateSessionForm","isLoadingSession","onSessionUpdated","OPEN","ONCE_A_WEEK","FIRST_MATCH_BACK_DRAW","FOUR","EIGHT","SIXTEEN","TENNIS_WIN_LOSS_RECORD","PICKLEBALL_WIN_LOSS_RECORD","hasRegisteredPlayers","hasPostedResults","hasPublishedSchedule","hasSchedule","isTennisSession","isRestrictedSession","standingsRuleOptions","setStartDate","teamRegisterStartDate","setTeamRegisterStartDate","totalPlayerCost","setTotalPlayerCost","setMatchFormat","isTournamentSession","setIsTournamentSession","skipToken","setConferenceId","leagueVerifiedFee","setLeagueVerifiedFee","showRuleConfirmationModal","setShowRuleConfirmationModal","sessionStandingsRuleId","setSessionStandingsRuleId","updatedStandingsRuleId","setUpdatedStandingsRuleId","leaguesFees","isLoadingLeaguesFees","getValues","setValue","setError","clearErrors","sessionConferenceId","fetchedSession","sessionLocation","toISOString","activeTab","isTournament","ruleValue","rule","row","startAdornment","InputAdornment","textAlign","feeValue","isNaN","handleEntryFeeChange","CreateSessionPage","StyledTableRow","styled","TableRow","theme","palette","hover","border","PostScoreInput","borderBottomColor","appColors","gradientBlue","shouldForwardProp","prop","showTiebreaker","disable","MozAppearance","borderRightWidth","borderRadius","borderBottomRightRadius","borderTopRightRadius","WebkitAppearance","PostScoreTieBreakInput","borderLeftWidth","borderTopLeftRadius","borderBottomLeftRadius","outline","TiebreakerText","top","right","darkText","ScoreCardTypography","MuiListSubheader","blue","white","isLoser","grey","black","typography","fontWeightMedium","StyledGrid","marginLeft","marginRight","common","MemberTeamTableLink","Link","CustomSwitch","background","minHeight","textTransform","lineHeight","letterSpacing","Switch","margin","transitionDuration","transform","lighterGreen","opacity","coolGrey600","StyledTooltip","Tooltip","classes","popper","tooltipClasses","tooltip","blueGrey100","boxShadow","shadows","fontFamily","secondary","arrow","LeaguesTable","useTheme","headCells","tableData","sortBy","rowComponent","isSortingDisabled","sortOrder","setSortOrder","orderProperty","setOrderProperty","Toolbar","pl","sm","pr","flex","TableContainer","Table","TableHead","headCell","TableCell","sortDirection","TableSortLabel","hideSortIcon","direction","property","whiteSpace","TableBody","slice","rowData","ConferencesTable","leagueConferences","onManageClicked","conferences","setConferences","formattedConferences","genderType","ageKeys","formatConferencesForTable","tabIndex","scope","ConferencesTab","LeagueDeskPage","leagueData","organizerLeagues","isLeagueOrganizer","onLeagueSelected","LeagueDeskWrapper","setOrganizerLeagues","setIsOrganizerLeague","isLoadingLeagueData","leagueDataError","userLeagues","isLoadingOrganizerLeagues","organizerLeaguesError","tennisLeagues","leagues","tennis","pickleballLeagues","pickleball","formattedLeagues","league","isOrganizerLeague","LeagueDesk","getBreadcrumbData","Breadcrumbs","shouldUpdateBreadcrumb","onBreadcrumbUpdated","isAdmin","breadcrumbs","CONFERENCE","SESSION","TEAM","leagueUrl","conferenceUrl","sessionUrl","getLastLabel","renderBreadcrumb","isCurrentContext","isBelowContext","to","isConferenceContext","isBelowConferenceContext","isSessionContext","isBelowSessionContext","isTeamContext","role","LinearProgress","separator","genericPopupSlice","showPopup","hidePopup","MemberRoleManager","isUpdatingRole","isLoadingTeam","memberRole","onAddMemberRole","onRemoveMemberRole","TEAM_CAPTAIN","originalMembers","setOriginalMembers","showConfirmationPopup","setShowConfirmationPopup","isRemovingMember","setIsRemovingMember","memberAwaitingAction","setMemberAwaitingAction","mappedMembers","handleOnRemoveMemberRole","popupAction","isError","popupTitle","popupMessage","SessionsTable","conferenceSessions","onManageClick","onViewClick","onRemoveClick","sessions","setSessions","formattedSessions","sessionType","sessionStatus","SessionsTab","onRemoveSession","alignContent","ManageConferencePage","useLocation","CONFERENCE_ORGANIZER","DETAILS","SESSIONS","ORGANIZERS","setActiveTab","setShouldUpdateBreadcrumb","showDeleteConfirmation","setShowDeleteConfirmation","showDeleteError","setShowDeleteError","sessionIdToDelete","setSessionIdToDelete","conferenceError","isFetchingConference","sessionsData","isLoadingSessions","sessionError","isAddingOrganizer","isRemovingOrganizer","isRemovingSession","isUpdatingOrganizers","isSessionsLoading","handleOnRemoveConferenceOrganizer","removedOrganizer","handleOnAddConferenceOrganizer","addedOrganizer","handleOnRemoveSession","handleOnDeleteConfirmed","handleOnCloseDeleteErrorPopup","tabs","fixed","TabContext","TabList","tab","Tab","TabPanel","conferenceOrganizers","AddTeamsTable","sessionTeams","sortByProperty","selectedTeamIds","onTeamSelected","onSortChange","maxTeamsReached","teams","setTeams","MEDIUM_MEDIUM","SMALL_MEDIUM","SMALL_BOOK","X_SMALL_MEDIUM","tableCellStyles","borderBottom","smallTableCellStyles","formattedTeams","isSelected","teamUrl","isItemSelected","avatarFontCategory","avatarFontSize","avatarHeight","avatarWidth","maxLinkWidth","subtitle","Stack","selectedTeam","onOrderPropertyChange","DialogTitleSimple","other","DialogTitle","IconButton","ModalBaseSimple","keepMounted","AddTeamsNotificationModal","selections","teamsCount","onSendClick","teamsText","m","FormGroup","Checkbox","checked","notifyCaptains","notifyPlayers","Transition","forwardRef","Slide","AddTeamsModal","isLoadingOptions","isLoadingTeams","maxTeams","currentTeamCount","currentPage","pageCount","selectedConferenceId","selectedSessionIds","onConferenceChange","onSessionChange","onApplyClick","onPageChange","onCloseSessionDropdown","onAddTeams","MEDIUM_BOOK","XX_SMALL_MEDIUM_CAP","setSelectedTeamIds","teamsToAdd","setTeamsToAdd","teamCount","setTeamCount","showConfirmationModal","setShowConfirmationModal","showSessionDropdown","setShowSessionDropdown","notifications","setNotifications","hasSessions","sessionLabelText","isApplyDisabled","PaperProps","coolGrey","fullScreen","TransitionComponent","AppBar","edge","lightGrey","onOpen","multiple","renderValue","selected","selectedOptions","selectedOptionDescriptions","indexOf","borderRight","borderColor","updatedSelectedTeamIds","updatedTeamsToAdd","addedTeam","selectedIds","Pagination","page","count","handleOnTeamRemoved","red","bottom","AddTeamContainer","ASCENDING","DESCENDING","TEAM_NAME","setSelectedConferenceId","setSelectedSessionIds","originalSessionIds","setOriginalSessionIds","setSortByProperty","sessionNames","setSessionNames","setPageNumber","skip","isLoadingConferences","isFetching","conferenceSessionNames","isLoadingSessionNames","sessionNamesError","fetchingError","sessionIds","teamSearchResults","setTeamSearchResults","isFetchingResults","setIsFetchingResults","totalPages","setTotalPages","refetch","setRefetch","handleOnSubmit","fromSessionIds","orderByRule","pageSize","searchError","totalCount","pages","ceil","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","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","Footer","footer","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","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,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,WAA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AA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,MAAM,0BAA0B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,OAAO,2BAA2B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,QAAQ,4BAA4B,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,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,+B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AA6B,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,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,+B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,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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","file":"static/js/main.fda9a8d1.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\":\"footer_container__3QkDH\",\"container-fluid\":\"footer_container-fluid__2pant\",\"container-xl\":\"footer_container-xl__2tZg7\",\"container-lg\":\"footer_container-lg__3-xqI\",\"container-md\":\"footer_container-md__3EF1N\",\"container-sm\":\"footer_container-sm__21NZ9\",\"row\":\"footer_row__2FJC8\",\"no-gutters\":\"footer_no-gutters__1WYSd\",\"col\":\"footer_col__14T1a\",\"col-xl\":\"footer_col-xl__3Hpsk\",\"col-xl-auto\":\"footer_col-xl-auto__1kiCK\",\"col-xl-12\":\"footer_col-xl-12__cVLEI\",\"col-xl-11\":\"footer_col-xl-11__3EW8r\",\"col-xl-10\":\"footer_col-xl-10__qONQW\",\"col-xl-9\":\"footer_col-xl-9__ebeo7\",\"col-xl-8\":\"footer_col-xl-8__SsjJe\",\"col-xl-7\":\"footer_col-xl-7__2pS_c\",\"col-xl-6\":\"footer_col-xl-6__2c5QT\",\"col-xl-5\":\"footer_col-xl-5__rwtYu\",\"col-xl-4\":\"footer_col-xl-4__2g8JX\",\"col-xl-3\":\"footer_col-xl-3__3M2wn\",\"col-xl-2\":\"footer_col-xl-2__3nURK\",\"col-xl-1\":\"footer_col-xl-1__3gZfM\",\"col-lg\":\"footer_col-lg__1aEW9\",\"col-lg-auto\":\"footer_col-lg-auto__wH8sf\",\"col-lg-12\":\"footer_col-lg-12__2lToF\",\"col-lg-11\":\"footer_col-lg-11__tIHcL\",\"col-lg-10\":\"footer_col-lg-10__1JMsk\",\"col-lg-9\":\"footer_col-lg-9__14ze3\",\"col-lg-8\":\"footer_col-lg-8__3N8fP\",\"col-lg-7\":\"footer_col-lg-7__3Ixe9\",\"col-lg-6\":\"footer_col-lg-6__xqm1z\",\"col-lg-5\":\"footer_col-lg-5__tzwkp\",\"col-lg-4\":\"footer_col-lg-4__9gaKs\",\"col-lg-3\":\"footer_col-lg-3__3jnw3\",\"col-lg-2\":\"footer_col-lg-2__1fheT\",\"col-lg-1\":\"footer_col-lg-1__1sEAU\",\"col-md\":\"footer_col-md__1DIbe\",\"col-md-auto\":\"footer_col-md-auto__21y4J\",\"col-md-12\":\"footer_col-md-12__wGFQE\",\"col-md-11\":\"footer_col-md-11__tLnSw\",\"col-md-10\":\"footer_col-md-10__1BrZj\",\"col-md-9\":\"footer_col-md-9__3MpN7\",\"col-md-8\":\"footer_col-md-8__c4bEs\",\"col-md-7\":\"footer_col-md-7__3Mspw\",\"col-md-6\":\"footer_col-md-6__KVL26\",\"col-md-5\":\"footer_col-md-5__2Ubys\",\"col-md-4\":\"footer_col-md-4__1-lbr\",\"col-md-3\":\"footer_col-md-3__2XWJV\",\"col-md-2\":\"footer_col-md-2__2yjTw\",\"col-md-1\":\"footer_col-md-1__3XrdO\",\"col-sm\":\"footer_col-sm__23Tf4\",\"col-sm-auto\":\"footer_col-sm-auto__2srZ5\",\"col-sm-12\":\"footer_col-sm-12__1KUsm\",\"col-sm-11\":\"footer_col-sm-11__2ngMw\",\"col-sm-10\":\"footer_col-sm-10__3HqCR\",\"col-sm-9\":\"footer_col-sm-9__3kAJu\",\"col-sm-8\":\"footer_col-sm-8__1WY5T\",\"col-sm-7\":\"footer_col-sm-7__1tgQo\",\"col-sm-6\":\"footer_col-sm-6__2lGSr\",\"col-sm-5\":\"footer_col-sm-5__1B7lg\",\"col-sm-4\":\"footer_col-sm-4__1B6A-\",\"col-sm-3\":\"footer_col-sm-3__35042\",\"col-sm-2\":\"footer_col-sm-2__1fJlw\",\"col-sm-1\":\"footer_col-sm-1__1e4cY\",\"col-auto\":\"footer_col-auto__nPQdV\",\"col-12\":\"footer_col-12__1oxEJ\",\"col-11\":\"footer_col-11__-5YJN\",\"col-10\":\"footer_col-10__34Hn2\",\"col-9\":\"footer_col-9__249go\",\"col-8\":\"footer_col-8__1Va6M\",\"col-7\":\"footer_col-7__18kKS\",\"col-6\":\"footer_col-6__3pIlE\",\"col-5\":\"footer_col-5__XF7M6\",\"col-4\":\"footer_col-4__1VBrx\",\"col-3\":\"footer_col-3__1KhTQ\",\"col-2\":\"footer_col-2__2Nmw9\",\"col-1\":\"footer_col-1__BuGKL\",\"row-cols-1\":\"footer_row-cols-1__3cSMs\",\"row-cols-2\":\"footer_row-cols-2__3zkI4\",\"row-cols-3\":\"footer_row-cols-3__1eEPR\",\"row-cols-4\":\"footer_row-cols-4__3A38T\",\"row-cols-5\":\"footer_row-cols-5__pg435\",\"row-cols-6\":\"footer_row-cols-6__2e0-8\",\"order-first\":\"footer_order-first__-pk1u\",\"order-last\":\"footer_order-last__26NY-\",\"order-0\":\"footer_order-0__u1yXr\",\"order-1\":\"footer_order-1__3E29T\",\"order-2\":\"footer_order-2__1sNeC\",\"order-3\":\"footer_order-3__1gSbX\",\"order-4\":\"footer_order-4__qY6D0\",\"order-5\":\"footer_order-5__3h-8J\",\"order-6\":\"footer_order-6__3sByM\",\"order-7\":\"footer_order-7__2qrPB\",\"order-8\":\"footer_order-8__3AeRW\",\"order-9\":\"footer_order-9__RnP4R\",\"order-10\":\"footer_order-10__3HkOS\",\"order-11\":\"footer_order-11__3rcjN\",\"order-12\":\"footer_order-12__1HUzk\",\"offset-1\":\"footer_offset-1__1oPmE\",\"offset-2\":\"footer_offset-2__EttBQ\",\"offset-3\":\"footer_offset-3__2-at8\",\"offset-4\":\"footer_offset-4__1y7nH\",\"offset-5\":\"footer_offset-5__8DALL\",\"offset-6\":\"footer_offset-6__2avLH\",\"offset-7\":\"footer_offset-7__9f5DE\",\"offset-8\":\"footer_offset-8__fnmZ1\",\"offset-9\":\"footer_offset-9__30dgG\",\"offset-10\":\"footer_offset-10__wK5mB\",\"offset-11\":\"footer_offset-11__3iFc4\",\"row-cols-sm-1\":\"footer_row-cols-sm-1__2JlJv\",\"row-cols-sm-2\":\"footer_row-cols-sm-2__27HDi\",\"row-cols-sm-3\":\"footer_row-cols-sm-3__1nE7H\",\"row-cols-sm-4\":\"footer_row-cols-sm-4__1y-aN\",\"row-cols-sm-5\":\"footer_row-cols-sm-5__3sAzm\",\"row-cols-sm-6\":\"footer_row-cols-sm-6__1andH\",\"order-sm-first\":\"footer_order-sm-first__3MXya\",\"order-sm-last\":\"footer_order-sm-last__2e0Zb\",\"order-sm-0\":\"footer_order-sm-0__10eIN\",\"order-sm-1\":\"footer_order-sm-1__gPBjX\",\"order-sm-2\":\"footer_order-sm-2__1xjBM\",\"order-sm-3\":\"footer_order-sm-3__3R7wi\",\"order-sm-4\":\"footer_order-sm-4__2_oct\",\"order-sm-5\":\"footer_order-sm-5__1t4ab\",\"order-sm-6\":\"footer_order-sm-6__16lI5\",\"order-sm-7\":\"footer_order-sm-7__29nWM\",\"order-sm-8\":\"footer_order-sm-8__1UvN6\",\"order-sm-9\":\"footer_order-sm-9__1zb4U\",\"order-sm-10\":\"footer_order-sm-10__1EbeZ\",\"order-sm-11\":\"footer_order-sm-11__1zChO\",\"order-sm-12\":\"footer_order-sm-12__1XcWM\",\"offset-sm-0\":\"footer_offset-sm-0__2LYW3\",\"offset-sm-1\":\"footer_offset-sm-1__2aR9C\",\"offset-sm-2\":\"footer_offset-sm-2__3_U69\",\"offset-sm-3\":\"footer_offset-sm-3__1kwrk\",\"offset-sm-4\":\"footer_offset-sm-4__dTL0e\",\"offset-sm-5\":\"footer_offset-sm-5__3fubj\",\"offset-sm-6\":\"footer_offset-sm-6__2mSuY\",\"offset-sm-7\":\"footer_offset-sm-7__2bDSg\",\"offset-sm-8\":\"footer_offset-sm-8__15YcS\",\"offset-sm-9\":\"footer_offset-sm-9__QRYfK\",\"offset-sm-10\":\"footer_offset-sm-10__1_P4C\",\"offset-sm-11\":\"footer_offset-sm-11__1_Har\",\"row-cols-md-1\":\"footer_row-cols-md-1__2_6-w\",\"row-cols-md-2\":\"footer_row-cols-md-2__3cW86\",\"row-cols-md-3\":\"footer_row-cols-md-3__2Exhh\",\"row-cols-md-4\":\"footer_row-cols-md-4__12Zt4\",\"row-cols-md-5\":\"footer_row-cols-md-5__28T9y\",\"row-cols-md-6\":\"footer_row-cols-md-6__3gVOC\",\"order-md-first\":\"footer_order-md-first__3DBtq\",\"order-md-last\":\"footer_order-md-last__3dNeq\",\"order-md-0\":\"footer_order-md-0__3Pbf2\",\"order-md-1\":\"footer_order-md-1__8NTmK\",\"order-md-2\":\"footer_order-md-2__1v0-x\",\"order-md-3\":\"footer_order-md-3__3GbsL\",\"order-md-4\":\"footer_order-md-4__sK6Hj\",\"order-md-5\":\"footer_order-md-5__2j2aj\",\"order-md-6\":\"footer_order-md-6__2VWr2\",\"order-md-7\":\"footer_order-md-7__3ag1X\",\"order-md-8\":\"footer_order-md-8__3R_tV\",\"order-md-9\":\"footer_order-md-9__L5PYc\",\"order-md-10\":\"footer_order-md-10__WeE_W\",\"order-md-11\":\"footer_order-md-11__3Gy7_\",\"order-md-12\":\"footer_order-md-12__NE-A6\",\"offset-md-0\":\"footer_offset-md-0__2HdvV\",\"offset-md-1\":\"footer_offset-md-1__2bTdd\",\"offset-md-2\":\"footer_offset-md-2__3RIxw\",\"offset-md-3\":\"footer_offset-md-3__2s6k6\",\"offset-md-4\":\"footer_offset-md-4__2I45y\",\"offset-md-5\":\"footer_offset-md-5__n8ccb\",\"offset-md-6\":\"footer_offset-md-6__vY0wD\",\"offset-md-7\":\"footer_offset-md-7__3iGNb\",\"offset-md-8\":\"footer_offset-md-8__3YTou\",\"offset-md-9\":\"footer_offset-md-9__2u2fz\",\"offset-md-10\":\"footer_offset-md-10__4b7Wc\",\"offset-md-11\":\"footer_offset-md-11__ZEBWx\",\"row-cols-lg-1\":\"footer_row-cols-lg-1__FS7Zp\",\"row-cols-lg-2\":\"footer_row-cols-lg-2__20zR8\",\"row-cols-lg-3\":\"footer_row-cols-lg-3__2lFGG\",\"row-cols-lg-4\":\"footer_row-cols-lg-4__1aMeu\",\"row-cols-lg-5\":\"footer_row-cols-lg-5__1YsRC\",\"row-cols-lg-6\":\"footer_row-cols-lg-6__1NnsD\",\"order-lg-first\":\"footer_order-lg-first__1QqmI\",\"order-lg-last\":\"footer_order-lg-last__1W9k7\",\"order-lg-0\":\"footer_order-lg-0__3Aqe1\",\"order-lg-1\":\"footer_order-lg-1__3yU7A\",\"order-lg-2\":\"footer_order-lg-2__oJmCH\",\"order-lg-3\":\"footer_order-lg-3__3pP-z\",\"order-lg-4\":\"footer_order-lg-4__2GwjQ\",\"order-lg-5\":\"footer_order-lg-5__3_XE5\",\"order-lg-6\":\"footer_order-lg-6__2-jRy\",\"order-lg-7\":\"footer_order-lg-7__1jBgN\",\"order-lg-8\":\"footer_order-lg-8__37zhk\",\"order-lg-9\":\"footer_order-lg-9__2S5Lz\",\"order-lg-10\":\"footer_order-lg-10__KcmqG\",\"order-lg-11\":\"footer_order-lg-11__2JFvL\",\"order-lg-12\":\"footer_order-lg-12__2feuj\",\"offset-lg-0\":\"footer_offset-lg-0__2gbCX\",\"offset-lg-1\":\"footer_offset-lg-1__3DDUO\",\"offset-lg-2\":\"footer_offset-lg-2__1ZUwo\",\"offset-lg-3\":\"footer_offset-lg-3__2igSg\",\"offset-lg-4\":\"footer_offset-lg-4__1We7x\",\"offset-lg-5\":\"footer_offset-lg-5__3Sf8A\",\"offset-lg-6\":\"footer_offset-lg-6__TbYKS\",\"offset-lg-7\":\"footer_offset-lg-7__3NUhw\",\"offset-lg-8\":\"footer_offset-lg-8__3Gbv3\",\"offset-lg-9\":\"footer_offset-lg-9__2X60q\",\"offset-lg-10\":\"footer_offset-lg-10__1e1F3\",\"offset-lg-11\":\"footer_offset-lg-11__2LS7e\",\"row-cols-xl-1\":\"footer_row-cols-xl-1__392m5\",\"row-cols-xl-2\":\"footer_row-cols-xl-2__22qOQ\",\"row-cols-xl-3\":\"footer_row-cols-xl-3__3rs1i\",\"row-cols-xl-4\":\"footer_row-cols-xl-4__3xOhT\",\"row-cols-xl-5\":\"footer_row-cols-xl-5__iG82F\",\"row-cols-xl-6\":\"footer_row-cols-xl-6__3lTI8\",\"order-xl-first\":\"footer_order-xl-first__2Ouqm\",\"order-xl-last\":\"footer_order-xl-last__3pmDv\",\"order-xl-0\":\"footer_order-xl-0__1I_J-\",\"order-xl-1\":\"footer_order-xl-1__2R8up\",\"order-xl-2\":\"footer_order-xl-2__KCNR3\",\"order-xl-3\":\"footer_order-xl-3__35lsf\",\"order-xl-4\":\"footer_order-xl-4__gsMLt\",\"order-xl-5\":\"footer_order-xl-5__1w62O\",\"order-xl-6\":\"footer_order-xl-6__294oF\",\"order-xl-7\":\"footer_order-xl-7__OPiHA\",\"order-xl-8\":\"footer_order-xl-8__10zla\",\"order-xl-9\":\"footer_order-xl-9__2lIbO\",\"order-xl-10\":\"footer_order-xl-10__CGwWY\",\"order-xl-11\":\"footer_order-xl-11__7KUkb\",\"order-xl-12\":\"footer_order-xl-12__2xRlC\",\"offset-xl-0\":\"footer_offset-xl-0__1piCh\",\"offset-xl-1\":\"footer_offset-xl-1__3i0qX\",\"offset-xl-2\":\"footer_offset-xl-2__3vcbt\",\"offset-xl-3\":\"footer_offset-xl-3__2IGh0\",\"offset-xl-4\":\"footer_offset-xl-4__Ngsv8\",\"offset-xl-5\":\"footer_offset-xl-5__3Emqn\",\"offset-xl-6\":\"footer_offset-xl-6__oX471\",\"offset-xl-7\":\"footer_offset-xl-7__36TJZ\",\"offset-xl-8\":\"footer_offset-xl-8__1hFeC\",\"offset-xl-9\":\"footer_offset-xl-9__1pnTd\",\"offset-xl-10\":\"footer_offset-xl-10__1akHt\",\"offset-xl-11\":\"footer_offset-xl-11__xXBRq\",\"d-none\":\"footer_d-none__1svYE\",\"d-inline\":\"footer_d-inline__3goe7\",\"d-inline-block\":\"footer_d-inline-block__1HVGp\",\"d-block\":\"footer_d-block__1fpx_\",\"d-table\":\"footer_d-table__Ro5wV\",\"d-table-row\":\"footer_d-table-row__2nNz_\",\"d-table-cell\":\"footer_d-table-cell__1ggiB\",\"d-flex\":\"footer_d-flex__x8v68\",\"d-inline-flex\":\"footer_d-inline-flex__2FMyB\",\"d-sm-none\":\"footer_d-sm-none__2-tg-\",\"d-sm-inline\":\"footer_d-sm-inline__1aFjf\",\"d-sm-inline-block\":\"footer_d-sm-inline-block__PXuwf\",\"d-sm-block\":\"footer_d-sm-block__1Z_Um\",\"d-sm-table\":\"footer_d-sm-table__2XhPC\",\"d-sm-table-row\":\"footer_d-sm-table-row__3wUwo\",\"d-sm-table-cell\":\"footer_d-sm-table-cell__uB46K\",\"d-sm-flex\":\"footer_d-sm-flex__1dUx-\",\"d-sm-inline-flex\":\"footer_d-sm-inline-flex__3_SMv\",\"d-md-none\":\"footer_d-md-none__2kBuf\",\"d-md-inline\":\"footer_d-md-inline__1PcoM\",\"d-md-inline-block\":\"footer_d-md-inline-block__14Vu8\",\"d-md-block\":\"footer_d-md-block__3GyOy\",\"d-md-table\":\"footer_d-md-table__JMY2U\",\"d-md-table-row\":\"footer_d-md-table-row__Avj30\",\"d-md-table-cell\":\"footer_d-md-table-cell__bPAL8\",\"d-md-flex\":\"footer_d-md-flex__2K2jH\",\"d-md-inline-flex\":\"footer_d-md-inline-flex__3BYF2\",\"d-lg-none\":\"footer_d-lg-none__iATVZ\",\"d-lg-inline\":\"footer_d-lg-inline__3rlw6\",\"d-lg-inline-block\":\"footer_d-lg-inline-block__2n7xS\",\"d-lg-block\":\"footer_d-lg-block__1y-Ul\",\"d-lg-table\":\"footer_d-lg-table__36lXs\",\"d-lg-table-row\":\"footer_d-lg-table-row__38wz-\",\"d-lg-table-cell\":\"footer_d-lg-table-cell__3Egor\",\"d-lg-flex\":\"footer_d-lg-flex__3SYMJ\",\"d-lg-inline-flex\":\"footer_d-lg-inline-flex__pDmAS\",\"d-xl-none\":\"footer_d-xl-none__2hzRT\",\"d-xl-inline\":\"footer_d-xl-inline__2oNy7\",\"d-xl-inline-block\":\"footer_d-xl-inline-block__2z2SG\",\"d-xl-block\":\"footer_d-xl-block__DlKoT\",\"d-xl-table\":\"footer_d-xl-table__3Wnku\",\"d-xl-table-row\":\"footer_d-xl-table-row__3Kkxf\",\"d-xl-table-cell\":\"footer_d-xl-table-cell__3znJy\",\"d-xl-flex\":\"footer_d-xl-flex__2JGam\",\"d-xl-inline-flex\":\"footer_d-xl-inline-flex__EG-hR\",\"d-print-none\":\"footer_d-print-none__1EYGi\",\"d-print-inline\":\"footer_d-print-inline__3hCGE\",\"d-print-inline-block\":\"footer_d-print-inline-block__1gyW7\",\"d-print-block\":\"footer_d-print-block__3Wkll\",\"d-print-table\":\"footer_d-print-table__3JAr0\",\"d-print-table-row\":\"footer_d-print-table-row__bBHvG\",\"d-print-table-cell\":\"footer_d-print-table-cell__3HoFL\",\"d-print-flex\":\"footer_d-print-flex__1tcNr\",\"d-print-inline-flex\":\"footer_d-print-inline-flex__2iqLV\",\"flex-row\":\"footer_flex-row__2KHVV\",\"flex-column\":\"footer_flex-column__P_6HH\",\"flex-row-reverse\":\"footer_flex-row-reverse__3LBeh\",\"flex-column-reverse\":\"footer_flex-column-reverse__1_6Kb\",\"flex-wrap\":\"footer_flex-wrap__2ovDJ\",\"flex-nowrap\":\"footer_flex-nowrap__2SgWI\",\"flex-wrap-reverse\":\"footer_flex-wrap-reverse__5NRax\",\"flex-fill\":\"footer_flex-fill__1XZjf\",\"flex-grow-0\":\"footer_flex-grow-0__3CZTc\",\"flex-grow-1\":\"footer_flex-grow-1__8Twgc\",\"flex-shrink-0\":\"footer_flex-shrink-0__3AECU\",\"flex-shrink-1\":\"footer_flex-shrink-1__3HKHJ\",\"justify-content-start\":\"footer_justify-content-start__3jl03\",\"justify-content-end\":\"footer_justify-content-end__1bgHK\",\"justify-content-center\":\"footer_justify-content-center__OHa8n\",\"justify-content-between\":\"footer_justify-content-between__2eNmC\",\"justify-content-around\":\"footer_justify-content-around__1UJZY\",\"align-items-start\":\"footer_align-items-start__3qRsd\",\"align-items-end\":\"footer_align-items-end__2S3u_\",\"align-items-center\":\"footer_align-items-center__2FhK3\",\"align-items-baseline\":\"footer_align-items-baseline__2GU1v\",\"align-items-stretch\":\"footer_align-items-stretch__24k6h\",\"align-content-start\":\"footer_align-content-start__211D0\",\"align-content-end\":\"footer_align-content-end__C49v9\",\"align-content-center\":\"footer_align-content-center__2b2ue\",\"align-content-between\":\"footer_align-content-between__1iYbE\",\"align-content-around\":\"footer_align-content-around__JiP3A\",\"align-content-stretch\":\"footer_align-content-stretch__3ZRLK\",\"align-self-auto\":\"footer_align-self-auto__2nEl8\",\"align-self-start\":\"footer_align-self-start__2TDd1\",\"align-self-end\":\"footer_align-self-end__14e0o\",\"align-self-center\":\"footer_align-self-center__16RJ1\",\"align-self-baseline\":\"footer_align-self-baseline__2_1We\",\"align-self-stretch\":\"footer_align-self-stretch__3XFQf\",\"flex-sm-row\":\"footer_flex-sm-row__2KxNL\",\"flex-sm-column\":\"footer_flex-sm-column__1o6oG\",\"flex-sm-row-reverse\":\"footer_flex-sm-row-reverse__HcHcQ\",\"flex-sm-column-reverse\":\"footer_flex-sm-column-reverse__3THib\",\"flex-sm-wrap\":\"footer_flex-sm-wrap__27v2w\",\"flex-sm-nowrap\":\"footer_flex-sm-nowrap__3iGCq\",\"flex-sm-wrap-reverse\":\"footer_flex-sm-wrap-reverse__3vwAa\",\"flex-sm-fill\":\"footer_flex-sm-fill__sujTb\",\"flex-sm-grow-0\":\"footer_flex-sm-grow-0__QPiwd\",\"flex-sm-grow-1\":\"footer_flex-sm-grow-1__3F1T6\",\"flex-sm-shrink-0\":\"footer_flex-sm-shrink-0__NmLbz\",\"flex-sm-shrink-1\":\"footer_flex-sm-shrink-1__1C6TU\",\"justify-content-sm-start\":\"footer_justify-content-sm-start__WOg_T\",\"justify-content-sm-end\":\"footer_justify-content-sm-end__2HfVf\",\"justify-content-sm-center\":\"footer_justify-content-sm-center__KfVIF\",\"justify-content-sm-between\":\"footer_justify-content-sm-between__3qba-\",\"justify-content-sm-around\":\"footer_justify-content-sm-around__2jlr9\",\"align-items-sm-start\":\"footer_align-items-sm-start__x8Bqv\",\"align-items-sm-end\":\"footer_align-items-sm-end__ZBF6F\",\"align-items-sm-center\":\"footer_align-items-sm-center__31x_P\",\"align-items-sm-baseline\":\"footer_align-items-sm-baseline__2TC2a\",\"align-items-sm-stretch\":\"footer_align-items-sm-stretch__1ehVr\",\"align-content-sm-start\":\"footer_align-content-sm-start__2MqJ4\",\"align-content-sm-end\":\"footer_align-content-sm-end__1YdM8\",\"align-content-sm-center\":\"footer_align-content-sm-center__3bAxH\",\"align-content-sm-between\":\"footer_align-content-sm-between__2AOjp\",\"align-content-sm-around\":\"footer_align-content-sm-around__OruhK\",\"align-content-sm-stretch\":\"footer_align-content-sm-stretch__2PMjT\",\"align-self-sm-auto\":\"footer_align-self-sm-auto__1Q2w3\",\"align-self-sm-start\":\"footer_align-self-sm-start__2mZwg\",\"align-self-sm-end\":\"footer_align-self-sm-end__2knB3\",\"align-self-sm-center\":\"footer_align-self-sm-center__8rkrQ\",\"align-self-sm-baseline\":\"footer_align-self-sm-baseline__1r0Kf\",\"align-self-sm-stretch\":\"footer_align-self-sm-stretch__IvfHs\",\"flex-md-row\":\"footer_flex-md-row__3MI5w\",\"flex-md-column\":\"footer_flex-md-column__1diBU\",\"flex-md-row-reverse\":\"footer_flex-md-row-reverse__1CVa_\",\"flex-md-column-reverse\":\"footer_flex-md-column-reverse__1NUTD\",\"flex-md-wrap\":\"footer_flex-md-wrap__1p45D\",\"flex-md-nowrap\":\"footer_flex-md-nowrap__3aTmz\",\"flex-md-wrap-reverse\":\"footer_flex-md-wrap-reverse__1sHsZ\",\"flex-md-fill\":\"footer_flex-md-fill__wYl7U\",\"flex-md-grow-0\":\"footer_flex-md-grow-0__24FRk\",\"flex-md-grow-1\":\"footer_flex-md-grow-1__2dfz9\",\"flex-md-shrink-0\":\"footer_flex-md-shrink-0__2OODm\",\"flex-md-shrink-1\":\"footer_flex-md-shrink-1__3uFKX\",\"justify-content-md-start\":\"footer_justify-content-md-start__1Fdu6\",\"justify-content-md-end\":\"footer_justify-content-md-end__2d9_Z\",\"justify-content-md-center\":\"footer_justify-content-md-center__27ptp\",\"justify-content-md-between\":\"footer_justify-content-md-between__60vyv\",\"justify-content-md-around\":\"footer_justify-content-md-around__rKlBu\",\"align-items-md-start\":\"footer_align-items-md-start__IJd4Q\",\"align-items-md-end\":\"footer_align-items-md-end__2piVE\",\"align-items-md-center\":\"footer_align-items-md-center__1Uf6S\",\"align-items-md-baseline\":\"footer_align-items-md-baseline__2f1n7\",\"align-items-md-stretch\":\"footer_align-items-md-stretch__2V292\",\"align-content-md-start\":\"footer_align-content-md-start__2iCnm\",\"align-content-md-end\":\"footer_align-content-md-end__3AccC\",\"align-content-md-center\":\"footer_align-content-md-center__2Xalt\",\"align-content-md-between\":\"footer_align-content-md-between__35oFb\",\"align-content-md-around\":\"footer_align-content-md-around__3PY-o\",\"align-content-md-stretch\":\"footer_align-content-md-stretch__35yMD\",\"align-self-md-auto\":\"footer_align-self-md-auto__2NCAJ\",\"align-self-md-start\":\"footer_align-self-md-start__NWaoa\",\"align-self-md-end\":\"footer_align-self-md-end__1gEwz\",\"align-self-md-center\":\"footer_align-self-md-center__3N_Px\",\"align-self-md-baseline\":\"footer_align-self-md-baseline__29yoE\",\"align-self-md-stretch\":\"footer_align-self-md-stretch__Pn7Tl\",\"flex-lg-row\":\"footer_flex-lg-row__2XR16\",\"flex-lg-column\":\"footer_flex-lg-column__3kvLS\",\"flex-lg-row-reverse\":\"footer_flex-lg-row-reverse__mjrjZ\",\"flex-lg-column-reverse\":\"footer_flex-lg-column-reverse__-YHUE\",\"flex-lg-wrap\":\"footer_flex-lg-wrap__2c4eJ\",\"flex-lg-nowrap\":\"footer_flex-lg-nowrap__2Z7AC\",\"flex-lg-wrap-reverse\":\"footer_flex-lg-wrap-reverse__-n3aP\",\"flex-lg-fill\":\"footer_flex-lg-fill__3TlpC\",\"flex-lg-grow-0\":\"footer_flex-lg-grow-0__3OJhk\",\"flex-lg-grow-1\":\"footer_flex-lg-grow-1__72oEc\",\"flex-lg-shrink-0\":\"footer_flex-lg-shrink-0__3XrWp\",\"flex-lg-shrink-1\":\"footer_flex-lg-shrink-1__d8V62\",\"justify-content-lg-start\":\"footer_justify-content-lg-start__V2HpF\",\"justify-content-lg-end\":\"footer_justify-content-lg-end__1drtt\",\"justify-content-lg-center\":\"footer_justify-content-lg-center__vATRp\",\"justify-content-lg-between\":\"footer_justify-content-lg-between__2P3ex\",\"justify-content-lg-around\":\"footer_justify-content-lg-around__32xW_\",\"align-items-lg-start\":\"footer_align-items-lg-start__2UfvX\",\"align-items-lg-end\":\"footer_align-items-lg-end__3SqEh\",\"align-items-lg-center\":\"footer_align-items-lg-center__3b1S8\",\"align-items-lg-baseline\":\"footer_align-items-lg-baseline__1A1KR\",\"align-items-lg-stretch\":\"footer_align-items-lg-stretch__l_iuT\",\"align-content-lg-start\":\"footer_align-content-lg-start__1-iJZ\",\"align-content-lg-end\":\"footer_align-content-lg-end__2NfKF\",\"align-content-lg-center\":\"footer_align-content-lg-center__PsKi8\",\"align-content-lg-between\":\"footer_align-content-lg-between__eJwN4\",\"align-content-lg-around\":\"footer_align-content-lg-around__2Ict-\",\"align-content-lg-stretch\":\"footer_align-content-lg-stretch__M3q5a\",\"align-self-lg-auto\":\"footer_align-self-lg-auto__1d4C3\",\"align-self-lg-start\":\"footer_align-self-lg-start__nw5rt\",\"align-self-lg-end\":\"footer_align-self-lg-end__Wlaki\",\"align-self-lg-center\":\"footer_align-self-lg-center__2XoRs\",\"align-self-lg-baseline\":\"footer_align-self-lg-baseline__3HczE\",\"align-self-lg-stretch\":\"footer_align-self-lg-stretch__drvJ7\",\"flex-xl-row\":\"footer_flex-xl-row__3SQrM\",\"flex-xl-column\":\"footer_flex-xl-column__2dyLJ\",\"flex-xl-row-reverse\":\"footer_flex-xl-row-reverse__3RnBt\",\"flex-xl-column-reverse\":\"footer_flex-xl-column-reverse__3L-Dc\",\"flex-xl-wrap\":\"footer_flex-xl-wrap__GuKoT\",\"flex-xl-nowrap\":\"footer_flex-xl-nowrap__6XtiZ\",\"flex-xl-wrap-reverse\":\"footer_flex-xl-wrap-reverse__2RLfr\",\"flex-xl-fill\":\"footer_flex-xl-fill__2UATL\",\"flex-xl-grow-0\":\"footer_flex-xl-grow-0__2S4sD\",\"flex-xl-grow-1\":\"footer_flex-xl-grow-1__M3kOV\",\"flex-xl-shrink-0\":\"footer_flex-xl-shrink-0__3yfa-\",\"flex-xl-shrink-1\":\"footer_flex-xl-shrink-1__1dipS\",\"justify-content-xl-start\":\"footer_justify-content-xl-start__9dKYt\",\"justify-content-xl-end\":\"footer_justify-content-xl-end__mZNGU\",\"justify-content-xl-center\":\"footer_justify-content-xl-center__1DObN\",\"justify-content-xl-between\":\"footer_justify-content-xl-between__QB_jg\",\"justify-content-xl-around\":\"footer_justify-content-xl-around__2aDDb\",\"align-items-xl-start\":\"footer_align-items-xl-start__qQRVL\",\"align-items-xl-end\":\"footer_align-items-xl-end__1ZiE7\",\"align-items-xl-center\":\"footer_align-items-xl-center__16VC2\",\"align-items-xl-baseline\":\"footer_align-items-xl-baseline__3FmnH\",\"align-items-xl-stretch\":\"footer_align-items-xl-stretch__3eQe2\",\"align-content-xl-start\":\"footer_align-content-xl-start__8H__8\",\"align-content-xl-end\":\"footer_align-content-xl-end__2sTuj\",\"align-content-xl-center\":\"footer_align-content-xl-center__3mGPz\",\"align-content-xl-between\":\"footer_align-content-xl-between__3kFom\",\"align-content-xl-around\":\"footer_align-content-xl-around__eek6n\",\"align-content-xl-stretch\":\"footer_align-content-xl-stretch__3ksXQ\",\"align-self-xl-auto\":\"footer_align-self-xl-auto__1RsQc\",\"align-self-xl-start\":\"footer_align-self-xl-start__2XhDl\",\"align-self-xl-end\":\"footer_align-self-xl-end__KMuxy\",\"align-self-xl-center\":\"footer_align-self-xl-center__2rV7x\",\"align-self-xl-baseline\":\"footer_align-self-xl-baseline__3-_m9\",\"align-self-xl-stretch\":\"footer_align-self-xl-stretch__10QYB\",\"m-0\":\"footer_m-0__1dfaL\",\"mt-0\":\"footer_mt-0__1ffZ6\",\"my-0\":\"footer_my-0__3PbbN\",\"mr-0\":\"footer_mr-0__2RElm\",\"mx-0\":\"footer_mx-0__OKK_C\",\"mb-0\":\"footer_mb-0__1RWG8\",\"ml-0\":\"footer_ml-0__1vZ0o\",\"m-1\":\"footer_m-1__1paoY\",\"mt-1\":\"footer_mt-1__13yOS\",\"my-1\":\"footer_my-1__hHnIm\",\"mr-1\":\"footer_mr-1__1H6LS\",\"mx-1\":\"footer_mx-1__2wO_T\",\"mb-1\":\"footer_mb-1__faFgI\",\"ml-1\":\"footer_ml-1__1CXlU\",\"m-2\":\"footer_m-2__106v9\",\"mt-2\":\"footer_mt-2__tlDGx\",\"my-2\":\"footer_my-2__3GqPR\",\"mr-2\":\"footer_mr-2__3s5VC\",\"mx-2\":\"footer_mx-2__asqHC\",\"mb-2\":\"footer_mb-2__1Lna5\",\"ml-2\":\"footer_ml-2__3FS1b\",\"m-3\":\"footer_m-3__1cJDL\",\"mt-3\":\"footer_mt-3__1leEs\",\"my-3\":\"footer_my-3__2izxR\",\"mr-3\":\"footer_mr-3__1lOgk\",\"mx-3\":\"footer_mx-3__2GWHn\",\"mb-3\":\"footer_mb-3__2b_BW\",\"ml-3\":\"footer_ml-3__2uN5E\",\"m-4\":\"footer_m-4__2GsRX\",\"mt-4\":\"footer_mt-4__yWLLC\",\"my-4\":\"footer_my-4__2BHhw\",\"mr-4\":\"footer_mr-4__3sBtG\",\"mx-4\":\"footer_mx-4__1J2K4\",\"mb-4\":\"footer_mb-4__XNURo\",\"ml-4\":\"footer_ml-4__2GoOU\",\"m-5\":\"footer_m-5__3hUBy\",\"mt-5\":\"footer_mt-5__3ZpCO\",\"my-5\":\"footer_my-5___Deld\",\"mr-5\":\"footer_mr-5__2dOfh\",\"mx-5\":\"footer_mx-5__QMPDd\",\"mb-5\":\"footer_mb-5__Icr2q\",\"ml-5\":\"footer_ml-5__28SgX\",\"p-0\":\"footer_p-0__1kg8B\",\"pt-0\":\"footer_pt-0__1_h7R\",\"py-0\":\"footer_py-0__1RQSk\",\"pr-0\":\"footer_pr-0__14jhF\",\"px-0\":\"footer_px-0__2MY5c\",\"pb-0\":\"footer_pb-0__2AVCB\",\"pl-0\":\"footer_pl-0__1Sx_M\",\"p-1\":\"footer_p-1__3meRL\",\"pt-1\":\"footer_pt-1__1ajUX\",\"py-1\":\"footer_py-1__HEm2V\",\"pr-1\":\"footer_pr-1__3VB6K\",\"px-1\":\"footer_px-1__1trDA\",\"pb-1\":\"footer_pb-1__3cByt\",\"pl-1\":\"footer_pl-1__2LkMa\",\"p-2\":\"footer_p-2__35K9z\",\"pt-2\":\"footer_pt-2__AAtWv\",\"py-2\":\"footer_py-2__2zgL4\",\"pr-2\":\"footer_pr-2__1DTJZ\",\"px-2\":\"footer_px-2__2epIb\",\"pb-2\":\"footer_pb-2__2s-50\",\"pl-2\":\"footer_pl-2__pn1W_\",\"p-3\":\"footer_p-3__kS53A\",\"pt-3\":\"footer_pt-3__3CB8b\",\"py-3\":\"footer_py-3__3R9RZ\",\"pr-3\":\"footer_pr-3__axu7e\",\"px-3\":\"footer_px-3__uNVEc\",\"pb-3\":\"footer_pb-3__1LawP\",\"pl-3\":\"footer_pl-3__1YqcI\",\"p-4\":\"footer_p-4__2pJ5r\",\"pt-4\":\"footer_pt-4__3uK6G\",\"py-4\":\"footer_py-4__2iwt7\",\"pr-4\":\"footer_pr-4__buz2b\",\"px-4\":\"footer_px-4__G48IR\",\"pb-4\":\"footer_pb-4__2SWVz\",\"pl-4\":\"footer_pl-4__HzxC0\",\"p-5\":\"footer_p-5__vwCfR\",\"pt-5\":\"footer_pt-5__10L6S\",\"py-5\":\"footer_py-5__2jAPl\",\"pr-5\":\"footer_pr-5__1qtSh\",\"px-5\":\"footer_px-5__3JLnj\",\"pb-5\":\"footer_pb-5__138qS\",\"pl-5\":\"footer_pl-5__21AqB\",\"m-n1\":\"footer_m-n1__10Ve4\",\"mt-n1\":\"footer_mt-n1__3mjx_\",\"my-n1\":\"footer_my-n1__1ECGO\",\"mr-n1\":\"footer_mr-n1__1xNoH\",\"mx-n1\":\"footer_mx-n1__1Fu4y\",\"mb-n1\":\"footer_mb-n1__2NmYo\",\"ml-n1\":\"footer_ml-n1__1UfCs\",\"m-n2\":\"footer_m-n2__1IktW\",\"mt-n2\":\"footer_mt-n2__dmVYm\",\"my-n2\":\"footer_my-n2__j_kjJ\",\"mr-n2\":\"footer_mr-n2__11jG1\",\"mx-n2\":\"footer_mx-n2__3vHf5\",\"mb-n2\":\"footer_mb-n2__PK-R2\",\"ml-n2\":\"footer_ml-n2__3A-bt\",\"m-n3\":\"footer_m-n3__35dQ5\",\"mt-n3\":\"footer_mt-n3__1hMHY\",\"my-n3\":\"footer_my-n3__1rkJL\",\"mr-n3\":\"footer_mr-n3__2J6ix\",\"mx-n3\":\"footer_mx-n3__3BF0B\",\"mb-n3\":\"footer_mb-n3__G-YGt\",\"ml-n3\":\"footer_ml-n3__eCBao\",\"m-n4\":\"footer_m-n4__3CwZw\",\"mt-n4\":\"footer_mt-n4__1GSmq\",\"my-n4\":\"footer_my-n4__1kdX8\",\"mr-n4\":\"footer_mr-n4__1Q_WL\",\"mx-n4\":\"footer_mx-n4__2pri8\",\"mb-n4\":\"footer_mb-n4__2XQGQ\",\"ml-n4\":\"footer_ml-n4__25vij\",\"m-n5\":\"footer_m-n5__3m3Z5\",\"mt-n5\":\"footer_mt-n5__1R0Xp\",\"my-n5\":\"footer_my-n5__1WC1M\",\"mr-n5\":\"footer_mr-n5__2wMrT\",\"mx-n5\":\"footer_mx-n5__TadHk\",\"mb-n5\":\"footer_mb-n5__2JfQM\",\"ml-n5\":\"footer_ml-n5__1o1IZ\",\"m-auto\":\"footer_m-auto__2nIZO\",\"mt-auto\":\"footer_mt-auto__1wFRZ\",\"my-auto\":\"footer_my-auto__3Mm_B\",\"mr-auto\":\"footer_mr-auto__uYQf9\",\"mx-auto\":\"footer_mx-auto__2oMCA\",\"mb-auto\":\"footer_mb-auto__35i58\",\"ml-auto\":\"footer_ml-auto__3kyHb\",\"m-sm-0\":\"footer_m-sm-0__3SRSz\",\"mt-sm-0\":\"footer_mt-sm-0__36zbK\",\"my-sm-0\":\"footer_my-sm-0__5MZWu\",\"mr-sm-0\":\"footer_mr-sm-0__hImnW\",\"mx-sm-0\":\"footer_mx-sm-0__2V52k\",\"mb-sm-0\":\"footer_mb-sm-0__20-f4\",\"ml-sm-0\":\"footer_ml-sm-0__10Qk3\",\"m-sm-1\":\"footer_m-sm-1__3XtyY\",\"mt-sm-1\":\"footer_mt-sm-1__hLH9F\",\"my-sm-1\":\"footer_my-sm-1__3_SRi\",\"mr-sm-1\":\"footer_mr-sm-1__1zgss\",\"mx-sm-1\":\"footer_mx-sm-1__3ZtyB\",\"mb-sm-1\":\"footer_mb-sm-1__zHxQt\",\"ml-sm-1\":\"footer_ml-sm-1__3AdZF\",\"m-sm-2\":\"footer_m-sm-2__LfLEU\",\"mt-sm-2\":\"footer_mt-sm-2__1dwNo\",\"my-sm-2\":\"footer_my-sm-2__1XVpc\",\"mr-sm-2\":\"footer_mr-sm-2__27fkr\",\"mx-sm-2\":\"footer_mx-sm-2__10EUL\",\"mb-sm-2\":\"footer_mb-sm-2__2mQ1z\",\"ml-sm-2\":\"footer_ml-sm-2__2Wk3E\",\"m-sm-3\":\"footer_m-sm-3__1MUEN\",\"mt-sm-3\":\"footer_mt-sm-3__Mqjcz\",\"my-sm-3\":\"footer_my-sm-3__6sSP7\",\"mr-sm-3\":\"footer_mr-sm-3__11LcJ\",\"mx-sm-3\":\"footer_mx-sm-3__1n3Mj\",\"mb-sm-3\":\"footer_mb-sm-3__2eHzj\",\"ml-sm-3\":\"footer_ml-sm-3__1wCG0\",\"m-sm-4\":\"footer_m-sm-4__2Ljh5\",\"mt-sm-4\":\"footer_mt-sm-4__Wtfcb\",\"my-sm-4\":\"footer_my-sm-4__71WM-\",\"mr-sm-4\":\"footer_mr-sm-4__2eAiR\",\"mx-sm-4\":\"footer_mx-sm-4__3L7W6\",\"mb-sm-4\":\"footer_mb-sm-4__19MlG\",\"ml-sm-4\":\"footer_ml-sm-4__lTz0s\",\"m-sm-5\":\"footer_m-sm-5__JKBsc\",\"mt-sm-5\":\"footer_mt-sm-5__VfURp\",\"my-sm-5\":\"footer_my-sm-5__A0m1O\",\"mr-sm-5\":\"footer_mr-sm-5__ctIIj\",\"mx-sm-5\":\"footer_mx-sm-5__15Mu6\",\"mb-sm-5\":\"footer_mb-sm-5__2X3oQ\",\"ml-sm-5\":\"footer_ml-sm-5__1NbUM\",\"p-sm-0\":\"footer_p-sm-0__2Dqti\",\"pt-sm-0\":\"footer_pt-sm-0__1Ggx7\",\"py-sm-0\":\"footer_py-sm-0__1GuCI\",\"pr-sm-0\":\"footer_pr-sm-0__3-klK\",\"px-sm-0\":\"footer_px-sm-0__3uaCi\",\"pb-sm-0\":\"footer_pb-sm-0__2TXUA\",\"pl-sm-0\":\"footer_pl-sm-0__G4MGQ\",\"p-sm-1\":\"footer_p-sm-1__3ZKP_\",\"pt-sm-1\":\"footer_pt-sm-1__10r2u\",\"py-sm-1\":\"footer_py-sm-1__3rRYh\",\"pr-sm-1\":\"footer_pr-sm-1__3Iv5q\",\"px-sm-1\":\"footer_px-sm-1__-uuZW\",\"pb-sm-1\":\"footer_pb-sm-1__3DEeT\",\"pl-sm-1\":\"footer_pl-sm-1__2HNyP\",\"p-sm-2\":\"footer_p-sm-2__155lq\",\"pt-sm-2\":\"footer_pt-sm-2__2-vTN\",\"py-sm-2\":\"footer_py-sm-2__1hi4s\",\"pr-sm-2\":\"footer_pr-sm-2__1wJnv\",\"px-sm-2\":\"footer_px-sm-2__1WF0m\",\"pb-sm-2\":\"footer_pb-sm-2__2FicK\",\"pl-sm-2\":\"footer_pl-sm-2__2w7Sd\",\"p-sm-3\":\"footer_p-sm-3__267t9\",\"pt-sm-3\":\"footer_pt-sm-3__3tq-e\",\"py-sm-3\":\"footer_py-sm-3__335gY\",\"pr-sm-3\":\"footer_pr-sm-3__1s_OC\",\"px-sm-3\":\"footer_px-sm-3__19QhV\",\"pb-sm-3\":\"footer_pb-sm-3__1QFXH\",\"pl-sm-3\":\"footer_pl-sm-3__39hBo\",\"p-sm-4\":\"footer_p-sm-4__aGCfx\",\"pt-sm-4\":\"footer_pt-sm-4__-WzNv\",\"py-sm-4\":\"footer_py-sm-4__2ZMkI\",\"pr-sm-4\":\"footer_pr-sm-4__1evYJ\",\"px-sm-4\":\"footer_px-sm-4__10ntE\",\"pb-sm-4\":\"footer_pb-sm-4__3yuce\",\"pl-sm-4\":\"footer_pl-sm-4__35sfV\",\"p-sm-5\":\"footer_p-sm-5__1Bf2i\",\"pt-sm-5\":\"footer_pt-sm-5__2CljP\",\"py-sm-5\":\"footer_py-sm-5__3KBxW\",\"pr-sm-5\":\"footer_pr-sm-5__3rqlb\",\"px-sm-5\":\"footer_px-sm-5__1iaVk\",\"pb-sm-5\":\"footer_pb-sm-5__2yemm\",\"pl-sm-5\":\"footer_pl-sm-5__9ZGyA\",\"m-sm-n1\":\"footer_m-sm-n1__1BeLS\",\"mt-sm-n1\":\"footer_mt-sm-n1__7IBS3\",\"my-sm-n1\":\"footer_my-sm-n1__1dSGC\",\"mr-sm-n1\":\"footer_mr-sm-n1__nYtLH\",\"mx-sm-n1\":\"footer_mx-sm-n1__14SAT\",\"mb-sm-n1\":\"footer_mb-sm-n1__PmReV\",\"ml-sm-n1\":\"footer_ml-sm-n1__21qt7\",\"m-sm-n2\":\"footer_m-sm-n2__2OSyq\",\"mt-sm-n2\":\"footer_mt-sm-n2__3HDmt\",\"my-sm-n2\":\"footer_my-sm-n2__1xVb2\",\"mr-sm-n2\":\"footer_mr-sm-n2__ap5q8\",\"mx-sm-n2\":\"footer_mx-sm-n2__3HHH0\",\"mb-sm-n2\":\"footer_mb-sm-n2__1KIOO\",\"ml-sm-n2\":\"footer_ml-sm-n2__1Jp5s\",\"m-sm-n3\":\"footer_m-sm-n3__2OLYl\",\"mt-sm-n3\":\"footer_mt-sm-n3__14r5v\",\"my-sm-n3\":\"footer_my-sm-n3__OTTqw\",\"mr-sm-n3\":\"footer_mr-sm-n3__DHYhm\",\"mx-sm-n3\":\"footer_mx-sm-n3__2Ajcz\",\"mb-sm-n3\":\"footer_mb-sm-n3__1HA9v\",\"ml-sm-n3\":\"footer_ml-sm-n3__pmWYu\",\"m-sm-n4\":\"footer_m-sm-n4__IipXq\",\"mt-sm-n4\":\"footer_mt-sm-n4__3wd2K\",\"my-sm-n4\":\"footer_my-sm-n4__2VqSn\",\"mr-sm-n4\":\"footer_mr-sm-n4__AZaLl\",\"mx-sm-n4\":\"footer_mx-sm-n4__p3cOI\",\"mb-sm-n4\":\"footer_mb-sm-n4__1RDj0\",\"ml-sm-n4\":\"footer_ml-sm-n4__2O3E5\",\"m-sm-n5\":\"footer_m-sm-n5__8-tSF\",\"mt-sm-n5\":\"footer_mt-sm-n5__1YZGN\",\"my-sm-n5\":\"footer_my-sm-n5__23BL_\",\"mr-sm-n5\":\"footer_mr-sm-n5__ZnpMp\",\"mx-sm-n5\":\"footer_mx-sm-n5__2dw26\",\"mb-sm-n5\":\"footer_mb-sm-n5__14bQv\",\"ml-sm-n5\":\"footer_ml-sm-n5__2BSrh\",\"m-sm-auto\":\"footer_m-sm-auto__1cnUY\",\"mt-sm-auto\":\"footer_mt-sm-auto__3NAI2\",\"my-sm-auto\":\"footer_my-sm-auto__2Mot-\",\"mr-sm-auto\":\"footer_mr-sm-auto__T8M5b\",\"mx-sm-auto\":\"footer_mx-sm-auto__2uTNd\",\"mb-sm-auto\":\"footer_mb-sm-auto__3ihAg\",\"ml-sm-auto\":\"footer_ml-sm-auto__2J6tn\",\"m-md-0\":\"footer_m-md-0__2nQF4\",\"mt-md-0\":\"footer_mt-md-0__3CABH\",\"my-md-0\":\"footer_my-md-0__3Tyxy\",\"mr-md-0\":\"footer_mr-md-0__3mSZq\",\"mx-md-0\":\"footer_mx-md-0___O2FR\",\"mb-md-0\":\"footer_mb-md-0__1mS-V\",\"ml-md-0\":\"footer_ml-md-0__2cDog\",\"m-md-1\":\"footer_m-md-1__5th_D\",\"mt-md-1\":\"footer_mt-md-1__3BIvj\",\"my-md-1\":\"footer_my-md-1__1IFdG\",\"mr-md-1\":\"footer_mr-md-1__i_Kuf\",\"mx-md-1\":\"footer_mx-md-1__2kxZz\",\"mb-md-1\":\"footer_mb-md-1__2jfto\",\"ml-md-1\":\"footer_ml-md-1__p6jsq\",\"m-md-2\":\"footer_m-md-2__1W5uW\",\"mt-md-2\":\"footer_mt-md-2__2-FDR\",\"my-md-2\":\"footer_my-md-2__1BCyk\",\"mr-md-2\":\"footer_mr-md-2__1y1uW\",\"mx-md-2\":\"footer_mx-md-2__3jjbT\",\"mb-md-2\":\"footer_mb-md-2__3WOl6\",\"ml-md-2\":\"footer_ml-md-2__NKbvr\",\"m-md-3\":\"footer_m-md-3__3KfDU\",\"mt-md-3\":\"footer_mt-md-3__2lUqN\",\"my-md-3\":\"footer_my-md-3__3JT8a\",\"mr-md-3\":\"footer_mr-md-3__1gRlx\",\"mx-md-3\":\"footer_mx-md-3__wxVgV\",\"mb-md-3\":\"footer_mb-md-3__7wdjh\",\"ml-md-3\":\"footer_ml-md-3__3-hr3\",\"m-md-4\":\"footer_m-md-4__a7yoB\",\"mt-md-4\":\"footer_mt-md-4__2rJMR\",\"my-md-4\":\"footer_my-md-4__1qcPT\",\"mr-md-4\":\"footer_mr-md-4__2wd6d\",\"mx-md-4\":\"footer_mx-md-4__34d_D\",\"mb-md-4\":\"footer_mb-md-4__13thB\",\"ml-md-4\":\"footer_ml-md-4__nCC-f\",\"m-md-5\":\"footer_m-md-5__2BdiK\",\"mt-md-5\":\"footer_mt-md-5__13uXU\",\"my-md-5\":\"footer_my-md-5__HRXiM\",\"mr-md-5\":\"footer_mr-md-5__3Cp3T\",\"mx-md-5\":\"footer_mx-md-5__3OBYs\",\"mb-md-5\":\"footer_mb-md-5__XZlqS\",\"ml-md-5\":\"footer_ml-md-5__zslqY\",\"p-md-0\":\"footer_p-md-0__UH01D\",\"pt-md-0\":\"footer_pt-md-0__1Za3H\",\"py-md-0\":\"footer_py-md-0__xGVDa\",\"pr-md-0\":\"footer_pr-md-0__1oQcq\",\"px-md-0\":\"footer_px-md-0__lbaPQ\",\"pb-md-0\":\"footer_pb-md-0__fIARN\",\"pl-md-0\":\"footer_pl-md-0__3HhNu\",\"p-md-1\":\"footer_p-md-1__xfj6w\",\"pt-md-1\":\"footer_pt-md-1__3F1MP\",\"py-md-1\":\"footer_py-md-1__2nZE9\",\"pr-md-1\":\"footer_pr-md-1__2qRX3\",\"px-md-1\":\"footer_px-md-1__2Uyr9\",\"pb-md-1\":\"footer_pb-md-1__1TXRU\",\"pl-md-1\":\"footer_pl-md-1__2v_Na\",\"p-md-2\":\"footer_p-md-2__mXC6i\",\"pt-md-2\":\"footer_pt-md-2__1Bddl\",\"py-md-2\":\"footer_py-md-2__3EtIs\",\"pr-md-2\":\"footer_pr-md-2__hr_1n\",\"px-md-2\":\"footer_px-md-2__D3ipo\",\"pb-md-2\":\"footer_pb-md-2__2OJyu\",\"pl-md-2\":\"footer_pl-md-2__mAf37\",\"p-md-3\":\"footer_p-md-3__3ze5z\",\"pt-md-3\":\"footer_pt-md-3__jlj0z\",\"py-md-3\":\"footer_py-md-3__2fBU5\",\"pr-md-3\":\"footer_pr-md-3__10TA2\",\"px-md-3\":\"footer_px-md-3__2MOWW\",\"pb-md-3\":\"footer_pb-md-3__1WD2C\",\"pl-md-3\":\"footer_pl-md-3__Z7SW-\",\"p-md-4\":\"footer_p-md-4__3Owxl\",\"pt-md-4\":\"footer_pt-md-4__10YNM\",\"py-md-4\":\"footer_py-md-4__cthbP\",\"pr-md-4\":\"footer_pr-md-4__2GIx9\",\"px-md-4\":\"footer_px-md-4__3FqTj\",\"pb-md-4\":\"footer_pb-md-4__2mQEl\",\"pl-md-4\":\"footer_pl-md-4__3EDS5\",\"p-md-5\":\"footer_p-md-5__33MsB\",\"pt-md-5\":\"footer_pt-md-5__EfqFz\",\"py-md-5\":\"footer_py-md-5__3I9us\",\"pr-md-5\":\"footer_pr-md-5__ZTGlE\",\"px-md-5\":\"footer_px-md-5__2V73W\",\"pb-md-5\":\"footer_pb-md-5__3eVhD\",\"pl-md-5\":\"footer_pl-md-5__3uMPo\",\"m-md-n1\":\"footer_m-md-n1__14f3n\",\"mt-md-n1\":\"footer_mt-md-n1__bsuOc\",\"my-md-n1\":\"footer_my-md-n1__1HbTM\",\"mr-md-n1\":\"footer_mr-md-n1__2IjpU\",\"mx-md-n1\":\"footer_mx-md-n1__3fCgn\",\"mb-md-n1\":\"footer_mb-md-n1__2ZaXx\",\"ml-md-n1\":\"footer_ml-md-n1__27im7\",\"m-md-n2\":\"footer_m-md-n2__1p59w\",\"mt-md-n2\":\"footer_mt-md-n2__3kOKk\",\"my-md-n2\":\"footer_my-md-n2__ftW90\",\"mr-md-n2\":\"footer_mr-md-n2__27PWI\",\"mx-md-n2\":\"footer_mx-md-n2__jURtg\",\"mb-md-n2\":\"footer_mb-md-n2__g1n3G\",\"ml-md-n2\":\"footer_ml-md-n2__YKC1G\",\"m-md-n3\":\"footer_m-md-n3__1cVEl\",\"mt-md-n3\":\"footer_mt-md-n3__Hvgy5\",\"my-md-n3\":\"footer_my-md-n3__31Gf6\",\"mr-md-n3\":\"footer_mr-md-n3__28Z4y\",\"mx-md-n3\":\"footer_mx-md-n3__qZVma\",\"mb-md-n3\":\"footer_mb-md-n3__3af4f\",\"ml-md-n3\":\"footer_ml-md-n3__38lJW\",\"m-md-n4\":\"footer_m-md-n4__2Q9Be\",\"mt-md-n4\":\"footer_mt-md-n4__3RJCe\",\"my-md-n4\":\"footer_my-md-n4__361fP\",\"mr-md-n4\":\"footer_mr-md-n4__1lREi\",\"mx-md-n4\":\"footer_mx-md-n4__1LF6n\",\"mb-md-n4\":\"footer_mb-md-n4__1iKGC\",\"ml-md-n4\":\"footer_ml-md-n4__2JXl8\",\"m-md-n5\":\"footer_m-md-n5__1PBwH\",\"mt-md-n5\":\"footer_mt-md-n5__11UZS\",\"my-md-n5\":\"footer_my-md-n5__3V3Nv\",\"mr-md-n5\":\"footer_mr-md-n5__122ax\",\"mx-md-n5\":\"footer_mx-md-n5__6n628\",\"mb-md-n5\":\"footer_mb-md-n5__31BUc\",\"ml-md-n5\":\"footer_ml-md-n5__3xAWv\",\"m-md-auto\":\"footer_m-md-auto__2fUdI\",\"mt-md-auto\":\"footer_mt-md-auto__4GJa9\",\"my-md-auto\":\"footer_my-md-auto__4pSjU\",\"mr-md-auto\":\"footer_mr-md-auto__2nbyz\",\"mx-md-auto\":\"footer_mx-md-auto__18AoQ\",\"mb-md-auto\":\"footer_mb-md-auto__26R3F\",\"ml-md-auto\":\"footer_ml-md-auto__2fhKu\",\"m-lg-0\":\"footer_m-lg-0__1cFjW\",\"mt-lg-0\":\"footer_mt-lg-0__aerR1\",\"my-lg-0\":\"footer_my-lg-0__aYMZH\",\"mr-lg-0\":\"footer_mr-lg-0__rMqIJ\",\"mx-lg-0\":\"footer_mx-lg-0__3E2wJ\",\"mb-lg-0\":\"footer_mb-lg-0__2yTJ-\",\"ml-lg-0\":\"footer_ml-lg-0__1J6eC\",\"m-lg-1\":\"footer_m-lg-1__N2H18\",\"mt-lg-1\":\"footer_mt-lg-1__3ytL7\",\"my-lg-1\":\"footer_my-lg-1__1ddhT\",\"mr-lg-1\":\"footer_mr-lg-1__3RE2A\",\"mx-lg-1\":\"footer_mx-lg-1__3iYPL\",\"mb-lg-1\":\"footer_mb-lg-1__33kny\",\"ml-lg-1\":\"footer_ml-lg-1__14gCq\",\"m-lg-2\":\"footer_m-lg-2__3U50c\",\"mt-lg-2\":\"footer_mt-lg-2__2P0SY\",\"my-lg-2\":\"footer_my-lg-2__Tk1no\",\"mr-lg-2\":\"footer_mr-lg-2__2hXaL\",\"mx-lg-2\":\"footer_mx-lg-2__2AK2v\",\"mb-lg-2\":\"footer_mb-lg-2__22OfE\",\"ml-lg-2\":\"footer_ml-lg-2__14RBW\",\"m-lg-3\":\"footer_m-lg-3__31goD\",\"mt-lg-3\":\"footer_mt-lg-3__2pCoG\",\"my-lg-3\":\"footer_my-lg-3__3nAU9\",\"mr-lg-3\":\"footer_mr-lg-3__1p_ca\",\"mx-lg-3\":\"footer_mx-lg-3__3RQNc\",\"mb-lg-3\":\"footer_mb-lg-3__2xC5o\",\"ml-lg-3\":\"footer_ml-lg-3__3-QM5\",\"m-lg-4\":\"footer_m-lg-4__2JpBR\",\"mt-lg-4\":\"footer_mt-lg-4__LqqD2\",\"my-lg-4\":\"footer_my-lg-4__2T-qP\",\"mr-lg-4\":\"footer_mr-lg-4__1AGkM\",\"mx-lg-4\":\"footer_mx-lg-4__RVHQX\",\"mb-lg-4\":\"footer_mb-lg-4__2b86U\",\"ml-lg-4\":\"footer_ml-lg-4__1DCzy\",\"m-lg-5\":\"footer_m-lg-5__KR8V4\",\"mt-lg-5\":\"footer_mt-lg-5__hKe8m\",\"my-lg-5\":\"footer_my-lg-5__373oA\",\"mr-lg-5\":\"footer_mr-lg-5__LNBJL\",\"mx-lg-5\":\"footer_mx-lg-5__1dTN2\",\"mb-lg-5\":\"footer_mb-lg-5__OMtq5\",\"ml-lg-5\":\"footer_ml-lg-5__1YuDi\",\"p-lg-0\":\"footer_p-lg-0__2fRde\",\"pt-lg-0\":\"footer_pt-lg-0__3iNGK\",\"py-lg-0\":\"footer_py-lg-0__3l7eM\",\"pr-lg-0\":\"footer_pr-lg-0__3wgNQ\",\"px-lg-0\":\"footer_px-lg-0___Z983\",\"pb-lg-0\":\"footer_pb-lg-0__2al9z\",\"pl-lg-0\":\"footer_pl-lg-0__3EyH4\",\"p-lg-1\":\"footer_p-lg-1__32Umy\",\"pt-lg-1\":\"footer_pt-lg-1__vaIHd\",\"py-lg-1\":\"footer_py-lg-1__She2U\",\"pr-lg-1\":\"footer_pr-lg-1__2CepA\",\"px-lg-1\":\"footer_px-lg-1__gae5G\",\"pb-lg-1\":\"footer_pb-lg-1__1bRYN\",\"pl-lg-1\":\"footer_pl-lg-1__2KT1d\",\"p-lg-2\":\"footer_p-lg-2__mZvWI\",\"pt-lg-2\":\"footer_pt-lg-2__30U0W\",\"py-lg-2\":\"footer_py-lg-2__3qlXo\",\"pr-lg-2\":\"footer_pr-lg-2__3wcUR\",\"px-lg-2\":\"footer_px-lg-2__3ARDH\",\"pb-lg-2\":\"footer_pb-lg-2__3BOAa\",\"pl-lg-2\":\"footer_pl-lg-2__Tr_Q9\",\"p-lg-3\":\"footer_p-lg-3__1mtm_\",\"pt-lg-3\":\"footer_pt-lg-3__A2Wpx\",\"py-lg-3\":\"footer_py-lg-3__2aS_n\",\"pr-lg-3\":\"footer_pr-lg-3___fpx4\",\"px-lg-3\":\"footer_px-lg-3__1Afu7\",\"pb-lg-3\":\"footer_pb-lg-3__23ebs\",\"pl-lg-3\":\"footer_pl-lg-3__3xsbF\",\"p-lg-4\":\"footer_p-lg-4__3ORKd\",\"pt-lg-4\":\"footer_pt-lg-4__3DfYy\",\"py-lg-4\":\"footer_py-lg-4__2aCBk\",\"pr-lg-4\":\"footer_pr-lg-4__J4dq-\",\"px-lg-4\":\"footer_px-lg-4__2CofO\",\"pb-lg-4\":\"footer_pb-lg-4__L_bPW\",\"pl-lg-4\":\"footer_pl-lg-4__1mxQv\",\"p-lg-5\":\"footer_p-lg-5__3CELe\",\"pt-lg-5\":\"footer_pt-lg-5__3w0j2\",\"py-lg-5\":\"footer_py-lg-5__1TT3c\",\"pr-lg-5\":\"footer_pr-lg-5__1FBcf\",\"px-lg-5\":\"footer_px-lg-5__1aB37\",\"pb-lg-5\":\"footer_pb-lg-5__vWLdm\",\"pl-lg-5\":\"footer_pl-lg-5__2AzJp\",\"m-lg-n1\":\"footer_m-lg-n1__2wlal\",\"mt-lg-n1\":\"footer_mt-lg-n1__1Ut5K\",\"my-lg-n1\":\"footer_my-lg-n1__MDAIo\",\"mr-lg-n1\":\"footer_mr-lg-n1__H6c07\",\"mx-lg-n1\":\"footer_mx-lg-n1__21SET\",\"mb-lg-n1\":\"footer_mb-lg-n1__hRzk5\",\"ml-lg-n1\":\"footer_ml-lg-n1__DsChS\",\"m-lg-n2\":\"footer_m-lg-n2__209CS\",\"mt-lg-n2\":\"footer_mt-lg-n2__BGsYZ\",\"my-lg-n2\":\"footer_my-lg-n2__1hUd8\",\"mr-lg-n2\":\"footer_mr-lg-n2__3sIyi\",\"mx-lg-n2\":\"footer_mx-lg-n2__1v1Hd\",\"mb-lg-n2\":\"footer_mb-lg-n2__2BgBU\",\"ml-lg-n2\":\"footer_ml-lg-n2__1B2UP\",\"m-lg-n3\":\"footer_m-lg-n3__1oyOt\",\"mt-lg-n3\":\"footer_mt-lg-n3__XcIJQ\",\"my-lg-n3\":\"footer_my-lg-n3__3DcVw\",\"mr-lg-n3\":\"footer_mr-lg-n3__27t9N\",\"mx-lg-n3\":\"footer_mx-lg-n3__mq3QX\",\"mb-lg-n3\":\"footer_mb-lg-n3__DGeIm\",\"ml-lg-n3\":\"footer_ml-lg-n3__L8PV9\",\"m-lg-n4\":\"footer_m-lg-n4__1cBmG\",\"mt-lg-n4\":\"footer_mt-lg-n4__21Q1E\",\"my-lg-n4\":\"footer_my-lg-n4__WjtTs\",\"mr-lg-n4\":\"footer_mr-lg-n4__KocU-\",\"mx-lg-n4\":\"footer_mx-lg-n4__3sSuf\",\"mb-lg-n4\":\"footer_mb-lg-n4__27KUr\",\"ml-lg-n4\":\"footer_ml-lg-n4__3zOGg\",\"m-lg-n5\":\"footer_m-lg-n5__xjKml\",\"mt-lg-n5\":\"footer_mt-lg-n5__1O91W\",\"my-lg-n5\":\"footer_my-lg-n5__2mQw6\",\"mr-lg-n5\":\"footer_mr-lg-n5__1o2Vl\",\"mx-lg-n5\":\"footer_mx-lg-n5__3fZH0\",\"mb-lg-n5\":\"footer_mb-lg-n5__1cbnh\",\"ml-lg-n5\":\"footer_ml-lg-n5__MOJ2J\",\"m-lg-auto\":\"footer_m-lg-auto__2MvMJ\",\"mt-lg-auto\":\"footer_mt-lg-auto__3UYMZ\",\"my-lg-auto\":\"footer_my-lg-auto__2b98H\",\"mr-lg-auto\":\"footer_mr-lg-auto__3XPrO\",\"mx-lg-auto\":\"footer_mx-lg-auto__1_B4k\",\"mb-lg-auto\":\"footer_mb-lg-auto__1ofiE\",\"ml-lg-auto\":\"footer_ml-lg-auto__3xh4G\",\"m-xl-0\":\"footer_m-xl-0__3ZUDe\",\"mt-xl-0\":\"footer_mt-xl-0__ZE097\",\"my-xl-0\":\"footer_my-xl-0__2Uxc0\",\"mr-xl-0\":\"footer_mr-xl-0__1puyU\",\"mx-xl-0\":\"footer_mx-xl-0__1jMAS\",\"mb-xl-0\":\"footer_mb-xl-0__2A9Wv\",\"ml-xl-0\":\"footer_ml-xl-0__ixXOn\",\"m-xl-1\":\"footer_m-xl-1__2gn-5\",\"mt-xl-1\":\"footer_mt-xl-1__1fE5q\",\"my-xl-1\":\"footer_my-xl-1__1d4y-\",\"mr-xl-1\":\"footer_mr-xl-1__bM16I\",\"mx-xl-1\":\"footer_mx-xl-1__5QxjP\",\"mb-xl-1\":\"footer_mb-xl-1__1_RFu\",\"ml-xl-1\":\"footer_ml-xl-1__3NY78\",\"m-xl-2\":\"footer_m-xl-2__CmDlK\",\"mt-xl-2\":\"footer_mt-xl-2__2XIrt\",\"my-xl-2\":\"footer_my-xl-2__3S4VN\",\"mr-xl-2\":\"footer_mr-xl-2__1dCbt\",\"mx-xl-2\":\"footer_mx-xl-2__1396C\",\"mb-xl-2\":\"footer_mb-xl-2__389gb\",\"ml-xl-2\":\"footer_ml-xl-2__9FpPD\",\"m-xl-3\":\"footer_m-xl-3__3aZNI\",\"mt-xl-3\":\"footer_mt-xl-3__37TTq\",\"my-xl-3\":\"footer_my-xl-3__1TCmF\",\"mr-xl-3\":\"footer_mr-xl-3__1bkDE\",\"mx-xl-3\":\"footer_mx-xl-3__3KpfO\",\"mb-xl-3\":\"footer_mb-xl-3__1fr51\",\"ml-xl-3\":\"footer_ml-xl-3__1YUn_\",\"m-xl-4\":\"footer_m-xl-4__PlSWL\",\"mt-xl-4\":\"footer_mt-xl-4__2R7Xm\",\"my-xl-4\":\"footer_my-xl-4__2DCTJ\",\"mr-xl-4\":\"footer_mr-xl-4__1ZCTb\",\"mx-xl-4\":\"footer_mx-xl-4__1OlYE\",\"mb-xl-4\":\"footer_mb-xl-4__1qRPm\",\"ml-xl-4\":\"footer_ml-xl-4__3zHTX\",\"m-xl-5\":\"footer_m-xl-5__1YU8w\",\"mt-xl-5\":\"footer_mt-xl-5__3QdPq\",\"my-xl-5\":\"footer_my-xl-5__Sb687\",\"mr-xl-5\":\"footer_mr-xl-5__19usx\",\"mx-xl-5\":\"footer_mx-xl-5__2WKOU\",\"mb-xl-5\":\"footer_mb-xl-5__1p8-e\",\"ml-xl-5\":\"footer_ml-xl-5__2zhXp\",\"p-xl-0\":\"footer_p-xl-0__2KeWd\",\"pt-xl-0\":\"footer_pt-xl-0__6Kz07\",\"py-xl-0\":\"footer_py-xl-0__33-nd\",\"pr-xl-0\":\"footer_pr-xl-0__w7WPL\",\"px-xl-0\":\"footer_px-xl-0__2s9de\",\"pb-xl-0\":\"footer_pb-xl-0__3G74G\",\"pl-xl-0\":\"footer_pl-xl-0__3y4Pd\",\"p-xl-1\":\"footer_p-xl-1__QAXDT\",\"pt-xl-1\":\"footer_pt-xl-1__2vZYt\",\"py-xl-1\":\"footer_py-xl-1__2z48q\",\"pr-xl-1\":\"footer_pr-xl-1__38Quu\",\"px-xl-1\":\"footer_px-xl-1__1iWFu\",\"pb-xl-1\":\"footer_pb-xl-1__3IP6n\",\"pl-xl-1\":\"footer_pl-xl-1__3U09m\",\"p-xl-2\":\"footer_p-xl-2__2fT31\",\"pt-xl-2\":\"footer_pt-xl-2__3QXda\",\"py-xl-2\":\"footer_py-xl-2__8RCm2\",\"pr-xl-2\":\"footer_pr-xl-2__1cvYz\",\"px-xl-2\":\"footer_px-xl-2__DxWnY\",\"pb-xl-2\":\"footer_pb-xl-2__1bvt7\",\"pl-xl-2\":\"footer_pl-xl-2__-_-3-\",\"p-xl-3\":\"footer_p-xl-3__2qPsf\",\"pt-xl-3\":\"footer_pt-xl-3__3mCLa\",\"py-xl-3\":\"footer_py-xl-3__OX-xQ\",\"pr-xl-3\":\"footer_pr-xl-3__1kW4s\",\"px-xl-3\":\"footer_px-xl-3__shCep\",\"pb-xl-3\":\"footer_pb-xl-3__1mQ1x\",\"pl-xl-3\":\"footer_pl-xl-3__1COxy\",\"p-xl-4\":\"footer_p-xl-4__5nP98\",\"pt-xl-4\":\"footer_pt-xl-4__2Stum\",\"py-xl-4\":\"footer_py-xl-4__2tsfv\",\"pr-xl-4\":\"footer_pr-xl-4__3C629\",\"px-xl-4\":\"footer_px-xl-4__3l_Q6\",\"pb-xl-4\":\"footer_pb-xl-4__8qEWn\",\"pl-xl-4\":\"footer_pl-xl-4__LKeI_\",\"p-xl-5\":\"footer_p-xl-5__3TdKC\",\"pt-xl-5\":\"footer_pt-xl-5__3aPsB\",\"py-xl-5\":\"footer_py-xl-5__1TjFx\",\"pr-xl-5\":\"footer_pr-xl-5__2QMDX\",\"px-xl-5\":\"footer_px-xl-5__3m3jL\",\"pb-xl-5\":\"footer_pb-xl-5__2XYiQ\",\"pl-xl-5\":\"footer_pl-xl-5__32NBR\",\"m-xl-n1\":\"footer_m-xl-n1__3ihn8\",\"mt-xl-n1\":\"footer_mt-xl-n1__1wCpF\",\"my-xl-n1\":\"footer_my-xl-n1__2jLu5\",\"mr-xl-n1\":\"footer_mr-xl-n1__2Xy6K\",\"mx-xl-n1\":\"footer_mx-xl-n1__1sos7\",\"mb-xl-n1\":\"footer_mb-xl-n1__1tKuL\",\"ml-xl-n1\":\"footer_ml-xl-n1__2Liia\",\"m-xl-n2\":\"footer_m-xl-n2__1mD7X\",\"mt-xl-n2\":\"footer_mt-xl-n2__3eCZT\",\"my-xl-n2\":\"footer_my-xl-n2__3n3YM\",\"mr-xl-n2\":\"footer_mr-xl-n2__33izX\",\"mx-xl-n2\":\"footer_mx-xl-n2__1o14V\",\"mb-xl-n2\":\"footer_mb-xl-n2__3NxD8\",\"ml-xl-n2\":\"footer_ml-xl-n2__1HJ2o\",\"m-xl-n3\":\"footer_m-xl-n3__HQNMS\",\"mt-xl-n3\":\"footer_mt-xl-n3__26cXV\",\"my-xl-n3\":\"footer_my-xl-n3__8zJ4Q\",\"mr-xl-n3\":\"footer_mr-xl-n3__3CVm8\",\"mx-xl-n3\":\"footer_mx-xl-n3__3pat5\",\"mb-xl-n3\":\"footer_mb-xl-n3__28yxZ\",\"ml-xl-n3\":\"footer_ml-xl-n3__2VJ3C\",\"m-xl-n4\":\"footer_m-xl-n4__37YfV\",\"mt-xl-n4\":\"footer_mt-xl-n4__2I1wR\",\"my-xl-n4\":\"footer_my-xl-n4__3_Els\",\"mr-xl-n4\":\"footer_mr-xl-n4__1Ofa6\",\"mx-xl-n4\":\"footer_mx-xl-n4__1veER\",\"mb-xl-n4\":\"footer_mb-xl-n4__3Qsg-\",\"ml-xl-n4\":\"footer_ml-xl-n4__Pw2Vo\",\"m-xl-n5\":\"footer_m-xl-n5__zjVB8\",\"mt-xl-n5\":\"footer_mt-xl-n5__2vbaz\",\"my-xl-n5\":\"footer_my-xl-n5__1EjCT\",\"mr-xl-n5\":\"footer_mr-xl-n5__15-b9\",\"mx-xl-n5\":\"footer_mx-xl-n5__xU01O\",\"mb-xl-n5\":\"footer_mb-xl-n5__zAB93\",\"ml-xl-n5\":\"footer_ml-xl-n5__1vyxf\",\"m-xl-auto\":\"footer_m-xl-auto__7dG9k\",\"mt-xl-auto\":\"footer_mt-xl-auto__1YEaM\",\"my-xl-auto\":\"footer_my-xl-auto__gPjml\",\"mr-xl-auto\":\"footer_mr-xl-auto__18p6-\",\"mx-xl-auto\":\"footer_mx-xl-auto__6jemE\",\"mb-xl-auto\":\"footer_mb-xl-auto__2N15l\",\"ml-xl-auto\":\"footer_ml-xl-auto__GWy1i\",\"gradient-bg5\":\"footer_gradient-bg5__1joro\",\"footer\":\"footer_footer__1iJGy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"globalSearch_container__26VW7\",\"container-fluid\":\"globalSearch_container-fluid__12xOu\",\"container-xl\":\"globalSearch_container-xl__2GFYq\",\"container-lg\":\"globalSearch_container-lg__2oIhA\",\"container-md\":\"globalSearch_container-md__35xkU\",\"container-sm\":\"globalSearch_container-sm__Bf7Ib\",\"row\":\"globalSearch_row__JAFDs\",\"no-gutters\":\"globalSearch_no-gutters__3M7xu\",\"col\":\"globalSearch_col__1gf_Q\",\"col-xl\":\"globalSearch_col-xl__22bjX\",\"col-xl-auto\":\"globalSearch_col-xl-auto__gTL-9\",\"col-xl-12\":\"globalSearch_col-xl-12__2-_D8\",\"col-xl-11\":\"globalSearch_col-xl-11__2gPfj\",\"col-xl-10\":\"globalSearch_col-xl-10__rRuyh\",\"col-xl-9\":\"globalSearch_col-xl-9__3e2Gn\",\"col-xl-8\":\"globalSearch_col-xl-8__3sHa7\",\"col-xl-7\":\"globalSearch_col-xl-7__2R4bu\",\"col-xl-6\":\"globalSearch_col-xl-6__2iewq\",\"col-xl-5\":\"globalSearch_col-xl-5__2KmQm\",\"col-xl-4\":\"globalSearch_col-xl-4__3fuPb\",\"col-xl-3\":\"globalSearch_col-xl-3__BHseu\",\"col-xl-2\":\"globalSearch_col-xl-2__4m7Zb\",\"col-xl-1\":\"globalSearch_col-xl-1__1NqM_\",\"col-lg\":\"globalSearch_col-lg__3goit\",\"col-lg-auto\":\"globalSearch_col-lg-auto__1drRj\",\"col-lg-12\":\"globalSearch_col-lg-12__pzgSd\",\"col-lg-11\":\"globalSearch_col-lg-11__qppvq\",\"col-lg-10\":\"globalSearch_col-lg-10__3S5NQ\",\"col-lg-9\":\"globalSearch_col-lg-9__3SPQg\",\"col-lg-8\":\"globalSearch_col-lg-8__32d3a\",\"col-lg-7\":\"globalSearch_col-lg-7__9SEzG\",\"col-lg-6\":\"globalSearch_col-lg-6__2xBAD\",\"col-lg-5\":\"globalSearch_col-lg-5__BsrFT\",\"col-lg-4\":\"globalSearch_col-lg-4__smawi\",\"col-lg-3\":\"globalSearch_col-lg-3__3GzxN\",\"col-lg-2\":\"globalSearch_col-lg-2__3QED3\",\"col-lg-1\":\"globalSearch_col-lg-1__13x9y\",\"col-md\":\"globalSearch_col-md__175QC\",\"col-md-auto\":\"globalSearch_col-md-auto__2ocAO\",\"col-md-12\":\"globalSearch_col-md-12__1OuI6\",\"col-md-11\":\"globalSearch_col-md-11__2nXHD\",\"col-md-10\":\"globalSearch_col-md-10__1DXk4\",\"col-md-9\":\"globalSearch_col-md-9__2OcHz\",\"col-md-8\":\"globalSearch_col-md-8__17ckx\",\"col-md-7\":\"globalSearch_col-md-7__16rgF\",\"col-md-6\":\"globalSearch_col-md-6__Omkbr\",\"col-md-5\":\"globalSearch_col-md-5__9rfvG\",\"col-md-4\":\"globalSearch_col-md-4__2yIwt\",\"col-md-3\":\"globalSearch_col-md-3__3tElb\",\"col-md-2\":\"globalSearch_col-md-2__3z-tr\",\"col-md-1\":\"globalSearch_col-md-1__2BjK1\",\"col-sm\":\"globalSearch_col-sm__4ZwZU\",\"col-sm-auto\":\"globalSearch_col-sm-auto__1UnKM\",\"col-sm-12\":\"globalSearch_col-sm-12__2fidk\",\"col-sm-11\":\"globalSearch_col-sm-11__2GgmA\",\"col-sm-10\":\"globalSearch_col-sm-10__3Jk7s\",\"col-sm-9\":\"globalSearch_col-sm-9__3ee1y\",\"col-sm-8\":\"globalSearch_col-sm-8__1u8vt\",\"col-sm-7\":\"globalSearch_col-sm-7__3XJcm\",\"col-sm-6\":\"globalSearch_col-sm-6__23XFg\",\"col-sm-5\":\"globalSearch_col-sm-5__2VhBu\",\"col-sm-4\":\"globalSearch_col-sm-4__37ocI\",\"col-sm-3\":\"globalSearch_col-sm-3__1ahep\",\"col-sm-2\":\"globalSearch_col-sm-2__ONnlX\",\"col-sm-1\":\"globalSearch_col-sm-1__1i_Wb\",\"col-auto\":\"globalSearch_col-auto__-x6yx\",\"col-12\":\"globalSearch_col-12__1Scj2\",\"col-11\":\"globalSearch_col-11__tqvWi\",\"col-10\":\"globalSearch_col-10__1Ir6M\",\"col-9\":\"globalSearch_col-9__2LkPy\",\"col-8\":\"globalSearch_col-8__7gpES\",\"col-7\":\"globalSearch_col-7__2PB11\",\"col-6\":\"globalSearch_col-6__1XXIv\",\"col-5\":\"globalSearch_col-5__QyNe4\",\"col-4\":\"globalSearch_col-4__3HjIq\",\"col-3\":\"globalSearch_col-3__2EHu4\",\"col-2\":\"globalSearch_col-2__2n1Ls\",\"col-1\":\"globalSearch_col-1__2J2F_\",\"row-cols-1\":\"globalSearch_row-cols-1__mlkZv\",\"row-cols-2\":\"globalSearch_row-cols-2__2tJC1\",\"row-cols-3\":\"globalSearch_row-cols-3__2J_GQ\",\"row-cols-4\":\"globalSearch_row-cols-4__5equ1\",\"row-cols-5\":\"globalSearch_row-cols-5__1SQQp\",\"row-cols-6\":\"globalSearch_row-cols-6__oqhW-\",\"order-first\":\"globalSearch_order-first__3j5Ct\",\"order-last\":\"globalSearch_order-last__v00l1\",\"order-0\":\"globalSearch_order-0__15HiG\",\"order-1\":\"globalSearch_order-1__1EzPM\",\"order-2\":\"globalSearch_order-2__nKfL0\",\"order-3\":\"globalSearch_order-3__my4z1\",\"order-4\":\"globalSearch_order-4__1Ngdn\",\"order-5\":\"globalSearch_order-5__3THBp\",\"order-6\":\"globalSearch_order-6__2_p1C\",\"order-7\":\"globalSearch_order-7__3U2NN\",\"order-8\":\"globalSearch_order-8__1guH6\",\"order-9\":\"globalSearch_order-9__1QCO4\",\"order-10\":\"globalSearch_order-10__2QiL-\",\"order-11\":\"globalSearch_order-11__1cZhe\",\"order-12\":\"globalSearch_order-12__3wkhT\",\"offset-1\":\"globalSearch_offset-1__3p3EG\",\"offset-2\":\"globalSearch_offset-2__fmAuV\",\"offset-3\":\"globalSearch_offset-3__k-T3_\",\"offset-4\":\"globalSearch_offset-4__1xDSR\",\"offset-5\":\"globalSearch_offset-5__PXOH1\",\"offset-6\":\"globalSearch_offset-6__86Vfx\",\"offset-7\":\"globalSearch_offset-7__CWsxc\",\"offset-8\":\"globalSearch_offset-8__1QJbs\",\"offset-9\":\"globalSearch_offset-9__119tg\",\"offset-10\":\"globalSearch_offset-10__2ib9x\",\"offset-11\":\"globalSearch_offset-11__2HOPW\",\"row-cols-sm-1\":\"globalSearch_row-cols-sm-1__gambK\",\"row-cols-sm-2\":\"globalSearch_row-cols-sm-2__2WHmg\",\"row-cols-sm-3\":\"globalSearch_row-cols-sm-3__EmPYG\",\"row-cols-sm-4\":\"globalSearch_row-cols-sm-4__1SiL1\",\"row-cols-sm-5\":\"globalSearch_row-cols-sm-5__2WMw6\",\"row-cols-sm-6\":\"globalSearch_row-cols-sm-6__3Np1b\",\"order-sm-first\":\"globalSearch_order-sm-first__33oic\",\"order-sm-last\":\"globalSearch_order-sm-last__3XXx-\",\"order-sm-0\":\"globalSearch_order-sm-0__2D0wz\",\"order-sm-1\":\"globalSearch_order-sm-1__2oIKR\",\"order-sm-2\":\"globalSearch_order-sm-2__pX08q\",\"order-sm-3\":\"globalSearch_order-sm-3__3jFTr\",\"order-sm-4\":\"globalSearch_order-sm-4__3ciHd\",\"order-sm-5\":\"globalSearch_order-sm-5__mJbuB\",\"order-sm-6\":\"globalSearch_order-sm-6__1nX36\",\"order-sm-7\":\"globalSearch_order-sm-7__2rt9x\",\"order-sm-8\":\"globalSearch_order-sm-8__2DHHS\",\"order-sm-9\":\"globalSearch_order-sm-9__hDLRQ\",\"order-sm-10\":\"globalSearch_order-sm-10__2lDOh\",\"order-sm-11\":\"globalSearch_order-sm-11__1PTij\",\"order-sm-12\":\"globalSearch_order-sm-12__1hxwg\",\"offset-sm-0\":\"globalSearch_offset-sm-0__35qR-\",\"offset-sm-1\":\"globalSearch_offset-sm-1__1l06X\",\"offset-sm-2\":\"globalSearch_offset-sm-2__1Lhch\",\"offset-sm-3\":\"globalSearch_offset-sm-3__1ThVw\",\"offset-sm-4\":\"globalSearch_offset-sm-4__5QKUS\",\"offset-sm-5\":\"globalSearch_offset-sm-5__276qo\",\"offset-sm-6\":\"globalSearch_offset-sm-6__2HVBv\",\"offset-sm-7\":\"globalSearch_offset-sm-7__2f_Py\",\"offset-sm-8\":\"globalSearch_offset-sm-8__AHK1F\",\"offset-sm-9\":\"globalSearch_offset-sm-9__hbsde\",\"offset-sm-10\":\"globalSearch_offset-sm-10__39Kx7\",\"offset-sm-11\":\"globalSearch_offset-sm-11__qO5Fc\",\"row-cols-md-1\":\"globalSearch_row-cols-md-1__il3a0\",\"row-cols-md-2\":\"globalSearch_row-cols-md-2__2dZKg\",\"row-cols-md-3\":\"globalSearch_row-cols-md-3__152nn\",\"row-cols-md-4\":\"globalSearch_row-cols-md-4__1xHUw\",\"row-cols-md-5\":\"globalSearch_row-cols-md-5__39VPO\",\"row-cols-md-6\":\"globalSearch_row-cols-md-6__32d9_\",\"order-md-first\":\"globalSearch_order-md-first__2-yZu\",\"order-md-last\":\"globalSearch_order-md-last__3xQlP\",\"order-md-0\":\"globalSearch_order-md-0__26FBU\",\"order-md-1\":\"globalSearch_order-md-1__2WmWc\",\"order-md-2\":\"globalSearch_order-md-2__3oGpp\",\"order-md-3\":\"globalSearch_order-md-3__2UlMO\",\"order-md-4\":\"globalSearch_order-md-4__2PVzZ\",\"order-md-5\":\"globalSearch_order-md-5__1VbSk\",\"order-md-6\":\"globalSearch_order-md-6__3Rkpg\",\"order-md-7\":\"globalSearch_order-md-7__17U4u\",\"order-md-8\":\"globalSearch_order-md-8__23bmw\",\"order-md-9\":\"globalSearch_order-md-9__1C4A9\",\"order-md-10\":\"globalSearch_order-md-10__2UdYd\",\"order-md-11\":\"globalSearch_order-md-11__1Qm38\",\"order-md-12\":\"globalSearch_order-md-12__3jyNZ\",\"offset-md-0\":\"globalSearch_offset-md-0__1Y8dc\",\"offset-md-1\":\"globalSearch_offset-md-1__Jj4dM\",\"offset-md-2\":\"globalSearch_offset-md-2__1gBoo\",\"offset-md-3\":\"globalSearch_offset-md-3__Xsdtt\",\"offset-md-4\":\"globalSearch_offset-md-4__1k7tg\",\"offset-md-5\":\"globalSearch_offset-md-5__2hAnJ\",\"offset-md-6\":\"globalSearch_offset-md-6__3r-qe\",\"offset-md-7\":\"globalSearch_offset-md-7__1qpfn\",\"offset-md-8\":\"globalSearch_offset-md-8__1PmGF\",\"offset-md-9\":\"globalSearch_offset-md-9__2fJe0\",\"offset-md-10\":\"globalSearch_offset-md-10__3F1kh\",\"offset-md-11\":\"globalSearch_offset-md-11__3lnS3\",\"row-cols-lg-1\":\"globalSearch_row-cols-lg-1__3xE2P\",\"row-cols-lg-2\":\"globalSearch_row-cols-lg-2__1Wzkf\",\"row-cols-lg-3\":\"globalSearch_row-cols-lg-3__3tl6n\",\"row-cols-lg-4\":\"globalSearch_row-cols-lg-4__10BEm\",\"row-cols-lg-5\":\"globalSearch_row-cols-lg-5__1_3Sz\",\"row-cols-lg-6\":\"globalSearch_row-cols-lg-6__1HFxy\",\"order-lg-first\":\"globalSearch_order-lg-first__3rUn2\",\"order-lg-last\":\"globalSearch_order-lg-last__1uPc3\",\"order-lg-0\":\"globalSearch_order-lg-0__oWnEs\",\"order-lg-1\":\"globalSearch_order-lg-1__3VmNd\",\"order-lg-2\":\"globalSearch_order-lg-2__1_zsb\",\"order-lg-3\":\"globalSearch_order-lg-3__1KNMt\",\"order-lg-4\":\"globalSearch_order-lg-4__A3Tne\",\"order-lg-5\":\"globalSearch_order-lg-5__2tT0a\",\"order-lg-6\":\"globalSearch_order-lg-6__3aCIq\",\"order-lg-7\":\"globalSearch_order-lg-7__2Et89\",\"order-lg-8\":\"globalSearch_order-lg-8__2GDka\",\"order-lg-9\":\"globalSearch_order-lg-9__25b62\",\"order-lg-10\":\"globalSearch_order-lg-10__25S2g\",\"order-lg-11\":\"globalSearch_order-lg-11__3tEbV\",\"order-lg-12\":\"globalSearch_order-lg-12__N99Rl\",\"offset-lg-0\":\"globalSearch_offset-lg-0__Uc3wL\",\"offset-lg-1\":\"globalSearch_offset-lg-1__3Rroe\",\"offset-lg-2\":\"globalSearch_offset-lg-2__2sNC-\",\"offset-lg-3\":\"globalSearch_offset-lg-3__1Re_b\",\"offset-lg-4\":\"globalSearch_offset-lg-4__1VBUp\",\"offset-lg-5\":\"globalSearch_offset-lg-5__3Qgc9\",\"offset-lg-6\":\"globalSearch_offset-lg-6__1Nmqx\",\"offset-lg-7\":\"globalSearch_offset-lg-7__2i8Z6\",\"offset-lg-8\":\"globalSearch_offset-lg-8__a2irB\",\"offset-lg-9\":\"globalSearch_offset-lg-9__1J1xN\",\"offset-lg-10\":\"globalSearch_offset-lg-10__1nEKw\",\"offset-lg-11\":\"globalSearch_offset-lg-11__1qm9p\",\"row-cols-xl-1\":\"globalSearch_row-cols-xl-1__3q_rg\",\"row-cols-xl-2\":\"globalSearch_row-cols-xl-2__gq-qN\",\"row-cols-xl-3\":\"globalSearch_row-cols-xl-3__34MBh\",\"row-cols-xl-4\":\"globalSearch_row-cols-xl-4__3_yzY\",\"row-cols-xl-5\":\"globalSearch_row-cols-xl-5__3WsGY\",\"row-cols-xl-6\":\"globalSearch_row-cols-xl-6__n4D16\",\"order-xl-first\":\"globalSearch_order-xl-first__WKGIC\",\"order-xl-last\":\"globalSearch_order-xl-last__1DXfl\",\"order-xl-0\":\"globalSearch_order-xl-0__1KWoZ\",\"order-xl-1\":\"globalSearch_order-xl-1__2YsCb\",\"order-xl-2\":\"globalSearch_order-xl-2__eQbc-\",\"order-xl-3\":\"globalSearch_order-xl-3__Vgvne\",\"order-xl-4\":\"globalSearch_order-xl-4__3CLj-\",\"order-xl-5\":\"globalSearch_order-xl-5__ragNT\",\"order-xl-6\":\"globalSearch_order-xl-6__3tCgy\",\"order-xl-7\":\"globalSearch_order-xl-7__SpWOf\",\"order-xl-8\":\"globalSearch_order-xl-8__3mikd\",\"order-xl-9\":\"globalSearch_order-xl-9__qK3-w\",\"order-xl-10\":\"globalSearch_order-xl-10__1I_24\",\"order-xl-11\":\"globalSearch_order-xl-11__1EAih\",\"order-xl-12\":\"globalSearch_order-xl-12__3ZBBE\",\"offset-xl-0\":\"globalSearch_offset-xl-0__cK3Lz\",\"offset-xl-1\":\"globalSearch_offset-xl-1__1PjXn\",\"offset-xl-2\":\"globalSearch_offset-xl-2__37y-e\",\"offset-xl-3\":\"globalSearch_offset-xl-3__3xoym\",\"offset-xl-4\":\"globalSearch_offset-xl-4__d4yhn\",\"offset-xl-5\":\"globalSearch_offset-xl-5__3CsVr\",\"offset-xl-6\":\"globalSearch_offset-xl-6__ocTEQ\",\"offset-xl-7\":\"globalSearch_offset-xl-7__1qvlc\",\"offset-xl-8\":\"globalSearch_offset-xl-8__3QsGU\",\"offset-xl-9\":\"globalSearch_offset-xl-9__1gb4y\",\"offset-xl-10\":\"globalSearch_offset-xl-10__19ocM\",\"offset-xl-11\":\"globalSearch_offset-xl-11__1pt7r\",\"d-none\":\"globalSearch_d-none__2sFn7\",\"d-inline\":\"globalSearch_d-inline__1RFCo\",\"d-inline-block\":\"globalSearch_d-inline-block__18WRU\",\"d-block\":\"globalSearch_d-block__1lLiP\",\"d-table\":\"globalSearch_d-table__aR0fO\",\"d-table-row\":\"globalSearch_d-table-row__XiKU-\",\"d-table-cell\":\"globalSearch_d-table-cell__1lO5_\",\"d-flex\":\"globalSearch_d-flex__37l9U\",\"d-inline-flex\":\"globalSearch_d-inline-flex__2Nwfh\",\"d-sm-none\":\"globalSearch_d-sm-none__3NzZs\",\"d-sm-inline\":\"globalSearch_d-sm-inline__6YQZo\",\"d-sm-inline-block\":\"globalSearch_d-sm-inline-block__dcwGQ\",\"d-sm-block\":\"globalSearch_d-sm-block__uuCoD\",\"d-sm-table\":\"globalSearch_d-sm-table__33Tgg\",\"d-sm-table-row\":\"globalSearch_d-sm-table-row__2VVtE\",\"d-sm-table-cell\":\"globalSearch_d-sm-table-cell__1DVpC\",\"d-sm-flex\":\"globalSearch_d-sm-flex__ts1a5\",\"d-sm-inline-flex\":\"globalSearch_d-sm-inline-flex__1QLbv\",\"d-md-none\":\"globalSearch_d-md-none__3G6Ap\",\"d-md-inline\":\"globalSearch_d-md-inline__jPwSD\",\"d-md-inline-block\":\"globalSearch_d-md-inline-block__3MGKJ\",\"d-md-block\":\"globalSearch_d-md-block__VK8wS\",\"d-md-table\":\"globalSearch_d-md-table__3ni5-\",\"d-md-table-row\":\"globalSearch_d-md-table-row__GETHY\",\"d-md-table-cell\":\"globalSearch_d-md-table-cell__22R42\",\"d-md-flex\":\"globalSearch_d-md-flex__1MowT\",\"d-md-inline-flex\":\"globalSearch_d-md-inline-flex__3_7SB\",\"d-lg-none\":\"globalSearch_d-lg-none__b3Tgg\",\"d-lg-inline\":\"globalSearch_d-lg-inline__1UGDV\",\"d-lg-inline-block\":\"globalSearch_d-lg-inline-block__iPbvW\",\"d-lg-block\":\"globalSearch_d-lg-block__3u7gG\",\"d-lg-table\":\"globalSearch_d-lg-table__3y8c7\",\"d-lg-table-row\":\"globalSearch_d-lg-table-row__h-Wlc\",\"d-lg-table-cell\":\"globalSearch_d-lg-table-cell__3bb43\",\"d-lg-flex\":\"globalSearch_d-lg-flex__2CqT_\",\"d-lg-inline-flex\":\"globalSearch_d-lg-inline-flex__1CBlx\",\"d-xl-none\":\"globalSearch_d-xl-none__2t8mg\",\"d-xl-inline\":\"globalSearch_d-xl-inline__3viT3\",\"d-xl-inline-block\":\"globalSearch_d-xl-inline-block__1Dttd\",\"d-xl-block\":\"globalSearch_d-xl-block__1uPk6\",\"d-xl-table\":\"globalSearch_d-xl-table__1giUr\",\"d-xl-table-row\":\"globalSearch_d-xl-table-row__138-S\",\"d-xl-table-cell\":\"globalSearch_d-xl-table-cell__2zF3o\",\"d-xl-flex\":\"globalSearch_d-xl-flex__2pRNC\",\"d-xl-inline-flex\":\"globalSearch_d-xl-inline-flex__UU5xQ\",\"d-print-none\":\"globalSearch_d-print-none__IV496\",\"d-print-inline\":\"globalSearch_d-print-inline__2sB2C\",\"d-print-inline-block\":\"globalSearch_d-print-inline-block__1wvGn\",\"d-print-block\":\"globalSearch_d-print-block__2WXEE\",\"d-print-table\":\"globalSearch_d-print-table__1JwjP\",\"d-print-table-row\":\"globalSearch_d-print-table-row__SF2xD\",\"d-print-table-cell\":\"globalSearch_d-print-table-cell__I73ry\",\"d-print-flex\":\"globalSearch_d-print-flex__25zVl\",\"d-print-inline-flex\":\"globalSearch_d-print-inline-flex__2HS9A\",\"flex-row\":\"globalSearch_flex-row__2ns5l\",\"flex-column\":\"globalSearch_flex-column__2n-wu\",\"flex-row-reverse\":\"globalSearch_flex-row-reverse__3M0KB\",\"flex-column-reverse\":\"globalSearch_flex-column-reverse__3lCiM\",\"flex-wrap\":\"globalSearch_flex-wrap__2xh2J\",\"flex-nowrap\":\"globalSearch_flex-nowrap__3SMXi\",\"flex-wrap-reverse\":\"globalSearch_flex-wrap-reverse__271-d\",\"flex-fill\":\"globalSearch_flex-fill__LoXAZ\",\"flex-grow-0\":\"globalSearch_flex-grow-0__3XLYJ\",\"flex-grow-1\":\"globalSearch_flex-grow-1__3hIyS\",\"flex-shrink-0\":\"globalSearch_flex-shrink-0__2oMd4\",\"flex-shrink-1\":\"globalSearch_flex-shrink-1__3nTZc\",\"justify-content-start\":\"globalSearch_justify-content-start__3ULNU\",\"justify-content-end\":\"globalSearch_justify-content-end__3ToKh\",\"justify-content-center\":\"globalSearch_justify-content-center__WWDs7\",\"justify-content-between\":\"globalSearch_justify-content-between__3HhEK\",\"justify-content-around\":\"globalSearch_justify-content-around__3uiBy\",\"align-items-start\":\"globalSearch_align-items-start__1ddIK\",\"align-items-end\":\"globalSearch_align-items-end__3Ed3B\",\"align-items-center\":\"globalSearch_align-items-center__vQh3s\",\"align-items-baseline\":\"globalSearch_align-items-baseline__3kN_h\",\"align-items-stretch\":\"globalSearch_align-items-stretch__125C6\",\"align-content-start\":\"globalSearch_align-content-start__2rrA-\",\"align-content-end\":\"globalSearch_align-content-end__3NHG_\",\"align-content-center\":\"globalSearch_align-content-center__2a-Od\",\"align-content-between\":\"globalSearch_align-content-between__xuIoE\",\"align-content-around\":\"globalSearch_align-content-around__3QHlj\",\"align-content-stretch\":\"globalSearch_align-content-stretch__298xa\",\"align-self-auto\":\"globalSearch_align-self-auto__1MijD\",\"align-self-start\":\"globalSearch_align-self-start__EPLtX\",\"align-self-end\":\"globalSearch_align-self-end__2ZBZQ\",\"align-self-center\":\"globalSearch_align-self-center__1v0dy\",\"align-self-baseline\":\"globalSearch_align-self-baseline__3r2B1\",\"align-self-stretch\":\"globalSearch_align-self-stretch__11PU4\",\"flex-sm-row\":\"globalSearch_flex-sm-row__90vgh\",\"flex-sm-column\":\"globalSearch_flex-sm-column__3kelw\",\"flex-sm-row-reverse\":\"globalSearch_flex-sm-row-reverse__1p3UE\",\"flex-sm-column-reverse\":\"globalSearch_flex-sm-column-reverse__3DsEy\",\"flex-sm-wrap\":\"globalSearch_flex-sm-wrap__5mzwN\",\"flex-sm-nowrap\":\"globalSearch_flex-sm-nowrap__3nhsD\",\"flex-sm-wrap-reverse\":\"globalSearch_flex-sm-wrap-reverse__1t1rk\",\"flex-sm-fill\":\"globalSearch_flex-sm-fill__1OrWV\",\"flex-sm-grow-0\":\"globalSearch_flex-sm-grow-0__2FCdR\",\"flex-sm-grow-1\":\"globalSearch_flex-sm-grow-1__383h9\",\"flex-sm-shrink-0\":\"globalSearch_flex-sm-shrink-0__1Pjox\",\"flex-sm-shrink-1\":\"globalSearch_flex-sm-shrink-1__1npba\",\"justify-content-sm-start\":\"globalSearch_justify-content-sm-start__2NEOY\",\"justify-content-sm-end\":\"globalSearch_justify-content-sm-end__2Gqu1\",\"justify-content-sm-center\":\"globalSearch_justify-content-sm-center__3GrP1\",\"justify-content-sm-between\":\"globalSearch_justify-content-sm-between__2fji9\",\"justify-content-sm-around\":\"globalSearch_justify-content-sm-around__DHYx2\",\"align-items-sm-start\":\"globalSearch_align-items-sm-start__kDjgq\",\"align-items-sm-end\":\"globalSearch_align-items-sm-end__3i4Wg\",\"align-items-sm-center\":\"globalSearch_align-items-sm-center__1-xp9\",\"align-items-sm-baseline\":\"globalSearch_align-items-sm-baseline__1rEgg\",\"align-items-sm-stretch\":\"globalSearch_align-items-sm-stretch__3JMPG\",\"align-content-sm-start\":\"globalSearch_align-content-sm-start__2tJPk\",\"align-content-sm-end\":\"globalSearch_align-content-sm-end__3uemN\",\"align-content-sm-center\":\"globalSearch_align-content-sm-center__2frGm\",\"align-content-sm-between\":\"globalSearch_align-content-sm-between__1XWZk\",\"align-content-sm-around\":\"globalSearch_align-content-sm-around__thJ3B\",\"align-content-sm-stretch\":\"globalSearch_align-content-sm-stretch__24Ybw\",\"align-self-sm-auto\":\"globalSearch_align-self-sm-auto__21x86\",\"align-self-sm-start\":\"globalSearch_align-self-sm-start__1wF59\",\"align-self-sm-end\":\"globalSearch_align-self-sm-end__3RjTf\",\"align-self-sm-center\":\"globalSearch_align-self-sm-center__1QVD0\",\"align-self-sm-baseline\":\"globalSearch_align-self-sm-baseline__1rfSy\",\"align-self-sm-stretch\":\"globalSearch_align-self-sm-stretch__3J6_h\",\"flex-md-row\":\"globalSearch_flex-md-row__ncz6_\",\"flex-md-column\":\"globalSearch_flex-md-column__2abp-\",\"flex-md-row-reverse\":\"globalSearch_flex-md-row-reverse__EjT1M\",\"flex-md-column-reverse\":\"globalSearch_flex-md-column-reverse__RvUFD\",\"flex-md-wrap\":\"globalSearch_flex-md-wrap__wpzGn\",\"flex-md-nowrap\":\"globalSearch_flex-md-nowrap__11Qye\",\"flex-md-wrap-reverse\":\"globalSearch_flex-md-wrap-reverse__3UCv6\",\"flex-md-fill\":\"globalSearch_flex-md-fill__1QHQ1\",\"flex-md-grow-0\":\"globalSearch_flex-md-grow-0__1Zrpk\",\"flex-md-grow-1\":\"globalSearch_flex-md-grow-1__IBQhy\",\"flex-md-shrink-0\":\"globalSearch_flex-md-shrink-0__1QlLU\",\"flex-md-shrink-1\":\"globalSearch_flex-md-shrink-1__1HCU6\",\"justify-content-md-start\":\"globalSearch_justify-content-md-start__3VNQA\",\"justify-content-md-end\":\"globalSearch_justify-content-md-end__1HN8a\",\"justify-content-md-center\":\"globalSearch_justify-content-md-center__2gxsv\",\"justify-content-md-between\":\"globalSearch_justify-content-md-between__3ANYY\",\"justify-content-md-around\":\"globalSearch_justify-content-md-around__3nks4\",\"align-items-md-start\":\"globalSearch_align-items-md-start__2toDG\",\"align-items-md-end\":\"globalSearch_align-items-md-end__1IQFd\",\"align-items-md-center\":\"globalSearch_align-items-md-center__2unCF\",\"align-items-md-baseline\":\"globalSearch_align-items-md-baseline__lDl44\",\"align-items-md-stretch\":\"globalSearch_align-items-md-stretch__aQyMT\",\"align-content-md-start\":\"globalSearch_align-content-md-start__1wh-g\",\"align-content-md-end\":\"globalSearch_align-content-md-end__2a06w\",\"align-content-md-center\":\"globalSearch_align-content-md-center__3_WK9\",\"align-content-md-between\":\"globalSearch_align-content-md-between__30-eL\",\"align-content-md-around\":\"globalSearch_align-content-md-around__2uraT\",\"align-content-md-stretch\":\"globalSearch_align-content-md-stretch__rej7j\",\"align-self-md-auto\":\"globalSearch_align-self-md-auto__T-Q90\",\"align-self-md-start\":\"globalSearch_align-self-md-start__3ZSey\",\"align-self-md-end\":\"globalSearch_align-self-md-end__2bVLQ\",\"align-self-md-center\":\"globalSearch_align-self-md-center__3_qop\",\"align-self-md-baseline\":\"globalSearch_align-self-md-baseline__3_no7\",\"align-self-md-stretch\":\"globalSearch_align-self-md-stretch__27IKA\",\"flex-lg-row\":\"globalSearch_flex-lg-row__1GhEg\",\"flex-lg-column\":\"globalSearch_flex-lg-column__Lkug7\",\"flex-lg-row-reverse\":\"globalSearch_flex-lg-row-reverse__2n-AA\",\"flex-lg-column-reverse\":\"globalSearch_flex-lg-column-reverse__3QzjY\",\"flex-lg-wrap\":\"globalSearch_flex-lg-wrap__LzDDS\",\"flex-lg-nowrap\":\"globalSearch_flex-lg-nowrap__RbFCF\",\"flex-lg-wrap-reverse\":\"globalSearch_flex-lg-wrap-reverse__brSIY\",\"flex-lg-fill\":\"globalSearch_flex-lg-fill__2Lf-1\",\"flex-lg-grow-0\":\"globalSearch_flex-lg-grow-0__3PAHU\",\"flex-lg-grow-1\":\"globalSearch_flex-lg-grow-1__3trgb\",\"flex-lg-shrink-0\":\"globalSearch_flex-lg-shrink-0__3luYi\",\"flex-lg-shrink-1\":\"globalSearch_flex-lg-shrink-1__cigfB\",\"justify-content-lg-start\":\"globalSearch_justify-content-lg-start__1Wv8Z\",\"justify-content-lg-end\":\"globalSearch_justify-content-lg-end__1ZKoq\",\"justify-content-lg-center\":\"globalSearch_justify-content-lg-center__22KHO\",\"justify-content-lg-between\":\"globalSearch_justify-content-lg-between__lCiYb\",\"justify-content-lg-around\":\"globalSearch_justify-content-lg-around__BzZ5u\",\"align-items-lg-start\":\"globalSearch_align-items-lg-start__nz7ow\",\"align-items-lg-end\":\"globalSearch_align-items-lg-end__Tp_ZO\",\"align-items-lg-center\":\"globalSearch_align-items-lg-center__-97nc\",\"align-items-lg-baseline\":\"globalSearch_align-items-lg-baseline__1OSl8\",\"align-items-lg-stretch\":\"globalSearch_align-items-lg-stretch__18jlH\",\"align-content-lg-start\":\"globalSearch_align-content-lg-start__2_Bv5\",\"align-content-lg-end\":\"globalSearch_align-content-lg-end__2NztC\",\"align-content-lg-center\":\"globalSearch_align-content-lg-center__1L04O\",\"align-content-lg-between\":\"globalSearch_align-content-lg-between__24VfU\",\"align-content-lg-around\":\"globalSearch_align-content-lg-around__1ZxSq\",\"align-content-lg-stretch\":\"globalSearch_align-content-lg-stretch__LDOj3\",\"align-self-lg-auto\":\"globalSearch_align-self-lg-auto__1LQqY\",\"align-self-lg-start\":\"globalSearch_align-self-lg-start__3syCb\",\"align-self-lg-end\":\"globalSearch_align-self-lg-end__2-tHr\",\"align-self-lg-center\":\"globalSearch_align-self-lg-center__3gGCB\",\"align-self-lg-baseline\":\"globalSearch_align-self-lg-baseline__AtkNf\",\"align-self-lg-stretch\":\"globalSearch_align-self-lg-stretch__1iMPY\",\"flex-xl-row\":\"globalSearch_flex-xl-row__s4IrA\",\"flex-xl-column\":\"globalSearch_flex-xl-column__1jc2Z\",\"flex-xl-row-reverse\":\"globalSearch_flex-xl-row-reverse__zO3kf\",\"flex-xl-column-reverse\":\"globalSearch_flex-xl-column-reverse___ilxf\",\"flex-xl-wrap\":\"globalSearch_flex-xl-wrap__12PFu\",\"flex-xl-nowrap\":\"globalSearch_flex-xl-nowrap__tRJ_s\",\"flex-xl-wrap-reverse\":\"globalSearch_flex-xl-wrap-reverse__11vmQ\",\"flex-xl-fill\":\"globalSearch_flex-xl-fill__2admw\",\"flex-xl-grow-0\":\"globalSearch_flex-xl-grow-0__1UeQs\",\"flex-xl-grow-1\":\"globalSearch_flex-xl-grow-1__2QpnS\",\"flex-xl-shrink-0\":\"globalSearch_flex-xl-shrink-0__1OCiu\",\"flex-xl-shrink-1\":\"globalSearch_flex-xl-shrink-1__2n3yg\",\"justify-content-xl-start\":\"globalSearch_justify-content-xl-start__xwW9e\",\"justify-content-xl-end\":\"globalSearch_justify-content-xl-end__1mwne\",\"justify-content-xl-center\":\"globalSearch_justify-content-xl-center__2U7u1\",\"justify-content-xl-between\":\"globalSearch_justify-content-xl-between__3Khss\",\"justify-content-xl-around\":\"globalSearch_justify-content-xl-around__XQ8Ci\",\"align-items-xl-start\":\"globalSearch_align-items-xl-start__ywJPT\",\"align-items-xl-end\":\"globalSearch_align-items-xl-end__GfTG1\",\"align-items-xl-center\":\"globalSearch_align-items-xl-center__3K_U0\",\"align-items-xl-baseline\":\"globalSearch_align-items-xl-baseline__2zvBs\",\"align-items-xl-stretch\":\"globalSearch_align-items-xl-stretch__2i-sy\",\"align-content-xl-start\":\"globalSearch_align-content-xl-start__1C6Fx\",\"align-content-xl-end\":\"globalSearch_align-content-xl-end__2D-mH\",\"align-content-xl-center\":\"globalSearch_align-content-xl-center__jywF0\",\"align-content-xl-between\":\"globalSearch_align-content-xl-between__2AMHS\",\"align-content-xl-around\":\"globalSearch_align-content-xl-around__21DgG\",\"align-content-xl-stretch\":\"globalSearch_align-content-xl-stretch__3wBbG\",\"align-self-xl-auto\":\"globalSearch_align-self-xl-auto__21K5i\",\"align-self-xl-start\":\"globalSearch_align-self-xl-start__2SKHV\",\"align-self-xl-end\":\"globalSearch_align-self-xl-end__11eRu\",\"align-self-xl-center\":\"globalSearch_align-self-xl-center__38nQL\",\"align-self-xl-baseline\":\"globalSearch_align-self-xl-baseline__2hlQ5\",\"align-self-xl-stretch\":\"globalSearch_align-self-xl-stretch__2JWgb\",\"m-0\":\"globalSearch_m-0__3rSuH\",\"mt-0\":\"globalSearch_mt-0__5DPoM\",\"my-0\":\"globalSearch_my-0__15ezN\",\"mr-0\":\"globalSearch_mr-0__3HQuL\",\"mx-0\":\"globalSearch_mx-0__2gxlz\",\"mb-0\":\"globalSearch_mb-0__1jv38\",\"ml-0\":\"globalSearch_ml-0__doEYK\",\"m-1\":\"globalSearch_m-1__2-M2D\",\"mt-1\":\"globalSearch_mt-1__sekaV\",\"my-1\":\"globalSearch_my-1__1O6EZ\",\"mr-1\":\"globalSearch_mr-1__2BTFU\",\"mx-1\":\"globalSearch_mx-1__sHJaA\",\"mb-1\":\"globalSearch_mb-1__xNn2j\",\"ml-1\":\"globalSearch_ml-1__n-tEp\",\"m-2\":\"globalSearch_m-2__3Jjdg\",\"mt-2\":\"globalSearch_mt-2__3K9FZ\",\"my-2\":\"globalSearch_my-2__kdbpO\",\"mr-2\":\"globalSearch_mr-2__1dwEW\",\"mx-2\":\"globalSearch_mx-2__FyTav\",\"mb-2\":\"globalSearch_mb-2__2PMAz\",\"ml-2\":\"globalSearch_ml-2__2H2Sk\",\"m-3\":\"globalSearch_m-3__2Jvsq\",\"mt-3\":\"globalSearch_mt-3__2rBu0\",\"my-3\":\"globalSearch_my-3__9KqX3\",\"mr-3\":\"globalSearch_mr-3__1a1UD\",\"mx-3\":\"globalSearch_mx-3__2b6B_\",\"mb-3\":\"globalSearch_mb-3__kn1Zy\",\"ml-3\":\"globalSearch_ml-3__3EP-c\",\"m-4\":\"globalSearch_m-4__3bx5U\",\"mt-4\":\"globalSearch_mt-4__3LnLQ\",\"my-4\":\"globalSearch_my-4__2tcus\",\"mr-4\":\"globalSearch_mr-4__14VMY\",\"mx-4\":\"globalSearch_mx-4__1AXCE\",\"mb-4\":\"globalSearch_mb-4__3Rirv\",\"ml-4\":\"globalSearch_ml-4__1W0nh\",\"m-5\":\"globalSearch_m-5__1fHhX\",\"mt-5\":\"globalSearch_mt-5__20IV_\",\"my-5\":\"globalSearch_my-5__finI0\",\"mr-5\":\"globalSearch_mr-5__2vitY\",\"mx-5\":\"globalSearch_mx-5__1tDgL\",\"mb-5\":\"globalSearch_mb-5__2EwUq\",\"ml-5\":\"globalSearch_ml-5__2Fjvo\",\"p-0\":\"globalSearch_p-0__1IUbk\",\"pt-0\":\"globalSearch_pt-0__1WmTa\",\"py-0\":\"globalSearch_py-0__1D4Zi\",\"pr-0\":\"globalSearch_pr-0__3Uc1v\",\"px-0\":\"globalSearch_px-0__2L7p_\",\"pb-0\":\"globalSearch_pb-0__31TbT\",\"pl-0\":\"globalSearch_pl-0__OjI20\",\"p-1\":\"globalSearch_p-1__mmB3M\",\"pt-1\":\"globalSearch_pt-1__1bGT4\",\"py-1\":\"globalSearch_py-1__9KqpQ\",\"pr-1\":\"globalSearch_pr-1__2xkLe\",\"px-1\":\"globalSearch_px-1__2g3Im\",\"pb-1\":\"globalSearch_pb-1__107IJ\",\"pl-1\":\"globalSearch_pl-1__1i8ps\",\"p-2\":\"globalSearch_p-2__1o2Mh\",\"pt-2\":\"globalSearch_pt-2__2QXbL\",\"py-2\":\"globalSearch_py-2__2Kb-r\",\"pr-2\":\"globalSearch_pr-2__342EP\",\"px-2\":\"globalSearch_px-2__25ggw\",\"pb-2\":\"globalSearch_pb-2__1Qsr7\",\"pl-2\":\"globalSearch_pl-2__3ykCh\",\"p-3\":\"globalSearch_p-3__1C_SR\",\"pt-3\":\"globalSearch_pt-3__vmWZA\",\"py-3\":\"globalSearch_py-3__3X0Yw\",\"pr-3\":\"globalSearch_pr-3__1ayji\",\"px-3\":\"globalSearch_px-3__3v5xM\",\"pb-3\":\"globalSearch_pb-3__1q-Py\",\"pl-3\":\"globalSearch_pl-3__32J4D\",\"p-4\":\"globalSearch_p-4__2x3nm\",\"pt-4\":\"globalSearch_pt-4__3uDR9\",\"py-4\":\"globalSearch_py-4__2qlkq\",\"pr-4\":\"globalSearch_pr-4__37DxJ\",\"px-4\":\"globalSearch_px-4__3DwDM\",\"pb-4\":\"globalSearch_pb-4__3W8Wv\",\"pl-4\":\"globalSearch_pl-4__1KBw9\",\"p-5\":\"globalSearch_p-5__1YFJ9\",\"pt-5\":\"globalSearch_pt-5__1KLOD\",\"py-5\":\"globalSearch_py-5__fIgVW\",\"pr-5\":\"globalSearch_pr-5__39-MR\",\"px-5\":\"globalSearch_px-5__2pRUe\",\"pb-5\":\"globalSearch_pb-5__13DuN\",\"pl-5\":\"globalSearch_pl-5__3MUjU\",\"m-n1\":\"globalSearch_m-n1__3XSYN\",\"mt-n1\":\"globalSearch_mt-n1__33o1U\",\"my-n1\":\"globalSearch_my-n1__2c2Ru\",\"mr-n1\":\"globalSearch_mr-n1__3eD2h\",\"mx-n1\":\"globalSearch_mx-n1__YnQ2_\",\"mb-n1\":\"globalSearch_mb-n1___7lX-\",\"ml-n1\":\"globalSearch_ml-n1__364FF\",\"m-n2\":\"globalSearch_m-n2__7NCtm\",\"mt-n2\":\"globalSearch_mt-n2__2bhBm\",\"my-n2\":\"globalSearch_my-n2__UzFEX\",\"mr-n2\":\"globalSearch_mr-n2__2-sst\",\"mx-n2\":\"globalSearch_mx-n2__2hYWf\",\"mb-n2\":\"globalSearch_mb-n2__1LV1u\",\"ml-n2\":\"globalSearch_ml-n2__3Oj37\",\"m-n3\":\"globalSearch_m-n3__3c-QY\",\"mt-n3\":\"globalSearch_mt-n3__9To9i\",\"my-n3\":\"globalSearch_my-n3__17bp0\",\"mr-n3\":\"globalSearch_mr-n3__KWflr\",\"mx-n3\":\"globalSearch_mx-n3__2XV43\",\"mb-n3\":\"globalSearch_mb-n3__v5EhO\",\"ml-n3\":\"globalSearch_ml-n3__287TI\",\"m-n4\":\"globalSearch_m-n4__cGs7v\",\"mt-n4\":\"globalSearch_mt-n4__1URPG\",\"my-n4\":\"globalSearch_my-n4__Vgcvy\",\"mr-n4\":\"globalSearch_mr-n4__1zWCk\",\"mx-n4\":\"globalSearch_mx-n4__1vou3\",\"mb-n4\":\"globalSearch_mb-n4__1LgJ2\",\"ml-n4\":\"globalSearch_ml-n4__36R4S\",\"m-n5\":\"globalSearch_m-n5__33k18\",\"mt-n5\":\"globalSearch_mt-n5__3Itsz\",\"my-n5\":\"globalSearch_my-n5__1QRMa\",\"mr-n5\":\"globalSearch_mr-n5__k6E7J\",\"mx-n5\":\"globalSearch_mx-n5__2BYqK\",\"mb-n5\":\"globalSearch_mb-n5__2uABR\",\"ml-n5\":\"globalSearch_ml-n5__s-IyA\",\"m-auto\":\"globalSearch_m-auto__1lmrC\",\"mt-auto\":\"globalSearch_mt-auto__1_qvw\",\"my-auto\":\"globalSearch_my-auto__1LzWT\",\"mr-auto\":\"globalSearch_mr-auto__3T54z\",\"mx-auto\":\"globalSearch_mx-auto__3i3LB\",\"mb-auto\":\"globalSearch_mb-auto__2f2pE\",\"ml-auto\":\"globalSearch_ml-auto__DDGfz\",\"m-sm-0\":\"globalSearch_m-sm-0__2oyw1\",\"mt-sm-0\":\"globalSearch_mt-sm-0__z1IHZ\",\"my-sm-0\":\"globalSearch_my-sm-0__2aTk4\",\"mr-sm-0\":\"globalSearch_mr-sm-0__Z4Cdl\",\"mx-sm-0\":\"globalSearch_mx-sm-0__2g0lw\",\"mb-sm-0\":\"globalSearch_mb-sm-0___m4YN\",\"ml-sm-0\":\"globalSearch_ml-sm-0__Nq7ca\",\"m-sm-1\":\"globalSearch_m-sm-1__3fPh7\",\"mt-sm-1\":\"globalSearch_mt-sm-1__Xi6DI\",\"my-sm-1\":\"globalSearch_my-sm-1__2rskU\",\"mr-sm-1\":\"globalSearch_mr-sm-1__2_K7U\",\"mx-sm-1\":\"globalSearch_mx-sm-1__3UaDG\",\"mb-sm-1\":\"globalSearch_mb-sm-1__1bJm-\",\"ml-sm-1\":\"globalSearch_ml-sm-1__1qZxF\",\"m-sm-2\":\"globalSearch_m-sm-2__3sikK\",\"mt-sm-2\":\"globalSearch_mt-sm-2__j8VgR\",\"my-sm-2\":\"globalSearch_my-sm-2__2oLeZ\",\"mr-sm-2\":\"globalSearch_mr-sm-2__2hy7V\",\"mx-sm-2\":\"globalSearch_mx-sm-2__L_e3-\",\"mb-sm-2\":\"globalSearch_mb-sm-2__sFhtC\",\"ml-sm-2\":\"globalSearch_ml-sm-2__AaQYE\",\"m-sm-3\":\"globalSearch_m-sm-3__270fs\",\"mt-sm-3\":\"globalSearch_mt-sm-3___6Z-W\",\"my-sm-3\":\"globalSearch_my-sm-3__RN9x5\",\"mr-sm-3\":\"globalSearch_mr-sm-3__3eUW_\",\"mx-sm-3\":\"globalSearch_mx-sm-3__YokH_\",\"mb-sm-3\":\"globalSearch_mb-sm-3__30CIK\",\"ml-sm-3\":\"globalSearch_ml-sm-3__1InQH\",\"m-sm-4\":\"globalSearch_m-sm-4__3Ubg_\",\"mt-sm-4\":\"globalSearch_mt-sm-4__Tbc0j\",\"my-sm-4\":\"globalSearch_my-sm-4__10bvq\",\"mr-sm-4\":\"globalSearch_mr-sm-4__3NUbG\",\"mx-sm-4\":\"globalSearch_mx-sm-4__35bdE\",\"mb-sm-4\":\"globalSearch_mb-sm-4__AeOyR\",\"ml-sm-4\":\"globalSearch_ml-sm-4__BM6r4\",\"m-sm-5\":\"globalSearch_m-sm-5__3-Kmy\",\"mt-sm-5\":\"globalSearch_mt-sm-5__36Pe4\",\"my-sm-5\":\"globalSearch_my-sm-5__1_hRw\",\"mr-sm-5\":\"globalSearch_mr-sm-5__2czEj\",\"mx-sm-5\":\"globalSearch_mx-sm-5__aQiM7\",\"mb-sm-5\":\"globalSearch_mb-sm-5__7FKqe\",\"ml-sm-5\":\"globalSearch_ml-sm-5__8iMxL\",\"p-sm-0\":\"globalSearch_p-sm-0__1Cwuz\",\"pt-sm-0\":\"globalSearch_pt-sm-0__2rhmH\",\"py-sm-0\":\"globalSearch_py-sm-0__1bkC-\",\"pr-sm-0\":\"globalSearch_pr-sm-0__2TQVs\",\"px-sm-0\":\"globalSearch_px-sm-0__1WKqG\",\"pb-sm-0\":\"globalSearch_pb-sm-0__1l5ZW\",\"pl-sm-0\":\"globalSearch_pl-sm-0__3tdzo\",\"p-sm-1\":\"globalSearch_p-sm-1__2GCPt\",\"pt-sm-1\":\"globalSearch_pt-sm-1__2BzAF\",\"py-sm-1\":\"globalSearch_py-sm-1__1wU0l\",\"pr-sm-1\":\"globalSearch_pr-sm-1__bOJoo\",\"px-sm-1\":\"globalSearch_px-sm-1__3tau8\",\"pb-sm-1\":\"globalSearch_pb-sm-1__STXer\",\"pl-sm-1\":\"globalSearch_pl-sm-1__1NGDa\",\"p-sm-2\":\"globalSearch_p-sm-2__1dMhq\",\"pt-sm-2\":\"globalSearch_pt-sm-2__2Y3C2\",\"py-sm-2\":\"globalSearch_py-sm-2__3lfhq\",\"pr-sm-2\":\"globalSearch_pr-sm-2__2jzJR\",\"px-sm-2\":\"globalSearch_px-sm-2__36gGs\",\"pb-sm-2\":\"globalSearch_pb-sm-2__1awhR\",\"pl-sm-2\":\"globalSearch_pl-sm-2__1wiqx\",\"p-sm-3\":\"globalSearch_p-sm-3__bMQqC\",\"pt-sm-3\":\"globalSearch_pt-sm-3__4kpaB\",\"py-sm-3\":\"globalSearch_py-sm-3__8fMp7\",\"pr-sm-3\":\"globalSearch_pr-sm-3__3vzNe\",\"px-sm-3\":\"globalSearch_px-sm-3__Hpchn\",\"pb-sm-3\":\"globalSearch_pb-sm-3__1tbFJ\",\"pl-sm-3\":\"globalSearch_pl-sm-3__sjai9\",\"p-sm-4\":\"globalSearch_p-sm-4__29fG_\",\"pt-sm-4\":\"globalSearch_pt-sm-4__2qxmc\",\"py-sm-4\":\"globalSearch_py-sm-4__3aSIQ\",\"pr-sm-4\":\"globalSearch_pr-sm-4__3BrUQ\",\"px-sm-4\":\"globalSearch_px-sm-4__3wfKC\",\"pb-sm-4\":\"globalSearch_pb-sm-4__XxT0k\",\"pl-sm-4\":\"globalSearch_pl-sm-4__3Y1h5\",\"p-sm-5\":\"globalSearch_p-sm-5__3GwZ8\",\"pt-sm-5\":\"globalSearch_pt-sm-5__2ZEdN\",\"py-sm-5\":\"globalSearch_py-sm-5__1vJQT\",\"pr-sm-5\":\"globalSearch_pr-sm-5__1KQph\",\"px-sm-5\":\"globalSearch_px-sm-5__1JugL\",\"pb-sm-5\":\"globalSearch_pb-sm-5__sq0Ey\",\"pl-sm-5\":\"globalSearch_pl-sm-5__29e-T\",\"m-sm-n1\":\"globalSearch_m-sm-n1__2djpq\",\"mt-sm-n1\":\"globalSearch_mt-sm-n1__144Bf\",\"my-sm-n1\":\"globalSearch_my-sm-n1__1NXtl\",\"mr-sm-n1\":\"globalSearch_mr-sm-n1__3P1-u\",\"mx-sm-n1\":\"globalSearch_mx-sm-n1__2AvEw\",\"mb-sm-n1\":\"globalSearch_mb-sm-n1__20jGW\",\"ml-sm-n1\":\"globalSearch_ml-sm-n1__2Z4a_\",\"m-sm-n2\":\"globalSearch_m-sm-n2__2q7Jq\",\"mt-sm-n2\":\"globalSearch_mt-sm-n2__1ioAn\",\"my-sm-n2\":\"globalSearch_my-sm-n2__2JyWB\",\"mr-sm-n2\":\"globalSearch_mr-sm-n2__3ofvA\",\"mx-sm-n2\":\"globalSearch_mx-sm-n2__GXmAB\",\"mb-sm-n2\":\"globalSearch_mb-sm-n2__10XpO\",\"ml-sm-n2\":\"globalSearch_ml-sm-n2__2IIiH\",\"m-sm-n3\":\"globalSearch_m-sm-n3__PM4lv\",\"mt-sm-n3\":\"globalSearch_mt-sm-n3__3QTrK\",\"my-sm-n3\":\"globalSearch_my-sm-n3__2eak2\",\"mr-sm-n3\":\"globalSearch_mr-sm-n3__1ENHQ\",\"mx-sm-n3\":\"globalSearch_mx-sm-n3__1Wiqy\",\"mb-sm-n3\":\"globalSearch_mb-sm-n3__1Csqp\",\"ml-sm-n3\":\"globalSearch_ml-sm-n3__158-C\",\"m-sm-n4\":\"globalSearch_m-sm-n4__3hCK-\",\"mt-sm-n4\":\"globalSearch_mt-sm-n4__1KIQS\",\"my-sm-n4\":\"globalSearch_my-sm-n4__2Qp4z\",\"mr-sm-n4\":\"globalSearch_mr-sm-n4__2eD9e\",\"mx-sm-n4\":\"globalSearch_mx-sm-n4__1W1rc\",\"mb-sm-n4\":\"globalSearch_mb-sm-n4__ljTGw\",\"ml-sm-n4\":\"globalSearch_ml-sm-n4__2qtb9\",\"m-sm-n5\":\"globalSearch_m-sm-n5__3bYH6\",\"mt-sm-n5\":\"globalSearch_mt-sm-n5__3Tv87\",\"my-sm-n5\":\"globalSearch_my-sm-n5__2Tmsg\",\"mr-sm-n5\":\"globalSearch_mr-sm-n5__1FtY0\",\"mx-sm-n5\":\"globalSearch_mx-sm-n5__1zEen\",\"mb-sm-n5\":\"globalSearch_mb-sm-n5__1wx0m\",\"ml-sm-n5\":\"globalSearch_ml-sm-n5__7_gB9\",\"m-sm-auto\":\"globalSearch_m-sm-auto__3mHyA\",\"mt-sm-auto\":\"globalSearch_mt-sm-auto__dYdzl\",\"my-sm-auto\":\"globalSearch_my-sm-auto__35o5q\",\"mr-sm-auto\":\"globalSearch_mr-sm-auto__1RIsm\",\"mx-sm-auto\":\"globalSearch_mx-sm-auto__3z9jn\",\"mb-sm-auto\":\"globalSearch_mb-sm-auto__33eSI\",\"ml-sm-auto\":\"globalSearch_ml-sm-auto__2M7Ic\",\"m-md-0\":\"globalSearch_m-md-0__3UOz6\",\"mt-md-0\":\"globalSearch_mt-md-0__1F0UA\",\"my-md-0\":\"globalSearch_my-md-0__2SHdj\",\"mr-md-0\":\"globalSearch_mr-md-0__sgjau\",\"mx-md-0\":\"globalSearch_mx-md-0__1-WXg\",\"mb-md-0\":\"globalSearch_mb-md-0__38DuK\",\"ml-md-0\":\"globalSearch_ml-md-0__XrEc-\",\"m-md-1\":\"globalSearch_m-md-1__3h6oG\",\"mt-md-1\":\"globalSearch_mt-md-1__2I-Yr\",\"my-md-1\":\"globalSearch_my-md-1__1hBAi\",\"mr-md-1\":\"globalSearch_mr-md-1__36bOi\",\"mx-md-1\":\"globalSearch_mx-md-1__1i0Ou\",\"mb-md-1\":\"globalSearch_mb-md-1__2P4gk\",\"ml-md-1\":\"globalSearch_ml-md-1__3zmT7\",\"m-md-2\":\"globalSearch_m-md-2__6NGJN\",\"mt-md-2\":\"globalSearch_mt-md-2__1Uvt0\",\"my-md-2\":\"globalSearch_my-md-2__3dcfA\",\"mr-md-2\":\"globalSearch_mr-md-2__21J5q\",\"mx-md-2\":\"globalSearch_mx-md-2__CM3x3\",\"mb-md-2\":\"globalSearch_mb-md-2__2WEbA\",\"ml-md-2\":\"globalSearch_ml-md-2__3RPlW\",\"m-md-3\":\"globalSearch_m-md-3__2aDKV\",\"mt-md-3\":\"globalSearch_mt-md-3__3XgNR\",\"my-md-3\":\"globalSearch_my-md-3__vDWfA\",\"mr-md-3\":\"globalSearch_mr-md-3__1DL3h\",\"mx-md-3\":\"globalSearch_mx-md-3__1LjAY\",\"mb-md-3\":\"globalSearch_mb-md-3__Z_FWm\",\"ml-md-3\":\"globalSearch_ml-md-3__3hHB4\",\"m-md-4\":\"globalSearch_m-md-4__3JYD8\",\"mt-md-4\":\"globalSearch_mt-md-4__3l7IC\",\"my-md-4\":\"globalSearch_my-md-4__264Ov\",\"mr-md-4\":\"globalSearch_mr-md-4__3fuMR\",\"mx-md-4\":\"globalSearch_mx-md-4__1N9MZ\",\"mb-md-4\":\"globalSearch_mb-md-4__FE0i-\",\"ml-md-4\":\"globalSearch_ml-md-4__cdiZc\",\"m-md-5\":\"globalSearch_m-md-5__19_1j\",\"mt-md-5\":\"globalSearch_mt-md-5__2aMGI\",\"my-md-5\":\"globalSearch_my-md-5__3b3fR\",\"mr-md-5\":\"globalSearch_mr-md-5__264uI\",\"mx-md-5\":\"globalSearch_mx-md-5__tHymV\",\"mb-md-5\":\"globalSearch_mb-md-5__GGG_S\",\"ml-md-5\":\"globalSearch_ml-md-5__3wcTV\",\"p-md-0\":\"globalSearch_p-md-0__ap0zS\",\"pt-md-0\":\"globalSearch_pt-md-0__2Dr65\",\"py-md-0\":\"globalSearch_py-md-0__1kxzR\",\"pr-md-0\":\"globalSearch_pr-md-0__dSaFx\",\"px-md-0\":\"globalSearch_px-md-0__2PvDa\",\"pb-md-0\":\"globalSearch_pb-md-0__2fnre\",\"pl-md-0\":\"globalSearch_pl-md-0__4oCVc\",\"p-md-1\":\"globalSearch_p-md-1__3oOWr\",\"pt-md-1\":\"globalSearch_pt-md-1__2J-VY\",\"py-md-1\":\"globalSearch_py-md-1__3E6aQ\",\"pr-md-1\":\"globalSearch_pr-md-1__1IYVP\",\"px-md-1\":\"globalSearch_px-md-1__1u8xX\",\"pb-md-1\":\"globalSearch_pb-md-1__3QIgQ\",\"pl-md-1\":\"globalSearch_pl-md-1__aewUN\",\"p-md-2\":\"globalSearch_p-md-2__2IHw2\",\"pt-md-2\":\"globalSearch_pt-md-2__12eUx\",\"py-md-2\":\"globalSearch_py-md-2__107dt\",\"pr-md-2\":\"globalSearch_pr-md-2__35e42\",\"px-md-2\":\"globalSearch_px-md-2__3ZUFU\",\"pb-md-2\":\"globalSearch_pb-md-2__1_CIr\",\"pl-md-2\":\"globalSearch_pl-md-2__2e1OW\",\"p-md-3\":\"globalSearch_p-md-3__37mOh\",\"pt-md-3\":\"globalSearch_pt-md-3__2Vwzr\",\"py-md-3\":\"globalSearch_py-md-3__2RTAP\",\"pr-md-3\":\"globalSearch_pr-md-3__6U459\",\"px-md-3\":\"globalSearch_px-md-3__2vO57\",\"pb-md-3\":\"globalSearch_pb-md-3__2VIj-\",\"pl-md-3\":\"globalSearch_pl-md-3__3EjrV\",\"p-md-4\":\"globalSearch_p-md-4__s3uTN\",\"pt-md-4\":\"globalSearch_pt-md-4__3dIHM\",\"py-md-4\":\"globalSearch_py-md-4__2wyeH\",\"pr-md-4\":\"globalSearch_pr-md-4__1vYgO\",\"px-md-4\":\"globalSearch_px-md-4__3mMjx\",\"pb-md-4\":\"globalSearch_pb-md-4__2IQJR\",\"pl-md-4\":\"globalSearch_pl-md-4__3trPv\",\"p-md-5\":\"globalSearch_p-md-5__2R9GW\",\"pt-md-5\":\"globalSearch_pt-md-5__3ehlY\",\"py-md-5\":\"globalSearch_py-md-5__J257d\",\"pr-md-5\":\"globalSearch_pr-md-5__OPHf6\",\"px-md-5\":\"globalSearch_px-md-5__1N3Uu\",\"pb-md-5\":\"globalSearch_pb-md-5__BMJ8-\",\"pl-md-5\":\"globalSearch_pl-md-5__3aG8E\",\"m-md-n1\":\"globalSearch_m-md-n1__2YVxB\",\"mt-md-n1\":\"globalSearch_mt-md-n1__1aoHm\",\"my-md-n1\":\"globalSearch_my-md-n1__2aQAn\",\"mr-md-n1\":\"globalSearch_mr-md-n1__iGS25\",\"mx-md-n1\":\"globalSearch_mx-md-n1__1fwsP\",\"mb-md-n1\":\"globalSearch_mb-md-n1__2bP32\",\"ml-md-n1\":\"globalSearch_ml-md-n1__Xkth0\",\"m-md-n2\":\"globalSearch_m-md-n2__1xoag\",\"mt-md-n2\":\"globalSearch_mt-md-n2__1h0KY\",\"my-md-n2\":\"globalSearch_my-md-n2__1GOoZ\",\"mr-md-n2\":\"globalSearch_mr-md-n2__1kFF4\",\"mx-md-n2\":\"globalSearch_mx-md-n2__1rMhP\",\"mb-md-n2\":\"globalSearch_mb-md-n2__2xJzU\",\"ml-md-n2\":\"globalSearch_ml-md-n2__1N7s7\",\"m-md-n3\":\"globalSearch_m-md-n3__1eR1n\",\"mt-md-n3\":\"globalSearch_mt-md-n3__2ALR2\",\"my-md-n3\":\"globalSearch_my-md-n3__lqW4O\",\"mr-md-n3\":\"globalSearch_mr-md-n3__9iEIy\",\"mx-md-n3\":\"globalSearch_mx-md-n3__v1QYp\",\"mb-md-n3\":\"globalSearch_mb-md-n3__153Zp\",\"ml-md-n3\":\"globalSearch_ml-md-n3__36DfW\",\"m-md-n4\":\"globalSearch_m-md-n4__2yzjK\",\"mt-md-n4\":\"globalSearch_mt-md-n4__1d_sn\",\"my-md-n4\":\"globalSearch_my-md-n4__3QXnT\",\"mr-md-n4\":\"globalSearch_mr-md-n4__JwuUG\",\"mx-md-n4\":\"globalSearch_mx-md-n4__1P8uK\",\"mb-md-n4\":\"globalSearch_mb-md-n4__2FTyk\",\"ml-md-n4\":\"globalSearch_ml-md-n4__1l8JH\",\"m-md-n5\":\"globalSearch_m-md-n5__e2qJp\",\"mt-md-n5\":\"globalSearch_mt-md-n5__vK4LF\",\"my-md-n5\":\"globalSearch_my-md-n5__38qls\",\"mr-md-n5\":\"globalSearch_mr-md-n5__1vesy\",\"mx-md-n5\":\"globalSearch_mx-md-n5__17gNT\",\"mb-md-n5\":\"globalSearch_mb-md-n5__1_s-1\",\"ml-md-n5\":\"globalSearch_ml-md-n5__1a0rM\",\"m-md-auto\":\"globalSearch_m-md-auto__3gI5Y\",\"mt-md-auto\":\"globalSearch_mt-md-auto__2vZfs\",\"my-md-auto\":\"globalSearch_my-md-auto__25mCM\",\"mr-md-auto\":\"globalSearch_mr-md-auto__2__FR\",\"mx-md-auto\":\"globalSearch_mx-md-auto__gq7WW\",\"mb-md-auto\":\"globalSearch_mb-md-auto__gTSyt\",\"ml-md-auto\":\"globalSearch_ml-md-auto__2FJQi\",\"m-lg-0\":\"globalSearch_m-lg-0__2rD6k\",\"mt-lg-0\":\"globalSearch_mt-lg-0__27yv7\",\"my-lg-0\":\"globalSearch_my-lg-0__3_i0o\",\"mr-lg-0\":\"globalSearch_mr-lg-0__287ki\",\"mx-lg-0\":\"globalSearch_mx-lg-0__-i6uS\",\"mb-lg-0\":\"globalSearch_mb-lg-0__2ZW-N\",\"ml-lg-0\":\"globalSearch_ml-lg-0__1JWCn\",\"m-lg-1\":\"globalSearch_m-lg-1__dkYvA\",\"mt-lg-1\":\"globalSearch_mt-lg-1__3KM2-\",\"my-lg-1\":\"globalSearch_my-lg-1__3mtPg\",\"mr-lg-1\":\"globalSearch_mr-lg-1__1dmNp\",\"mx-lg-1\":\"globalSearch_mx-lg-1__1Qsx7\",\"mb-lg-1\":\"globalSearch_mb-lg-1__2gvDp\",\"ml-lg-1\":\"globalSearch_ml-lg-1__1VXbA\",\"m-lg-2\":\"globalSearch_m-lg-2__B-FWn\",\"mt-lg-2\":\"globalSearch_mt-lg-2__2ysnZ\",\"my-lg-2\":\"globalSearch_my-lg-2__6KOma\",\"mr-lg-2\":\"globalSearch_mr-lg-2__ovpC2\",\"mx-lg-2\":\"globalSearch_mx-lg-2__1T52J\",\"mb-lg-2\":\"globalSearch_mb-lg-2__30gCW\",\"ml-lg-2\":\"globalSearch_ml-lg-2__2OXwu\",\"m-lg-3\":\"globalSearch_m-lg-3__3kYV2\",\"mt-lg-3\":\"globalSearch_mt-lg-3__KHWIm\",\"my-lg-3\":\"globalSearch_my-lg-3__2ArXl\",\"mr-lg-3\":\"globalSearch_mr-lg-3__21dHE\",\"mx-lg-3\":\"globalSearch_mx-lg-3__1FW53\",\"mb-lg-3\":\"globalSearch_mb-lg-3__qDCR4\",\"ml-lg-3\":\"globalSearch_ml-lg-3__1WGzT\",\"m-lg-4\":\"globalSearch_m-lg-4__2BimN\",\"mt-lg-4\":\"globalSearch_mt-lg-4__25HRy\",\"my-lg-4\":\"globalSearch_my-lg-4__3Ibyk\",\"mr-lg-4\":\"globalSearch_mr-lg-4__vAAmV\",\"mx-lg-4\":\"globalSearch_mx-lg-4__3e0uX\",\"mb-lg-4\":\"globalSearch_mb-lg-4__sfdSF\",\"ml-lg-4\":\"globalSearch_ml-lg-4__1zB2U\",\"m-lg-5\":\"globalSearch_m-lg-5__3txw6\",\"mt-lg-5\":\"globalSearch_mt-lg-5__1i6Y_\",\"my-lg-5\":\"globalSearch_my-lg-5__18ULL\",\"mr-lg-5\":\"globalSearch_mr-lg-5__3GZUc\",\"mx-lg-5\":\"globalSearch_mx-lg-5__pbK73\",\"mb-lg-5\":\"globalSearch_mb-lg-5__3bJeU\",\"ml-lg-5\":\"globalSearch_ml-lg-5__3pLKq\",\"p-lg-0\":\"globalSearch_p-lg-0__CDtnG\",\"pt-lg-0\":\"globalSearch_pt-lg-0__1jYG7\",\"py-lg-0\":\"globalSearch_py-lg-0__2wfrD\",\"pr-lg-0\":\"globalSearch_pr-lg-0__3IrQX\",\"px-lg-0\":\"globalSearch_px-lg-0__1baPf\",\"pb-lg-0\":\"globalSearch_pb-lg-0__3PN43\",\"pl-lg-0\":\"globalSearch_pl-lg-0__2VbnV\",\"p-lg-1\":\"globalSearch_p-lg-1__3PT0P\",\"pt-lg-1\":\"globalSearch_pt-lg-1__2tY-M\",\"py-lg-1\":\"globalSearch_py-lg-1__12S7J\",\"pr-lg-1\":\"globalSearch_pr-lg-1__3E8a6\",\"px-lg-1\":\"globalSearch_px-lg-1__1v8Ro\",\"pb-lg-1\":\"globalSearch_pb-lg-1__3Govk\",\"pl-lg-1\":\"globalSearch_pl-lg-1__29NnY\",\"p-lg-2\":\"globalSearch_p-lg-2__4_EdL\",\"pt-lg-2\":\"globalSearch_pt-lg-2__3SB3o\",\"py-lg-2\":\"globalSearch_py-lg-2__1su5X\",\"pr-lg-2\":\"globalSearch_pr-lg-2__3CpTk\",\"px-lg-2\":\"globalSearch_px-lg-2__3kTv8\",\"pb-lg-2\":\"globalSearch_pb-lg-2__2lYHt\",\"pl-lg-2\":\"globalSearch_pl-lg-2__1tHmf\",\"p-lg-3\":\"globalSearch_p-lg-3__3KDAL\",\"pt-lg-3\":\"globalSearch_pt-lg-3__1HuGG\",\"py-lg-3\":\"globalSearch_py-lg-3__7yQs3\",\"pr-lg-3\":\"globalSearch_pr-lg-3__69Jbu\",\"px-lg-3\":\"globalSearch_px-lg-3__3joEc\",\"pb-lg-3\":\"globalSearch_pb-lg-3__1-_9j\",\"pl-lg-3\":\"globalSearch_pl-lg-3__17wwU\",\"p-lg-4\":\"globalSearch_p-lg-4__QBfGk\",\"pt-lg-4\":\"globalSearch_pt-lg-4__20qq-\",\"py-lg-4\":\"globalSearch_py-lg-4__Sdg2z\",\"pr-lg-4\":\"globalSearch_pr-lg-4__75nPF\",\"px-lg-4\":\"globalSearch_px-lg-4__2b_GY\",\"pb-lg-4\":\"globalSearch_pb-lg-4__vYxUt\",\"pl-lg-4\":\"globalSearch_pl-lg-4__2TqmE\",\"p-lg-5\":\"globalSearch_p-lg-5__3lguF\",\"pt-lg-5\":\"globalSearch_pt-lg-5__3H9aq\",\"py-lg-5\":\"globalSearch_py-lg-5__1fbf8\",\"pr-lg-5\":\"globalSearch_pr-lg-5__3TykU\",\"px-lg-5\":\"globalSearch_px-lg-5__1WuKW\",\"pb-lg-5\":\"globalSearch_pb-lg-5__2n6Am\",\"pl-lg-5\":\"globalSearch_pl-lg-5__17Uo2\",\"m-lg-n1\":\"globalSearch_m-lg-n1__3MInW\",\"mt-lg-n1\":\"globalSearch_mt-lg-n1__1mk7r\",\"my-lg-n1\":\"globalSearch_my-lg-n1__U4M36\",\"mr-lg-n1\":\"globalSearch_mr-lg-n1__2nAty\",\"mx-lg-n1\":\"globalSearch_mx-lg-n1__25Pez\",\"mb-lg-n1\":\"globalSearch_mb-lg-n1__1JanN\",\"ml-lg-n1\":\"globalSearch_ml-lg-n1__2Ng-y\",\"m-lg-n2\":\"globalSearch_m-lg-n2__2gvFM\",\"mt-lg-n2\":\"globalSearch_mt-lg-n2__15MYg\",\"my-lg-n2\":\"globalSearch_my-lg-n2__3fZtD\",\"mr-lg-n2\":\"globalSearch_mr-lg-n2__365aI\",\"mx-lg-n2\":\"globalSearch_mx-lg-n2__1bYFP\",\"mb-lg-n2\":\"globalSearch_mb-lg-n2__3Yn7l\",\"ml-lg-n2\":\"globalSearch_ml-lg-n2__2g5bc\",\"m-lg-n3\":\"globalSearch_m-lg-n3__1kKSr\",\"mt-lg-n3\":\"globalSearch_mt-lg-n3__26YJN\",\"my-lg-n3\":\"globalSearch_my-lg-n3__2qcpo\",\"mr-lg-n3\":\"globalSearch_mr-lg-n3__1xm7m\",\"mx-lg-n3\":\"globalSearch_mx-lg-n3__1AIOA\",\"mb-lg-n3\":\"globalSearch_mb-lg-n3__3iWre\",\"ml-lg-n3\":\"globalSearch_ml-lg-n3__9K6dz\",\"m-lg-n4\":\"globalSearch_m-lg-n4__2mhSi\",\"mt-lg-n4\":\"globalSearch_mt-lg-n4__GaOW8\",\"my-lg-n4\":\"globalSearch_my-lg-n4__15rzn\",\"mr-lg-n4\":\"globalSearch_mr-lg-n4__2busK\",\"mx-lg-n4\":\"globalSearch_mx-lg-n4__3tAhu\",\"mb-lg-n4\":\"globalSearch_mb-lg-n4__2Apgd\",\"ml-lg-n4\":\"globalSearch_ml-lg-n4__1dYUu\",\"m-lg-n5\":\"globalSearch_m-lg-n5__1qhyR\",\"mt-lg-n5\":\"globalSearch_mt-lg-n5__miyaK\",\"my-lg-n5\":\"globalSearch_my-lg-n5__1s_UX\",\"mr-lg-n5\":\"globalSearch_mr-lg-n5__3htuY\",\"mx-lg-n5\":\"globalSearch_mx-lg-n5__1OFZV\",\"mb-lg-n5\":\"globalSearch_mb-lg-n5__2y3QK\",\"ml-lg-n5\":\"globalSearch_ml-lg-n5__diACp\",\"m-lg-auto\":\"globalSearch_m-lg-auto__2U9Dh\",\"mt-lg-auto\":\"globalSearch_mt-lg-auto__15Sbg\",\"my-lg-auto\":\"globalSearch_my-lg-auto__2PJMZ\",\"mr-lg-auto\":\"globalSearch_mr-lg-auto__fvZ18\",\"mx-lg-auto\":\"globalSearch_mx-lg-auto__DKIa5\",\"mb-lg-auto\":\"globalSearch_mb-lg-auto__3cnNu\",\"ml-lg-auto\":\"globalSearch_ml-lg-auto__z-IvY\",\"m-xl-0\":\"globalSearch_m-xl-0__Ho0la\",\"mt-xl-0\":\"globalSearch_mt-xl-0__2rSmJ\",\"my-xl-0\":\"globalSearch_my-xl-0__C_Ylk\",\"mr-xl-0\":\"globalSearch_mr-xl-0__2PNLn\",\"mx-xl-0\":\"globalSearch_mx-xl-0__21Fxr\",\"mb-xl-0\":\"globalSearch_mb-xl-0__1hlfG\",\"ml-xl-0\":\"globalSearch_ml-xl-0__SiPqD\",\"m-xl-1\":\"globalSearch_m-xl-1__KjGMG\",\"mt-xl-1\":\"globalSearch_mt-xl-1__2ZJSX\",\"my-xl-1\":\"globalSearch_my-xl-1__3siav\",\"mr-xl-1\":\"globalSearch_mr-xl-1__2IiMM\",\"mx-xl-1\":\"globalSearch_mx-xl-1__1QmNm\",\"mb-xl-1\":\"globalSearch_mb-xl-1__1Yk9N\",\"ml-xl-1\":\"globalSearch_ml-xl-1__3BPvI\",\"m-xl-2\":\"globalSearch_m-xl-2__27IMv\",\"mt-xl-2\":\"globalSearch_mt-xl-2__304jY\",\"my-xl-2\":\"globalSearch_my-xl-2__9CRdZ\",\"mr-xl-2\":\"globalSearch_mr-xl-2__1cD4L\",\"mx-xl-2\":\"globalSearch_mx-xl-2__kgEmY\",\"mb-xl-2\":\"globalSearch_mb-xl-2__1-QWB\",\"ml-xl-2\":\"globalSearch_ml-xl-2__2BZmT\",\"m-xl-3\":\"globalSearch_m-xl-3__3iZpZ\",\"mt-xl-3\":\"globalSearch_mt-xl-3__upY3d\",\"my-xl-3\":\"globalSearch_my-xl-3__jVaRr\",\"mr-xl-3\":\"globalSearch_mr-xl-3__2Vngf\",\"mx-xl-3\":\"globalSearch_mx-xl-3__1tCjq\",\"mb-xl-3\":\"globalSearch_mb-xl-3__34Gio\",\"ml-xl-3\":\"globalSearch_ml-xl-3__1kJoF\",\"m-xl-4\":\"globalSearch_m-xl-4__208_g\",\"mt-xl-4\":\"globalSearch_mt-xl-4__1qG0F\",\"my-xl-4\":\"globalSearch_my-xl-4__ke1X-\",\"mr-xl-4\":\"globalSearch_mr-xl-4__3fkzX\",\"mx-xl-4\":\"globalSearch_mx-xl-4__1Ub5U\",\"mb-xl-4\":\"globalSearch_mb-xl-4__Mx4UQ\",\"ml-xl-4\":\"globalSearch_ml-xl-4__3NzQ1\",\"m-xl-5\":\"globalSearch_m-xl-5__3or-J\",\"mt-xl-5\":\"globalSearch_mt-xl-5__bErw1\",\"my-xl-5\":\"globalSearch_my-xl-5__2Jh1-\",\"mr-xl-5\":\"globalSearch_mr-xl-5__2IHdx\",\"mx-xl-5\":\"globalSearch_mx-xl-5__3UiBo\",\"mb-xl-5\":\"globalSearch_mb-xl-5__zICEF\",\"ml-xl-5\":\"globalSearch_ml-xl-5__1tky6\",\"p-xl-0\":\"globalSearch_p-xl-0__1fNfa\",\"pt-xl-0\":\"globalSearch_pt-xl-0__AQ0GB\",\"py-xl-0\":\"globalSearch_py-xl-0__1wDba\",\"pr-xl-0\":\"globalSearch_pr-xl-0__u5gKV\",\"px-xl-0\":\"globalSearch_px-xl-0__6BUDZ\",\"pb-xl-0\":\"globalSearch_pb-xl-0__14flc\",\"pl-xl-0\":\"globalSearch_pl-xl-0__3ou_J\",\"p-xl-1\":\"globalSearch_p-xl-1__2b38e\",\"pt-xl-1\":\"globalSearch_pt-xl-1__2ofYl\",\"py-xl-1\":\"globalSearch_py-xl-1__33Pl4\",\"pr-xl-1\":\"globalSearch_pr-xl-1__1b2nn\",\"px-xl-1\":\"globalSearch_px-xl-1__ORrp8\",\"pb-xl-1\":\"globalSearch_pb-xl-1__31HEs\",\"pl-xl-1\":\"globalSearch_pl-xl-1__34U-R\",\"p-xl-2\":\"globalSearch_p-xl-2__3CmI4\",\"pt-xl-2\":\"globalSearch_pt-xl-2__ewyip\",\"py-xl-2\":\"globalSearch_py-xl-2__1JEwl\",\"pr-xl-2\":\"globalSearch_pr-xl-2__P7hWN\",\"px-xl-2\":\"globalSearch_px-xl-2__2zn0c\",\"pb-xl-2\":\"globalSearch_pb-xl-2__3pss9\",\"pl-xl-2\":\"globalSearch_pl-xl-2__26dwe\",\"p-xl-3\":\"globalSearch_p-xl-3__1zu19\",\"pt-xl-3\":\"globalSearch_pt-xl-3__1wccv\",\"py-xl-3\":\"globalSearch_py-xl-3__tfDnd\",\"pr-xl-3\":\"globalSearch_pr-xl-3__1ipBE\",\"px-xl-3\":\"globalSearch_px-xl-3__O9j67\",\"pb-xl-3\":\"globalSearch_pb-xl-3__3sEyQ\",\"pl-xl-3\":\"globalSearch_pl-xl-3__3qEuM\",\"p-xl-4\":\"globalSearch_p-xl-4__vh9Tc\",\"pt-xl-4\":\"globalSearch_pt-xl-4__5qigZ\",\"py-xl-4\":\"globalSearch_py-xl-4__2r6e-\",\"pr-xl-4\":\"globalSearch_pr-xl-4__1xE6N\",\"px-xl-4\":\"globalSearch_px-xl-4__2EbQa\",\"pb-xl-4\":\"globalSearch_pb-xl-4__3DfdZ\",\"pl-xl-4\":\"globalSearch_pl-xl-4__21NE2\",\"p-xl-5\":\"globalSearch_p-xl-5__3ucRq\",\"pt-xl-5\":\"globalSearch_pt-xl-5__2ReIr\",\"py-xl-5\":\"globalSearch_py-xl-5__3d6uy\",\"pr-xl-5\":\"globalSearch_pr-xl-5__3__HR\",\"px-xl-5\":\"globalSearch_px-xl-5__2co5E\",\"pb-xl-5\":\"globalSearch_pb-xl-5__3zYHm\",\"pl-xl-5\":\"globalSearch_pl-xl-5__I4s4U\",\"m-xl-n1\":\"globalSearch_m-xl-n1__2H-l7\",\"mt-xl-n1\":\"globalSearch_mt-xl-n1__3aG0y\",\"my-xl-n1\":\"globalSearch_my-xl-n1__2qUpm\",\"mr-xl-n1\":\"globalSearch_mr-xl-n1__1TeSP\",\"mx-xl-n1\":\"globalSearch_mx-xl-n1__a6HO6\",\"mb-xl-n1\":\"globalSearch_mb-xl-n1__1lbYi\",\"ml-xl-n1\":\"globalSearch_ml-xl-n1__3W0J6\",\"m-xl-n2\":\"globalSearch_m-xl-n2__21HnN\",\"mt-xl-n2\":\"globalSearch_mt-xl-n2__nbWXT\",\"my-xl-n2\":\"globalSearch_my-xl-n2__3GSC4\",\"mr-xl-n2\":\"globalSearch_mr-xl-n2__22Ldm\",\"mx-xl-n2\":\"globalSearch_mx-xl-n2__pyFC-\",\"mb-xl-n2\":\"globalSearch_mb-xl-n2__15NoH\",\"ml-xl-n2\":\"globalSearch_ml-xl-n2__UrpQr\",\"m-xl-n3\":\"globalSearch_m-xl-n3__wc9gs\",\"mt-xl-n3\":\"globalSearch_mt-xl-n3__3nPnh\",\"my-xl-n3\":\"globalSearch_my-xl-n3__3OrVP\",\"mr-xl-n3\":\"globalSearch_mr-xl-n3__3Df-x\",\"mx-xl-n3\":\"globalSearch_mx-xl-n3__2l1i9\",\"mb-xl-n3\":\"globalSearch_mb-xl-n3__24h8q\",\"ml-xl-n3\":\"globalSearch_ml-xl-n3__MQh3W\",\"m-xl-n4\":\"globalSearch_m-xl-n4__2wpOI\",\"mt-xl-n4\":\"globalSearch_mt-xl-n4__2U171\",\"my-xl-n4\":\"globalSearch_my-xl-n4__RUURL\",\"mr-xl-n4\":\"globalSearch_mr-xl-n4__1mNAA\",\"mx-xl-n4\":\"globalSearch_mx-xl-n4__1cL6B\",\"mb-xl-n4\":\"globalSearch_mb-xl-n4__3h_GE\",\"ml-xl-n4\":\"globalSearch_ml-xl-n4__3V-3z\",\"m-xl-n5\":\"globalSearch_m-xl-n5__2h4Oy\",\"mt-xl-n5\":\"globalSearch_mt-xl-n5__o8aIo\",\"my-xl-n5\":\"globalSearch_my-xl-n5__30c2t\",\"mr-xl-n5\":\"globalSearch_mr-xl-n5__2qcB9\",\"mx-xl-n5\":\"globalSearch_mx-xl-n5__19HCm\",\"mb-xl-n5\":\"globalSearch_mb-xl-n5__3w14S\",\"ml-xl-n5\":\"globalSearch_ml-xl-n5__2hMtJ\",\"m-xl-auto\":\"globalSearch_m-xl-auto__1HISh\",\"mt-xl-auto\":\"globalSearch_mt-xl-auto__1QWWw\",\"my-xl-auto\":\"globalSearch_my-xl-auto__3qylD\",\"mr-xl-auto\":\"globalSearch_mr-xl-auto__1xfuR\",\"mx-xl-auto\":\"globalSearch_mx-xl-auto__sGBOe\",\"mb-xl-auto\":\"globalSearch_mb-xl-auto__1bx9q\",\"ml-xl-auto\":\"globalSearch_ml-xl-auto__882UX\",\"gradient-bg5\":\"globalSearch_gradient-bg5__1MYXP\",\"globalSearchContainer\":\"globalSearch_globalSearchContainer__2UcRh\",\"globalSearchInputContainer\":\"globalSearch_globalSearchInputContainer__39m4K\",\"feedbackLeft\":\"globalSearch_feedbackLeft__EkRUy\",\"globalSearchInput\":\"globalSearch_globalSearchInput__2f-Vt\",\"feedbackRight\":\"globalSearch_feedbackRight__3oTp5\",\"globalSearchDropdownContainer\":\"globalSearch_globalSearchDropdownContainer__ibqy1\",\"globalSearchDropDown\":\"globalSearch_globalSearchDropDown__3XOh_\",\"globalSearchDropdownNoMatches\":\"globalSearch_globalSearchDropdownNoMatches__2NnYs\",\"globalSearchDropdownOptions\":\"globalSearch_globalSearchDropdownOptions__1YUhb\",\"loading\":\"globalSearch_loading__1Z_f_\",\"searchTypeTitle\":\"globalSearch_searchTypeTitle__2HCdq\",\"globalSearchDropdownOption\":\"globalSearch_globalSearchDropdownOption__2lJeK\",\"globalSearchDropdownOptionImage\":\"globalSearch_globalSearchDropdownOptionImage__1l2E4\",\"name\":\"globalSearch_name__1YR1M\",\"place\":\"globalSearch_place__39RlN\"};","export const featureGates = {\r\n ADULT_TEAM_PICKLEBALL: 'adult_team_pickleball',\r\n JUNIOR_TEAM_PICKLEBALL: 'junior_team_pickleball',\r\n GLOBAL_DROPDOWN_V2: 'global_dropdown_v2',\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const scheduleMatchCardPropTypes = {\r\n match: PropTypes.shape({\r\n isSchedulePublished: PropTypes.bool,\r\n isMultiWeekByDate: PropTypes.bool,\r\n teamMatchId: PropTypes.number.isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string.isRequired,\r\n formattedAddress: PropTypes.string.isRequired\r\n }),\r\n position1Team: PropTypes.shape({\r\n teamId: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n position2Team: PropTypes.shape({\r\n teamId: PropTypes.number,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n round: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n roundName: PropTypes.string,\r\n }),\r\n winnerTeamId: PropTypes.number\r\n }).isRequired,\r\n round: PropTypes.shape({\r\n roundName: PropTypes.string,\r\n name: PropTypes.string.isRequired\r\n }),\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n onEditMatch: PropTypes.func.isRequired,\r\n onDeleteMatch: PropTypes.func,\r\n matchNumber: PropTypes.number,\r\n isMultiWeekByDate: PropTypes.bool,\r\n};\r\n\r\nexport const defaultScheduleMatchCardPropTypes = {\r\n round: null\r\n};\r\n\r\nexport const locationCardPropTypes = {\r\n location: PropTypes.object.isRequired,\r\n};\r\n\r\nexport const fontAwesomeSvgIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n};\r\n\r\nexport const messageIconPropTypes = {\r\n memberId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n displayName: PropTypes.string,\r\n style: PropTypes.any,\r\n};\r\n\r\nexport const defaultMessageIconPropTypes = {\r\n memberId: '',\r\n displayName: '',\r\n style: {},\r\n};\r\n\r\nexport const utrIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n alt: PropTypes.string,\r\n style: PropTypes.object,\r\n clickable: PropTypes.any,\r\n};\r\n\r\nexport const deafultUtrIconPropTypes = {\r\n icon: null,\r\n size: '',\r\n};\r\n\r\nexport const createDrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n selectableTeams: PropTypes.array,\r\n onSkip: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultCreateDrawModalPropTypes = {\r\n open: false,\r\n selectableTeams: []\r\n};\r\n\r\nexport const modalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const defaultModalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const bootstrapDialogTitlePropTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const modalBaseWithHeaderPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const playerWithdrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const shareTeamModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onCopyClick: PropTypes.func.isRequired,\r\n url: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const defaultModalPropTypes = {\r\n open: false,\r\n};\r\n\r\nexport const confirmPublishSchedulePopupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultConfirmPublishSchedulePopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const popupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultPopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const teamMatchSummaryPropTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n onEditClicked: PropTypes.func.isRequired,\r\n summary: PropTypes.shape({\r\n canEditTeamMatch: PropTypes.bool.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n position1Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n position2Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n sessionId: PropTypes.number.isRequired,\r\n sessionTypeId: PropTypes.number.isRequired\r\n }).isRequired,\r\n scores: PropTypes.shape({\r\n position1: PropTypes.number.isRequired,\r\n position2: PropTypes.number.isRequired,\r\n }).isRequired,\r\n isUpdating: PropTypes.bool,\r\n winningTeamId: PropTypes.number.isRequired\r\n};\r\n\r\nexport const defaultTeamMatchSummaryPropTypes = {\r\n isUpdating: true\r\n};\r\n\r\nexport const playerSearchPropTypes = {\r\n label: PropTypes.string.isRequired,\r\n onPlayerSelected: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultPlayerSearchPropTypes = {\r\n isProPlayerSearch: false,\r\n searchMembersOnly: false,\r\n showPickleballContent: false,\r\n showTennisContent: false,\r\n selectedPlayers: []\r\n};\r\n\r\nexport const addTeamsTablePropTypes = {\r\n sessionTeams: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n })).isRequired,\r\n sessionStartDateUtc: PropTypes.string.isRequired,\r\n sessionEndDateUtc: PropTypes.string.isRequired,\r\n wins: PropTypes.number.isRequired,\r\n losses: PropTypes.number.isRequired,\r\n })),\r\n maxTeams: PropTypes.number,\r\n isLoading: PropTypes.bool.isRequired,\r\n sortByProperty: PropTypes.number.isRequired,\r\n sortOrder: PropTypes.string.isRequired,\r\n selectedTeamIds: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onTeamSelected: PropTypes.func.isRequired,\r\n onSortChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultAddTeamsTablePropTypes = {\r\n sessionTeams: []\r\n};\r\n\r\nexport const defaultCreateTeamModalPropTypes = {\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n onSaveClick: PropTypes.func,\r\n sessionId: PropTypes.number,\r\n sessionTypeId: PropTypes.number,\r\n};\r\n\r\nexport const teamProfileInfoPropTypes = {\r\n teamData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number,\r\n maxAge: PropTypes.number,\r\n genderTypeId: PropTypes.number,\r\n conferenceRatings: PropTypes.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 isGlobalDropdownV2Enabled = useGate(featureGates.GLOBAL_DROPDOWN_V2).value;\r\n const [state, setState] = useState({});\r\n\r\n useEffect(() => {\r\n setState({\r\n featureGates: {\r\n adultTeamPickleball: isAdultTeamPickleballEnabled,\r\n juniorTeamPickleball: isJuniorTeamPickleballEnabled,\r\n globalDropdownV2: isGlobalDropdownV2Enabled,\r\n },\r\n });\r\n }, []);\r\n\r\n const memoizedState = useMemo(() => ({\r\n statsig: state,\r\n }), [state]);\r\n\r\n StatsigContextProvider.propTypes = {\r\n ...statsigContextProviderPropTypes\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","const localConfig = {\r\n // apiHost: ' https://api.universaltennis.com',\r\n // apiHost: ' https://marketing-api.universaltennis.com',\r\n // apiHost: 'https://test-api.universaltennis.com',\r\n // apiHost: 'https://qa-api.universaltennis.com',\r\n // apiHost: 'https://ci-api.universaltennis.com',\r\n // apiHost: 'https://rc-api.universaltennis.com',\r\n // apiHost: 'https://localhost:44317',\r\n // apiHost: 'https://utr-api-netcore.azurewebsites.net',\r\n // apiHost: 'https://ut-3-api-qa.azurewebsites.net',\r\n // apiHost: 'https://docker-test-api.universaltennis.com',\r\n // apiHost: ' https://test-api-alt.universaltennis.com',\r\n // apiHost: 'https://utr-api-central-us-01-canary.azurewebsites.net',\r\n // apiHost: 'https://utr-api-central-us-01.azurewebsites.net'\r\n // apiHost: 'https://ut-api.ngrok.io/',\r\n};\r\n\r\nexport default localConfig;\r\n","/* eslint max-len: [\"off\"] */\r\nimport urljoin from 'url-join';\r\nimport PackageJson from '../package.json';\r\nimport localConf from './config-local';\r\nimport configConstants from './config-constants';\r\n\r\nif (localConf) {\r\n console.log('LocalConf', localConf);\r\n} else {\r\n console.log('No local config overrides');\r\n}\r\n\r\nconst buildId = process.env.BUILD_ID || 'default';\r\nconst appCodePath = `${PackageJson.version}-${buildId}`;\r\nconst outputPath = 'leagues-client';\r\nconst applicationVersion = PackageJson.version;\r\nconst staticContentPath = 'public';\r\n\r\nconst rootDomain = 'utrsports.net';\r\nconst brandedDomain = 'utrsports.net';\r\nconst twitterHandle = 'UTR_Sports_';\r\n\r\nconst devFontUrl = 'https://cloud.typography.com/6323816/6761592/css/fonts.css'; // doesn't count against production page views\r\nconst localFontUrl = '/fonts/utr-fonts.css'; // for internal/offline use\r\nconst prodFontUrl = 'https://cloud.typography.com/6323816/6355392/css/fonts.css';\r\n\r\nconst webServerPublicPath = '/';\r\n\r\nconst links = {\r\n support: `https://support.${rootDomain}/support/tickets/new`,\r\n supportHome: `https://support.${rootDomain}/en/support/home`,\r\n appStoreUrl: 'https://apps.apple.com/us/app/universal-tennis/id1519232627',\r\n googlePlayUrl: 'https://play.google.com/store/apps/details?id=com.ut.utr&utm_source=google-play&utm_campaign=web-footer-google-playstore-badge&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1',\r\n sessionStandingsRule: `https://support.${rootDomain}/support/solutions/articles/9000235929-set-session-standings-rule`\r\n\r\n};\r\n\r\nconst devRoxKey = '5b4f55a7a43ccb0e97402f6f';\r\nconst devStripeKey = 'pk_test_fJzi8lcnQbbKhlMJp9YVZ2tA00Wx6NIMm2';\r\nconst utrStripeAccountId = process.env.UTR_STRIPE_ACCOUNT_ID || 'acct_1AV2NnBJJJ7ji1oI';\r\nconst googleApiKey = process.env.REACT_APP_GOOGLE_API_KEY;\r\n\r\nconst prodSegmentKey = 'XJQ5EvgdaXEKA7B8XgaiPgOPWjO0GB2Q';\r\nconst nonProdSegmentKey = 'kGabTpvRe2bSYtu4QmKKmoPf5Q6kY2Xc';\r\n\r\nconst prodFacebookPixelId = '934768840401987';\r\nconst nonProdFacebookPixelId = '123456789123456';\r\n\r\nconst devApiAuthToken = '2303cc78-0e7e-4b86-8ae6-74d05cd10cdf';\r\n\r\nconst prodStatsigKey = 'client-M26U2xrmdwgAiTbeNrUpxyGIk4i2guVzMiPPm9m00b';\r\nconst devStatsigKey = 'client-BS9ru6yhmKmFidDYBKkoSTiTwuV1p1nEDXl7IXtANJD';\r\n\r\nconst localDevSettings = {\r\n appHost: 'https://localhost:3443',\r\n marketingAppHost: 'http://localhost:3001',\r\n leaguesAppHost: 'http://localhost:3002',\r\n apiAuthToken: devApiAuthToken,\r\n apiHost: `https://test-api.${rootDomain}`,\r\n leaguesApiHost: `https://test1-leagues-api.${rootDomain}`,\r\n searchApiHost: `https://test1-search-api.${rootDomain}`,\r\n siteBaseUrl: rootDomain,\r\n brandedUrl: brandedDomain,\r\n twitterAccount: twitterHandle,\r\n fontUrl: localFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: devStripeKey,\r\n utrStripeAccountId,\r\n useProxy: true,\r\n googleApiKey,\r\n publicPath: webServerPublicPath,\r\n pixelId: nonProdFacebookPixelId,\r\n cdnUrl: `https://ci-cdn.${rootDomain}`,\r\n isLocalhost: true,\r\n statsigKey: devStatsigKey,\r\n ...(localConf || {}),\r\n};\r\n\r\nconst createNewRelicBrowserSnippet = (apiUri, newRelicAppId) => {\r\n return `\r\n \r\n `;\r\n};\r\n\r\nconst createTestSettings = (environmentName, newRelicAppId) => {\r\n const cdnUrl = `https://${environmentName}-cdn.${rootDomain}`;\r\n const cdnUrlStatic = `https://${environmentName}-cdn-static.${rootDomain}`;\r\n const apiUri = process.env.APIHOST || `https://${environmentName}-api.${rootDomain}`;\r\n const leaguesApiUri = process.env.LEAGUESAPIHOST || `https://${environmentName}-leagues-api.${rootDomain}`;\r\n const searchApiUri = `https://test1-search-api.${rootDomain}`;\r\n const newRelicBrowserSnippet = newRelicAppId != null ? createNewRelicBrowserSnippet(apiUri, newRelicAppId) : '';\r\n\r\n return {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n appHost: process.env.APPHOST || `https://${environmentName}-app.${rootDomain}`,\r\n appHostName: process.env.APPHOSTNAME || `${environmentName}-app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${environmentName}.${rootDomain}`,\r\n apiHost: apiUri,\r\n googleApiKey,\r\n leaguesApiHost: leaguesApiUri,\r\n searchApiHost: searchApiUri,\r\n userSiteHost: process.env.USERSITEHOST || `https://${environmentName}-app.${rootDomain}`,\r\n userSiteHostName: process.env.USERSITEHOST || `${environmentName}-app.${rootDomain}`,\r\n fontUrl: devFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n cdnUrl,\r\n publicPath: urljoin(cdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: nonProdSegmentKey,\r\n devtoolConfig: 'eval-source-maps',\r\n pixelId: nonProdFacebookPixelId,\r\n newRelicBrowserSnippet,\r\n statsigKey: devStatsigKey,\r\n };\r\n};\r\n\r\nconst prodCdnUrl = `https://prod-cdn.${rootDomain}`;\r\nconst prodCdnUrlStatic = `https://prod-cdn-static.${rootDomain}`;\r\nconst prodApiUri = process.env.APIHOST || `https://api.${rootDomain}`;\r\nconst prodLeaguesApiUri = process.env.LEAGUESAPIHOST || `https://leagues-api.${rootDomain}`;\r\nconst searchApiUrl = `https://search-api.${rootDomain}`;\r\nconst prodServerSettings = {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n appHost: process.env.APPHOST || `https://app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${rootDomain}`,\r\n leaguesApiHost: prodLeaguesApiUri,\r\n apiHost: prodApiUri,\r\n searchApiHost: searchApiUrl,\r\n fontUrl: prodFontUrl,\r\n googleApiKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: process.env.STRIPE_CLIENT_ID || 'ca_G7kArGiIoboxUDj62elK8kxXinfQe0QI',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n roxKey: process.env.REACT_APP_ROX_KEY,\r\n cdnUrl: prodCdnUrl,\r\n publicPath: urljoin(prodCdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: prodSegmentKey,\r\n devtoolConfig: false,\r\n pixelId: prodFacebookPixelId,\r\n newRelicBrowserSnippet: createNewRelicBrowserSnippet(prodApiUri, 539633838),\r\n statsigKey: prodStatsigKey,\r\n};\r\n\r\nconst qaServerSettings = createTestSettings('qa', 590226463);\r\nconst ciServerSettings = createTestSettings('ci', 590213041);\r\nconst testServerSettings = createTestSettings('test', 589991131);\r\nconst test2ServerSettings = createTestSettings('test2', 587189898);\r\nconst test3ServerSettings = createTestSettings('test3', 587326842);\r\nconst test4ServerSettings = createTestSettings('test4', 539430739);\r\nconst test5ServerSettings = createTestSettings('test5', 284389075);\r\nconst test6ServerSettings = createTestSettings('test6', 284363017);\r\nconst test7ServerSettings = createTestSettings('test7', 518274954);\r\nconst test8ServerSettings = createTestSettings('test8', 269953869);\r\nconst test9ServerSettings = createTestSettings('test9', null);\r\nconst test10ServerSettings = createTestSettings('test10', null);\r\nconst test11ServerSettings = createTestSettings('test11', null);\r\nconst rcSettings = createTestSettings('rc', 590000593);\r\n\r\nlet config = localDevSettings; // Default to local dev settings\r\n\r\nconst configSource = (\r\n process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development'\r\n).toLowerCase();\r\n\r\nswitch (configSource) {\r\n case 'prod':\r\n config = prodServerSettings;\r\n break;\r\n case 'qa':\r\n config = qaServerSettings;\r\n break;\r\n case 'ci':\r\n config = ciServerSettings;\r\n break;\r\n case 'test':\r\n config = testServerSettings;\r\n break;\r\n case 'test1':\r\n config = testServerSettings;\r\n break;\r\n case 'test2':\r\n config = test2ServerSettings;\r\n break;\r\n case 'test3':\r\n config = test3ServerSettings;\r\n break;\r\n case 'test4':\r\n config = test4ServerSettings;\r\n break;\r\n case 'test5':\r\n config = test5ServerSettings;\r\n break;\r\n case 'test6':\r\n config = test6ServerSettings;\r\n break;\r\n case 'test7':\r\n config = test7ServerSettings;\r\n break;\r\n case 'test8':\r\n config = test8ServerSettings;\r\n break;\r\n case 'test9':\r\n config = test9ServerSettings;\r\n break;\r\n case 'test10':\r\n config = test10ServerSettings;\r\n break;\r\n case 'test11':\r\n config = test11ServerSettings;\r\n break;\r\n case 'rc':\r\n config = rcSettings;\r\n break;\r\n default:\r\n config = localDevSettings;\r\n}\r\n\r\n// Common settings\r\nconfig.outputPath = configConstants.outputPath;\r\nconfig.appCodePath = appCodePath;\r\nconfig.applicationVersion = applicationVersion;\r\nconfig.staticContentPath = staticContentPath;\r\n\r\nexport default config;\r\n","export const LeagueSessionTypes = {\r\n TOURNAMENT: 1,\r\n MULTI_ROUND: 2,\r\n};\r\n\r\nexport const FrequencyTypes = {\r\n ONCE_A_WEEK: 1,\r\n EVERY_TWO_WEEKS: 2,\r\n};\r\n\r\nexport const MatchFormatTypes = {\r\n SINGLES: 1,\r\n DOUBLES: 2,\r\n BOTH: 3,\r\n};\r\n\r\nexport const ResultTypes = {\r\n COMPLETED: 1,\r\n COMPLETED_WITH_PARTIAL_SCORES: 2,\r\n PLAYER_OR_TEAM_DEFAULTED: 3,\r\n WITHDREW: 4,\r\n RETIRED: 5,\r\n INCOMPLETE: 6,\r\n DEFAULTED: 7,\r\n MATCH_NOT_PLAYED: 8,\r\n};\r\n\r\nexport const ScheduleStatuses = {\r\n DRAFT: 1,\r\n PUBLISHED: 2,\r\n};\r\n\r\nexport const TennisScoringFormatTypes = {\r\n BEST_OF_THREE: 1,\r\n TWO_SETS_WITH_TIEBREAKER: 2,\r\n SINGLE_SET: 3,\r\n TIME_BASED: 4,\r\n FAST_FOUR: 5,\r\n};\r\n\r\nexport const PickleballScoringFormatTypes = {\r\n SINGLE_GAME: 6,\r\n BEST_OF_THREE_GAMES: 7,\r\n TIME_BASED_GAME: 8,\r\n};\r\n\r\nexport const StatusTypes = {\r\n OPEN: 1,\r\n CLOSED: 2,\r\n};\r\n\r\nexport const WithdrawTypes = {\r\n WITHDRAW: 1,\r\n REFUND: 2,\r\n WITHDRAW_AND_REFUND: 3,\r\n};\r\n\r\nexport const RequestStatusTypes = {\r\n ACCEPTED: 1,\r\n DENIED: 2,\r\n PENDING: 3,\r\n};\r\n\r\nexport const LeagueGenderTypes = {\r\n CO_ED: 1,\r\n MALE: 2,\r\n FEMALE: 3,\r\n};\r\n\r\nexport const LeagueTypes = {\r\n UT_ADULT_TEAM_TENNIS: 1,\r\n UT_JUNIOR_TEAM_TENNIS: 3,\r\n CLUB_ADULT_LEAGUE_TENNIS: 4,\r\n OTHER_TENNIS: 5,\r\n UT_ADULT_TEAM_PICKLEBALL: 6,\r\n UT_JUNIOR_TEAM_PICKLEBALL: 7,\r\n CLUB_ADULT_LEAGUE_PICKLEBALL: 8,\r\n OTHER_PICKLEBALL: 9,\r\n};\r\n\r\nexport const LeagueTierTypes = {\r\n ADULT: 1,\r\n JUNIOR: 2\r\n};\r\n\r\nexport const PlayerActionTypes = {\r\n WITHDRAW: 1,\r\n MOVE_TO_TEAM: 2,\r\n COPY_TO_TEAM: 3,\r\n MARK_AS_ROSTERED: 4,\r\n MARK_AS_SUBSTITUTE: 5,\r\n};\r\n\r\nexport const OrderByTypes = {\r\n TEAM_NAME: 0,\r\n SESSION_NAME: 1,\r\n RANK: 2,\r\n};\r\n\r\nexport const OrderByRuleTypes = {\r\n ASCENDING: { id: 0, value: 'asc' },\r\n DESCENDING: { id: 1, value: 'desc' },\r\n};\r\n\r\nexport const SessionDrawTypes = {\r\n FIRST_MATCH_BACK_DRAW: 1,\r\n SINGLE_ELIMINATION: 2\r\n};\r\n\r\nexport const MultiRoundScheduleTypes = {\r\n BY_ROUND: 0,\r\n BY_DATE: 1\r\n};\r\n\r\nexport const 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 pageSize = 50;\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 = 1) => ({\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","export 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","import moment from 'moment';\r\nimport { SportTypeIds } from './types';\r\nimport { ageSliderDictionary, utrpSliderDictionary } from './constants';\r\n\r\nconst { TENNIS } = SportTypeIds;\r\n\r\nexport const getAgeKeys = (ages) => {\r\n return ages.map((age) => parseInt(Object.keys(ageSliderDictionary).find((key) => ageSliderDictionary[key] === age)));\r\n};\r\n\r\nexport const ageDisplay = (value) => {\r\n const startRange = value[0];\r\n const endRange = value[1];\r\n if (startRange === 1 && endRange === Object.keys(ageSliderDictionary).length) {\r\n return 'All';\r\n }\r\n if (startRange === 1) {\r\n return `${ageSliderDictionary[endRange]} and Under`;\r\n }\r\n if (endRange === Object.keys(ageSliderDictionary).length) {\r\n return `${ageSliderDictionary[startRange]} and Over`;\r\n }\r\n return `${ageSliderDictionary[startRange]} to ${ageSliderDictionary[endRange]}`;\r\n};\r\n\r\nexport const getAdjustedTimeOfDay = ({ timeOfDay, format = null }) => {\r\n const day = moment();\r\n const offset = moment().utcOffset();\r\n const splitTime = timeOfDay.split(/:/);\r\n\r\n day.hours(parseInt(splitTime[0])).minutes(parseInt(splitTime[1]));\r\n day.add(offset, 'minutes');\r\n\r\n if (format) {\r\n return day.format(format);\r\n }\r\n\r\n const hours = day.get('hour');\r\n const minutes = day.get('minute');\r\n\r\n return `${hours}:${minutes}`;\r\n};\r\n\r\nexport const getPlayerDisplayUtr = (player, isDoubles = false) => {\r\n const {\r\n utrDoubles,\r\n utrDoublesDisplay,\r\n utrDoublesNotVerified,\r\n utrDoublesNotVerifiedDisplay,\r\n utrSingles,\r\n utrSinglesDisplay,\r\n utrSinglesNotVerified,\r\n utrSinglesNotVerifiedDisplay,\r\n utrRange,\r\n } = player || {};\r\n\r\n if (isDoubles) {\r\n if (utrDoubles && utrDoubles !== 0) {\r\n return { isVerified: true, rating: utrDoublesDisplay };\r\n }\r\n if (utrDoublesNotVerified && utrDoublesNotVerified !== 0) {\r\n return { isVerified: false, rating: utrDoublesNotVerifiedDisplay };\r\n }\r\n } else {\r\n if (utrSingles && utrSingles !== 0) {\r\n return { isVerified: true, rating: utrSinglesDisplay };\r\n }\r\n if (utrSinglesNotVerified && utrSinglesNotVerified !== 0) {\r\n return { isVerified: false, rating: utrSinglesNotVerifiedDisplay };\r\n }\r\n }\r\n\r\n if (utrRange) {\r\n const { minUtrDisplay, maxUtrDisplay } = utrRange;\r\n return { isVerified: false, rating: `${minUtrDisplay}-${maxUtrDisplay}` };\r\n }\r\n\r\n return { isVerified: false, rating: '0.00' };\r\n};\r\n\r\nexport const getPlayerDisplayPickleballRating = (player) => {\r\n const { utrRange } = player || {};\r\n const rating = utrRange?.pickleballRatingDisplay || 'UR';\r\n\r\n return { isVerified: false, rating };\r\n};\r\n\r\nexport const getPlayerTableDisplayPickleballRating = (player) => {\r\n const { utrRange } = player || {};\r\n\r\n let rating;\r\n\r\n if (utrRange?.minUtrDisplay && utrRange?.maxUtrDisplay) {\r\n rating = `${utrRange?.minUtrDisplay} - ${utrRange?.maxUtrDisplay}`;\r\n } else if (utrRange?.pickleballRatingDisplay) {\r\n rating = `${utrRange?.pickleballRatingDisplay}`;\r\n } else {\r\n rating = 'UR';\r\n }\r\n\r\n return rating;\r\n};\r\n\r\nexport const getPlayerRating = ({ player, isTennisMatch, isDoubles = false }) => {\r\n if (isTennisMatch) {\r\n return getPlayerDisplayUtr(player, isDoubles);\r\n }\r\n return getPlayerDisplayPickleballRating(player);\r\n};\r\n\r\nexport const getDisplayUTRPRating = (player, isDoubles) => {\r\n const { singlesPkbRatingDisplay, doublesPkbRatingDisplay, utrRange } = player || {};\r\n\r\n if (isDoubles) {\r\n const rating = doublesPkbRatingDisplay?.pkbRating || utrRange?.pickleballRatingDisplay || '-';\r\n const reliability = doublesPkbRatingDisplay?.reliability || (utrRange?.pickleballRatingDisplay && 'Estimated') || '';\r\n const displayVerifiedIcon = doublesPkbRatingDisplay?.reliability === 'Reliable' || doublesPkbRatingDisplay?.reliability === 'Projected';\r\n return { rating, reliability, displayVerifiedIcon };\r\n }\r\n\r\n const rating = singlesPkbRatingDisplay?.pkbRating || utrRange?.pickleballRatingDisplay || '-';\r\n const reliability = singlesPkbRatingDisplay?.reliability || (utrRange?.pickleballRatingDisplay && 'Estimated') || '';\r\n const displayVerifiedIcon = singlesPkbRatingDisplay?.reliability === 'Reliable' || singlesPkbRatingDisplay?.reliability === 'Projected';\r\n return { rating, reliability, displayVerifiedIcon };\r\n};\r\n\r\nexport const getFormattedDate = (startDateUtc, endDateUtc, format) => {\r\n const startDate = moment.utc(startDateUtc).local(true);\r\n const endDate = moment.utc(endDateUtc).local(true);\r\n const formattedStartDate = startDate.format(format);\r\n const formattedEndDate = endDate.format(format);\r\n const isOnSameDay = moment(startDate).isSame(endDate, 'day');\r\n\r\n return isOnSameDay ? formattedStartDate : `${formattedStartDate} - ${formattedEndDate}`;\r\n};\r\n\r\nexport const getAdjustedDate = ({ dateUtc, format = null, adjustForDSL = false }) => {\r\n const isTodayDLS = moment().isDST();\r\n const isDateDLS = moment(dateUtc).isDST();\r\n\r\n const shouldAddHour = (isTodayDLS && !isDateDLS && !adjustForDSL) || (!isTodayDLS && isDateDLS && adjustForDSL);\r\n const shouldSubtractHour = (!isTodayDLS && isDateDLS && !adjustForDSL) || (isTodayDLS && !isDateDLS && adjustForDSL);\r\n\r\n let date;\r\n\r\n if (shouldAddHour) {\r\n date = moment.utc(dateUtc).local().add(1, 'hour');\r\n } else if (shouldSubtractHour) {\r\n date = moment.utc(dateUtc).local().subtract(1, 'hour');\r\n } else {\r\n date = moment.utc(dateUtc).local();\r\n }\r\n\r\n if (format) {\r\n return date.format(format);\r\n }\r\n\r\n return date;\r\n};\r\n\r\nexport const getFormattedUtrRange = (minUtr, maxUtr) => {\r\n const isUtrMinInteger = Number.isInteger(minUtr);\r\n const isUtrMaxInteger = Number.isInteger(maxUtr);\r\n const minRange = isUtrMinInteger ? minUtr.toFixed(1) : minUtr;\r\n const maxRange = isUtrMaxInteger ? maxUtr.toFixed(1) : maxUtr;\r\n\r\n return `${minRange} - ${maxRange}`;\r\n};\r\n\r\nexport const utrpSliderDisplay = (value) => {\r\n const startRange = value[0];\r\n const endRange = value[1];\r\n if (startRange && endRange) {\r\n return `${utrpSliderDictionary[startRange]} to ${utrpSliderDictionary[endRange]}`;\r\n }\r\n return '';\r\n};\r\n\r\nexport const getConferenceTableHeadCells = (sportsTypeId) => {\r\n const rangeLabel = sportsTypeId === SportTypeIds.TENNIS ? 'UTR' : 'UTRP';\r\n return [\r\n { id: 'name', label: 'Conference Name' },\r\n { id: 'age', label: 'Age' },\r\n { id: 'gender', label: 'Gender' },\r\n { id: 'range', label: rangeLabel },\r\n { id: 'empty' },\r\n ];\r\n};\r\n\r\nexport const getFormattedConferenceRange = ({ conferenceRatings, sportTypeId, showRatingPrefix = false }) => {\r\n const { ratingMin, ratingMax } = conferenceRatings || {};\r\n\r\n if (sportTypeId && ratingMin && ratingMax) {\r\n const prefix = sportTypeId === TENNIS ? 'UTR' : 'UTRP';\r\n const range = getFormattedUtrRange(ratingMin, ratingMax);\r\n return showRatingPrefix ? `${prefix} ${range}` : range;\r\n }\r\n\r\n return '';\r\n};\r\n","import config from '../config';\r\nimport { ageDisplay, getAgeKeys, getFormattedConferenceRange } from './display';\r\nimport { DefaultSliderValues, SortType } from './constants';\r\nimport { genderTypes, PlayerAvailabilityStatusTypes, LeagueTypes, LeagueTierTypes, SportTypeIds, SliderTypes } from './types';\r\n\r\nconst { PICKLEBALL, TENNIS } = SportTypeIds;\r\nconst { UT_ADULT_TEAM_PICKLEBALL, UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_TENNIS } = LeagueTypes;\r\n\r\nexport const messageUser = (memberId, displayName) => {\r\n window.open(`${config.appHost}/inbox?rid=${memberId}&rname=${displayName}`, '_blank').focus();\r\n};\r\n\r\nexport const formatImageSizesByType = ({ baseUrl, imageSrc, imageType }) => {\r\n return `${baseUrl}${imageSrc}?size=1X&type=${imageType} 1x,\r\n ${baseUrl}${imageSrc}?size=2X&type=${imageType} 2x,\r\n ${baseUrl}${imageSrc}?size=3X&type=${imageType} 3x`;\r\n};\r\n\r\nexport const formatConferencesForTable = (conferences, sportTypeId) => {\r\n return conferences.map((conference) => {\r\n const { id, name, genderTypeId, minAge, maxAge, conferenceRatings } = conference;\r\n const genderType = genderTypes.find((gender) => gender.id === genderTypeId);\r\n const ageKeys = getAgeKeys([minAge, maxAge]);\r\n const age = ageDisplay(ageKeys);\r\n\r\n return {\r\n id,\r\n name,\r\n age,\r\n gender: genderType?.description,\r\n range: getFormattedConferenceRange({ conferenceRatings, sportTypeId })\r\n };\r\n });\r\n};\r\n\r\nexport const getAlternateIds = (alternates) => {\r\n return alternates?.filter((alternate) => alternate?.teamMemberId).map((alternate) => alternate.teamMemberId);\r\n};\r\n\r\nexport const getSinglesUtr = (utrRating) => {\r\n if (utrRating && typeof utrRating === 'string' && utrRating?.includes('-')) {\r\n const array = utrRating.split('-');\r\n const numArray = array?.map(Number);\r\n const numAverage = numArray?.reduce((accumulator, currentValue) => (accumulator + currentValue) / numArray.length);\r\n return numAverage;\r\n }\r\n return parseFloat(utrRating);\r\n};\r\n\r\nexport const getPowerIndex = (powerRating, isEstimated) => {\r\n let rating;\r\n if (isEstimated && powerRating) {\r\n rating = `${powerRating} Est`;\r\n } else if (powerRating) {\r\n rating = `${powerRating}`;\r\n } else {\r\n rating = '—';\r\n }\r\n return rating;\r\n};\r\n\r\nexport const getPlayerAvailabilityStatus = (status) => {\r\n const { NOT_SET } = PlayerAvailabilityStatusTypes;\r\n let availabilityStatus = status;\r\n if (!status) {\r\n availabilityStatus = NOT_SET;\r\n }\r\n return availabilityStatus;\r\n};\r\n\r\nexport const sortPlayersByAvailability = (players) => [...players].sort(function (a, b) {\r\n return getPlayerAvailabilityStatus(a?.playerAvailabilityStatusTypeId) - getPlayerAvailabilityStatus(b?.playerAvailabilityStatusTypeId) ||\r\n getSinglesUtr(b?.singlesUtr) - getSinglesUtr(a?.singlesUtr) ||\r\n b?.utrSingles - a?.utrSingles;\r\n});\r\n\r\nexport const validateLineups = (lineupData) => {\r\n let error = null;\r\n const { lineups, position1TeamAlternatePlayers, position2TeamAlternatePlayers } = lineupData;\r\n\r\n lineups.forEach((lineup) => {\r\n const { position1, position2 } = lineup || {};\r\n const { player1TeamMemberId: position1Player1Id, player2TeamMemberId: position1Player2Id } = position1 || {};\r\n const { player1TeamMemberId: position2Player1Id, player2TeamMemberId: position2Player2Id } = position2 || {};\r\n\r\n const playerIds = [position1Player1Id, position1Player2Id, position2Player1Id, position2Player2Id];\r\n const filteredIds = playerIds.filter((id) => id);\r\n const hasDuplicatePlayers = new Set(filteredIds).size !== filteredIds.length;\r\n\r\n if (hasDuplicatePlayers) {\r\n error = `The same player appears twice in ${lineup?.isDouble ? 'Doubles' : 'Singles'} Line Match ${lineup?.lineupPosition}`;\r\n }\r\n });\r\n\r\n const hasDuplicatePosition1Alternates = new Set(position1TeamAlternatePlayers?.teamMemberIds).size !== position1TeamAlternatePlayers?.teamMemberIds?.length;\r\n const hasDuplicatePosition2Alternates = new Set(position2TeamAlternatePlayers?.teamMemberIds).size !== position2TeamAlternatePlayers?.teamMemberIds?.length;\r\n\r\n if (hasDuplicatePosition1Alternates || hasDuplicatePosition2Alternates) {\r\n error = 'A player can only appear once as an alternate';\r\n }\r\n\r\n return error;\r\n};\r\n\r\nexport const getPlayerAvatarImage = (profileImage) => {\r\n const { cdnUrl } = config;\r\n return `${cdnUrl}/v1/player/${profileImage}`;\r\n};\r\n\r\nexport const getPlayerProfileUrl = (playerId) => {\r\n return `${config.appHost}/profiles/${playerId}`;\r\n};\r\n\r\nexport const mapMembersForPlayerSearch = (members) => {\r\n return members.map((member) => {\r\n const { firstName, lastName, memberId, location, id } = member;\r\n return {\r\n id,\r\n displayName: `${firstName} ${lastName}`,\r\n location: {\r\n display: location?.placeName || location?.formattedAddress,\r\n },\r\n memberId,\r\n playerProfileImages: [],\r\n };\r\n });\r\n};\r\n\r\nconst descendingComparator = (a, b, orderBy) => {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n};\r\n\r\nexport const getComparator = (order, orderBy) => {\r\n return order === SortType.DESC ? (a, b) => descendingComparator(a, b, orderBy) : (a, b) => -descendingComparator(a, b, orderBy);\r\n};\r\n\r\nexport const getNewRoundNumberOptions = (rounds) => {\r\n const options = [];\r\n options.push({ description: 'Before Round 1', id: 1 });\r\n for (let i = 0; i < rounds.length; i += 1) {\r\n options.push({ description: `After Round ${i + 1}`, id: i + 2 });\r\n }\r\n return options;\r\n};\r\n\r\nexport const getLeagueTypeIdForTier = (leagueTierTypes, sportTypeId) => {\r\n const { ADULT, JUNIOR } = LeagueTierTypes;\r\n\r\n if (leagueTierTypes?.length > 1 || !leagueTierTypes?.length) {\r\n if (sportTypeId === PICKLEBALL) {\r\n return [UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL];\r\n }\r\n if (sportTypeId === TENNIS) {\r\n return [UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS];\r\n }\r\n } else {\r\n if (leagueTierTypes[0] === ADULT && sportTypeId === TENNIS) {\r\n return [UT_ADULT_TEAM_TENNIS];\r\n }\r\n if (leagueTierTypes[0] === JUNIOR && sportTypeId === TENNIS) {\r\n return [UT_JUNIOR_TEAM_TENNIS];\r\n }\r\n if (leagueTierTypes[0] === ADULT && sportTypeId === PICKLEBALL) {\r\n return [UT_ADULT_TEAM_PICKLEBALL];\r\n }\r\n if (leagueTierTypes[0] === JUNIOR && sportTypeId === PICKLEBALL) {\r\n return [UT_JUNIOR_TEAM_PICKLEBALL];\r\n }\r\n }\r\n\r\n return [];\r\n};\r\n\r\nexport const getRangeForSlider = (sliderType) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n const UTPRRanges = {\r\n P1: 1,\r\n P2: 2,\r\n P3: 3,\r\n P4: 4\r\n };\r\n\r\n const { ageRange, utrRange } = DefaultSliderValues;\r\n switch (sliderType) {\r\n case AGE:\r\n return ageRange;\r\n case UTR:\r\n return utrRange;\r\n case UTRP:\r\n // slider value will be updated with DefaultSliderValues.utrpRange when search endpoint is updated with new conferenceRatings response\r\n return [UTPRRanges.P1, UTPRRanges.P4];\r\n default:\r\n return [];\r\n }\r\n};\r\n\r\nexport const getSportTypeForLeagueId = (id) => {\r\n const isTennisLeague = id === UT_ADULT_TEAM_TENNIS || id === UT_JUNIOR_TEAM_TENNIS;\r\n const isPickleballLeague = id === UT_JUNIOR_TEAM_PICKLEBALL || id === UT_ADULT_TEAM_PICKLEBALL;\r\n\r\n if (isTennisLeague) {\r\n return TENNIS;\r\n }\r\n\r\n if (isPickleballLeague) {\r\n return PICKLEBALL;\r\n }\r\n};\r\n","import React from 'react';\r\nimport Img from '../Img';\r\nimport { formatImageSizesByType } from '../../utils/helpers';\r\n\r\nimport styles from './backgroundImage.module.scss';\r\n\r\nconst BackgroundImage = ({ baseUrl, defaultImage, imageType, images, extraCls, children, parentStylesClass, style, useRawSrcSet }) => {\r\n const imageSrc = images.default;\r\n const formattedImageSizes = formatImageSizesByType({ baseUrl, imageSrc, imageType });\r\n let imgSrcUrl;\r\n\r\n if (imageSrc) {\r\n imgSrcUrl = `${baseUrl}${imageSrc}`;\r\n } else {\r\n imgSrcUrl = defaultImage;\r\n }\r\n\r\n const handleUpdateImage = (imageRef) => {\r\n const img = imageRef;\r\n if (img) {\r\n const src = img.currentSrc ? img.currentSrc : img.src;\r\n img.parentNode.style.backgroundImage = `url(\"${src}\")`;\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default BackgroundImage;\r\n","/* eslint-disable global-require */\r\n/* eslint-disable no-eval */\r\n/* eslint-disable eqeqeq */\r\nimport Rox from 'rox-browser';\r\nimport { getFlagsContext } from './utils/rollout';\r\n\r\nclass UtrRoxFlag extends Rox.Flag {\r\n isEnabled(user) {\r\n return super.isEnabled(getFlagsContext(user));\r\n }\r\n}\r\n\r\nexport default {\r\n messaging: new UtrRoxFlag(),\r\n personalClub: new UtrRoxFlag(),\r\n createPlayerGroupMainMenu: new UtrRoxFlag(),\r\n ratingsListFlag: new UtrRoxFlag(),\r\n};\r\n","import React from 'react';\r\nimport flagContainer from '../../flagContainer';\r\n\r\nconst withFeatureFlags = (WrappedComponent) => {\r\n return (props) => ;\r\n};\r\n\r\nexport default withFeatureFlags;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n sideMenuOpen: false,\r\n};\r\n\r\nconst uiSlice = createSlice({\r\n name: 'ui',\r\n initialState,\r\n reducers: {\r\n setSideMenu(state, action) {\r\n state.sideMenuOpen = action.payload;\r\n },\r\n toggleSideMenu(state) {\r\n state.sideMenuOpen = !state.sideMenuOpen;\r\n },\r\n },\r\n});\r\n\r\nexport const { setSideMenu, toggleSideMenu } = uiSlice.actions;\r\nexport default uiSlice.reducer;\r\n","import React from 'react';\r\n\r\nconst Description = ({ descriptionItems, noEllipsis }) => {\r\n let description;\r\n const createDescriptionFromArray = (descriptionArray) => {\r\n return descriptionArray.filter(Boolean).join(' \\u2022 ');\r\n };\r\n\r\n if (typeof descriptionItems === 'string' || typeof descriptionItems === 'number') {\r\n description = descriptionItems;\r\n } else if (typeof descriptionItems === 'object') {\r\n description = createDescriptionFromArray(descriptionItems);\r\n }\r\n\r\n return noEllipsis ? (\r\n {description}\r\n ) : (\r\n {description}\r\n );\r\n};\r\n\r\nexport default Description;\r\n","export default __webpack_public_path__ + \"static/media/icon-search.9f01af10.svg\";","export default __webpack_public_path__ + \"static/media/icon-verified-blue.c9b19813.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-player.922c1cc4.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-club.80fda859.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-college.5087be21.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-event.8d53c48f.svg\";","export default __webpack_public_path__ + \"static/media/icon-avatar-school.faf79fc7.svg\";","/* eslint-disable react/forbid-prop-types */\r\nimport React from 'react';\r\nimport Icon from '@mui/material/Icon';\r\n\r\nimport { utrIconPropTypes, deafultUtrIconPropTypes } from '../../../utils/proptypes';\r\n\r\nconst UtrIcon = (props) => {\r\n const { icon, size, alt, style, clickable, onClick } = props;\r\n if (clickable) {\r\n style.cursor = 'pointer';\r\n }\r\n return (\r\n \r\n {alt}\r\n \r\n );\r\n};\r\n\r\nUtrIcon.propTypes = {\r\n ...utrIconPropTypes\r\n};\r\n\r\nUtrIcon.defaultProps = {\r\n ...deafultUtrIconPropTypes\r\n};\r\n\r\nexport default UtrIcon;\r\n","import { cloneDeep } from 'lodash';\r\n\r\nconst _ = { cloneDeep };\r\n\r\nexport const ratingStatusPopUpData = {\r\n rated: {\r\n title: 'Established Rating',\r\n description:\r\n 'This player has played enough matches for their rating to be reliable. It usually takes 6-10 matches to get a reliable rating, depending on the reliability of your opponent and how close the score was.',\r\n },\r\n unrated: {\r\n title: 'Unrated',\r\n description: 'This player has not played any matches or had a rating in the past year.',\r\n },\r\n inactive: {\r\n title: 'Inactive Rating',\r\n description:\r\n 'This player has not played any matches in the past 12 months. Their rating is the last time they had a rating on UTR.',\r\n },\r\n projected: {\r\n title: 'Projected Rating',\r\n description:\r\n 'This player hasn’t played enough matches in the last 12 months for their rating to be reliable. It usually takes 6-10 matches to get a reliable rating, depending on the reliability of your opponent and how close the score was. As the player plays more matches, the grey reliability bar will fill up around the projected rating. Once it is full, the rating will become reliable and turn from grey to a colored circle.',\r\n },\r\n};\r\n\r\nconst ratedStrings = ['Projected', 'Inactive', 'Rated'];\r\n\r\nexport const getEventDateString = (eventSchedule, showYear) => {\r\n const { eventStartDate, eventEndDate, eventStartMonth, eventEndMonth, eventStartYear, eventEndYear } = eventSchedule;\r\n if (eventStartMonth === eventEndMonth) {\r\n if (eventStartDate === eventEndDate) {\r\n return `${eventStartMonth} ${eventStartDate}${showYear ? `, ${eventStartYear}` : ''}`;\r\n }\r\n return `${eventStartMonth} ${eventStartDate} - ${eventEndDate}${showYear ? `, ${eventStartYear}` : ''}`;\r\n }\r\n return `${eventStartMonth} ${eventStartDate}${showYear ? `, ${eventStartYear}` : ''} - ${eventEndMonth} ${eventEndDate}${\r\n showYear ? `, ${eventEndYear}` : ''\r\n }`;\r\n};\r\n\r\nconst getRatingStatus = (ratingStatus, ratingValue) => {\r\n if (ratingValue && ratingValue > 0 && ratedStrings.includes(ratingStatus)) {\r\n return ratingStatus;\r\n }\r\n /*\r\n If rating is 0 even though the rating status is available make it unrated\r\n and rating status is unrated consider it as unrated and then check for projected status if rating exists\r\n */\r\n if (ratingValue && ratingValue > 0) {\r\n // If unrated and there is a rating condider the rating to be projected\r\n return 'Projected';\r\n }\r\n return 'Unrated';\r\n};\r\n\r\nconst getRatingProgress = (ratingStatus, ratingValue, ratingProgress) => {\r\n if (ratingValue && ratingValue > 0 && ratedStrings.includes(ratingStatus)) {\r\n return ratingProgress;\r\n }\r\n if (ratingValue && ratingValue > 0) {\r\n return 0;\r\n }\r\n return ratingProgress;\r\n};\r\n\r\nexport const getRatingDetails = (rating, userIsPowered, showDecimals) => {\r\n const object = {};\r\n let utrValue;\r\n let verifiedRating = false;\r\n\r\n switch (rating.ratingChoice) {\r\n case 'SinglesUTR':\r\n utrValue = rating.myUtrSingles;\r\n object.status = getRatingStatus(rating.myUtrStatusSingles, rating.myUtrSingles);\r\n object.matchType = 'singles';\r\n object.sortValue = object.status === 'Rated' ? 3 : 2;\r\n object.progress = getRatingProgress(rating.myUtrStatusSingles, rating.myUtrSingles, rating.myUtrProgressSingles);\r\n break;\r\n case 'DoublesUTR':\r\n utrValue = rating.myUtrDoubles;\r\n object.status = getRatingStatus(rating.myUtrStatusDoubles, rating.myUtrDoubles);\r\n object.matchType = 'doubles';\r\n object.sortValue = object.status === 'Rated' ? 3 : 2;\r\n object.progress = getRatingProgress(rating.myUtrStatusDoubles, rating.myUtrDoubles, rating.myUtrProgressDoubles);\r\n break;\r\n case 'VerifiedDoublesUTR':\r\n utrValue = rating.doublesUtr;\r\n object.status = getRatingStatus(rating.ratingStatusDoubles, rating.doublesUtr);\r\n verifiedRating = true;\r\n object.matchType = 'doubles';\r\n object.sortValue = object.status === 'Rated' ? 5 : 4;\r\n object.progress = getRatingProgress(rating.ratingStatusDoubles, rating.doublesUtr, rating.ratingProgressDoubles);\r\n break;\r\n default:\r\n utrValue = rating.singlesUtr;\r\n object.status = getRatingStatus(rating.ratingStatusSingles, rating.singlesUtr);\r\n verifiedRating = true;\r\n object.matchType = 'singles';\r\n object.sortValue = object.status === 'Rated' ? 5 : 4;\r\n object.progress = getRatingProgress(rating.ratingStatusSingles, rating.singlesUtr, rating.ratingProgressSingles);\r\n break;\r\n }\r\n if (utrValue && typeof utrValue === 'string') {\r\n utrValue = parseFloat(utrValue);\r\n }\r\n\r\n // Text to display what kind of a Rating it is\r\n if (object.status === 'Projected') {\r\n object.utrType = 'UTR (P)';\r\n } else {\r\n object.utrType = 'UTR';\r\n }\r\n\r\n // Title text i.e text displayed on Hover\r\n if (object.status === 'Projected') {\r\n object.title = 'Projected';\r\n }\r\n\r\n object.actualValue = utrValue;\r\n // Display UR for all Unrated conditions\r\n if (!utrValue || utrValue === 0 || object.status === 'Unrated') {\r\n object.value = 'UR';\r\n object.sortValue = 1;\r\n } else {\r\n object.value = `${utrValue.toFixed(2)}`;\r\n if (userIsPowered || showDecimals) {\r\n object.value = `${utrValue.toFixed(2)}`;\r\n } else {\r\n object.value = `${Math.round(utrValue)}`;\r\n }\r\n }\r\n\r\n // Get number value of rating\r\n if (object.value !== 'UR') {\r\n object.ratingNumber = `${parseInt(object.value)}`;\r\n } else {\r\n object.ratingNumber = object.value;\r\n }\r\n\r\n // Get Decimal value of rating\r\n const ratingArray = object.value.split('.');\r\n if (ratingArray.length > 1) {\r\n [, object.ratingDecimal] = ratingArray;\r\n } else {\r\n object.ratingDecimal = '';\r\n }\r\n\r\n // Logic to show verified match icon\r\n object.verified = verifiedRating;\r\n\r\n // Info PopUp Data\r\n object.infoTitle = ratingStatusPopUpData[object.status.toLowerCase()].title;\r\n object.infoDescription = ratingStatusPopUpData[object.status.toLowerCase()].description;\r\n\r\n return object;\r\n};\r\n\r\nexport const updateRatingObject = ({ player, ratingType, utrType }) => {\r\n const unDisplayedStatusStatus = ['Inactive', 'Unrated'];\r\n const newRatingObject = player ? _.cloneDeep(player) : {};\r\n\r\n // force singles or doubles return\r\n if (ratingType && utrType) {\r\n if (ratingType === 'singles') {\r\n if (utrType === 'sanctioned') {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n }\r\n } else if (utrType === 'sanctioned') {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n }\r\n } else if (ratingType) {\r\n // only return singles value\r\n if (ratingType === 'singles') {\r\n if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n }\r\n // only return doubles value\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n }\r\n } else if (utrType) {\r\n // only return verified rating\r\n if (utrType === 'sanctioned') {\r\n if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n if (player.singlesUtr && player.singlesUtr > 0 && player.ratingStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for verified singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.ratingStatusSingles = 'Unrated';\r\n newRatingObject.singlesUtr = 0;\r\n }\r\n }\r\n // only return unverified rating\r\n } else if (player.myUtrSingles && player.myUtrSingles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusSingles)) {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n } else if (player.myUtrDoubles && player.myUtrDoubles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n if (player.myUtrSingles && player.myUtrSingles > 0 && player.myUtrStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.myUtrStatusSingles = 'Unrated';\r\n newRatingObject.myUtrSingles = 0;\r\n }\r\n }\r\n\r\n // return the most relevant rating (any)\r\n // if there is no forced display, use player perference\r\n } else if (player.ratingChoice) {\r\n // If there is a reating choice no updation needed\r\n // otherwise show Rated or Projected rating if exists in the priority order of verifiedSingles, verifiedDoubles, myutrSingles and myUtrDoubles\r\n /*\r\n Checking with statuses of 'Inactive' and 'Unrated' since status null condition with a rating should be treated as Projected rating in getRatingDetails Method\r\n */\r\n } else if (player.singlesUtr && player.singlesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusSingles)) {\r\n newRatingObject.ratingChoice = 'VerifiedSinglesUTR';\r\n } else if (player.doublesUtr && player.doublesUtr > 0 && !unDisplayedStatusStatus.includes(player.ratingStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'VerifiedDoublesUTR';\r\n } else if (player.myUtrSingles && player.myUtrSingles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusSingles)) {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n } else if (player.myUtrDoubles && player.myUtrDoubles > 0 && !unDisplayedStatusStatus.includes(player.myUtrStatusDoubles)) {\r\n newRatingObject.ratingChoice = 'DoublesUTR';\r\n } else {\r\n newRatingObject.ratingChoice = 'SinglesUTR';\r\n if (player.myUtrSingles && player.myUtrSingles > 0 && player.myUtrStatusSingles === 'Inactive') {\r\n // Do nothing since we need to show inactive rating for singles\r\n } else {\r\n // SHow Unrated\r\n newRatingObject.myUtrStatusSingles = 'Unrated';\r\n newRatingObject.myUtrSingles = 0;\r\n }\r\n }\r\n return newRatingObject;\r\n};\r\n","export const gtag = (name, props) => {\r\n if (window?.dataLayer) {\r\n window.dataLayer.push({\r\n event: name,\r\n ...props,\r\n });\r\n }\r\n};\r\n\r\nexport const getClickAttrs = ({ context, location, category }) => {\r\n const attrs = {};\r\n if (category) {\r\n attrs['data-category'] = category;\r\n }\r\n if (context) {\r\n attrs['data-context'] = context;\r\n }\r\n if (location) {\r\n attrs['data-location'] = location;\r\n }\r\n return attrs;\r\n};\r\n","import { LeagueTypes } from '../../utils/types';\r\n\r\nconst { UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS, UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL } = LeagueTypes;\r\n\r\nexport const tennisGlobalNavItems = [\r\n {\r\n label: 'Flex leagues',\r\n filterType: 'flexLeagues',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Adult Team Tennis',\r\n filterType: UT_ADULT_TEAM_TENNIS,\r\n sportType: 'tennis',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'Junior Team Tennis',\r\n filterType: UT_JUNIOR_TEAM_TENNIS,\r\n sportType: 'tennis',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'UTR pro tennis tour',\r\n filterType: 'proTennisTour',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Paid hits',\r\n filterType: 'paidHits',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Paid hitters',\r\n filterType: 'paidHitClubs',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Junior circuits',\r\n filterType: 'juniorCircuits',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'College circuits',\r\n filterType: 'collegeCircuits',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Junior regionals',\r\n filterType: 'juniorRegionals',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Camps',\r\n filterType: 'camps',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Clubs',\r\n filterType: 'clubs',\r\n sportType: 'tennis,pickleball',\r\n },\r\n {\r\n label: 'High schools',\r\n filterType: 'highSchools',\r\n sportType: 'tennis',\r\n },\r\n {\r\n label: 'Colleges',\r\n filterType: 'colleges',\r\n sportType: 'tennis',\r\n },\r\n];\r\n\r\nexport const pickleballGlobalNavItems = [\r\n {\r\n label: 'Flex leagues',\r\n filterType: 'flexLeagues',\r\n sportType: 'pickleball',\r\n },\r\n {\r\n label: 'Golden Ticket',\r\n filterType: 'events',\r\n data: { 'Golden Ticket': true },\r\n sportType: 'pickleball',\r\n },\r\n {\r\n label: 'Adult team pickleball',\r\n filterType: UT_ADULT_TEAM_PICKLEBALL,\r\n sportType: 'pickleball',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'Junior team pickleball',\r\n filterType: UT_JUNIOR_TEAM_PICKLEBALL,\r\n sportType: 'pickleball',\r\n isLeagues: true,\r\n },\r\n {\r\n label: 'Clubs',\r\n filterType: 'clubs',\r\n sportType: 'tennis,pickleball',\r\n },\r\n];\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable no-undef */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable class-methods-use-this */\r\n/* eslint-disable react/no-string-refs */\r\nimport React, { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport 'url-search-params-polyfill';\r\nimport { CancelToken, isCancel } from 'axios';\r\n\r\nimport { GlobalNavigation } from '@universal-tennis/ui-shared';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport BackgroundImage from '../BackgroundImage';\r\nimport Description from './Description';\r\nimport Img from '../Img';\r\nimport SearchIcon from '../../assets/icons/icon-search.svg';\r\nimport VerifiedIcon from '../../assets/icons/icon-verified-blue.svg';\r\nimport PlayerIcon from '../../assets/icons/icon-avatar-player.svg';\r\nimport ClubIcon from '../../assets/icons/icon-avatar-club.svg';\r\nimport CollegeIcon from '../../assets/icons/icon-avatar-college.svg';\r\nimport EventIcon from '../../assets/icons/icon-avatar-event.svg';\r\nimport SchoolIcon from '../../assets/icons/icon-avatar-school.svg';\r\n\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport config from '../../config';\r\n\r\nimport { getApiAxiosInstance } from '../../utils/network';\r\nimport { getEventDateString, getRatingDetails, updateRatingObject } from './utils';\r\nimport { useStatsig } from '../../hooks/StatsigContextProvider';\r\n\r\nimport styles from './globalSearch.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\nimport { pickleballGlobalNavItems, tennisGlobalNavItems } from './globalSearchDictionary';\r\nimport { LeagueTypes } from '../../utils/types';\r\n\r\nconst { appHost, apiHost } = config;\r\nconst defaultSearchState = {\r\n clubs: { total: 0, hits: [] },\r\n colleges: { total: 0, hits: [] },\r\n events: { total: 0, hits: [] },\r\n highSchools: { total: 0, hits: [] },\r\n players: { total: 0, hits: [] },\r\n};\r\n\r\nconst GlobalSearch = () => {\r\n const { statsig } = useStatsig();\r\n const navigate = useNavigate();\r\n const cancelRef = useRef(null);\r\n const wrapperRef = useRef(null);\r\n const queryRef = useRef(null);\r\n const { preferences } = useSelector((state) => state?.user);\r\n const { UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS, UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL } = LeagueTypes;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [showDropDown, setShowDropDown] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [hasSearched, setHasSearched] = useState(false);\r\n const [searchState, setSearchState] = useState(defaultSearchState);\r\n const maxResultsForSection = 4;\r\n const { clubs, colleges, events, highSchools, players } = searchState;\r\n const isAdultTeamPickleballEnabled = statsig?.featureGates?.adultTeamPickleball;\r\n const isJuniorTeamPickleballEnabled = statsig?.featureGates?.juniorTeamPickleball;\r\n const isGlobalDropdownV2Enabled = statsig?.featureGates?.globalDropdownV2;\r\n\r\n const hasNoResults =\r\n clubs.total === 0 &&\r\n colleges.total === 0 &&\r\n events.total === 0 &&\r\n highSchools.total === 0 &&\r\n players.total === 0 &&\r\n !isLoading &&\r\n hasSearched &&\r\n searchQuery;\r\n\r\n const hasSomeResults =\r\n clubs.total > 0 || colleges.total > 0 || events.total > 0 || highSchools.total > 0 || players.total > 0 || isLoading;\r\n\r\n useEffect(() => {\r\n const getSearchResults = async () => {\r\n const axiosInstance = getApiAxiosInstance();\r\n const params = new URLSearchParams();\r\n\r\n params.append('query', searchQuery);\r\n params.append('top', 10);\r\n params.append('skip', 0);\r\n params.append('schoolClubSearch', true);\r\n\r\n const searchUrl = `${apiHost}/v2/search?${params}`;\r\n const cancel = cancelRef.current;\r\n\r\n if (cancel) {\r\n cancel();\r\n }\r\n\r\n const response = await axiosInstance\r\n .get(searchUrl, {\r\n cancelToken: new CancelToken((c) => {\r\n cancelRef.current = c;\r\n }),\r\n params,\r\n })\r\n .catch((error) => {\r\n if (!isCancel(error)) {\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n if (response?.data) {\r\n const { data } = response;\r\n const stateToSet = {\r\n clubs: data?.clubs,\r\n events: data?.events,\r\n players: data?.players,\r\n highSchools: data?.highSchools,\r\n colleges: data?.highSchools,\r\n };\r\n setSearchState(stateToSet);\r\n setIsLoading(false);\r\n setHasSearched(true);\r\n }\r\n };\r\n if (isLoading && !!searchQuery.length) {\r\n getSearchResults();\r\n }\r\n }, [isLoading, searchQuery]);\r\n\r\n const handleClickOutside = useCallback((event) => {\r\n if (wrapperRef && !wrapperRef.current.contains(event.target)) {\r\n setShowDropDown(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [handleClickOutside]);\r\n\r\n const handleOnFocus = () => {\r\n setShowDropDown(true);\r\n queryRef.current.value = searchQuery;\r\n };\r\n\r\n const handleKeyUp = (event) => {\r\n const query = event.target.value;\r\n\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n };\r\n\r\n const handlePaste = (event) => {\r\n const { target } = event;\r\n setTimeout(() => {\r\n const query = target.value.trim();\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n }, 200);\r\n };\r\n\r\n const handleSeeAllClick = async (event, typeFilter) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n setShowDropDown(false);\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (searchQuery) {\r\n params.append('query', searchQuery);\r\n }\r\n params.append('utrMin', 1);\r\n params.append('utrMax', 16);\r\n params.append('utrType', 'verified');\r\n params.append('utrTeamType', 'singles');\r\n params.append('utrFitPosition', 6);\r\n params.append('type', typeFilter);\r\n\r\n window.location = `${appHost}/search?${params}`;\r\n };\r\n\r\n const handleClearClick = () => {\r\n queryRef.current.value = '';\r\n setSearchState(defaultSearchState);\r\n setSearchQuery('');\r\n setShowDropDown(false);\r\n setHasSearched(false);\r\n\r\n setTimeout(() => {\r\n queryRef.current.focus();\r\n }, 200);\r\n };\r\n\r\n const handlePlayerClick = (player) => {\r\n window.location = `${appHost}/profiles/${player.id}`;\r\n };\r\n\r\n const handleEventClick = (event) => {\r\n window.location = `${appHost}/events/${event.id}`;\r\n };\r\n\r\n const handleClubClick = (club) => {\r\n window.location = `${appHost}/clubs/${club.id}`;\r\n };\r\n\r\n const handleTypeFilterClick = (typeFilter) => {\r\n setShowDropDown(false);\r\n window.location = `${appHost}/search?utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter}`;\r\n };\r\n\r\n const handleTeamLeagueSearchClick = (leagueId) => (event) => {\r\n event.preventDefault();\r\n setShowDropDown(false);\r\n navigate(`/search/league/${leagueId}`);\r\n };\r\n\r\n const handleTypeFilterClickV2 = (typeFilter) => {\r\n setShowDropDown(false);\r\n if (typeFilter.label === 'Golden Ticket') {\r\n window.location = `${appHost}/search?sportTypes=${typeFilter.sportType}&tours=${typeFilter.label}&utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter.filterType}`;\r\n } else {\r\n window.location = `${appHost}/search?sportTypes=${typeFilter.sportType}&utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter.filterType}`;\r\n }\r\n };\r\n\r\n const handleTeamLeagueSearchClickV2 = (leagueId) => {\r\n setShowDropDown(false);\r\n navigate(`/search/league/${leagueId.filterType}`);\r\n };\r\n\r\n const renderPlayer = (player, index) => {\r\n const { displayName, descriptionShort, gender, location, playerProfileImages } = player;\r\n const userIsPowered = false;\r\n const rating = getRatingDetails(updateRatingObject({ player }), userIsPowered);\r\n let description = '';\r\n\r\n if (descriptionShort) {\r\n description = [descriptionShort];\r\n } else {\r\n description = location && location.display ? [location.display] : [];\r\n }\r\n const descriptionItems = [...(gender ? [gender.charAt(0)] : []), ...description];\r\n\r\n return (\r\n index < maxResultsForSection && (\r\n handlePlayerClick(player)}\r\n key={`p${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Player Clicked - playerId: ${player.id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n
\r\n {`${displayName} `}\r\n {rating.verified ? : ''}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderSchool = (schoolClub, index) => {\r\n const { id, name, location, profilePhotoUrl, isCollege } = schoolClub;\r\n const { displayName, shortName } = schoolClub.school;\r\n const photoUrl = profilePhotoUrl ? `/v1/club/${profilePhotoUrl}?variant=icon` : null;\r\n const descriptionItems = [...(location && location.display ? [location.display] : [])];\r\n const schoolName = name || displayName || shortName;\r\n return (\r\n index < maxResultsForSection && (\r\n \r\n
\r\n
\r\n {photoUrl ? (\r\n {\r\n e.target.src = '/img/v2/icons/icon-utr-logo.svg';\r\n e.target.srcset = '/img/v2/icons/icon-utr-logo.svg';\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

{schoolName}

\r\n

{schoolName}

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

{name}

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

{name}

\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderDropdown = () => {\r\n const hasQuery = !!searchQuery.length;\r\n const showTennisPills = !!preferences?.showTennisContent;\r\n const showPickleballPills = !!preferences?.showPickleballContent;\r\n return (\r\n
\r\n {isGlobalDropdownV2Enabled && !hasQuery && (\r\n \r\n \r\n \r\n )}\r\n
\r\n {!isGlobalDropdownV2Enabled && !hasQuery && (\r\n
\r\n
What are you looking for?
\r\n
\r\n handleTypeFilterClick('players')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Players`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Players\r\n \r\n handleTypeFilterClick('events')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `All Events`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n All Events\r\n \r\n {showTennisPills && (\r\n <>\r\n handleTypeFilterClick('flexLeagues')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Flex Leagues`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Flex Leagues\r\n \r\n \r\n Adult Team Tennis\r\n \r\n \r\n Junior Team Tennis\r\n \r\n handleTypeFilterClick('proTennisTour')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `UTR Pro Tennis Tour`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n UTR Pro Tennis Tour\r\n \r\n \r\n )}\r\n handleTypeFilterClick('clubs')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Clubs`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Clubs\r\n \r\n {showTennisPills && (\r\n <>\r\n handleTypeFilterClick('colleges')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Colleges`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Colleges\r\n \r\n handleTypeFilterClick('highSchools')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `High Schools`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n High Schools\r\n \r\n handleTypeFilterClick('paidHits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Paid Hits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Paid Hits\r\n \r\n handleTypeFilterClick(paidHitClubs)}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Paid Hitters`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Paid Hitters\r\n \r\n handleTypeFilterClick('juniorCircuits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Junior Circuits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Junior Circuits\r\n \r\n handleTypeFilterClick('collegeCircuits')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `College Circuits`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n College Circuits\r\n \r\n handleTypeFilterClick('juniorRegionals')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Junior Regionals`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Junior Regionals\r\n \r\n handleTypeFilterClick('camps')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Camps`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Camps\r\n \r\n \r\n )}\r\n {showPickleballPills && (\r\n <>\r\n handleTypeFilterClick('pickleball')}\r\n {...getClickAttrs({\r\n category: 'Global Search Category',\r\n context: `Pickleball`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n Pickleball\r\n \r\n {isAdultTeamPickleballEnabled && (\r\n \r\n Adult Team Pickleball\r\n \r\n )}\r\n {isJuniorTeamPickleballEnabled && (\r\n \r\n Junior Team Pickleball\r\n \r\n )}\r\n \r\n )}\r\n
\r\n
\r\n )};\r\n {hasNoResults &&
No Matches Found
}\r\n {hasSomeResults && (\r\n
\r\n {!!players?.hits.length && (\r\n <>\r\n
\r\n Players\r\n handleSeeAllClick(e, 'players')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all players: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {players.hits.map((player, i) => renderPlayer(player.source, i))}\r\n \r\n )}\r\n\r\n {!!events?.hits.length && (\r\n <>\r\n
\r\n Events\r\n handleSeeAllClick(e, 'events')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all events: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {events.hits.map((event, i) => renderEvent(event.source, i))}\r\n \r\n )}\r\n {!!colleges?.hits.length && (\r\n <>\r\n
\r\n Colleges\r\n handleSeeAllClick(e, 'colleges')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all colleges: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {colleges.hits.map((school, i) => renderSchool(school.source, i))}\r\n \r\n )}\r\n {!!highSchools?.hits.length && (\r\n <>\r\n
\r\n High Schools\r\n handleSeeAllClick(e, 'highSchools')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all high schools: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {highSchools.hits.map((school, i) => renderSchool(school.source, i))}\r\n \r\n )}\r\n {!!clubs?.hits.length && (\r\n <>\r\n
\r\n Clubs\r\n handleSeeAllClick(e, 'clubs')}\r\n {...getClickAttrs({\r\n category: 'Global Search See All',\r\n context: `See all clubs: ${searchQuery}`,\r\n location: 'Global search CTA',\r\n })}\r\n >\r\n SEE ALL \r\n \r\n
\r\n {clubs.hits.map((club, i) => renderClub(club.source, i))}\r\n \r\n )}\r\n {isLoading && (\r\n
\r\n \r\n Loading...\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {!!searchQuery.length && (\r\n handleClearClick()}\r\n />\r\n )}\r\n
\r\n {showDropDown &&
{renderDropdown()}
}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default GlobalSearch;\r\n","export default __webpack_public_path__ + \"static/media/icon-home.0dd65c30.svg\";","export default __webpack_public_path__ + \"static/media/icon-play.53107f02.svg\";","export default __webpack_public_path__ + \"static/media/icon-profile.acbf78e2.svg\";","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Rox from 'rox-browser';\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\n\r\nimport Img from '../Img';\r\nimport BackgroundImage from '../BackgroundImage';\r\nimport withFeatureFlags from '../hocs/withFeatureFlags';\r\nimport { toggleSideMenu } from '../../redux/uiSlice';\r\nimport GlobalSearch from '../GlobalSearch';\r\n\r\nimport HomeIcon from '../../assets/icons/icon-home.svg';\r\nimport PlayIcon from '../../assets/icons/icon-play.svg';\r\nimport ProfileIcon from '../../assets/icons/icon-profile.svg';\r\n\r\nimport config from '../../config';\r\nimport styles from './header.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\nimport { headerPropTypes } from '../../utils/proptypes';\r\n\r\nconst Header = (props) => {\r\n const { auth, featureFlags } = props;\r\n const showHeaderItems = !!auth.user;\r\n\r\n const handleLogoClick = () => {\r\n if (process.env.REACT_APP_CONFIG_SOURCE === 'prod') {\r\n window.open(`${config.appHost}`);\r\n } else {\r\n Rox.showOverrides();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n toggleSideMenu,\r\n};\r\n\r\nfunction mapStateToProps({ auth }) {\r\n return { auth };\r\n}\r\n\r\nHeader.propTypes = {\r\n ...headerPropTypes\r\n};\r\n\r\nexport default withFeatureFlags(connect(mapStateToProps, mapDispatchToProps)(Header));\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nconst Input = ({ control, name, hasError, label, isRequired = false, ...rest }) => (\r\n }\r\n />\r\n);\r\n\r\nexport default Input;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\n\r\nconst LoadingIndicator = ({ size = 60, backgroundColor, ...props }) => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default LoadingIndicator;\r\n","import React, { useState, useEffect, useMemo } from 'react';\r\nimport Box from '@mui/material/Box';\r\nimport TextField from '@mui/material/TextField';\r\nimport Autocomplete from '@mui/material/Autocomplete';\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn';\r\nimport Grid from '@mui/material/Grid';\r\nimport Typography from '@mui/material/Typography';\r\nimport throttle from 'lodash/throttle';\r\n\r\nconst parse = require('autosuggest-highlight/parse');\r\n\r\nconst autocompleteService = { current: null };\r\n\r\nconst LocationAutoComplete = ({ field, error, label, isRequired }) => {\r\n const [inputValue, setInputValue] = useState('');\r\n const [options, setOptions] = useState([]);\r\n\r\n const getPlacePredictions = useMemo(\r\n () =>\r\n throttle((request, callback) => {\r\n autocompleteService.current.getPlacePredictions(request, callback);\r\n }, 200),\r\n []\r\n );\r\n\r\n useEffect(() => {\r\n let active = true;\r\n\r\n if (!autocompleteService.current && window.google) {\r\n autocompleteService.current = new window.google.maps.places.AutocompleteService();\r\n }\r\n if (!autocompleteService.current) {\r\n return undefined;\r\n }\r\n\r\n if (inputValue === '') {\r\n setOptions([]);\r\n return undefined;\r\n }\r\n\r\n getPlacePredictions({ input: inputValue }, (results) => {\r\n if (active) {\r\n let newOptions = [];\r\n\r\n if (results) {\r\n newOptions = [...newOptions, ...results];\r\n }\r\n\r\n setOptions(newOptions);\r\n }\r\n });\r\n\r\n return () => {\r\n active = false;\r\n };\r\n }, [inputValue]);\r\n\r\n return (\r\n (typeof option === 'string' ? option : option.description)}\r\n filterOptions={(x) => x}\r\n options={[field.value, ...options]}\r\n autoComplete\r\n includeInputInList\r\n filterSelectedOptions\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n field.onChange(newValue);\r\n setOptions(newValue ? [newValue, ...options] : options);\r\n }\r\n }}\r\n onInputChange={(_, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n renderInput={(params) => }\r\n renderOption={(props, option) => {\r\n const matches = option.structured_formatting.main_text_matched_substrings;\r\n const parts = parse(\r\n option.structured_formatting.main_text,\r\n matches.map((match) => [match.offset, match.offset + match.length])\r\n );\r\n\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {parts.map((part, index) => (\r\n \r\n {part.text}\r\n \r\n ))}\r\n\r\n \r\n {option.structured_formatting.secondary_text}\r\n \r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default LocationAutoComplete;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport LocationAutoComplete from '../LocationAutoComplete';\r\n\r\nconst Location = ({ control, name, hasError, label, isRequired = false }) => (\r\n }\r\n />\r\n);\r\n\r\nexport default Location;\r\n","import React from 'react';\r\nimport MuiSlider from '@mui/material/Slider';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport { ageSliderDictionary } from '../../../utils/constants';\r\nimport { ageDisplay } from '../../../utils/display';\r\nimport { SliderTypes } from '../../../utils/types';\r\n\r\nconst Slider = ({ label, field, control, isLabelHidden, sliderType }) => {\r\n const { AGE, UTR, UTRP } = SliderTypes;\r\n\r\n const getSliderData = (value) => {\r\n let sliderLength;\r\n let display;\r\n let step = 1;\r\n\r\n switch (sliderType) {\r\n case AGE:\r\n sliderLength = Object.keys(ageSliderDictionary).length;\r\n display = ageDisplay(value);\r\n break;\r\n case UTR:\r\n sliderLength = 16;\r\n display = `${value[0]?.toFixed(1)} - ${value[1]?.toFixed(1)}`;\r\n step = 0.5;\r\n break;\r\n case UTRP:\r\n sliderLength = 10;\r\n display = `${value[0]?.toFixed(2)} - ${value[1]?.toFixed(2)}`;\r\n step = 0.5;\r\n break;\r\n default:\r\n sliderLength = '';\r\n display = '';\r\n }\r\n return { sliderLength, display, step };\r\n };\r\n\r\n return (\r\n {\r\n const { sliderLength, display, step } = getSliderData(value);\r\n return (\r\n
    \r\n
    \r\n \r\n
    {display}
    \r\n
    \r\n \r\n
    \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nexport default Slider;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport FormHelperText from '@mui/material/FormHelperText';\r\n\r\nconst Select = (props) => {\r\n const {\r\n control,\r\n isFullWidth,\r\n isRequired = false,\r\n label,\r\n labelId,\r\n name,\r\n options,\r\n hasError,\r\n helperText,\r\n onSelectChange,\r\n ...rest\r\n } = props;\r\n\r\n return (\r\n (\r\n \r\n {label}\r\n {\r\n onChange(value);\r\n if (onSelectChange) {\r\n onSelectChange(value);\r\n }\r\n }}\r\n fullWidth={isFullWidth}\r\n label={label}\r\n labelId={labelId}\r\n error={hasError}\r\n >\r\n {options.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n {hasError && helperText && {helperText}}\r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default Select;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport CircularProgress from '@mui/material/CircularProgress';\r\nimport LoadingButton from '@mui/lab/LoadingButton';\r\n\r\nimport { formSubmitButtonPropTypes, defaultFormSubmitButtonPropTypes } from '../../../utils/proptypes';\r\n\r\nconst FormSubmitButton = ({ label, isSubmitting, style }) => (\r\n \r\n }\r\n >\r\n {label}\r\n \r\n \r\n);\r\n\r\nFormSubmitButton.propTypes = {\r\n ...formSubmitButtonPropTypes\r\n};\r\n\r\nFormSubmitButton.defaultProps = {\r\n ...defaultFormSubmitButtonPropTypes\r\n};\r\n\r\nexport default FormSubmitButton;\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { CancelToken, isCancel } from 'axios';\r\n\r\nimport { Autocomplete, TextField, Grid, Typography } from '@mui/material';\r\n\r\nimport BackgroundImage from '../../BackgroundImage';\r\nimport { getApiAxiosInstance } from '../../../utils/network';\r\nimport { playerSearchPropTypes, defaultPlayerSearchPropTypes } from '../../../utils/proptypes';\r\nimport { useDebounce } from '../../../hooks/useDebounce';\r\n\r\nconst PlayerSearch = ({ isProPlayerSearch = false, searchMembersOnly = false, showPickleballContent = false, showTennisContent = false, onPlayerSelected, selectedPlayers = [], label, isRequired = false }) => {\r\n const cancelRef = useRef(null);\r\n const resultLimit = 10;\r\n const [query, setQuery] = useState('');\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [searchResults, setSearchResults] = useState([]);\r\n const searchQuery = useDebounce(query, 500);\r\n const axiosInstance = getApiAxiosInstance();\r\n\r\n const clearState = () => {\r\n setIsLoading(false);\r\n setSearchResults([]);\r\n setQuery('');\r\n };\r\n\r\n useEffect(() => {\r\n const getSearchResults = async () => {\r\n setIsLoading(true);\r\n const params = new URLSearchParams();\r\n params.append('query', searchQuery);\r\n params.append('top', resultLimit);\r\n params.append('isDemoPlayer', false);\r\n params.append('showPickleballContent', false);\r\n params.append('showTennisContent', false);\r\n\r\n if (isProPlayerSearch) {\r\n params.append('filter', 'isPro:true');\r\n }\r\n\r\n if (searchMembersOnly) {\r\n params.append('exists', 'memberId');\r\n }\r\n\r\n if (showPickleballContent) {\r\n params.delete('showPickleballContent', false);\r\n }\r\n\r\n if (showTennisContent) {\r\n params.delete('showTennisContent', false);\r\n }\r\n\r\n const cancel = cancelRef.current;\r\n if (cancel) {\r\n cancel();\r\n }\r\n\r\n const response = await axiosInstance\r\n .get('v2/search/players', {\r\n cancelToken: new CancelToken((c) => {\r\n cancelRef.current = c;\r\n }),\r\n params,\r\n })\r\n .catch((error) => {\r\n if (!isCancel(error)) {\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n if (response?.data) {\r\n const { hits } = response.data;\r\n const filteredHits = hits.filter((hit) => {\r\n return selectedPlayers.every((player) => player.memberId !== hit.source.memberId);\r\n });\r\n const results = filteredHits;\r\n setSearchResults(results);\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n if (searchQuery.length > 0) {\r\n getSearchResults();\r\n }\r\n }, [searchQuery]);\r\n\r\n const updateStateForQuery = (queryString) => {\r\n if (queryString?.length > 0) {\r\n setQuery(queryString);\r\n setSearchResults([]);\r\n } else {\r\n setQuery('');\r\n setSearchResults([]);\r\n }\r\n };\r\n\r\n const handleOnInputChange = (value) => {\r\n updateStateForQuery(value);\r\n };\r\n\r\n const handleOnInputPaste = (event) => {\r\n const { target } = event;\r\n setTimeout(() => {\r\n const queryString = target.value.trim();\r\n updateStateForQuery(queryString);\r\n }, 200);\r\n };\r\n\r\n const handleOnChange = (player) => {\r\n onPlayerSelected(player);\r\n clearState();\r\n };\r\n\r\n return (\r\n x}\r\n onPaste={handleOnInputPaste}\r\n options={searchResults}\r\n loading={isLoading}\r\n getOptionLabel={(option) => (option?.source?.displayName ? option.source.displayName : '')}\r\n isOptionEqualToValue={(option, value) => option?.source?.id === value.source.id}\r\n onInputChange={(_, value, reason) => {\r\n if ((value || value === '') && reason === 'input') {\r\n handleOnInputChange(value);\r\n }\r\n }}\r\n onChange={(_, newValue) => {\r\n if (newValue) {\r\n handleOnChange(newValue.source);\r\n }\r\n }}\r\n renderInput={(params) => (\r\n {params.InputProps.endAdornment},\r\n }}\r\n />\r\n )}\r\n renderOption={(optionProps, option) => {\r\n const { playerProfileImages, displayName, location } = option?.source || {};\r\n return (\r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n {displayName}\r\n {location?.display}\r\n \r\n \r\n
  • \r\n );\r\n }}\r\n />\r\n );\r\n};\r\n\r\nPlayerSearch.propTypes = {\r\n ...playerSearchPropTypes\r\n};\r\n\r\nPlayerSearch.defaultProps = {\r\n ...defaultPlayerSearchPropTypes\r\n};\r\n\r\nexport default PlayerSearch;\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport const useDebounce = (value, delay) => {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n }, [value, delay]);\r\n\r\n return debouncedValue;\r\n};\r\n","import React from 'react';\r\n\r\nimport { Grid, Typography, Box, Paper } from '@mui/material';\r\nimport CloseRoundedIcon from '@mui/icons-material/CloseRounded';\r\nimport BackgroundImage from '../../BackgroundImage';\r\n\r\nconst PlayerSearchResultCard = ({ player, onRemovePlayer, showRemoveButton, ...rest }) => {\r\n const { displayName, location, playerProfileImages } = player;\r\n\r\n const handleOnRemovePlayer = () => {\r\n onRemovePlayer(player);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {displayName}\r\n {location?.display}\r\n \r\n {showRemoveButton && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PlayerSearchResultCard;\r\n","const geocoder = { current: null };\r\n\r\nexport const getLocationData = async (location) => {\r\n const request = { placeId: location.place_id };\r\n\r\n if (!geocoder.current && window.google) {\r\n geocoder.current = new window.google.maps.Geocoder();\r\n }\r\n\r\n let geocodeResults = null;\r\n\r\n await geocoder.current.geocode(request, (results, status) => {\r\n if (status === window.google.maps.places.PlacesServiceStatus.OK && results) {\r\n geocodeResults = results[0];\r\n }\r\n });\r\n\r\n if (geocodeResults) {\r\n const { formatted_address, place_id: placeId, geometry } = geocodeResults;\r\n return {\r\n placeId,\r\n formattedAddress: formatted_address,\r\n placeName: location.structured_formatting.main_text,\r\n lat: geometry.location.lat(),\r\n lng: geometry.location.lng(),\r\n };\r\n }\r\n};\r\n\r\nexport const getLocationNameFromCoordinates = async (lat, lng) => {\r\n if (!geocoder.current && window.google) {\r\n geocoder.current = new window.google.maps.Geocoder();\r\n }\r\n\r\n let geocodeResults = null;\r\n const latLng = { lat, lng };\r\n await geocoder.current.geocode({ location: latLng }, (results, status) => {\r\n if (status === window.google.maps.places.PlacesServiceStatus.OK && results) {\r\n geocodeResults = results[0];\r\n }\r\n });\r\n\r\n if (geocodeResults) {\r\n const { address_components } = geocodeResults;\r\n const city = address_components.find((comp) => comp.types.includes('locality'));\r\n const state = address_components.find((comp) => comp.types.includes('administrative_area_level_1'));\r\n return `${city?.long_name}, ${state?.short_name}`;\r\n }\r\n};\r\n\r\nexport const getBrowserLocationCoordinates = async () => {\r\n let locationError = null;\r\n const options = {\r\n enableHighAccuracy: true,\r\n timeout: 5000,\r\n maximumAge: 60000,\r\n };\r\n const position = await new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition(resolve, reject, options);\r\n }).catch((error) => {\r\n locationError = error;\r\n });\r\n\r\n return {\r\n lat: position?.coords?.latitude,\r\n lng: position?.coords?.longitude,\r\n error: locationError,\r\n };\r\n};\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n isOpen: false,\r\n error: null,\r\n};\r\n\r\nconst errorPopupSlice = createSlice({\r\n name: 'errorPopup',\r\n initialState,\r\n reducers: {\r\n showErrorPopup(state, action) {\r\n state.isOpen = true;\r\n state.error = action.payload;\r\n },\r\n\r\n hideErrorPopup(state) {\r\n state.isOpen = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { showErrorPopup, hideErrorPopup } = errorPopupSlice.actions;\r\nexport default errorPopupSlice.reducer;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n sportTypeId: null,\r\n};\r\n\r\nconst conferenceDetailsSlice = createSlice({\r\n name: 'conferenceDetails',\r\n initialState,\r\n reducers: {\r\n setSportTypeId(state, action) {\r\n state.sportTypeId = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setSportTypeId } = conferenceDetailsSlice.actions;\r\nexport default conferenceDetailsSlice.reducer;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport Grid from '@mui/material/Grid';\r\nimport Paper from '@mui/material/Paper';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport Input from '../../Form/Input';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Location from '../../Form/Location';\r\nimport Slider from '../../Form/Slider';\r\nimport Select from '../../Form/Select';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport PlayerSearch from '../../Form/PlayerSearch';\r\nimport PlayerSearchResultCard from '../../Cards/PlayerSearchResultCard';\r\nimport { DefaultSliderValues, ageSliderDictionary, getAgeKeyByValue, defaultGridSpacing, formPaperStyles } from '../../../utils/constants';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { genderTypes, SportTypeIds, SliderTypes } from '../../../utils/types';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { createConferenceFormPropTypes, defaultCreateConferenceFormPropTypes } from '../../../utils/proptypes';\r\n\r\nimport { useCreateConferenceMutation, useUpdateConferenceMutation } from '../../../api/leaguesApi';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\n\r\nconst CreateConferenceForm = ({ isManaging, conferenceDetails = null, onConferenceUpdated, isLoadingConference }) => {\r\n const { utrRange, ageRange, utrpRange } = DefaultSliderValues;\r\n const { TENNIS } = SportTypeIds;\r\n const { UTR, UTRP, AGE } = SliderTypes;\r\n const [createConference] = useCreateConferenceMutation();\r\n const [updateConference, { isSuccess: isUpdated }] = useUpdateConferenceMutation();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const conferenceId = params?.conferenceId;\r\n\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [conferenceOrganizer, setConferenceOrganizer] = useState();\r\n const [leagueId, setLeagueId] = useState();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const buttonText = isManaging ? 'Save Changes' : 'Create Conference';\r\n const defaultValues = {\r\n name: '',\r\n location: '',\r\n leagueId: parseInt(params?.leagueId),\r\n genderTypeId: '',\r\n details: '',\r\n ageRange,\r\n conferenceRatingRange: [],\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n reset,\r\n formState: { errors, dirtyFields, isSubmitting },\r\n control,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (sportTypeId) {\r\n const confRange = sportTypeId === TENNIS ? utrRange : utrpRange;\r\n reset({ ...defaultValues, conferenceRatingRange: confRange });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isManaging && conferenceDetails) {\r\n const {\r\n maxAge,\r\n minAge,\r\n location,\r\n leagueId: conferenceLeagueId,\r\n sportTypeId: sportId,\r\n conferenceRatings,\r\n ...fetchedConference\r\n } = conferenceDetails;\r\n\r\n const conferenceLocation = location?.placeName || location?.formattedAddress || '';\r\n const confAgeRange = [parseInt(getAgeKeyByValue(minAge)), parseInt(getAgeKeyByValue(maxAge))];\r\n const { ratingMin, ratingMax } = conferenceRatings || {};\r\n const confRatingRange = [ratingMin, ratingMax];\r\n\r\n const formData = {\r\n ...fetchedConference,\r\n location: conferenceLocation,\r\n ageRange: confAgeRange,\r\n conferenceRatingRange: confRatingRange,\r\n };\r\n\r\n setOriginalLocation(location);\r\n setLeagueId(conferenceLeagueId);\r\n dispatch(setSportTypeId(sportId));\r\n reset(formData);\r\n }\r\n }, [conferenceDetails]);\r\n\r\n useEffect(() => {\r\n if (isUpdated) {\r\n onConferenceUpdated();\r\n }\r\n }, [isUpdated]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const conference = { ...formValues };\r\n const [minAge, maxAge] = conference.ageRange;\r\n const [ratingMin, ratingMax] = conference.conferenceRatingRange;\r\n\r\n if (dirtyFields.location) {\r\n const formattedLocation = await getLocationData(conference.location);\r\n conference.location = formattedLocation;\r\n } else {\r\n conference.location = originalLocation;\r\n }\r\n\r\n conference.minAge = ageSliderDictionary[minAge];\r\n conference.maxAge = ageSliderDictionary[maxAge];\r\n conference.conferenceRatings = {};\r\n\r\n conference.conferenceRatings.ratingMin = ratingMin;\r\n conference.conferenceRatings.ratingMax = ratingMax;\r\n\r\n delete conference.ageRange;\r\n delete conference.conferenceRatingRange;\r\n\r\n if (isManaging) {\r\n try {\r\n await updateConference({ conferenceId, conference, leagueId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n } else {\r\n conference.conferenceOrganizerMemberId = conferenceOrganizer.memberId;\r\n try {\r\n await createConference(conference).unwrap();\r\n navigate(`/leagues/${params?.leagueId}`);\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleOnAddConferenceOrganizer = (organizer) => {\r\n setConferenceOrganizer(organizer);\r\n };\r\n\r\n const handleOnRemoveConferenceOrganizer = () => {\r\n setConferenceOrganizer(null);\r\n };\r\n\r\n const isTennisConference = sportTypeId === TENNIS;\r\n\r\n return (\r\n \r\n \r\n {!isManaging && (\r\n \r\n Create Conference\r\n \r\n \r\n )}\r\n {isManaging && isLoadingConference ? (\r\n \r\n ) : (\r\n
    \r\n \r\n Conference Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isManaging && (\r\n \r\n Conference Organizer\r\n \r\n \r\n {conferenceOrganizer ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n Conference Audience\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nCreateConferenceForm.propTypes = {\r\n ...createConferenceFormPropTypes\r\n};\r\n\r\nCreateConferenceForm.defaultProps = {\r\n ...defaultCreateConferenceFormPropTypes\r\n};\r\n\r\nexport default CreateConferenceForm;\r\n","import React from 'react';\r\n\r\nimport CreateConferenceForm from '../../components/Forms/CreateConferenceForm';\r\n\r\nconst CreateConferencePage = () => ;\r\n\r\nexport default CreateConferencePage;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\n\r\nimport DateAdapter from '@mui/lab/AdapterMoment';\r\nimport LocalizationProvider from '@mui/lab/LocalizationProvider';\r\nimport MuiDateTimePicker from '@mui/lab/DateTimePicker';\r\nimport TextField from '@mui/material/TextField';\r\n\r\nimport { dateTimeFormat } from '../../../utils/constants';\r\n\r\nconst DateTimePicker = ({ control, name, label, isRequired = false, minutesStep, minDate, onDateChange }) => {\r\n const handleOnDateChange = (date) => {\r\n if (onDateChange) {\r\n onDateChange(date);\r\n }\r\n };\r\n\r\n return (\r\n \r\n (\r\n {\r\n onChange(e);\r\n handleOnDateChange(e);\r\n }}\r\n minDateTime={minDate}\r\n renderInput={(inputProps) => }\r\n />\r\n )}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default DateTimePicker;\r\n","import * as React from 'react';\r\n\r\nconst ApprovedIcon = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default ApprovedIcon;\r\n","import React from 'react';\r\n\r\nimport Dialog from '@mui/material/Dialog';\r\nimport DialogActions from '@mui/material/DialogActions';\r\nimport DialogContent from '@mui/material/DialogContent';\r\nimport DialogContentText from '@mui/material/DialogContentText';\r\nimport { Typography, Button } from '@universal-tennis/ui-shared';\r\nimport ApprovedIcon from '../Icons/ApprovedIcon';\r\nimport { TypographySizes, SharedUICategories } from '../../utils/constants';\r\nimport { popupPropTypes, defaultPopupPropTypes } from '../../utils/proptypes';\r\n\r\nconst Popup = ({ open, onClose, title, message, isSuccessful, errorMessage, buttonLabel, onAction, actionLabel }) => (\r\n \r\n \r\n {isSuccessful && (\r\n \r\n )}\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n {!!errorMessage && (\r\n \r\n \r\n {errorMessage}\r\n \r\n \r\n )}\r\n \r\n {buttonLabel && (\r\n \r\n )}\r\n {onAction && (\r\n \r\n )}\r\n \r\n \r\n);\r\n\r\nPopup.propTypes = {\r\n ...popupPropTypes\r\n};\r\n\r\nPopup.defaultProps = {\r\n ...defaultPopupPropTypes\r\n};\r\n\r\nexport default Popup;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport Radio from '@mui/material/Radio';\r\nimport MuiRadioGroup from '@mui/material/RadioGroup';\r\nimport FormControlLabel from '@mui/material/FormControlLabel';\r\n\r\nimport { radioGroupPropTypes } from '../../../utils/proptypes';\r\n\r\nconst RadioGroup = ({ control, name, options, sx, ...rest }) => (\r\n (\r\n \r\n {options.map((option) => (\r\n } sx={sx} />\r\n ))}\r\n \r\n )}\r\n />\r\n);\r\n\r\nRadioGroup.propTypes = {\r\n ...radioGroupPropTypes,\r\n};\r\n\r\nexport default RadioGroup;\r\n","import React from 'react';\r\nimport { Controller } from 'react-hook-form';\r\nimport Box from '@mui/material/Box';\r\nimport Grid from '@mui/material/Grid';\r\nimport TextField from '@mui/material/TextField';\r\nimport Divider from '@mui/material/Divider';\r\nimport Select from '@mui/material/Select';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\n\r\nimport { tennisScoringTypes, durationTypes, MatchFormatTypes, pickleballScoringTypes, SportTypeIds } from '../../utils/types';\r\nimport { defaultGridSpacing } from '../../utils/constants';\r\n\r\nconst SessionMatchFormat = ({ matchFormat, control, errors, isDisabled, sportTypeId }) => {\r\n const { SINGLES, DOUBLES, BOTH } = MatchFormatTypes;\r\n const isTennisMatch = sportTypeId === SportTypeIds.TENNIS;\r\n const scoringTypes = isTennisMatch ? tennisScoringTypes : pickleballScoringTypes;\r\n\r\n const Singles = () => {\r\n return (\r\n <>\r\n \r\n SINGLES\r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n \r\n Scoring Format\r\n \r\n {scoringTypes.map((scoringType) => (\r\n \r\n {scoringType.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n Time allotted per match\r\n \r\n {durationTypes.map((duration) => (\r\n \r\n {duration.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const Doubles = () => (\r\n <>\r\n \r\n DOUBLES\r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n (\r\n \r\n Scoring Format\r\n \r\n {scoringTypes.map((scoringType) => (\r\n \r\n {scoringType.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n (\r\n \r\n Time allotted per match\r\n \r\n {durationTypes.map((duration) => (\r\n \r\n {duration.description}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n
    \r\n {matchFormat === SINGLES && }\r\n {matchFormat === DOUBLES && }\r\n {matchFormat === BOTH && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default SessionMatchFormat;\r\n","import moment from 'moment';\r\nimport { sessionTypes, openClosedStatusTypes, getTypeForId, LeagueSessionTypes, FrequencyTypes } from './types';\r\nimport { getFormattedDate } from './display';\r\n\r\nconst { TOURNAMENT } = LeagueSessionTypes;\r\n\r\nexport const getSessionRounds = (schedule) => {\r\n const { draws } = schedule;\r\n\r\n const mappedDraws = draws?.reduce((acc, cur) => {\r\n if (cur?.rounds) {\r\n return [\r\n ...acc,\r\n ...cur.rounds\r\n ];\r\n }\r\n return acc;\r\n }, [])?.map((round) => ({ ...round, matches: round.teamMatches }));\r\n\r\n return mappedDraws;\r\n};\r\n\r\nexport const getRoundCount = (teamCount, matchesPerTeam) => {\r\n if (teamCount % 2 === 0) {\r\n return matchesPerTeam;\r\n }\r\n return Math.floor(matchesPerTeam + matchesPerTeam / (teamCount - 1));\r\n};\r\n\r\nexport const mapSession = (data) => {\r\n const { startDateUtc, endDateUtc, teamRegistrationEndDateUtc, teamRegistrationStartDateUtc, sessionTypeId, sessionStatusTypeId } = data;\r\n const dateFormat = 'MMM D';\r\n const sessionType = getTypeForId(sessionTypeId, sessionTypes);\r\n const status = getTypeForId(sessionStatusTypeId, openClosedStatusTypes);\r\n const sessionDates = getFormattedDate(startDateUtc, endDateUtc, dateFormat);\r\n const registrationDates = getFormattedDate(teamRegistrationStartDateUtc, teamRegistrationEndDateUtc, dateFormat);\r\n\r\n return {\r\n status: status.description,\r\n sessionType: sessionType.description,\r\n sessionDates,\r\n registrationDates,\r\n ...data,\r\n };\r\n};\r\n\r\nexport const getTooManyMatchesPerTeamError = (session) => {\r\n const { startDateUtc, endDateUtc, teamMatchFrequencyTypeId, sessionTypeId, matchesPerTeam } = session;\r\n if (sessionTypeId === TOURNAMENT) return false;\r\n if (!startDateUtc || !endDateUtc || !teamMatchFrequencyTypeId) return false;\r\n\r\n const numberOfTotalWeeks = moment(endDateUtc).diff(moment(startDateUtc), 'weeks') || 1;\r\n // teamMatchFrequencyTypeId dynamic in case we want to change to every 3/4 weeks.\r\n const totalWeeksAvailable =\r\n teamMatchFrequencyTypeId === FrequencyTypes.ONCE_A_WEEK\r\n ? numberOfTotalWeeks\r\n : Math.floor(numberOfTotalWeeks / teamMatchFrequencyTypeId);\r\n\r\n if (!totalWeeksAvailable) {\r\n return true;\r\n }\r\n if (+matchesPerTeam > totalWeeksAvailable) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useForm, Controller } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { skipToken } from '@reduxjs/toolkit/dist/query/react';\r\nimport moment from 'moment';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport Grid from '@mui/material/Grid';\r\nimport InputAdornment from '@mui/material/InputAdornment';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport MuiSelect from '@mui/material/Select';\r\nimport Paper from '@mui/material/Paper';\r\nimport TextField from '@mui/material/TextField';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport DateTimePicker from '../../Form/DateTimePicker';\r\nimport FormSubmitButton from '../../Form/FormSubmitButton';\r\nimport Input from '../../Form/Input';\r\nimport Location from '../../Form/Location';\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport Popup from '../../Popups/Popup';\r\nimport RadioGroup from '../../Form/RadioGroup';\r\nimport Select from '../../Form/Select';\r\nimport SessionMatchFormat from '../../SessionMatchFormat';\r\nimport { getTooManyMatchesPerTeamError } from '../../../utils/sessions';\r\n\r\nimport {\r\n FrequencyTypes,\r\n LeagueSessionTypes,\r\n MatchFormatTypes,\r\n SessionDrawTypes,\r\n SportTypeIds,\r\n SessionStandingsRules,\r\n SessionStandingsTypes,\r\n StatusTypes,\r\n TournamentTeamsCount,\r\n drawTypes,\r\n matchFrequencyTypes,\r\n openClosedStatusTypes,\r\n pickleballSessionStandingsOptions,\r\n sessionMatchFormatTypes,\r\n sessionTypes,\r\n tournamentTeamsCountOptions,\r\n tennisSessionStandingsOptions,\r\n} from '../../../utils/types';\r\nimport { LeagueTabs, defaultGridSpacing, formPaperStyles } from '../../../utils/constants';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { getLocationData } from '../../../utils/location';\r\nimport { useCreateSessionMutation, useUpdateSessionMutation, useGetLeagueFeesQuery } from '../../../api/leaguesApi';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\nimport { createSessionFormPropTypes, defaultCreateSessionFormPropTypes } from '../../../utils/proptypes';\r\n\r\nconst minutesStep = 15;\r\nconst CUSTOM_MORE_MATCHES_TEXT = 'There are more matches per team than weeks in the session.';\r\n\r\nconst CreateSessionForm = ({ sessionDetails, isManaging, isLoadingSession, onSessionUpdated }) => {\r\n const navigate = useNavigate();\r\n const params = useParams();\r\n const dispatch = useDispatch();\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n\r\n const sessionId = params?.sessionId;\r\n const { OPEN } = StatusTypes;\r\n const { ONCE_A_WEEK } = FrequencyTypes;\r\n const { TOURNAMENT } = LeagueSessionTypes;\r\n const { TENNIS } = SportTypeIds;\r\n const { FIRST_MATCH_BACK_DRAW } = SessionDrawTypes;\r\n const { BOTH, DOUBLES, SINGLES } = MatchFormatTypes;\r\n const { FOUR, EIGHT, SIXTEEN } = TournamentTeamsCount;\r\n const { TENNIS_WIN_LOSS_RECORD, PICKLEBALL_WIN_LOSS_RECORD } = SessionStandingsTypes;\r\n const { hasRegisteredPlayers, hasPostedResults, hasPublishedSchedule, hasSchedule } = sessionDetails || {};\r\n const isTennisSession = sportTypeId === TENNIS;\r\n const buttonText = isManaging ? 'Save Changes' : 'Create Session';\r\n const isRestrictedSession = hasPostedResults && hasPublishedSchedule;\r\n const standingsRuleOptions = isTennisSession ? tennisSessionStandingsOptions : pickleballSessionStandingsOptions;\r\n\r\n const [startDate, setStartDate] = useState(moment());\r\n const [teamRegisterStartDate, setTeamRegisterStartDate] = useState(moment());\r\n const [totalPlayerCost, setTotalPlayerCost] = useState();\r\n const [matchFormat, setMatchFormat] = useState('');\r\n const [originalLocation, setOriginalLocation] = useState();\r\n const [isTournamentSession, setIsTournamentSession] = useState(false);\r\n const [conferenceId, setConferenceId] = useState(parseInt(params?.conferenceId) || skipToken);\r\n const [leagueVerifiedFee, setLeagueVerifiedFee] = useState(0);\r\n const [showRuleConfirmationModal, setShowRuleConfirmationModal] = useState(false);\r\n const [sessionStandingsRuleId, setSessionStandingsRuleId] = useState(isTennisSession ? TENNIS_WIN_LOSS_RECORD : PICKLEBALL_WIN_LOSS_RECORD);\r\n const [updatedStandingsRuleId, setUpdatedStandingsRuleId] = useState(null);\r\n\r\n const [createSession] = useCreateSessionMutation();\r\n const [updateSession, { isSuccess: isUpdated }] = useUpdateSessionMutation();\r\n const { data: leaguesFees, isLoading: isLoadingLeaguesFees, error } = useGetLeagueFeesQuery(conferenceId);\r\n\r\n if (error) {\r\n dispatch(showErrorPopup(error));\r\n }\r\n\r\n const defaultValues = {\r\n conferenceId: parseInt(params?.conferenceId),\r\n description: '',\r\n doublesMatchCount: '',\r\n doublesPointsPerMatch: '',\r\n doublesScoringFormatTypeId: '',\r\n doublesTimeAllowedTypeId: '',\r\n drawTypeId: FIRST_MATCH_BACK_DRAW,\r\n endDateUtc: moment().add(5, 'days'),\r\n matchesPerTeam: '',\r\n name: '',\r\n registrationFee: 0,\r\n registrationVerificationFee: 0,\r\n sessionStatusTypeId: OPEN,\r\n sessionMatchTypeId: SINGLES,\r\n sessionTypeId: '',\r\n singlesMatchCount: '',\r\n singlesPointsPerMatch: '',\r\n singlesScoringFormatTypeId: '',\r\n singlesTimeAllowedTypeId: '',\r\n startDateUtc: moment().add(3, 'days'),\r\n teamRegistrationEndDateUtc: moment().add(2, 'days').add(2, 'hour'),\r\n teamRegistrationStartDateUtc: moment().add(2, 'hour'),\r\n teamRequiredPlayersMin: 2,\r\n teamsMax: '',\r\n location: '',\r\n teamMatchFrequencyTypeId: ONCE_A_WEEK,\r\n };\r\n\r\n const {\r\n handleSubmit,\r\n formState: { errors, dirtyFields, isSubmitting },\r\n control,\r\n reset,\r\n getValues,\r\n setValue,\r\n setError,\r\n clearErrors,\r\n } = useForm({ defaultValues, mode: 'all' });\r\n\r\n useEffect(() => {\r\n if (isManaging && sessionDetails) {\r\n const {\r\n conferenceId: sessionConferenceId,\r\n endDateUtc,\r\n startDateUtc,\r\n registrationFee,\r\n teamRegistrationStartDateUtc,\r\n teamRegistrationEndDateUtc,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n description,\r\n sessionStandingsTypeId,\r\n drawTypeId,\r\n ...fetchedSession\r\n } = sessionDetails;\r\n\r\n setConferenceId(sessionConferenceId);\r\n setSessionStandingsRuleId(sessionStandingsTypeId);\r\n\r\n let sessionLocation = '';\r\n const isTournament = sessionTypeId === TOURNAMENT;\r\n if (isTournament) {\r\n sessionLocation = sessionDetails.location?.placeName || '';\r\n setOriginalLocation(sessionDetails.location);\r\n setIsTournamentSession(true);\r\n }\r\n\r\n let formData;\r\n\r\n if (sessionMatchTypeId !== BOTH) {\r\n formData = {\r\n ...defaultValues,\r\n ...fetchedSession,\r\n sessionTypeId,\r\n drawTypeId,\r\n description: description || '',\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n } else {\r\n formData = {\r\n ...fetchedSession,\r\n drawTypeId,\r\n registrationFee,\r\n registrationVerificationFee,\r\n sessionMatchTypeId,\r\n sessionTypeId,\r\n description: description || '',\r\n location: sessionLocation,\r\n endDateUtc: getAdjustedDate({ dateUtc: endDateUtc, format: null, adjustForDSL: false }),\r\n startDateUtc: getAdjustedDate({ dateUtc: startDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationStartDateUtc: getAdjustedDate({ dateUtc: teamRegistrationStartDateUtc, format: null, adjustForDSL: false }),\r\n teamRegistrationEndDateUtc: getAdjustedDate({ dateUtc: teamRegistrationEndDateUtc, format: null, adjustForDSL: false }),\r\n };\r\n }\r\n setTotalPlayerCost(parseInt(registrationFee) + parseInt(registrationVerificationFee));\r\n setLeagueVerifiedFee(registrationVerificationFee);\r\n reset(formData);\r\n setMatchFormat(sessionMatchTypeId);\r\n dispatch(setSportTypeId(sessionDetails?.sportTypeId));\r\n }\r\n }, [sessionDetails]);\r\n\r\n useEffect(() => {\r\n if (isUpdated) {\r\n onSessionUpdated();\r\n }\r\n }, [isUpdated]);\r\n\r\n useEffect(() => {\r\n if (leaguesFees && !isManaging) {\r\n setLeagueVerifiedFee(leaguesFees?.registrationVerificationFee);\r\n setTotalPlayerCost(leaguesFees?.registrationVerificationFee);\r\n }\r\n }, [leaguesFees]);\r\n\r\n const handleFormSubmit = async (formValues) => {\r\n const session = { ...formValues };\r\n\r\n session.startDateUtc = getAdjustedDate({ dateUtc: session.startDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.endDateUtc = getAdjustedDate({ dateUtc: session.endDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.teamRegistrationStartDateUtc = getAdjustedDate({ dateUtc: session.teamRegistrationStartDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.teamRegistrationEndDateUtc = getAdjustedDate({ dateUtc: session.teamRegistrationEndDateUtc, format: null, adjustForDSL: true }).toISOString();\r\n session.description = session.description.trim().length === 0 ? null : session.description;\r\n session.sessionMatchTypeId = matchFormat;\r\n session.sessionStandingsTypeId = sessionStandingsRuleId;\r\n\r\n if (!isManaging) {\r\n session.registrationVerificationFee = leagueVerifiedFee;\r\n }\r\n\r\n if (matchFormat === SINGLES) {\r\n delete session.doublesMatchCount;\r\n delete session.doublesPointsPerMatch;\r\n delete session.doublesScoringFormatTypeId;\r\n delete session.doublesTimeAllowedTypeId;\r\n } else if (matchFormat === DOUBLES) {\r\n delete session.singlesMatchCount;\r\n delete session.singlesPointsPerMatch;\r\n delete session.singlesScoringFormatTypeId;\r\n delete session.singlesTimeAllowedTypeId;\r\n }\r\n\r\n const sessionType = getValues('sessionTypeId');\r\n\r\n if (sessionType === TOURNAMENT) {\r\n delete session.teamMatchFrequencyTypeId;\r\n\r\n if (dirtyFields.location) {\r\n session.location = await getLocationData(formValues.location);\r\n } else {\r\n session.location = originalLocation;\r\n }\r\n } else {\r\n delete session.location;\r\n }\r\n\r\n if (isManaging) {\r\n try {\r\n await updateSession({ sessionId, session, conferenceId }).unwrap();\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n } else {\r\n try {\r\n await createSession(session).unwrap();\r\n navigate(`/leagues/conference/${params?.conferenceId}/manage`, { state: { activeTab: LeagueTabs.SESSIONS } });\r\n } catch (apiError) {\r\n dispatch(showErrorPopup(apiError));\r\n }\r\n }\r\n };\r\n\r\n const handleEntryFeeChange = (e) => {\r\n const feeValue = parseInt(e.target.value);\r\n if (!Number.isNaN(feeValue)) {\r\n setTotalPlayerCost(parseInt(e.target.value) + leagueVerifiedFee);\r\n } else {\r\n setTotalPlayerCost(leagueVerifiedFee);\r\n }\r\n };\r\n\r\n const handleOnMatchFormatChange = (event) => {\r\n setMatchFormat(event.target.value);\r\n };\r\n\r\n const handleOnEventStartDateChange = (date) => {\r\n setStartDate(date);\r\n };\r\n\r\n const handleOnRegistrationStartDateChange = (date) => {\r\n setTeamRegisterStartDate(date);\r\n };\r\n\r\n const handleOnSessionTypeChange = (event) => {\r\n const isTournament = event.target.value === TOURNAMENT;\r\n setIsTournamentSession(isTournament);\r\n };\r\n\r\n const handleMatchesPerTeamCheck = (event) => {\r\n clearErrors('matchesPerTeam');\r\n setValue('matchesPerTeam', event.target.value);\r\n const session = getValues();\r\n\r\n const hasErrors = getTooManyMatchesPerTeamError({\r\n ...session,\r\n matchesPerTeam: +event.target.value,\r\n });\r\n\r\n if (hasErrors) {\r\n setError('matchesPerTeam', { type: 'custom', message: CUSTOM_MORE_MATCHES_TEXT });\r\n }\r\n\r\n return;\r\n };\r\n\r\n const handleOnTournamentTeamsChange = (event) => {\r\n const teamsCount = event.target.value;\r\n switch (teamsCount) {\r\n case FOUR:\r\n setValue('matchesPerTeam', 2);\r\n break;\r\n case EIGHT:\r\n setValue('matchesPerTeam', 4);\r\n break;\r\n case SIXTEEN:\r\n setValue('matchesPerTeam', 8);\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n const handleOnSessionRuleChange = (event) => {\r\n const ruleValue = event?.target?.value;\r\n\r\n if (ruleValue !== sessionStandingsRuleId) {\r\n setShowRuleConfirmationModal(true);\r\n setUpdatedStandingsRuleId(ruleValue);\r\n }\r\n };\r\n\r\n const handleOnConfirmRuleChange = () => {\r\n setShowRuleConfirmationModal(false);\r\n setSessionStandingsRuleId(updatedStandingsRuleId);\r\n };\r\n\r\n const handleOnCloseRuleModal = () => {\r\n setShowRuleConfirmationModal(false);\r\n setUpdatedStandingsRuleId(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n {!isManaging && (\r\n \r\n Create Session\r\n \r\n \r\n )}\r\n {isManaging && isLoadingSession && isLoadingLeaguesFees ? (\r\n \r\n ) : (\r\n
    \r\n \r\n Details\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTournamentSession && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!isTournamentSession && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n Team Standings Rule\r\n \r\n {standingsRuleOptions.map((rule) => (\r\n \r\n {rule?.description}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Match Format\r\n \r\n \r\n \r\n Format Type\r\n \r\n {sessionMatchFormatTypes.map((session) => (\r\n \r\n {session.description}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Team Registration\r\n \r\n \r\n Session Status\r\n Teams can be added to an open session\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isTournamentSession ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!isTournamentSession && (\r\n \r\n \r\n {errors.matchesPerTeam && (\r\n \r\n {errors.matchesPerTeam.message}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n Player Fees\r\n \r\n \r\n Session Player Entry Fee\r\n \r\n (\r\n $,\r\n }}\r\n inputProps={{ style: { textAlign: 'right', width: 55 } }}\r\n onChange={(e) => {\r\n onChange(e);\r\n handleEntryFeeChange(e);\r\n }}\r\n />\r\n )}\r\n />\r\n \r\n \r\n {`League Fee: $${leagueVerifiedFee}`}\r\n \r\n \r\n {`Total per Player: $${totalPlayerCost}`}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nCreateSessionForm.propTypes = {\r\n ...createSessionFormPropTypes\r\n};\r\n\r\nCreateSessionForm.defaultProps = {\r\n ...defaultCreateSessionFormPropTypes\r\n};\r\n\r\nexport default CreateSessionForm;\r\n","import React from 'react';\r\n\r\nimport CreateSessionForm from '../../components/Forms/CreateSessionForm';\r\n\r\nconst CreateSessionPage = () => ;\r\n\r\nexport default CreateSessionPage;\r\n","import React from 'react';\r\nimport { styled } from '@mui/material/styles';\r\nimport Button from '@mui/material/Button';\r\nimport Grid from '@mui/material/Grid';\r\nimport Link from '@mui/material/Link';\r\nimport TableRow from '@mui/material/TableRow';\r\nimport Select from '@mui/material/Select';\r\nimport Tooltip, { tooltipClasses } from '@mui/material/Tooltip';\r\nimport Typography from '@mui/material/Typography';\r\nimport MuiListSubheader from '@mui/material/ListSubheader';\r\nimport TextField from '@mui/material/TextField';\r\nimport Switch from '@mui/material/Switch';\r\n\r\nexport const StyledTableRow = styled(TableRow)(({ theme }) => ({\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.action.hover,\r\n },\r\n '&:last-child td, &:last-child th': {\r\n border: 0,\r\n },\r\n}));\r\n\r\nexport const TeamMatchCardSelect = styled(Select)(({ theme }) => ({\r\n ':after': { borderBottomColor: theme.appColors.gradientBlue },\r\n}));\r\n\r\nexport const PostScoreInput = styled(TextField, {\r\n shouldForwardProp: (prop) => prop !== 'showTiebreaker',\r\n})(({ showTiebreaker = false, disable = false }) => ({\r\n '& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button': {\r\n display: 'none',\r\n },\r\n '& input[type=number]': {\r\n MozAppearance: 'textfield',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& input': {\r\n textAlign: 'center'\r\n },\r\n '& fieldset': {\r\n borderRightWidth: showTiebreaker ? 0 : 1\r\n },\r\n borderRadius: 4,\r\n borderBottomRightRadius: showTiebreaker ? 0 : 4,\r\n borderTopRightRadius: showTiebreaker ? 0 : 4,\r\n\r\n },\r\n textAlign: 'center',\r\n width: 56,\r\n height: 56,\r\n disabled: disable,\r\n '&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {\r\n WebkitAppearance: 'none',\r\n },\r\n}));\r\n\r\nexport const PostScoreTieBreakInput = styled(TextField)(() => ({\r\n '& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button': {\r\n display: 'none',\r\n WebkitAppearance: 'none',\r\n },\r\n '& input[type=number]': {\r\n MozAppearance: 'textfield',\r\n },\r\n '& .MuiOutlinedInput-root': {\r\n '& input': {\r\n textAlign: 'center'\r\n },\r\n '& fieldset': {\r\n borderLeftWidth: 1\r\n },\r\n textAlign: 'center',\r\n borderRadius: 4,\r\n borderTopLeftRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n },\r\n outline: 'none',\r\n width: 56,\r\n height: 56,\r\n}));\r\n\r\nexport const TiebreakerText = styled(Typography)(({ theme }) => ({\r\n position: 'absolute',\r\n fontSize: 10,\r\n top: 6,\r\n right: 12,\r\n color: theme.appColors.darkText,\r\n}));\r\n\r\nexport const ListSubheader = styled(MuiListSubheader)(({ theme }) => ({\r\n backgroundColor: theme.appColors.blue,\r\n color: theme.appColors.white,\r\n}));\r\n\r\nexport const ScoreCardTypography = styled(Typography, {\r\n shouldForwardProp: (prop) => prop !== 'isLoser' && prop !== 'isWinner',\r\n})(({ theme, isLoser, isWinner }) => {\r\n if (isLoser) {\r\n return {\r\n color: theme.appColors.grey,\r\n };\r\n }\r\n if (isWinner) {\r\n return {\r\n color: theme.appColors.black,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n };\r\n }\r\n return {\r\n color: theme.appColors.black,\r\n };\r\n});\r\n\r\nexport const ScoreCardTiebreakerTypography = styled(ScoreCardTypography)(() => ({\r\n fontSize: 12,\r\n marginLeft: 0.8,\r\n marginRight: 8,\r\n}));\r\n\r\nexport const StyledGrid = styled(Grid)(({ theme }) => ({\r\n color: theme.palette.common.black,\r\n padding: theme.spacing(2),\r\n}));\r\n\r\nexport const MemberTeamTableLink = styled(Link)(() => ({\r\n fontSize: '1rem',\r\n}));\r\n\r\nexport const LinkStyledButton = styled(Button)(() => ({\r\n '&:hover': {\r\n background: 'none',\r\n },\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n padding: 0,\r\n minHeight: 0,\r\n minWidth: 0,\r\n fontWeight: 'normal',\r\n textTransform: 'none',\r\n}));\r\n\r\nexport const PostScoreSubtitle = styled(Typography)(({ theme }) => ({\r\n fontSize: 12,\r\n lineHeight: '16px',\r\n letterSpacing: 1,\r\n fontWeight: 500,\r\n color: theme.appColors.darkText,\r\n textTransform: 'uppercase',\r\n}));\r\n\r\nexport const CustomSwitch = styled(Switch)(({ theme }) => ({\r\n width: 54,\r\n height: 32,\r\n padding: 0,\r\n '& .MuiSwitch-switchBase': {\r\n padding: 0,\r\n margin: 2,\r\n transitionDuration: '300ms',\r\n '&.Mui-checked': {\r\n transform: 'translateX(22px)',\r\n color: theme.appColors.white,\r\n '& + .MuiSwitch-track': {\r\n backgroundColor: theme.appColors.lighterGreen,\r\n opacity: 1,\r\n border: 0,\r\n },\r\n '&.Mui-disabled + .MuiSwitch-track': {\r\n opacity: 0.5,\r\n },\r\n },\r\n },\r\n '& .MuiSwitch-thumb': {\r\n width: 28,\r\n height: 28,\r\n },\r\n '& .MuiSwitch-track': {\r\n borderRadius: 32 / 2,\r\n backgroundColor: theme.appColors.coolGrey600,\r\n opacity: 1,\r\n },\r\n}));\r\n\r\nexport const StyledTooltip = styled(({ className, ...props }) => (\r\n \r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: theme.appColors.blueGrey100,\r\n boxShadow: theme.shadows[1],\r\n color: theme.palette.common.black,\r\n padding: 7,\r\n fontSize: 14,\r\n fontWeight: 325,\r\n textAlign: 'center',\r\n fontFamily: theme.typography.secondary.fontFamily\r\n },\r\n [`& .${tooltipClasses.arrow}`]: {\r\n color: theme.appColors.blueGrey100,\r\n '&::before': {\r\n backgroundColor: theme.appColors.blueGrey100,\r\n border: '1px solid #999'\r\n }\r\n },\r\n}));\r\n","import React, { useState } from 'react';\r\n\r\nimport { useTheme } from '@mui/material/styles';\r\nimport { SinglePersonIcon, DoublePersonIcon } from '@universal-tennis/ui-shared';\r\n\r\nimport Table from '@mui/material/Table';\r\nimport TableBody from '@mui/material/TableBody';\r\nimport TableCell from '@mui/material/TableCell';\r\nimport TableContainer from '@mui/material/TableContainer';\r\nimport TableHead from '@mui/material/TableHead';\r\nimport MuiTableRow from '@mui/material/TableRow';\r\nimport TableSortLabel from '@mui/material/TableSortLabel';\r\nimport Toolbar from '@mui/material/Toolbar';\r\nimport Typography from '@mui/material/Typography';\r\nimport Paper from '@mui/material/Paper';\r\n\r\nimport LoadingIndicator from '../../LoadingIndicator';\r\nimport { SortType } from '../../../utils/constants';\r\nimport { getComparator } from '../../../utils/helpers';\r\nimport { leaguesTablePropTypes } from '../../../utils/proptypes';\r\n\r\nconst LeaguesTable = (props) => {\r\n const theme = useTheme();\r\n const { headCells, tableData, isLoading, sortBy, rowComponent, title = null, isSortingDisabled = false } = props;\r\n const [sortOrder, setSortOrder] = useState(SortType.ASC);\r\n const [orderProperty, setOrderProperty] = useState(sortBy);\r\n const TableRow = rowComponent;\r\n\r\n const handleRequestSort = (property) => (event) => {\r\n event.preventDefault();\r\n const isAscending = orderProperty === property && sortOrder === SortType.ASC;\r\n setSortOrder(isAscending ? SortType.DESC : SortType.ASC);\r\n setOrderProperty(property);\r\n };\r\n\r\n return (\r\n \r\n {title && (\r\n \r\n \r\n {title}\r\n \r\n \r\n )}\r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n {headCells.map((headCell) => (\r\n \r\n \r\n <>\r\n {headCell.label}\r\n {headCell.id === 'utrp-numeric-single' && (\r\n \r\n )}\r\n {headCell.id === 'utrp-numeric-double' && (\r\n \r\n )}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n {tableData &&\r\n tableData\r\n .slice()\r\n .sort(getComparator(sortOrder, orderProperty))\r\n .map((data, index) => {\r\n const labelId = `table-${index}`;\r\n return ;\r\n })}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\nLeaguesTable.propTypes = {\r\n ...leaguesTablePropTypes,\r\n};\r\n\r\nexport default LeaguesTable;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport TableCell from '@mui/material/TableCell';\r\n\r\nimport { StyledTableRow } from '../../Styled';\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { formatConferencesForTable } from '../../../utils/helpers';\r\nimport { getConferenceTableHeadCells } from '../../../utils/display';\r\n\r\nconst ConferencesTable = ({ leagueConferences = [], isLoading, onManageClicked }) => {\r\n const { sportTypeId } = useSelector((state) => state.conferenceDetails);\r\n const [conferences, setConferences] = useState([]);\r\n const headCells = getConferenceTableHeadCells(sportTypeId);\r\n\r\n useEffect(() => {\r\n if (leagueConferences) {\r\n const formattedConferences = formatConferencesForTable(leagueConferences, sportTypeId);\r\n setConferences(formattedConferences);\r\n }\r\n }, [leagueConferences, sportTypeId]);\r\n\r\n const ConferenceTableRow = ({ rowData, labelId }) => {\r\n const { id, name, age, gender, range } = rowData;\r\n\r\n const handleOnManageConferenceClicked = (conferenceId) => {\r\n onManageClicked(conferenceId);\r\n };\r\n return (\r\n \r\n \r\n {name}\r\n \r\n {age}\r\n {gender}\r\n {range}\r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ConferencesTable;\r\n","import React from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\n\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport LoadingIndicator from '../../../components/LoadingIndicator';\r\nimport ConferencesTable from '../../../components/Tables/ConferencesTable';\r\n\r\nconst ConferencesTab = ({ conferences = [], onManageClicked, isLoading }) => {\r\n const handleOnManageClicked = (conferenceId) => {\r\n onManageClicked(conferenceId);\r\n };\r\n\r\n return (\r\n <>\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n {!conferences.length ? (\r\n \r\n No conferences have been created for this League.\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ConferencesTab;\r\n","import React, { useEffect } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport Divider from '@mui/material/Divider';\r\nimport FormControl from '@mui/material/FormControl';\r\nimport InputLabel from '@mui/material/InputLabel';\r\nimport MenuItem from '@mui/material/MenuItem';\r\nimport Select from '@mui/material/Select';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport ConferencesTab from './ConferencesTab';\r\nimport LoadingIndicator from '../../components/LoadingIndicator';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst LeagueDeskPage = ({ isLoading, leagueData, organizerLeagues, leagueId, isLeagueOrganizer, onLeagueSelected }) => {\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (leagueData) {\r\n dispatch(setSportTypeId(leagueData?.sportTypeId));\r\n }\r\n }, [leagueData]);\r\n\r\n const handleOnCreateConferenceClicked = () => {\r\n navigate(`/leagues/${leagueId}/conference/create`);\r\n };\r\n\r\n const handleOnManageClicked = (conferenceId) => {\r\n navigate(`/leagues/conference/${conferenceId}/manage`);\r\n };\r\n\r\n const handleOnLeagueChange = (event) => {\r\n const id = event?.target?.value;\r\n onLeagueSelected(id);\r\n };\r\n\r\n return (\r\n \r\n {isLoading && }\r\n {leagueData && (\r\n \r\n \r\n Team League Desk\r\n \r\n \r\n {isLeagueOrganizer && organizerLeagues?.length > 1 ? (\r\n \r\n Select League\r\n \r\n {organizerLeagues?.map((option) => (\r\n \r\n {option.description}\r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n {leagueData.name}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default LeagueDeskPage;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useParams, useNavigate } from 'react-router-dom';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport LeagueDeskPage from '..';\r\nimport { showErrorPopup } from '../../../redux/errorPopupSlice';\r\nimport { setSportTypeId } from '../../../redux/conferenceDetailsSlice';\r\nimport { useGetLeagueSummaryQuery, useGetUserLeaguesQuery } from '../../../api/leaguesApi';\r\n\r\nconst LeagueDeskWrapper = () => {\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const { leagueId } = useParams();\r\n const [organizerLeagues, setOrganizerLeagues] = useState([]);\r\n const [isLeagueOrganizer, setIsOrganizerLeague] = useState(false);\r\n\r\n const { data: leagueData, isLoading: isLoadingLeagueData, error: leagueDataError } = useGetLeagueSummaryQuery(parseInt(leagueId));\r\n const { data: userLeagues, isLoading: isLoadingOrganizerLeagues, error: organizerLeaguesError } = useGetUserLeaguesQuery();\r\n\r\n const isLoading = isLoadingLeagueData || isLoadingOrganizerLeagues;\r\n\r\n if (leagueDataError) {\r\n dispatch(showErrorPopup(leagueDataError));\r\n }\r\n\r\n if (organizerLeaguesError) {\r\n dispatch(showErrorPopup(organizerLeaguesError));\r\n }\r\n\r\n useEffect(() => {\r\n if (leagueData) {\r\n dispatch(setSportTypeId(leagueData?.sportTypeId));\r\n }\r\n\r\n if (userLeagues) {\r\n const tennisLeagues = userLeagues?.leagues?.tennis || [];\r\n const pickleballLeagues = userLeagues?.leagues?.pickleball || [];\r\n const formattedLeagues = [...tennisLeagues, ...pickleballLeagues].map((league) => {\r\n return (\r\n { id: league.id, description: league.name }\r\n );\r\n });\r\n const organizerLeagueIds = formattedLeagues.map((league) => league.id);\r\n const isOrganizerLeague = organizerLeagueIds.includes(parseInt(leagueId));\r\n\r\n setIsOrganizerLeague(isOrganizerLeague);\r\n setOrganizerLeagues(formattedLeagues);\r\n }\r\n }, [leagueData, userLeagues]);\r\n\r\n if (leagueDataError) {\r\n dispatch(showErrorPopup(leagueDataError));\r\n }\r\n\r\n if (organizerLeaguesError) {\r\n dispatch(showErrorPopup(organizerLeaguesError));\r\n }\r\n\r\n const handleOnLeagueSelected = (id) => {\r\n navigate(`/leagues/${id}`);\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default LeagueDeskWrapper;\r\n","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport { getBreadcrumbs } from '../../api/leaguesApi';\r\n\r\nexport const getBreadcrumbData = createAsyncThunk('ui/getBreadcrumbData', async (data) => {\r\n const { context, contextId } = data || {};\r\n try {\r\n const response = await getBreadcrumbs(context, contextId);\r\n return response.data;\r\n } catch (err) {\r\n const customError = {\r\n name: 'Error loading breadcrumbs',\r\n message: err.response.data?.message || err.response.statusText,\r\n };\r\n throw customError;\r\n }\r\n});\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Link } from 'react-router-dom';\r\nimport Box from '@mui/material/Box';\r\n\r\nimport LinearProgress from '@mui/material/LinearProgress';\r\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs';\r\nimport Typography from '@mui/material/Typography';\r\n\r\nimport { BreadcrumbContexts } from '../../utils/constants';\r\nimport { getBreadcrumbData } from '../../redux/services/breadcrumbService';\r\n\r\nconst Breadcrumbs = ({ context, contextId, shouldUpdateBreadcrumb, onBreadcrumbUpdated, isAdmin = false }) => {\r\n const dispatch = useDispatch();\r\n const { data, loading } = useSelector((state) => state.breadcrumbs);\r\n const { CONFERENCE, SESSION, TEAM } = BreadcrumbContexts;\r\n const { league, conference, session, team } = data;\r\n const leagueUrl = `/leagues/${league?.id}`;\r\n const conferenceUrl = `/leagues/conference/${conference?.id}/manage`;\r\n const sessionUrl = isAdmin ? `/leagues/session/${session?.id}/manage` : `/leagues/session/${session?.id}`;\r\n\r\n useEffect(() => {\r\n if (context && contextId) {\r\n if (!data || data[context]?.id !== parseInt(contextId)) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (shouldUpdateBreadcrumb) {\r\n dispatch(getBreadcrumbData({ context, contextId }));\r\n onBreadcrumbUpdated();\r\n }\r\n }, [shouldUpdateBreadcrumb]);\r\n\r\n const getLastLabel = () => {\r\n let label;\r\n switch (context) {\r\n case CONFERENCE:\r\n label = conference?.name;\r\n break;\r\n case SESSION:\r\n label = session?.name;\r\n break;\r\n case TEAM:\r\n label = team?.name;\r\n break;\r\n default:\r\n label = '';\r\n }\r\n return label;\r\n };\r\n\r\n const renderBreadcrumb = (url, name, isCurrentContext, isBelowContext) => {\r\n if (isCurrentContext) {\r\n return {getLastLabel()};\r\n }\r\n\r\n if (isBelowContext) {\r\n return {name};\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const isConferenceContext = conference?.id && conference?.name && context === CONFERENCE;\r\n const isBelowConferenceContext = conference?.id && conference?.name && (context === SESSION || context === TEAM);\r\n const isSessionContext = session?.id && session?.name && context === SESSION;\r\n const isBelowSessionContext = session?.id && session?.name && context === TEAM;\r\n const isTeamContext = team?.id && team?.name && context === TEAM;\r\n\r\n return (\r\n
    \r\n {loading && (\r\n \r\n \r\n \r\n )}\r\n {data && (\r\n \r\n {isAdmin && league?.id && league?.name && {league.name}}\r\n {isAdmin && renderBreadcrumb(conferenceUrl, conference?.name, isConferenceContext, isBelowConferenceContext)}\r\n {renderBreadcrumb(sessionUrl, session?.name, isSessionContext, isBelowSessionContext)}\r\n {isTeamContext && {team?.name}}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n isOpen: false,\r\n title: null,\r\n message: null,\r\n};\r\n\r\nconst genericPopupSlice = createSlice({\r\n name: 'genericPopup',\r\n initialState,\r\n reducers: {\r\n showPopup(state, action) {\r\n state.isOpen = true;\r\n state.title = action.payload.title;\r\n state.message = action.payload.message;\r\n },\r\n\r\n hidePopup(state) {\r\n state.isOpen = false;\r\n },\r\n },\r\n});\r\n\r\nexport const { showPopup, hidePopup } = genericPopupSlice.actions;\r\nexport default genericPopupSlice.reducer;\r\n","import React, { useState, useEffect } from 'react';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Divider from '@mui/material/Divider';\r\nimport Typography from '@mui/material/Typography';\r\nimport { useDispatch } from 'react-redux';\r\n\r\nimport LoadingIndicator from '../LoadingIndicator';\r\nimport PlayerSearch from '../Form/PlayerSearch';\r\nimport PlayerSearchResultCard from '../Cards/PlayerSearchResultCard';\r\nimport Popup from '../Popups/Popup';\r\nimport { showPopup } from '../../redux/genericPopupSlice';\r\nimport { LeagueRoles } from '../../utils/constants';\r\nimport { mapMembersForPlayerSearch } from '../../utils/helpers';\r\n\r\nconst MemberRoleManager = ({ members = [], isUpdatingRole, isLoadingTeam, memberRole, onAddMemberRole, onRemoveMemberRole }) => {\r\n const { TEAM_CAPTAIN } = LeagueRoles;\r\n const dispatch = useDispatch();\r\n const [originalMembers, setOriginalMembers] = useState([]);\r\n const [showConfirmationPopup, setShowConfirmationPopup] = useState(false);\r\n const [isRemovingMember, setIsRemovingMember] = useState(false);\r\n const [memberAwaitingAction, setMemberAwaitingAction] = useState();\r\n const minimumAmountOfMembersNeeded = 1;\r\n const maximumAmountOfCaptains = 3;\r\n\r\n useEffect(() => {\r\n if (members?.length) {\r\n const mappedMembers = mapMembersForPlayerSearch(members);\r\n setOriginalMembers(mappedMembers);\r\n }\r\n }, [members]);\r\n\r\n const isPermittedToRemoveMember = () => {\r\n if (members?.length === minimumAmountOfMembersNeeded) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: `There must always be at least one ${memberRole}`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const isPermittedToAddMember = () => {\r\n if (members?.length === maximumAmountOfCaptains && memberRole === TEAM_CAPTAIN) {\r\n dispatch(\r\n showPopup({\r\n isError: true,\r\n title: 'Error',\r\n message: `Only 3 Captains are permitted per team.`,\r\n })\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const handleOnAddMemberRole = (member) => {\r\n setMemberAwaitingAction(member);\r\n setIsRemovingMember(false);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnRemoveMemberRole = (member) => {\r\n setMemberAwaitingAction(member);\r\n setIsRemovingMember(true);\r\n setShowConfirmationPopup(true);\r\n };\r\n\r\n const handleOnConfirmRemoval = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToRemoveMember = isPermittedToRemoveMember();\r\n if (isAbleToRemoveMember) {\r\n onRemoveMemberRole(memberAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnConfirmAddition = () => {\r\n setShowConfirmationPopup(false);\r\n\r\n const isAbleToAddMember = isPermittedToAddMember();\r\n if (isAbleToAddMember) {\r\n onAddMemberRole(memberAwaitingAction);\r\n }\r\n };\r\n\r\n const handleOnClosePopup = () => {\r\n setShowConfirmationPopup(false);\r\n };\r\n\r\n const action = isRemovingMember ? 'Remove' : 'Add';\r\n const popupAction = isRemovingMember ? handleOnConfirmRemoval : handleOnConfirmAddition;\r\n const popupTitle = `${action} ${memberRole}`;\r\n const popupMessage = `Are you sure you want to ${action?.toLowerCase()} ${memberAwaitingAction?.displayName} as a ${memberRole}?`;\r\n\r\n return isLoadingTeam ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n {`Current ${memberRole}s`}\r\n \r\n \r\n {isUpdatingRole ? (\r\n \r\n ) : (\r\n originalMembers.map((player) => (\r\n \r\n ))\r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MemberRoleManager;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport Button from '@mui/material/Button';\r\nimport TableCell from '@mui/material/TableCell';\r\n\r\nimport LeaguesTable from '../LeaguesTableWrapper';\r\nimport { StyledTableRow } from '../../Styled';\r\nimport { openClosedStatusTypes, sessionTypes, getTypeForId } from '../../../utils/types';\r\nimport { getAdjustedDate } from '../../../utils/display';\r\n\r\nconst headCells = [\r\n { id: 'name', label: 'Name' },\r\n { id: 'type', label: 'Type' },\r\n { id: 'status', label: 'Status' },\r\n { id: 'startDate', label: 'Start Date' },\r\n { id: 'empty' },\r\n { id: 'view' },\r\n];\r\n\r\nconst SessionsTable = ({ conferenceSessions = [], isLoading, onManageClick, onViewClick, onRemoveClick }) => {\r\n const [sessions, setSessions] = useState([]);\r\n\r\n useEffect(() => {\r\n const formattedSessions = conferenceSessions.map((session) => {\r\n const { sessionTypeId, sessionStatusTypeId, startDateUtc, ...fetchedSession } = session;\r\n const sessionType = getTypeForId(sessionTypeId, sessionTypes);\r\n const sessionStatus = getTypeForId(sessionStatusTypeId, openClosedStatusTypes);\r\n\r\n return {\r\n ...fetchedSession,\r\n type: sessionType.description,\r\n status: sessionStatus.description,\r\n startDate: getAdjustedDate({ dateUtc: startDateUtc, format: 'MMMM Do YYYY' }),\r\n };\r\n });\r\n\r\n setSessions(formattedSessions);\r\n }, [conferenceSessions]);\r\n\r\n const SessionTableRow = ({ rowData, labelId }) => {\r\n const { id, name, type, status, startDate, hasRegisteredPlayers } = rowData;\r\n\r\n const handleManageClick = () => {\r\n onManageClick(id);\r\n };\r\n\r\n const handleOnViewClick = () => {\r\n onViewClick(id);\r\n };\r\n\r\n const handleOnRemoveClick = () => {\r\n onRemoveClick(id, hasRegisteredPlayers);\r\n };\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n {type}\r\n {status}\r\n {startDate}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return ;\r\n};\r\n\r\nexport default SessionsTable;\r\n","import React from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\n\r\nimport Box from '@mui/material/Box';\r\nimport Button from '@mui/material/Button';\r\nimport Container from '@mui/material/Container';\r\nimport 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 }) => {\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 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 \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 useGetConferenceSessionsQuery,\r\n useAddOrganizerMutation,\r\n useRemoveOrganizerMutation,\r\n useRemoveSessionMutation,\r\n} from '../../api/leaguesApi';\r\nimport { setSportTypeId } from '../../redux/conferenceDetailsSlice';\r\n\r\nconst ManageConferencePage = () => {\r\n const location = useLocation();\r\n const dispatch = useDispatch();\r\n const pageNumber = 1;\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 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 const {\r\n data: sessionsData,\r\n isLoading: isLoadingSessions,\r\n error: sessionError,\r\n } = useGetConferenceSessionsQuery(parseInt(conferenceId), pageNumber);\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 if (sessionError) {\r\n dispatch(showErrorPopup(sessionError));\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 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 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\nimport config from '../../config';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\nimport Img from '../Img';\r\n\r\nimport styles from './footer.module.scss';\r\n\r\nconst { marketingAppHost, links } = config;\r\n\r\nconst Footer = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
      \r\n
    • © Copyright 2023 Universal Tennis ·
    • \r\n
    • \r\n \r\n Privacy Policy ·\r\n \r\n
    • \r\n
    • \r\n \r\n Terms ·\r\n \r\n
    • \r\n
    • \r\n \r\n UTR Sports ·\r\n \r\n
    • \r\n
    • \r\n \r\n Support ·\r\n \r\n
    • \r\n
    • \r\n \r\n Contact Us\r\n \r\n
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \"\"\r\n \r\n \r\n \"\"\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\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 Footer;\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\n\r\nimport segmentAnalytics from 'react-segment';\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 Footer from './components/Footer';\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 { 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\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 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\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":""}