{"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/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","useState","state","setState","useEffect","adultTeamPickleball","juniorTeamPickleball","memoizedState","useMemo","statsig","Provider","localConfig","localConf","console","log","rootDomain","brandedDomain","twitterHandle","links","support","supportHome","appStoreUrl","googlePlayUrl","sessionStandingsRule","devRoxKey","utrStripeAccountId","UTR_STRIPE_ACCOUNT_ID","googleApiKey","nonProdFacebookPixelId","devStatsigKey","localDevSettings","appHost","marketingAppHost","leaguesAppHost","apiAuthToken","apiHost","leaguesApiHost","searchApiHost","siteBaseUrl","brandedUrl","twitterAccount","fontUrl","roxKey","stripeHost","stripeClientId","stripeKey","useProxy","publicPath","pixelId","cdnUrl","isLocalhost","statsigKey","createNewRelicBrowserSnippet","apiUri","newRelicAppId","createTestSettings","environmentName","cdnUrlStatic","APIHOST","leaguesApiUri","LEAGUESAPIHOST","searchApiUri","newRelicBrowserSnippet","APPHOST","appHostName","APPHOSTNAME","MARKETINGAPPHOST","userSiteHost","USERSITEHOST","userSiteHostName","urljoin","segmentKey","devtoolConfig","prodCdnUrl","prodCdnUrlStatic","prodApiUri","prodLeaguesApiUri","searchApiUrl","prodServerSettings","STRIPE_CLIENT_ID","qaServerSettings","ciServerSettings","testServerSettings","test2ServerSettings","test3ServerSettings","test4ServerSettings","test5ServerSettings","test6ServerSettings","test7ServerSettings","test8ServerSettings","test9ServerSettings","test10ServerSettings","test11ServerSettings","rcSettings","config","CONFIG_SOURCE","configConstants","LeagueSessionTypes","FrequencyTypes","MatchFormatTypes","ResultTypes","ScheduleStatuses","TennisScoringFormatTypes","PickleballScoringFormatTypes","StatusTypes","WithdrawTypes","RequestStatusTypes","LeagueTypes","LeagueTierTypes","PlayerActionTypes","OrderByTypes","OrderByRuleTypes","SessionDrawTypes","MultiRoundScheduleTypes","genderTypes","sessionTypes","multiRoundScheduleTypes","matchFrequencyTypes","tennisScoringTypes","pickleballScoringTypes","durationTypes","tierTypes","openClosedStatusTypes","sessionMatchFormatTypes","drawTypes","weekdays","playerWithdrawTypes","matchResultTypes","PlayerManageOptions","searchDateFilterTypes","TournamentTeamsCount","tournamentTeamsCountOptions","SportTypeIds","getTypeForId","types","find","type","PlayerAvailabilityStatusTypes","PlayerAvailabilityStatus","PlayerAvailabilityColors","SessionStandingsRules","SessionStandingsTypes","tennisSessionStandingsOptions","pickleballSessionStandingsOptions","SearchSortTypes","SessionDateStatuses","SliderTypes","AGE","UTR","UTRP","getApiAxiosInstance","axios","create","baseURL","withCredentials","getLeaguesApiAxiosInstance","getSearchApiAxiosInstance","leaguesApiAxiosInstance","mainApiAxiosInstance","REFUND","getBreadcrumbs","contextId","url","get","getTeamsForSession","parameters","params","paramsSerializer","queryString","arrayFormat","searchLeagueSessions","axiosInstance","requestBody","post","scrollLeagueSessions","leaguesApi","createApi","reducerPath","baseQuery","baseUrl","a","method","data","requestUrl","isUsingProxy","requestBaseUrl","result","err","errorMessage","response","MessageStatusCode","Message","DisplayMessage","error","status","message","axiosBaseQuery","tagTypes","endpoints","build","getLeagueSummary","query","providesTags","getConference","getConferenceSessions","pageNumber","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","UT_ADULT_TEAM_PICKLEBALL","UT_ADULT_TEAM_TENNIS","UT_JUNIOR_TEAM_PICKLEBALL","UT_JUNIOR_TEAM_TENNIS","messageUser","focus","getAlternateIds","alternates","filter","alternate","getSinglesUtr","utrRating","includes","numArray","reduce","accumulator","parseFloat","getPowerIndex","powerRating","isEstimated","getPlayerAvailabilityStatus","availabilityStatus","sortPlayersByAvailability","players","sort","b","playerAvailabilityStatusTypeId","validateLineups","lineupData","position1TeamAlternatePlayers","position2TeamAlternatePlayers","lineup","filteredIds","player1TeamMemberId","player2TeamMemberId","Set","size","isDouble","lineupPosition","hasDuplicatePosition1Alternates","hasDuplicatePosition2Alternates","getPlayerAvatarImage","getPlayerProfileUrl","mapMembersForPlayerSearch","members","descendingComparator","orderBy","getComparator","order","getLeagueTypeIdForTier","leagueTierTypes","ADULT","JUNIOR","BackgroundImage","imgSrcUrl","imageType","images","extraCls","parentStylesClass","style","imageSrc","default","formattedImageSizes","formatImageSizesByType","className","styles","backgroundImage","imageRef","currentSrc","parentNode","UtrRoxFlag","Flag","personalClub","createPlayerGroupMainMenu","ratingsListFlag","withFeatureFlags","WrappedComponent","props","featureFlags","flagContainer","uiSlice","createSlice","initialState","sideMenuOpen","reducers","setSideMenu","action","payload","toggleSideMenu","actions","Description","descriptionItems","noEllipsis","Boolean","join","UtrIcon","icon","clickable","onClick","cursor","Icon","width","height","overflow","fontSize","defaultProps","_","cloneDeep","ratingStatusPopUpData","rated","unrated","inactive","projected","ratedStrings","getRatingStatus","ratingStatus","ratingValue","getRatingProgress","ratingProgress","gtag","dataLayer","event","getClickAttrs","category","attrs","defaultSearchState","clubs","hits","colleges","events","highSchools","GlobalSearch","useContext","navigate","useNavigate","cancelRef","useRef","wrapperRef","queryRef","preferences","useSelector","setIsLoading","showDropDown","setShowDropDown","searchQuery","setSearchQuery","hasSearched","setHasSearched","searchState","setSearchState","isAdultTeamPickballEnabled","isJuniorTeamPickballEnabled","hasNoResults","hasSomeResults","getSearchResults","URLSearchParams","append","searchUrl","cancel","current","cancelToken","CancelToken","c","catch","isCancel","stateToSet","handleClickOutside","useCallback","contains","addEventListener","removeEventListener","handleSeeAllClick","typeFilter","preventDefault","handleTypeFilterClick","handleTeamLeagueSearchClick","renderPlayer","index","descriptionShort","userIsPowered","showDecimals","utrValue","verifiedRating","ratingChoice","myUtrSingles","myUtrStatusSingles","matchType","sortValue","progress","myUtrProgressSingles","myUtrDoubles","myUtrStatusDoubles","myUtrProgressDoubles","ratingStatusDoubles","ratingProgressDoubles","ratingStatusSingles","ratingProgressSingles","utrType","actualValue","Math","ratingNumber","ratingArray","ratingDecimal","verified","infoTitle","infoDescription","getRatingDetails","ratingType","unDisplayedStatusStatus","newRatingObject","updateRatingObject","charAt","globalSearchDropdownOption","handlePlayerClick","PlayerIcon","VerifiedIcon","place","renderSchool","schoolClub","profilePhotoUrl","isCollege","school","shortName","photoUrl","schoolName","globalSearchDropdownOptionImage","CollegeIcon","SchoolIcon","renderClub","club","memberCount","handleClubClick","ClubIcon","renderEvent","eventSchedule","eventState","showYear","eventStartDate","eventEndDate","eventStartMonth","eventEndMonth","eventStartYear","eventEndYear","getEventDateString","handleEventClick","EventIcon","globalSearchContainer","hasMarketingLinks","globalSearchInputContainer","searchIconDropDownOpen","feedbackLeft","SearchIcon","marginTop","globalSearchInput","onKeyUp","onPaste","setTimeout","trim","onFocus","placeholder","feedbackRight","globalSearchDropdownContainer","hasQuery","showTennisPills","showTennisContent","showPickleballPills","showPickleballContent","globalSearchDropDown","Button","variant","paidHitClubs","globalSearchDropdownNoMatches","globalSearchDropdownOptions","searchTypeTitle","i","source","loading","renderDropdown","mapDispatchToProps","connect","auth","showHeaderItems","nav","Container","maxWidth","Box","flexWrap","alignItems","showOverrides","hamburger","onMenuClick","joinBtn","navLink","authed","createPlay","ProfileIcon","position","mobileNavLink","HomeIcon","PlayIcon","Input","control","hasError","rules","required","render","field","TextField","fullWidth","LoadingIndicator","backgroundColor","justifyContent","bgcolor","CircularProgress","autocompleteService","LocationAutoComplete","inputValue","setInputValue","options","setOptions","getPlacePredictions","throttle","request","callback","active","google","maps","places","AutocompleteService","input","results","newOptions","Autocomplete","getOptionLabel","option","filterOptions","x","autoComplete","includeInputInList","filterSelectedOptions","onChange","newValue","onInputChange","newInputValue","renderInput","renderOption","structured_formatting","main_text_matched_substrings","parts","main_text","match","Grid","container","item","component","LocationOnIcon","sx","color","mr","xs","part","fontWeight","highlight","text","Typography","secondary_text","Location","Slider","isLabelHidden","sliderType","sliderLength","step","getSliderData","htmlFor","max","min","Select","isFullWidth","helperText","onSelectChange","FormControl","InputLabel","MenuItem","FormHelperText","FormSubmitButton","isSubmitting","LoadingButton","disabled","loadingIndicator","PlayerSearch","isProPlayerSearch","searchMembersOnly","onPlayerSelected","selectedPlayers","setQuery","searchResults","setSearchResults","delay","debouncedValue","setDebouncedValue","handler","clearTimeout","useDebounce","delete","filteredHits","hit","every","updateStateForQuery","handleOnChange","isOptionEqualToValue","reason","handleOnInputChange","InputProps","endAdornment","optionProps","spacing","PlayerSearchResultCard","onRemovePlayer","showRemoveButton","Paper","mb","md","ml","geocoder","getLocationData","placeId","place_id","Geocoder","geocodeResults","geocode","PlacesServiceStatus","OK","formatted_address","geometry","getLocationNameFromCoordinates","latLng","address_components","city","comp","long_name","short_name","getBrowserLocationCoordinates","locationError","enableHighAccuracy","timeout","maximumAge","Promise","resolve","reject","navigator","geolocation","getCurrentPosition","coords","latitude","longitude","errorPopupSlice","isOpen","showErrorPopup","hideErrorPopup","conferenceDetailsSlice","setSportTypeId","CreateConferenceForm","isManaging","isLoadingConference","ageRange","utrpRange","isUpdated","isSuccess","useParams","dispatch","useDispatch","originalLocation","setOriginalLocation","conferenceOrganizer","setConferenceOrganizer","setLeagueId","buttonText","defaultValues","details","conferenceRatingRange","useForm","mode","handleSubmit","reset","formState","errors","dirtyFields","confRange","conferenceLeagueId","sportId","fetchedConference","conferenceLocation","confAgeRange","confRatingRange","formData","handleFormSubmit","formValues","formattedLocation","unwrap","conferenceOrganizerMemberId","isTennisConference","mt","Divider","onSubmit","lg","multiline","minRows","elevation","CreateConferencePage","DateTimePicker","minutesStep","minDate","onDateChange","LocalizationProvider","dateAdapter","DateAdapter","inputFormat","minDateTime","inputProps","ApprovedIcon","xmlns","viewBox","fill","fillRule","clipRule","d","cx","cy","r","stroke","Popup","isSuccessful","buttonLabel","onAction","actionLabel","Dialog","p","DialogContent","padding","DialogContentText","align","DialogActions","RadioGroup","FormControlLabel","Radio","SessionMatchFormat","matchFormat","isDisabled","SINGLES","DOUBLES","BOTH","scoringTypes","Singles","minWidth","scoringType","duration","Doubles","TOURNAMENT","getTooManyMatchesPerTeamError","numberOfTotalWeeks","diff","totalWeeksAvailable","floor","CreateSessionForm","isLoadingSession","onSessionUpdated","OPEN","ONCE_A_WEEK","FIRST_MATCH_BACK_DRAW","FOUR","EIGHT","SIXTEEN","TENNIS_WIN_LOSS_RECORD","PICKLEBALL_WIN_LOSS_RECORD","hasRegisteredPlayers","hasPostedResults","hasPublishedSchedule","hasSchedule","isTennisSession","isRestrictedSession","standingsRuleOptions","setStartDate","teamRegisterStartDate","setTeamRegisterStartDate","totalPlayerCost","setTotalPlayerCost","setMatchFormat","isTournamentSession","setIsTournamentSession","skipToken","setConferenceId","leagueVerifiedFee","setLeagueVerifiedFee","showRuleConfirmationModal","setShowRuleConfirmationModal","sessionStandingsRuleId","setSessionStandingsRuleId","updatedStandingsRuleId","setUpdatedStandingsRuleId","leaguesFees","isLoadingLeaguesFees","getValues","setValue","setError","clearErrors","sessionConferenceId","fetchedSession","sessionLocation","toISOString","activeTab","isTournament","ruleValue","rule","row","startAdornment","InputAdornment","textAlign","feeValue","isNaN","handleEntryFeeChange","CreateSessionPage","StyledTableRow","styled","TableRow","theme","palette","hover","border","PostScoreInput","borderBottomColor","appColors","gradientBlue","shouldForwardProp","prop","showTiebreaker","disable","MozAppearance","borderRightWidth","borderRadius","borderBottomRightRadius","borderTopRightRadius","WebkitAppearance","PostScoreTieBreakInput","borderLeftWidth","borderTopLeftRadius","borderBottomLeftRadius","outline","TiebreakerText","top","right","darkText","ScoreCardTypography","MuiListSubheader","blue","white","isLoser","grey","black","typography","fontWeightMedium","StyledGrid","marginLeft","marginRight","common","MemberTeamTableLink","Link","CustomSwitch","background","minHeight","textTransform","lineHeight","letterSpacing","Switch","margin","transitionDuration","transform","lighterGreen","opacity","coolGrey600","StyledTooltip","Tooltip","classes","popper","tooltipClasses","tooltip","blueGrey100","boxShadow","shadows","fontFamily","secondary","arrow","LeaguesTable","useTheme","headCells","tableData","sortBy","rowComponent","isSortingDisabled","sortOrder","setSortOrder","orderProperty","setOrderProperty","Toolbar","pl","sm","pr","flex","TableContainer","Table","TableHead","headCell","TableCell","sortDirection","TableSortLabel","hideSortIcon","direction","property","whiteSpace","TableBody","slice","rowData","ConferencesTable","leagueConferences","onManageClicked","conferences","setConferences","formattedConferences","genderType","ageKeys","formatConferencesForTable","tabIndex","scope","ConferencesTab","LeagueDeskPage","leagueData","organizerLeagues","isLeagueOrganizer","onLeagueSelected","LeagueDeskWrapper","setOrganizerLeagues","setIsOrganizerLeague","isLoadingLeagueData","leagueDataError","userLeagues","isLoadingOrganizerLeagues","organizerLeaguesError","tennisLeagues","leagues","tennis","pickleballLeagues","pickleball","formattedLeagues","league","isOrganizerLeague","LeagueDesk","getBreadcrumbData","Breadcrumbs","shouldUpdateBreadcrumb","onBreadcrumbUpdated","isAdmin","breadcrumbs","CONFERENCE","SESSION","TEAM","leagueUrl","conferenceUrl","sessionUrl","getLastLabel","renderBreadcrumb","isCurrentContext","isBelowContext","to","isConferenceContext","isBelowConferenceContext","isSessionContext","isBelowSessionContext","isTeamContext","role","LinearProgress","separator","genericPopupSlice","showPopup","hidePopup","MemberRoleManager","isUpdatingRole","isLoadingTeam","memberRole","onAddMemberRole","onRemoveMemberRole","TEAM_CAPTAIN","originalMembers","setOriginalMembers","showConfirmationPopup","setShowConfirmationPopup","isRemovingMember","setIsRemovingMember","memberAwaitingAction","setMemberAwaitingAction","mappedMembers","handleOnRemoveMemberRole","popupAction","isError","popupTitle","popupMessage","SessionsTable","conferenceSessions","onManageClick","onViewClick","onRemoveClick","sessions","setSessions","formattedSessions","sessionType","sessionStatus","SessionsTab","onRemoveSession","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","pb","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","pt","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","sportType","leagueTierType","START_DATE","UTR_SORT","UTRP_SORT","dateStatus","defaultDateStatus","defaultSearchFilters","leagueTypeIds","distanceFilter","distance","long","ageFilter","utrFilter","utrPFilter","sessionDateStatuses","genderTypeIds","sportTypeIds","setSearchFilters","hasResetSearchFilters","setHasResetSearchFilters","setCurrentLocation","currentLeagueTierType","setCurrentLeagueTierType","currentDateStatus","setCurrentDateStatus","isLoadingCurrentLocation","setIsLoadingCurrentLocation","handleOnUrlChange","resetSearchOnUrlChange","resetSearch","handleOnApplyLocationFilter","isLoadingLocation","dateStatuses","tierTypeId","utrs","utrps","utrPMin","utrPRMax","utrPRangeMin","utrPRangeMax","SearchWrapper","setUserLocation","setSportType","setLeagueTierType","parsedLeagueId","SessionPageHeader","OVERVIEW","STANDINGS","ManagerCard","managers","isUserLoggedIn","parsedNumber","parsePhoneNumber","phoneNumber","formatInternational","handleOnMessageClick","RegistrationInfoCard","cost","sessionData","onRequestToCaptain","onRegisterButtonClick","PENDING","rangeTitle","today","isPlayerInSession","isCaptainRequestPending","isTodayBeforeSessionEndDate","isTodayBeforeRegistrationEndDate","isNotAPlayerOrCaptainInSession","showRequestToCaptainButton","TEAMS_FORMING_TEXT","TEAMS_FORMING_CAPTAIN_TEXT","showTeamsFormingText","Card","CardContent","OverviewTab","desktopPadding","displayMultiRoundScheduleSelect","SessionStandingsTable","sessionStandings","percentageLabel","standingsHeadCells","gamesWonPercentage","StandingsTab","teamStandings","StripeInput","inputRef","elementRef","Component","useImperativeHandle","onReady","element","registrationTerms","SubmitPaymentForm","clientSecret","onRegistrationSuccessful","segmentTrackingBody","stripe","useStripe","elements","useElements","stripeError","setStripeError","billingCountries","address","analytics","track","confirmCardPayment","payment_method","card","getElement","CardElement","billing_details","stripeCardError","handleInputOnFocus","InputLabelProps","shrink","inputComponent","pattern","RegistrationConfirmation","registrationFees","onRegistrationSuccess","formattedServiceFee","formattedTotalFee","finalCurrencySymbol","isPaidLeague","TeamSelection","onTeamCardClick","onNotifyOrgClick","canSendSessionJoinRequest","getCaptains","toString","formatDescription","hasRegistrationPin","PasswordConfirmation","onPinSubmitted","isInvalidPasscode","paddingTop","onMessageClick","RegistrationStepper","onPasscodeSubmitted","pageName","onTeamRemoveClick","stripeInstance","isTeamPage","activeStep","setActiveStep","onTeamSelectionClick","handleNext","handleOnPinSubmitted","steps","content","fetchData","RegistrationDrawer","drawerWidth","Drawer","anchor","SessionPage","isInvalidPin","setIsInvalidPin","setClientSecret","setStripeInstance","currentTeamData","setCurrentTeamData","showRegistrationDrawer","setShowRegistrationDrawer","showRegistrationSuccessPopup","setShowRegistrationSuccessPopup","showNotifyOrganizerSuccessPopup","setShowNotifyOrganizerSuccessPopup","showNotifyOrganizerFailurePopup","setShowNotifyOrganizerFailurePopup","teamsAvailableData","sessionSummaryError","refetchSummary","isLoadingStandings","standingsError","refetchStandings","isSuccessfulRequest","validatePin","handleRemoveTeamData","initiateTeamRegistration","secret","paymentAccountId","isFreeSession","loadStripe","stripeAccount","handleOnRequestToCaptain","handleOnPasscodeSubmitted","handleOnNotifyOrgClick","handleOnRegisterClick","handleOnCloseRegistrationSuccessPopup","handleOnCloseNotificationSuccessPopup","handleOnCloseNotificationFailurePopup","currentSession","mappedSession","registrationDates","mapSession","sessionDescription","singlesFormat","doublesFormat","MATCH_TAB","noSidePadding","renderSessionContent","totalFee","sessionJoinRequest","CompletedSessionModal","LineupControls","canUserViewLineups","hasMatchDatePassed","onShowLineupModal","onLineupStatusChange","LOCKED","DRAFT","PUBLISH","UNPUBLISH","LOCK","UNLOCK","PUBLISH_TOOLTIP","LOCK_TOOLTIP","UNPUBLISH_TOOLTIP","UNLOCK_TOOLTIP","setLineupStatusId","showSetLinesButton","setShowLinesButton","showEditLinesButton","setShowEditLinesButton","showLockButton","setShowLockButton","showPublishButton","setShowPublishButton","isLineupStatusButtonsDisabled","setIsLineupStatusButtonsDisabled","isUserCaptain","setIsUserCaptain","lockButton","publishButton","lockTooltip","publishTooltip","lineupButtonLabels","setLineupButtonLabels","isTeamCaptain","numberOfSetLines","numberOfLines","isDraftLineup","isLockedLineup","isCaptainWithNoScoresPosted","isSetLinesButtonVisible","isEditLinesButtonVisible","isLockButtonVisible","isPublishButtonVisible","isStatusButtonsDisabled","lockButtonLabel","lockTooltipText","publishButtonLabel","publishTooltipText","handleOnShowLineupModal","handleOnTogglePublish","updatedStatus","placement","LocationTab","COMPLETED","COMPLETED_WITH_PARTIAL_SCORES","DEFAULTED","WITHDREW","RETIRED","INCOMPLETE","MATCH_NOT_PLAYED","SideKeys","MatchPositionKeys","MatchPositions","PlayerKeys","ValidationErrors","isNumericScore","score","hasScoresEntered","matchScores","hasScore","hasPosition1Score","position1Score","hasPosition2Score","position2Score","findPlayerInTeam","switchMatchScores","side1","side2","sideResult","sideId","getResultScore","getPositionsForMatch","isSide1Position1","hasDuplicatePlayersInMatch","playerIds","player1","player2","hasInvalidPlayerCount","matchOutcomeId","createDefaultedMatchResults","matchOutcome","clearedSideResult","set1Score","set2Score","set3Score","set4Score","set5Score","tieBreakSet1Score","tieBreakSet2Score","tieBreakSet3Score","tieBreakSet4Score","tieBreakSet5Score","winningSideId","resultCompletionTypeId","side1Results","player1MemberId","player1PlayerId","player2MemberId","player2PlayerId","side2Results","outcomeId","position1Results","position2Results","createMatchResults","sets","position1Tiebreaker","position2Tiebreaker","getMatchOutcomeOptions","positionOnePlayerOne","positionTwoPlayerOne","position1SideId","position2SideId","position1Name","position2Name","hasScores","scoreType","hasPartialScores","contest","getOutcomeForExistingMatch","outcome","outcomeIndex","winnerSideId","BEST_OF_THREE","TWO_SETS_WITH_TIEBREAKER","SINGLE_SET","TIME_BASED","FAST_FOUR","DefaultSets","isSetTied","set","isTieScore","hasTiebreakerScore","abs","validateTiebreaker","tiebreakerError","validateTimeBasedSet","isValidCompletedSetScore","hasSetScores","hasPartialSetScores","validationError","isTiebreakerScore","validateCompletedBestOfThree","isTiebreakerSet3Score","hasTieScore","hasOutOfRangeScore","hasNotMetMinimumAmountOfPoints","hasThirdSetTie","hasOutOfRangeThirdSetScore","validateCompletedTwoSetWithTiebreaker","maxProSetPointsAllowed","validateCompletedSingleSet","validateCompletedFastFour","isValidCompletedSet","isValidPartialSetScore","hasMissingTiebreakerScore","isPosition1ScoreInvalid","isPosition2ScoreInvalid","isValidPartialScore","getWinnerForSets","partialSetCount","isWinnerPosition1","position1CompletedWins","position2CompletedWins","position1PartialWins","position2PartialWins","invalidSetId","sortedSetIds","hasUnorderedScoringSets","isPosition1FirstSetWinner","scoringSets","position1GamesWon","position2GamesWon","isFirstSet","getPartialScoreWinnerForTimeBasedSets","validSetError","totalPosition1Wins","totalPosition2Wins","UTSet","onScoreChange","currentSetId","POSITION_ONE_SCORE","POSITION_ONE_TB_SCORE","POSITION_TWO_SCORE","POSITION_TWO_TB_SCORE","isTie","setIsTie","showTiebreakerInput","setShowTiebreakerInput","showPosition1Tiebreaker","showPosition2Tiebreaker","isSetTie","handleOnScoreChange","changedSet","positionKey","isTiebreaker","handleOnFocus","setid","MatchOutcomeSelect","hasEnteredScores","onMatchOutComeChange","PlayerSelect","player1Id","player2Id","playerOptions","side","onPlayerChange","isSmallScreen","PLAYER_1","PLAYER_2","handleOnPlayerChange","selectedPlayer","renderOptions","PostTennisScoreModal","position1Players","position2Players","selectedMatch","onSaveMatchScore","onDuplicatePlayersInMatch","onInvalidPlayerCount","SIDE_1","SIDE_2","position1TeamName","position2TeamName","setCurrentMatch","setSets","originalSets","setOriginalSets","setCurrentSetId","originalMatch","setOriginalMatch","scoringError","setScoringError","setHasEnteredScores","matchOutcomeOptions","setMatchOutcomeOptions","setMatchOutcome","originalMatchOutcome","setOriginalMatchOutcome","setWinningSideId","isEditing","setIsEditing","hasUnchangedScores","hasUnchangedMatch","hasUnchangedMatchOutcome","isUnchangedMatch","existingSets","position1Result","position2Result","hasSet1Position1Score","hasSet1Position2Score","hasSet1Position1TiebreakerScore","hasSet1Position2TiebreakerScore","hasSet2Position1Score","hasSet2Position2Score","hasSet2Position1TiebreakerScore","hasSet2Position2TiebreakerScore","hasSet3Position1Score","hasSet3Position2Score","hasSet3Position1TiebreakerScore","hasSet3Position2TiebreakerScore","getExistingMatchSets","position1Player1Id","position1Player2Id","position2Player1Id","position2Player2Id","handleOnSetScoreChange","setId","validatedValue","isTieBreaker","getValidatedValueForSet","newSets","setIndex","newSet","updatedSet","handleOnSetFocus","handleOnSwitchScores","updatedSetScores","switchSetScores","updatedMatch","playerPosition","matchName","position1PlayerSide","position2PlayerSide","hasNonScoringOutcome","hasNoErrors","hasDuplicatePlayers","hasInvalidPlayerAmount","winnerId","PickleballGame","game","changedGame","BEST_OF_THREE_GAMES","SINGLE_GAME","TIME_BASED_GAME","DefaultPickleballGames","isValidCompletedGameScore","hasGameScores","hasPartialGameScores","validatePickleballGame","isValidCompletedGame","PostPickleballScoreModal","games","setGames","originalGames","setOriginalGames","existingGames","getExistingPickleballMatchGames","handleOnGameScoreChange","gameId","getValidatedValueForGame","newGames","gameIndex","newGame","updatedGames","switchGameScores","renderPickleballGames","hasPreviousGameScore","hasCurrentScores","tieScoreGameId","position1Wins","position2Wins","positionOneTotalPoints","positionTwoTotalPoints","getWinnerForGames","SetScores","outcomeDescription","isScorelessOutcome","hasSet1Score","hasSet2Score","hasSet3Score","hasSet1TiebreakerScore","hasSet2TiebreakerScore","hasSet3TiebreakerScore","fontColor","displayOutcomeDescription","noScores","PlayerAvatarWithUtr","player1Name","player2Name","AvatarWithUtrTemplate","TeamMatchScoreCard","onEditClicked","onClearMatchClick","isIncompleteOutcome","isDefaultedOutcome","showClearButton","TeamMatchSetScores","TeamMatchAlternatesCard","positionAlternates","alternatePlayers","TeamMatchSummary","summary","scores","winningTeamId","homeScore","awayScore","hasWinner","awayTeamUrl","homeTeamUrl","homeTeamTextColor","awayTeamTextColor","truncatedTextStyles","gradientTurquoise","PlayerAvailabilityEditModal","onStatusChange","PlayerAvailabilityReminderModal","onReminderChange","playersToRemind","setPlayersToRemind","getLabelForAvailabilityStatus","groupedPlayersByAvailability","statusTypeId","entries","ids","some","selectedPlayerIds","updatedPlayersToRemind","splice","handleAvailabilityReminderSwitch","flat","PlayerAvailabilityIndicator","onAvailabilityClick","isIconOnly","iconSize","green","orange","getIconForAvailabilityStatus","getButtonForAvailabilityStatus","PlayerTableRow","isUserTeamMember","utrp","playerImage","TeamTabTable","SuccessSnackbar","Snackbar","autoHideDuration","ContentProps","TeamTab","displaySuccessSnackbar","onCloseSuccessSnackbar","showRemindersModal","setShowRemindersModal","showAvailabilityModal","setShowAvailabilityModal","availabilityIdToBeUpdated","setAvailabilityIdToBeUpdated","LARGE_BOOK","handleOnCloseAvailabilityModal","handleOnAvailabilityClick","filteredRosteredPlayers","filteredSubstitutePlayers","substituteHeadCells","remindersPlayerData","PlayerRating","LineupDropdownItem","noRecord","totalPlayed","avatarOnly","LineupAlternatesCard","roster","onAddAlternate","onRemoveAlternate","teamPlayer","getPlayerNameForSelection","LineupCard","canEditPosition1","canEditPosition2","POSITION_1","POSITION_2","MATCH_POSITION_1","MATCH_POSITION_2","currentLineup","setCurrentLineup","selectedPlayer1Position1","setSelectedPlayer1Position1","selectedPlayer2Position1","setSelectedPlayer2Position1","selectedPlayer1Position2","setSelectedPlayer1Position2","selectedPlayer2Position2","setSelectedPlayer2Position2","cardTitle","showBothPositions","teamPosition","isPlayerTwo","isPosition1","positionTeamId","playerTeamMemberId","updatedLineup","sortedPosition2Players","sortedPosition1Players","doublesPlayer2Value","doublesPlayer1Value","singlesPlayerValue","POSITION_1_ALTERNATES","POSITION_2_ALTERNATES","APPENDED_ALTERNATE","SetLineupModal","matchLineups","setMatchLineups","position1AlternatePlayers","setPosition1AlternatePlayers","position2AlternatePlayers","setPosition2AlternatePlayers","isAlternatesDisabled","setIsAlternatesDisabled","updateLineups","isPosition1Lineup","position1Alternates","position2Alternates","resetField","position1Fields","position1Append","position1Remove","position2Fields","position2Append","position2Remove","mappedAlternateIds","singlesLineups","doublesLineups","position1Ids","position2Ids","lineupTeamMemberIds","lineupIds","handleOnFormSubmit","position1AlternateIds","position2AlternateIds","foundIndex","isExistingLineup","updatedMatchLineups","updatedLineups","playerIndex","handleOnAddAlternate","handleOnRemoveAlternate","indexToRemove","alternatePositionFields","alternateError","alternateFieldName","alternateRoster","alternateTeamName","alternateTeamId","scroll","LineupStatusMessaging","notifyPlayersMessage","TeamMatchPage","LINES","LOCATION","AWAY_TEAM","HOME_TEAM","showPostScoreModal","setShowPostScoreModal","setSelectedMatch","teamScores","setTeamScores","pollingInterval","setPollingInterval","isPostingScore","setIsPostingScore","setWinningTeamId","setTimestamp","showCompletedSessionModal","setShowCompletedSessionModal","showLineupModal","setShowLineupModal","showClearMatchModal","setShowClearMatchModal","showAvailabilityReminderSnackbar","setShowAvailabilityReminderSnackbar","matchToBeCleared","setMatchToBeCleared","showLineupNotificationModal","setShowLineupNotificationModal","updatedLineupStatus","setUpdatedLineupStatus","setHasMatchDatePassed","setIsAttemptingToPostScore","teamMatchDate","setTeamMatchDate","setPosition1Team","setPosition2Team","userTeamMemberIds","setUserTeamMemberIds","rosters","isLoadingRosters","requestingMember","useGetTeamMatchRosters","refetchMatchSummary","latestResultData","latestResultError","playerMatches","setPlayerMatches","setLineupData","setCanUserViewLineup","showCompletedSessionWarning","setShowCompletedSessionWarning","showConfirmation","lineupStatusConfirmation","setLineupStatusConfirmation","isLoadingPlayerMatches","updateLineupStatus","showVerifiedCompletedSessionWarning","canViewLineups","getSnackbarConfirmationNotification","isNotifyingPlayers","locked","published","isCurrentStatusPublished","handleOnLineupStatusChange","confirmation","handleOnCloseStatusConfirmation","usePlayerMatches","updatePlayerReminder","isClearingTeamMatch","sortMatchesByLineupPosition","resultsLastUpdatedMs","isNowAfterMatchDate","update","showDuplicatePlayersError","showInvalidPlayerCountError","handleOnCloseScoreModal","handleOnSaveMatchScore","handleOnEditScoreClicked","singlesMatches","singlePlayerMatches","doublesMatches","doublesPlayerMatches","allMatches","matchToBeUpdated","selectedMatchToBeUpdated","handleOnCloseSuccessSnackbar","handleOnReminderChange","handleOnClearMatchClick","handleOnConfirmClearMatch","handleOnLineupModalAction","singleMatchesToDisplay","doubleMatchesToDisplay","showPosition2Alternates","position2TeamAlternates","showPosition1Alternates","position1TeamAlternates","canPostScores","isCaptain","singlesScoringFormatType","doublesScoringFormatType","Alert","EditTeamDetailsModal","registrationStatus","MessagePlayersModal","onMessageSubmitted","onRequestClose","shouldIncludeCaptains","setShouldIncludeCaptains","clearForm","TeamProfileInfoCard","onJoinClick","onShareClick","isRegistrationAvailable","isLoadingRegistration","isTodayAfterSessionEndDate","isRegistrationDisabled","teamSummary","onRegisterClick","fees","showAddCaptainModal","setShowAddCaptainModal","captainToBeUpdated","setCaptainToBeUpdated","mappedCaptains","handleOnConfirmRemoval","handleOnConfirmAddition","handleOnCloseAddCaptainModal","captainToBeRemoved","RegistrationPinModal","isValidatingPin","isInvalidPassword","handleOnRequestClose","MultiRoundScheduleToggle","ToggleButtonGroup","exclusive","ToggleButton","setRounds","teamScheduleByDate","isLoadingTeamScheduleByDate","teamScheduleByDateError","teamSchedule","handleOnScheduleChange","mappedRoundMatches","filteredTeamMatches","TeamPageHeader","mobileAndDesktopCategory","mobileAndDesktopSize","mobileDisplay","mobileSpacing","mobileColon","sessionLink","lightBlue","TeamPage","parsedTeamId","setIsCaptainView","setTab","showPinModal","setShowPinModal","showMessagePlayersPopup","setShowMessagePlayersPopup","isSuccessAlertOpen","setIsSuccessAlertOpen","teamDataError","refetchTeam","isLoadingTeamDetails","teamDetailsError","feesError","messageAllPlayers","hasMessagedPlayers","handleOnShareClick","handleOnMessagePlayersClick","handleOnMessagePlayers","handleOnCloseSuccessAlert","numOfWins","numOfLosses","typeId","renderTeamContent","severity","AppRoutes","path","ClubTierTypes","ClubRoles","clubTiers","getClubTypeString","MenuLink","trackedContent","pathname","menuItem","ui","isLoadingMemberTeams","collapsed","setCollapsed","toggleMyProfile","setToggleMyProfile","toggleMyAccount","setToggleMyAccount","handleLogOut","ev","Cookies","expire","handleClose","ADMIN","OWNER","MEMBER","visibleClubs","clubMemberships","hiddenClubTypes","getClubsVisibleToUser","clubsWhereUserIsAdminOrOwner","roleValue","isPremiumClubsOrganizer","tierTypeName","clubsWhereUserIsMember","sortedClubMemberships","PAID_HIT","paidHitClub","filteredClubs","sortClubMembershipsByPaidHit","clubMembershipsToDisplay","SwipeableDrawer","closeArea","closeBtn","menuSection_options","onboardingCompleted","onboardingRequired","playerDetails","isPowered","isProClubHeadOrganizer","menuSection","menuTitle","collapsible","enableBetaFeatures","clubMembership","clubId","isPersonalClubHeadOrganizer","canCreateEvent","section","onKeyDown","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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O,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,MAAM,oBAAoB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,OAAO,qBAAqB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,QAAQ,sBAAsB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAA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S,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,SAAS,uBAAuB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,UAAU,wBAAwB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,YAAY,0BAA0B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,aAAa,2BAA2B,eAAe,6BAA6B,IAAM,oBAAoB,WAAW,yBAAyB,SAAW,yBAAyB,WAAW,yBAAyB,OAAS,uBAAuB,WAAW,yBAAyB,KAAO,qBAAqB,gBAAgB,8BAA8B,YAAY,0BAA0B,WAAW,yBAAyB,gBAAgB,8BAA8B,cAAc,4BAA4B,WAAW,yBAAyB,QAAU,wBAAwB,WAAa,2BAA2B,UAAY,0BAA0B,KAAO,qBAAqB,QAAU,wBAAwB,cAAgB,8BAA8B,gBAAkB,gCAAgC,cAAgB,8BAA8B,OAAS,uBAAuB,QAAU,2B","file":"static/js/main.1d6667ef.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\",\"globalSearchDropdownTypes\":\"globalSearch_globalSearchDropdownTypes__3Tnqq\",\"globalSearchDropdownTypeBtn\":\"globalSearch_globalSearchDropdownTypeBtn__2-Td8\",\"globalSearchDropDown\":\"globalSearch_globalSearchDropDown__3XOh_\",\"globalSearchDropdownQuery\":\"globalSearch_globalSearchDropdownQuery__30AoL\",\"globalSearchDropdownNoMatches\":\"globalSearch_globalSearchDropdownNoMatches__2NnYs\",\"globalSearchDropdownOptions\":\"globalSearch_globalSearchDropdownOptions__1YUhb\",\"loading\":\"globalSearch_loading__1Z_f_\",\"searchTypeTitle\":\"globalSearch_searchTypeTitle__2HCdq\",\"globalSearchDropdownOption\":\"globalSearch_globalSearchDropdownOption__2lJeK\",\"globalSearchDropdownOptionImage\":\"globalSearch_globalSearchDropdownOptionImage__1l2E4\",\"name\":\"globalSearch_name__1YR1M\",\"place\":\"globalSearch_place__39RlN\",\"searchExpander\":\"globalSearch_searchExpander__2I1tb\"};","export const featureGates = {\r\n ADULT_TEAM_PICKLEBALL: 'adult_team_pickleball',\r\n JUNIOR_TEAM_PICKLEBALL: 'junior_team_pickleball',\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const scheduleMatchCardPropTypes = {\r\n match: PropTypes.shape({\r\n isSchedulePublished: PropTypes.bool,\r\n isMultiWeekByDate: PropTypes.bool,\r\n teamMatchId: PropTypes.number.isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string.isRequired,\r\n formattedAddress: PropTypes.string.isRequired\r\n }),\r\n position1Team: PropTypes.shape({\r\n teamId: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n position2Team: PropTypes.shape({\r\n teamId: PropTypes.number,\r\n name: PropTypes.string.isRequired,\r\n points: PropTypes.number.isRequired,\r\n requestingMemberPlayerAvailability: PropTypes.shape({\r\n teamMemberId: PropTypes.number.isRequired\r\n }),\r\n }),\r\n round: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n roundName: PropTypes.string,\r\n }),\r\n winnerTeamId: PropTypes.number\r\n }).isRequired,\r\n round: PropTypes.shape({\r\n roundName: PropTypes.string,\r\n name: PropTypes.string.isRequired\r\n }),\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n onEditMatch: PropTypes.func.isRequired,\r\n onDeleteMatch: PropTypes.func,\r\n matchNumber: PropTypes.number,\r\n isMultiWeekByDate: PropTypes.bool,\r\n};\r\n\r\nexport const defaultScheduleMatchCardPropTypes = {\r\n round: null\r\n};\r\n\r\nexport const locationCardPropTypes = {\r\n location: PropTypes.object.isRequired,\r\n};\r\n\r\nexport const fontAwesomeSvgIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n};\r\n\r\nexport const messageIconPropTypes = {\r\n memberId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n displayName: PropTypes.string,\r\n style: PropTypes.any,\r\n};\r\n\r\nexport const defaultMessageIconPropTypes = {\r\n memberId: '',\r\n displayName: '',\r\n style: {},\r\n};\r\n\r\nexport const utrIconPropTypes = {\r\n icon: PropTypes.any.isRequired,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n alt: PropTypes.string,\r\n style: PropTypes.object,\r\n clickable: PropTypes.any,\r\n};\r\n\r\nexport const deafultUtrIconPropTypes = {\r\n icon: null,\r\n size: '',\r\n};\r\n\r\nexport const createDrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n selectableTeams: PropTypes.array,\r\n onSkip: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultCreateDrawModalPropTypes = {\r\n open: false,\r\n selectableTeams: []\r\n};\r\n\r\nexport const modalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const defaultModalBaseSimplePropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n hideHeaderCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport const bootstrapDialogTitlePropTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const modalBaseWithHeaderPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string.isRequired,\r\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\r\n};\r\n\r\nexport const playerWithdrawModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const shareTeamModalPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onCopyClick: PropTypes.func.isRequired,\r\n url: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const defaultModalPropTypes = {\r\n open: false,\r\n};\r\n\r\nexport const confirmPublishSchedulePopupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultConfirmPublishSchedulePopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const popupPropTypes = {\r\n open: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n errorMessage: PropTypes.string,\r\n message: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n};\r\n\r\nexport const defaultPopupPropTypes = {\r\n open: false,\r\n title: null,\r\n buttonLabel: null,\r\n message: null,\r\n errorMessage: null,\r\n};\r\n\r\nexport const teamMatchSummaryPropTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n onEditClicked: PropTypes.func.isRequired,\r\n summary: PropTypes.shape({\r\n canEditTeamMatch: PropTypes.bool.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n position1Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n position2Team: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n isWinner: PropTypes.bool.isRequired,\r\n teamId: PropTypes.number.isRequired\r\n }).isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n sessionId: PropTypes.number.isRequired,\r\n sessionTypeId: PropTypes.number.isRequired\r\n }).isRequired,\r\n scores: PropTypes.shape({\r\n position1: PropTypes.number.isRequired,\r\n position2: PropTypes.number.isRequired,\r\n }).isRequired,\r\n isUpdating: PropTypes.bool,\r\n winningTeamId: PropTypes.number.isRequired\r\n};\r\n\r\nexport const defaultTeamMatchSummaryPropTypes = {\r\n isUpdating: true\r\n};\r\n\r\nexport const playerSearchPropTypes = {\r\n label: PropTypes.string.isRequired,\r\n onPlayerSelected: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultPlayerSearchPropTypes = {\r\n isProPlayerSearch: false,\r\n searchMembersOnly: false,\r\n showPickleballContent: false,\r\n showTennisContent: false,\r\n selectedPlayers: []\r\n};\r\n\r\nexport const addTeamsTablePropTypes = {\r\n sessionTeams: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n })).isRequired,\r\n sessionStartDateUtc: PropTypes.string.isRequired,\r\n sessionEndDateUtc: PropTypes.string.isRequired,\r\n wins: PropTypes.number.isRequired,\r\n losses: PropTypes.number.isRequired,\r\n })),\r\n maxTeams: PropTypes.number,\r\n isLoading: PropTypes.bool.isRequired,\r\n sortByProperty: PropTypes.number.isRequired,\r\n sortOrder: PropTypes.string.isRequired,\r\n selectedTeamIds: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onTeamSelected: PropTypes.func.isRequired,\r\n onSortChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const defaultAddTeamsTablePropTypes = {\r\n sessionTeams: []\r\n};\r\n\r\nexport const defaultCreateTeamModalPropTypes = {\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n onSaveClick: PropTypes.func,\r\n sessionId: PropTypes.number,\r\n sessionTypeId: PropTypes.number,\r\n};\r\n\r\nexport const teamProfileInfoPropTypes = {\r\n teamData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number,\r\n maxAge: PropTypes.number,\r\n genderTypeId: PropTypes.number,\r\n conferenceRatings: PropTypes.array,\r\n sportTypeId: PropTypes.number,\r\n }),\r\n homeCourtLocation: PropTypes.shape({\r\n formattedAddress: PropTypes.string,\r\n }),\r\n sessionSummary: PropTypes.shape({\r\n endDateUtc: PropTypes.string,\r\n }),\r\n }),\r\n registrationFees: PropTypes.shape({\r\n sessionEntryFee: PropTypes.number,\r\n total: PropTypes.number,\r\n }),\r\n onJoinClick: PropTypes.func,\r\n onShareClick: PropTypes.func,\r\n isRegistrationAvailable: PropTypes.bool,\r\n isLoadingRegistration: PropTypes.bool,\r\n};\r\n\r\nexport const manageSessionTeamCaptainPropTypes = {\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n displayName: PropTypes.string,\r\n })),\r\n isUpdatingCaptains: PropTypes.bool,\r\n isLoadingTeam: PropTypes.bool,\r\n onAddCaptain: PropTypes.func.isRequired,\r\n onRemoveCaptain: PropTypes.func.isRequired,\r\n isRequired: PropTypes.bool,\r\n maxCaptains: PropTypes.number,\r\n};\r\n\r\nexport const createTeamCaptainManagerPropTypes = {\r\n captains: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n displayName: PropTypes.string.isRequired,\r\n })),\r\n isUpdatingCaptains: PropTypes.bool,\r\n isLoadingTeam: PropTypes.bool,\r\n onAddCaptain: PropTypes.func.isRequired,\r\n onRemoveCaptain: PropTypes.func.isRequired,\r\n isRequired: PropTypes.bool,\r\n};\r\n\r\nexport const addTeamsModalPropTypes = {\r\n isOpen: PropTypes.bool,\r\n isLoadingOptions: PropTypes.bool,\r\n isLoadingTeams: PropTypes.bool,\r\n onClose: PropTypes.func,\r\n teams: PropTypes.array,\r\n maxTeams: PropTypes.number,\r\n currentTeamCount: PropTypes.number,\r\n currentPage: PropTypes.number,\r\n pageCount: PropTypes.number,\r\n conferences: PropTypes.array,\r\n sessions: PropTypes.array,\r\n selectedConferenceId: PropTypes.number,\r\n selectedSessionIds: PropTypes.array,\r\n onConferenceChange: PropTypes.func,\r\n onSessionChange: PropTypes.func,\r\n onApplyClick: PropTypes.func,\r\n onPageChange: PropTypes.func,\r\n onSortChange: PropTypes.func,\r\n onCloseSessionDropdown: PropTypes.func,\r\n onAddTeams: PropTypes.func,\r\n sortByProperty: PropTypes.number,\r\n sortOrder: PropTypes.string,\r\n};\r\n\r\nexport const teamsTablePropTypes = {\r\n sessionTeams: PropTypes.array,\r\n onManageClicked: PropTypes.func,\r\n onRemoveClicked: PropTypes.func,\r\n hasSessionStarted: PropTypes.bool,\r\n};\r\n\r\nexport const manageSessionPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n onTabChange: PropTypes.func.isRequired,\r\n isMultiRoundSession: PropTypes.bool,\r\n};\r\n\r\nexport const manageTeamModalPropTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n teamId: PropTypes.number,\r\n onSaveClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const manageSessionCaptainCardPropTypes = {\r\n captain: PropTypes.shape({\r\n displayName: PropTypes.string.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n playerId: PropTypes.number,\r\n profileImage: PropTypes.string,\r\n location: PropTypes.shape({\r\n display: PropTypes.string,\r\n }),\r\n }).isRequired,\r\n onRemoveClick: PropTypes.func.isRequired,\r\n};\r\nexport const addTeamMatchModalPropTypes = {\r\n sessionId: PropTypes.number,\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n roundId: PropTypes.string,\r\n onSaveClick: PropTypes.func,\r\n scheduleId: PropTypes.number,\r\n refetchSessionSchedule: PropTypes.func,\r\n session: PropTypes.object\r\n};\r\n\r\nexport const addScheduleRoundPopupPropTypes = {\r\n rounds: PropTypes.array,\r\n open: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n insertRoundMessage: PropTypes.string,\r\n teamStandingsMessage: PropTypes.string.isRequired,\r\n errorMessage: PropTypes.string,\r\n buttonLabel: PropTypes.string,\r\n onAction: PropTypes.func,\r\n actionLabel: PropTypes.string,\r\n isTennis: PropTypes.bool,\r\n disableAddRoundButton: PropTypes.bool\r\n};\r\n\r\nexport const multiWeekByDatePropTypes = {\r\n scheduleByDate: PropTypes.object,\r\n onEditMatch: PropTypes.func.isRequired,\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const multiWeekByRoundPropTypes = {\r\n round: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n matches: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n teamMatchId: PropTypes.number.isRequired,\r\n matchDate: PropTypes.string.isRequired,\r\n })\r\n ),\r\n }).isRequired,\r\n onEditMatch: PropTypes.func.isRequired,\r\n onDeleteMatch: PropTypes.func.isRequired,\r\n isLeagueDeskSchedule: PropTypes.bool.isRequired,\r\n onDeleteRound: PropTypes.func.isRequired,\r\n onAddTeamMatch: PropTypes.func.isRequired,\r\n teams: PropTypes.array,\r\n isManaging: PropTypes.bool.isRequired\r\n};\r\n\r\nexport const manageSessionActionsPropTypes = {\r\n onAddRound: PropTypes.func.isRequired,\r\n onAddTeamClick: PropTypes.func.isRequired,\r\n onGenerateSchedule: PropTypes.func.isRequired,\r\n onCreateSchedule: PropTypes.func.isRequired,\r\n onPublish: PropTypes.func.isRequired,\r\n onUnpublishSchedule: PropTypes.func.isRequired,\r\n onScheduleChange: PropTypes.func.isRequired,\r\n onDeleteSchedule: PropTypes.func.isRequired,\r\n isCreatingManualSchedule: PropTypes.bool.isRequired,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n isLoadingSchedule: PropTypes.bool.isRequired,\r\n isScheduleCreated: PropTypes.bool.isRequired,\r\n isSchedulePublished: PropTypes.bool.isRequired,\r\n multiRoundScheduleType: PropTypes.number,\r\n teams: PropTypes.array.isRequired,\r\n maxTeamsCount: PropTypes.number,\r\n hasSessionEnded: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const headerPropTypes = {\r\n auth: PropTypes.shape({\r\n user: PropTypes.shape({\r\n claimedPlayer: PropTypes.shape({\r\n playerProfileImages: PropTypes.object\r\n })\r\n })\r\n }).isRequired,\r\n featureFlags: PropTypes.shape({\r\n messaging: PropTypes.shape({\r\n isEnabled: PropTypes.func\r\n })\r\n }).isRequired,\r\n toggleSideMenu: PropTypes.func.isRequired\r\n};\r\n\r\nexport const multiSelectFilterPropTypes = {\r\n propTypes: {\r\n selectOptions: PropTypes.array.isRequired,\r\n onApplyFilter: PropTypes.func.isRequired,\r\n hasResetFilters: PropTypes.bool.isRequired,\r\n label: PropTypes.bool.isRequired,\r\n currentValue: PropTypes.string\r\n },\r\n defaultProps: {\r\n currentValue: ''\r\n }\r\n};\r\n\r\nexport const leagueSearchResultsTablePropTypes = {\r\n searchResults: PropTypes.array.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n onSortChange: PropTypes.func.isRequired,\r\n sortByProperty: PropTypes.string.isRequired,\r\n sortOrder: PropTypes.string.isRequired\r\n};\r\n\r\nexport const sessionTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n conference: PropTypes.string.isRequired,\r\n location: PropTypes.string.isRequired,\r\n age: PropTypes.string.isRequired,\r\n rating: PropTypes.string.isRequired,\r\n gender: PropTypes.string.isRequired,\r\n startDate: PropTypes.string.isRequired,\r\n end: PropTypes.string.isRequired\r\n }),\r\n labelId: PropTypes.string.isRequired\r\n};\r\n\r\nexport const teamTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n teamMemberCount: PropTypes.number.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n captainNames: PropTypes.arrayOf(PropTypes.string),\r\n sessionDates: PropTypes.string.isRequired,\r\n record: PropTypes.string.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.number,\r\n isDoublesEstimated: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n onTeamSelected: PropTypes.func.isRequired,\r\n teams: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n selectedTeamIds: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n theme: PropTypes.object.isRequired,\r\n maxTeamsReached: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const teamsTableRowProps = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n homeCourtLocation: PropTypes.shape({\r\n formattedAddress: PropTypes.string,\r\n }),\r\n teamMemberCount: PropTypes.number.isRequired,\r\n captains: PropTypes.arrayOf(PropTypes.object),\r\n captainName: PropTypes.string,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.number,\r\n isDoublesEstimated: PropTypes.bool,\r\n }),\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n onManageClicked: PropTypes.func.isRequired,\r\n onRemoveClicked: PropTypes.func.isRequired,\r\n theme: PropTypes.object.isRequired,\r\n hasSessionStarted: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const statsigContextProviderPropTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport const sliderFilterPropTypes = {\r\n onApplyFilter: PropTypes.func.isRequired,\r\n hasResetFilters: PropTypes.bool.isRequired,\r\n sliderType: PropTypes.string.isRequired\r\n};\r\n\r\nexport const searchPagePropTypes = {\r\n propTypes: {\r\n userLocation: PropTypes.shape({\r\n lat: PropTypes.number,\r\n lng: PropTypes.number\r\n }),\r\n leagueTypeId: PropTypes.string.isRequired,\r\n sportType: PropTypes.number.isRequired,\r\n leagueTierType: PropTypes.number.isRequired,\r\n },\r\n defaultProps: {\r\n userLocation: {\r\n lat: null,\r\n lng: null\r\n }\r\n }\r\n};\r\n\r\nexport const formSubmitButtonPropTypes = {\r\n label: PropTypes.string.isRequired,\r\n isSubmitting: PropTypes.bool.isRequired,\r\n style: PropTypes.any,\r\n};\r\n\r\nexport const defaultFormSubmitButtonPropTypes = {\r\n style: {},\r\n};\r\n\r\nexport const createConferenceFormPropTypes = {\r\n isManaging: PropTypes.bool.isRequired,\r\n conferenceDetails: PropTypes.shape({\r\n maxAge: PropTypes.number,\r\n minAge: PropTypes.number,\r\n })\r\n};\r\n\r\nexport const teamMatchLinkPropTypes = {\r\n teamMatchLink: PropTypes.string.isRequired,\r\n roundName: PropTypes.string,\r\n isMultiWeekByDate: PropTypes.bool,\r\n};\r\n\r\nexport const radioGroupPropTypes = {\r\n control: PropTypes.object,\r\n name: PropTypes.string.isRequired,\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n description: PropTypes.string.isRequired,\r\n })).isRequired,\r\n sx: PropTypes.object,\r\n};\r\n\r\nexport const schedulePropTypes = {\r\n seasonRounds: PropTypes.arrayOf(PropTypes.object),\r\n isManaging: PropTypes.bool,\r\n onEditMatch: PropTypes.func,\r\n onDeleteMatch: PropTypes.func,\r\n isLeagueDeskSchedule: PropTypes.bool,\r\n drawSchedule: PropTypes.object,\r\n isSchedulePublished: PropTypes.bool,\r\n pageType: PropTypes.string,\r\n scheduleByDate: PropTypes.object,\r\n multiRoundScheduleType: PropTypes.number,\r\n displayTournamentBracketStyle: PropTypes.bool,\r\n sessionId: PropTypes.number,\r\n onDeleteRound: PropTypes.func,\r\n scheduleId: PropTypes.number,\r\n refetchSessionSchedule: PropTypes.func,\r\n teams: PropTypes.arrayOf(PropTypes.object),\r\n session: PropTypes.object\r\n};\r\n\r\nexport const manageSessionScheduleTabPropTypes = {\r\n session: PropTypes.shape({\r\n startDateUtc: PropTypes.string,\r\n endDateUtc: PropTypes.string,\r\n id: PropTypes.number,\r\n sessionTypeId: PropTypes.number,\r\n matchesPerTeam: PropTypes.number,\r\n sportTypeId: PropTypes.number,\r\n }),\r\n isLoadingSession: PropTypes.bool,\r\n onAddTeamClick: PropTypes.func,\r\n teams: PropTypes.array,\r\n maxTeamsCount: PropTypes.number,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const teamPageScheduleTabPropTypes = {\r\n teamId: PropTypes.number.isRequired,\r\n isTournament: PropTypes.bool.isRequired,\r\n session: PropTypes.shape({\r\n id: PropTypes.number,\r\n }),\r\n};\r\n\r\nconst sessionDetailsPropTypes = {\r\n conferenceId: PropTypes.number,\r\n description: PropTypes.string,\r\n doublesMatchCount: PropTypes.number,\r\n doublesPointsPerMatch: PropTypes.number,\r\n doublesScoringFormatTypeId: PropTypes.number,\r\n doublesTimeAllowedTypeId: PropTypes.number,\r\n drawTypeId: PropTypes.number,\r\n endDateUtc: PropTypes.string,\r\n matchesPerTeam: PropTypes.number,\r\n name: PropTypes.string,\r\n registrationFee: PropTypes.number,\r\n registrationVerificationFee: PropTypes.number,\r\n sessionStatusTypeId: PropTypes.number,\r\n sessionDetails: PropTypes.string,\r\n sessionTypeId: PropTypes.number,\r\n sessionStandingsTypeId: PropTypes.number,\r\n singlesMatchCount: PropTypes.number,\r\n singlesPointsPerMatch: PropTypes.number,\r\n singlesScoringFormatTypeId: PropTypes.number,\r\n singlesTimeAllowedTypeId: PropTypes.number,\r\n startDateUtc: PropTypes.string,\r\n teamRegistrationEndDateUtc: PropTypes.string,\r\n teamRegistrationStartDateUtc: PropTypes.string,\r\n teamRequiredPlayersMin: PropTypes.number,\r\n teamsMax: PropTypes.number,\r\n location: PropTypes.string,\r\n teamMatchFrequencyTypeId: PropTypes.number,\r\n};\r\n\r\nexport const manageSessionModalPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n ...sessionDetailsPropTypes\r\n }),\r\n isLoadingSession: PropTypes.bool,\r\n title: PropTypes.string,\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func.isRequired,\r\n onSaveClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const manageSessionDetailsTabPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n ...sessionDetailsPropTypes\r\n }),\r\n};\r\n\r\nexport const matchFormatPropTypes = {\r\n matchCount: PropTypes.number.isRequired,\r\n pointsPerMatch: PropTypes.number.isRequired,\r\n scoringFormatTypeId: PropTypes.number.isRequired,\r\n timeAllowedTypeId: PropTypes.number.isRequired,\r\n isDoubles: PropTypes.bool.isRequired,\r\n sportTypeId: PropTypes.number.isRequired,\r\n};\r\n\r\nexport const teamPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n wins: PropTypes.number,\r\n losses: PropTypes.number,\r\n sessionId: PropTypes.number.isRequired,\r\n sessionName: PropTypes.string.isRequired,\r\n isCaptainView: PropTypes.bool,\r\n onTabChange: PropTypes.func.isRequired,\r\n isTournament: PropTypes.bool,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.number,\r\n doublesRating: PropTypes.number,\r\n isSinglesEstimated: PropTypes.bool,\r\n isDoublesEstimated: PropTypes.bool\r\n })\r\n};\r\n\r\nexport const genericTablePropTypes = {\r\n headCells: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n })\r\n ).isRequired,\r\n tableData: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isLoading: PropTypes.bool,\r\n sortBy: PropTypes.string.isRequired,\r\n rowComponent: PropTypes.elementType.isRequired,\r\n isSortingDisabled: PropTypes.bool,\r\n};\r\n\r\nexport const leaguesTablePropTypes = {\r\n headCells: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n })\r\n ).isRequired,\r\n tableData: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isLoading: PropTypes.bool,\r\n sortBy: PropTypes.string.isRequired,\r\n rowComponent: PropTypes.elementType.isRequired,\r\n title: PropTypes.string,\r\n isSortingDisabled: PropTypes.bool,\r\n};\r\n\r\nexport const playersTablePropTypes = {\r\n teamPlayers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n memberId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n id: PropTypes.string,\r\n gender: PropTypes.string,\r\n playerId: PropTypes.number,\r\n teamId: PropTypes.number,\r\n firstName: PropTypes.string,\r\n lastName: PropTypes.string,\r\n wins: PropTypes.number,\r\n losses: PropTypes.number,\r\n location: PropTypes.oneOfType([\r\n PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n })\r\n ]),\r\n hasPostedScores: PropTypes.bool,\r\n canBeMovedOrCopied: PropTypes.bool,\r\n isSubstitute: PropTypes.bool,\r\n canBeRefunded: PropTypes.bool,\r\n })\r\n ),\r\n isLoading: PropTypes.bool,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const playersTableDefaultPropTypes = {\r\n teamPlayers: [],\r\n isManaging: false,\r\n hasSessionEnded: false,\r\n onWithdrawPlayer: () => {},\r\n onMovePlayer: () => {},\r\n onCopyPlayer: () => {},\r\n onTogglePlayerStatus: () => {},\r\n};\r\n\r\nexport const playerTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n doublesUtr: PropTypes.number,\r\n gender: PropTypes.string,\r\n id: PropTypes.string,\r\n isVerifiedDoubles: PropTypes.bool,\r\n isVerifiedSingles: PropTypes.bool,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n }),\r\n leagueId: PropTypes.number,\r\n sportTypeId: PropTypes.string,\r\n conferenceRatings: PropTypes.shape({\r\n utrRangeMin: PropTypes.number,\r\n utrRangeMax: PropTypes.number,\r\n pickleballRangeMin: PropTypes.number,\r\n pickleballRangeMax: PropTypes.number,\r\n }),\r\n }),\r\n onConferenceUpdated: PropTypes.func,\r\n isLoadingConference: PropTypes.bool,\r\n};\r\n\r\nexport const defaultCreateConferenceFormPropTypes = {\r\n conferenceDetails: null,\r\n isLoading: false,\r\n onConferenceUpdated: null,\r\n matchesPlayed: PropTypes.number,\r\n name: PropTypes.string,\r\n profileImage: PropTypes.string,\r\n playerId: PropTypes.string,\r\n record: PropTypes.string,\r\n singlesUtr: PropTypes.number,\r\n teamId: PropTypes.number,\r\n hasPostedScores: PropTypes.bool,\r\n canBeMovedOrCopied: PropTypes.bool,\r\n isSubstitute: PropTypes.bool,\r\n canBeRefunded: PropTypes.bool,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number,\r\n displayVerifiedIcon: PropTypes.bool,\r\n reliability: PropTypes.string,\r\n }),\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number,\r\n displayVerifiedIcon: PropTypes.bool,\r\n reliability: PropTypes.string,\r\n }),\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const playerTablePropTypes = {\r\n teamPlayers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.string,\r\n playerId: PropTypes.number.isRequired,\r\n teamId: PropTypes.number,\r\n name: PropTypes.string,\r\n doublesUtr: PropTypes.number,\r\n isVerifiedDoubles: PropTypes.bool,\r\n singlesUtr: PropTypes.number,\r\n isVerifiedSingles: PropTypes.bool,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n canBeMovedOrCopied: PropTypes.bool.isRequired,\r\n isSubstitute: PropTypes.bool.isRequired,\r\n canBeRefunded: PropTypes.bool.isRequired,\r\n profileImage: PropTypes.string,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }),\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }),\r\n singlesRecord: PropTypes.string,\r\n doublesRecord: PropTypes.string,\r\n })\r\n ),\r\n isLoading: PropTypes.bool,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n isSubstitutePlayers: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n};\r\n\r\nexport const playersTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n doublesUtr: PropTypes.number.isRequired,\r\n id: PropTypes.string.isRequired,\r\n isVerifiedDoubles: PropTypes.bool.isRequired,\r\n isVerifiedSingles: PropTypes.bool.isRequired,\r\n name: PropTypes.string.isRequired,\r\n profileImage: PropTypes.string.isRequired,\r\n playerId: PropTypes.string.isRequired,\r\n singlesUtr: PropTypes.number.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n hasPostedScores: PropTypes.bool.isRequired,\r\n canBeMovedOrCopied: PropTypes.bool.isRequired,\r\n isSubstitute: PropTypes.bool.isRequired,\r\n canBeRefunded: PropTypes.bool.isRequired,\r\n singlesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }).isRequired,\r\n doublesUTRP: PropTypes.shape({\r\n rating: PropTypes.number.isRequired,\r\n displayVerifiedIcon: PropTypes.bool.isRequired,\r\n reliability: PropTypes.string.isRequired,\r\n }).isRequired,\r\n singlesRecord: PropTypes.string.isRequired,\r\n doublesRecord: PropTypes.string.isRequired,\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const registrationCofirmationPropTypes = {\r\n registrationFees: PropTypes.shape({\r\n sessionEntryFee: PropTypes.number,\r\n leagueFee: PropTypes.number,\r\n serviceFee: PropTypes.number,\r\n currencySymbol: PropTypes.string,\r\n total: PropTypes.number\r\n }),\r\n clientSecret: PropTypes.string.isRequired,\r\n onRegistrationSuccess: PropTypes.func.isRequired,\r\n teamData: PropTypes.shape({\r\n sessionSummary: PropTypes.shape({\r\n id: PropTypes.string\r\n })\r\n })\r\n};\r\n\r\nexport const submitPaymentFormPropTypes = {\r\n clientSecret: PropTypes.string.isRequired,\r\n onRegistrationSuccessful: PropTypes.func.isRequired,\r\n segmentTrackingBody: PropTypes.shape({\r\n league_session_id: PropTypes.string,\r\n member_id: PropTypes.string,\r\n order_type: PropTypes.string,\r\n currency: PropTypes.string,\r\n session_fee: PropTypes.number,\r\n league_fee: PropTypes.number,\r\n service_fee: PropTypes.number,\r\n amount_paid: PropTypes.number,\r\n revenue: PropTypes.number,\r\n }).isRequired,\r\n};\r\n\r\nexport const errorBoundaryPropTypes = {\r\n main: PropTypes.bool,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired\r\n};\r\n\r\nexport const manageSessionTeamsTabPropTypes = {\r\n teams: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n id: PropTypes.number.isRequired,\r\n })\r\n ),\r\n maxTeamsCount: PropTypes.number.isRequired,\r\n sessionTypeId: PropTypes.number.isRequired,\r\n isLoading: PropTypes.bool.isRequired,\r\n onRemoveTeam: PropTypes.func.isRequired,\r\n hasSessionStarted: PropTypes.bool.isRequired,\r\n hasSessionEnded: PropTypes.bool.isRequired,\r\n onAddTeamClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const createSessionFormPropTypes = {\r\n sessionDetails: PropTypes.shape({\r\n conferenceId: PropTypes.number,\r\n endDateUtc: PropTypes.string,\r\n startDateUtc: PropTypes.string,\r\n registrationFee: PropTypes.number,\r\n teamRegistrationStartDateUtc: PropTypes.string,\r\n teamRegistrationEndDateUtc: PropTypes.string,\r\n registrationVerificationFee: PropTypes.number,\r\n sessionStandingsTypeId: PropTypes.number,\r\n sessionMatchTypeId: PropTypes.string,\r\n sessionTypeId: PropTypes.string,\r\n description: PropTypes.string,\r\n drawTypeId: PropTypes.string,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n }),\r\n isManaging: PropTypes.bool.isRequired,\r\n isLoadingSession: PropTypes.bool,\r\n onSessionUpdated: PropTypes.func,\r\n};\r\n\r\nexport const defaultCreateSessionFormPropTypes = {\r\n sessionDetails: null,\r\n isLoading: false,\r\n onSessionUpdated: null,\r\n};\r\n\r\nexport const registrationInfoCardPropTypes = {\r\n cost: PropTypes.string.isRequired,\r\n format: PropTypes.string.isRequired,\r\n sessionDates: PropTypes.string.isRequired,\r\n sessionData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number.isRequired,\r\n maxAge: PropTypes.number.isRequired,\r\n genderTypeId: PropTypes.number.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number.isRequired,\r\n }),\r\n captainRequest: PropTypes.shape({\r\n currentRequest: PropTypes.shape({\r\n sessionRequestStatusTypeId: PropTypes.number.isRequired,\r\n }),\r\n isCaptainInSession: PropTypes.bool.isRequired,\r\n }),\r\n memberTeams: PropTypes.array.isRequired,\r\n session: PropTypes.shape({\r\n endDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationEndDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationStartDateUtc: PropTypes.string.isRequired,\r\n sessionStatusTypeId: PropTypes.number.isRequired,\r\n }),\r\n }).isRequired,\r\n onRequestToCaptain: PropTypes.func.isRequired,\r\n onRegisterButtonClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const sessionPagePropTypes = {\r\n cost: PropTypes.string,\r\n format: PropTypes.string,\r\n sessionDates: PropTypes.string,\r\n sessionData: PropTypes.shape({\r\n conference: PropTypes.shape({\r\n minAge: PropTypes.number.isRequired,\r\n maxAge: PropTypes.number.isRequired,\r\n genderTypeId: PropTypes.number.isRequired,\r\n location: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n }),\r\n conferenceRatings: PropTypes.object,\r\n sportTypeId: PropTypes.number.isRequired,\r\n }),\r\n captainRequest: PropTypes.shape({\r\n currentRequest: PropTypes.shape({\r\n sessionRequestStatusTypeId: PropTypes.number.isRequired,\r\n }),\r\n isCaptainInSession: PropTypes.bool.isRequired,\r\n }),\r\n memberTeams: PropTypes.array,\r\n session: PropTypes.shape({\r\n endDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationEndDateUtc: PropTypes.string.isRequired,\r\n teamRegistrationStartDateUtc: PropTypes.string.isRequired,\r\n sessionStatusTypeId: PropTypes.number.isRequired,\r\n })\r\n })\r\n};\r\n\r\nexport const managerCardPropTypes = {\r\n managers: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n firstName: PropTypes.string.isRequired,\r\n lastName: PropTypes.string.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n phone: PropTypes.string,\r\n email: PropTypes.string,\r\n playerId: PropTypes.number,\r\n profileImage: PropTypes.string,\r\n })\r\n ),\r\n isUserLoggedIn: PropTypes.bool,\r\n isCaptainView: PropTypes.bool,\r\n onRemoveClick: PropTypes.func,\r\n};\r\n\r\nexport const sessionOverviewTabPropTypes = {\r\n description: PropTypes.string,\r\n cost: PropTypes.string.isRequired,\r\n sessionDates: PropTypes.string.isRequired,\r\n matchFormat: PropTypes.string.isRequired,\r\n sessionData: PropTypes.object.isRequired,\r\n isUserLoggedIn: PropTypes.bool.isRequired,\r\n managers: PropTypes.array.isRequired,\r\n onRegisterButtonClick: PropTypes.func.isRequired,\r\n onRequestToCaptain: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const teamPageOverviewTabPropTypes = {\r\n teamSummary: PropTypes.object.isRequired,\r\n isCaptainView: PropTypes.bool.isRequired,\r\n isRegistrationAvailable: PropTypes.bool.isRequired,\r\n isLoadingRegistration: PropTypes.bool.isRequired,\r\n onRegisterClick: PropTypes.func.isRequired,\r\n onShareClick: PropTypes.func.isRequired,\r\n fees: PropTypes.object.isRequired,\r\n captains: PropTypes.array.isRequired,\r\n isUserLoggedIn: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const sessionPageHeaderPropTypes = {\r\n tab: PropTypes.string.isRequired,\r\n sessionName: PropTypes.string,\r\n onTabChange: PropTypes.func.isRequired,\r\n isMultiRoundSession: PropTypes.bool.isRequired,\r\n conferenceName: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const createTeamFormPropTypes = {\r\n isManaging: PropTypes.bool.isRequired,\r\n teamDetails: PropTypes.shape({\r\n sessionId: PropTypes.number,\r\n timeOfDay: PropTypes.string,\r\n homeCourtLocation: PropTypes.shape({\r\n placeName: PropTypes.string,\r\n formattedAddress: PropTypes.string,\r\n }),\r\n registrationPin: PropTypes.string,\r\n sessionTypeId: PropTypes.number,\r\n dayOfWeek: PropTypes.string,\r\n }),\r\n isLoadingTeam: PropTypes.bool,\r\n isCaptainEditing: PropTypes.bool,\r\n onTeamUpdated: PropTypes.func,\r\n};\r\n\r\nexport const defaultCreateTeamFormPropTypes = {\r\n teamDetails: {},\r\n isLoadingTeam: false,\r\n isCaptainEditing: false,\r\n onTeamUpdated: null\r\n};\r\n\r\nexport const playersTabPropTypes = {\r\n teamId: PropTypes.number,\r\n isCaptainView: PropTypes.bool,\r\n onMessageAllPlayers: PropTypes.func,\r\n};\r\n\r\nexport const playerTabPropTypes = {\r\n sessionId: PropTypes.string.isRequired,\r\n onWithdrawPlayer: PropTypes.func,\r\n onMovePlayer: PropTypes.func,\r\n onCopyPlayer: PropTypes.func,\r\n onTogglePlayerStatus: PropTypes.func,\r\n isManaging: PropTypes.bool,\r\n hasSessionEnded: PropTypes.bool,\r\n isUpdating: PropTypes.bool,\r\n displaySinglesAndDoublesRecord: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const drawTablePropTypes = {\r\n onEditMatch: PropTypes.func.isRequired,\r\n onViewMatch: PropTypes.func.isRequired,\r\n onChangeClick: PropTypes.func,\r\n draw: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n drawId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n }).isRequired,\r\n selectableTeams: PropTypes.array.isRequired,\r\n hasPublishedSchedule: PropTypes.bool.isRequired,\r\n isUpdatingTeamMatch: PropTypes.bool,\r\n isManaging: PropTypes.bool.isRequired,\r\n isLoading: PropTypes.bool,\r\n isMainDraw: PropTypes.bool.isRequired,\r\n totalRounds: PropTypes.array.isRequired,\r\n isMobile: PropTypes.bool.isRequired,\r\n displayTournamentBracketStyle: PropTypes.bool.isRequired,\r\n showMainDraw: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const sessionStandingsTablePropTypes = {\r\n sessionStandings: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n teamMatchWins: PropTypes.number.isRequired,\r\n teamMatchLosses: PropTypes.number.isRequired,\r\n playerMatchPoints: PropTypes.number.isRequired,\r\n playerMatchGameWinPercentage: PropTypes.number.isRequired,\r\n teamId: PropTypes.number.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.string,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.string,\r\n isDoublesEstimated: PropTypes.bool\r\n })\r\n })),\r\n isLoading: PropTypes.bool,\r\n sportTypeId: PropTypes.number\r\n};\r\n\r\nexport const teamTableRowPropTypes = {\r\n rowData: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n teamName: PropTypes.string.isRequired,\r\n teamMatchWins: PropTypes.number.isRequired,\r\n teamMatchLosses: PropTypes.number.isRequired,\r\n playerMatchPoints: PropTypes.number.isRequired,\r\n playerMatchGameWinPercentage: PropTypes.number.isRequired,\r\n teamId: PropTypes.string.isRequired,\r\n rank: PropTypes.number.isRequired,\r\n teamPowerIndex: PropTypes.shape({\r\n singlesRating: PropTypes.string,\r\n isSinglesEstimated: PropTypes.bool,\r\n doublesRating: PropTypes.string,\r\n isDoublesEstimated: PropTypes.bool,\r\n }).isRequired,\r\n }).isRequired,\r\n labelId: PropTypes.string.isRequired,\r\n};\r\n\r\nexport const standingsTabPropTypes = {\r\n sportTypeId: PropTypes.number.isRequired,\r\n teamStandings: PropTypes.array.isRequired\r\n};\r\n","import React, { useContext, useEffect, useState, useMemo } from 'react';\r\nimport { useGate } from 'statsig-react';\r\n\r\nimport { featureGates } from '../utils/statsig';\r\nimport { statsigContextProviderPropTypes } from '../utils/proptypes';\r\n\r\nconst StatsigContext = React.createContext();\r\n\r\nexport function useStatsig() {\r\n return useContext(StatsigContext);\r\n}\r\n\r\nexport function StatsigContextProvider({ children }) {\r\n const isAdultTeamPickleballEnabled = useGate(featureGates.ADULT_TEAM_PICKLEBALL).value;\r\n const isJuniorTeamPickleballEnabled = useGate(featureGates.JUNIOR_TEAM_PICKLEBALL).value;\r\n const [state, setState] = useState({});\r\n\r\n useEffect(() => {\r\n setState({\r\n featureGates: {\r\n adultTeamPickleball: isAdultTeamPickleballEnabled,\r\n juniorTeamPickleball: isJuniorTeamPickleballEnabled,\r\n },\r\n });\r\n }, []);\r\n\r\n const memoizedState = useMemo(() => ({\r\n statsig: state,\r\n }), [state]);\r\n\r\n StatsigContextProvider.propTypes = {\r\n ...statsigContextProviderPropTypes\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n","const localConfig = {\r\n // apiHost: ' https://api.universaltennis.com',\r\n // apiHost: ' https://marketing-api.universaltennis.com',\r\n // apiHost: 'https://test-api.universaltennis.com',\r\n // apiHost: 'https://qa-api.universaltennis.com',\r\n // apiHost: 'https://ci-api.universaltennis.com',\r\n // apiHost: 'https://rc-api.universaltennis.com',\r\n // apiHost: 'https://localhost:44317',\r\n // apiHost: 'https://utr-api-netcore.azurewebsites.net',\r\n // apiHost: 'https://ut-3-api-qa.azurewebsites.net',\r\n // apiHost: 'https://docker-test-api.universaltennis.com',\r\n // apiHost: ' https://test-api-alt.universaltennis.com',\r\n // apiHost: 'https://utr-api-central-us-01-canary.azurewebsites.net',\r\n // apiHost: 'https://utr-api-central-us-01.azurewebsites.net'\r\n // apiHost: 'https://ut-api.ngrok.io/',\r\n};\r\n\r\nexport default localConfig;\r\n","/* eslint max-len: [\"off\"] */\r\nimport urljoin from 'url-join';\r\nimport PackageJson from '../package.json';\r\nimport localConf from './config-local';\r\nimport configConstants from './config-constants';\r\n\r\nif (localConf) {\r\n console.log('LocalConf', localConf);\r\n} else {\r\n console.log('No local config overrides');\r\n}\r\n\r\nconst buildId = process.env.BUILD_ID || 'default';\r\nconst appCodePath = `${PackageJson.version}-${buildId}`;\r\nconst outputPath = 'leagues-client';\r\nconst applicationVersion = PackageJson.version;\r\nconst staticContentPath = 'public';\r\n\r\nconst rootDomain = 'utrsports.net';\r\nconst brandedDomain = 'utrsports.net';\r\nconst twitterHandle = 'UTR_Sports_';\r\n\r\nconst devFontUrl = 'https://cloud.typography.com/6323816/6761592/css/fonts.css'; // doesn't count against production page views\r\nconst localFontUrl = '/fonts/utr-fonts.css'; // for internal/offline use\r\nconst prodFontUrl = 'https://cloud.typography.com/6323816/6355392/css/fonts.css';\r\n\r\nconst webServerPublicPath = '/';\r\n\r\nconst links = {\r\n support: `https://support.${rootDomain}/support/tickets/new`,\r\n supportHome: `https://support.${rootDomain}/en/support/home`,\r\n appStoreUrl: 'https://apps.apple.com/us/app/universal-tennis/id1519232627',\r\n googlePlayUrl: 'https://play.google.com/store/apps/details?id=com.ut.utr&utm_source=google-play&utm_campaign=web-footer-google-playstore-badge&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1',\r\n sessionStandingsRule: `https://support.${rootDomain}/support/solutions/articles/9000235929-set-session-standings-rule`\r\n\r\n};\r\n\r\nconst devRoxKey = '5b4f55a7a43ccb0e97402f6f';\r\nconst devStripeKey = 'pk_test_fJzi8lcnQbbKhlMJp9YVZ2tA00Wx6NIMm2';\r\nconst utrStripeAccountId = process.env.UTR_STRIPE_ACCOUNT_ID || 'acct_1AV2NnBJJJ7ji1oI';\r\nconst googleApiKey = process.env.REACT_APP_GOOGLE_API_KEY;\r\n\r\nconst prodSegmentKey = 'XJQ5EvgdaXEKA7B8XgaiPgOPWjO0GB2Q';\r\nconst nonProdSegmentKey = 'kGabTpvRe2bSYtu4QmKKmoPf5Q6kY2Xc';\r\n\r\nconst prodFacebookPixelId = '934768840401987';\r\nconst nonProdFacebookPixelId = '123456789123456';\r\n\r\nconst devApiAuthToken = '2303cc78-0e7e-4b86-8ae6-74d05cd10cdf';\r\n\r\nconst prodStatsigKey = 'client-M26U2xrmdwgAiTbeNrUpxyGIk4i2guVzMiPPm9m00b';\r\nconst devStatsigKey = 'client-BS9ru6yhmKmFidDYBKkoSTiTwuV1p1nEDXl7IXtANJD';\r\n\r\nconst localDevSettings = {\r\n appHost: 'https://localhost:3443',\r\n marketingAppHost: 'http://localhost:3001',\r\n leaguesAppHost: 'http://localhost:3002',\r\n apiAuthToken: devApiAuthToken,\r\n apiHost: `https://test-api.${rootDomain}`,\r\n leaguesApiHost: `https://test1-leagues-api.${rootDomain}`,\r\n searchApiHost: `https://test1-search-api.${rootDomain}`,\r\n siteBaseUrl: rootDomain,\r\n brandedUrl: brandedDomain,\r\n twitterAccount: twitterHandle,\r\n fontUrl: localFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: devStripeKey,\r\n utrStripeAccountId,\r\n useProxy: true,\r\n googleApiKey,\r\n publicPath: webServerPublicPath,\r\n pixelId: nonProdFacebookPixelId,\r\n cdnUrl: `https://ci-cdn.${rootDomain}`,\r\n isLocalhost: true,\r\n statsigKey: devStatsigKey,\r\n ...(localConf || {}),\r\n};\r\n\r\nconst createNewRelicBrowserSnippet = (apiUri, newRelicAppId) => {\r\n return `\r\n \r\n `;\r\n};\r\n\r\nconst createTestSettings = (environmentName, newRelicAppId) => {\r\n const cdnUrl = `https://${environmentName}-cdn.${rootDomain}`;\r\n const cdnUrlStatic = `https://${environmentName}-cdn-static.${rootDomain}`;\r\n const apiUri = process.env.APIHOST || `https://${environmentName}-api.${rootDomain}`;\r\n const leaguesApiUri = process.env.LEAGUESAPIHOST || `https://${environmentName}-leagues-api.${rootDomain}`;\r\n const searchApiUri = `https://test1-search-api.${rootDomain}`;\r\n const newRelicBrowserSnippet = newRelicAppId != null ? createNewRelicBrowserSnippet(apiUri, newRelicAppId) : '';\r\n\r\n return {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n appHost: process.env.APPHOST || `https://${environmentName}-app.${rootDomain}`,\r\n appHostName: process.env.APPHOSTNAME || `${environmentName}-app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${environmentName}.${rootDomain}`,\r\n apiHost: apiUri,\r\n googleApiKey,\r\n leaguesApiHost: leaguesApiUri,\r\n searchApiHost: searchApiUri,\r\n userSiteHost: process.env.USERSITEHOST || `https://${environmentName}-app.${rootDomain}`,\r\n userSiteHostName: process.env.USERSITEHOST || `${environmentName}-app.${rootDomain}`,\r\n fontUrl: devFontUrl,\r\n roxKey: devRoxKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: 'ca_G7kABhwUKLT9L05CMvE33btClNTT5xvn',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n cdnUrl,\r\n publicPath: urljoin(cdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: nonProdSegmentKey,\r\n devtoolConfig: 'eval-source-maps',\r\n pixelId: nonProdFacebookPixelId,\r\n newRelicBrowserSnippet,\r\n statsigKey: devStatsigKey,\r\n };\r\n};\r\n\r\nconst prodCdnUrl = `https://prod-cdn.${rootDomain}`;\r\nconst prodCdnUrlStatic = `https://prod-cdn-static.${rootDomain}`;\r\nconst prodApiUri = process.env.APIHOST || `https://api.${rootDomain}`;\r\nconst prodLeaguesApiUri = process.env.LEAGUESAPIHOST || `https://leagues-api.${rootDomain}`;\r\nconst searchApiUrl = `https://search-api.${rootDomain}`;\r\nconst prodServerSettings = {\r\n siteBaseUrl: process.env.siteBaseUrl || rootDomain,\r\n brandedUrl: process.env.brandedUrl || brandedDomain,\r\n apiAuthToken: process.env.REACT_APP_API_AUTH_TOKEN,\r\n twitterAccount: process.env.twitterAccount || twitterHandle,\r\n appHost: process.env.APPHOST || `https://app.${rootDomain}`,\r\n marketingAppHost: process.env.MARKETINGAPPHOST || `https://${rootDomain}`,\r\n leaguesApiHost: prodLeaguesApiUri,\r\n apiHost: prodApiUri,\r\n searchApiHost: searchApiUrl,\r\n fontUrl: prodFontUrl,\r\n googleApiKey,\r\n links,\r\n stripeHost: 'https://connect.stripe.com',\r\n stripeClientId: process.env.STRIPE_CLIENT_ID || 'ca_G7kArGiIoboxUDj62elK8kxXinfQe0QI',\r\n stripeKey: process.env.REACT_APP_STRIPE_PUBLISHABLE_KEY,\r\n utrStripeAccountId,\r\n roxKey: process.env.REACT_APP_ROX_KEY,\r\n cdnUrl: prodCdnUrl,\r\n publicPath: urljoin(prodCdnUrlStatic, outputPath, appCodePath),\r\n segmentKey: prodSegmentKey,\r\n devtoolConfig: false,\r\n pixelId: prodFacebookPixelId,\r\n newRelicBrowserSnippet: createNewRelicBrowserSnippet(prodApiUri, 539633838),\r\n statsigKey: prodStatsigKey,\r\n};\r\n\r\nconst qaServerSettings = createTestSettings('qa', 590226463);\r\nconst ciServerSettings = createTestSettings('ci', 590213041);\r\nconst testServerSettings = createTestSettings('test', 589991131);\r\nconst test2ServerSettings = createTestSettings('test2', 587189898);\r\nconst test3ServerSettings = createTestSettings('test3', 587326842);\r\nconst test4ServerSettings = createTestSettings('test4', 539430739);\r\nconst test5ServerSettings = createTestSettings('test5', 284389075);\r\nconst test6ServerSettings = createTestSettings('test6', 284363017);\r\nconst test7ServerSettings = createTestSettings('test7', 518274954);\r\nconst test8ServerSettings = createTestSettings('test8', 269953869);\r\nconst test9ServerSettings = createTestSettings('test9', null);\r\nconst test10ServerSettings = createTestSettings('test10', null);\r\nconst test11ServerSettings = createTestSettings('test11', null);\r\nconst rcSettings = createTestSettings('rc', 590000593);\r\n\r\nlet config = localDevSettings; // Default to local dev settings\r\n\r\nconst configSource = (\r\n process.env.CONFIG_SOURCE ||\r\n process.env.REACT_APP_CONFIG_SOURCE ||\r\n process.env.NODE_ENV ||\r\n 'development'\r\n).toLowerCase();\r\n\r\nswitch (configSource) {\r\n case 'prod':\r\n config = prodServerSettings;\r\n break;\r\n case 'qa':\r\n config = qaServerSettings;\r\n break;\r\n case 'ci':\r\n config = ciServerSettings;\r\n break;\r\n case 'test':\r\n config = testServerSettings;\r\n break;\r\n case 'test1':\r\n config = testServerSettings;\r\n break;\r\n case 'test2':\r\n config = test2ServerSettings;\r\n break;\r\n case 'test3':\r\n config = test3ServerSettings;\r\n break;\r\n case 'test4':\r\n config = test4ServerSettings;\r\n break;\r\n case 'test5':\r\n config = test5ServerSettings;\r\n break;\r\n case 'test6':\r\n config = test6ServerSettings;\r\n break;\r\n case 'test7':\r\n config = test7ServerSettings;\r\n break;\r\n case 'test8':\r\n config = test8ServerSettings;\r\n break;\r\n case 'test9':\r\n config = test9ServerSettings;\r\n break;\r\n case 'test10':\r\n config = test10ServerSettings;\r\n break;\r\n case 'test11':\r\n config = test11ServerSettings;\r\n break;\r\n case 'rc':\r\n config = rcSettings;\r\n break;\r\n default:\r\n config = localDevSettings;\r\n}\r\n\r\n// Common settings\r\nconfig.outputPath = configConstants.outputPath;\r\nconfig.appCodePath = appCodePath;\r\nconfig.applicationVersion = applicationVersion;\r\nconfig.staticContentPath = staticContentPath;\r\n\r\nexport default config;\r\n","export const LeagueSessionTypes = {\r\n TOURNAMENT: 1,\r\n MULTI_ROUND: 2,\r\n};\r\n\r\nexport const FrequencyTypes = {\r\n ONCE_A_WEEK: 1,\r\n EVERY_TWO_WEEKS: 2,\r\n};\r\n\r\nexport const MatchFormatTypes = {\r\n SINGLES: 1,\r\n DOUBLES: 2,\r\n BOTH: 3,\r\n};\r\n\r\nexport const ResultTypes = {\r\n COMPLETED: 1,\r\n COMPLETED_WITH_PARTIAL_SCORES: 2,\r\n PLAYER_OR_TEAM_DEFAULTED: 3,\r\n WITHDREW: 4,\r\n RETIRED: 5,\r\n INCOMPLETE: 6,\r\n DEFAULTED: 7,\r\n MATCH_NOT_PLAYED: 8,\r\n};\r\n\r\nexport const ScheduleStatuses = {\r\n DRAFT: 1,\r\n PUBLISHED: 2,\r\n};\r\n\r\nexport const TennisScoringFormatTypes = {\r\n BEST_OF_THREE: 1,\r\n TWO_SETS_WITH_TIEBREAKER: 2,\r\n SINGLE_SET: 3,\r\n TIME_BASED: 4,\r\n FAST_FOUR: 5,\r\n};\r\n\r\nexport const PickleballScoringFormatTypes = {\r\n SINGLE_GAME: 6,\r\n BEST_OF_THREE_GAMES: 7,\r\n TIME_BASED_GAME: 8,\r\n};\r\n\r\nexport const StatusTypes = {\r\n OPEN: 1,\r\n CLOSED: 2,\r\n};\r\n\r\nexport const WithdrawTypes = {\r\n WITHDRAW: 1,\r\n REFUND: 2,\r\n WITHDRAW_AND_REFUND: 3,\r\n};\r\n\r\nexport const RequestStatusTypes = {\r\n ACCEPTED: 1,\r\n DENIED: 2,\r\n PENDING: 3,\r\n};\r\n\r\nexport const LeagueGenderTypes = {\r\n CO_ED: 1,\r\n MALE: 2,\r\n FEMALE: 3,\r\n};\r\n\r\nexport const LeagueTypes = {\r\n UT_ADULT_TEAM_TENNIS: 1,\r\n UT_JUNIOR_TEAM_TENNIS: 3,\r\n CLUB_ADULT_LEAGUE_TENNIS: 4,\r\n OTHER_TENNIS: 5,\r\n UT_ADULT_TEAM_PICKLEBALL: 6,\r\n UT_JUNIOR_TEAM_PICKLEBALL: 7,\r\n CLUB_ADULT_LEAGUE_PICKLEBALL: 8,\r\n OTHER_PICKLEBALL: 9,\r\n};\r\n\r\nexport const LeagueTierTypes = {\r\n ADULT: 1,\r\n JUNIOR: 2\r\n};\r\n\r\nexport const PlayerActionTypes = {\r\n WITHDRAW: 1,\r\n MOVE_TO_TEAM: 2,\r\n COPY_TO_TEAM: 3,\r\n MARK_AS_ROSTERED: 4,\r\n MARK_AS_SUBSTITUTE: 5,\r\n};\r\n\r\nexport const OrderByTypes = {\r\n TEAM_NAME: 0,\r\n SESSION_NAME: 1,\r\n RANK: 2,\r\n};\r\n\r\nexport const OrderByRuleTypes = {\r\n ASCENDING: { id: 0, value: 'asc' },\r\n DESCENDING: { id: 1, value: 'desc' },\r\n};\r\n\r\nexport const SessionDrawTypes = {\r\n FIRST_MATCH_BACK_DRAW: 1,\r\n SINGLE_ELIMINATION: 2\r\n};\r\n\r\nexport const MultiRoundScheduleTypes = {\r\n BY_ROUND: 0,\r\n BY_DATE: 1\r\n};\r\n\r\nexport const genderTypes = [\r\n { id: LeagueGenderTypes.CO_ED, value: 'all', label: 'Co-ed', description: 'Co-ed' },\r\n { id: LeagueGenderTypes.MALE, value: 'm', label: 'M', description: 'Male' },\r\n { id: LeagueGenderTypes.FEMALE, value: 'f', label: 'F', description: 'Female' },\r\n];\r\n\r\nexport const distanceTypes = [\r\n { id: 10, description: '10 miles' },\r\n { id: 25, description: '25 miles' },\r\n { id: 50, description: '50 miles' },\r\n { id: 75, description: '75 miles' },\r\n { id: 100, description: '100 miles' },\r\n { id: 125, description: '125 miles' },\r\n];\r\n\r\nexport const sessionTypes = [\r\n { id: LeagueSessionTypes.TOURNAMENT, description: 'Team Tournament' },\r\n { id: LeagueSessionTypes.MULTI_ROUND, description: 'Multi-Round' },\r\n];\r\n\r\nexport const multiRoundScheduleTypes = [\r\n { id: MultiRoundScheduleTypes.BY_ROUND, description: 'By Round' },\r\n { id: MultiRoundScheduleTypes.BY_DATE, description: 'By Date' },\r\n];\r\n\r\nexport const matchFrequencyTypes = [\r\n { id: FrequencyTypes.ONCE_A_WEEK, description: 'Once a week' },\r\n { id: FrequencyTypes.EVERY_TWO_WEEKS, description: 'Every 2 weeks' },\r\n];\r\n\r\nexport const tennisScoringTypes = [\r\n { id: TennisScoringFormatTypes.BEST_OF_THREE, description: 'Best of Three Sets' },\r\n { id: TennisScoringFormatTypes.TWO_SETS_WITH_TIEBREAKER, description: 'Two Sets w/ Match Tiebreaker' },\r\n { id: TennisScoringFormatTypes.SINGLE_SET, description: 'Single Set' },\r\n { id: TennisScoringFormatTypes.TIME_BASED, description: 'Time Based' },\r\n { id: TennisScoringFormatTypes.FAST_FOUR, description: 'Fast Four' },\r\n];\r\n\r\nexport const pickleballScoringTypes = [\r\n { id: PickleballScoringFormatTypes.SINGLE_GAME, description: 'Single Game' },\r\n { id: PickleballScoringFormatTypes.BEST_OF_THREE_GAMES, description: 'Best of Three Games' },\r\n { id: PickleballScoringFormatTypes.TIME_BASED_GAME, description: 'Time Based' },\r\n];\r\n\r\nexport const durationTypes = [\r\n { id: 1, description: '30 min' },\r\n { id: 2, description: '60 min' },\r\n { id: 3, description: '90 min' },\r\n { id: 4, description: '120 min' },\r\n { id: 5, description: 'Unlimited' },\r\n];\r\n\r\nexport const tierTypes = [\r\n { id: LeagueTierTypes.ADULT, description: 'Adult' },\r\n { id: LeagueTierTypes.JUNIOR, description: 'Junior' },\r\n];\r\n\r\nexport const openClosedStatusTypes = [\r\n { id: StatusTypes.OPEN, description: 'Open' },\r\n { id: StatusTypes.CLOSED, description: 'Closed' },\r\n];\r\n\r\nexport const sessionMatchFormatTypes = [\r\n { id: MatchFormatTypes.SINGLES, description: 'Singles' },\r\n { id: MatchFormatTypes.DOUBLES, description: 'Doubles' },\r\n { id: MatchFormatTypes.BOTH, description: 'Singles and Doubles' },\r\n];\r\n\r\nexport const drawTypes = [\r\n { id: SessionDrawTypes.FIRST_MATCH_BACK_DRAW, description: 'First match back draw' },\r\n { id: SessionDrawTypes.SINGLE_ELIMINATION, description: 'Single elimination' },\r\n];\r\n\r\nexport const weekdays = [\r\n { id: 0, description: 'Sunday' },\r\n { id: 1, description: 'Monday' },\r\n { id: 2, description: 'Tuesday' },\r\n { id: 3, description: 'Wednesday' },\r\n { id: 4, description: 'Thursday' },\r\n { id: 5, description: 'Friday' },\r\n { id: 6, description: 'Saturday' },\r\n];\r\n\r\nexport const playerWithdrawTypes = [\r\n { id: WithdrawTypes.WITHDRAW, description: 'Withdraw' },\r\n { id: WithdrawTypes.REFUND, description: 'Refund' },\r\n { id: WithdrawTypes.WITHDRAW_AND_REFUND, description: 'Withdraw & Refund' },\r\n];\r\n\r\nexport const matchResultTypes = [\r\n { id: ResultTypes.COMPLETED, description: 'Completed' },\r\n { id: ResultTypes.COMPLETED_WITH_PARTIAL_SCORES, description: 'Completed with parital scores' },\r\n { id: ResultTypes.DEFAULTED, description: 'Defaulted' },\r\n { id: ResultTypes.WITHDREW, description: 'Withdrew' },\r\n { id: ResultTypes.RETIRED, description: 'Retired' },\r\n { id: ResultTypes.INCOMPLETE, description: 'Incomplete' },\r\n { id: ResultTypes.MATCH_NOT_PLAYED, description: 'Match not played' },\r\n];\r\n\r\nexport const PlayerManageOptions = [\r\n { id: PlayerActionTypes.WITHDRAW, description: 'Withdraw' },\r\n { id: PlayerActionTypes.MOVE_TO_TEAM, description: 'Move to team' },\r\n { id: PlayerActionTypes.COPY_TO_TEAM, description: 'Copy to team' },\r\n { id: PlayerActionTypes.MARK_AS_SUBSTITUTE, description: 'Mark as Substitute Player' },\r\n { id: PlayerActionTypes.MARK_AS_ROSTERED, description: 'Mark as Rostered Player' },\r\n];\r\n\r\nexport const DateFilterTypes = {\r\n UPCOMING: 1,\r\n IN_PROGRESS: 2,\r\n PAST: 3\r\n};\r\n\r\nexport const searchDateFilterTypes = [\r\n { id: DateFilterTypes.UPCOMING, description: 'Upcoming' },\r\n { id: DateFilterTypes.IN_PROGRESS, description: 'In progress' },\r\n { id: DateFilterTypes.PAST, description: 'Past' },\r\n];\r\n\r\nexport const TournamentTeamsCount = {\r\n FOUR: 4,\r\n EIGHT: 8,\r\n SIXTEEN: 16,\r\n};\r\n\r\nexport const tournamentTeamsCountOptions = [\r\n { id: TournamentTeamsCount.FOUR, description: '4 teams / 2 matches' },\r\n { id: TournamentTeamsCount.EIGHT, description: '8 teams / 4 matches' },\r\n { id: TournamentTeamsCount.SIXTEEN, description: '16 teams / 8 matches' },\r\n];\r\n\r\nexport const LeagueSearchEntities = {\r\n CONFERENCES: 'conferences',\r\n SESSIONS: 'sessions',\r\n};\r\n\r\nexport const SportTypeIds = {\r\n TENNIS: 1,\r\n PICKLEBALL: 2\r\n};\r\n\r\nexport const SportTypes = {\r\n 1: 'Tennis',\r\n 2: 'Pickleball'\r\n};\r\n\r\nexport const sportTypes = [\r\n { id: SportTypeIds.TENNIS, description: 'Tennis' },\r\n { id: SportTypeIds.PICKLEBALL, description: 'Pickleball' },\r\n];\r\n\r\nexport const getTypeForId = (id, types) => {\r\n return types.find((type) => type.id === id);\r\n};\r\n\r\nexport const PlayerAvailabilityStatusTypes = {\r\n YES: 1,\r\n MAYBE: 2,\r\n NO: 3,\r\n NOT_SET: 4,\r\n};\r\n\r\nexport const PlayerAvailabilityStatus = {\r\n 1: 'YES',\r\n 2: 'MAYBE',\r\n 3: 'NO',\r\n};\r\n\r\nexport const PlayerAvailabilityColors = {\r\n GREEN: 'rsvpGreen',\r\n ORANGE: 'rsvpOrange',\r\n RED: 'rsvpRed',\r\n};\r\n\r\nexport const SessionStandingsRules = {\r\n 1: 'Win/Loss record',\r\n 2: '% of Team Matches won',\r\n 3: '% of Games won',\r\n 4: 'Win/Loss record',\r\n 5: '% of Team Matches won',\r\n 6: '% of Points won'\r\n};\r\n\r\nexport const SessionStandingsTypes = {\r\n TENNIS_WIN_LOSS_RECORD: 1,\r\n TENNIS_PERCENT_OF_TEAM_MATCHES_WON: 2,\r\n TENNIS_PERCENT_OF_GAMES_WON: 3,\r\n PICKLEBALL_WIN_LOSS_RECORD: 4,\r\n PICKLEBALL_PERCENT_OF_TEAM_MATCHES_WON: 5,\r\n PICKLEBALL_PERCENT_OF_POINTS_WON: 6,\r\n};\r\n\r\nexport const tennisSessionStandingsOptions = [\r\n { id: SessionStandingsTypes.TENNIS_WIN_LOSS_RECORD, description: 'Win/Loss record' },\r\n { id: SessionStandingsTypes.TENNIS_PERCENT_OF_TEAM_MATCHES_WON, description: '% of Team Matches won' },\r\n { id: SessionStandingsTypes.TENNIS_PERCENT_OF_GAMES_WON, description: '% of Games won' },\r\n];\r\n\r\nexport const pickleballSessionStandingsOptions = [\r\n { id: SessionStandingsTypes.PICKLEBALL_WIN_LOSS_RECORD, description: 'Win/Loss record' },\r\n { id: SessionStandingsTypes.PICKLEBALL_PERCENT_OF_TEAM_MATCHES_WON, description: '% of Team Matches won' },\r\n { id: SessionStandingsTypes.PICKLEBALL_PERCENT_OF_POINTS_WON, description: '% of Points won' },\r\n];\r\n\r\nexport const SearchSortTypes = {\r\n START_DATE: 'startdate',\r\n AGE: 'age',\r\n GENDER: 'gender',\r\n UTR: 'utr',\r\n UTRP: 'utrp'\r\n};\r\n\r\nexport const SessionDateStatuses = {\r\n 1: 'upcoming',\r\n 2: 'inprogress',\r\n 3: 'past',\r\n};\r\n\r\nexport const SliderTypes = {\r\n AGE: 'Age',\r\n UTR: 'UTR',\r\n UTRP: 'UTRP'\r\n};\r\n","import axios from 'axios';\r\n// import MockAdapter from 'axios-mock-adapter';\r\nimport config from '../config';\r\n\r\nexport const getProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/api',\r\n });\r\n};\r\n\r\nexport const getApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.apiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\nexport const getAxiosInstance = () => {\r\n return axios.create({});\r\n};\r\n\r\nexport const getLeaguesProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/leagues-api',\r\n });\r\n};\r\n\r\nexport const getLeaguesApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getLeaguesProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.leaguesApiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\nexport const getSearchProxyAxiosInstance = () => {\r\n return axios.create({\r\n baseURL: '/search-api',\r\n });\r\n};\r\n\r\nexport const getSearchApiAxiosInstance = () => {\r\n if (config.useProxy) {\r\n return getSearchProxyAxiosInstance();\r\n }\r\n return axios.create({\r\n baseURL: config.searchApiHost,\r\n withCredentials: true,\r\n });\r\n};\r\n\r\n// export const axiosMock = () => {\r\n// const axiosInstance = axios.create({});\r\n// const mock = new MockAdapter(axiosInstance);\r\n// return {\r\n// mock,\r\n// axiosInstance,\r\n// };\r\n// };\r\n","import * as queryString from 'query-string';\r\nimport { createApi } from '@reduxjs/toolkit/query/react';\r\nimport { axiosBaseQuery } from '../redux/services/baseQuery';\r\nimport { WithdrawTypes } from '../utils/types';\r\n\r\nimport { getLeaguesApiAxiosInstance, getApiAxiosInstance } from '../utils/network';\r\n\r\nconst leaguesApiAxiosInstance = getLeaguesApiAxiosInstance();\r\nconst mainApiAxiosInstance = getApiAxiosInstance();\r\n\r\nconst 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","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable no-undef */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n/* eslint-disable class-methods-use-this */\r\n/* eslint-disable react/no-string-refs */\r\nimport React, { useCallback, useState, useEffect, useRef } from 'react';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport 'url-search-params-polyfill';\r\nimport { CancelToken, isCancel } from 'axios';\r\n\r\nimport Button from '@mui/material/Button';\r\n\r\nimport BackgroundImage from '../BackgroundImage';\r\nimport Description from './Description';\r\nimport Img from '../Img';\r\nimport SearchIcon from '../../assets/icons/icon-search.svg';\r\nimport VerifiedIcon from '../../assets/icons/icon-verified-blue.svg';\r\nimport PlayerIcon from '../../assets/icons/icon-avatar-player.svg';\r\nimport ClubIcon from '../../assets/icons/icon-avatar-club.svg';\r\nimport CollegeIcon from '../../assets/icons/icon-avatar-college.svg';\r\nimport EventIcon from '../../assets/icons/icon-avatar-event.svg';\r\nimport SchoolIcon from '../../assets/icons/icon-avatar-school.svg';\r\n\r\nimport UtrIcon from '../Icons/UtrIcon';\r\nimport config from '../../config';\r\n\r\nimport { getApiAxiosInstance } from '../../utils/network';\r\nimport { getEventDateString, getRatingDetails, updateRatingObject } from './utils';\r\nimport { LeagueTypes } from '../../utils/types';\r\nimport { useStatsig } from '../../hooks/StatsigContextProvider';\r\n\r\nimport styles from './globalSearch.module.scss';\r\nimport { getClickAttrs } from '../../utils/analytics';\r\n\r\nconst { appHost, apiHost } = config;\r\nconst defaultSearchState = {\r\n clubs: { total: 0, hits: [] },\r\n colleges: { total: 0, hits: [] },\r\n events: { total: 0, hits: [] },\r\n highSchools: { total: 0, hits: [] },\r\n players: { total: 0, hits: [] },\r\n};\r\n\r\nconst GlobalSearch = () => {\r\n const { statsig } = useStatsig();\r\n const navigate = useNavigate();\r\n const cancelRef = useRef(null);\r\n const wrapperRef = useRef(null);\r\n const queryRef = useRef(null);\r\n const { preferences } = useSelector((state) => state?.user);\r\n const { UT_ADULT_TEAM_TENNIS, UT_JUNIOR_TEAM_TENNIS, UT_ADULT_TEAM_PICKLEBALL, UT_JUNIOR_TEAM_PICKLEBALL } = LeagueTypes;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [showDropDown, setShowDropDown] = useState(false);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [hasSearched, setHasSearched] = useState(false);\r\n const [searchState, setSearchState] = useState(defaultSearchState);\r\n const maxResultsForSection = 4;\r\n const { clubs, colleges, events, highSchools, players } = searchState;\r\n const isAdultTeamPickballEnabled = statsig?.featureGates?.adultTeamPickleball;\r\n const isJuniorTeamPickballEnabled = statsig?.featureGates?.juniorTeamPickleball;\r\n\r\n const hasNoResults =\r\n clubs.total === 0 &&\r\n colleges.total === 0 &&\r\n events.total === 0 &&\r\n highSchools.total === 0 &&\r\n players.total === 0 &&\r\n !isLoading &&\r\n hasSearched &&\r\n searchQuery;\r\n\r\n const hasSomeResults =\r\n clubs.total > 0 || colleges.total > 0 || events.total > 0 || highSchools.total > 0 || players.total > 0 || isLoading;\r\n\r\n useEffect(() => {\r\n const getSearchResults = async () => {\r\n const axiosInstance = getApiAxiosInstance();\r\n const params = new URLSearchParams();\r\n\r\n params.append('query', searchQuery);\r\n params.append('top', 10);\r\n params.append('skip', 0);\r\n params.append('schoolClubSearch', true);\r\n\r\n const searchUrl = `${apiHost}/v2/search?${params}`;\r\n const cancel = cancelRef.current;\r\n\r\n if (cancel) {\r\n cancel();\r\n }\r\n\r\n const response = await axiosInstance\r\n .get(searchUrl, {\r\n cancelToken: new CancelToken((c) => {\r\n cancelRef.current = c;\r\n }),\r\n params,\r\n })\r\n .catch((error) => {\r\n if (!isCancel(error)) {\r\n setIsLoading(false);\r\n }\r\n });\r\n\r\n if (response?.data) {\r\n const { data } = response;\r\n const stateToSet = {\r\n clubs: data?.clubs,\r\n events: data?.events,\r\n players: data?.players,\r\n highSchools: data?.highSchools,\r\n colleges: data?.highSchools,\r\n };\r\n setSearchState(stateToSet);\r\n setIsLoading(false);\r\n setHasSearched(true);\r\n }\r\n };\r\n if (isLoading && !!searchQuery.length) {\r\n getSearchResults();\r\n }\r\n }, [isLoading, searchQuery]);\r\n\r\n const handleClickOutside = useCallback((event) => {\r\n if (wrapperRef && !wrapperRef.current.contains(event.target)) {\r\n setShowDropDown(false);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [handleClickOutside]);\r\n\r\n const handleOnFocus = () => {\r\n setShowDropDown(true);\r\n queryRef.current.value = searchQuery;\r\n };\r\n\r\n const handleKeyUp = (event) => {\r\n const query = event.target.value;\r\n\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n };\r\n\r\n const handlePaste = (event) => {\r\n const { target } = event;\r\n setTimeout(() => {\r\n const query = target.value.trim();\r\n if (query.length > 0) {\r\n if (event.key !== 'Enter') {\r\n setIsLoading(true);\r\n setShowDropDown(true);\r\n setSearchQuery(query);\r\n }\r\n } else {\r\n setSearchQuery('');\r\n }\r\n setSearchState(defaultSearchState);\r\n setShowDropDown(true);\r\n }, 200);\r\n };\r\n\r\n const handleSeeAllClick = async (event, typeFilter) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n setShowDropDown(false);\r\n\r\n const params = new URLSearchParams();\r\n\r\n if (searchQuery) {\r\n params.append('query', searchQuery);\r\n }\r\n params.append('utrMin', 1);\r\n params.append('utrMax', 16);\r\n params.append('utrType', 'verified');\r\n params.append('utrTeamType', 'singles');\r\n params.append('utrFitPosition', 6);\r\n params.append('type', typeFilter);\r\n\r\n window.location = `${appHost}/search?${params}`;\r\n };\r\n\r\n const handleClearClick = () => {\r\n queryRef.current.value = '';\r\n setSearchState(defaultSearchState);\r\n setSearchQuery('');\r\n setShowDropDown(false);\r\n setHasSearched(false);\r\n\r\n setTimeout(() => {\r\n queryRef.current.focus();\r\n }, 200);\r\n };\r\n\r\n const handlePlayerClick = (player) => {\r\n window.location = `${appHost}/profiles/${player.id}`;\r\n };\r\n\r\n const handleEventClick = (event) => {\r\n window.location = `${appHost}/events/${event.id}`;\r\n };\r\n\r\n const handleClubClick = (club) => {\r\n window.location = `${appHost}/clubs/${club.id}`;\r\n };\r\n\r\n const handleTypeFilterClick = (typeFilter) => {\r\n setShowDropDown(false);\r\n window.location = `${appHost}/search?utrMin=1&utrMax=16&utrType=verified&utrTeamType=singles&utrFitPosition=6&type=${typeFilter}`;\r\n };\r\n\r\n const handleTeamLeagueSearchClick = (leagueId) => (event) => {\r\n event.preventDefault();\r\n setShowDropDown(false);\r\n navigate(`/search/league/${leagueId}`);\r\n };\r\n\r\n const renderPlayer = (player, index) => {\r\n const { displayName, descriptionShort, gender, location, playerProfileImages } = player;\r\n const userIsPowered = false;\r\n const rating = getRatingDetails(updateRatingObject({ player }), userIsPowered);\r\n let description = '';\r\n\r\n if (descriptionShort) {\r\n description = [descriptionShort];\r\n } else {\r\n description = location && location.display ? [location.display] : [];\r\n }\r\n const descriptionItems = [...(gender ? [gender.charAt(0)] : []), ...description];\r\n\r\n return (\r\n index < maxResultsForSection && (\r\n handlePlayerClick(player)}\r\n key={`p${index}`}\r\n {...getClickAttrs({\r\n category: 'Global Search Result',\r\n context: `Player Clicked - playerId: ${player.id} - query: ${searchQuery}`,\r\n location: 'Global Search',\r\n })}\r\n >\r\n
\r\n \r\n
\r\n
\r\n
\r\n {`${displayName} `}\r\n {rating.verified ? : ''}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n )\r\n );\r\n };\r\n\r\n const renderSchool = (schoolClub, index) => {\r\n const { id, name, location, profilePhotoUrl, isCollege } = schoolClub;\r\n const { displayName, shortName } = schoolClub.school;\r\n const photoUrl = profilePhotoUrl ? `/v1/club/${profilePhotoUrl}?variant=icon` : null;\r\n const descriptionItems = [...(location && location.display ? [location.display] : [])];\r\n const schoolName = name || displayName || shortName;\r\n return (\r\n index < maxResultsForSection && (\r\n \r\n
\r\n
\r\n {photoUrl ? (\r\n {\r\n e.target.src = '/img/v2/icons/icon-utr-logo.svg';\r\n e.target.srcset = '/img/v2/icons/icon-utr-logo.svg';\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n

{schoolName}

\r\n

{schoolName}

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

{name}

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

{name}

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