{"version":3,"sources":["components/Button.tsx","core/store/events/actions.ts","components/Collapsible.tsx","core/store/events/reducers.ts","components/Hero.tsx","components/Title.tsx","components/SubHeading.tsx","components/Panel.tsx","components/Copy.tsx","components/Table.tsx","core/store/game/reducers.ts","core/store/bootstrap/actions.ts","core/store/element-types/reducers.ts","components/ButtonLink.tsx","core/utils/datetime.ts","i18n.ts","core/store/bootstrap/reducers.ts","core/store/global/actions.ts","core/utils/api.ts","core/store/entries/actions.ts","img/icons/close.svg","core/store/entries/thunks.ts","core/store/bootstrap/thunks.ts","core/store/global/reducers.ts","theme.ts","GlobalStyle.ts","core/store/element-stats/reducers.ts","core/store/elements/actions.ts","core/store/player/actions.ts","core/store/player/reducers.ts","core/store/teams/reducers.ts","core/store/elements/reducers.ts","core/store/player/thunks.ts","core/store/chips/actions.ts","core/store/my-team/actions.ts","core/store/chips/reducers.ts","core/store/squad/actions.ts","core/store/squad/reducers.ts","core/store/squad/thunks.ts","components/Badge.tsx","core/utils/money.ts","components/Alert.tsx","components/Dialog.tsx","components/DialogHeading.tsx","components/Shirt.tsx","img/shirt-shadow.png","components/ElementShirt.tsx","components/FixtureForElement.tsx","components/tabs/TabPanel.tsx","components/tabs/Tab.tsx","components/tabs/Tabs.tsx","img/flags/gb.svg","components/Tooltip.tsx","components/Utils.tsx","components/ScorePrefix.tsx","components/ElementDialog.tsx","img/flags/se.svg","img/header-asset@1x.png","img/header-asset@2x.png","img/logo-fantasy@1x.png","img/logo-fantasy@1x.webp","img/logo-fantasy@2x.png","img/logo-fantasy@2x.webp","core/hooks/useWindowSize.ts","core/hooks/usePriorityNav.ts","img/icons/arrow-left.svg","core/hooks/useDocumentEventHandler.ts","components/nav/Dropdown.tsx","components/nav/ListItem.tsx","core/store/leagues/actions.ts","core/store/entries/reducers.ts","components/nav/Navigation.tsx","components/GameHeader.tsx","core/store/leagues/autoJoinPersistentStorage.ts","core/store/leagues/reducers.ts","core/store/leagues/thunks.ts","components/leagues/errors.ts","components/leagues/JoinLeagueError.tsx","components/leagues/AutoJoinDialog.tsx","utils/chips.ts","core/store/my-team/reducers.ts","core/store/my-team/thunks.ts","core/store/urls/actions.ts","core/store/urls/reducers.ts","core/store/urls/thunks.ts","components/Flag.tsx","components/Footnote.tsx","img/icons/arrow-right.svg","img/icons/arrow-double-left.svg","img/icons/arrow-double-right.svg","img/icons/new.svg","components/icons/Arrows.tsx","img/icons/same.svg","img/icons/up.svg","img/icons/down.svg","components/icons/Movement.tsx","components/leagues/Movement.tsx","components/Link.tsx","utils/events.ts","components/Result.tsx","components/leagues/CupSummaryScore.tsx","components/leagues/CupSummaryData.tsx","components/leagues/utils.ts","components/leagues/CupTypeRow.tsx","components/leagues/Styles.ts","components/leagues/MyLeagueCupSummary.tsx","components/LogoBar.tsx","components/scout/filterOnSSL.ts","components/TabHeading.tsx","components/tabs/EntryTab.tsx","components/tabs/EntryTabs.tsx","components/Entry.tsx","components/EntryHistory.tsx","components/EntryUnsubscribe.tsx","core/hooks/useFormHook.ts","components/FieldRenderers.tsx","img/icons/info.svg","components/EntryUpdate.tsx","core/store/elements/thunks.ts","core/store/fixtures/actions.ts","core/store/fixtures/reducers.ts","core/store/fixtures/thunks.ts","components/Fixture.tsx","components/Pager.tsx","components/Fixtures.tsx","components/FixturesWrapper.tsx","img/logo_footer.svg","img/logos/unibet@2x.png","components/Footer.tsx","img/logos/unibet@1x.png","img/hero@1x.jpg","img/hero@2x.jpg","img/home/home-first@1x.jpg","img/home/home-first@2x.jpg","img/home/home-second@2x.jpg","components/Login.tsx","components/scout/ScoutProvider.tsx","components/status/EventInfo.tsx","components/status/EventStatusBar.tsx","components/BoldLink.tsx","img/icons/status.svg","components/ElementStatus.tsx","components/ElementDialogButton.tsx","components/ElementTable.tsx","components/status/StatusPanel.tsx","img/icons/transfer-arrow-left.svg","components/status/PlayerAvailability.tsx","core/store/dream-teams/actions.ts","core/store/dream-teams/reducers.ts","core/store/dream-teams/thunks.ts","components/team/ElementExplainDialog.tsx","components/team/valueForPlayedElement.tsx","img/as-pitch.svg","components/Pitch.tsx","components/status/StatusPitchElementData.tsx","components/status/StatusPitchElement.tsx","components/status/StatusFormation.tsx","components/status/StatusDreamTeam.tsx","img/icons/transfer-arrow-right.svg","img/icons/cup.svg","components/status/TransfersPanel.tsx","components/status/Status.tsx","components/TriangleCard.tsx","components/Home.tsx","components/TransfersHistory.tsx","components/help/PlayerList.tsx","components/leagues/admin/EntrySelector.tsx","components/leagues/admin/AddBan.tsx","components/leagues/admin/ChangeAdmin.tsx","components/leagues/admin/ClassicDetails.tsx","components/leagues/admin/Code.tsx","components/leagues/admin/Delete.tsx","components/leagues/admin/RemoveBan.tsx","components/leagues/AdminClassic.tsx","components/leagues/admin/H2HDetails.tsx","components/leagues/AdminH2H.tsx","components/leagues/AutoJoin.tsx","components/leagues/Create.tsx","components/leagues/CreateClassic.tsx","components/leagues/CreateH2H.tsx","components/TextDivider.tsx","components/leagues/CreateJoin.tsx","components/leagues/CupNotStarted.tsx","components/leagues/Invite.tsx","components/leagues/Join.tsx","components/leagues/JoinPrivate.tsx","components/leagues/JoinPublic.tsx","components/leagues/H2HEntryFilter.tsx","components/leagues/H2HEventFilter.tsx","img/icons/cog.svg","components/leagues/H2HMatch.tsx","components/leagues/MatchesTable.tsx","components/leagues/StandingsHeading.tsx","components/leagues/MatchesCup.tsx","components/leagues/H2HNav.tsx","components/leagues/MatchesH2H.tsx","components/leagues/CupTypeTable.tsx","components/SubNav.tsx","components/leagues/LeaguesNav.tsx","components/leagues/MyCups.tsx","img/icons/facebook-round.svg","components/DialogManager.tsx","components/LinkButton.tsx","components/leagues/MyLeagues.tsx","components/leagues/NewEntriesH2H.tsx","components/leagues/Renew.tsx","components/HelmetHead.tsx","components/leagues/HelmetHeadLeagues.tsx","components/leagues/StandingsRow.tsx","components/leagues/StandingsClassic.tsx","components/leagues/StandingsH2H.tsx","components/player/LoggedIn.tsx","components/player/Logout.tsx","components/player/utils.ts","components/player/MergeCode.tsx","components/player/MergeEmail.tsx","components/player/PasswordReset.tsx","components/player/PasswordSet.tsx","core/store/regions/actions.ts","core/store/regions/reducers.ts","components/player/StitchBox.tsx","components/player/Register.tsx","core/store/regions/thunks.ts","img/icons/twitter-round.svg","img/icons/remove.svg","img/scouting-hero-1180.png","img/scouting-hero-2360.png","components/scout/ScoutNav.tsx","components/scout/Scout.tsx","components/squad/CreateEntryDialog.tsx","components/squad/helpers.ts","components/PageHeader.tsx","components/DeadlineBar.tsx","components/squad/SaveBar.tsx","components/squad/ScoreboardPanel.tsx","components/squad/Scoreboard.tsx","components/PitchElementData.tsx","components/PlaceholderShirt.tsx","components/squad/SquadPitchElement.tsx","components/squad/PitchPlaceholder.tsx","components/squad/SquadPitchUnit.tsx","components/squad/CreateSquad.tsx","components/element-controls/ElementFilter.tsx","utils/stats.ts","components/element-controls/ElementSort.tsx","components/paginator/PaginatorButton.tsx","components/element-controls/Paginator.tsx","components/Media.tsx","img/icons/sub.svg","components/ElementInTable.tsx","components/ElementListRow.tsx","components/squad/ElementList.tsx","components/squad/SquadBase.tsx","components/squad/SquadListTable.tsx","components/squad/SquadSelection.tsx","components/squad/ConfirmTransfersDialog.tsx","components/squad/TransfersListTable.tsx","components/squad/Transfers.tsx","components/stats/News.tsx","components/stats/Statistics.tsx","components/BoldLinkButton.tsx","components/team/DreamTeamTable.tsx","img/icons/captain.svg","img/icons/vice-captain.svg","img/icons/x2.svg","img/icons/dreamteam.svg","components/team/TeamElementIcon.tsx","components/team/TeamPitchElement.tsx","components/team/PitchFormation.tsx","components/team/DreamTeam.tsx","img/icons/reload.svg","components/icons/DreamTeam.tsx","components/team/Bench.tsx","components/team/BenchUnit.tsx","components/team/EntryEventTable.tsx","components/team/EntryEvent.tsx","components/team/MyTeamTable.tsx","components/team/MyTeam.tsx","components/Routes.tsx","components/ServerError.tsx","components/App.tsx","core/store/cup/actions.ts","core/store/cup/reducers.ts","core/store/stats/actions.ts","core/store/stats/reducers.ts","core/store/winners/actions.ts","core/store/winners/reducers.ts","core/store/index.ts","core/configureStore.ts","serviceWorker.ts","index.tsx","components/Layout.tsx","core/store/phases/reducers.ts","core/store/overrides/reducers.ts"],"names":["btnVariations","baseBtn","css","theme","fonts","base","fontSizes","colors","primary","yellow","black","secondary","borders","blueDarker1","white","tertiary","link","fullwidth","xs","sm","lg","StyledBtn","styled","Base","variant","size","hasicon","disabled","greyLight","grey","greyDarker3","Button","React","ref","as","width","children","type","startIconProp","startIcon","endIconProp","endIcon","newTab","props","commonProps","style","marginRight","marginLeft","href","to","tabIndex","role","target","rel","fetchEventStatus","createAsyncAction","StyledCollapsible","div","space","button","radii","CollapseIcon","CollapsibleContent","blueDarker3","lastId","Collapsible","state","open","id","toggle","setState","this","newId","headingText","onClick","aria-expanded","aria-controls","xmlns","viewBox","fill-rule","d","aria-hidden","Component","combineReducers","byId","action","getType","actions","newState","payload","forEach","event","currentEventStatus","success","getEventsById","events","getEvents","createSelector","_","eventId","Object","keys","map","e","getCurrentEvent","previousEvent","filter","is_previous","length","currentEvent","is_current","getNextEvent","nextEvent","is_next","getFutureEvents","next","getFinishedEvents","finished","getLastEvent","eventsById","ids","Number","Math","max","StyledHero","blue","image","image2x","hiDPI","HeroTitle","h2","impact","breakpoints","Hero","title","Title","SubHeading","h3","StyledPanel","$isFullHeight","StyledPanelHeader","PanelHeading","h4","StyledPanelFooter","Panel","Header","Body","Footer","Copy","StyledButtonLink","ScrollTable","em","THeadRadius","Table","table","blueDarker4","settings","total_players","getSettings","chipId","overrides","getOverrides","game","rules","getTotalPlayers","createAction","deprecated","addChips","resolve","chips","addElementStats","elementStats","addElementTypes","elementTypes","addElements","elements","addEvents","addGameSettings","addPhases","phases","addPlayer","data","addWatched","watched","addTeams","teams","addTotalPlayers","total","bootstrap","bootstrapMe","bootstrapStatic","et","getElementTypesById","element_types","getElementTypes","elementTypesById","getElementTypesBySquadPosition","types","count","range","squad_select","lastType","nextType","thisType","ButtonLinkStyles","a","Link","span","ButtonLink","localTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","formatRawAsISO","raw","dt","Date","utcToZonedTime","toISOString","formatRawAsLocalI18n","locale","format","formatInTimeZone","formatDateAsLocalI18n","lng","window","location","hostname","substring","dateLocales","sv","i18n","on","moment","setDefaultOptions","use","Backend","initReactI18next","init","ns","defaultNS","fallbackLng","debug","interpolation","escapeValue","timeNow","round","getTime","loading","request","failure","times","browser","server","getBootstrapped","Boolean","addServerError","error","getCookie","name","cookieValue","document","cookie","split","trim","decodeURIComponent","responseIsEmpty","response","contentLength","headers","get","status","parseInt","responseIsJSON","contentType","indexOf","_api","url","dispatch","asyncActions","fetchArgs","successPayloadFormat","fetch","credentials","errorText","message","ok","statusText","json","badRequest","text","code","details","Error","apiGet","_apiDeletePostPut","method","body","JSON","stringify","apiPost","apiPut","apiDelete","_defs","_path","_path2","fetchEntrySummary","fetchEntryHistory","fetchEntryEventPicks","updateEntry","fetchEntryTransfers","fetchEntryPhaseStandings","unsubscribeEntry","entryId","staticRequest","formatChips","c","fromEntries","elementType","formatEvents","dynamicRequest","Promise","all","then","staticData","meData","player","entry","element_stats","game_settings","catch","serverError","getServerError","global","darkPink","fantasy","lightBlue","whiteGrey","blueDark","lighterBlue","difficulties","1","bg","color","2","3","4","5","elementStatus","0","25","50","75","greyDark","pink","greyDarker1","greyDarker2","blueDarker2","social","facebook","twitter","google","whiteBlue","zIndex","clientMenu","dialog","menu","overlay","select","wrap","GlobalStyle","createGlobalStyle","reducer","getElementStats","getElementStatsByIdentifier","stats","reduce","memo","stat","updateElementControls","controls","elementDialogShow","elementDialogHide","fetchElementSummary","fetchElementEventData","login","logout","recover","register","playerUpdate","passwordChange","passwordReset","passwordSet","addToWatched","elementCode","removeFromWatched","addToWatchlist","removeFromWatchlist","loginError","loginSuccess","passwordChangeError","passwordResetError","passwordSetError","playerUpdateError","registerError","recoveryError","recoveryStatus","getPlayerData","getWatched","getLoginError","getPasswordSetError","getPlayerUpdateError","getRegisterError","team","getTeamsById","getTeams","t","sort","b","localeCompare","formatNameForSearching","search","toLowerCase","replace","index","bootstrapActions","element","search_name","web_name","maxCost","getUnavailable","elementActions","fixturesById","fixtures","eventDataById","explain","historyById","history","seasonHistoryById","history_past","getElementsById","getElement","undefined","elementId","elementsById","getElements","getElementControls","getElementTypeFilterOptions","label","plural_name","value","getTeamFilterOptions","filterElements","filterString","watchedElements","filters","element_type","matches","match","key","getFilter","maxCostFromElements","now_cost","minCostFromElements","min","reduceElements","searchRegexp","safeValue","RegExp","getSafeSearchRegexp","ascendingSort","stringSort","sortElements","aSort","bSort","parseFloat","getElementsFromControls","filteredElements","minCost","getAverageCostByType","elCosts","getFixturesWithBlanks","getFixturesById","getFixtures","nxt","lst","fixturesWithBlanks","expectedNextEventId","f","i","push","getHistory","getHistoryById","getHistoryTotals","statNames","s","totals","n","h","isInteger","toFixed","getSeasonHistory","getSeasonHistoryById","getElementsEventDataById","getTotalsByType","sortBy","getFormation","join","postData","proposeAvailableChip","chipName","cancelProposedChip","cancelActiveChip","restoreCancelledChip","fetchChipState","saveChipTeam","saveChipTransfer","fetchMyTeam","saveMyTeam","substitutionStart","pick","possibleReplacements","substitutionStop","substitutionProcess","subsStart","changeCaptain","isVice","changeViceCaptain","chip","potential","someActiveOrProposed","status_for_entry","chip_type","some","getPotentialChips","getActiveChip","getActiveChipName","getProposedChip","getProposedChipName","getAvailableChipNames","teamChipsHaveChanged","getActiveOrProposedTeamChipName","getActiveOrProposedTransferChipName","getActiveOrProposedChip","getActiveOrProposedAllChipName","proposeElementInPosition","position","removeElementInPosition","resetLastChange","resetProposed","createSquad","makeTransfers","fetchTransfersLatest","defaultLastType","lastChange","proposed","myTeamActions","picksInSquadOrder","picks","p","saved","transferState","chipActions","transfers","latestTransfers","getProposedPicks","squad","getSavedPicks","getLastChange","getTransferState","getSquadError","getSquadMode","getProposedElements","squad_squadsize","getProposedElementsById","obj","pos","getTransferPositionStatus","Array","from","Set","getToSpend","mode","posStatus","proposedChip","activeChip","values","toSpend","squad_total_spend","selling_price","bank","getTeamLimit","squad_team_limit","getTypesNeeded","needed","getCountByTeam","countByTeam","elementsByTeam","groupBy","teamId","getProposedTransfers","pickKeys","includes","element_in","element_out","purchase_price","getErrors","teamLimit","errors","budgetExceeded","selected","needElements","overTeamLimit","noTransfersMade","toCreateEntryAPI","getNumberOfTransferChanges","positionStatus","getFreeTransfers","limit","made","getFreeTransfersRemaining","free","changes","getTransferCostsWithoutChip","overLimit","cost","getTransferCosts","freeChips","canAutocomplete","canReset","orderBy","proposeElement","getState","elementTypesByPosition","freePosition","find","savedPositions","savedPosition","proposedId","removeElement","restoreElement","autoComplete","typesByPosition","averageCostByType","elementsOwned","concat","failures","typesNeeded","avgToSpend","weightingFactor","invalidTeams","possibles","choice","shuffle","form","StyledBadge","img","badgePath","process","Badge","isPresentation","sizes","path","imgProps","alt","src","srcSet","integerToMoney","int","divisor","StyledAlert","textAlign","noRadius","AlertItem","AlertWrap","AlertGroup","Alert","_extends","assign","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgClose","_ref","svgRef","titleId","height","className","transform","ForwardRef","CloseIcon","Close","CloseLabel","hideVisually","StyledDialog","Overlay","rgba","StyledHeader","DialogButtonItem","isVisible","elem","offsetWidth","offsetHeight","getClientRects","StyledDialogBody","isPadded","DialogBody","defaultProps","Dialog","docref","focusReturn","activeElement","handleKeydown","closeDialog","handleTab","handleOutsideMouseClick","currentTarget","stopPropagation","addEventListener","docRef","current","focusElement","querySelector","focusable","focus","removeEventListener","focusedItem","focusableItems","slice","querySelectorAll","numFocusableItems","focusedIndex","shiftKey","preventDefault","ReactDOM","createPortal","aria-labelledby","getElementById","StyledDialogHeading","DialogHeading","StyledShirt","hasShadow","Shirt","getElementShirtPath","teamCode","shirtMode","suffix","connect","teamsById","ui_use_special_shirts","ui_special_shirt_exclusions","BadgeWrap","FixtureForElement","showBadge","showLongName","fixture","team_h","team_a","short_name","FixturesForElement","delimiter","fragments","result","item","TabPanel","Item","li","TabLink","Tab","TabListShared","TabList","ul","centered","Tabs","getSelectedFromLocationHash","handleClick","locationHash","child","panel","_g","StyledTooltip","Tippy","TooltipLabel","Tooltip","content","arrow","placement","Ellipsis","ellipsis","UnstyledButton","VisuallyHidden","ScorePrefixStyles","WinPrefix","LosePrefix","DrawPrefix","Summary","Card","PlayerWrapper","BadgeWrapper","BadgeScoreFlex","EiwBadgeWrapper","CardInfo","Img","HistoryTable","ElementHeader","ElementMoney","ElementInfo","ElementInfoItem","ElementInfoHeading","ElementInfoValue","TableHeading","TablesWrapper","TableWrapper","NoData","TdBold","td","ElementDialog","added","addElement","historyTotals","seasonHistory","lastThreeHistory","firstThreeFixtures","elementFullname","first_name","second_name","elementCost","py","px","news","m","onError","team_code","singular_name","selected_by_percent","total_points","opponent_team","was_home","team_h_score","team_a_score","kickoff_time","dateTime","language","w","toUpperCase","transfers_balance","colSpan","season_name","start_cost","end_cost","mx","my","renderWatchlistButton","ConnectedDialog","withTranslation","ownProps","originalStats","orderedStats","order","reverse","ElementDialogContainer","getElementDialog","SvgGb","xmlnsXlink","points","fill","fillRule","xlinkHref","mask","stroke","strokeWidth","_image","SvgSe","x","y","enableBackground","xmlSpace","getSize","innerHeight","innerWidth","outerHeight","outerWidth","useWindowSize","useState","windowSize","setWindowSize","handleResize","useEffect","arraysEqual","usePriorityNav","links","offset","isRTL","childrenWidths","setWidths","visibleLinks","setVisibleLinks","nonVisibleLinks","setNonVisibleLinks","oldLinks","setLinks","measuredRef","useCallback","node","getBoundingClientRect","left","right","useLayoutEffect","screen","filteredIndexedElements","newVisibleLinks","newNonVisibleLinks","useDocumentEventHandler","handler","eventHandler","MoreButton","NavLink","NavReachLink","NavHyperLink","Dropdown","setOpen","aria-haspopup","nativeEvent","stopImmediatePropagation","useRouter","LIStyled","ListItem","forwardRef","isDraft","getProps","isCurrent","isPartiallyCurrent","createClassicLeague","createH2HLeague","joinPrivateLeague","joinPublicLeague","fetchClassicLeagueStandings","fetchH2HLeagueStandings","fetchH2HLeagueMatches","fetchClassicLeagueForAdmin","fetchH2HLeagueForAdmin","updateClassicLeague","updateH2HLeague","deleteLeague","banLeagueEntry","unbanLeagueEntry","fetchLeagueCode","regenerateLeagueCode","leaveLeague","fetchRenewableLeagues","renewRenewableLeague","deleteRenewableLeague","checkLeagueCode","setAutoJoinCode","clearAutoJoinCode","fetchLeagueEntries","fetchLeagueCupStatus","newLeague","leaguesKey","scoring","isAlreadyInLeague","leagues","league","updatedEntry","classic","le","h2h","eventHistoryById","past","chipHistoryById","eventPicksById","transfersById","phaseStandingsById","phase","getEntry","entries","getEntryEventHistory","getEntrySeasonHistory","getEntryChipHistory","getEntryEventPicks","getEntryEventPoints","elementsEventDataById","multiplier","getEntryEventFormation","squad_squadplay","getPrivateClassicLeaguesForEntry","l","league_type","getPrivateClassicCupLeaguesForEntry","has_cup","getPrivateH2HLeaguesForEntry","getPublicClassicLeaguesForEntry","getPublicClassicCupLeaguesForEntry","getPublicH2HLeaguesForEntry","getSystemClassicLeaguesForEntry","getSystemClassicCupLeaguesForEntry","getLeagueForEntry","leagueId","getCupMatchesByLeagueId","cupMatches","cup_matches","getTransfersForEntry","StyledNav","nav","StyledUL","NavigationLinks","useTranslation","connector","started_event","LogoFlagWrap","HeaderLink","GameHeaderOuter","headerAsset1x","headerAsset2x","FlagList","FlagItem","FlagLink","StyledNOFlag","SEFlag","StyledGBFlag","GBFlag","BorderBottom","GameHeader","logoFantasy1xWebp","logoFantasy2xWebp","logoFantasy1x","logoFantasy2x","localStorageKey","getInitialState","localStorage","getItem","getValue","classicStandingsById","produce","draft","phaseId","newData","newEntriesByPage","standingsByPhaseAndPage","new_entries","page","standings","lastUpdatedData","last_updated_data","getH2HMatchesKey","h2hMatchesById","byEntryEventPage","adminById","byCode","autoJoinCode","codesByLeagueId","createClassicLeagueError","createH2HLeagueError","cupStatusById","qualifying_league","h2hStandingsById","standingsByPage","entriesById","entriesErrorById","joinPrivateLeagueSuccess","joinPrivateLeagueError","joinPublicLeagueError","renewableById","rl","updateClassicLeagueError","updateH2HLeagueError","getLeagueAdmin","getCode","getRenewableLeagues","getCreateClassicLeagueError","getCreateH2HLeagueError","getJoinPrivateLeagueError","getJoinPublicLeagueError","getClassicLeague","leagueData","getJoinPrivateLeagueSuccess","addEntryToTopOfNewEntries","newEntries","entry_name","player_first_name","player_last_name","joined_time","ne","getActiveEntryInLeague","activeToClassicStanding","event_total","summary_event_points","last_rank","entry_last_rank","player_name","rank","entry_rank","rank_sort","summary_overall_points","activeToH2HStanding","division","matches_drawn","matches_lost","matches_played","matches_won","points_for","getClassicNewEntries","activeEntry","results","getClassicStandings","cs","getH2HLeague","getH2HNewEntries","getH2HStandings","getH2HMatches","getLeagueEntries","getLeagueEntriesError","getLeagueCupStatus","navigate","pageNewEntries","pageStandings","setCode","setItem","setValue","clearCode","removeItem","clearValue","getErrorType","non_field_errors","JoinLeagueError","maxPrivateEntries","league_join_private_max","league_join_public_max","getErrorMessage","ConfirmBtnWrapper","LeagueName","AutoJoinDialog","reduxDispatch","useDispatch","useSelector","getAutoJoinCode","joinedPrivateLeagueSuccess","getLeagueFromCode","isPlayerInLeague","handleHide","mb","leagueName","confirmJoinLeague","allChipDetails","frush","description","pdbus","wildcard","uteam","getChipName","picksLastUpdated","picks_last_updated","picksProposed","subStatus","newPick","instigator","attrs","newPicks","subStart","newCaptain","attrMake","attrOther","oldCaptain","picksSaved","savingState","getMyPicksSaved","myTeam","getMyPicksProposed","getMyTeamSavingState","getMyStartersProposed","getMyStartingTotalsByType","getMyFormation","isSub","getMyPossibleReplacementsForPick","pick1","pick2","p1","p2","p1Type","p2Type","p1Sub","p2Sub","validSwap","squad_max_play","squad_min_play","sub_positions_locked","isLegalSwap","isMyTeamValid","every","hasMyTeamChanged","is_captain","is_vice_captain","toUpdateMyTeamAPI","lastBootstrap","REFRESH_MINUTES","actionSubstitution","fetchURL","byURL","last_fetched","getURL","urls","isEmptyResponse","setTimeout","Flag","flagPath","Footnote","SvgArrowLeft","SvgArrowRight","SvgArrowDoubleLeft","SvgArrowDoubleRight","_rect","ArrowLeft","ArrowLeftIcon","ArrowRight","ArrowRightIcon","ArrowLeftDouble","ArrowLeftDoubleIcon","ArrowRightDouble","ArrowRightDoubleIcon","ControlArrowRight","ControlArrowLeft","SvgNew","SvgSame","SvgUp","SvgDown","NewIcon","BaseNewIcon","SameIcon","BaseSameIcon","arrowStyling","BaseUpIcon","BaseDownIcon","StyledUpArrow","StyledDownArrow","Movement","lastRank","LinkStyles","RouterLink","getShortNameFromId","idOnly","prefix","StyledResult","Result","resultChar","CupSummaryScore","iAmOne","entry_1_entry","now","is_bye","entry_1_points","entry_2_points","EventCell","StatusCell","CupSummaryData","winner","getLeagueUrl","defaultEntry","getBroadcasterLeagues","systemClassicLeagues","broadcasterLeagueMatch","getFilteredSystemClassicLeagues","broadcasterLeagues","getCupUrl","cup_league","linkUrl","CupTypeRow","cupMatch","cup_qualified","LeagueSummaryHeading","SummaryCupCol","th","SummaryRoundCol","SummaryStatusCol","LeagueSummaryTable","SelectWrap","SelectBox","MyLeagueCupSummary","pb","scope","StyledLogoBar","justifyContent","LogoBar","filterOnSSL","items","enclosure","TabHeadingOuter","TabHeadingInner","isBlock","TabHeadingTitle","TabHeading","hasBorder","isCentered","EntryTab","EntryTabs","selectedTab","setSelectedTab","Children","parser","require","EntryFullName","EntryName","DataListItem","DataListHeading","h5","DataListValue","TableFixed","MovementCell","Rank","Name","linkToLeague","boldStyles","BoldText","StyledLink","StyledTdFixedWidth","RSSArticleTitle","RSSArticle","article","RSSArticleLink","RSSArticleFigure","figure","RSSArticleImg","RSSArticleDesc","MovementHead","RankHead","NameHead","providerUrls","217","993","1987","3056","244","375","1959","1406","2596","2466","483","2594","5576","195","6810","2360","466","2961","2598","6210","3055","10745","2352","2945","3058","1556","10746","417","1486","3722","1155","7132","6211","13216","7121","670","2597","Entry","favTeamArticle","handleParseContent","rss","parseString","rssFeed","lastItem","fanLeagueDetails","fetchUrl","mine","transfersState","prevProps","fanLeagueRssObj","privateClassicLeagues","publicClassicLeagues","privateH2HLeagues","publicH2HLeagues","totalPlayers","entryPhaseStandings","privateClassicCupLeagues","publicClassicCupLeagues","systemClassicCupLeagues","leagueSponsorName","filteredSystemClassicLeagues","hasCupLeagues","broadcasterCupLeagues","filteredSystemCupLeagues","phaseObj","LeagueSummary","LeagueSummaryRow","leagueEntry","toLocaleString","player_region_iso_code_short","mt","hasKeyline","summary_overall_rank","start_event","stop_event","league_id","last_deadline_total_transfers","last_deadline_value","last_deadline_bank","fanLeagueMatch","fanLeagues","getFanLeagueDetails","fanLeagueUrl","ps","getPhaseStandingsForEntryPhaseLeague","getPhases","EntryHistory","thisRank","eventHistory","overall_rank","eh","points_on_bench","event_transfers","event_transfers_cost","movementFromIndex","chipHistory","ch","time","sh","EntryUnsubscribe","signature","unsubscribeState","setUnsubscribeState","pre","bad","useFormHook","initialStateObject","formState","updateFormState","newFormState","checked","hex","FieldWrap","fieldStyles","display","padding","border","fontFamily","fontSize","borderColor","FieldLabel","labelVisbility","Hint","Input","input","hasErrors","InlineSelectWrap","Select","InlineSelect","SearchWrap","SearchInput","SearchIcon","FieldCols","FieldCol","LabelHint","hint","required","htmlFor","InlineLabel","InputField","maxLength","onBlur","onChange","readonly","readOnly","SearchField","rest","Checkbox","CheckboxText","hasLogo","LogoImg","CheckboxField","logo","hideLabel","labelStyles","aria-checked","fieldset","_circle","_circle2","StyledFieldFeedback","SelectField","InlineSelectField","FieldFeedback","EntryUpdate","favourite_team","entry_email","entry_language","initState","updateState","updateCheckboxState","updateSelectState","allsvenskan","unavailable","firstDivision","languages","en","onSubmit","fave","kit","email","aria-selected","tm","firstRoundDeadline","deadline_time","EntryUpdateFetcher","fetchEntry","updateElementControlsAndMaxCost","updateElementTypeControl","elementTypeId","getElementSummary","showElementSummary","fetchEventLive","addFixturesForEvent","addFixtures","addAllStatsForFixture","byEvent","eventSlice","allStatsById","getGroupedFixturesByEvent","fixturesByEvent","getFixturesByEvent","groupedFixturesByEvent","groups","currentGroup","kickoffDate","fixtureDate","startOfDay","isEqual","date","getFixturesForEvent","getFixturesForEventById","getFixturesForNextEventByTeam","getFixturesForEventByTeam","fetchFixtures","__","isHome","oppTeam","StyledFixture","isOpen","Teams","Team","TeamH","TeamA","TeamName","abbr","FixtureBadge","FixtureKOTime","FixtureScore","FixtureScoreTeam","started","Pager","EventPager","PagerItem","PagerButton","PagerButtonNext","PagerHeading","PagerItemNext","BackgroundColorWrapper","Deadline","Heading","Note","FixtureDay","FixtureTime","FixtureList","FixtureItem","FixtureButton","FixtureStatsWrap","FixtureStatsOuterList","FixtureStat","FixtureStatHeading","FixtureStatBody","FixtureStatList","FixtureStatItem","ElementButton","FixtureStatsForTeam","showElementDialog","fs","FixtureStats","statsByIdentifier","renderStats","identifier","UnibetBanner","isDesktop","matchMedia","isMobile","isTablet","desktopAdRef","mobileAdRef","tabletAdRef","postscribe","margin","Fixtures","changeEvent","fetchFixturesForEvent","fixtureId","useLinks","eventFixtureGroups","Trans","i18nKey","group","FixturesWrapper","Container","SponsorRow","SponsorCol","SponsorRowThirds","SponsorType","CopyWrite","Info","Links","Logo","currentYear","getFullYear","unibetx2","LogoFooter","LoggedInWrap","Promo","PromoLeft","PromoRight","PromoHeading","PromoText","mapDispatch","firstName","lastName","last_name","Parser","StyledProvider","section","ProviderHeader","header","ProviderContent","ProviderFooter","footer","Article","ArticleFeatureImg","StyledMoreLink","ScoutProvider","providerData","setProviderData","feed","filteredSslFeedItems","splice","parseContent","marginBottom","StyledEventInfo","EventScores","EventScore","ItemHeading","ItemValue","EventStats","EventStat","ArrowLink","chip_plays","cp","chip_name","wildcards","num_played","average_entry_score","highest_scoring_entry","highest_score","transfers_made","most_captained","StatusBar","isFinished","EventStatusBar","eventStatus","BoldLinkStyles","StyledBoldLink","BoldLink","SvgInfo","cx","cy","r","rx","_polygon","SvgStatus","StyledInfo","StyledStatus","Status","copnr","ElementStatus","chance_of_playing_next_round","StyledElementDialogButton","ElementTable","PrimaryCell","PrimaryCellLined","ElementRow","tr","ElementCell","StatusPanel","AvailabilityTable","StatusCol","ShirtCol","PlayerCol","PosCol","ClubCol","ShirtCell","PlayerAvailability","updateControlsAndMaxCost","singular_name_short","fetchOverallDreamTeam","fetchEventDreamTeam","byEventId","overall","getOverallDreamTeam","dreamTeams","getEventDreamTeam","getOverallDreamTeamFormation","getEventDreamTeamFormation","dreamTeamAsPickLight","ExplainHeading","ExplainScore","ElementExplainDialog","elementsDataById","elementData","renderExplainFixture","valueForPlayerElement","initProps","unshift","Pitch","PitchSvg","Flex","PitchRow","PitchUnit","PitchElementWrap","StyledPitchElement","isRemoved","Controls","PrimaryControl","InfoControl","ElementName","ElementValue","StatusPitchElementData","StatusPitchElementWrap","StyledStatusPitchElement","StyledInfoControl","renderElementMenu","renderPickValue","StatusPitch","StatusPitchRow","StatusPitchUnit","FiveFourOne","generateProps","StatusPitchElement","FiveThreeTwo","FiveTwoThree","FourFiveOne","FourThreeThree","FourFourTwo","ThreeFourThree","ThreeFiveTwo","StatusFormation","formation","sharedTeamPitchElementProps","formations","StyledDreamTeam","PitchWrap","TopPlayerWrap","TopScorer","TopScorerHeading","TopScorerCard","TopScorerShirt","TopScorerData","TopScorerName","TopScorerPts","TopScorerTeam","StatusDreamTeam","elementForMenu","setElementForMenu","topPlayer","top_player","handleShowMenuForElement","eventName","renderDreamTeam","SvgTransferArrowLeft","SvgTransferArrowRight","BodyArrowIn","BodyArrowOut","TransfersTable","ArrowCol","TransfersCol","isOut","transferStatus","inOut","StatusWrapper","StatusCols","StatusMain","StatusSecondary","providers","provider","Description","StyledTriangleCard","highlight","BtnWrapper","BgImg","smSrc","mdSrc","Content","ContentInner","TriangleCard","lgSrc","desc","btnText","btnLink","HomeHero","heroImg1x","heroImg2x","Highlights","HighlightsItem","Home","TrackFacebook","fbq","isWide","homeFirst2x","homeFirst1x","homeSecond2x","homeSecond1x","DialogButton","TransfersHistory","fetchLatestTransfers","transfersHistory","getLatestTransfers","ElementListElement","ElementListTable","ElementListPosition","halfElements","ceil","firstHalfElements","secondHalfElements","EntrySelector","handleChange","searchChange","selection","onInputValueChange","debounce","itemToString","getInputProps","getItemProps","getLabelProps","getMenuProps","highlightedIndex","selectedItem","backgroundColor","fontWeight","EntrySelectorWrapper","lastSearch","searchMatches","encodeURIComponent","AddBan","handleEntryChange","handleSubmit","apiDataFromState","admin_entry","ChangeAdmin","updateAdmin","ClassicDetails","requiredFields","privacyOptions","closed","code_privacy","codePrivacy","startEvent","handleNameChange","handleCodePrivacyChange","handleStartEventChange","handleClosedChange","updateLeague","Code","fetchCode","regenerateCode","Delete","remove","confirm","RemoveBan","bans","unban","AdminClassic","leagueNumber","fetchLeague","H2HDetails","maximumKoRounds","remainingEvents","league_max_ko_rounds_private_h2h","minimumSize","koRounds","pow","validStartingEvents","ko_rounds","max_entries","maxEntries","handleMaxEntriesChange","handleKoRoundsChange","league_max_size_private_h2h","num","AutoJoin","Create","CreateClassic","CreateH2H","TextDivider","CreateJoin","StyledMain","Main","StyledSubheading","StyledParagraph","CupNotStarted","cupStatus","qualification_event","has_byes","qualification_numbers","qualification_event_plus","qualification_numbers_div","qualification_numbers_min","qualification_numbers_plus","LeagueInvite","LeagueInviteCode","strong","Hr","hr","codeToCopy","origin","inviteMessage","emailText","emailBody","emailSubject","encodedEmailSubject","encodeURI","joinUrl","useClipboard","successDuration","isCopied","setCopied","isCopiedUrl","setCopiedUrl","isCopiedEmail","setCopiedEmail","onDoubleClick","line","maxPrivateLeagues","maxPublicLeagues","JoinPrivate","handleCodeChange","hasJoinedPrivate","joinPublicLeagueClassic","joinPublicLeagueH2H","publicLeagueMax","maxSizePublicClassic","league_max_size_public_classic","maxSizePublicH2H","league_max_size_public_h2h","leagueJoinPublicMax","H2HEntryFilter","handleFilterChange","leagueEntries","H2HEventFilter","eId","SvgCup","CupWinner","StyledCup","CupBase","MatchesScore","inProgress","MatchesScoreTeam","StyledStatusRow","StyledMatchRow","MatchesEntryStyles","MatchesEntry1","MatchesEntry2","MatchesScoreWrap","ByeScore","KONameRow","KONameCell","KOName","isFinal","WinnerStatus","isCup","winnerName","entry_1_name","entry_2_name","tiebreak","StatusRow","H2HMatch","selectedEntry","showEvent","isAllMine","knockout_name","entry_2_entry","entry_2_player_name","entry_1_player_name","matchEntry","matchEvent","StyledMatchesTable","MatchesRoundColRound","MatchesRoundColEntry","MatchesRoundColEntry1","MatchesRoundColScore","MatchesTable","ButtonWrapper","entryInLeague","isAdmin","entry_can_admin","isEntryInLeague","showInviteBtn","showJoinBtn","alignItems","MatchesCup","query","qs","parse","ignoreQueryPrefix","entryNumber","eventNumber","pageMatches","page_matches","buildMatchesUrl","myLeagueEntry","didNotQualify","notStarted","largeCupEvent","fetchMatches","is_large","cupStartText","eventNumberMinus","has_next","NavList","NavItem","bold","H2HNav","defaultEntryParam","pathname","MatchesH2H","handleEntryFilterChange","handleEventFilterChange","defaultEntryNumber","fetchEntries","fetchStandings","leagueEntriesError","showEntry","isLargeLeague","default_entry","CupCol","RoundCol","MyCupsTable","CupTypeTable","SubNav","LeaguesNav","NavContainer","MyCups","flex","pt","entryName","SvgCog","clipPath","clipRule","DialogManager","showDialog","handleShow","render","LinkButton","ActionBar","ActionBarItem","ActionList","MyLeaguesTable","LeagueCol","MovementCol","RankCol","OptionsCol","MenuCopy","Cog","BaseCog","MyLeagues","leave","LeagueTypeTable","LeagueMenuDialog","entry_can_leave","entry_can_invite","NewEntriesH2H","setPage","Renew","destroy","renew","mr","HelmetHead","Helmet","HelmetHeadLeagues","StandingsRow","StandingsClassic","buildLink","fetchLeagueStandings","eventStarted","eventStarting","ls","justify-content","page_new_entries","page_standings","getStartedPhases","StandingsH2H","LoggedIn","noThrow","FetchAPI","uri","Accept","FetchPost","FetchPut","MergeCode","token","setToken","MergeEmail","setEmail","PasswordReset","submitted","setSumbitted","PasswordSet","uidb64","passwordSetErrors","initialToken","newPassword1","setNewPassword1","newPassword2","setNewPassword2","setErrors","new_password1","new_password2","validate","serverErrors","addRegions","getRegions","regions","StitchBox","isNormalConfirm","dirty","stitched","canStitch","isConfirmStitch","isStitched","DOBFieldset","DOBFieldsetInner","DOBLegend","legend","DOBCol","Register","errorsTxt","EDob","EEmail","EFName","ELName","EPass","EPassLenght","ERegion","EValidDob","EvalidEmail","EValidPass","months","6","7","8","9","10","11","12","getMode","handleBirthDayChange","birthDay","handleBirthMonthChange","birthMonth","handleBirthYearChange","birthYear","handleEmailChange","handleemailAllsvenskanChange","emailAllsvenskan","handleEmailFavouriteChange","emailFavourite","handleFirstNameChange","handleLastNameChange","handlePasswordChange","password","handleRegionChange","region","registerPlayer","scrollTo","doBootstrap","updatePlayer","handleFirstnameBlur","errorFName","handleLastnameBlur","errorLName","handlePasswordBlur","errorPass","handleEmailBlur","errorEmail","handleRegionBlur","errorRegion","handleDobBlur","year","month","day","isValid","today","birthDate","age","getMonth","getDate","errorDob","handleServerErrors","updateError","formattedErrors","date_of_birth","email_allsvenskan","email_favourite","fetchRegionData","regs","update","buttonText","getRequiredFields","defaultValue","getIntRegions","SvgFacebookRound","SvgTwitterRound","ScoutNav","Social","SocialHeader","SocialBody","SocialLinks","SocialLink","network","SocialLinkItem","SocialLinkText","Scout","twttr","widgets","load","data-height","data-link-color","CreateEntryDialog","terms_agreed","handleFaveChange","handleTermsChange","createEntry","errorCode","getCodeFromError","reload","StyledPageHeader","PageHeader","StyledDeadlineBar","DeadlineBar","deadlineISO","deadlineLocal","SaveBar","StyledScoreboardPanel","Value","isError","isSuccess","ScoreboardPanel","heading","ScoreboardButtons","ScoreboardButtonsRadiusWrap","CostScoreboardUnit","CostButtonWrap","Basic","autoPick","currencyDivisor","isBudgetExceeded","isNeedElements","proposedElements","reset","ExplainChipDialog","transferCosts","Cost","activeChipName","availableChipNames","freeTransfersRemaining","proposedChipName","cancelChip","proposeChip","unlimitChip","wildCardChip","flexWrap","Scoreboard","scoreboard","console","log","savedPicks","SvgRemove","strokeLinecap","PitchElementData","PlaceholderShirt","StyledRemove","Remove","actionMe","elementValue","shirtProps","StyledPlaceholder","Abbr","Span","PitchPlaceholder","data-testid","removePitchElement","restorePitchElement","showElementType","showSidebar","DialogHeaderContent","ButtonWrap","StyledCopy","StyledDialogButton","PlayerActions","StyledPitchWrapper","Box","CreateSquad","positionForMenu","showAutoPickDialog","handleHideMenuForElement","hideAutoPickDialog","clearLastChange","listTable","submitDialog","latestAction","playerName","canEnter","sharedPitchElementProps","renderElementValueForPosition","submitButtonText","positionsByElementType","positions","renderElementDialog","renderMenu","elementTypeFilterOptions","ElementFilter","filterTeams","o","_stats","getStats","event_points","minutes","goals_scored","assists","clean_sheets","goals_conceded","own_goals","penalties_saved","penalties_missed","yellow_cards","red_cards","saves","attacking_bonus","defending_bonus","key_passes","clearances_blocks_interceptions","winning_goals","dreamteam_count","value_form","value_season","points_per_game","transfers_in","transfers_out","transfers_in_event","transfers_out_event","cost_change_start","cost_change_start_fall","cost_change_event","cost_change_event_fall","allStatsDetails","getStatDetails","getStatNames","ElementSort","getSortOptions","handleSortChange","sortOptions","isSmall","HiddenLabel","PaginatorButton","Paginator","totalPages","StyledMedia","centred","Media","MenuButton","StyledElementListRow","isProposed","ElementListStatCell","ElementListRow","Form","ElementsShown","ElementListPrice","ElementListStat","ElementTypeButton","ElementList","updateControls","handleSearchChange","handleMaxCostChange","pageSize","start","proposedElement","proposedElementsById","roomInSquad","alert","hideRef","hideSidebar","paginateAndGroup","PusherWrap","Pusher","isSidebarVisible","PusherSecondary","SquadBase","showRef","createRef","handleShowSidebar","handleHideSidebar","handleTransitionEnd","onTransitionEnd","ScrollWrapper","FlexElementCell","FilterElTypeButton","SquadListElement","SquadListCost","SquadListSelected","SquadListPoints","SquadListFixture","SquadListRow","fixturesForNextEventByTeam","SquadSelection","listTableProps","availableChips","freeTransfers","wildcardAvailable","unlimitAvaliable","costs","SquadListStatus","SquadListPrice","SquadListForm","TransfersListRow","elementState","Transfers","NewsStatus","NewsElement","NewsNews","NewsCell","News","StatsStatus","StatsElement","StatsCost","StatsSel","StatsForm","StatsPts","StatsExtra","ElementNameButton","Statistics","defaultStats","statName","paginate","extraStat","statDetail","String","StyledBoldLinkButton","BoldLinkButton","StatsTable","DreamTeamRow","dataById","SvgSub","_g2","SvgCaptain","SvgViceCaptain","SvgX2","StyledCaptain","Captain","StyledViceCaptain","ViceCaptain","StyledX2","x2","StyledSub","Sub","ElementIconWrap","DreamTeamWrap","substitute","DTScoreboard","DTScoreboardPanel","DTScoreboardHeading","DTScoreboardValue","TopPlayer","TopPlayerData","DreamTeam","fetchData","SvgDreamteam","SvgReload","BaseDreamTeam","Bench","StyledBenchUnit","BenchUnitHeading","EntryEventRow","PointsScoreboard","ScoreboardPrimary","PrimaryPanel","chipPlayed","PrimaryHeading","PrimaryValue","ReloadButton","Reload","BaseReload","ReloadButtonText","ScoreboardSecondary","SecondaryPanel","SecondaryItem","SecondaryHeading","SecondaryValue","DreamTeamLinkIcon","DreamTeamLink","ReachLink","ChipStatus","EntryEvent","pickForMenu","handleShowMenuForPickElement","entryData","handleHideMenuForPick","in_dreamteam","fetchDataAndFixtures","active_chip","benchHeading","13","14","entry_history","automatic_subs","connected","translated","MyTeamStatus","MyTeamCpt","MyTeamElement","MyTeamPos","MyTeamForm","MyTeamRD","MyTeamPts","MyTeamFix","MyTeamRow","chipInPlayName","ChipList","ChipItem","Chip","ChipHeading","ChipLink","ChipLinkArrow","MyTeam","startMax","deactivateChip","restoreChip","played_by_entry","changed","chipAllPlayName","chipsChanged","save","valid","_renderPickValue","chipDetails","getAllChipDetails","renderChipAction","renderUnlimitChipAction","makeCaptain","makeViceCaptain","Help","lazy","Rules","Terms","Prizes","OnRouteChangeWorker","OnRouteChange","PlayerRoute","EntryRoute","NotFound","fallback","Join","JoinPublic","AdminH2H","Invite","default","HomeOrHelp","renderError","ServerError","Loading","App","bootstrapped","AppContainer","bootstrapApp","errorInfo","Sentry","setExtras","fetchEntryCupDetail","byEntryId","cupDetail","cup","idsFromSummary","cup_status","fetchBestClassicPrivateLeagues","fetchMostValuableTeams","bestClassicPrivateLeagues","mostValuableTeams","fetchEventWinners","fetchPhaseWinners","byPhase","enableAllPlugins","rootReducer","winners","configureStore","initialState","middlewares","thunkMiddleware","enhancer","composeWithDevTools","applyMiddleware","createStore","dsn","environment","whitelistUrls","ignoreErrors","store","navigator","serviceWorker","ready","registration","unregister","Wrapper","Secondary","lastFinishedEvent","chipOverrides","eventOverrides","getOverridesByChipId","getOverridesByEventId","merge"],"mappings":"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","file":"static/js/main.5da5026a.chunk.js","sourcesContent":["import * as React from \"react\";\nimport { Button as Base } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\n\nexport interface IButtonStyledProps {\n disabled?: boolean;\n fullwidth?: string; // \"true\"\n variant?: string; //\"primary\" | \"secondary\" | \"link\";\n size?: string; // \"sm\" || \"md\" || \"lg\"\n hasicon: string; // \"true\" || \"\"\n}\n\nconst btnVariations = {\n baseBtn: css`\n display: inline-block;\n padding: 1.5rem 1.2rem;\n border: 0;\n background-color: transparent;\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n font-weight: bold;\n color: ${({ theme }) => theme.colors.primary};\n line-height: 1;\n border-radius: 4px;\n box-sizing: border-box;\n cursor: pointer;\n transition: all 250ms linear;\n text-decoration: none;\n font-weight: bold;\n `,\n primary: css`\n background-color: ${({ theme }) => theme.colors.yellow};\n color: ${({ theme }) => theme.colors.black};\n `,\n secondary: css`\n border: ${({ theme }) => theme.borders[0]};\n background-color: ${({ theme }) => theme.colors.blueDarker1};\n color: ${({ theme }) => theme.colors.white};\n `,\n tertiary: css`\n background-color: #00aac2;\n color: ${({ theme }) => theme.colors.white};\n `,\n link: css`\n background-color: transparent;\n\n &:hover {\n background-color: transparent;\n }\n `,\n fullwidth: css`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n `,\n xs: css`\n font-size: 1.2rem;\n padding: 0.8rem;\n `,\n sm: css`\n font-size: 1.4rem;\n padding: 1rem;\n `,\n lg: css`\n padding: 1.6rem;\n `,\n};\n\nexport const StyledBtn = styled(Base)`\n ${btnVariations.baseBtn};\n ${({ variant }) => variant === \"primary\" && btnVariations.primary};\n ${({ variant }) => variant === \"secondary\" && btnVariations.secondary};\n ${({ variant }) => variant === \"tertiary\" && btnVariations.tertiary};\n ${({ variant }) => variant === \"link\" && btnVariations.link};\n ${({ fullwidth }) => fullwidth === \"true\" && btnVariations.fullwidth}\n ${({ size }) => size === \"xs\" && btnVariations.xs}\n ${({ size }) => size === \"sm\" && btnVariations.sm}\n ${({ size }) => size === \"lg\" && btnVariations.lg}\n ${({ fullwidth, hasicon }) =>\n fullwidth === \"true\" &&\n hasicon === \"true\" &&\n css`\n justify-content: space-between;\n `};\n ${({ disabled, theme }) =>\n disabled &&\n css`\n background-color: ${theme.colors.greyLight};\n color: ${theme.colors.grey};\n cursor: auto;\n\n &:hover {\n /* background-color: ${theme.colors.grey};\n color: ${theme.colors.greyDarker3}; */\n cursor: not-allowed;\n pointer-events: all !important;\n }\n `}\n`;\n\ninterface IProps {\n onClick?: () => void;\n type?: \"button\" | \"submit\" | \"reset\";\n width?: number;\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n ref: React.RefObject;\n children: React.ReactNode;\n disabled?: boolean;\n variant?: string;\n size?: string;\n // Need to clean this part up\n to?: string;\n href?: string;\n as?: any;\n tabIndex?: number;\n role?: string;\n target?: string;\n newTab?: boolean;\n rel?: string;\n}\n\ntype Props = IProps;\n\nconst Button = React.forwardRef(\n (\n {\n as,\n width = 0,\n children,\n disabled = false,\n variant = \"primary\",\n type = \"button\",\n startIcon: startIconProp,\n endIcon: endIconProp,\n newTab = false,\n ...props\n }: Props,\n ref?: React.Ref\n ) => {\n const commonProps = {\n ref,\n disabled,\n variant,\n fullwidth: width === 1 ? \"true\" : \"undefined\",\n hasicon: !(startIconProp || endIconProp) ? \"\" : \"true\",\n };\n\n const startIcon = startIconProp && (\n {startIconProp}\n );\n\n const endIcon = endIconProp && (\n {endIconProp}\n );\n\n // If it has a \"href\" prop we assume it's wants to be an anchor\n // Or it could be a Link component but you can use the prop.as for this as={Link}\n if (props.href || props.to) {\n if (disabled) {\n props.tabIndex = -1;\n props.role = \"button\";\n }\n\n if (newTab) {\n props.target = \"_blank\";\n props.rel = \"noopener noreferrer\";\n }\n\n return (\n \n {startIcon}\n {children}\n {endIcon}\n \n );\n }\n\n return (\n \n {startIcon}\n {children}\n {endIcon}\n \n );\n }\n);\n\nexport default Button;\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { IEventStatusData } from \"./types\";\n\nexport const fetchEventStatus = createAsyncAction(\n \"FETCH_EVENT_STATUS_START\",\n \"FETCH_EVENT_STATUS_SUCCESS\",\n \"FETCH_EVENT_STATUS_FAILURE\"\n)();\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\nimport Copy from \"./Copy\";\n\nconst StyledCollapsible = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n\n > h5,\n table {\n margin: 0;\n }\n`;\n\nconst Button = styled.button`\n display: flex;\n align-items: flex-start;\n width: 100%;\n padding: ${({ theme }) => theme.space[3]};\n border: 0;\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: 1.4rem;\n text-align: left;\n\n :hover {\n color: white;\n background-color: ${({ theme }) => theme.colors.secondary};\n\n svg {\n fill: ${({ theme }) => theme.colors.white};\n }\n }\n\n svg {\n fill: ${({ theme }) => theme.colors.white};\n }\n\n &[aria-expanded=\"true\"] {\n svg {\n transform: rotate(180deg);\n fill: ${({ theme }) => theme.colors.black};\n }\n padding-bottom: ${({ theme }) => theme.space[2]};\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n background-color: ${({ theme }) => theme.colors.yellow};\n font-weight: bold;\n color: ${({ theme }) => theme.colors.black};\n }\n`;\n\nconst CollapseIcon = styled.div`\n width: 14px;\n margin-right: 10px;\n flex-shrink: 0;\n`;\n\nconst CollapsibleContent = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n border: ${({ theme }) => theme.borders[1]};\n border-bottom-right-radius: ${({ theme }) => theme.radii[2]};\n border-bottom-left-radius: ${({ theme }) => theme.radii[2]};\n color: ${({ theme }) => theme.colors.white};\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n\n &[aria-hidden] {\n display: none;\n }\n\n &[aria-hidden=\"false\"] {\n display: block;\n }\n`;\n\n// Used to generate unique ids for collapsible content / aria controls\nlet lastId = 0;\nconst newId = (prefix = \"ism-id\") => `${prefix}${++lastId}`;\n\ninterface IProps {\n headingText: string;\n}\n\ninterface IState {\n open: boolean;\n}\n\nclass Collapsible extends React.Component {\n public state = { open: false };\n public id = \"\";\n public toggle = () => this.setState({ open: !this.state.open });\n\n componentDidMount() {\n this.id = newId(\"ism-collapsible-\");\n }\n\n render() {\n const { children, headingText } = this.props;\n return (\n \n
\n \n \n \n \n \n \n {headingText}\n \n
\n \n {children}\n \n
\n );\n }\n}\n\nexport default Collapsible;\n","import { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"../bootstrap/actions\";\nimport { fetchEventStatus } from \"./actions\";\nimport { IEvent, IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addEvents):\n const newState: { [key: string]: IEvent } = {};\n action.payload.forEach((event) => {\n newState[event.id] = event;\n });\n return newState;\n default:\n return state;\n }\n },\n currentEventStatus: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(fetchEventStatus.success):\n return action.payload;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getEventsById = (state: RootState) => state.events.byId;\n\nexport const getEventByEventId = createSelector(\n [getEventsById, (_: RootState, eventId: number) => eventId],\n (events, eventId) => events[eventId]\n);\n\nexport const getEvents = (state: RootState) =>\n Object.keys(state.events.byId).map((e) => state.events.byId[e]);\n\nexport const getPreviousEvent = createSelector(getEvents, (events) => {\n const previousEvent = events.filter((e) => e.is_previous);\n return previousEvent.length ? previousEvent[0] : null;\n});\n\nexport const getCurrentEvent = createSelector(getEvents, (events) => {\n const currentEvent = events.filter((e) => e.is_current);\n return currentEvent.length ? currentEvent[0] : null;\n});\n\nexport const getNextEvent = createSelector(getEvents, (events) => {\n const nextEvent = events.filter((e) => e.is_next);\n\n return nextEvent.length ? nextEvent[0] : null;\n});\n\nexport const getNextNEvents = (n: number = 3) =>\n createSelector(\n getEventsById,\n getNextEvent,\n\n (all, nxt) => {\n const events: IEvent[] = [];\n if (nxt) {\n for (let step = 0; step < n; step++) {\n if (all[nxt.id + step]) {\n events.push(all[nxt.id + step]);\n }\n }\n }\n\n return events;\n }\n );\n\nexport const getFutureEvents = createSelector(\n getEvents,\n getNextEvent,\n (events, next) => (next ? events.filter((e) => e.id >= next.id) : [])\n);\n\nexport const getFinishedEvents = createSelector(getEvents, (events) =>\n events.filter((e) => e.finished)\n);\n\nexport const getLastEvent = createSelector(getEventsById, (eventsById) => {\n const ids = Object.keys(eventsById).map((id) => Number(id));\n if (!ids.length) {\n return null;\n }\n return eventsById[Math.max(...ids)];\n});\n\nexport const getCurrentEventStatus = (state: RootState) =>\n state.events.currentEventStatus;\n","import React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { hiDPI } from \"polished\";\n\nconst StyledHero = styled.div`\n background-image: linear-gradient(\n -45deg,\n #0f253f,\n #0f253f 50%,\n ${({ theme }) => theme.colors.blue} 44%\n );\n margin-bottom: 30px;\n padding-top: 270px;\n border-radius: ${({ theme }) => theme.radii[2]};\n text-align: center;\n height: 0;\n position: relative;\n background-repeat: no-repeat;\n\n ${(props) =>\n props.image &&\n css`\n background-image: url(${props.image});\n background-size: cover;\n `}\n\n ${(props) =>\n props.image2x &&\n css`\n ${hiDPI(2)} {\n background-image: url(${props.image2x});\n }\n `}\n`;\n\nconst HeroTitle = styled.h2`\n display: inline-block;\n margin: 0 ${({ theme }) => theme.space[2]};\n padding: 3px ${({ theme }) => theme.space[2]};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 34px;\n font-weight: 700;\n text-transform: uppercase;\n background: white;\n transform: translateY(-50%);\n line-height: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 48px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 60px;\n }\n`;\n\ninterface IProps {\n title?: string;\n}\n\ninterface IStyledProps {\n image?: string;\n image2x?: string;\n}\n\ntype Props = IProps & IStyledProps;\n\nconst Hero: React.FC = ({ image, image2x, title }) => (\n \n {title && {title}}\n \n);\n\nexport default Hero;\n","import styled from \"styled-components/macro\";\n\nconst Title = styled.h2`\n margin: 0;\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 2.2rem;\n font-weight: bold;\n text-transform: uppercase;\n`;\n\nexport default Title;\n","import styled from \"styled-components/macro\";\n\nconst SubHeading = styled.h3`\n margin: 0;\n padding: ${({ theme }) => theme.space[2]} 0;\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 1.8rem;\n font-weight: bold;\n text-transform: uppercase;\n`;\n\nexport default SubHeading;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst StyledPanel = styled.div`\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n border: ${({ theme }) => theme.borders[3]};\n border-radius: ${({ theme }) => theme.radii[2]};\n\n ${({ $isFullHeight = false }) =>\n $isFullHeight &&\n css`\n height: 100%;\n `}\n`;\n\nconst StyledPanelHeader = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${({ theme }) => theme.space[2]} ${({ theme }) => theme.space[2]};\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst PanelHeading = styled.h4`\n flex: 1;\n margin: 0;\n font-size: ${({ theme }) => theme.fontSizes[3]};\n line-height: 20px;\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.base};\n`;\n\nconst StyledPanelFooter = styled.div`\n padding: ${({ theme }) => `${theme.space[3]} ${theme.space[2]}`};\n border-top: ${({ theme }) => theme.borders[3]};\n text-align: center;\n`;\n\ninterface IPanelHeaderProps {\n title?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nconst PanelHeader: React.FC = ({ children, title }) => (\n \n {title}\n {children}\n \n);\n\ninterface IPanelBodyProps {\n children: React.ReactNode;\n}\n\nconst PanelBody: React.FC = ({ children }) => (\n
{children}
\n);\n\ninterface IPanelFooterProps {\n children: React.ReactNode;\n}\n\nconst PanelFooter: React.FC = ({ children }) => (\n {children}\n);\n\ninterface IPanelProps {\n children?: React.ReactNode;\n hasKeyline?: boolean;\n $isFullHeight?: boolean;\n}\n\nclass Panel extends React.Component {\n public static Header = PanelHeader;\n public static Body = PanelBody;\n public static Footer = PanelFooter;\n\n render() {\n const { children, $isFullHeight = false } = this.props;\n return (\n <>\n {children}\n \n );\n }\n}\n\nexport default Panel;\n","import styled from \"styled-components/macro\";\nimport { StyledBtn } from \"./Button\";\nimport { StyledButtonLink } from \"./ButtonLink\";\n\nconst Copy = styled.div`\n margin: 0 ${({ theme }) => theme.space[2]};\n\n h4,\n h5,\n p,\n ul,\n ol {\n margin-bottom: ${({ theme }) => theme.space[2]};\n }\n\n h4 {\n margin-top: 14px;\n font-size: 16px;\n font-weight: 600;\n }\n\n h6 {\n margin-bottom: ${({ theme }) => theme.space[1]};\n }\n\n h3 {\n margin-bottom: 18px;\n }\n\n ul,\n ol {\n margin-top: 0;\n margin-bottom: ${({ theme }) => theme.space[2]};\n padding-left: 4rem;\n }\n\n ul li {\n list-style-type: disc;\n margin-bottom: ${({ theme }) => theme.space[2]};\n }\n\n ol li {\n list-style-type: decimal;\n }\n\n ${StyledBtn}, ${StyledButtonLink} {\n color: ${({ theme }) => theme.colors.black};\n }\n\n a {\n color: ${({ theme }) => theme.colors.yellow};\n }\n`;\n\nexport default Copy;\n","import { em } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\n\ninterface IProps {\n size?: string;\n}\n\nexport const ScrollTable = styled.div`\n th {\n :first-of-type {\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n }\n\n :last-of-type {\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n }\n }\n\n td {\n padding: 30px 0;\n }\n\n @media (max-width: ${em(\"480px\")}) {\n overflow-x: auto;\n\n table {\n width: 48rem;\n }\n }\n`;\n\nexport const THeadRadius = styled.div`\n th {\n :first-of-type {\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n }\n\n :last-of-type {\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n }\n }\n`;\n\nconst Table = styled.table`\n width: 100%;\n border-collapse: collapse;\n font-size: ${({ theme }) => theme.fontSizes[2]};\n font-weight: bold;\n\n th {\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[2]}`};\n font-weight: bold;\n\n ${({ size }) =>\n size === \"lg\" &&\n css`\n padding: ${({ theme }) => `${theme.space[3]} ${theme.space[2]}`};\n `}\n }\n\n td {\n padding: ${({ theme }) => `${theme.space[2]} ${theme.space[2]}`};\n\n ${({ size }) =>\n size === \"lg\" &&\n css`\n padding: ${({ theme }) => `${theme.space[3]} ${theme.space[2]}`};\n `}\n }\n\n th {\n outline: ${({ theme }) => theme.borders[3]};\n text-align: left;\n color: white;\n background-color: ${({ theme }) => theme.colors.secondary};\n }\n\n tr {\n background-color: ${({ theme }) => theme.colors.blueDarker4};\n\n &:nth-child(odd) {\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n }\n }\n\n tr:last-of-type td:first-of-type {\n border-bottom-left-radius: ${({ theme }) => theme.radii[2]};\n }\n\n tr:last-of-type td:last-of-type {\n border-bottom-right-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nexport default Table;\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"..\";\nimport * as actions from \"../bootstrap/actions\";\nimport { getOverrides } from \"../overrides/reducers\";\nimport { ISettings, IState } from \"./types\";\n\nexport default combineReducers({\n settings: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addGameSettings):\n return action.payload;\n default:\n return state;\n }\n },\n total_players: (state = 0, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addTotalPlayers):\n return action.payload;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getSettings = (\n state: RootState,\n eventId?: number,\n chipId?: number\n) => {\n const overrides = getOverrides(state, eventId, chipId);\n if (!overrides) {\n return state.game.settings;\n }\n return {\n ...state.game.settings,\n ...overrides.rules,\n } as ISettings;\n};\n\nexport const getTotalPlayers = (state: RootState) => state.game.total_players;\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { IChip } from \"../chips/types\";\nimport { IElementStat } from \"../element-stats/types\";\nimport { IElementType } from \"../element-types/types\";\nimport { IElement } from \"../elements/types\";\nimport { IEvent } from \"../events/types\";\nimport { ISettings } from \"../game/types\";\nimport { IPhase } from \"../phases/types\";\nimport { IPlayer } from \"../player/types\";\nimport { ITeam } from \"../teams/types\";\n\nconst createAction = deprecated.createAction;\n\n// Action Creators\nexport const addChips = createAction(\"ADD_CHIPS\", (resolve) => {\n return (chips: IChip[]) => resolve(chips);\n});\n\nexport const addElementStats = createAction(\"ADD_ELEMENT_STATS\", (resolve) => {\n return (elementStats: IElementStat[]) => resolve(elementStats);\n});\n\nexport const addElementTypes = createAction(\"ADD_ELEMENT_TYPES\", (resolve) => {\n return (elementTypes: IElementType[]) => resolve(elementTypes);\n});\n\nexport const addElements = createAction(\"ADD_ELEMENTS\", (resolve) => {\n return (elements: IElement[]) => resolve(elements);\n});\n\nexport const addEvents = createAction(\"ADD_EVENTS\", (resolve) => {\n return (events: IEvent[]) => resolve(events);\n});\n\nexport const addGameSettings = createAction(\"ADD_GAME_SETTINGS\", (resolve) => {\n return (settings: ISettings) => resolve(settings);\n});\n\nexport const addPhases = createAction(\"ADD_PHASES\", (resolve) => {\n return (phases: IPhase[]) => resolve(phases);\n});\n\nexport const addPlayer = createAction(\"ADD_PLAYER\", (resolve) => {\n return (data: IPlayer | null) => resolve(data);\n});\n\nexport const addWatched = createAction(\"ADD_WATCHED\", (resolve) => {\n return (watched: number[]) => resolve(watched);\n});\n\nexport const addTeams = createAction(\"ADD_TEAMS\", (resolve) => {\n return (teams: ITeam[]) => resolve(teams);\n});\n\nexport const addTotalPlayers = createAction(\"ADD_TOTAL_PLAYERS\", (resolve) => {\n return (total: number) => resolve(total);\n});\n\nexport const bootstrap = createAsyncAction(\n \"BOOTSTRAP_START\",\n \"BOOTSTRAP_SUCCESS\",\n \"BOOTSTRAP_FAILURE\"\n)();\n\nexport const bootstrapMe = createAsyncAction(\n \"BOOTSTRAP_ME_START\",\n \"BOOTSTRAP_ME_SUCCESS\",\n \"BOOTSTRAP_ME_FAILURE\"\n)();\n\nexport const bootstrapStatic = createAsyncAction(\n \"BOOTSTRAP_STATIC_START\",\n \"BOOTSTRAP_STATIC_SUCCESS\",\n \"BOOTSTRAP_STATIC_FAILURE\"\n)();\n","import range from \"lodash/range\";\nimport { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"..\";\nimport * as actions from \"../bootstrap/actions\";\nimport { getOverrides } from \"../overrides/reducers\";\nimport { IElementType, IElementTypesBySquadPosition, IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addElementTypes):\n const newState: { [key: string]: IElementType } = {};\n action.payload.forEach((et) => {\n newState[et.id] = et;\n });\n return newState;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getElementTypesById = (\n state: RootState,\n eventId?: number,\n chipId?: number\n) => {\n const overrides = getOverrides(state, eventId, chipId);\n if (!overrides) {\n return state.elementTypes.byId;\n }\n return {\n ...state.elementTypes.byId,\n ...overrides.element_types.byId,\n };\n};\n\nexport const getElementTypes = createSelector(\n [\n (state: RootState, eventId?: number, chipId?: number) =>\n getElementTypesById(state, eventId, chipId),\n ],\n (elementTypesById) =>\n Object.keys(elementTypesById).map((et) => elementTypesById[et])\n);\n\nexport const getElementTypesBySquadPosition = createSelector(\n [\n (state: RootState, eventId?: number, chipId?: number) =>\n getElementTypes(state, eventId, chipId),\n ],\n (types) => {\n const data: IElementTypesBySquadPosition = {};\n\n // First pass to set types by position\n let count = 1;\n types.forEach((et) => {\n range(et.squad_select).forEach(() => {\n data[count] = { lastType: null, nextType: null, thisType: et };\n count++;\n });\n });\n\n // Second pass to set last and next types which help with rendering\n count = 1;\n types.forEach((et) => {\n range(et.squad_select).forEach(() => {\n if (data[count - 1]) {\n data[count].lastType = data[count - 1].thisType;\n }\n if (data[count + 1]) {\n data[count].nextType = data[count + 1].thisType;\n }\n count++;\n });\n });\n\n return data;\n }\n);\n","import { Link } from \"@reach/router\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\ninterface IArrowProps {\n variant?: string;\n disabled?: boolean;\n}\n\nconst ButtonLinkStyles = css`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n padding: ${({ theme }) => theme.space[3]};\n border: 0;\n border-radius: 4px;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n font-weight: 700;\n background-color: ${({ theme }) => theme.colors.yellow};\n color: ${({ theme }) => theme.colors.black};\n text-decoration: none;\n\n ${(props) =>\n props.variant === \"secondary\" &&\n css`\n background: ${({ theme }) => theme.colors.secondary};\n color: #333;\n `}\n`;\n\nexport const ButtonHyperlink = styled.a`\n ${ButtonLinkStyles}\n`;\n\nexport const StyledButtonLink = styled(Link)`\n ${ButtonLinkStyles}\n`;\n\nexport const ButtonLinkCenter = styled.span`\n flex: 1;\n text-align: center;\n`;\n\ninterface IProps {\n onClick?: () => void;\n to: string;\n children: React.ReactNode;\n variant?: string;\n disabled?: boolean;\n}\n\ntype Props = IProps;\n\nconst ButtonLink: React.FC = ({\n children,\n onClick,\n to,\n variant = \"primary\",\n disabled = false,\n}) => (\n \n {children}\n \n);\n\nexport default ButtonLink;\n","import { Locale } from \"date-fns\";\nimport { formatInTimeZone, utcToZonedTime } from \"date-fns-tz\";\nimport moment from \"moment\";\nimport \"moment-timezone\";\n\nconst localTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\nexport const formatDateObjAsDate = (dt: Date) =>\n formatInTimeZone(dt, localTimeZone, \"d MMM\");\n\nexport const formatDateAsISO = (dt: Date) =>\n utcToZonedTime(dt, localTimeZone).toISOString();\n\nexport const formatDateAsLocal = (dt: Date, format: string = \"E d MMM HH:mm\") =>\n formatInTimeZone(dt, localTimeZone, format);\n\nexport const formatDateAsLocalI18n = (\n dt: Date,\n locale: Locale,\n format: string = \"E d MMM HH:mm\"\n) => formatInTimeZone(dt, localTimeZone, format, { locale });\n\nexport const formatDateAsTime = (dt: Date) =>\n formatInTimeZone(dt, localTimeZone, \"HH:mm\");\n\nexport const formatRawAsDate = (raw: string) =>\n formatDateObjAsDate(new Date(raw));\n\nexport const formatRawAsISO = (raw: string) => formatDateAsISO(new Date(raw));\n\nexport const formatRawAsLocal = (raw: string, format?: string) =>\n formatDateAsLocal(new Date(raw), format);\n\nexport const formatRawAsLocalI18n = (\n raw: string,\n locale: Locale,\n format?: string\n) => formatDateAsLocalI18n(new Date(raw), locale, format);\n\nexport const formatRawAsTime = (raw: string) => formatDateAsTime(new Date(raw));\n\nconst tzBlockList = [\n \"Africa/Asmera\",\n \"Africa/Timbuktu\",\n \"America/Argentina/ComodRivadavia\",\n \"America/Atka\",\n \"America/Buenos_Aires\",\n \"America/Catamarca\",\n \"America/Coral_Harbour\",\n \"America/Cordoba\",\n \"America/Ensenada\",\n \"America/Fort_Wayne\",\n \"America/Indianapolis\",\n \"America/Jujuy\",\n \"America/Knox_IN\",\n \"America/Louisville\",\n \"America/Mendoza\",\n \"America/Montreal\",\n \"America/Porto_Acre\",\n \"America/Rosario\",\n \"America/Santa_Isabel\",\n \"America/Shiprock\",\n \"America/Virgin\",\n \"Antarctica/South_Pole\",\n \"Asia/Ashkhabad\",\n \"Asia/Calcutta\",\n \"Asia/Chongqing\",\n \"Asia/Chungking\",\n \"Asia/Dacca\",\n \"Asia/Harbin\",\n \"Asia/Istanbul\",\n \"Asia/Kashgar\",\n \"Asia/Katmandu\",\n \"Asia/Macao\",\n \"Asia/Rangoon\",\n \"Asia/Saigon\",\n \"Asia/Tel_Aviv\",\n \"Asia/Thimbu\",\n \"Asia/Ujung_Pandang\",\n \"Asia/Ulan_Bator\",\n \"Atlantic/Faeroe\",\n \"Atlantic/Jan_Mayen\",\n \"Australia/ACT\",\n \"Australia/Canberra\",\n \"Australia/Canberra\",\n \"Australia/LHI\",\n \"Australia/NSW\",\n \"Australia/North\",\n \"Australia/Queensland\",\n \"Australia/South\",\n \"Australia/Tasmania\",\n \"Australia/Victoria\",\n \"Australia/West\",\n \"Australia/Yancowinna\",\n \"Brazil/Acre\",\n \"Brazil/DeNoronha\",\n \"Brazil/East\",\n \"Brazil/West\",\n \"Canada/Saskatchewan\",\n \"Canada/Yukon\",\n \"Chile/Continental\",\n \"Chile/EasterIsland\",\n \"Europe/Belfast\",\n \"Europe/Nicosia\",\n \"Europe/Tiraspol\",\n \"Mexico/BajaNorte\",\n \"Mexico/BajaSur\",\n \"Mexico/General\",\n \"Pacific/Johnston\",\n \"Pacific/Ponape\",\n \"Pacific/Samoa\",\n \"Pacific/Truk\",\n \"Pacific/Yap\",\n \"US/Aleutian\",\n \"US/East-Indiana\",\n \"US/Indiana-Starke\",\n \"US/Michigan\",\n \"US/Pacific\",\n];\nexport const getValidTimeZones = () =>\n moment.tz.names().filter((tz) => {\n if (tz === \"UTC\") {\n return true;\n }\n if (tz.indexOf(\"/\") === -1) {\n return false;\n }\n if (tz.indexOf(\"Etc/\") === 0) {\n return false;\n }\n if (tzBlockList.indexOf(tz) > -1) {\n return false;\n }\n return true;\n });\n\nexport const getDefaultTZ = () => {\n const valid = getValidTimeZones();\n const guess = moment.tz.guess();\n return valid.indexOf(guess) > -1 ? guess : \"UTC\";\n};\n\nexport default formatDateAsLocal;\n","import { setDefaultOptions } from \"date-fns\";\nimport { sv } from \"date-fns/locale\";\nimport i18n from \"i18next\";\nimport Backend from \"i18next-xhr-backend\";\nimport moment from \"moment\";\nimport \"moment/locale/sv\";\nimport { initReactI18next } from \"react-i18next\";\n\nconst lng = window.location.hostname.substring(0, 3) === \"en.\" ? \"en\" : \"sv\";\nexport const dateLocales: Record = {\n sv,\n};\n// Update moment and date-fns locale\ni18n.on(\"languageChanged\", function (lng) {\n moment.locale(lng);\n setDefaultOptions({ locale: dateLocales[lng] });\n});\n\ni18n\n .use(Backend)\n .use(initReactI18next)\n .init({\n ns: [\"common\"],\n defaultNS: \"common\",\n lng,\n fallbackLng: \"en\", // to stop trying to fetch dev transations\n debug: true,\n interpolation: {\n escapeValue: false, // react already safe from xss as escaped by default\n },\n });\n\nexport default i18n;\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"./actions\";\nimport { IState } from \"./types\";\n\nexport const timeNow = () => Math.round(new Date().getTime() / 1000);\n\n// State Reducer\nexport default combineReducers({\n loading: (state = false, action) => {\n switch (action.type) {\n case getType(actions.bootstrap.request):\n return true;\n case getType(actions.bootstrap.failure):\n case getType(actions.bootstrap.success):\n return false;\n default:\n return state;\n }\n },\n\n times: (state = { browser: null, server: null }, action) => {\n switch (action.type) {\n case getType(actions.bootstrap.success):\n return {\n browser: timeNow(),\n server: null,\n };\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getBootstrapped = (state: RootState) =>\n Boolean(state.bootstrap.times.browser);\n\nexport const getBootstrapTime = (state: RootState) =>\n state.bootstrap.times.browser;\n","import { deprecated } from \"typesafe-actions\";\nimport { IServerError } from \"./types\";\n\nconst createAction = deprecated.createAction;\n\nexport const addServerError = createAction(\n \"ADD_SERVER_ERROR\",\n (resolve) => (error: IServerError) => resolve(error)\n);\n","import { Dispatch } from \"redux\";\nimport { IError, RootAction } from \"../store\";\nimport { addServerError } from \"../store/global/actions\";\n\nexport const getCookie = (name: string): string => {\n let cookieValue = \"\";\n if (document.cookie && document.cookie !== \"\") {\n for (let cookie of document.cookie.split(\";\")) {\n cookie = cookie.trim();\n if (cookie.substring(0, name.length + 1) === `${name}=`) {\n cookieValue = decodeURIComponent(cookie.substring(name.length + 1));\n break;\n }\n }\n }\n return cookieValue;\n};\n\nconst responseIsEmpty = (response: Response) => {\n const contentLength = response.headers.get(\"content-length\");\n return (\n response.status === 204 ||\n (contentLength && parseInt(contentLength, 10) === 0)\n );\n};\n\nconst responseIsJSON = (response: Response) => {\n const contentType = response.headers.get(\"content-type\");\n return contentType && contentType.indexOf(\"application/json\") !== -1;\n};\n\n// TODO - Type this better\ninterface IAsyncActions {\n request: any;\n failure: any;\n success: any;\n}\n\nasync function _api(\n url: string,\n dispatch: Dispatch,\n asyncActions: IAsyncActions,\n fetchArgs: RequestInit,\n successPayloadFormat?: {}\n): Promise {\n let response;\n try {\n dispatch(asyncActions.request());\n response = await fetch(`/api/${url}`, {\n ...fetchArgs,\n credentials: \"same-origin\",\n });\n } catch (e) {\n // Network error\n const error: IError = { errorText: e.message, url };\n dispatch(asyncActions.failure(error));\n throw e;\n }\n if (!response.ok) {\n // Not 2xx\n const error: IError = { statusText: response.statusText, url };\n if (response.status === 400) {\n error.badRequest = await response.json();\n } else {\n // Non 400 errors are handled globally\n dispatch(\n addServerError({\n code: response.status,\n details: await response.text(),\n })\n );\n }\n dispatch(asyncActions.failure(error));\n throw new Error(response.statusText);\n }\n const data = responseIsJSON(response)\n ? responseIsEmpty(response)\n ? {}\n : await response.json()\n : responseIsEmpty(response)\n ? \"\"\n : await response.json();\n dispatch(\n asyncActions.success(\n successPayloadFormat\n ? {\n ...successPayloadFormat,\n data,\n }\n : data\n )\n );\n return data as T;\n}\n\nexport async function apiGet(\n url: string,\n dispatch: Dispatch,\n asyncActions: IAsyncActions,\n successPayloadFormat?: {}\n): Promise {\n return _api(url, dispatch, asyncActions, {}, successPayloadFormat);\n}\n\nasync function _apiDeletePostPut(\n method: \"DELETE\" | \"POST\" | \"PUT\",\n url: string,\n data: object,\n dispatch: Dispatch,\n asyncActions: IAsyncActions,\n successPayloadFormat?: {}\n): Promise {\n return _api(\n url,\n dispatch,\n asyncActions,\n {\n body: JSON.stringify(data),\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-CSRFToken\": getCookie(\"csrftoken\"),\n },\n method,\n },\n successPayloadFormat\n );\n}\n\nexport async function apiPost(\n url: string,\n data: object,\n dispatch: Dispatch,\n asyncActions: IAsyncActions,\n successPayloadFormat?: {}\n): Promise {\n return _apiDeletePostPut(\n \"POST\",\n url,\n data,\n dispatch,\n asyncActions,\n successPayloadFormat\n );\n}\n\nexport async function apiPut(\n url: string,\n data: object,\n dispatch: Dispatch,\n asyncActions: IAsyncActions,\n successPayloadFormat?: {}\n): Promise {\n return _apiDeletePostPut(\n \"PUT\",\n url,\n data,\n dispatch,\n asyncActions,\n successPayloadFormat\n );\n}\n\nexport async function apiDelete(\n url: string,\n data: object,\n dispatch: Dispatch,\n asyncActions: IAsyncActions,\n successPayloadFormat?: {}\n): Promise {\n return _apiDeletePostPut(\n \"DELETE\",\n url,\n data,\n dispatch,\n asyncActions,\n successPayloadFormat\n );\n}\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport {\n IEntry,\n IEntryChipHistory,\n IEntryEvent,\n IEntryEventHistory,\n IEntryPhaseStanding,\n IEntrySeasonHistory,\n ITransfer,\n} from \"./types\";\n\nexport const fetchEntrySummary = createAsyncAction(\n \"FETCH_ENTRY_SUMMARY_START\",\n \"FETCH_ENTRY_SUMMARY_SUCCESS\",\n \"FETCH_ENTRY_SUMMARY_FAILURE\"\n)();\n\nexport const fetchEntryHistory = createAsyncAction(\n \"FETCH_ENTRY_HISTORY_START\",\n \"FETCH_ENTRY_HISTORY_SUCCESS\",\n \"FETCH_ENTRY_HISTORY_FAILURE\"\n)<\n void,\n {\n id: number;\n data: {\n current: IEntryEventHistory[];\n past: IEntrySeasonHistory[];\n chips: IEntryChipHistory[];\n };\n },\n IError\n>();\n\nexport const fetchEntryEventPicks = createAsyncAction(\n \"FETCH_ENTRY_EVENT_PICKS_START\",\n \"FETCH_ENTRY_EVENT_PICKS_SUCCESS\",\n \"FETCH_ENTRY_EVENT_PICKS_FAILURE\"\n)();\n\nexport const updateEntry = createAsyncAction(\n \"UPDATE_ENTRY_START\",\n \"UPDATE_ENTRY_SUCCESS\",\n \"UPDATE_ENTRY_FAILURE\"\n)();\n\nexport const fetchEntryTransfers = createAsyncAction(\n \"FETCH_ENTRY_TRANSFERS_START\",\n \"FETCH_ENTRY_TRANSFERS_SUCCESS\",\n \"FETCH_ENTRY_TRANSFERS_FAILURE\"\n)();\n\nexport const fetchEntryPhaseStandings = createAsyncAction(\n \"FETCH_ENTRY_PHASE_STANDINGS_START\",\n \"FETCH_ENTRY_PHASE_STANDINGS_SUCCESS\",\n \"FETCH_ENTRY_PHASE_STANDINGS_FAILURE\"\n)<\n void,\n { entry: number; phase: number; data: IEntryPhaseStanding[] },\n IError\n>();\n\nexport const unsubscribeEntry = createAsyncAction(\n \"UNSUBSCRIBE_ENTRY_START\",\n \"UNSUBSCRIBE_ENTRY_SUCCESS\",\n \"UNSUBSCRIBE_ENTRY_FAILURE\"\n)();\n","var _defs, _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgClose(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{fill:none;}.b{fill:#0e204d;}\"))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"a\",\n d: \"M0,0H20V20H0Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M10.918,9.745l4.109-4.109L16.2,6.81l-4.109,4.109L16.2,15.027,15.027,16.2l-4.109-4.109L6.81,16.2,5.636,15.027l4.109-4.109L5.636,6.81,6.81,5.636Z\",\n transform: \"translate(-0.918 -0.918)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.75b0895e.svg\";\nexport { ForwardRef as ReactComponent };","import { ThunkResult } from \"..\";\nimport { apiGet, apiPost, apiPut } from \"../../utils/api\";\nimport { bootstrap } from \"../bootstrap/thunks\";\nimport * as actions from \"./actions\";\nimport { IUpdateEntryData } from \"./types\";\n\nexport const fetchEntrySummary =\n (entryId: number): ThunkResult =>\n async (dispatch) => {\n try {\n await apiGet(`entry/${entryId}/`, dispatch, actions.fetchEntrySummary, {\n id: entryId,\n });\n } catch (e) {\n return;\n }\n };\n\nexport const fetchEntryHistory =\n (entryId: number): ThunkResult =>\n async (dispatch) => {\n try {\n await apiGet(\n `entry/${entryId}/history/`,\n dispatch,\n actions.fetchEntryHistory,\n {\n id: entryId,\n }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchEntryEventPicks =\n (entryId: number, eventId: number): ThunkResult =>\n async (dispatch) => {\n try {\n await apiGet(\n `entry/${entryId}/event/${eventId}/picks/`,\n dispatch,\n actions.fetchEntryEventPicks,\n {\n entry: entryId,\n event: eventId,\n }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const updateEntry =\n (data: IUpdateEntryData): ThunkResult> =>\n async (dispatch) => {\n await apiPut(\"entry-update/\", data, dispatch, actions.updateEntry);\n dispatch(bootstrap());\n };\n\nexport const fetchEntryTransfers =\n (entryId: number): ThunkResult =>\n async (dispatch) => {\n try {\n await apiGet(\n `entry/${entryId}/transfers/`,\n dispatch,\n actions.fetchEntryTransfers,\n { id: entryId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchEntryPhaseStandings =\n (entryId: number, phaseId: number): ThunkResult =>\n async (dispatch) => {\n try {\n await apiGet(\n `entry/${entryId}/phase/${phaseId}/standings/`,\n dispatch,\n actions.fetchEntryPhaseStandings,\n { entry: entryId, phase: phaseId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const unsubscribeEntry =\n (signature: string): ThunkResult> =>\n async (dispatch) => {\n await apiPost(\n \"entry/unsubscribe/\",\n { signature },\n dispatch,\n actions.unsubscribeEntry\n );\n dispatch(bootstrap());\n };\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport { IBaseChip, IChip } from \"../chips/types\";\nimport { IElementStat } from \"../element-stats/types\";\nimport { IElementType } from \"../element-types/types\";\nimport { IElement } from \"../elements/types\";\nimport { fetchEntrySummary } from \"../entries/thunks\";\nimport { IBaseEvent, IEvent } from \"../events/types\";\nimport { ISettings } from \"../game/types\";\nimport { IPhase } from \"../phases/types\";\nimport { IPlayer } from \"../player/types\";\nimport { ITeam } from \"../teams/types\";\nimport * as actions from \"./actions\";\nimport { getBootstrapTime, timeNow } from \"./reducers\";\n\nexport const bootstrap = (): ThunkResult> => async (dispatch) => {\n dispatch(actions.bootstrap.request());\n\n const staticRequest = apiGet<{\n chips: IBaseChip[];\n element_stats: IElementStat[];\n element_types: IElementType[];\n elements: IElement[];\n events: IBaseEvent[];\n game_settings: ISettings;\n phases: IPhase[];\n teams: ITeam[];\n total_players: number;\n }>(\"bootstrap-static/\", dispatch, actions.bootstrapStatic);\n\n const formatChips = (chips: IBaseChip[]): IChip[] => {\n return chips.map((c: IBaseChip) => {\n return {\n ...c,\n overrides: {\n ...c.overrides,\n element_types: {\n byId: c.overrides.element_types.length\n ? Object.fromEntries(\n c.overrides.element_types.map((elementType: IElementType) => [\n elementType.id,\n {\n ...elementType,\n },\n ])\n )\n : {},\n },\n },\n };\n });\n };\n\n const formatEvents = (events: IBaseEvent[]): IEvent[] => {\n return events.map((event: IBaseEvent) => {\n return {\n ...event,\n overrides: {\n ...event.overrides,\n element_types: {\n byId: event.overrides.element_types.length\n ? Object.fromEntries(\n event.overrides.element_types.map(\n (elementType: IElementType) => [\n elementType.id,\n {\n ...elementType,\n },\n ]\n )\n )\n : {},\n },\n },\n };\n });\n };\n\n const dynamicRequest = apiGet<{ player: IPlayer | null; watched: number[] }>(\n \"me/\",\n dispatch,\n actions.bootstrapMe\n );\n\n await Promise.all([staticRequest, dynamicRequest])\n .then(([staticData, meData]) => {\n if (meData.player && meData.player.entry) {\n // If the player has an entry then fetch their summary. This is done\n // asynchronously, users of `getEntry` should be prepared to handle\n // null and delay rendering as necessary\n dispatch(fetchEntrySummary(meData.player.entry));\n }\n\n dispatch(actions.addChips(formatChips(staticData.chips)));\n dispatch(actions.addElementStats(staticData.element_stats));\n dispatch(actions.addElementTypes(staticData.element_types));\n dispatch(actions.addElements(staticData.elements));\n dispatch(actions.addEvents(formatEvents(staticData.events)));\n dispatch(actions.addGameSettings(staticData.game_settings));\n dispatch(actions.addPhases(staticData.phases));\n dispatch(actions.addTeams(staticData.teams));\n dispatch(actions.addTotalPlayers(staticData.total_players));\n dispatch(actions.addPlayer(meData.player));\n dispatch(actions.addWatched(meData.watched));\n dispatch(actions.bootstrap.success({}));\n })\n .catch((e) => {\n dispatch(actions.bootstrap.failure(e.message));\n });\n};\n\nexport const checkGame =\n (): ThunkResult> => async (dispatch, getState) => {\n const REFRESH_MINUTES = 10;\n const lastBootstrap = getBootstrapTime(getState());\n if (lastBootstrap && timeNow() - lastBootstrap > REFRESH_MINUTES * 60) {\n dispatch(bootstrap());\n }\n };\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"..\";\nimport * as actions from \"./actions\";\nimport { IState } from \"./types\";\n\nexport default combineReducers({\n serverError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addServerError):\n return action.payload;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getServerError = (state: RootState) => state.global.serverError;\n","// my-theme.ts\nimport { em } from \"polished\";\nimport { DefaultTheme } from \"styled-components\";\n\nconst black = \"#242424\";\nconst blue = \"#12326e\";\nconst darkPink = \"#e90052\";\nconst fantasy = \"#00ff87\";\nconst greyLight = \"#dadada\";\nconst lightBlue = \"#174b93\";\nconst lighterBlue = \"#658ac7\";\nconst primary = \"#12326e\";\nconst yellow = \"#ffd600\";\nconst whiteGrey = \"#f0f0f0\";\n\nconst theme: DefaultTheme = {\n borders: [\n `1px solid ${lighterBlue}`,\n `1px solid ${yellow}`,\n `1px solid ${whiteGrey}`,\n `1px solid ${lightBlue}`,\n ],\n breakpoints: [\n em(\"400px\"),\n em(\"610px\"),\n em(\"700px\"),\n em(\"900px\"),\n em(\"1024px\"),\n em(\"1220px\"),\n ],\n colors: {\n black: black,\n blue: \"#12326e\",\n blueDark: \"#005b6d\",\n lighterBlue: \"#658ac7\",\n darkPink,\n difficulties: {\n 1: {\n bg: \"#257d5a\",\n color: \"white\",\n },\n 2: {\n bg: \"#00ff86\",\n color: \"black\",\n },\n 3: {\n bg: \"#ebebe4\",\n color: \"black\",\n },\n 4: {\n bg: \"#ff005a\",\n color: \"white\",\n },\n 5: {\n bg: \"#861d46\",\n color: \"white\",\n },\n },\n elementStatus: {\n 0: {\n bg: \"#c0020d\",\n color: \"white\",\n },\n 25: {\n bg: \"#d44401\",\n color: \"white\",\n },\n 50: {\n bg: \"#ffab1b\",\n color: black,\n },\n 75: {\n bg: \"#ffe65b\",\n color: black,\n },\n },\n elementTypes: {\n 1: {\n bg: yellow,\n color: primary,\n },\n 2: {\n bg: fantasy,\n color: primary,\n },\n 3: {\n bg: blue,\n color: primary,\n },\n 4: {\n bg: darkPink,\n color: \"white\",\n },\n },\n error: \"#db1c77\",\n fantasy,\n grey: \"#b2b2b2\",\n greyDark: \"#505050\",\n greyLight,\n pink: \"#ff2882\",\n primary,\n greyDarker1: \"#e5e5e5\",\n greyDarker2: \"#d1d1d1\",\n greyDarker3: \"#6e6e6e\",\n blueDarker1: \"#174b93\",\n blueDarker2: \"#004986\",\n blueDarker3: \"#0e204d\",\n blueDarker4: \"#0f2659\",\n secondary: lightBlue,\n social: {\n facebook: {\n bg: \"#3b5998\",\n color: \"white\",\n },\n twitter: {\n bg: \"#00aced\",\n color: \"white\",\n },\n google: {\n bg: \"white\",\n color: \"rgba(0, 0, 0, 0.54)\",\n },\n },\n success: \"#51f5c4\",\n tertiary: \"#d2eff9\",\n text: black,\n white: \"#fff\",\n whiteBlue: \"#f2f9fa\",\n whiteGrey,\n yellow,\n },\n fontSizes: [\"1.2rem\", \"1.3rem\", \"1.4rem\", \"1.6rem\", \"1.8rem\"],\n fonts: {\n base: \"Gilroy-Medium, Arial, sans-serif;\",\n impact: \"BBStrataPro, Arial, sans-serif;\",\n },\n radii: [\"2px\", \"5px\", \"10px\"],\n space: [\"0\", \"0.5rem\", \"1rem\", \"1.5rem\", \"2rem\"],\n zIndex: {\n clientMenu: 7000,\n dialog: 9000,\n menu: 6000,\n overlay: 8000,\n select: {\n select: 50,\n wrap: 40,\n },\n },\n};\n\nexport default theme;\n","import { createGlobalStyle } from \"styled-components/macro\";\nimport theme from \"./theme\";\n\nconst GlobalStyle = createGlobalStyle`\n html {\n\t\tfont-family: ${theme.fonts.base};\n\t\tfont-size: 62.5%;\n\t\tline-height: normal;\n\t\t-webkit-font-smoothing: antialiased;\n }\n\n body {\n \tmargin: 0;\n\tbackground-color: ${theme.colors.blueDarker3};\n\tcolor: ${theme.colors.white};\n font-size: ${theme.fontSizes[2]};\n }\n\n\t.ism {\n\t\tbox-sizing: border-box;\n\t\tfont-family: ${theme.fonts.base};\n\n\t\t*, *::before, *::after {\n\t\t\tbox-sizing: inherit;\n\t\t}\n\n\t\tp {\n\t\t\tline-height: 1.6;\n\t\t\tfont-size: 14px;\n\t\t}\n\n\t\tinput[type=\"search\"] {\n\t\t\tbox-sizing: inherit;\n\t\t}\n\t}\n`;\n\nexport default GlobalStyle;\n","import { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"../bootstrap/actions\";\nimport { IState } from \"./types\";\n\n// State Reducer\nconst reducer = (state: IState = [], action: RootAction) => {\n switch (action.type) {\n case getType(actions.addElementStats):\n return action.payload;\n default:\n return state;\n }\n};\nexport default reducer;\n\n// State Selectors\nexport const getElementStats = (state: RootState) => state.elementStats;\n\nexport const getElementStatsByIdentifier = createSelector(\n getElementStats,\n (stats) => stats.reduce((memo, stat) => ({ ...memo, [stat.name]: stat }), {})\n);\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport {\n IElementControls,\n IElementEventRaw,\n IElementSummaryData,\n} from \"./types\";\n\nconst createAction = deprecated.createAction;\n\nexport const updateElementControls = createAction(\n \"UPDATE_ELEMENT_CONTROLS\",\n (resolve) => {\n return (controls: IElementControls) => resolve(controls);\n }\n);\n\nexport const elementDialogShow = createAction(\n \"ELEMENT_DIALOG_SHOW\",\n (resolve) => (id: number) => resolve(id)\n);\n\nexport const elementDialogHide = createAction(\n \"ELEMENT_DIALOG_HIDE\",\n (resolve) => () => resolve()\n);\n\nexport const fetchElementSummary = createAsyncAction(\n \"FETCH_ELEMENT_SUMMARY_START\",\n \"FETCH_ELEMENT_SUMMARY_SUCCESS\",\n \"FETCH_ELEMENT_SUMMARY_FAILURE\"\n)();\n\nexport const fetchElementEventData = createAsyncAction(\n \"FETCH_ELEMENT_EVENT_DATA_START\",\n \"FETCH_ELEMENT_EVENT_DATA_SUCCESS\",\n \"FETCH_ELEMENT_EVENT_DATA_FAILURE\"\n)();\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IError } from \"..\";\n\nconst createAction = deprecated.createAction;\n\nexport const login = createAsyncAction(\n \"LOGIN_START\",\n \"LOGIN_SUCCESS\",\n \"LOGIN_FAILURE\"\n)();\n\nexport const logout = createAsyncAction(\n \"LOGOUT_START\",\n \"LOGOUT_SUCCESS\",\n \"LOGOUT_FAILURE\"\n)();\n\nexport const recover = createAsyncAction(\n \"RECOVER_START\",\n \"RECOVER_SUCCESS\",\n \"RECOVER_FAILURE\"\n)();\n\nexport const register = createAsyncAction(\n \"REGISTER_START\",\n \"REGISTER_SUCCESS\",\n \"REGISTER_FAILURE\"\n)();\n\nexport const playerUpdate = createAsyncAction(\n \"PLAYER_UPDATE_START\",\n \"PLAYER_UPDATE_SUCCESS\",\n \"PLAYER_UPDATE_FAILURE\"\n)();\n\nexport const passwordChange = createAsyncAction(\n \"PASSWORD_CHANGE_START\",\n \"PASSWORD_CHANGE_SUCCESS\",\n \"PASSWORD_CHANGE_FAILURE\"\n)();\n\nexport const passwordReset = createAsyncAction(\n \"PASSWORD_RESET_START\",\n \"PASSWORD_RESET_SUCCESS\",\n \"PASSWORD_RESET_FAILURE\"\n)();\n\nexport const passwordSet = createAsyncAction(\n \"PASSWORD_SET_START\",\n \"PASSWORD_SET_SUCCESS\",\n \"PASSWORD_SET_FAILURE\"\n)();\n\nexport const addToWatched = createAction(\n \"ADD_TO_WATCHED\",\n (resolve) => (elementCode: number) => resolve(elementCode)\n);\n\nexport const removeFromWatched = createAction(\n \"REMOVE_FROM_WATCHED\",\n (resolve) => (elementCode: number) => resolve(elementCode)\n);\n\nexport const addToWatchlist = createAsyncAction(\n \"ADD_TO_WATCHLIST_START\",\n \"ADD_TO_WATCHLIST_SUCCESS\",\n \"ADD_TO_WATCHLIST_FAILURE\"\n)();\n\nexport const removeFromWatchlist = createAsyncAction(\n \"REMOVE_FROM_WATCHLIST_START\",\n \"REMOVE_FROM_WATCHLIST_SUCCESS\",\n \"REMOVE_FROM_WATCHLIST_FAILURE\"\n)();\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"..\";\nimport { addPlayer, addWatched } from \"../bootstrap/actions\";\nimport * as actions from \"./actions\";\nimport { IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n data: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(addPlayer):\n return action.payload;\n default:\n return state;\n }\n },\n loginError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.login.failure):\n return action.payload;\n default:\n return null;\n }\n },\n loginSuccess: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.login.success):\n return action.type;\n default:\n return null;\n }\n },\n passwordChangeError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.passwordChange.failure):\n return action.payload;\n default:\n return null;\n }\n },\n passwordResetError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.passwordReset.failure):\n return action.payload;\n default:\n return null;\n }\n },\n passwordSetError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.passwordSet.failure):\n return action.payload;\n default:\n return null;\n }\n },\n playerUpdateError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.playerUpdate.failure):\n return action.payload;\n default:\n return null;\n }\n },\n registerError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.register.failure):\n return action.payload;\n default:\n return null;\n }\n },\n watched: (state = [], action: RootAction) => {\n switch (action.type) {\n case getType(addWatched):\n return action.payload;\n case getType(actions.addToWatched):\n return state.indexOf(action.payload) === -1\n ? [...state, action.payload]\n : state;\n case getType(actions.removeFromWatched):\n return state.filter((code) => code !== action.payload);\n default:\n return state;\n }\n },\n recoveryError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.recover.failure):\n return action.payload;\n default:\n return state;\n }\n },\n recoveryStatus: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.recover.success):\n return action.payload;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getPlayerData = (state: RootState) => state.player.data;\n\nexport const getWatched = (state: RootState) => state.player.watched;\n\nexport const getLoginError = (state: RootState) => state.player.loginError;\n\nexport const getPasswordChangeError = (state: RootState) =>\n state.player.passwordChangeError;\n\nexport const getPasswordResetError = (state: RootState) =>\n state.player.passwordResetError;\n\nexport const getPasswordSetError = (state: RootState) =>\n state.player.passwordSetError;\n\nexport const getPlayerUpdateError = (state: RootState) =>\n state.player.playerUpdateError;\n\nexport const getRegisterError = (state: RootState) =>\n state.player.registerError;\n\nexport const getLoginSuccess = (state: RootState) => state.player.loginSuccess;\n\nexport const getRecoveryError = (state: RootState) =>\n state.player.recoveryError;\n\nexport const getRecoveryStatus = (state: RootState) =>\n state.player.recoveryStatus;\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"../bootstrap/actions\";\nimport { IState, ITeam } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addTeams):\n const newState: { [key: string]: ITeam } = {};\n action.payload.forEach((team) => {\n newState[team.id] = team;\n });\n return newState;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getTeamsById = (state: RootState) => state.teams.byId;\n\nexport const getTeams = (state: RootState) =>\n Object.keys(state.teams.byId)\n .map((t) => state.teams.byId[t])\n .sort((a, b) => a.name.localeCompare(b.name));\n","import range from \"lodash/range\";\nimport sortBy from \"lodash/sortBy\";\nimport { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { ISelectOption, RootAction, RootState } from \"../\";\nimport * as bootstrapActions from \"../bootstrap/actions\";\nimport { getElementStats } from \"../element-stats/reducers\";\nimport { getElementTypes } from \"../element-types/reducers\";\nimport * as elementActions from \"../elements/actions\";\nimport { getLastEvent, getNextEvent } from \"../events/reducers\";\nimport { getOverrides } from \"../overrides/reducers\";\nimport { getWatched } from \"../player/reducers\";\nimport { getTeams } from \"../teams/reducers\";\nimport {\n IElement,\n IElementFixture,\n IElementFixtureBlank,\n IState,\n} from \"./types\";\n\nexport const formatNameForSearching = (name: string): string => {\n const search = name.toLowerCase();\n const from = \"ąàáäâãåæăćčĉęèéëêĝĥìíïîĵłľńňòóöőôõðøśșşšŝťțţŭùúüűûñÿýçżźž.\";\n const to = \"aaaaaaaaaccceeeeeghiiiijllnnoooooooossssstttuuuuuunyyczzz \";\n return search.replace(/.{1}/g, (c) => {\n const index = from.indexOf(c);\n return index === -1 ? c : to[index];\n });\n};\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(bootstrapActions.addElements):\n const newState: { [key: string]: IElement } = {};\n action.payload.forEach((element) => {\n newState[element.id] = {\n ...element,\n search_name: formatNameForSearching(element.web_name),\n };\n });\n return newState;\n default:\n return state;\n }\n },\n\n controls: (\n state = {\n filter: \"\",\n search: \"\",\n sort: \"total_points\",\n maxCost: 0,\n getUnavailable: true,\n },\n action: RootAction\n ) => {\n switch (action.type) {\n case getType(elementActions.updateElementControls):\n return action.payload;\n default:\n return state;\n }\n },\n\n dialog: (state = 0, action: RootAction) => {\n switch (action.type) {\n case getType(elementActions.elementDialogShow):\n return action.payload;\n case getType(elementActions.elementDialogHide):\n return 0;\n default:\n return state;\n }\n },\n\n fixturesById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(elementActions.fetchElementSummary.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.fixtures,\n };\n default:\n return state;\n }\n },\n\n eventDataById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(elementActions.fetchElementEventData.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.elements.reduce(\n (memo, data) => ({\n ...memo,\n [data.id]: {\n explain: data.explain,\n stats: data.stats,\n },\n }),\n {}\n ),\n };\n default:\n return state;\n }\n },\n\n historyById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(elementActions.fetchElementSummary.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.history,\n };\n default:\n return state;\n }\n },\n\n seasonHistoryById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(elementActions.fetchElementSummary.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.history_past,\n };\n default:\n return state;\n }\n },\n});\n\n// State Selectors and helper functions\nexport const getElementsById = (\n state: RootState,\n eventId?: number,\n chipId?: number\n) => {\n const overrides = getOverrides(state, eventId, chipId);\n if (!overrides) {\n return state.elements.byId;\n }\n return {\n ...state.elements.byId,\n ...overrides.elements?.byId,\n };\n};\n\nexport const getElement = createSelector(\n [\n (state: RootState, _: any, eventId?: number) =>\n getElementsById(state, eventId, undefined),\n (_: any, elementId: number) => elementId,\n ],\n (elementsById, elementId) => {\n return elementsById[elementId];\n }\n);\n\nexport const getElements = createSelector(\n [(state: RootState, eventId?: number) => getElementsById(state, eventId)],\n (elements) => {\n return Object.keys(elements).map((e) => elements[e]);\n }\n);\n\nexport const getElementControls = (state: RootState) => state.elements.controls;\n\nexport const getElementCount = createSelector(\n getElements,\n (elements) => elements.length\n);\n\nexport const getElementTypeFilterOptions = createSelector(\n getElementTypes,\n (types): ISelectOption[] =>\n types.map((et) => ({\n label: et.plural_name,\n value: `et_${et.id}`,\n }))\n);\n\nexport const getTeamFilterOptions = createSelector(\n getTeams,\n (teams): ISelectOption[] =>\n teams.map((t) => ({\n label: t.name,\n value: `te_${t.id}`,\n }))\n);\n\nexport const getFilterOptions = createSelector(\n getElementTypeFilterOptions,\n getTeamFilterOptions,\n (types, teams) => [...types, ...teams]\n);\n\nexport const getFilter = (filter: string) => {\n const filters = {\n element_type: 0,\n team: 0,\n };\n const filterRegexp = /^(te|et)_(\\d+)$/;\n const matches = filter.match(filterRegexp);\n if (matches) {\n const key = matches[1];\n const value = parseInt(matches[2], 10);\n switch (key) {\n case \"te\":\n filters.team = value;\n break;\n case \"et\":\n filters.element_type = value;\n break;\n default:\n break;\n }\n }\n return filters;\n};\n\nexport const getSafeSearchRegexp = (search: string) => {\n const safeValue = formatNameForSearching(search).replace(\n /[-/\\\\^$*+?.()|[\\]{}]/g,\n \"\\\\$&\"\n );\n return new RegExp(`(^${safeValue}| ${safeValue})`);\n};\n\nexport const filterElements = (\n elements: IElement[],\n filterString: string,\n watched: number[]\n) => {\n if (filterString === \"wl\") {\n return watchedElements(elements, watched);\n }\n const filter = getFilter(filterString);\n return elements.filter((e) => {\n if (!filterString) {\n return false;\n }\n if (filter.team && filter.team !== e.team) {\n return false;\n }\n if (filter.element_type && filter.element_type !== e.element_type) {\n return false;\n }\n return true;\n });\n};\n\nexport const watchedElements = (elements: IElement[], watched: number[]) =>\n elements.filter((e) => watched.indexOf(e.code) > -1);\n\nexport const maxCostFromElements = (elements: IElement[]) =>\n elements.length\n ? elements.reduce(\n (max, e) => (e.now_cost > max ? e.now_cost : max),\n elements[0].now_cost\n )\n : 0;\n\nexport const minCostFromElements = (elements: IElement[]) =>\n elements.length\n ? elements.reduce(\n (min, e) => (e.now_cost < min ? e.now_cost : min),\n elements[0].now_cost\n )\n : 0;\n\nexport const reduceElements = (\n elements: IElement[],\n search: string,\n maxCost: number\n) => {\n const searchRegexp = getSafeSearchRegexp(search);\n return elements.filter((e) => {\n if (search && !e.search_name.match(searchRegexp)) {\n return false;\n }\n if (maxCost && e.now_cost > maxCost) {\n return false;\n }\n return true;\n });\n};\n\nconst ascendingSort: Array = [\"chance_of_playing_next_round\"];\n\nconst stringSort: Array = [\"news_added\"];\n\nexport const sortElements = (elements: IElement[], sort: keyof IElement) =>\n elements.sort((a, b) => {\n let aSort, bSort;\n if (stringSort.indexOf(sort) > -1) {\n aSort = a[sort] || \"\";\n bSort = b[sort] || \"\";\n } else {\n // sort value must be either a float represented as a string or a number\n // all bets are off if not ...\n aSort = a[sort] || 0;\n bSort = b[sort] || 0;\n if (typeof aSort === \"string\" && typeof bSort === \"string\") {\n aSort = parseFloat(aSort);\n bSort = parseFloat(bSort);\n }\n }\n\n if (ascendingSort.indexOf(sort) > -1) {\n bSort = [aSort, (aSort = bSort)][0];\n }\n\n // Descending stat order\n if (aSort !== bSort) {\n return aSort > bSort ? -1 : 1;\n }\n\n // Ascending team order\n if (a.team !== b.team) {\n return a.team > b.team ? 1 : -1;\n }\n\n // Ascending element type order\n if (a.element_type !== b.element_type) {\n return a.element_type > b.element_type ? 1 : -1;\n }\n\n // Finally ascending id\n return a.id > b.id ? 1 : -1;\n });\n\nexport const getElementsFromControls = createSelector(\n getElements,\n getElementControls,\n getWatched,\n (elements, controls, watched) => {\n const filteredElements = filterElements(\n elements.filter((e) => controls.getUnavailable || e.status !== \"u\"),\n controls.filter,\n watched\n );\n\n return {\n data: sortElements(\n reduceElements(filteredElements, controls.search, controls.maxCost),\n controls.sort\n ),\n maxCost: maxCostFromElements(filteredElements),\n minCost: minCostFromElements(filteredElements),\n };\n }\n);\n\nexport const getAverageCostByType = createSelector(getElements, (elements): {\n [key: string]: number;\n} => {\n const elCosts: {\n [key: string]: {\n total: number;\n count: number;\n };\n } = {};\n elements.forEach((e) => {\n if (!elCosts[e.element_type]) {\n elCosts[e.element_type] = { total: 0, count: 0 };\n }\n elCosts[e.element_type].total += e.now_cost;\n elCosts[e.element_type].count++;\n });\n return Object.keys(elCosts).reduce(\n (memo, et) => ({\n ...memo,\n [et]: elCosts[et].total / elCosts[et].count,\n }),\n {}\n );\n});\n\nexport const getElementDialog = (state: RootState) => state.elements.dialog;\n\nexport const getFixturesById = (state: RootState) =>\n state.elements.fixturesById;\n\nexport const getFixtures = (state: RootState, elementId: number) => {\n const fixturesById = getFixturesById(state);\n return fixturesById[elementId] || [];\n};\n\nexport const getFixturesWithBlanks = (state: RootState, elementId: number) => {\n const fixtures = getFixtures(state, elementId);\n const nxt = getNextEvent(state);\n const lst = getLastEvent(state);\n\n // No more events so just return any fixtures\n if (!nxt) {\n return fixtures;\n }\n\n // Pad out any blank events\n const fixturesWithBlanks: Array = [];\n let expectedNextEventId = nxt.id;\n fixtures.forEach((f) => {\n // TBA fixtures are at the end\n if (!f.event) {\n fixturesWithBlanks.push(f);\n return;\n }\n if (f.event > expectedNextEventId) {\n range(expectedNextEventId, f.event).map((i) =>\n fixturesWithBlanks.push({ code: null, event: i })\n );\n }\n fixturesWithBlanks.push(f);\n expectedNextEventId = f.event + 1;\n });\n\n // Also need to consider missing fixture until the last event\n if (lst && lst.id >= expectedNextEventId) {\n range(expectedNextEventId, lst.id + 1).map((i) =>\n fixturesWithBlanks.push({ code: null, event: i })\n );\n }\n\n return fixturesWithBlanks;\n};\n\nexport const getHistoryById = (state: RootState) => state.elements.historyById;\n\nexport const getHistory = (state: RootState, elementId: number) => {\n const historyById = getHistoryById(state);\n return historyById[elementId] || [];\n};\n\nexport const getHistoryTotals = (state: RootState, elementId: number) => {\n const statNames = [\n ...getElementStats(state).map((s) => s.name),\n \"total_points\",\n ];\n const totals: Record = statNames.reduce(\n (memo, n) => ({ ...memo, [n]: 0 }),\n {}\n );\n getHistory(state, elementId).forEach((h) => {\n statNames.forEach((s) => {\n totals[s] = Number(totals[s]) + Number(h[s]);\n });\n });\n statNames.forEach((s) => {\n if (!Number.isInteger(totals[s])) {\n totals[s] = Number(totals[s]).toFixed(1);\n }\n });\n return totals;\n};\n\nexport const getSeasonHistoryById = (state: RootState) =>\n state.elements.seasonHistoryById;\n\nexport const getSeasonHistory = (state: RootState, elementId: number) => {\n const seasonHistoryById = getSeasonHistoryById(state);\n return seasonHistoryById[elementId] || [];\n};\n\nexport const getElementsEventDataById = (state: RootState, eventId: number) =>\n state.elements.eventDataById[eventId] || null;\n\nexport const getTotalsByType = (elements: IElement[]) =>\n sortBy(elements, \"element_type\").reduce>(\n (memo, e) => ({\n ...memo,\n [e.element_type]: memo[e.element_type] ? memo[e.element_type] + 1 : 1,\n }),\n {}\n );\n\nexport const getFormation = (elements: IElement[]) => {\n const totals = getTotalsByType(elements);\n return sortBy(Object.keys(totals), (et) => Number(et))\n .map((et) => totals[et])\n .join(\"-\");\n};\n","import { ThunkResult } from \"..\";\nimport { apiDelete, apiGet, apiPost, apiPut } from \"../../utils/api\";\nimport { bootstrap } from \"../bootstrap/thunks\";\nimport * as actions from \"./actions\";\nimport {\n ILoginData,\n IPasswordChangeData,\n IPasswordResetData,\n IPasswordSetData,\n} from \"./types\";\n\nexport const login =\n (postData: ILoginData): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\"player/login/\", postData, dispatch, actions.login);\n } catch (e) {\n return;\n }\n dispatch(bootstrap());\n };\n\nexport const logout = (): ThunkResult> => (dispatch) =>\n apiGet(\"player/logout/\", dispatch, actions.logout);\n\nexport const register =\n (postData: {}): ThunkResult> =>\n (dispatch) =>\n apiPost(\"player/create/\", postData, dispatch, actions.register);\n\nexport const playerUpdate =\n (postData: {}): ThunkResult> =>\n (dispatch) =>\n apiPut(\"player/update/\", postData, dispatch, actions.playerUpdate);\n\nexport const passwordChange =\n (postData: IPasswordChangeData): ThunkResult> =>\n (dispatch) =>\n apiPut(\n \"player/password-change/\",\n postData,\n dispatch,\n actions.passwordChange\n );\n\nexport const passwordReset =\n (postData: IPasswordResetData): ThunkResult> =>\n (dispatch) =>\n apiPost(\n \"player/password-reset/\",\n postData,\n dispatch,\n actions.passwordReset\n );\n\nexport const passwordSet =\n (postData: IPasswordSetData): ThunkResult> =>\n (dispatch) =>\n apiPut(\"player/password-set/\", postData, dispatch, actions.passwordSet);\n\nexport const addToWatchlist =\n (elementCode: number): ThunkResult> =>\n async (dispatch) => {\n dispatch(actions.addToWatched(elementCode));\n return apiPost(\n `watchlist/${elementCode}/`,\n {},\n dispatch,\n actions.addToWatchlist\n );\n };\n\nexport const removeFromWatchlist =\n (elementCode: number): ThunkResult> =>\n async (dispatch) => {\n dispatch(actions.removeFromWatched(elementCode));\n return apiDelete(\n `watchlist/${elementCode}/`,\n {},\n dispatch,\n actions.removeFromWatchlist\n );\n };\n\nexport const accountRecovery =\n (postData: ILoginData): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\"player/recovery/\", postData, dispatch, actions.recover);\n } catch (e) {\n return;\n }\n dispatch(bootstrap());\n };\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IMyTeamData } from \"../my-team/types\";\nimport { IElementsById } from \"../elements/types\";\nimport { IError } from \"..\";\n\nconst createAction = deprecated.createAction;\n\nexport const proposeAvailableChip = createAction(\n \"PROPOSE_AVAILABLE_CHIP\",\n (resolve) => (chipName: string) => resolve(chipName)\n);\n\nexport const cancelProposedChip = createAction(\n \"CANCEL_PROPOSED_CHIP\",\n (resolve) => (chipName: string) => resolve(chipName)\n);\n\nexport const cancelActiveChip = createAction(\n \"CANCEL_ACTIVE_CHIP\",\n (resolve) => (chipName: string) => resolve(chipName)\n);\n\nexport const restoreCancelledChip = createAction(\n \"RESTORE_CANCELLED_CHIP\",\n (resolve) => (chipName: string) => resolve(chipName)\n);\n\nexport const fetchChipState = createAsyncAction(\n \"FETCH_CHIP_STATE_START\",\n \"FETCH_CHIP_STATE_SUCCESS\",\n \"FETCH_CHIP_STATE_FAILURE\"\n)();\n\nexport const saveChipTeam = createAsyncAction(\n \"SAVE_CHIP_TEAM_START\",\n \"SAVE_CHIP_TEAM_SUCCESS\",\n \"SAVE_CHIP_TEAM_FAILURE\"\n)();\n\nexport const saveChipTransfer = createAsyncAction(\n \"SAVE_CHIP_TRANSFER_START\",\n \"SAVE_CHIP_TRANSFER_SUCCESS\",\n \"SAVE_CHIP_TRANSFER_FAILURE\"\n)();\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { IElementsById } from \"../elements/types\";\nimport { IMyTeamData, IPickProposed } from \"./types\";\n\nconst createAction = deprecated.createAction;\n\nexport const fetchMyTeam = createAsyncAction(\n \"FETCH_MY_TEAM_START\",\n \"FETCH_MY_TEAM_SUCCESS\",\n \"FETCH_MY_TEAM_FAILURE\"\n)();\n\nexport const saveMyTeam = createAsyncAction(\n \"SAVE_MY_TEAM_START\",\n \"SAVE_MY_TEAM_SUCCESS\",\n \"SAVE_MY_TEAM_FAILURE\"\n)();\n\nexport const substitutionStart = createAction(\n \"SUBSTITUTION_START\",\n (resolve) => {\n return (pick: IPickProposed, possibleReplacements: IPickProposed[]) =>\n resolve({ pick, possibleReplacements });\n }\n);\n\nexport const substitutionStop = createAction(\n \"SUBSTITUTION_STOP\",\n (resolve) => () => resolve()\n);\n\nexport const substitutionProcess = createAction(\n \"SUBSTITUTION_PROCESS\",\n (resolve) => (pick: IPickProposed, subsStart: number) =>\n resolve({ pick, subsStart })\n);\n\nexport const changeCaptain = createAction(\n \"CHANGE_CAPTAIN\",\n (resolve) => (elementId: number) => resolve({ elementId, isVice: false })\n);\n\nexport const changeViceCaptain = createAction(\n \"CHANGE_VICE_CAPTAIN\",\n (resolve) => (elementId: number) => resolve({ elementId, isVice: true })\n);\n","import { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport { addChips } from \"../bootstrap/actions\";\nimport { fetchMyTeam, saveMyTeam } from \"../my-team/actions\";\nimport * as actions from \"./actions\";\nimport { IChip, IPotentialChip, IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(addChips):\n const newState: { [key: string]: IChip } = {};\n action.payload.forEach((chip) => {\n newState[chip.id] = chip;\n });\n return newState;\n default:\n return state;\n }\n },\n potential: (state = [], action: RootAction) => {\n switch (action.type) {\n case getType(fetchMyTeam.success):\n case getType(saveMyTeam.success):\n case getType(actions.saveChipTeam.success):\n case getType(actions.fetchChipState.success):\n return action.payload.data.chips;\n\n case getType(actions.proposeAvailableChip): {\n if (someActiveOrProposed(state)) {\n return state;\n }\n return state.map((c) => ({\n ...c,\n status_for_entry:\n c.name === action.payload &&\n c.status_for_entry.match(/^(available|unavailable)$/)\n ? \"proposed\"\n : c.status_for_entry,\n }));\n }\n\n case getType(actions.cancelProposedChip): {\n return state.map((c) => ({\n ...c,\n status_for_entry:\n c.name === action.payload && c.status_for_entry === \"proposed\"\n ? \"available\"\n : c.status_for_entry,\n }));\n }\n\n case getType(actions.cancelActiveChip):\n return state.map((c) => ({\n ...c,\n status_for_entry:\n c.name === action.payload &&\n c.status_for_entry === \"active\" &&\n c.chip_type === \"team\"\n ? \"cancelled\"\n : c.status_for_entry,\n }));\n\n case getType(actions.restoreCancelledChip): {\n if (someActiveOrProposed(state)) {\n return state;\n }\n return state.map((c) => ({\n ...c,\n status_for_entry:\n c.name === action.payload && c.status_for_entry === \"cancelled\"\n ? \"active\"\n : c.status_for_entry,\n }));\n }\n\n default:\n return state;\n }\n },\n});\n\nconst someActiveOrProposed = (chips: IPotentialChip[]) =>\n chips.some(\n (c) => c.status_for_entry === \"active\" || c.status_for_entry === \"proposed\"\n );\n\n// State Selectors / Helpers\nexport const getChipsById = (state: RootState) => state.chips.byId;\n\nexport const getChipByChipId = createSelector(\n [getChipsById, (_: RootState, chipId: number) => chipId],\n (chips, chipId) => chips[chipId]\n);\n\nexport const getPotentialChips = (state: RootState) => state.chips.potential;\n\nexport const getPlayedChips = createSelector(getPotentialChips, (chips) =>\n chips.filter((c) => c.status_for_entry === \"played\")\n);\n\nexport const getActiveChip = createSelector(getPotentialChips, (chips) => {\n const matches = chips.filter((c) => c.status_for_entry === \"active\");\n return matches.length ? matches[0] : null;\n});\n\nexport const getActiveChipName = createSelector(getActiveChip, (chip) =>\n chip ? chip.name : \"\"\n);\n\nexport const getProposedChip = createSelector(getPotentialChips, (chips) => {\n const matches = chips.filter((c) => c.status_for_entry === \"proposed\");\n return matches.length ? matches[0] : null;\n});\n\nexport const getProposedChipName = createSelector(getProposedChip, (chip) =>\n chip ? chip.name : \"\"\n);\n\n// This is most relevent for transfer chips. On team chips we have to consider\n// unavailable as well as they can become 'available' if an active chip is\n// cancelled\nexport const getAvailableChipNames = createSelector(\n getPotentialChips,\n (chips) =>\n chips.filter((c) => c.status_for_entry === \"available\").map((c) => c.name)\n);\n\nexport const teamChipsHaveChanged = createSelector(getPotentialChips, (chips) =>\n chips.some(\n (c) =>\n c.chip_type === \"team\" &&\n Boolean(c.status_for_entry.match(/^(cancelled|proposed)$/))\n )\n);\n\nexport const getActiveOrProposedTeamChipName = createSelector(\n getPotentialChips,\n (chips) =>\n chips.reduce(\n (memo, c) =>\n c.chip_type === \"team\" &&\n c.status_for_entry.match(/^(active|proposed)$/)\n ? c.name\n : memo,\n null\n )\n);\n\nexport const getActiveOrProposedTransferChipName = createSelector(\n getPotentialChips,\n (chips) =>\n chips.reduce(\n (memo, c) =>\n c.chip_type === \"transfer\" &&\n c.status_for_entry.match(/^(active|proposed)$/)\n ? c.name\n : memo,\n null\n )\n);\n\nexport const getActiveOrProposedChip = createSelector(\n getPotentialChips,\n (chips) =>\n chips.reduce(\n (memo, c) => (c.status_for_entry.match(/^(active|proposed)$/) ? c : memo),\n null\n )\n);\n\nexport const getActiveOrProposedAllChipName = createSelector(\n getActiveOrProposedChip,\n (chip) => (chip ? chip.name : null)\n);\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { ITransfer } from \"../entries/types\";\nimport { IProposedPicks } from \"./types\";\n\nconst createAction = deprecated.createAction;\n\nexport const proposeElementInPosition = createAction(\n \"PROPOSE_ELEMENT_IN_POSITION\",\n (resolve) => {\n return (element: number, position: number) =>\n resolve({ element, position });\n }\n);\n\nexport const removeElementInPosition = createAction(\n \"REMOVE_ELEMENT_IN_POSITION\",\n (resolve) => {\n return (element: number, position: number) =>\n resolve({ element, position });\n }\n);\n\nexport const resetLastChange = createAction(\"RESET_LAST_CHANGE\", (resolve) => {\n return () => resolve();\n});\n\nexport const resetProposed = createAction(\"RESET_PROPOSED\", (resolve) => {\n return (data: IProposedPicks = {}) => resolve(data);\n});\n\nexport const createSquad = createAsyncAction(\n \"CREATE_SQUAD_START\",\n \"CREATE_SQUAD_SUCCESS\",\n \"CREATE_SQUAD_FAILURE\"\n)();\n\nexport const makeTransfers = createAsyncAction(\n \"MAKE_TRANSFERS_START\",\n \"MAKE_TRANSFERS_SUCCESS\",\n \"MAKE_TRANSFERS_FAILURE\"\n)();\n\nexport const fetchTransfersLatest = createAsyncAction(\n \"FETCH_TRANSFERS_LATEST_START\",\n \"FETCH_TRANSFERS_LATEST_SUCCESS\",\n \"FETCH_TRANSFERS_LATEST_FAILURE\"\n)();\n","import groupBy from \"lodash/groupBy\";\nimport orderBy from \"lodash/orderBy\";\nimport range from \"lodash/range\";\nimport values from \"lodash/values\";\nimport { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"..\";\nimport { getActiveChipName, getProposedChipName } from \"../chips/reducers\";\nimport { getElementTypes } from \"../element-types/reducers\";\nimport { getElementsById } from \"../elements/reducers\";\nimport { IElementsById } from \"../elements/types\";\nimport { getSettings } from \"../game/reducers\";\nimport * as myTeamActions from \"../my-team/actions\";\nimport * as chipActions from \"../chips/actions\";\nimport { IPick } from \"../my-team/types\";\nimport { getTeams } from \"../teams/reducers\";\nimport * as actions from \"./actions\";\nimport {\n ILastChange,\n IProposedElements,\n IProposedElementsById,\n ISquadErrors,\n IState,\n ITransfersData,\n SquadMode,\n} from \"./types\";\n\n// State Reducer\nconst defaultLastType: ILastChange = { type: \"none\", element: 0 };\nexport default combineReducers({\n lastChange: (state = defaultLastType, action: RootAction) => {\n switch (action.type) {\n case getType(actions.proposeElementInPosition):\n return {\n element: action.payload.element,\n type: \"addition\",\n };\n case getType(actions.removeElementInPosition):\n return {\n element: action.payload.element,\n type: \"removal\",\n };\n case getType(actions.resetLastChange):\n case getType(actions.resetProposed):\n return defaultLastType;\n default:\n return state;\n }\n },\n proposed: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.proposeElementInPosition):\n return {\n ...state,\n [action.payload.position]: action.payload.element,\n };\n case getType(actions.removeElementInPosition):\n const newState = { ...state };\n if (\n newState[action.payload.position] &&\n newState[action.payload.position] === action.payload.element\n ) {\n delete newState[action.payload.position];\n }\n return newState;\n case getType(actions.resetProposed):\n return action.payload;\n case getType(myTeamActions.fetchMyTeam.success):\n case getType(myTeamActions.saveMyTeam.success):\n return picksInSquadOrder(\n action.payload.data.picks,\n action.payload.elementsById\n ).reduce>(\n (memo, p, i) => ({ ...memo, [i + 1]: p.element }),\n {}\n );\n\n default:\n return state;\n }\n },\n saved: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(myTeamActions.fetchMyTeam.success):\n case getType(myTeamActions.saveMyTeam.success):\n return picksInSquadOrder(\n action.payload.data.picks,\n action.payload.elementsById\n ).reduce>(\n (memo, p, i) => ({ ...memo, [i + 1]: p }),\n {}\n );\n\n default:\n return state;\n }\n },\n transferState: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(myTeamActions.fetchMyTeam.success):\n case getType(chipActions.fetchChipState.success):\n return action.payload.data.transfers;\n default:\n return state;\n }\n },\n latestTransfers: (state = [], action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchTransfersLatest.success):\n return action.payload;\n default:\n return state;\n }\n },\n error: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.createSquad.failure):\n case getType(actions.makeTransfers.failure):\n return action.payload;\n default:\n return null;\n }\n },\n});\n\n// State Selectors / Helper Functions\nexport const getProposedPicks = (state: RootState) => state.squad.proposed;\n\nexport const getSavedPicks = (state: RootState) => state.squad.saved;\n\nexport const getLastChange = (state: RootState) => state.squad.lastChange;\n\nexport const getTransferState = (state: RootState) => state.squad.transferState;\n\nexport const getLatestTransfers = (state: RootState) =>\n state.squad.latestTransfers;\n\nexport const getSquadError = (state: RootState) => state.squad.error;\n\nexport const getSquadMode = createSelector(\n getSavedPicks,\n (picks): SquadMode => (Object.keys(picks).length ? \"transfers\" : \"selection\")\n);\n\nexport const getProposedElements = createSelector(\n getProposedPicks,\n getSettings,\n getElementsById,\n (picks, settings, elementsById) => {\n const data: IProposedElements = {};\n if (settings) {\n range(1, settings.squad_squadsize + 1).forEach((id) => {\n if (picks[id]) {\n data[id] = elementsById[picks[id]];\n }\n });\n }\n return data;\n }\n);\n\nexport const getProposedElementsById = createSelector(\n getProposedElements,\n (elements) =>\n Object.keys(elements).reduce((obj, pos) => {\n obj[elements[pos].id] = {\n ...elements[pos],\n position: parseInt(pos, 10),\n };\n return obj;\n }, {})\n);\n\n// Returns removed, original or replaced for each squad position\nexport const getTransferPositionStatus = createSelector(\n getSavedPicks,\n getProposedPicks,\n (saved, proposed) =>\n Array.from(\n new Set([...Object.keys(saved), ...Object.keys(proposed)])\n ).reduce>(\n (memo, pos) => {\n memo[pos] = !saved[pos]\n ? \"addition\"\n : !proposed[pos]\n ? \"removed\"\n : saved[pos].element === proposed[pos]\n ? \"original\"\n : \"replaced\";\n return memo;\n },\n {}\n )\n);\n\nexport const getToSpend = createSelector(\n getSquadMode,\n getProposedElements,\n getSavedPicks,\n getTransferPositionStatus,\n getSettings,\n getTransferState,\n getProposedChipName,\n getActiveChipName,\n (\n mode,\n proposed,\n saved,\n posStatus,\n settings,\n transferState,\n proposedChip,\n activeChip\n ) => {\n if (settings) {\n if (mode === \"selection\") {\n return values(proposed).reduce(\n (toSpend, e) => toSpend - e.now_cost,\n settings.squad_total_spend\n );\n } else if (mode === \"transfers\" && transferState !== null) {\n if (proposedChip === \"rich\" || activeChip === \"rich\") {\n return 1000000;\n }\n\n return Array.from(\n new Set([...Object.keys(saved), ...Object.keys(proposed)])\n ).reduce((toSpend, pos) => {\n if (posStatus[pos] === \"removed\") {\n toSpend += saved[pos]?.selling_price || 0;\n } else if (posStatus[pos] === \"replaced\") {\n toSpend +=\n (saved[pos]?.selling_price || 0) - (proposed[pos]?.now_cost || 0);\n } else if (posStatus[pos] === \"addition\") {\n toSpend -= proposed[pos]?.now_cost || 0;\n }\n return toSpend;\n }, transferState.bank);\n }\n }\n return 0;\n }\n);\n\nexport const getTeamLimit = createSelector(\n getSettings,\n getProposedChipName,\n getActiveChipName,\n (settings, proposedChip, activeChip) => {\n if (settings) {\n return proposedChip === \"uteam\" || activeChip === \"uteam\"\n ? settings.squad_squadsize\n : settings.squad_team_limit;\n }\n return 0; // Only temporary (if at all) whilst settings are loaded\n }\n);\n\nexport const getTypesNeeded = createSelector(\n getProposedElements,\n getElementTypes,\n getSettings,\n (elements, types) => {\n let needed: { [id: string]: number } = {};\n needed = types.reduce(\n (memo, et) => ({ ...memo, [et.id]: et.squad_select }),\n {}\n );\n values(elements).forEach((e) => {\n needed[e.element_type]--;\n });\n return needed;\n }\n);\n\nexport const getCountByTeam = createSelector(\n getProposedElements,\n getTeams,\n (elements, teams) => {\n const countByTeam: { [id: string]: number } = teams.reduce(\n (memo, t) => ({ ...memo, [t.id]: 0 }),\n {}\n );\n const elementsByTeam = groupBy(elements, \"team\");\n Object.keys(elementsByTeam).forEach((teamId) => {\n countByTeam[teamId] = elementsByTeam[teamId].length;\n });\n return countByTeam;\n }\n);\n\nexport const getProposedTransfers = createSelector(\n getProposedElements,\n getSavedPicks,\n (elements, picks) => {\n const data: Array = [];\n const pickKeys = Object.keys(picks);\n\n Object.keys(elements).forEach((i) => {\n if (elements[i]) {\n if (pickKeys.includes(i) && elements[i].id !== picks[i].element) {\n // When both element and pick exist and are different (transfer)\n data.push({\n element_in: elements[i].id,\n element_out: picks[i].element,\n purchase_price: elements[i].now_cost,\n selling_price: picks[i].selling_price,\n });\n } else if (!pickKeys.includes(i)) {\n // When trying to create a new pick\n data.push({\n element_in: elements[i].id,\n element_out: null,\n purchase_price: elements[i].now_cost,\n selling_price: 0,\n });\n }\n }\n });\n return data;\n }\n);\n\nexport const getErrors = createSelector(\n getProposedElements,\n getSettings,\n getToSpend,\n getTeamLimit,\n getCountByTeam,\n getProposedTransfers,\n getSquadMode,\n (elements, settings, toSpend, teamLimit, countByTeam, transfers, mode) => {\n const errors: ISquadErrors = {};\n if (!settings) {\n return errors;\n }\n const needed = settings.squad_squadsize;\n\n if (toSpend < 0) {\n errors.budgetExceeded = -toSpend;\n }\n\n const selected = Object.keys(elements).length;\n if (selected !== needed) {\n errors.needElements = needed - selected;\n }\n\n Object.keys(countByTeam).forEach((teamId) => {\n if (countByTeam[teamId] > teamLimit) {\n if (!errors.overTeamLimit) {\n errors.overTeamLimit = [];\n }\n errors.overTeamLimit.push(parseInt(teamId, 10));\n }\n });\n\n if (mode === \"transfers\") {\n if (!transfers.length) {\n errors.noTransfersMade = true;\n } else {\n delete errors.noTransfersMade;\n }\n }\n\n return errors;\n }\n);\n\nexport const toCreateEntryAPI = createSelector(\n getProposedElements,\n (elements) =>\n values(elements).map((e) => ({\n element: e.id,\n purchase_price: e.now_cost,\n }))\n);\n\nexport const getNumberOfTransferChanges = createSelector(\n getTransferPositionStatus,\n (positionStatus) =>\n values(positionStatus).reduce(\n (count, s) => (s === \"original\" || s === \"addition\" ? count : count + 1),\n 0\n )\n);\n\nexport const getFreeTransfers = createSelector(\n getTransferState,\n (transferState) => {\n if (!transferState || transferState.limit === null) {\n return 0;\n }\n return Math.max(transferState.limit - transferState.made, 0);\n }\n);\n\nexport const getFreeTransfersRemaining = createSelector(\n getFreeTransfers,\n getNumberOfTransferChanges,\n (free, changes) => Math.max(free - changes, 0)\n);\n\nexport const getTransferCostsWithoutChip = createSelector(\n getTransferState,\n getNumberOfTransferChanges,\n (transferState, changes) => {\n if (!transferState || transferState.limit === null) {\n return 0;\n }\n const overLimit = -(\n Math.max(transferState.limit - transferState.made, 0) - changes\n );\n return overLimit > 0 ? overLimit * transferState.cost : 0;\n }\n);\n\nexport const getTransferCosts = createSelector(\n getTransferCostsWithoutChip,\n getActiveChipName,\n getProposedChipName,\n (cost, activeChip, proposedChip) => {\n const freeChips = [\"wildcard\", \"freehit\", \"rich\", \"uteam\"];\n if (activeChip && freeChips.indexOf(activeChip) > -1) {\n return 0;\n }\n if (proposedChip && freeChips.indexOf(proposedChip) > -1) {\n return 0;\n }\n return cost;\n }\n);\n\nexport const canAutocomplete = createSelector(getErrors, (errors) =>\n Boolean(\n errors.needElements && !errors.budgetExceeded && !errors.overTeamLimit\n )\n);\n\nexport const canReset = createSelector(\n getSquadMode,\n getProposedElements,\n getNumberOfTransferChanges,\n (mode, proposed, changes) =>\n Boolean(mode === \"selection\" ? Object.keys(proposed).length : changes)\n);\n\nconst picksInSquadOrder = (picks: IPick[], elementsById: IElementsById) =>\n orderBy(picks, [\n (p) => elementsById[p.element].element_type,\n (p) => p.element,\n ]);\n","import { navigate } from \"@reach/router\";\nimport shuffle from \"lodash/shuffle\";\nimport values from \"lodash/values\";\nimport { ThunkResult } from \"..\";\nimport { apiPost, apiGet } from \"../../utils/api\";\nimport { bootstrap } from \"../bootstrap/thunks\";\nimport { cancelProposedChip } from \"../chips/actions\";\nimport {\n getProposedChip,\n getProposedChipName,\n getActiveOrProposedTransferChipName,\n getActiveOrProposedChip,\n getActiveChip,\n} from \"../chips/reducers\";\nimport { getElementTypesBySquadPosition } from \"../element-types/reducers\";\nimport {\n getAverageCostByType,\n getElement,\n getElements,\n} from \"../elements/reducers\";\nimport { getNextEvent } from \"../events/reducers\";\nimport { getSettings } from \"../game/reducers\";\nimport { getPlayerData } from \"../player/reducers\";\nimport {\n getCountByTeam,\n getProposedElements,\n getProposedTransfers,\n getSavedPicks,\n getToSpend,\n getTransferCostsWithoutChip,\n getTypesNeeded,\n toCreateEntryAPI,\n} from \"../squad/reducers\";\nimport * as actions from \"./actions\";\nimport { resetProposed } from \"./actions\";\nimport { ICreateEntryData } from \"./types\";\n\nexport const proposeElement =\n (elementId: number): ThunkResult =>\n (dispatch, getState) => {\n const chip = getActiveOrProposedChip(getState());\n\n const element = getElement(getState(), elementId);\n const proposed = getProposedElements(getState(), undefined, chip?.id);\n const saved = getSavedPicks(getState());\n const elementTypesByPosition = getElementTypesBySquadPosition(\n getState(),\n undefined,\n chip?.id\n );\n if (!element || !elementTypesByPosition) {\n return false;\n }\n\n // Element must not already be selected\n if (values(proposed).indexOf(element) > -1) {\n return false;\n }\n\n // Can we find a free position based on type?\n const freePosition = Object.keys(elementTypesByPosition).find((pos) => {\n return (\n elementTypesByPosition[pos].thisType.id === element.element_type &&\n !proposed[pos]\n );\n });\n if (!freePosition) {\n return false;\n }\n let position = Number(freePosition);\n\n // TODO - Look at bulk dispatching these with new react-redux\n const savedPositions = Object.keys(saved).filter(\n (p) => saved[p].element === elementId\n );\n // We already have this element\n if (savedPositions.length) {\n const savedPosition = Number(savedPositions[0]);\n // In a different position\n if (savedPosition !== position) {\n const proposedId =\n proposed[savedPosition] && proposed[savedPosition].id;\n // Someone is in saved position so remove them and put in this position\n if (proposedId) {\n dispatch(actions.removeElementInPosition(proposedId, savedPosition));\n dispatch(actions.proposeElementInPosition(proposedId, position));\n }\n position = savedPosition;\n }\n }\n dispatch(actions.proposeElementInPosition(element.id, position));\n return true;\n };\n\nexport const removeElement =\n (position: number): ThunkResult =>\n (dispatch, getState) => {\n const chip = getActiveOrProposedChip(getState());\n\n const proposed = getProposedElements(getState(), undefined, chip?.id);\n if (!proposed[position]) {\n return false;\n }\n dispatch(actions.removeElementInPosition(proposed[position].id, position));\n return true;\n };\n\nexport const restoreElement =\n (position: number): ThunkResult =>\n (dispatch, getState) => {\n const saved = getSavedPicks(getState());\n if (!saved[position]) {\n return false;\n }\n dispatch(\n actions.proposeElementInPosition(saved[position].element, position)\n );\n // If proposing wildcard and no transfer costs cancel it\n if (\n getProposedChipName(getState()) === \"wildcard\" &&\n getTransferCostsWithoutChip(getState()) === 0\n ) {\n dispatch(cancelProposedChip(\"wildcard\"));\n }\n return true;\n };\n\nexport const reset = (): ThunkResult => (dispatch, getState) => {\n const savedPicks = getSavedPicks(getState());\n dispatch(\n resetProposed(\n Object.keys(savedPicks).reduce>(\n (memo, i) => ({ ...memo, [i]: savedPicks[i].element }),\n {}\n )\n )\n );\n // Cancel any proposed transfer chips\n const chip = getProposedChip(getState());\n if (chip && chip.chip_type === \"transfer\") {\n dispatch(cancelProposedChip(chip.name));\n }\n};\n\nexport const autoComplete =\n (): ThunkResult => (dispatch, getState) => {\n const chip = getActiveOrProposedChip(getState());\n\n const typesByPosition = getElementTypesBySquadPosition(\n getState(),\n undefined,\n chip?.id\n );\n const settings = getSettings(getState(), undefined, chip?.id);\n if (!settings || !typesByPosition) {\n return false;\n }\n const averageCostByType = getAverageCostByType(getState());\n const proposed = getProposedElements(getState(), undefined, chip?.id);\n const elementsOwned = values(proposed)\n .map((e) => e.id)\n .concat(values(getSavedPicks(getState())).map((p) => p.element));\n const countByTeam = getCountByTeam(getState(), undefined, chip?.id);\n let failures = 0;\n\n Object.keys(typesByPosition).forEach((pos) => {\n if (!proposed[pos]) {\n const typesNeeded = getTypesNeeded(getState(), undefined, chip?.id);\n const avgToSpend = Object.keys(typesNeeded).reduce(\n (memo, et) => memo + typesNeeded[et] * averageCostByType[et],\n 0\n );\n const weightingFactor =\n getToSpend(getState(), undefined, chip?.id) / avgToSpend;\n const invalidTeams = Object.keys(countByTeam)\n .filter((id) => countByTeam[id] >= settings.squad_team_limit)\n .map((id) => parseInt(id, 10));\n const possibles = getElements(getState()).filter(\n (e) =>\n // Correct type\n e.element_type === typesByPosition[pos].thisType.id &&\n // Cheap enough\n e.now_cost <=\n averageCostByType[typesByPosition[pos].thisType.id] *\n weightingFactor &&\n // Don't have\n elementsOwned.indexOf(e.id) === -1 &&\n // Available\n e.status === \"a\" &&\n // Within team limit\n invalidTeams.indexOf(e.team) === -1\n );\n if (possibles.length) {\n const choice = shuffle(possibles).sort(\n (a, b) =>\n parseFloat(b.form) - parseFloat(a.form) || b.now_cost - a.now_cost\n )[0];\n dispatch(\n actions.proposeElementInPosition(choice.id, parseInt(pos, 10))\n );\n elementsOwned.push(choice.id);\n countByTeam[choice.team]++;\n } else {\n failures++;\n }\n }\n });\n return !failures;\n };\n\nexport const createEntry =\n (data: ICreateEntryData): ThunkResult> =>\n async (dispatch, getState) => {\n try {\n await apiPost(\n \"entry-create/\",\n { ...data, picks: toCreateEntryAPI(getState()) },\n dispatch,\n actions.createSquad\n );\n } catch (e) {\n return;\n }\n await dispatch(bootstrap());\n navigate(\"/my-team\");\n };\n\nexport const makeTransfers =\n (): ThunkResult> => async (dispatch, getState) => {\n const nextEvent = getNextEvent(getState());\n const activeChip = getActiveChip(getState());\n const player = getPlayerData(getState());\n if (!nextEvent || !player || !player.entry) {\n return;\n }\n try {\n await apiPost(\n \"transfers/\",\n {\n chip: getActiveOrProposedTransferChipName(getState()),\n entry: player.entry,\n event: nextEvent.id,\n transfers: getProposedTransfers(\n getState(),\n undefined,\n activeChip?.id\n ),\n },\n dispatch,\n actions.makeTransfers\n );\n } catch (e) {\n return;\n }\n navigate(\"/my-team\");\n };\n\nexport const fetchLatestTransfers =\n (): ThunkResult => async (dispatch, getState) => {\n const player = getPlayerData(getState());\n if (!player || !player.entry) {\n return;\n }\n try {\n await apiGet(\n `entry/${player.entry}/transfers-latest/`,\n dispatch,\n actions.fetchTransfersLatest\n );\n } catch (e) {\n return;\n }\n };\n","import * as React from \"react\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport styled from \"styled-components/macro\";\n\nconst StyledBadge = styled.img`\n width: 100%;\n display: inline-block;\n vertical-align: middle;\n`;\n\nconst badgePath = `${process.env.PUBLIC_URL}/dist/img/badges`;\nconst prefix = \"badge_\";\n\ninterface IProps {\n isPresentation?: boolean;\n sizes: string;\n team: ITeam;\n}\n\nconst Badge: React.FC = ({ isPresentation, sizes, team }) => {\n const code = team.code || 0;\n const path = `${badgePath}/${prefix}${code}`;\n\n const imgProps = {\n alt: team.name,\n role: \"\",\n sizes,\n src: `${path}-50.png`,\n srcSet: `${path}-50.png 40w, ${path}-100.png 80w`,\n };\n\n if (isPresentation) {\n imgProps.alt = \"\";\n imgProps.role = \"presentation\";\n }\n\n return ;\n};\n\nexport default Badge;\n","import { IElementBase } from \"../store/elements/types\";\n\nexport const isMoneyStat = (stat: any): boolean => {\n const moneyStats: Array = [\n \"cost_change_event\",\n \"cost_change_event_fall\",\n \"cost_change_start\",\n \"cost_change_start_fall\",\n \"now_cost\",\n ];\n return moneyStats.indexOf(stat) > -1;\n};\n\nexport const integerToMoney = (int: number, divisor: number) =>\n (int / divisor).toFixed(1);\n\nexport const integerToMoneyFloat = (int: number, divisor: number) =>\n int / divisor;\n\nexport const moneyToInteger = (money: string, divisor: number) =>\n Math.round(parseFloat(money) * divisor);\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst StyledAlert = styled.div`\n padding: 0.75rem 1.25rem;\n text-align: ${(props) => props.textAlign};\n border: 1px solid transparent;\n border-radius: ${({ noRadius, theme }) => (noRadius ? 0 : theme.radii[1])};\n\n ${(props) =>\n props.type === \"error\" &&\n css`\n background-color: ${props.theme.colors.error};\n color: ${props.theme.colors.white};\n `}\n\n ${(props) =>\n props.type === \"success\" &&\n css`\n background-color: ${props.theme.colors.success};\n color: ${props.theme.colors.black};\n `}\n\n ${(props) =>\n props.type === \"warning\" &&\n css`\n background-color: ${props.theme.colors.error};\n color: ${props.theme.colors.white};\n `}\n\n ${(props) =>\n props.type === \"info\" &&\n css`\n background-color: ${props.theme.colors.primary};\n color: ${props.theme.colors.white};\n `}\n`;\n\nexport const AlertItem = styled.p`\n margin-top: ${(props) => props.theme.space[1]};\n margin-bottom: ${(props) => props.theme.space[1]};\n color: currentColor;\n`;\n\nexport const AlertWrap = styled.div`\n margin: ${(props) => props.theme.space[2]};\n`;\n\nexport const AlertGroup = styled.div`\n margin-top: ${({ theme }) => theme.space[3]};\n margin-bottom: ${({ theme }) => theme.space[3]};\n`;\n\ninterface IStyleProps {\n type: \"error\" | \"success\" | \"warning\" | \"info\";\n textAlign?: \"left\" | \"center\";\n noRadius?: boolean;\n}\n\ninterface IProps extends IStyleProps {\n children: React.ReactNode;\n}\n\nconst Alert: React.FC = ({\n children,\n textAlign = \"center\",\n type,\n noRadius = false,\n}) => (\n \n {children}\n \n);\n\nexport default Alert;\n","import { hideVisually, rgba } from \"polished\";\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as Close } from \"../img/icons/close.svg\";\nimport \"./OverflowScrolling.css\";\n\nconst CloseIcon = styled(Close)`\n fill: white;\n padding: 5px;\n border-radius: 50%;\n border: 1px solid ${({ theme }) => theme.colors.blueDarker3};\n background: white;\n`;\n\nconst CloseLabel = styled.span`\n ${hideVisually}\n`;\n\nconst Button = styled.button`\n position: absolute;\n top: -16px;\n right: -16px;\n padding: 0;\n margin: 0;\n border: 0;\n background-color: transparent;\n cursor: pointer;\n`;\n\n// https://css-tricks.com/considerations-styling-modal/\n// 1. commented out height to see if we can be more flexible\n\nconst StyledDialog = styled.dialog`\n z-index: ${(props) => props.theme.zIndex.dialog};\n max-width: 90%;\n /* height: 400px; [1] */\n max-height: 90%;\n padding: 0;\n border: 3px solid white;\n border-radius: ${({ theme }) => theme.radii[2]};\n /* Ugly hack to deal with sub-pixel rounding in chrome bug causing blurry content with transform */\n width: 820px;\n background-color: white;\n color: currentColor;\n`;\n\nconst Overlay = styled.div`\n position: fixed;\n z-index: ${(props) => props.theme.zIndex.overlay};\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background-color: ${rgba(\"black\", 0.5)};\n`;\n\nconst StyledHeader = styled.div`\n position: relative;\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.white};\n`;\n\nexport const DialogButtonItem = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\ninterface IDialogHeaderProps {\n children: React.ReactNode;\n closeDialog: () => void;\n}\n\ntype DialogHeaderProps = IDialogHeaderProps;\n\nconst DialogHeader: React.FC = ({\n children,\n closeDialog,\n}) => (\n \n {children}\n \n \n);\n\nconst isVisible = (elem: HTMLElement) =>\n !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n\ninterface IDialogBodyProps {\n children: any;\n isPadded?: boolean;\n}\n\nconst StyledDialogBody = styled.div`\n max-height: calc(90vh - 128px);\n overflow-y: auto;\n padding: 0 ${({ theme }) => theme.space[1]};\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n\n ${(props) =>\n props.isPadded &&\n css`\n padding: ${props.theme.space[4]} ${props.theme.space[3]};\n `};\n`;\n\nconst DialogBody: React.SFC = ({ children, isPadded }) => (\n \n {children}\n \n);\n\nDialogBody.defaultProps = {\n isPadded: true,\n};\n\ninterface IDialogProps {\n children: any;\n closeDialog: (\n e:\n | React.MouseEvent\n | React.MouseEvent\n | KeyboardEvent\n ) => void;\n focusable: string;\n}\n\nclass Dialog extends React.Component {\n public static Header = DialogHeader;\n public static Body = DialogBody;\n\n public static defaultProps = {\n focusable:\n \"a[href], area[href], input:not([disabled]), \" +\n \"select:not([disabled]), textarea:not([disabled]), \" +\n \"button:not([disabled]), iframe, object, embed, \" +\n \"*[tabindex], *[contenteditable]\",\n };\n\n private docref = React.createRef();\n private focusReturn = document.activeElement;\n\n public componentDidMount() {\n document.addEventListener(\"keydown\", this.handleKeydown);\n const docRef = this.docref.current;\n if (docRef) {\n const focusElement = docRef.querySelector(\n this.props.focusable\n ) as HTMLElement;\n if (focusElement) {\n focusElement.focus();\n }\n }\n }\n\n public componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n const focusReturn = this.focusReturn as HTMLElement;\n if (focusReturn) {\n if (focusReturn.focus) {\n focusReturn.focus();\n }\n }\n }\n\n public handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n this.props.closeDialog(e);\n } else if (e.key === \"9\") {\n this.handleTab(e);\n }\n };\n\n public handleOutsideMouseClick = (e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n this.props.closeDialog(e);\n e.stopPropagation();\n }\n };\n\n public handleTab(e: KeyboardEvent) {\n const docRef = this.docref.current;\n const focusedItem = document.activeElement;\n if (docRef) {\n const focusableItems = Array.prototype.slice\n .call(docRef.querySelectorAll(this.props.focusable))\n .filter(isVisible);\n const numFocusableItems = focusableItems.length;\n const focusedIndex = focusableItems.indexOf(focusedItem);\n if (!e.shiftKey && focusedIndex === numFocusableItems - 1) {\n // Moving past last focusable item so focus first\n focusableItems[0].focus();\n e.preventDefault();\n } else if (e.shiftKey && focusedIndex === 0) {\n // Moving before first focusable item so focus last\n focusableItems[numFocusableItems - 1].focus();\n e.preventDefault();\n }\n }\n }\n\n public render() {\n // https://github.com/facebook/react/issues/11387\n return ReactDOM.createPortal(\n {\n e.stopPropagation();\n this.handleOutsideMouseClick(e);\n }}\n role=\"presentation\"\n >\n \n
\n {this.props.children}\n
\n
\n ,\n document.getElementById(\"root-dialog\") as HTMLElement\n );\n }\n}\n\nexport default Dialog;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\n\ninterface IProps {\n children: React.ReactNode;\n}\n\nconst StyledDialogHeading = styled.div`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: 18px;\n line-height: 26px;\n font-weight: bold;\n`;\n\nconst DialogHeading: React.FC = ({ children }) => {\n return {children};\n};\n\nexport default DialogHeading;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport shadow from \"../img/shirt-shadow.png\";\n\nconst StyledShirt = styled.img`\n display: inline-block;\n margin: auto;\n vertical-align: middle;\n\n ${(props) =>\n props.hasShadow &&\n css`\n padding-bottom: 0.6rem;\n background: url(${shadow}) no-repeat center bottom;\n background-size: contain;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-bottom: 0.7rem;\n background-size: 44px 8px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-bottom: 0.9rem;\n background-size: 55px 10px;\n }\n `}\n`;\n\ninterface IProps {\n path: string;\n sizes: string;\n team?: ITeam;\n}\n\ninterface IStyledProps {\n hasShadow?: boolean;\n}\n\ntype Props = IProps & IStyledProps;\n\nconst Shirt: React.FC = ({ hasShadow, path, sizes, team }) => {\n return (\n \n \n \n \n );\n};\n\nexport default Shirt;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKcAAAAfCAYAAACCj930AAAE1UlEQVR4nO2c63LUMAyFlaXADAzv/7a7/AAX7ek5ujhOm+2imYxt2ZHt+Itkpyzbrx8/7b/cyWZmt79pR8Y93XtvzX6eRl4+egALpAvRUTY3SI/sC8W/GAb5h5VHgHPWk417j2y/WjpAMU/tx6/mgs/ytBCfBc4MispDn63r9L1SIigyYBSQFZs4Hza/UwD7HnCu8F4VXVSerYt0WZsKYNXybJ0vVyBWAEdtD5Oj4JxZTKZjEFV0URuVKl2lnAlbSAXYbTLttNmI3ozvVRWE6mVctt9dBWc3nCrPlUGV6aI2mZ0ojfKZVLxelCqdaqPaKXtoG8FVsDGwfX43oLNwdmBU5SjNwMIrqsvasT5ZyuaidEO6YGaQKR27onZZf5gibOyAqmCdhrQKJ54K2QC6IbgL3SVotzXbYZ9sPGr8qhxJJYRXPaS6rpN1kX0cz0g7sKrnlEKbwVldnE207XrADDYELytXAe3MdYUoj1rxph1Ar8U6r4v68nUIKM6l4jmVDTOL4VQLohYu8og+3wGQ5THtQMnGG831KMn6q4T/KqRXkSrdjKcNIRPz8utA70U4o4emFjMD0ewPPCNlUGYQRmAqONmYHkWiF6fiVRlsClKWXoQNBqQfBxsnmxfWUf0LVDKpeMqRKkAYPBF0l6Q+85Zq7J9B8LkzSC92D5QvMxg9kAO6Ddp5GK/GAcu8pw/5KbwvFi9gxVuOtHJlXpGVI48Zhe1nkTF35s1YeUDoYdxE3qcezAvYRe/p+45AVDBvZnbbs+f8KDARUIP8s4qHwZf9QQfBvIANDwu2GzbUNgPrGKAV7/pqCwfXlSoQCmjMqzoWsrtjeAZR0SOLNFm5arszRmbrTvbCWX0LsD3bJym7eFrdO4ZnlSgEZ2Wz+Dl31qDaNgzrkfHItat7MM8AxfDj8yoU+VDx7F5UneDVN83ud1Clx/4QaAV4yM2X71+/mdUPRaPMdBWJoM7ylTd4ZkyPLuz5KKDwhJ6d4BHG7Pvnqoj3elr3Crag6JVwA8w6Gbbwutm/Aw2eJkcevaQ/IF1dOTq9m719iT4LrCoERx4O8xGMCuYMyGirVvWYd/oXUCpAsY51tgV5BNSf4MfkEbbstF79vFTZ0J9VsggSXZ2P7hnQHSjVuFVZ6eifL9FTKiO418MBRSfzcV2JTn2wZ3XZR/mxP63AquD1shfkNJTZ2+cYeccISgbY7J8rjwAyrYsORBGkyijzmgjqSKNPGOyKPGTnH3yoPnF8FuhQshdZ6ZQ39Pmup+zWVSBUIM4AGYF6J5XTOhqrLsTQ4/7S26h4V6arQHdJ7ke9Gheb84wHZQu5Es4MrtUQVl4+Jhhlpcx+SvIdZfU4GQapz1fAVfmsnOWjFPOszKTiLVVazXfKzAZLozybD9NvSZtQ9v5MI/Oq6u3CQePbVA2vM5B1QngHRj+nyDtki78n7Xi8DoQduCpAl2T1D9yiwfiFjfYnCtRKOcureysQzoRyJdH8K3UVsLI9YLRWs3VL5T1/t64mlXlb3AIwO1WYFGB79pRZ28pidrxVBbIVcL0bhErO8J8qzHrbyEZl010FcKXHHDIbJvfawvvKh5OPkDPAGUn1wVX2uqtsr5KjoOhAd1owzc4PZ1X2PmS2mLtOmg2Jtil7vOLDy2+kvEzFwgQiDAAAAABJRU5ErkJggg==\"","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { RootState } from \"../core/store\";\nimport { getElementsById } from \"../core/store/elements/reducers\";\nimport { IElementsById } from \"../core/store/elements/types\";\nimport Shirt from \"./Shirt\";\nimport { getSettings } from \"../core/store/game/reducers\";\nimport { ISettings } from \"../core/store/game/types\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport { ITeamsById } from \"../core/store/teams/types\";\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n settings: ISettings | null;\n teamsById: ITeamsById;\n}\ninterface IOwnProps {\n elementId: number;\n hasShadow?: boolean;\n sizes: string;\n}\n\ntype Props = IPropsFromState & IOwnProps;\n\nexport const getElementShirtPath = (\n elementType: number,\n teamCode: number,\n shirtMode: string\n) => {\n const suffix = elementType === 1 ? `_${elementType}` : \"\";\n return `${process.env.PUBLIC_URL}/dist/img/shirts/${shirtMode}/shirt_${teamCode}${suffix}`;\n};\n\nconst ElementShirt: React.FC = ({\n elementId,\n elementsById,\n hasShadow,\n settings,\n sizes,\n teamsById,\n}) => {\n const element = elementsById[elementId];\n const team = teamsById[element.team];\n\n let shirtMode = \"standard\";\n if (settings && settings.ui_use_special_shirts) {\n if (settings.ui_special_shirt_exclusions.indexOf(element.code) === -1) {\n shirtMode = \"special\";\n }\n }\n\n return (\n \n );\n};\n\nconst mapStateToProps = (state: RootState) => ({\n elementsById: getElementsById(state),\n teamsById: getTeamsById(state),\n settings: getSettings(state),\n});\n\nexport default connect(mapStateToProps)(ElementShirt);\n","import React from \"react\";\nimport { IFixture } from \"../core/store/fixtures/types\";\nimport { IElement, IElementFixture } from \"../core/store/elements/types\";\nimport { ITeamsById } from \"../core/store/teams/types\";\nimport Badge from \"./Badge\";\nimport styled from \"styled-components/macro\";\n\ninterface IProps {\n showLongName?: boolean;\n showBadge?: boolean;\n fixture: IFixture | IElementFixture;\n element: IElement;\n teamsById: ITeamsById;\n}\n\nconst BadgeWrap = styled.div`\n max-width: 25px;\n max-height: 25px;\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[1]}\n ${theme.space[1]} 0`};\n`;\n\nconst FixtureForElement: React.FC = ({\n showBadge = false,\n showLongName = false,\n fixture,\n element,\n teamsById,\n}) => {\n const isHome = element.team === fixture.team_h;\n return isHome ? (\n <>\n {showBadge && (\n \n \n \n )}\n {showLongName\n ? `${teamsById[fixture.team_a].name} (H)`\n : `${teamsById[fixture.team_a].short_name} (H)`}\n \n ) : (\n <>\n {showBadge && (\n \n \n \n )}\n {showLongName\n ? `${teamsById[fixture.team_h].name} (B)`\n : `${teamsById[fixture.team_h].short_name} (B)`}\n \n );\n};\n\nexport default FixtureForElement;\n\ninterface IMultiProps {\n delimiter?: React.ReactNode;\n fixtures: IFixture[];\n element: IElement;\n teamsById: ITeamsById;\n}\n\nexport const FixturesForElement: React.FC = ({\n delimiter = \", \",\n fixtures,\n element,\n teamsById,\n}) => {\n const fragments = fixtures.map((f) => (\n \n ));\n return fragments.length\n ? fragments.reduce((result, item) => (\n <>\n {result}\n {delimiter}\n {item}\n \n ))\n : null;\n};\n","import * as React from \"react\";\n\nexport interface ITabPanel {\n children: React.ReactNode;\n label: React.ReactNode;\n link: string;\n}\n\nconst TabPanel: React.FC = ({ children }) =>
{children}
;\n\nexport default TabPanel;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst Item = styled.li`\n flex: 1;\n`;\n\nexport const TabLink = styled.a`\n display: block;\n margin: 0.2rem;\n padding: 0.7rem ${({ theme }) => theme.space[2]};\n border-radius: 2px;\n background-color: transparent;\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n font-weight: bold;\n text-align: center;\n text-decoration: none;\n transition: all 0.2s;\n\n ${(props) =>\n props.selected &&\n css`\n background-color: ${({ theme }) => theme.colors.yellow};\n border-radius: ${({ theme }) => theme.radii[0]};\n `}\n`;\n\ninterface IStyleProps {\n selected: boolean;\n}\n\ninterface IProps {\n key: number;\n index: number;\n label: React.ReactNode;\n link: string;\n onClick: (index: number) => void;\n}\n\ntype Props = IStyleProps & IProps;\n\nclass Tab extends React.Component {\n public onClick = (e: React.SyntheticEvent) => {\n e.preventDefault();\n this.props.onClick(this.props.index);\n };\n\n public render() {\n const { label, link, selected } = this.props;\n return (\n \n \n {label}\n \n \n );\n }\n}\n\nexport default Tab;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport Tab from \"./Tab\";\nimport { ITabPanel } from \"./TabPanel\";\n\ninterface ITabListProps {\n centered?: boolean;\n}\n\nexport const TabListShared = css`\n display: flex;\n align-items: center;\n padding: 0;\n border-radius: 8px;\n list-style-type: none;\n background-color: #edf1f9;\n`;\n\nconst TabList = styled.ul`\n display: flex;\n align-items: center;\n margin: 0;\n padding: 1px;\n border: ${({ theme }) => theme.borders[0]};\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: white;\n list-style-type: none;\n\n ${({ centered }) =>\n centered === true &&\n css`\n width: 70%;\n margin: 0 auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 35%;\n }\n `}\n`;\n\ninterface IProps {\n children: Array>;\n locationHash: string;\n selected: number;\n centered?: boolean;\n}\n\ninterface IState {\n selected: number;\n}\n\nclass Tabs extends React.Component {\n public static defaultProps = {\n locationHash: \"\",\n selected: 0,\n };\n\n public state: IState = {\n selected: this.getSelectedFromLocationHash(),\n };\n\n public getSelectedFromLocationHash() {\n // Default to prop, can override with location hash\n let selected = this.props.selected;\n if (this.props.locationHash) {\n React.Children.forEach(this.props.children, (child, index) => {\n const panel = child as React.ReactElement;\n if (`#${panel.props.link}` === this.props.locationHash) {\n selected = index;\n }\n });\n }\n return selected;\n }\n\n public handleClick = (index: number) => {\n this.setState({ selected: index });\n };\n\n public render() {\n const { centered = false } = this.props;\n return (\n <>\n \n {React.Children.map(this.props.children, (child, index) => {\n const panel = child as React.ReactElement;\n return (\n \n );\n })}\n \n {this.props.children[this.state.selected]}\n \n );\n }\n}\n\nexport default Tabs;\n","var _defs, _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgGb(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 60,\n height: 30,\n viewBox: \"0 0 60 30\",\n \"aria-labelledby\": titleId,\n role: \"img\",\n ref: svgRef\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId || \"ism-gb-flag\"\n }, \"English\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId || \"ism-gb-flag\"\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"gb-a\",\n points: \"0 0 0 30 60 30 60 0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"gb-c\",\n d: \"M30,15 L60,15 L60,30 L30,15 Z M30,15 L30,30 L0,30 L30,15 Z M30,15 L0,15 L0,0 L30,15 Z M30,15 L30,0 L60,0 L30,15 Z\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"gb-b\",\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#gb-a\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#gb-b)\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#012169\",\n fillRule: \"nonzero\",\n points: \"0 0 0 30 60 30 60 0\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"nonzero\",\n stroke: \"#FFF\",\n strokeWidth: 6,\n d: \"M0,0 L60,30 M60,0 L0,30\"\n }), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"gb-d\",\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"use\", {\n xlinkHref: \"#gb-c\"\n })), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"nonzero\",\n stroke: \"#C8102E\",\n strokeWidth: 4,\n d: \"M0,0 L60,30 M60,0 L0,30\",\n mask: \"url(#gb-d)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"nonzero\",\n stroke: \"#FFF\",\n strokeWidth: 10,\n d: \"M30,0 L30,30 M0,15 L60,15\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#000\",\n fillRule: \"nonzero\",\n stroke: \"#C8102E\",\n strokeWidth: 6,\n d: \"M30,0 L30,30 M0,15 L60,15\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGb);\nexport default __webpack_public_path__ + \"static/media/gb.7f375638.svg\";\nexport { ForwardRef as ReactComponent };","import Tippy from \"@tippy.js/react\";\nimport * as React from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst StyledTooltip = styled(Tippy)`\n padding: ${({ theme }) => theme.space[1]} ${({ theme }) => theme.space[2]};\n background-color: white;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);\n\n .tippy-backdrop {\n background-color: white;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);\n }\n .tippy-content {\n color: ${({ theme }) => theme.colors.black};\n font-size: 1.4rem;\n }\n\n /* Styling the arrow for different placements */\n &[x-placement^=\"top\"] {\n .tippy-arrow {\n border-top-color: white;\n }\n }\n\n &[x-placement^=\"bottom\"] {\n .tippy-arrow {\n border-bottom-color: white;\n }\n }\n`;\n\nexport const TooltipLabel = styled.span`\n text-decoration: underline dotted;\n`;\n\ninterface IProps {\n content: string;\n children: React.ReactElement;\n}\n\nconst Tooltip: React.FC = ({ children, content }) => {\n // We wrap in a span to stop issues with google translate\n return (\n {content}}\n arrow={true}\n placement=\"top\"\n >\n {children}\n \n );\n};\n\nexport default Tooltip;\n","import styled from \"styled-components/macro\";\nimport { ellipsis, hideVisually } from \"polished\";\n\nexport const Ellipsis = styled.div`\n ${ellipsis()}\n`;\n\nexport const UnstyledButton = styled.button`\n display: block;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n line-height: 1;\n cursor: pointer;\n`;\n\nexport const VisuallyHidden = styled.span`\n ${hideVisually}\n`;\n","import styled, { css } from \"styled-components/macro\";\n\nconst ScorePrefixStyles = css`\n display: inline-block;\n width: 3rem;\n height: 3rem;\n border-radius: 100%;\n font-size: ${({ theme }) => theme.fontSizes[2]};\n line-height: 3.2rem;\n text-align: center;\n vertical-align: middle;\n`;\n\nexport const WinPrefix = styled.span`\n ${ScorePrefixStyles}\n color: ${({ theme }) => theme.colors.primary};\n background-color: ${({ theme }) => theme.colors.yellow};\n`;\n\nexport const LosePrefix = styled.span`\n ${ScorePrefixStyles}\n color: ${({ theme }) => theme.colors.white};\n background-color: ${({ theme }) => theme.colors.primary};\n border: ${({ theme }) => theme.borders[0]};\n`;\n\nexport const DrawPrefix = styled.span`\n ${ScorePrefixStyles}\n color: ${({ theme }) => theme.colors.primary};\n background-color: ${({ theme }) => theme.colors.grey}; ;\n`;\n","import * as React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport { getElementStats } from \"../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../core/store/element-stats/types\";\nimport { getElementTypesById } from \"../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../core/store/element-types/types\";\nimport { elementDialogHide } from \"../core/store/elements/actions\";\nimport {\n getElement,\n getElementDialog,\n getFixturesWithBlanks,\n getHistory,\n getHistoryTotals,\n getSeasonHistory,\n} from \"../core/store/elements/reducers\";\nimport {\n IElement,\n IElementFixture,\n IElementFixtureBlank,\n IElementHistory,\n IElementSeasonHistory,\n} from \"../core/store/elements/types\";\nimport { getCurrentEvent, getNextEvent } from \"../core/store/events/reducers\";\nimport { IEvent } from \"../core/store/events/types\";\nimport { getPlayerData, getWatched } from \"../core/store/player/reducers\";\nimport {\n addToWatchlist,\n removeFromWatchlist,\n} from \"../core/store/player/thunks\";\nimport { IPlayer } from \"../core/store/player/types\";\nimport { proposeElement } from \"../core/store/squad/thunks\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport { ITeamsById } from \"../core/store/teams/types\";\nimport Badge from \"./Badge\";\nimport { formatRawAsLocalI18n } from \"../core/utils/datetime\";\nimport { integerToMoney } from \"../core/utils/money\";\nimport { dateLocales } from \"../i18n\";\nimport Alert from \"./Alert\";\nimport Button from \"./Button\";\nimport Dialog from \"./Dialog\";\nimport DialogHeading from \"./DialogHeading\";\nimport { getElementShirtPath } from \"./ElementShirt\";\nimport FixtureForElement from \"./FixtureForElement\";\nimport \"./OverflowScrolling.css\";\nimport Panel from \"./Panel\";\nimport SubHeading from \"./SubHeading\";\nimport Table from \"./Table\";\nimport TabPanel from \"./tabs/TabPanel\";\nimport Tabs from \"./tabs/Tabs\";\nimport Tooltip, { TooltipLabel } from \"./Tooltip\";\nimport { VisuallyHidden } from \"./Utils\";\nimport { DrawPrefix, LosePrefix, WinPrefix } from \"./ScorePrefix\";\n\nconst Summary = styled.div`\n padding: ${({ theme }) => theme.space[3]};\n`;\n\nconst Card = styled.div`\n padding: 2px;\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n }\n`;\n\nconst PlayerWrapper = styled.div`\n order: 0;\n width: 50%;\n padding: 30px;\n box-sizing: border-box;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: auto;\n padding: ${({ theme }) => theme.space[3]};\n }\n`;\n\nconst BadgeWrapper = styled.div`\n width: 50%;\n order: 1;\n padding: 30px;\n box-sizing: border-box;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n order: 3;\n width: auto;\n padding: ${({ theme }) => theme.space[3]};\n }\n`;\n\nconst BadgeScoreFlex = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.space[2]};\n padding-left: -5px;\n`;\n\nconst EiwBadgeWrapper = styled.div`\n max-width: 25px;\n max-height: 25px;\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[1]}\n ${theme.space[1]} 0`};\n`;\n\nconst CardInfo = styled.div`\n order: 3;\n width: 100%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 0 auto;\n order: 1;\n width: auto;\n }\n`;\nconst Img = styled.img`\n display: block;\n margin: auto;\n max-width: 120px;\n width: 100%;\n height: auto;\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.white}; ;\n`;\n\nconst ScrollTable = styled.div`\n overflow-x: auto;\n width: 100%;\n /* We're adding this in OverflowScrolling.css\n\t * because the property gets removed from the\n\t * styled component on test */\n /* -webkit-overflow-scrolling: touch; */\n`;\n\nconst HistoryTable = styled(Table)`\n white-space: nowrap;\n\n td {\n padding: 10px;\n }\n`;\n\nconst ElementHeader = styled.div`\n display: flex;\n align-content: center;\n justify-content: space-between;\n line-height: 1;\n`;\n\nconst ElementMoney = styled.span`\n color: ${({ theme }) => theme.colors.black};\n font-size: 18px;\n font-weight: bold;\n font-family: ${({ theme }) => theme.fonts.base};\n line-height: 1.5;\n`;\n\nconst ElementInfo = styled.ul`\n margin: 0;\n padding: 0;\n list-style-type: none;\n border: ${({ theme }) => theme.borders[0]};\n border-radius: ${({ theme }) => theme.radii[2]};\n`;\n\nconst ElementInfoItem = styled.li`\n display: flex;\n align-items: center;\n justify-content: space-between;\n color: white;\n border-bottom: ${({ theme }) => theme.borders[0]};\n\n :last-child {\n border: 0;\n }\n`;\n\nconst ElementInfoHeading = styled.h3`\n margin: 0;\n padding: 10px;\n width: 50%;\n font-size: 14px;\n line-height: 1;\n border-right: ${({ theme }) => theme.borders[0]};\n`;\n\nconst ElementInfoValue = styled.div`\n padding: 10px;\n width: 50%;\n font-size: 14px;\n line-height: 1;\n color: ${({ theme }) => theme.colors.yellow};\n`;\n\nconst TableHeading = styled.h3`\n padding: ${({ theme }) => theme.space[2]};\n font-weight: 600;\n margin-top: 0;\n margin-bottom: 0;\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n background: ${({ theme }) => theme.colors.primary};\n color: white;\n font-family: ${({ theme }) => theme.fonts.base};\n text-transform: none;\n font-size: 16px;\n`;\n\nconst TablesWrapper = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nconst TableWrapper = styled.div`\n margin-top: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 calc(50% - 1rem);\n }\n`;\n\nconst NoData = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1 0 auto;\n min-height: 108px;\n border-bottom-left-radius: ${({ theme }) => theme.radii[2]};\n border-bottom-right-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-height: 138px;\n }\n`;\n\nconst TdBold = styled.td`\n font-weight: bold;\n height: 35px;\n`;\n\ninterface IElementFixtureFPL extends IElementFixture {\n difficulty: number;\n}\n\ninterface IOwnProps {\n element: IElement;\n}\n\ninterface IPropsFromDispatch {\n addToWatched: (elementCode: number) => void;\n closeDialog: () => void;\n proposeElement: (elementId: number) => boolean;\n removeFromWatched: (elementCode: number) => void;\n}\n\ninterface IPropsFromState {\n currentEvent: IEvent | null;\n elementTypesById: IElementTypesById;\n fixtures: Array;\n nextEvent: IEvent | null;\n player: IPlayer | null;\n seasonHistory: IElementSeasonHistory[];\n stats: ReadonlyArray;\n teamsById: ITeamsById;\n watched: number[];\n history: IElementHistory[];\n historyTotals: Record;\n}\n\ntype Props = IOwnProps & IPropsFromDispatch & IPropsFromState & WithTranslation;\n\nclass ElementDialog extends React.Component {\n public added = false;\n public componentWillUnmount() {\n this.props.closeDialog();\n }\n\n public addElement = (elementId: number) => {\n this.props.proposeElement(elementId);\n this.props.closeDialog();\n };\n\n public renderWatchlistButton() {\n const { addToWatched, element, player, removeFromWatched, t, watched } =\n this.props;\n if (!player || !player.entry) {\n return null;\n }\n const inWatched = watched.indexOf(element.code) > -1;\n if (inWatched) {\n return this.added ? (\n

\n {t(\n \"elementDialog.watchlist.view\",\n \"View your watchlist on the transfers page\"\n )}\n

\n ) : (\n {\n removeFromWatched(element.code);\n }}\n width={1}\n >\n {t(\"elementDialog.watchlist.remove\", \"Remove from Watchlist\")}\n \n );\n }\n return (\n {\n this.added = true;\n addToWatched(element.code);\n }}\n width={1}\n >\n {t(\"elementDialog.watchlist.add\", \"Add to Watchlist\")}\n \n );\n }\n\n public render() {\n const {\n closeDialog,\n element,\n elementTypesById,\n fixtures,\n history,\n historyTotals,\n i18n,\n seasonHistory,\n stats,\n t,\n teamsById: teams,\n } = this.props;\n\n // Only get the last three in the history\n const lastThreeHistory = history.slice(-3);\n const firstThreeFixtures = fixtures.slice(0, 3);\n // Element info\n const elementType = elementTypesById[element.element_type];\n const elementFullname = `${element.first_name} ${element.second_name}`;\n const elementCost = `${integerToMoney(element.now_cost, 10)}Mkr`;\n\n return (\n \n \n \n \n {elementFullname}\n {elementCost}\n \n \n\n \n this.addElement(element.id)}\n >\n {t(\"elementDialog.addPlayerCTA\", \"Add player\")}\n \n \n \n \n {element.news && (\n \n {element.news}\n \n )}\n\n \n \n \n \n \n {\n e.currentTarget.src = `${getElementShirtPath(\n element.element_type,\n teams[element.team].code,\n \"standard\"\n )}-110.png`;\n }}\n />\n \n \n {\n e.currentTarget.src = `${getElementShirtPath(\n element.element_type,\n teams[element.team].code,\n \"standard\"\n )}-110.png`;\n }}\n />\n \n \n \n \n \n {t(\"elementDialog.tabs.summary.position\", \"Position\")}\n :\n \n \n {elementType.singular_name}\n \n \n \n \n {t(\"elementDialog.tabs.summary.value\", \"Value\")}:\n \n {elementCost}\n \n \n \n {t(\n \"elementDialog.tabs.summary.selectedBy\",\n \"Selected by\"\n )}\n :\n \n \n {element.selected_by_percent}%\n \n \n \n \n {t(\n \"elementDialog.tabs.summary.totalScore\",\n \"Total score\"\n )}\n :\n \n \n {element.total_points}\n \n \n \n \n \n\n \n \n \n \n {t(\n \"elementDialog.tabs.summary.recentMatches.title\",\n \"Recent matches\"\n )}\n \n {lastThreeHistory.length === 0 ? (\n \n {t(\n \"elementDialog.tabs.summary.recentMatches.noData\",\n \"No recent matches\"\n )}\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n {lastThreeHistory.map((h: IElementHistory) => {\n return (\n \n {h.round}\n\n \n \n \n \n \n {teams[h.opponent_team].name} (\n {h.was_home\n ? t(\n \"elementDialog.tabs.history.homeShort\",\n \"H\"\n )\n : t(\n \"elementDialog.tabs.history.awayShort\",\n \"A\"\n )}\n ){\" \"}\n {h.team_h_score !== null &&\n `${h.team_h_score} - ${h.team_a_score}`}\n \n \n\n {h.total_points}\n \n {h.team_h_score === h.team_a_score ? (\n \n {t(\n \"elementDialog.tabs.history.draw\",\n \"D\"\n )}\n \n ) : h.team_h_score > h.team_a_score &&\n h.was_home ? (\n \n {t(\n \"elementDialog.tabs.history.win\",\n \"W\"\n )}\n \n ) : h.team_a_score > h.team_h_score &&\n !h.was_home ? (\n \n {t(\n \"elementDialog.tabs.history.win\",\n \"W\"\n )}\n \n ) : (\n \n {t(\n \"elementDialog.tabs.history.loss\",\n \"L\"\n )}\n \n )}\n \n \n );\n })}\n \n
\n \n \n {t(\n \"elementDialog.tabs.summary.recentMatches.roundLabel\",\n \"RD\"\n )}\n \n \n \n {t(\n \"elementDialog.tabs.summary.recentMatches.opponent\",\n \"Opponent\"\n )}\n \n {t(\n \"elementDialog.tabs.summary.recentMatches.points\",\n \"Points\"\n )}\n \n \n {t(\n \"elementDialog.tabs.summary.recentMatches.win-loss-draw\",\n \"Result\"\n )}\n \n
\n )}\n
\n
\n\n \n \n \n {t(\n \"elementDialog.tabs.summary.upcoming.title\",\n \"Upcoming\"\n )}\n \n {firstThreeFixtures.length === 0 ? (\n \n {t(\n \"elementDialog.tabs.summary.upcoming.noData\",\n \"No upcoming matches\"\n )}\n \n ) : (\n \n \n \n \n \n \n \n \n \n {firstThreeFixtures.map((fixture) =>\n fixture.code ? (\n \n {fixture.event}\n\n \n \n \n \n \n\n \n {fixture.kickoff_time ? (\n \n ) : (\n \n \n \n {t(\n \"elementDialog.tabs.summary.upcoming.tbcShort\",\n \"TBC\"\n )}\n \n \n \n )}\n \n \n ) : (\n \n {fixture.event}\n \n {t(\n \"elementDialog.tabs.summary.upcoming.none\",\n \"None\"\n )}\n \n \n \n )\n )}\n \n
\n \n \n {t(\n \"elementDialog.tabs.summary.upcoming.roundLabel\",\n \"RD\"\n )}\n \n \n \n {t(\n \"elementDialog.tabs.summary.upcoming.opponent\",\n \"Opponent\"\n )}\n \n {t(\n \"elementDialog.tabs.summary.upcoming.date\",\n \"Date\"\n )}\n
\n )}\n
\n
\n
\n
\n \n\n \n \n \n {t(\"elementDialog.tabs.history.subHeading\", \"This Season\")}\n \n \n \n {history.length ? (\n \n \n \n \n \n {t(\"elementDialog.tabs.history.roundShort\", \"RD\")}\n \n \n {t(\n \"elementDialog.tabs.history.opponentShort\",\n \"OPP\"\n )}\n \n \n {t(\"elementDialog.tabs.history.pointsShort\", \"PTS\")}\n \n {stats.map((s) => (\n \n \n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n \n \n ))}\n \n {t(\n \"elementDialog.tabs.history.netTransfersShort\",\n \"NT\"\n )}\n \n \n {t(\n \"elementDialog.tabs.history.selectedByShort\",\n \"SB\"\n )}\n \n kr\n \n \n \n {history.map((h) => (\n \n {h.round}\n \n {teams[h.opponent_team].name} (\n {h.was_home\n ? t(\"elementDialog.tabs.history.homeShort\", \"H\")\n : t(\n \"elementDialog.tabs.history.awayShort\",\n \"A\"\n )}\n ){\" \"}\n {h.team_h_score !== null &&\n `${h.team_h_score} - ${h.team_a_score}`}\n \n {h.total_points}\n {stats.map((s) => (\n {h[s.name]}\n ))}\n {h.transfers_balance}\n {h.selected}\n kr{integerToMoney(h.value, 10)}\n \n ))}\n \n \n {t(\"elementDialog.tabs.history.totals\", \"Totals\")}\n \n {historyTotals.total_points}\n {stats.map((s) => (\n {historyTotals[s.name]}\n ))}\n  \n  \n  \n \n \n \n \n ) : (\n \n

\n {t(\n \"elementDialog.tabs.history.noData\",\n \"Data will appear here once the season is underway.\"\n )}\n

\n
\n )}\n
\n\n {seasonHistory && seasonHistory.length > 0 && (\n <>\n \n \n {t(\n \"elementDialog.tabs.history.previousSeasons\",\n \"Previous Seasons\"\n )}\n \n \n \n \n \n \n \n \n {t(\"elementDialog.tabs.history.season\", \"Season\")}\n \n \n \n TP\n \n \n {stats.map((s) => (\n \n \n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n \n \n ))}\n \n \n krS\n \n \n \n \n krE\n \n \n \n \n \n {seasonHistory.map((h) => (\n \n {h.season_name}\n {h.total_points}\n {stats.map((s) => (\n {h[s.name]}\n ))}\n kr{integerToMoney(h.start_cost, 10)}\n kr{integerToMoney(h.end_cost, 10)}\n \n ))}\n \n \n \n \n \n )}\n \n\n \n \n \n {t(\"elementDialog.tabs.schedule.subHeading\", \"This Season\")}\n \n \n \n \n \n \n \n \n \n \n \n \n {fixtures.map((fixture) =>\n fixture.code ? (\n \n \n \n\n \n \n ) : (\n \n \n \n \n \n )\n )}\n \n
{t(\"elementDialog.tabs.schedule.date\", \"Date\")}\n {t(\"elementDialog.tabs.schedule.roundShort\", \"RD\")}\n \n {t(\"elementDialog.tabs.schedule.opponent\", \"Opponent\")}\n
\n {fixture.kickoff_time ? (\n \n ) : (\n \n \n \n {t(\n \"elementDialog.tabs.schedule.tbcShort\",\n \"TBC\"\n )}\n \n \n \n )}\n {fixture.event}\n \n
 {fixture.event}\n {t(\"elementDialog.tabs.schedule.none\", \"None\")}\n
\n
\n \n
\n\n \n {this.renderWatchlistButton()}\n \n
\n
\n );\n }\n}\n\nexport { ElementDialog as ElementDialogTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: IOwnProps\n): IPropsFromState => {\n const originalStats = getElementStats(state);\n\n // Create ordered stats array for this component only\n const orderedStats = [...originalStats].sort((a, b) => {\n const order = [\n \"goals_scored\",\n \"assists\",\n \"clean_sheets\",\n \"goals_conceded\",\n \"saves\",\n \"penalties_saved\",\n \"yellow_cards\",\n \"red_cards\",\n \"winning_goals\",\n \"penalties_missed\",\n \"own_goals\",\n \"key_passes\",\n \"clearances_blocks_interceptions\",\n \"attacking_bonus\",\n \"defending_bonus\",\n ];\n return order.indexOf(a.name) - order.indexOf(b.name);\n });\n\n return {\n currentEvent: getCurrentEvent(state),\n elementTypesById: getElementTypesById(state),\n fixtures: getFixturesWithBlanks(state, ownProps.element.id) as Array<\n IElementFixtureFPL | IElementFixtureBlank\n >,\n history: getHistory(state, ownProps.element.id),\n historyTotals: getHistoryTotals(state, ownProps.element.id),\n nextEvent: getNextEvent(state),\n player: getPlayerData(state),\n seasonHistory: getSeasonHistory(state, ownProps.element.id)\n .slice()\n .reverse(),\n stats: orderedStats,\n teamsById: getTeamsById(state),\n watched: getWatched(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n addToWatched: (elementCode) => dispatch(addToWatchlist(elementCode)),\n closeDialog: () => dispatch(elementDialogHide()),\n proposeElement: (elementId) => dispatch(proposeElement(elementId)),\n removeFromWatched: (elementCode) =>\n dispatch(removeFromWatchlist(elementCode)),\n});\n\nconst ConnectedDialog = withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(ElementDialog)\n);\n\n/* tslint:disable:max-classes-per-file */\ninterface IContainerProps {\n element: IElement | undefined;\n}\n\nclass ElementDialogContainer extends React.Component {\n public render() {\n const element = this.props.element;\n return element ? : null;\n }\n}\n\nexport default connect((state: RootState): IContainerProps => {\n const elementId = getElementDialog(state);\n return {\n element: getElement(state, elementId),\n };\n})(ElementDialogContainer);\n","var _image;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSe(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"2560px\",\n height: \"1600px\",\n viewBox: \"0 0 2560 1600\",\n enableBackground: \"new 0 0 2560 1600\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _image || (_image = /*#__PURE__*/React.createElement(\"image\", {\n id: \"image0\",\n width: 2560,\n height: 1600,\n x: 0,\n y: 0,\n href: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAACgAAAAZAAgMAAADIwvNTAAAABGdBTUEAALGPC/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACVBMVEUAaqf+zAD///9Dh+Py AAAAAWJLR0QCZgt8ZAAAAAd0SU1FB+YDCBYlEo08fm0AAA/GSURBVHja7dIBCQAxDATBmHz/Vl5D obCkzDhIbmce8V1W38MyAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIk JUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVA UgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFIC JCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQl QFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBS AiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIk JUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVA UgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFIC JCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQl QFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBS AiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIk JUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVA UgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFIC JCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQl QFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBS AiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIk JUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVA UgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFIC JCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQl QFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBS AiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIk JUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVA UgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFIC JCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQl QFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBS AiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIk JUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVA UgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFICJCVAUgIkJUBSAiQlQFIC JCVAUgIkJUBSAiQlQFICXOr2cHBCgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKTmFR5DSoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQE SEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhK gKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCk BEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARI SoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqApARISoCkBEhKgKQESEqA pARISoCkBEhKgKQESEqApARISoCkBEhKgDv9pFiHU+gnqRQAAAAldEVYdGRhdGU6Y3JlYXRlADIw MjItMDMtMDhUMTk6Mzc6MTgrMDM6MDB+3cFlAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIyLTAzLTA4 VDE5OjM3OjE4KzAzOjAwD4B52QAAAABJRU5ErkJggg==\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSe);\nexport default __webpack_public_path__ + \"static/media/se.db9e2464.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/header-asset@1x.953fb7e1.png\";","export default __webpack_public_path__ + \"static/media/header-asset@2x.915c926c.png\";","export default __webpack_public_path__ + \"static/media/logo-fantasy@1x.27a64aa6.png\";","export default __webpack_public_path__ + \"static/media/logo-fantasy@1x.ea32f699.webp\";","export default __webpack_public_path__ + \"static/media/logo-fantasy@2x.7d469138.png\";","export default __webpack_public_path__ + \"static/media/logo-fantasy@2x.a7aeb0b0.webp\";","import { useState, useEffect } from \"react\";\n\n// https://github.com/rehooks/window-size/blob/master/index.js\nconst getSize = () => {\n return {\n innerHeight: window.innerHeight,\n innerWidth: window.innerWidth,\n outerHeight: window.outerHeight,\n outerWidth: window.outerWidth,\n };\n};\n\nconst useWindowSize = () => {\n let [windowSize, setWindowSize] = useState(getSize());\n\n const handleResize = () => {\n setWindowSize(getSize());\n };\n\n useEffect(() => {\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n return windowSize;\n};\n\nexport default useWindowSize;\n","import React from \"react\";\n\nimport { INavLink } from \"./types\";\nimport useWindowSize from \"./useWindowSize\";\n\ntype Props = {\n links: INavLink[];\n offset?: number; //px\n isRTL?: boolean;\n};\n\nfunction arraysEqual(a: Array, b: Array): boolean {\n if (a === b) return true;\n if (a == null || b == null) return false;\n if (a.length !== b.length) return false;\n\n for (var i = 0; i < a.length; ++i) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n}\n\nconst usePriorityNav = ({ links, offset = 0, isRTL = false }: Props) => {\n const windowSize = useWindowSize();\n const [childrenWidths, setWidths] = React.useState([]);\n const [visibleLinks, setVisibleLinks] = React.useState(links);\n const [nonVisibleLinks, setNonVisibleLinks] = React.useState([]);\n const [oldLinks, setLinks] = React.useState(links);\n // If the links have changed then we need to reset everything to force\n // the nav to be re-calculated\n if (oldLinks.length && oldLinks !== links) {\n setWidths([]);\n setVisibleLinks(links);\n setNonVisibleLinks([]);\n setLinks(links);\n }\n\n /**\n * Calc cumulative widths of ref elements\n *\n * Refs are non null on mount using callback\n * Callback is then only called afterwards\n * when an item is unmounted or remounted.\n */\n const measuredRef = React.useCallback(\n (node: HTMLLIElement) => {\n if (node !== null && childrenWidths.length !== links.length) {\n setWidths((childrenWidths) => {\n return isRTL\n ? childrenWidths.concat(node.getBoundingClientRect().left + offset)\n : childrenWidths.concat(\n node.getBoundingClientRect().right + offset\n );\n });\n }\n },\n [childrenWidths.length, links.length, offset, isRTL]\n );\n\n /**\n * Compute visible and non visible ref elements\n */\n React.useLayoutEffect(() => {\n // called first before childrenWidths are computed\n if (childrenWidths.length === 0) {\n return;\n }\n\n // After orientation change window.screen.width\n // can be smaller than windowSize.innerWidth,\n // so select smallest of two.\n const width =\n window.screen.width < windowSize.innerWidth\n ? window.screen.width\n : windowSize.innerWidth;\n\n const filteredIndexedElements = childrenWidths.filter(\n (e) => e < width - offset\n );\n const newVisibleLinks = links.filter(\n (_, i) => i < filteredIndexedElements.length\n );\n const newNonVisibleLinks = links.filter(\n (_, i) => i >= filteredIndexedElements.length\n );\n\n // only update links if they are different to previous visible links\n const areEqual =\n arraysEqual(visibleLinks, newVisibleLinks) &&\n arraysEqual(nonVisibleLinks, newNonVisibleLinks);\n if (!areEqual) {\n setVisibleLinks(newVisibleLinks);\n setNonVisibleLinks(newNonVisibleLinks);\n }\n }, [\n childrenWidths,\n windowSize.innerWidth,\n links,\n visibleLinks,\n nonVisibleLinks,\n offset,\n ]);\n\n return [measuredRef, visibleLinks, nonVisibleLinks] as [\n typeof measuredRef,\n INavLink[],\n INavLink[]\n ];\n};\n\nexport default usePriorityNav;\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 8,\n height: 14,\n viewBox: \"0 0 8 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n transform: \"rotate(90 10.5 5.5)\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"0 24 24 24 24 0 0 0\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"currentColor\",\n fillRule: \"nonzero\",\n points: \"12 13.172 7.05 8.222 5.636 9.636 12 16 18.364 9.636 16.95 8.222\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-left.62b02600.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect } from \"react\";\n\ntype HookProps = {\n event: string;\n handler: (e: any) => void;\n};\n\n// register event listener on mount on document\n// and fires handler on captured click\nconst useDocumentEventHandler = ({ event, handler }: HookProps) => {\n useEffect(() => {\n const eventHandler = (e: Event) => {\n handler(e);\n };\n\n document.addEventListener(event, eventHandler);\n return () => {\n document.removeEventListener(event, eventHandler);\n };\n }, [event, handler]);\n};\n\nexport default useDocumentEventHandler;\n","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { INavLink } from \"../../core/hooks/types\";\nimport useDocumentEventHandler from \"../../core/hooks/useDocumentEventHandler\";\nimport \"./Dropdown.css\";\n\nconst MoreButton = styled.button`\n position: relative;\n display: flex;\n align-items: center;\n margin: 0;\n padding: 0 1.8rem;\n border-left: ${({ theme }) => theme.borders[0]};\n border-top: ${({ theme }) => theme.borders[0]};\n border-right: ${({ theme }) => theme.borders[0]};\n border-bottom: 0;\n border-top-left-radius: ${({ theme }) => theme.radii[1]};\n border-top-right-radius: ${({ theme }) => theme.radii[1]};\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n font-size: 1.4rem;\n font-weight: bold;\n line-height: 4.7rem;\n transition: all 0.2s;\n cursor: pointer;\n text-align: center;\n text-decoration: none;\n\n ::after {\n content: \"\";\n background-image: url('data:image/svg+xml,');\n display: inline-block;\n width: 18px;\n height: 16px;\n margin-left: ${({ theme }) => theme.space[1]};\n margin-top: -2px;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n vertical-align: middle;\n }\n`;\n\nconst NavLink = css`\n display: block;\n padding: 0 1.8rem;\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n font-size: 1.4rem;\n line-height: 4.7rem;\n text-align: center;\n text-decoration: none;\n transition: all 0.2s;\n cursor: pointer;\n\n :hover {\n background-color: ${({ theme }) => theme.colors.blue};\n }\n`;\n\nconst NavReachLink = styled(Link)`\n ${NavLink}\n`;\n\nconst NavHyperLink = styled.a`\n ${NavLink}\n`;\n\ntype Props = {\n text: string;\n links: INavLink[];\n};\n\nconst Dropdown: React.FunctionComponent = ({ text, links }) => {\n const [open, setOpen] = React.useState(false);\n useDocumentEventHandler({ event: \"click\", handler: () => setOpen(false) });\n const toggleOpen = (e: React.SyntheticEvent) => {\n e.nativeEvent.stopImmediatePropagation();\n setOpen((open) => !open);\n };\n\n return (\n \n \n {text}\n \n
    \n {links.map((link) => (\n
  • \n {link.useRouter ? (\n {link.text}\n ) : (\n \n {link.text}\n \n )}\n
  • \n ))}\n
\n
\n );\n};\n\nexport default Dropdown;\n","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport { INavLink } from \"../../core/hooks/types\";\nimport \"./ListItem.css\";\n\nconst LIStyled = styled.li`\n margin-right: ${({ theme }) => theme.space[1]};\n list-style-type: none;\n display: inline-block;\n vertical-align: middle;\n`;\n\nconst ListItem = React.forwardRef(\n ({ useRouter, text, href, rel, isDraft, target }, ref) => {\n return (\n \n {useRouter ? (\n {\n return {\n className: `ism-nav__tab ${\n href === \"/\"\n ? isCurrent\n ? \"active\"\n : \"\"\n : isPartiallyCurrent\n ? \"active\"\n : \"\"\n }`,\n };\n }}\n >\n {text}\n \n ) : (\n \n {text}\n \n )}\n \n );\n }\n);\n\nexport default ListItem;\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { ILeagueEntry } from \"../entries/types\";\nimport {\n IClassicStandingsAPIData,\n IEntryInLeague,\n IH2HMatchesData,\n IH2HStandingsAPIData,\n ILeague,\n ILeagueAdmin,\n ILeagueCode,\n ILeagueCupStatus,\n IRenewableLeague,\n} from \"./types\";\n\nconst createAction = deprecated.createAction;\n\n// Action Creators\nexport const createClassicLeague = createAsyncAction(\n \"CREATE_CLASSIC_LEAGUE_START\",\n \"CREATE_CLASSIC_LEAGUE_SUCCESS\",\n \"CREATE_CLASSIC_LEAGUE_FAILURE\"\n)();\n\nexport const createH2HLeague = createAsyncAction(\n \"CREATE_H2H_LEAGUE_START\",\n \"CREATE_H2H_LEAGUE_SUCCESS\",\n \"CREATE_H2H_LEAGUE_FAILURE\"\n)();\n\nexport const joinPrivateLeague = createAsyncAction(\n \"JOIN_PRIVATE_LEAGUE_START\",\n \"JOIN_PRIVATE_LEAGUE_SUCCESS\",\n \"JOIN_PRIVATE_LEAGUE_FAILURE\"\n)();\n\nexport const joinPublicLeague = createAsyncAction(\n \"JOIN_PUBLIC_LEAGUE_START\",\n \"JOIN_PUBLIC_LEAGUE_SUCCESS\",\n \"JOIN_PUBLIC_LEAGUE_FAILURE\"\n)();\n\nexport const fetchClassicLeagueStandings = createAsyncAction(\n \"FETCH_CLASSIC_LEAGUE_STANDINGS_START\",\n \"FETCH_CLASSIC_LEAGUE_STANDINGS_SUCCESS\",\n \"FETCH_CLASSIC_LEAGUE_STANDINGS_FAILURE\"\n)();\n\nexport const fetchH2HLeagueStandings = createAsyncAction(\n \"FETCH_H2H_LEAGUE_STANDINGS_START\",\n \"FETCH_H2H_LEAGUE_STANDINGS_SUCCESS\",\n \"FETCH_H2H_LEAGUE_STANDINGS_FAILURE\"\n)();\n\nexport const fetchH2HLeagueMatches = createAsyncAction(\n \"FETCH_H2H_LEAGUE_MATCHES_START\",\n \"FETCH_H2H_LEAGUE_MATCHES_SUCCESS\",\n \"FETCH_H2H_LEAGUE_MATCHES_FAILURE\"\n)<\n void,\n { entryId: number; eventId: number; leagueId: number; data: IH2HMatchesData },\n IError\n>();\n\nexport const fetchClassicLeagueForAdmin = createAsyncAction(\n \"FETCH_CLASSIC_LEAGUE_FOR_ADMIN_START\",\n \"FETCH_CLASSIC_LEAGUE_FOR_ADMIN_SUCCESS\",\n \"FETCH_CLASSIC_LEAGUE_FOR_ADMIN_FAILURE\"\n)();\n\nexport const fetchH2HLeagueForAdmin = createAsyncAction(\n \"FETCH_H2H_LEAGUE_FOR_ADMIN_START\",\n \"FETCH_H2H_LEAGUE_FOR_ADMIN_SUCCESS\",\n \"FETCH_H2H_LEAGUE_FOR_ADMIN_FAILURE\"\n)();\n\nexport const updateClassicLeague = createAsyncAction(\n \"UPDATE_CLASSIC_LEAGUE_START\",\n \"UPDATE_CLASSIC_LEAGUE_SUCCESS\",\n \"UPDATE_CLASSIC_LEAGUE_FAILURE\"\n)();\n\nexport const updateH2HLeague = createAsyncAction(\n \"UPDATE_H2H_LEAGUE_START\",\n \"UPDATE_H2H_LEAGUE_SUCCESS\",\n \"UPDATE_H2H_LEAGUE_FAILURE\"\n)();\n\nexport const deleteLeague = createAsyncAction(\n \"DELETE_LEAGUE_START\",\n \"DELETE_LEAGUE_SUCCESS\",\n \"DELETE_LEAGUE_FAILURE\"\n)();\n\nexport const banLeagueEntry = createAsyncAction(\n \"BAN_LEAGUE_ENTRY_START\",\n \"BAN_LEAGUE_ENTRY_SUCCESS\",\n \"BAN_LEAGUE_ENTRY_FAILURE\"\n)();\n\nexport const unbanLeagueEntry = createAsyncAction(\n \"UNBAN_LEAGUE_ENTRY_START\",\n \"UNBAN_LEAGUE_ENTRY_SUCCESS\",\n \"UNBAN_LEAGUE_ENTRY_FAILURE\"\n)();\n\nexport const fetchLeagueCode = createAsyncAction(\n \"FETCH_LEAGUE_CODE_START\",\n \"FETCH_LEAGUE_CODE_SUCCESS\",\n \"FETCH_LEAGUE_CODE_FAILURE\"\n)();\n\nexport const regenerateLeagueCode = createAsyncAction(\n \"REGENERATE_LEAGUE_CODE_START\",\n \"REGENERATE_LEAGUE_CODE_SUCCESS\",\n \"REGENERATE_LEAGUE_CODE_FAILURE\"\n)();\n\nexport const leaveLeague = createAsyncAction(\n \"LEAVE_LEAGUE_START\",\n \"LEAVE_LEAGUE_SUCCESS\",\n \"LEAVE_LEAGUE_FAILURE\"\n)();\n\nexport const fetchRenewableLeagues = createAsyncAction(\n \"FETCH_RENEWABLE_LEAGUES_START\",\n \"FETCH_RENEWABLE_LEAGUES_SUCCESS\",\n \"FETCH_RENEWABLE_LEAGUES_FAILURE\"\n)();\n\nexport const renewRenewableLeague = createAsyncAction(\n \"RENEW_RENEWABLE_LEAGUE_START\",\n \"RENEW_RENEWABLE_LEAGUE_SUCCESS\",\n \"RENEW_RENEWABLE_LEAGUE_FAILURE\"\n)();\n\nexport const deleteRenewableLeague = createAsyncAction(\n \"DELETE_RENEWABLE_LEAGUE_START\",\n \"DELETE_RENEWABLE_LEAGUE_SUCCESS\",\n \"DELETE_RENEWABLE_LEAGUE_FAILURE\"\n)();\n\nexport const checkLeagueCode = createAsyncAction(\n \"CHECK_LEAGUE_CODE_START\",\n \"CHECK_LEAGUE_CODE_SUCCESS\",\n \"CHECK_LEAGUE_CODE_FAILURE\"\n)();\n\nexport const setAutoJoinCode = createAction(\n \"SET_AUTO_JOIN_CODE\",\n (resolve) => (code: string) => resolve(code)\n);\n\nexport const clearAutoJoinCode = createAction(\n \"CLEAR_AUTO_JOIN_CODE\",\n (resolve) => () => resolve()\n);\n\nexport const fetchLeagueEntries = createAsyncAction(\n \"FETCH_LEAGUE_ENTRIES_START\",\n \"FETCH_LEAGUE_ENTRIES_SUCCESS\",\n \"FETCH_LEAGUE_ENTRIES_FAILURE\"\n)();\n\nexport const fetchLeagueCupStatus = createAsyncAction(\n \"FETCH_LEAGUE_CUP_STATUS_START\",\n \"FETCH_LEAGUE_CUP_STATUS_SUCCESS\",\n \"FETCH_LEAGUE_CUP_STATUS_FAILURE\"\n)();\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport {\n getElementsById,\n getElementsEventDataById,\n getFormation,\n} from \"../elements/reducers\";\nimport { getSettings } from \"../game/reducers\";\nimport {\n deleteLeague,\n joinPrivateLeague,\n leaveLeague,\n} from \"../leagues/actions\";\nimport { getTeamsById } from \"../teams/reducers\";\nimport * as actions from \"./actions\";\nimport { IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntrySummary.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data,\n };\n case getType(joinPrivateLeague.success): {\n const newLeague = action.payload.data;\n const leaguesKey = newLeague.scoring === \"c\" ? \"classic\" : \"h2h\";\n const entry = state[action.payload.entry];\n\n if (entry) {\n const isAlreadyInLeague = entry.leagues[leaguesKey].some(\n (league) => league.id === newLeague.id\n );\n\n if (!isAlreadyInLeague) {\n const updatedEntry = {\n ...entry,\n leagues: {\n ...entry.leagues,\n [leaguesKey]: entry.leagues[leaguesKey].concat([newLeague]),\n },\n };\n\n return {\n ...state,\n [action.payload.entry]: updatedEntry,\n };\n }\n }\n return state;\n }\n case getType(deleteLeague.success):\n case getType(leaveLeague.success): {\n const newState = { ...state };\n const entry = newState[action.payload.entry];\n if (entry) {\n entry.leagues.classic = entry.leagues.classic.filter(\n (le) => le.id !== action.payload.league\n );\n entry.leagues.h2h = entry.leagues.h2h.filter(\n (le) => le.id !== action.payload.league\n );\n }\n return newState;\n }\n default:\n return state;\n }\n },\n eventHistoryById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryHistory.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.current,\n };\n default:\n return state;\n }\n },\n seasonHistoryById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryHistory.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.past,\n };\n default:\n return state;\n }\n },\n chipHistoryById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryHistory.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.chips,\n };\n default:\n return state;\n }\n },\n eventPicksById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryEventPicks.success):\n return {\n ...state,\n [action.payload.entry]: {\n ...state[action.payload.entry],\n [action.payload.event]: action.payload.data,\n },\n };\n default:\n return state;\n }\n },\n transfersById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryTransfers.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data,\n };\n default:\n return state;\n }\n },\n phaseStandingsById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryPhaseStandings.success):\n return {\n ...state,\n [action.payload.entry]: {\n ...state[action.payload.entry],\n [action.payload.phase]: action.payload.data,\n },\n };\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getEntry = (state: RootState, entryId: number) =>\n state.entries.byId[entryId] || null;\n\nexport const getEntryEventHistory = (state: RootState, entryId: number) =>\n state.entries.eventHistoryById[entryId] || [];\n\nexport const getEntrySeasonHistory = (state: RootState, entryId: number) =>\n state.entries.seasonHistoryById[entryId] || [];\n\nexport const getEntryChipHistory = (state: RootState, entryId: number) =>\n state.entries.chipHistoryById[entryId] || [];\n\nexport const getEntryEventPicks = (\n state: RootState,\n entryId: number,\n eventId: number\n) => {\n if (\n !state.entries.eventPicksById[entryId] ||\n !state.entries.eventPicksById[entryId][eventId]\n ) {\n return null;\n }\n return state.entries.eventPicksById[entryId][eventId];\n};\n\nexport const getEntryEventPoints = (\n state: RootState,\n entryId: number,\n eventId: number\n) => {\n const data = getEntryEventPicks(state, entryId, eventId);\n const elementsEventDataById = getElementsEventDataById(state, eventId);\n if (!data || !elementsEventDataById) {\n return 0;\n }\n return data.picks.reduce(\n (total, p) =>\n total +\n elementsEventDataById[p.element].stats.total_points * p.multiplier,\n 0\n );\n};\n\nexport const getEntryEventFormation = (\n state: RootState,\n entryId: number,\n eventId: number\n) => {\n const data = getEntryEventPicks(state, entryId, eventId);\n const elementsById = getElementsById(state);\n const settings = getSettings(state);\n if (!data || !elementsById || !settings) {\n return \"\";\n }\n return getFormation(\n data.picks\n .slice(0, settings.squad_squadplay)\n .map((p) => elementsById[p.element])\n );\n};\n\nexport const getPrivateClassicLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter((l) => l.league_type === \"x\")\n : [];\n};\n\nexport const getPrivateClassicCupLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter(\n (l) => l.league_type === \"x\" && l.has_cup === true\n )\n : [];\n};\n\nexport const getPrivateH2HLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry ? entry.leagues.h2h.filter((l) => l.league_type === \"x\") : [];\n};\n\nexport const getPublicClassicLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter((l) => l.league_type === \"c\")\n : [];\n};\n\nexport const getPublicClassicCupLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter(\n (l) => l.league_type === \"c\" && l.has_cup === true\n )\n : [];\n};\n\nexport const getPublicH2HLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry ? entry.leagues.h2h.filter((l) => l.league_type === \"c\") : [];\n};\n\nexport const getSystemClassicLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter((l) => l.league_type === \"s\")\n : [];\n};\n\nexport const getSystemClassicCupLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter(\n (l) => l.league_type === \"s\" && l.has_cup === true\n )\n : [];\n};\n\nexport const getLeagueForEntry = (\n state: RootState,\n entryId: number,\n leagueId: number\n) => {\n const entry = getEntry(state, entryId);\n if (entry) {\n const classic = entry.leagues.classic.filter((l) => l.id === leagueId);\n if (classic.length) {\n return classic[0];\n }\n const h2h = entry.leagues.h2h.filter((l) => l.id === leagueId);\n if (h2h.length) {\n return h2h[0];\n }\n }\n return null;\n};\n\nexport const getCupMatchesByLeagueId = (state: RootState, entryId: number) => {\n const entry = getEntry(state, entryId);\n if (entry) {\n const cupMatches = entry.leagues.cup_matches;\n if (cupMatches.length > 0) {\n return cupMatches.reduce(\n (memo, match) => ({ ...memo, [match.league]: match }),\n {}\n );\n }\n return null;\n }\n return null;\n};\n\nexport const getTransfersForEntry = (state: RootState, entryId: number) =>\n state.entries.transfersById[entryId] || [];\n\nexport const getFanLeagueDetails = (state: RootState, entryId: number) => {\n const fanLeagueMatch = /^team-(\\d+)$/;\n const teamsById = getTeamsById(state);\n const systemClassicLeagues = getSystemClassicLeaguesForEntry(state, entryId);\n\n // Please note the \"!\" non-null assertion operator on the filter\n const fanLeagues = systemClassicLeagues.filter((l) =>\n l.short_name!.match(fanLeagueMatch)\n );\n\n if (fanLeagues.length) {\n return {\n league: fanLeagues[0],\n team: teamsById[fanLeagues[0].short_name!.match(fanLeagueMatch)![1]],\n };\n }\n\n return null;\n};\n\nexport const getPhaseStandingsForEntry = (state: RootState, entryId: number) =>\n state.entries.phaseStandingsById[entryId];\n\nexport const getPhaseStandingsForEntryPhase = (\n state: RootState,\n entryId: number,\n phaseId: number\n) => state.entries.phaseStandingsById[entryId]?.[phaseId];\n\nexport const getPhaseStandingsForEntryPhaseLeague = (\n state: RootState,\n entryId: number,\n phaseId: number,\n leagueId: number\n) =>\n state.entries.phaseStandingsById[entryId]?.[phaseId]?.find(\n (ps) => ps.league_id === leagueId\n );\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport styled from \"styled-components\";\nimport { INavLink } from \"../../core/hooks/types\";\nimport usePriorityNav from \"../../core/hooks/usePriorityNav\";\nimport { RootState } from \"../../core/store\";\nimport {\n getCurrentEvent,\n getNextEvent,\n} from \"../../core/store/events/reducers\";\nimport { getServerError } from \"../../core/store/global/reducers\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport Dropdown from \"./Dropdown\";\nimport ListItem from \"./ListItem\";\nimport { useTranslation } from \"react-i18next\";\nimport { getEntry } from \"../../core/store/entries/reducers\";\n\nconst StyledNav = styled.nav`\n white-space: nowrap;\n`;\n\nconst StyledUL = styled.ul`\n vertical-align: middle;\n font-size: 0;\n padding: 0;\n display: flex;\n`;\n\nconst NavigationLinks: React.FC<{ links: INavLink[] }> = ({ links }) => {\n const { t } = useTranslation();\n const [measuredRef, visibleLinks, nonVisibleLinks] = usePriorityNav({\n links,\n offset: 50,\n });\n return (\n \n \n {visibleLinks.map((link) => (\n \n ))}\n {!!nonVisibleLinks.length && (\n \n )}\n \n \n );\n};\n\nconst mapStateToProps = (state: RootState) => {\n const player = getPlayerData(state);\n const currentEvent = getCurrentEvent(state);\n const nextEvent = getNextEvent(state);\n const serverError = getServerError(state);\n const entry = player && player.entry ? getEntry(state, player.entry) : null;\n\n return {\n player,\n currentEvent,\n nextEvent,\n serverError,\n entry,\n };\n};\n\nconst connector = connect(mapStateToProps);\n\ntype PropsFromRedux = ConnectedProps;\n\nconst Navigation: React.FC = ({\n player,\n currentEvent,\n nextEvent,\n serverError,\n entry,\n}) => {\n const { t } = useTranslation();\n let links: INavLink[] = [];\n const useRouter = !serverError;\n // const allsvenskanLink = {\n // useRouter: false,\n // href: \"//allsvenskan.se\",\n // text: \"allsvenskan.se\",\n // isDraft: true\n // };\n if (player && player.entry) {\n // Logged in with entry\n links = [\n {\n useRouter,\n href: \"/\",\n text: currentEvent\n ? t(\"navigation.status\", \"Status\")\n : t(\"navigation.home\", \"Home\"),\n },\n ];\n if (nextEvent) {\n links.push({\n useRouter,\n href: \"/my-team\",\n text: t(\"navigation.myTeam\", \"My Team\"),\n });\n }\n // If the entry has started ...\n if (currentEvent && entry && entry.started_event <= currentEvent.id) {\n links.push({\n useRouter,\n href: `/entry/${player.entry}/event/${currentEvent.id}`,\n text: t(\"navigation.points\", \"Points\"),\n });\n }\n links.push(\n {\n useRouter,\n href: \"/transfers\",\n text: t(\"navigation.transfers\", \"Transfers\"),\n },\n {\n useRouter,\n href: \"/leagues\",\n text: t(\"navigation.leagues\", \"Leagues\"),\n },\n {\n useRouter,\n href: \"/fixtures\",\n text: t(\"navigation.fixtures\", \"Fixtures\"),\n },\n {\n useRouter,\n href: \"/statistics\",\n text: t(\"navigation.statistics\", \"Statistics\"),\n },\n { useRouter, href: \"/the-scout\", text: t(\"navigation.scout\", \"Scout\") },\n {\n useRouter,\n href: \"/prizes\",\n text: t(\"navigation.prizes\", \"Prizes\"),\n },\n { useRouter, href: \"/help\", text: t(\"navigation.help\", \"Help\") },\n {\n useRouter: false,\n href: \"api/player/logout_oidc\",\n text: t(\"navigation.signOut\", \"Sign out\"),\n }\n );\n } else if (player) {\n // Logged in, no entry\n links = [\n { useRouter, href: \"/\", text: t(\"navigation.home\", \"Home\") },\n {\n useRouter,\n href: \"/squad-selection\",\n text: t(\"navigation.squadSelection\", \"Squad Selection\"),\n },\n { useRouter, href: \"/help\", text: t(\"navigation.help\", \"Help\") },\n {\n useRouter: false,\n href: \"api/player/logout_oidc\",\n text: t(\"navigation.signOut\", \"Sign out\"),\n },\n ];\n } else {\n // Logged Out\n links = [\n { useRouter, href: \"/\", text: t(\"navigation.home\", \"Home\") },\n {\n useRouter,\n href: \"/prizes\",\n text: t(\"navigation.prizes\", \"Prizes\"),\n },\n { useRouter, href: \"/the-scout\", text: t(\"navigation.scout\", \"Scout\") },\n { useRouter, href: \"/help\", text: t(\"navigation.help\", \"Help\") },\n {\n useRouter,\n href: \"/statistics\",\n text: t(\"navigation.statistics\", \"Statistics\"),\n },\n // allsvenskanLink\n ];\n }\n return ;\n};\n\nexport { Navigation as NavigationTest };\n\nexport default connector(Navigation);\n","import { hiDPI, size } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as GBFlag } from \"../img/flags/gb.svg\";\nimport { ReactComponent as SEFlag } from \"../img/flags/se.svg\";\nimport headerAsset1x from \"../img/header-asset@1x.png\";\nimport headerAsset2x from \"../img/header-asset@2x.png\";\nimport logoFantasy1x from \"../img/logo-fantasy@1x.png\";\nimport logoFantasy1xWebp from \"../img/logo-fantasy@1x.webp\";\nimport logoFantasy2x from \"../img/logo-fantasy@2x.png\";\nimport logoFantasy2xWebp from \"../img/logo-fantasy@2x.webp\";\nimport Navigation from \"./nav/Navigation\";\n\nconst LogoFlagWrap = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst HeaderLink = styled.a`\n display: inline-block;\n margin: 3rem 0;\n vertical-align: middle;\n`;\n\nconst GameHeaderOuter = styled.div`\n position: relative;\n background-color: ${(props) => props.theme.colors.blueDarker3};\n background-repeat: no-repeat;\n background-position: 220px;\n background-size: cover;\n background-image: url(${headerAsset1x});\n\n ${hiDPI(2)} {\n background-image: url(${headerAsset2x});\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n background-position: right;\n background-size: contain;\n }\n`;\n\nconst Header = styled.div`\n max-width: 1220px;\n margin-left: auto;\n margin-right: auto;\n padding: 0 2rem;\n`;\n\nconst FlagList = styled.ul`\n width: 34px;\n padding: 2px 2px 1px;\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: ${({ theme }) => theme.colors.white};\n list-style-type: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: auto;\n padding: 6px 4px 4px;\n }\n`;\n\nconst FlagItem = styled.li`\n display: inline-block;\n vertical-align: middle;\n padding: ${({ theme }) => theme.space[1]};\n line-height: 1;\n\n :last-child {\n padding-bottom: 3px;\n }\n\n :not(:last-child) {\n border-bottom: ${({ theme }) => theme.borders[0]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n :last-child {\n padding-bottom: 0;\n }\n\n :not(:last-child) {\n border-bottom: ${({ theme }) => theme.borders[0]};\n }\n\n :not(:last-child) {\n border-bottom: 0;\n border-right: ${({ theme }) => theme.borders[0]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding: 0 ${({ theme }) => theme.space[2]};\n }\n }\n`;\n\nconst FlagLink = styled.a`\n display: inline-block;\n vertical-align: middle;\n line-height: 1;\n`;\n\nconst StyledNOFlag = styled(SEFlag)`\n ${size(14, 20)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(22, 30)}\n }\n`;\n\nconst StyledGBFlag = styled(GBFlag)`\n ${size(14, 20)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(22, 30)}\n }\n`;\n\nconst BorderBottom = styled.div`\n position: absolute;\n z-index: 2;\n bottom: 0px;\n width: 100%;\n height: 1px;\n background: ${({ theme }) => theme.colors.lighterBlue};\n`;\n\nconst GameHeader = () => {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n );\n};\n\nexport default GameHeader;\n","export const localStorageKey = \"autoJoinCode\";\n\nexport const setValue = (key: string, value: string) =>\n window.localStorage?.setItem(localStorageKey, value);\nexport const getValue = (key: string) => window.localStorage?.getItem(key);\nexport const clearValue = (key: string) => window.localStorage?.removeItem(key);\n\nexport const getInitialState = () => getValue(localStorageKey) || null;\n","import produce from \"immer\";\nimport { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport { getEntry } from \"../entries/reducers\";\nimport { IEntry, ILeagueEntry } from \"../entries/types\";\nimport { getPlayerData } from \"../player/reducers\";\nimport * as actions from \"./actions\";\nimport { getInitialState } from \"./autoJoinPersistentStorage\";\nimport {\n IClassicStanding,\n IH2HStanding,\n INewEntry,\n IRenewableLeague,\n IState,\n} from \"./types\";\n\nconst classicStandingsById = produce(\n (draft: IState[\"classicStandingsById\"], action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchClassicLeagueStandings.success): {\n const { data, phaseId } = action.payload;\n const newData = {\n league: data.league,\n newEntriesByPage: draft[data.league.id]?.newEntriesByPage || {},\n standingsByPhaseAndPage:\n draft[data.league.id]?.standingsByPhaseAndPage || {},\n };\n newData[\"newEntriesByPage\"][data.new_entries.page] = data.new_entries;\n if (!newData[\"standingsByPhaseAndPage\"][phaseId]) {\n newData[\"standingsByPhaseAndPage\"][phaseId] = {};\n }\n newData[\"standingsByPhaseAndPage\"][phaseId][data.standings.page] = {\n ...data.standings,\n lastUpdatedData: data.last_updated_data,\n };\n draft[data.league.id] = newData;\n break;\n }\n case getType(actions.deleteLeague.success): {\n if (draft[action.payload.league]) {\n delete draft[action.payload.league];\n }\n }\n }\n },\n {}\n);\n\nconst getH2HMatchesKey = (entryId: number, eventId: number, page: number) =>\n `${entryId}-${eventId}-${page}`;\n\nconst h2hMatchesById = produce(\n (draft: IState[\"h2hMatchesById\"], action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchH2HLeagueMatches.success): {\n const { data, entryId, eventId, leagueId } = action.payload;\n const key = getH2HMatchesKey(entryId, eventId, data.page);\n const newData = {\n byEntryEventPage: draft[leagueId]?.byEntryEventPage || {},\n };\n newData[\"byEntryEventPage\"][key] = data;\n draft[leagueId] = newData;\n break;\n }\n }\n },\n {}\n);\n\n// State Reducer\nexport default combineReducers({\n adminById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.createClassicLeague.success):\n case getType(actions.fetchClassicLeagueForAdmin.success):\n case getType(actions.updateClassicLeague.success):\n case getType(actions.createH2HLeague.success):\n case getType(actions.fetchH2HLeagueForAdmin.success):\n case getType(actions.updateH2HLeague.success):\n return {\n ...state,\n [action.payload.id]: action.payload,\n };\n case getType(actions.deleteLeague.success): {\n const newState = { ...state };\n if (newState[action.payload.league]) {\n delete newState[action.payload.league];\n }\n return newState;\n }\n default:\n return state;\n }\n },\n byCode: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.checkLeagueCode.success): {\n return {\n ...state,\n [action.payload.code]: action.payload.data,\n };\n }\n default:\n return state;\n }\n },\n autoJoinCode: (state = getInitialState(), action: RootAction) => {\n switch (action.type) {\n case getType(actions.setAutoJoinCode):\n return action.payload;\n case getType(actions.clearAutoJoinCode):\n return null;\n default:\n return state;\n }\n },\n classicStandingsById,\n codesByLeagueId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchLeagueCode.success):\n case getType(actions.regenerateLeagueCode.success):\n return {\n ...state,\n [action.payload.league]: action.payload.data.code,\n };\n case getType(actions.deleteLeague.success): {\n const newState = { ...state };\n if (newState[action.payload.league]) {\n delete newState[action.payload.league];\n }\n return newState;\n }\n default:\n return state;\n }\n },\n createClassicLeagueError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.createClassicLeague.failure):\n return action.payload;\n default:\n return null;\n }\n },\n createH2HLeagueError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.createH2HLeague.failure):\n return action.payload;\n default:\n return null;\n }\n },\n cupStatusById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchLeagueCupStatus.success):\n return {\n ...state,\n [action.payload.qualifying_league]: action.payload,\n };\n default:\n return state;\n }\n },\n h2hMatchesById,\n h2hStandingsById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchH2HLeagueStandings.success): {\n const data = action.payload;\n const s = state[data.league.id];\n return {\n ...state,\n [data.league.id]: {\n league: data.league,\n newEntriesByPage: {\n ...(s ? s.newEntriesByPage : {}),\n [data.new_entries.page]: data.new_entries,\n },\n standingsByPage: {\n ...(s ? s.standingsByPage : {}),\n [data.standings.page]: data.standings,\n },\n },\n };\n }\n case getType(actions.deleteLeague.success): {\n const newState = { ...state };\n if (newState[action.payload.league]) {\n delete newState[action.payload.league];\n }\n return newState;\n }\n default:\n return state;\n }\n },\n entriesById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchLeagueEntries.success): {\n return {\n ...state,\n [action.payload.leagueId]: action.payload.data,\n };\n }\n default:\n return state;\n }\n },\n entriesErrorById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchLeagueEntries.failure): {\n if (action.payload.url) {\n const match = action.payload.url.match(/^league\\/(\\d+)\\/entries\\/$/);\n if (match) {\n return {\n ...state,\n [match[1]]: action.payload,\n };\n }\n }\n return state;\n }\n default:\n return state;\n }\n },\n joinPrivateLeagueSuccess: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.joinPrivateLeague.success):\n return action.payload.data.id;\n default:\n return null;\n }\n },\n joinPrivateLeagueError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.joinPrivateLeague.failure):\n return action.payload;\n default:\n return null;\n }\n },\n joinPublicLeagueError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.joinPublicLeague.failure):\n return action.payload;\n default:\n return null;\n }\n },\n renewableById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchRenewableLeagues.success): {\n const newState: Record = {};\n action.payload.forEach((rl) => {\n newState[rl.id] = rl;\n });\n return newState;\n }\n case getType(actions.deleteRenewableLeague.success):\n case getType(actions.renewRenewableLeague.success): {\n const newState = { ...state };\n delete newState[action.payload.id];\n return newState;\n }\n default:\n return state;\n }\n },\n updateClassicLeagueError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.updateClassicLeague.failure):\n return action.payload;\n default:\n return null;\n }\n },\n updateH2HLeagueError: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.updateH2HLeague.failure):\n return action.payload;\n default:\n return null;\n }\n },\n});\n\n// State Selectors and Helpers\nexport const getLeagueAdmin = (state: RootState, leagueId: number) =>\n state.leagues.adminById[leagueId] || null;\n\nexport const getCode = (state: RootState, leagueId: number) =>\n state.leagues.codesByLeagueId[leagueId] || null;\n\nexport const getRenewableLeagues = (state: RootState) =>\n Object.values(state.leagues.renewableById);\n\nexport const getCreateClassicLeagueError = (state: RootState) =>\n state.leagues.createClassicLeagueError;\n\nexport const getCreateH2HLeagueError = (state: RootState) =>\n state.leagues.createH2HLeagueError;\n\nexport const getJoinPrivateLeagueError = (state: RootState) =>\n state.leagues.joinPrivateLeagueError;\n\nexport const getJoinPublicLeagueError = (state: RootState) =>\n state.leagues.joinPublicLeagueError;\n\nexport const getUpdateClassicLeagueError = (state: RootState) =>\n state.leagues.updateClassicLeagueError;\n\nexport const getUpdateH2HLeagueError = (state: RootState) =>\n state.leagues.updateH2HLeagueError;\n\nexport const getClassicLeague = (state: RootState, leagueId: number) => {\n const leagueData = state.leagues.classicStandingsById[leagueId];\n return leagueData ? leagueData.league : null;\n};\n\nexport const getJoinPrivateLeagueSuccess = (state: RootState) =>\n typeof state.leagues.joinPrivateLeagueSuccess === \"number\";\n\nconst addEntryToTopOfNewEntries = (newEntries: INewEntry[], entry: IEntry) => [\n {\n entry: entry.id,\n entry_name: entry.name,\n player_first_name: entry.player_first_name,\n player_last_name: entry.player_last_name,\n joined_time: \"\", // We don't have so leave as a string\n },\n ...newEntries.filter((ne) => ne.entry !== entry.id),\n];\n\nexport const getActiveEntryInLeague = (\n state: RootState,\n leagueId: number,\n scoring: \"classic\" | \"h2h\"\n) => {\n const player = getPlayerData(state);\n if (player && player.entry) {\n const entry = getEntry(state, player.entry);\n if (entry) {\n const matches = entry.leagues[scoring].filter((l) => l.id === leagueId);\n if (matches.length) {\n return {\n entry,\n league: matches[0],\n };\n }\n }\n }\n return null;\n};\n\nconst activeToClassicStanding = (\n entry: IEntry,\n league: ILeagueEntry\n): IClassicStanding => ({\n entry: entry.id,\n entry_name: entry.name,\n event_total: entry.summary_event_points || 0,\n last_rank: league.entry_last_rank || 0,\n player_name: `${entry.player_first_name} ${entry.player_last_name}`,\n rank: league.entry_rank || 0,\n rank_sort: 0, // Need to add this\n total: entry.summary_overall_points || 0, // Needs to be league\n});\n\nconst activeToH2HStanding = (\n entry: IEntry,\n league: ILeagueEntry\n): IH2HStanding => ({\n division: 0,\n entry: entry.id,\n entry_name: entry.name,\n last_rank: league.entry_last_rank || 0,\n matches_drawn: 0,\n matches_lost: 0,\n matches_played: 0,\n matches_won: 0,\n player_name: `${entry.player_first_name} ${entry.player_last_name}`,\n points_for: 0,\n rank: league.entry_rank || 0,\n rank_sort: 0,\n total: 0,\n});\n\n// TODO - getClassicNewEntries and getH2HNewEntries are almost the same,\n// refactor.\nexport const getClassicNewEntries = (\n state: RootState,\n leagueId: number,\n page: number\n) => {\n const leagueData = state.leagues.classicStandingsById[leagueId];\n if (\n leagueData &&\n leagueData.newEntriesByPage[page] &&\n leagueData.league.league_type !== \"s\"\n ) {\n if (page === 1) {\n const activeEntry = getActiveEntryInLeague(state, leagueId, \"classic\");\n if (activeEntry && !activeEntry.league.entry_rank) {\n return {\n ...leagueData.newEntriesByPage[page],\n results: addEntryToTopOfNewEntries(\n leagueData.newEntriesByPage[page].results,\n activeEntry.entry\n ),\n };\n }\n }\n return leagueData.newEntriesByPage[page];\n }\n return null;\n};\n\nexport const getClassicStandings = (\n state: RootState,\n leagueId: number,\n phaseId: number,\n page: number\n) => {\n const leagueData = state.leagues.classicStandingsById[leagueId];\n if (\n leagueData &&\n leagueData.standingsByPhaseAndPage[phaseId] &&\n leagueData.standingsByPhaseAndPage[phaseId][page]\n ) {\n const standings = leagueData.standingsByPhaseAndPage[phaseId][page];\n const activeEntry = getActiveEntryInLeague(state, leagueId, \"classic\");\n // This needs some thought. We have hardcoded phase 1 as this data is\n // only for the overall phase but we should be fetching this data via\n // an api call - issue 789\n if (\n phaseId === 1 &&\n standings.results.length &&\n activeEntry &&\n activeEntry.league.entry_rank\n ) {\n if (!standings.results.some((cs) => cs.entry === activeEntry.entry.id)) {\n return {\n ...standings,\n results:\n activeEntry.league.entry_rank <= standings.results[0].rank\n ? [\n activeToClassicStanding(\n activeEntry.entry,\n activeEntry.league\n ),\n ...standings.results,\n ]\n : [\n ...standings.results,\n activeToClassicStanding(\n activeEntry.entry,\n activeEntry.league\n ),\n ],\n };\n }\n }\n return standings;\n }\n return null;\n};\n\nexport const getH2HLeague = (state: RootState, leagueId: number) => {\n const leagueData = state.leagues.h2hStandingsById[leagueId];\n return leagueData ? leagueData.league : null;\n};\n\nexport const getH2HNewEntries = (\n state: RootState,\n leagueId: number,\n page: number\n) => {\n const leagueData = state.leagues.h2hStandingsById[leagueId];\n if (leagueData && leagueData.newEntriesByPage[page]) {\n // Only add on 1st page and if we have some newEntries\n if (page === 1 && leagueData.newEntriesByPage[page].results.length) {\n const activeEntry = getActiveEntryInLeague(state, leagueId, \"h2h\");\n if (activeEntry && !activeEntry.league.entry_rank) {\n return {\n ...leagueData.newEntriesByPage[page],\n results: addEntryToTopOfNewEntries(\n leagueData.newEntriesByPage[page].results,\n activeEntry.entry\n ),\n };\n }\n }\n return leagueData.newEntriesByPage[page];\n }\n return null;\n};\n\nexport const getH2HStandings = (\n state: RootState,\n leagueId: number,\n page: number\n) => {\n const leagueData = state.leagues.h2hStandingsById[leagueId];\n if (leagueData && leagueData.standingsByPage[page]) {\n const standings = leagueData.standingsByPage[page];\n const activeEntry = getActiveEntryInLeague(state, leagueId, \"h2h\");\n if (\n activeEntry &&\n activeEntry.league.entry_rank &&\n standings.results.length\n ) {\n if (!standings.results.some((cs) => cs.entry === activeEntry.entry.id)) {\n return {\n ...standings,\n results:\n activeEntry.league.entry_rank <= standings.results[0].rank\n ? [\n activeToH2HStanding(activeEntry.entry, activeEntry.league),\n ...standings.results,\n ]\n : [\n ...standings.results,\n activeToH2HStanding(activeEntry.entry, activeEntry.league),\n ],\n };\n }\n }\n return standings;\n }\n return null;\n};\n\nexport const getH2HMatches = (\n state: RootState,\n leagueId: number,\n entryId: number,\n eventId: number,\n page: number\n) => {\n const key = getH2HMatchesKey(entryId, eventId, page);\n return state.leagues.h2hMatchesById[leagueId]?.byEntryEventPage[key] || null;\n};\n\nexport const getLeagueFromCode = (state: RootState, code: string) =>\n state.leagues.byCode[code] || null;\n\nexport const getAutoJoinCode = (state: RootState) => state.leagues.autoJoinCode;\n\nexport const getLeagueEntries = (state: RootState, leagueId: number) =>\n state.leagues.entriesById[leagueId] || null;\n\nexport const getLeagueEntriesError = (state: RootState, leagueId: number) =>\n state.leagues.entriesErrorById[leagueId] || null;\n\nexport const getAllLeagueCupStatus = (state: RootState) =>\n state.leagues.cupStatusById;\n\nexport const getLeagueCupStatus = (state: RootState, leagueId: number) =>\n state.leagues.cupStatusById[leagueId] || null;\n","import { navigate } from \"@reach/router\";\nimport { ThunkResult } from \"..\";\nimport { apiDelete, apiGet, apiPost, apiPut } from \"../../utils/api\";\nimport { getPlayerData } from \"../player/reducers\";\nimport * as actions from \"./actions\";\nimport {\n IBanEntryData,\n ICreateClassicLeagueData,\n ICreateH2HLeagueData,\n IJoinPrivateLeagueData,\n IJoinPublicLeagueData,\n IUpdateClassicLeagueData,\n IUpdateH2HLeagueData,\n} from \"./types\";\nimport {\n localStorageKey,\n setValue,\n clearValue,\n} from \"./autoJoinPersistentStorage\";\n\nexport const createClassicLeague =\n (data: ICreateClassicLeagueData): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\n \"leagues-classic/\",\n data,\n dispatch,\n actions.createClassicLeague\n );\n } catch (e) {\n return;\n }\n navigate(\"/leagues\");\n };\n\nexport const createH2HLeague =\n (data: ICreateH2HLeagueData): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\"leagues-h2h/\", data, dispatch, actions.createH2HLeague);\n } catch (e) {\n return;\n }\n navigate(\"/leagues\");\n };\n\nexport const fetchClassicLeagueForAdmin =\n (leagueId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `leagues-classic/${leagueId}/`,\n dispatch,\n actions.fetchClassicLeagueForAdmin\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchH2HLeagueForAdmin =\n (leagueId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `leagues-h2h/${leagueId}/`,\n dispatch,\n actions.fetchH2HLeagueForAdmin\n );\n } catch (e) {\n return;\n }\n };\n\nexport const updateClassicLeague =\n (\n leagueId: number,\n data: IUpdateClassicLeagueData\n ): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPut(\n `leagues-classic/${leagueId}/`,\n data,\n dispatch,\n actions.updateClassicLeague\n );\n } catch (e) {\n return;\n }\n navigate(\"/leagues\");\n };\n\nexport const updateH2HLeague =\n (leagueId: number, data: IUpdateH2HLeagueData): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPut(\n `leagues-h2h/${leagueId}/`,\n data,\n dispatch,\n actions.updateH2HLeague\n );\n } catch (e) {\n return;\n }\n navigate(\"/leagues\");\n };\n\nexport const banLeagueEntry =\n (leagueId: number, data: IBanEntryData): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\n `league/${leagueId}/bans/ban/`,\n data,\n dispatch,\n actions.banLeagueEntry\n );\n } catch (e) {\n return;\n }\n navigate(\"/leagues\");\n };\n\nexport const unbanLeagueEntry =\n (leagueId: number, data: IBanEntryData): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\n `league/${leagueId}/bans/unban/`,\n data,\n dispatch,\n actions.unbanLeagueEntry\n );\n } catch (e) {\n return;\n }\n navigate(\"/leagues\");\n };\n\nexport const joinPrivateLeague =\n (data: IJoinPrivateLeagueData): ThunkResult> =>\n async (dispatch, getState) => {\n const player = getPlayerData(getState());\n if (player && player.entry) {\n try {\n await apiPost(\n \"leagues-private/join/\",\n data,\n dispatch,\n actions.joinPrivateLeague,\n {\n entry: player.entry,\n }\n );\n } catch (e) {\n return;\n }\n }\n };\n\nexport const joinPublicLeague =\n (data: IJoinPublicLeagueData): ThunkResult> =>\n async (dispatch, getState) => {\n const player = getPlayerData(getState());\n if (player && player.entry) {\n try {\n await apiPost(\n \"leagues-public/join/\",\n data,\n dispatch,\n actions.joinPublicLeague,\n {\n entry: player.entry,\n }\n );\n } catch (e) {\n return;\n }\n }\n navigate(\"/leagues\");\n };\n\nexport const fetchLeagueCode =\n (leagueId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `league/${leagueId}/code/`,\n dispatch,\n actions.fetchLeagueCode,\n { league: leagueId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const regenerateLeagueCode =\n (leagueId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\n `league/${leagueId}/code/regenerate/`,\n {},\n dispatch,\n actions.regenerateLeagueCode,\n { league: leagueId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const leaveLeague =\n (leagueId: number): ThunkResult> =>\n async (dispatch, getState) => {\n const player = getPlayerData(getState());\n if (player && player.entry) {\n try {\n await apiPost(\n `league/${leagueId}/leave/`,\n {},\n dispatch,\n actions.leaveLeague,\n { entry: player.entry, league: leagueId }\n );\n } catch (e) {\n return;\n }\n }\n };\n\nexport const deleteLeague =\n (leagueId: number): ThunkResult> =>\n async (dispatch, getState) => {\n const player = getPlayerData(getState());\n if (player && player.entry) {\n try {\n // TODO - Change endpoint to handle all types of league\n await apiPost(\n `leagues-private/delete/`,\n { league: leagueId },\n dispatch,\n actions.deleteLeague,\n { entry: player.entry, league: leagueId }\n );\n } catch (e) {\n return;\n }\n navigate(\"/leagues\");\n }\n };\n\nexport const fetchRenewableLeagues =\n (): ThunkResult> => async (dispatch) =>\n apiGet(`leagues-renewable/`, dispatch, actions.fetchRenewableLeagues);\n\nexport const renewRenewableLeague =\n (id: number): ThunkResult> =>\n async (dispatch) =>\n apiPost(\n `leagues-renewable/${id}/renew/`,\n {},\n dispatch,\n actions.renewRenewableLeague,\n { id }\n );\n\nexport const deleteRenewableLeague =\n (id: number): ThunkResult> =>\n async (dispatch) =>\n apiDelete(\n `leagues-renewable/${id}/`,\n {},\n dispatch,\n actions.deleteRenewableLeague,\n { id }\n );\n\nexport const fetchClassicLeagueStandings =\n (\n leagueId: number,\n pageNewEntries: number,\n pageStandings: number,\n phaseId: number\n ): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `leagues-classic/${leagueId}/standings/` +\n `?page_new_entries=${pageNewEntries}&page_standings=${pageStandings}` +\n `&phase=${phaseId}`,\n dispatch,\n actions.fetchClassicLeagueStandings,\n { phaseId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchH2HLeagueStandings =\n (\n leagueId: number,\n pageNewEntries: number,\n pageStandings: number\n ): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `leagues-h2h/${leagueId}/standings/` +\n `?page_new_entries=${pageNewEntries}&page_standings=${pageStandings}`,\n dispatch,\n actions.fetchH2HLeagueStandings\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchH2HLeagueMatches = (\n leagueId: number,\n entryId: number,\n eventId: number,\n page: number\n): ThunkResult> => {\n let url = `leagues-h2h-matches/league/${leagueId}/?page=${page}`;\n if (entryId) {\n url += `&entry=${entryId}`;\n }\n if (eventId) {\n url += `&event=${eventId}`;\n }\n return async (dispatch) => {\n try {\n await apiGet(url, dispatch, actions.fetchH2HLeagueMatches, {\n entryId,\n eventId,\n leagueId,\n });\n } catch (e) {\n return;\n }\n };\n};\n\nexport const checkLeagueCode =\n (code: string): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiPost(\n `league/code-check/`,\n { code },\n dispatch,\n actions.checkLeagueCode,\n {\n code,\n }\n );\n } catch (e) {\n dispatch(clearCode());\n }\n };\n\nexport const setCode =\n (code: string): ThunkResult =>\n (dispatch) => {\n setValue(localStorageKey, code);\n dispatch(actions.setAutoJoinCode(code));\n };\n\nexport const clearCode = (): ThunkResult => (dispatch) => {\n clearValue(localStorageKey);\n dispatch(actions.clearAutoJoinCode());\n};\n\nexport const fetchLeagueEntries =\n (leagueId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `league/${leagueId}/entries/`,\n dispatch,\n actions.fetchLeagueEntries,\n {\n leagueId,\n }\n );\n } catch (e) {\n // Error will be in store and available via a selector\n return;\n }\n };\n\nexport const fetchLeagueCupStatus =\n (leagueId: number): ThunkResult> =>\n async (dispatch) =>\n apiGet(\n `league/${leagueId}/cup-status/`,\n dispatch,\n actions.fetchLeagueCupStatus\n );\n","import { IError } from \"../../core/store\";\n\nexport const getErrorType = (errors: IError | null) => {\n if (errors) {\n if (errors.badRequest) {\n if (errors.badRequest.non_field_errors) {\n return errors.badRequest.non_field_errors[0].code;\n }\n if (errors.badRequest.code) {\n return errors.badRequest.code[0].code;\n }\n }\n return JSON.stringify(errors);\n }\n return \"\";\n};\n","import { TFunction } from \"i18next\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { ISettings } from \"../../core/store/game/types\";\n\ninterface IProps {\n error: string;\n settings: ISettings;\n}\n\nconst JoinLeagueError: React.FC = ({ error, settings }) => {\n const { t } = useTranslation();\n const getErrorMessage = (\n error: string,\n settings: ISettings,\n t: TFunction\n ) => {\n switch (error) {\n case \"max_length\": {\n return t(\n \"joinPrivate.errors.maxLength\",\n \"Invalid code entered. Please check the code.\"\n );\n }\n case \"invalid\": {\n return t(\n \"joinPrivate.errors.invalid\",\n \"Invalid code entered. Please check the code and confirm with the league administrator if you are still having problems.\"\n );\n }\n case \"league_closed\": {\n return t(\n \"joinPrivate.errors.leagueClosed\",\n \"This league is closed to new entries.\"\n );\n }\n case \"already_joined\": {\n return t(\n \"joinPrivate.errors.alreadyJoined\",\n \"You are already entered in this league.\"\n );\n }\n case \"entry_banned\": {\n return t(\n \"joinPrivate.errors.entryBanned\",\n \"The creator of this league has banned you from entering.\"\n );\n }\n case \"max_private_entries\": {\n return t(\n \"joinPrivate.errors.maxPrivate\",\n \"You are in the maximum number of {{ maxPrivateEntries }} private leagues. Before you can join a new league you will need to leave one of these leagues.\",\n {\n maxPrivateEntries: settings.league_join_private_max,\n }\n );\n }\n case \"public_league_max_exceeded\": {\n return `You may only enter ${settings.league_join_public_max} public leagues`;\n }\n default:\n return error;\n }\n };\n return

{getErrorMessage(error, settings, t)}

;\n};\n\nexport default JoinLeagueError;\n","import { navigate } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box, Flex } from \"rebass\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport {\n getActiveEntryInLeague,\n getAutoJoinCode,\n getJoinPrivateLeagueError,\n getJoinPrivateLeagueSuccess,\n getLeagueFromCode,\n} from \"../../core/store/leagues/reducers\";\nimport {\n checkLeagueCode,\n clearCode,\n joinPrivateLeague,\n} from \"../../core/store/leagues/thunks\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog from \"../Dialog\";\nimport { getErrorType } from \"./errors\";\nimport JoinLeagueError from \"./JoinLeagueError\";\n\nconst ConfirmBtnWrapper = styled.div`\n display: inline-block;\n margin-right: ${({ theme }) => theme.space[3]};\n`;\n\nconst LeagueName = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n background-color: ${({ theme }) => theme.colors.blueDarker2};\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impact};\n text-transform: uppercase;\n font-size: 24px;\n font-weight: 600;\n line-height: 1;\n`;\n\nconst AutoJoinDialog: React.FC = () => {\n const { t } = useTranslation();\n const reduxDispatch = useDispatch();\n const code = useSelector((state: RootState) => getAutoJoinCode(state));\n const player = useSelector(getPlayerData);\n const error = useSelector((state: RootState) =>\n getErrorType(getJoinPrivateLeagueError(state))\n );\n const settings = useSelector((state: RootState) => getSettings(state));\n const joinedPrivateLeagueSuccess = useSelector((state: RootState) =>\n getJoinPrivateLeagueSuccess(state)\n );\n\n // Most important part, if it returns null, nothing renders\n const league = useSelector((state: RootState) =>\n code ? getLeagueFromCode(state, code) : null\n );\n\n // Check if entry is already apart of the league\n const isPlayerInLeague = useSelector((state: RootState) =>\n league\n ? getActiveEntryInLeague(\n state,\n league.id,\n league.scoring === \"c\" ? \"classic\" : \"h2h\"\n )\n : null\n );\n\n // If we have a code, try and fetch the associated league. If there is an\n // issue fetching the league clear the code from local storage so we don't\n // try again\n useEffect(() => {\n // If you're logged in check the code\n // You might be logged out and we don't want a 403 forbidden\n if (player && player.entry && code) {\n reduxDispatch(checkLeagueCode(code));\n }\n }, [player, code, reduxDispatch]);\n\n const handleHide = () => {\n reduxDispatch(clearCode());\n };\n\n const confirmJoinLeague = (code: string) => {\n reduxDispatch(joinPrivateLeague({ code }));\n };\n\n if (joinedPrivateLeagueSuccess && code && league) {\n handleHide();\n navigate(`/leagues/${league.id}/standings/${league.scoring}`);\n return null;\n }\n\n return league ? (\n \n \n \n {t(\"AutoJoinDialog.title\", \"Join League\")}\n {league && `: ${league.name}`}\n \n \n \n {isPlayerInLeague && (\n <>\n \n \n {t(\n \"AutoJoinDialog.errors.alreadyJoined\",\n \"You are already in this league\"\n )}\n \n \n \n )}\n {!isPlayerInLeague && (\n <>\n {error ? (\n <>\n \n \n {settings && (\n \n )}\n \n \n \n ) : (\n <>\n \n

\n {t(\n \"AutoJoinDialog.confirmText\",\n \"Please press confirm to join league: {{leagueName}}\",\n { leagueName: league.name }\n )}\n

\n
\n \n {code && (\n \n \n \n )}\n \n \n \n )}\n \n )}\n
\n
\n ) : null;\n};\n\nexport default AutoJoinDialog;\n","import { TFunction } from \"i18next\";\n\nexport type ChipName = \"frush\" | \"2capt\" | \"pdbus\" | \"wildcard\" | \"uteam\";\n\ninterface IChipDetails {\n description: string;\n name: string;\n}\n\nconst allChipDetails = (t: TFunction): Record => ({\n frush: {\n name: t(\"chips.frush.name\", \"Attack! Attack!\"),\n description: t(\n \"chips.frush.description\",\n \"All forwards get double points.\"\n ),\n },\n \"2capt\": {\n name: t(\"chips.2capt.name\", \"Dynamic duo\"),\n description: t(\n \"chips.2capt.description\",\n \"Both your Captain and Vice Captain score triple points.\"\n ),\n },\n pdbus: {\n name: t(\"chips.pdbus.name\", \"Park The Bus\"),\n description: t(\n \"chips.pdbus.description\",\n \"Double points for all defenders\"\n ),\n },\n wildcard: {\n name: t(\"chips.wildcard.name\", \"Wildcard\"),\n description: t(\n \"chips.wildcard.description\",\n \"Make unlimited free transfers.\"\n ),\n },\n uteam: {\n name: t(\"chips.unlimit.name\", \"Loan Rangers\"),\n description: t(\n \"chips.unlimit.description\",\n \"Make unlimited free transfers and choose how many players you want from a specific team for a single round. At the next deadline your squad is returned to how it was at the start of the Round.\"\n ),\n },\n});\n\nexport const getChipName = (name: ChipName, t: TFunction) =>\n allChipDetails(t)[name].name;\n\nexport const getChipDetails = (name: ChipName, t: TFunction) =>\n allChipDetails(t)[name];\n\nexport const getAllChipDetails = (t: TFunction) => allChipDetails(t);\n","import sortBy from \"lodash/sortBy\";\nimport { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport { getElementTypesById } from \"../element-types/reducers\";\nimport {\n getElementsById,\n getFormation,\n getTotalsByType,\n} from \"../elements/reducers\";\nimport { getSettings } from \"../game/reducers\";\nimport { ISettings } from \"../game/types\";\nimport * as actions from \"./actions\";\nimport { IPickProposed, IState, SubStatus } from \"./types\";\nimport { getActiveOrProposedChip } from \"../chips/reducers\";\n\n// State Reducer\nexport default combineReducers({\n picksLastUpdated: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchMyTeam.success):\n case getType(actions.saveMyTeam.success):\n return action.payload.data.picks_last_updated;\n default:\n return state;\n }\n },\n picksProposed: (state = [], action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchMyTeam.success):\n case getType(actions.saveMyTeam.success):\n return sortBy(action.payload.data.picks, \"position\").map((e) => ({\n ...e,\n elementType: action.payload.elementsById[e.element].element_type,\n subStatus: \"\" as SubStatus,\n }));\n\n case getType(actions.substitutionStart):\n return state.map((p) => {\n const newPick = { ...p };\n if (p === action.payload.pick) {\n newPick.subStatus = \"instigator\";\n } else if (action.payload.possibleReplacements.indexOf(p) > -1) {\n newPick.subStatus = \"target\";\n } else {\n newPick.subStatus = \"invalid\";\n }\n return newPick;\n });\n\n case getType(actions.substitutionStop):\n return state.map((p) => ({ ...p, subStatus: \"\" as SubStatus }));\n\n case getType(actions.substitutionProcess): {\n // Find the pick who instigated the substitution\n const instigator = state.reduce(\n (memo, p) => (p.subStatus === \"instigator\" ? p : memo),\n null\n );\n if (!instigator) {\n return state;\n }\n\n // Swap positions / captain data and reset subStatus\n const attrs: Array = [\n \"position\",\n \"is_captain\",\n \"is_vice_captain\",\n ];\n const target = action.payload.pick;\n const newPicks = state.map((p) => {\n const newPick = { ...p };\n // See https://github.com/microsoft/TypeScript/issues/31663 for\n // explanation for use of 'as any'\n if (p.element === instigator.element) {\n attrs.forEach((a) => ((newPick[a] as any) = target[a]));\n } else if (p.element === target.element) {\n attrs.forEach((a) => ((newPick[a] as any) = instigator[a]));\n }\n newPick.subStatus = \"\";\n return newPick;\n });\n\n // Order by position, factoring in elementType for starters\n const subStart = action.payload.subsStart;\n newPicks.sort((a, b) => {\n if (a.position < subStart && b.position < subStart) {\n return (\n a.elementType * 99 +\n a.position -\n (b.elementType * 99 + b.position)\n );\n }\n return a.position - b.position;\n });\n\n // Reset position based on index and return\n return newPicks.map((p, index) => {\n const newPick = { ...p };\n newPick.position = index + 1;\n return newPick;\n });\n }\n\n case getType(actions.changeCaptain):\n case getType(actions.changeViceCaptain): {\n const newCaptain = state.reduce(\n (memo, p) => (p.element === action.payload.elementId ? p : memo),\n null\n );\n const attrMake = action.payload.isVice\n ? \"is_vice_captain\"\n : \"is_captain\";\n const attrOther = action.payload.isVice\n ? \"is_captain\"\n : \"is_vice_captain\";\n\n if (!newCaptain || newCaptain[attrMake]) {\n return state;\n }\n const oldCaptain = state.reduce(\n (memo, p) => (p[attrMake] ? p : memo),\n null\n );\n\n return state.map((p) => {\n const newPick = { ...p };\n if (p.element === action.payload.elementId) {\n newPick[attrMake] = true;\n newPick[attrOther] = false;\n } else {\n newPick[attrMake] = false;\n // Handle case of roles being swapped\n if (\n oldCaptain &&\n oldCaptain.element === p.element &&\n newCaptain[attrOther]\n ) {\n newPick[attrOther] = true;\n }\n }\n return newPick;\n });\n }\n\n default:\n return state;\n }\n },\n picksSaved: (state = [], action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchMyTeam.success):\n case getType(actions.saveMyTeam.success):\n return sortBy(action.payload.data.picks, \"position\");\n default:\n return state;\n }\n },\n savingState: (state, action: RootAction) => {\n switch (action.type) {\n case getType(actions.saveMyTeam.success):\n return \"saved\";\n case getType(actions.saveMyTeam.request):\n return \"saving\";\n default:\n return \"\";\n }\n },\n});\n\n// State Selectors / Helpers\nexport const getMyPicksLastUpdated = (state: RootState) =>\n state.myTeam.picksLastUpdated;\n\nexport const getMyPicksSaved = (state: RootState) => state.myTeam.picksSaved;\n\nexport const getMyPicksProposed = (state: RootState) =>\n state.myTeam.picksProposed;\n\nexport const getMyTeamSavingState = (state: RootState) =>\n state.myTeam.savingState;\n\nexport const getMyStartersProposed = createSelector(\n getMyPicksProposed,\n getSettings,\n (picks, settings) => picks.slice(0, settings ? settings.squad_squadplay : 0)\n);\n\nexport const getMySubsProposed = createSelector(\n getMyPicksProposed,\n getSettings,\n (picks, settings) =>\n picks.slice(\n settings ? settings.squad_squadplay : picks.length,\n picks.length\n )\n);\n\nexport const getMyStartingTotalsByType = createSelector(\n getMyStartersProposed,\n getElementsById,\n (picks, elements) => getTotalsByType(picks.map((p) => elements[p.element]))\n);\n\nexport const getMyFormation = createSelector(\n getMyStartersProposed,\n getElementsById,\n (picks, elements) => getFormation(picks.map((p) => elements[p.element]))\n);\n\nexport const isSub = (state: RootState, pick: IPickProposed) => {\n const chip = getActiveOrProposedChip(state);\n\n const settings = getSettings(state, undefined, chip?.id) as ISettings;\n return pick.position > settings.squad_squadplay;\n};\n\nexport const isLegalSwap = (\n state: RootState,\n p1: IPickProposed,\n p2: IPickProposed,\n totals: Record\n): boolean => {\n const chip = getActiveOrProposedChip(state);\n\n const elementsById = getElementsById(state, undefined, chip?.id);\n const elementTypesById = getElementTypesById(state, undefined, chip?.id);\n const p1Type = elementsById[p1.element].element_type;\n const p2Type = elementsById[p2.element].element_type;\n const p1Sub = isSub(state, p1);\n const p2Sub = isSub(state, p2);\n // const locks = getPositionTypeLocks(state);\n let validSwap = false;\n\n // Swapping starters disallowed\n if (!p1Sub && !p2Sub) {\n return false;\n }\n\n // Swapping self disallowed\n if (p1.element === p2.element) {\n return false;\n }\n\n // Can always swap like for like\n if (p1Type === p2Type) {\n return true;\n }\n\n // Can swap subs unless positions locked\n if (p1Sub && p2Sub) {\n validSwap = true;\n } else if (p1Sub) {\n // Bringing p1 in, p2 out\n validSwap =\n totals[p1Type] < elementTypesById[p1Type].squad_max_play &&\n totals[p2Type] > elementTypesById[p2Type].squad_min_play;\n } else {\n // Bringing p2 in, p1 out\n validSwap =\n totals[p2Type] < elementTypesById[p2Type].squad_max_play &&\n totals[p1Type] > elementTypesById[p1Type].squad_min_play;\n }\n\n // Check any subs are allowed to be in their new positions\n if (\n p2Sub && // p1 becoinng a sub\n elementTypesById[p1Type].sub_positions_locked.length && // locked type\n elementTypesById[p1Type].sub_positions_locked.indexOf(p2.position) === -1\n ) {\n return false;\n }\n if (\n p1Sub && // p2 becoming a sub\n elementTypesById[p2Type].sub_positions_locked.length && // locked type\n elementTypesById[p2Type].sub_positions_locked.indexOf(p1.position) === -1\n ) {\n return false;\n }\n\n return validSwap;\n};\n\nexport const getMyPossibleReplacementsForPick = (\n state: RootState,\n pick1: IPickProposed\n) => {\n const chip = getActiveOrProposedChip(state);\n\n const possibles: IPickProposed[] = [];\n const totals = getMyStartingTotalsByType(state, undefined, chip?.id);\n getMyPicksProposed(state).forEach((pick2) => {\n if (isLegalSwap(state, pick1, pick2, totals)) {\n possibles.push(pick2);\n }\n });\n return possibles;\n};\n\nexport const isMyTeamValid = createSelector(getMyPicksProposed, (proposed) =>\n proposed.every((p) => p.subStatus === \"\")\n);\n\nexport const hasMyTeamChanged = createSelector(\n getMyPicksSaved,\n getMyPicksProposed,\n (saved, proposed) =>\n saved.some(\n (p, i) =>\n p.element !== proposed[i].element ||\n p.is_captain !== proposed[i].is_captain ||\n p.is_vice_captain !== proposed[i].is_vice_captain\n )\n);\n\nexport const toUpdateMyTeamAPI = createSelector(getMyPicksProposed, (picks) =>\n picks.map((p) => ({\n element: p.element,\n position: p.position,\n is_captain: p.is_captain,\n is_vice_captain: p.is_vice_captain,\n }))\n);\n\nexport const toUpdateChipAPI = createSelector(getMyPicksSaved, (picks) =>\n picks.map((p) => ({\n element: p.element,\n position: p.position,\n is_captain: p.is_captain,\n is_vice_captain: p.is_vice_captain,\n }))\n);\n","import { ThunkResult } from \"..\";\nimport { apiGet, apiPost } from \"../../utils/api\";\nimport { checkGame } from \"../bootstrap/thunks\";\nimport {\n getActiveOrProposedChip,\n getActiveOrProposedTeamChipName,\n} from \"../chips/reducers\";\nimport { getElementsById } from \"../elements/reducers\";\nimport { getSettings } from \"../game/reducers\";\nimport { getPlayerData } from \"../player/reducers\";\nimport * as actions from \"./actions\";\nimport {\n getMyPicksProposed,\n getMyPossibleReplacementsForPick,\n toUpdateMyTeamAPI,\n} from \"./reducers\";\nimport { IMyTeamData, IPickProposed } from \"./types\";\n\nexport const fetchMyTeam =\n (): ThunkResult> => async (dispatch, getState) => {\n dispatch(checkGame());\n const player = getPlayerData(getState());\n if (player && player.entry) {\n try {\n await apiGet(\n `my-team/${player.entry}/`,\n dispatch,\n actions.fetchMyTeam,\n { elementsById: getElementsById(getState()) }\n );\n } catch (e) {\n return;\n }\n }\n };\n\nexport const actionSubstitution =\n (elementId: number): ThunkResult =>\n (dispatch, getState) => {\n const pick = getMyPicksProposed(getState()).reduce(\n (memo: IPickProposed | null, p) => (p.element === elementId ? p : memo),\n null\n );\n\n const chip = getActiveOrProposedChip(getState());\n\n const settings = getSettings(getState(), undefined, chip?.id);\n if (pick && settings) {\n if (pick.subStatus === \"\") {\n dispatch(\n actions.substitutionStart(\n pick,\n getMyPossibleReplacementsForPick(getState(), pick)\n )\n );\n } else if (pick.subStatus === \"instigator\") {\n dispatch(actions.substitutionStop());\n } else if (pick.subStatus === \"target\") {\n dispatch(\n actions.substitutionProcess(pick, settings.squad_squadplay + 1)\n );\n }\n }\n };\n\nexport const saveMyTeam =\n (): ThunkResult> => async (dispatch, getState) => {\n try {\n const player = getPlayerData(getState());\n if (!player || !player.entry) {\n return;\n }\n await apiPost(\n `my-team/${player.entry}/`,\n {\n chip: getActiveOrProposedTeamChipName(getState()),\n picks: toUpdateMyTeamAPI(getState()),\n },\n dispatch,\n actions.saveMyTeam,\n { elementsById: getElementsById(getState()) }\n );\n } catch (e) {\n // TODO - there ae no expected errors\n return;\n }\n };\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { IURLResponse } from \"./types\";\n\nexport const fetchURL = createAsyncAction(\n \"FETCH_URL_START\",\n \"FETCH_URL_SUCCESS\",\n \"FETCHURL_FAILURE\"\n)();\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"./actions\";\nimport { IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byURL: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchURL.success):\n return {\n ...state,\n [action.payload.url]: {\n ...action.payload.data,\n last_fetched: Math.round(new Date().getTime() / 1000),\n },\n };\n default:\n return state;\n }\n },\n});\n\n// State Selectors\n\n// We leave it up to the caller to parse the content based on the conent_type.\n// If used by a lot of games we could create helpers\nexport const getURL = (state: RootState, url: string) =>\n state.urls.byURL[url] || null;\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport * as actions from \"./actions\";\nimport { IURLResponse } from \"./types\";\n\nexport const fetchURL =\n (url: string): ThunkResult> =>\n async (dispatch) => {\n // We should do some rate limiting here and don't fetch if we have received\n // the url data in the last 60(?) seconds\n // Another enhancement is to handle the 'empty' response, trying again\n // after 3(?) seconds could be a solution.\n try {\n const response = await apiGet(\n `get-url/?url=${url}`,\n dispatch,\n actions.fetchURL,\n { url }\n );\n\n const isEmptyResponse = (response: IURLResponse) => {\n return Object.values(response).every((value) => value === \"\");\n };\n\n if (response && isEmptyResponse(response)) {\n setTimeout(() => dispatch(fetchURL(url)), 3000);\n }\n } catch (e) {\n return;\n }\n };\n","import * as React from \"react\";\n\ninterface IProps {\n code: string;\n}\n\nconst Flag: React.FC = ({ code }) => {\n const flagPath = `${process.env.PUBLIC_URL}/img/flags`;\n\n return \"\";\n};\n\nexport default Flag;\n","import styled from \"styled-components/macro\";\n\nconst Footnote = styled.p`\n font-size: 1.2rem;\n`;\n\nexport default Footnote;\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 8,\n height: 14,\n viewBox: \"0 0 8 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n transform: \"rotate(90 10.5 5.5)\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"0 0 24 0 24 24 0 24\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"currentColor\",\n fillRule: \"nonzero\",\n points: \"12 10.828 7.05 15.778 5.636 14.364 12 8 18.364 14.364 16.95 15.778\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRight);\nexport default __webpack_public_path__ + \"static/media/arrow-right.5a4d3746.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowDoubleLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12,\n height: 11,\n viewBox: \"0 0 12 11\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"rotate(90 6 6)\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"5.3 4.125 1.178 0 0 1.178 5.3 6.478 10.6 1.178 9.428 0\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"5.3 9.125 1.178 5 0 6.178 5.3 11.478 10.6 6.178 9.428 5\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDoubleLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-double-left.95c846fc.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgArrowDoubleRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12,\n height: 11,\n viewBox: \"0 0 12 11\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"matrix(0 1 1 0 0 0)\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"5.3 4.125 1.178 0 0 1.178 5.3 6.478 10.6 1.178 9.428 0\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"5.3 9.125 1.178 5 0 6.178 5.3 11.478 10.6 6.178 9.428 5\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDoubleRight);\nexport default __webpack_public_path__ + \"static/media/arrow-double-right.7401db73.svg\";\nexport { ForwardRef as ReactComponent };","var _rect;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgNew(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"New_in_league\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n enableBackground: \"new 0 0 16 16\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"new\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n y: 6,\n width: 16,\n height: 4\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNew);\nexport default __webpack_public_path__ + \"static/media/new.567bfff9.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as ArrowLeftIcon } from \"../../img/icons/arrow-left.svg\";\nimport { ReactComponent as ArrowRightIcon } from \"../../img/icons/arrow-right.svg\";\nimport { ReactComponent as ArrowLeftDoubleIcon } from \"../../img/icons/arrow-double-left.svg\";\nimport { ReactComponent as ArrowRightDoubleIcon } from \"../../img/icons/arrow-double-right.svg\";\n\ninterface IArrow {\n color?: \"black\";\n}\n\nexport const ArrowLeft = styled(ArrowLeftIcon)`\n fill: ${(props) =>\n props.color ? props.theme.colors[props.color] : \"currentColor\"};\n`;\n\nexport const ArrowRight = styled(ArrowRightIcon)`\n fill: ${(props) =>\n props.color ? props.theme.colors[props.color] : \"currentColor\"};\n`;\n\nexport const ArrowLeftDouble = styled(ArrowLeftDoubleIcon)`\n fill: ${(props) =>\n props.color ? props.theme.colors[props.color] : \"currentColor\"};\n`;\n\nexport const ArrowRightDouble = styled(ArrowRightDoubleIcon)`\n fill: ${(props) =>\n props.color ? props.theme.colors[props.color] : \"currentColor\"};\n`;\n\nexport const ControlArrowRight = styled(ArrowRight)`\n ${size(\"16px\")};\n margin-left: 0.5rem;\n vertical-align: middle;\n`;\n\nexport const ControlArrowLeft = styled(ArrowLeft)`\n ${size(\"16px\")};\n margin-right: 0.5rem;\n vertical-align: middle;\n`;\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSame(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"16px\",\n height: \"16px\",\n viewBox: \"-7 9 16 16\",\n enableBackground: \"new -7 9 16 16\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"same\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Non_mover\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"7,17 0,9 -5,9 -5,25 0,25 \"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSame);\nexport default __webpack_public_path__ + \"static/media/same.e0ae0653.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgUp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"16px\",\n height: \"16px\",\n viewBox: \"-7 9 16 16\",\n enableBackground: \"new -7 9 16 16\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"up\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Up_league\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"1,11 -7,18 -7,23 9,23 9,18 \"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUp);\nexport default __webpack_public_path__ + \"static/media/up.4b566bbe.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDown(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"16px\",\n height: \"16px\",\n viewBox: \"-7 9 16 16\",\n enableBackground: \"new -7 9 16 16\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"down\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Down_league\"\n }, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"1,23 9,16 9,11 -7,11 -7,16 \"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDown);\nexport default __webpack_public_path__ + \"static/media/down.4848e94e.svg\";\nexport { ForwardRef as ReactComponent };","import { ReactComponent as BaseNewIcon } from \"../../img/icons/new.svg\";\nimport { ReactComponent as BaseSameIcon } from \"../../img/icons/same.svg\";\nimport { ReactComponent as BaseUpIcon } from \"../../img/icons/up.svg\";\nimport { ReactComponent as BaseDownIcon } from \"../../img/icons/down.svg\";\nimport styled from \"styled-components/macro\";\nimport { size } from \"polished\";\n\nexport const NewIcon = styled(BaseNewIcon)`\n ${size(12)}\n fill: ${({ theme }) => theme.colors.greyDarker3};\n`;\n\nexport const SameIcon = styled(BaseSameIcon)`\n ${size(10)}\n fill: ${({ theme }) => theme.colors.greyDarker3};\n`;\n\nexport const UpIcon = styled(BaseUpIcon)`\n ${size(12)}\n fill: ${({ theme }) => theme.colors.success};\n`;\n\nexport const DownIcon = styled(BaseDownIcon)`\n ${size(12)}\n fill: ${({ theme }) => theme.colors.error};\n`;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { NewIcon, SameIcon } from \"../icons/Movement\";\n\nconst ARROW_SIZE = 6;\n\nconst arrowStyling = css`\n width: 0;\n height: 0;\n border-left: ${ARROW_SIZE}px solid transparent;\n border-right: ${ARROW_SIZE}px solid transparent;\n`;\n\nconst StyledUpArrow = styled.div`\n ${arrowStyling};\n border-bottom: ${ARROW_SIZE}px solid ${({ theme }) => theme.colors.success};\n`;\n\nconst StyledDownArrow = styled.div`\n ${arrowStyling};\n border-top: ${ARROW_SIZE}px solid ${({ theme }) => theme.colors.error};\n`;\n\ninterface IProps {\n lastRank: number | null;\n rank: number | null;\n}\n\nconst Movement: React.FC = ({ lastRank, rank }) => {\n if (lastRank === 0 || rank === 0 || lastRank === null || rank === null) {\n return ;\n }\n if (rank === lastRank) {\n return ;\n }\n if (rank > lastRank) {\n return ;\n }\n if (rank < lastRank) {\n return ;\n }\n return null;\n};\n\nexport default Movement;\n","import styled, { css } from \"styled-components/macro\";\nimport { Link as RouterLink } from \"@reach/router\";\n\nconst LinkStyles = css`\n color: ${({ theme }) => theme.colors.white};\n text-decoration: none;\n\n :hover {\n text-decoration: underline;\n }\n`;\n\nexport const Hyperlink = styled.a`\n ${LinkStyles}\n`;\n\nconst Link = styled(RouterLink)`\n ${LinkStyles}\n`;\n\nexport default Link;\n","import i18n from \"i18next\";\n\nexport const getShortNameFromId = (event: number, idOnly = false) => {\n const prefix = idOnly ? \"\" : i18n.t(\"events.shortName\", \"RD\");\n return `${prefix}${event}`;\n};\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst StyledResult = styled.span`\n font-family: ${({ theme }) => theme.fonts.base};\n display: inline-block;\n width: 3rem;\n height: 3rem;\n margin-right: ${({ theme }) => theme.space[1]};\n border-radius: 100%;\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n font-size: 1.4rem;\n line-height: 3rem;\n text-align: center;\n vertical-align: middle;\n`;\n\ninterface IOwnProps {\n resultChar: string;\n}\n\nconst Result: React.FC = ({ resultChar }) => (\n \n {resultChar}\n \n);\n\nexport default Result;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IH2HMatch } from \"../../core/store/leagues/types\";\n\nconst CupSummaryScore: React.FC<{\n match: IH2HMatch;\n entryId: number;\n}> = ({ match, entryId }) => {\n const iAmOne = entryId === match.entry_1_entry;\n const now = useSelector(getCurrentEvent);\n const started = now ? match.event <= now.id : null;\n\n if (!started) {\n return <> ;\n }\n\n if (match.is_bye) {\n return BYE;\n }\n\n return iAmOne ? (\n \n {match.entry_1_points}-{match.entry_2_points}\n \n ) : (\n \n {match.entry_2_points}-{match.entry_1_points}\n \n );\n};\n\nexport default CupSummaryScore;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { IH2HMatch } from \"../../core/store/leagues/types\";\nimport { getShortNameFromId } from \"../../utils/events\";\nimport Result from \"../Result\";\nimport CupSummaryScore from \"./CupSummaryScore\";\n\nconst EventCell = styled.td`\n text-align: center;\n`;\n\nconst StatusCell = styled.td`\n text-align: center;\n`;\n\nconst CupSummaryData: React.FC<{\n match: IH2HMatch;\n entryId: number;\n}> = ({ match, entryId }) => {\n const resultChar = match.winner === entryId ? \"W\" : match.winner ? \"L\" : \"\";\n return (\n <>\n {getShortNameFromId(match.event)}\n \n {match.winner ? (\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default CupSummaryData;\n","import { ILeagueEntry } from \"../../core/store/entries/types\";\n\nexport const getLeagueUrl = (\n id: number,\n scoring: string,\n defaultEntry?: number\n) =>\n scoring === \"h\"\n ? `/leagues/${id}/matches/${scoring}${\n defaultEntry ? `?default_entry=${defaultEntry}` : \"\"\n }`\n : `/leagues/${id}/standings/${scoring}`;\n\nexport const getBroadcasterLeagues = (systemClassicLeagues: ILeagueEntry[]) => {\n // Extract any broadcaster leagues\n const broadcasterLeagueMatch = /^brd-/;\n // Please note the \"!\" non-null assertion operator on the filter\n return systemClassicLeagues.filter((l) =>\n l.short_name!.match(broadcasterLeagueMatch)\n );\n};\n\nexport const getFilteredSystemClassicLeagues = (\n systemClassicLeagues: ILeagueEntry[],\n broadcasterLeagues: ILeagueEntry[]\n) =>\n systemClassicLeagues.filter(\n (l) => !broadcasterLeagues.length || broadcasterLeagues.indexOf(l) === -1\n );\n\nexport const getCupUrl = (\n leagueId: number,\n cup_league: number | null,\n entryId?: number\n) => {\n const linkUrl = `/leagues/${leagueId}/cup`;\n if (!cup_league) {\n return `${linkUrl}-not-started`;\n }\n if (entryId) {\n return `${linkUrl}?entry=${entryId}`;\n }\n return linkUrl;\n};\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { ILeagueEntry } from \"../../core/store/entries/types\";\nimport { IH2HMatch } from \"../../core/store/leagues/types\";\nimport Link from \"../Link\";\nimport CupSummaryData from \"./CupSummaryData\";\nimport { getCupUrl } from \"./utils\";\n\ninterface ICupTypeRowProps {\n cupMatch: IH2HMatch | null;\n entryId: number;\n league: ILeagueEntry;\n}\nconst CupTypeRow: React.FC = ({\n cupMatch,\n entryId,\n league,\n}) => {\n const { t } = useTranslation();\n return (\n \n \n \n {t(\"cupTypeRow.link\", \"{{ leagueName }} cup\", {\n leagueName: league.name,\n })}\n \n \n {cupMatch && league.cup_qualified ? (\n \n ) : (\n <>\n  \n  \n \n )}\n \n );\n};\n\nexport default CupTypeRow;\n","import styled from \"styled-components/macro\";\nimport Table from \"../Table\";\n\nexport const PrimaryWrap = styled.div`\n background-color: ${({ theme }) => theme.colors.primary};\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: ${({ theme }) => `${theme.space[2]} ${theme.space[2]} 0`};\n }\n`;\n\nexport const LeagueSummaryHeading = styled.h4`\n margin: 0 0 1rem;\n padding: 1.3rem 0;\n border-top: 1px solid ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: 1.3rem;\n`;\n\nexport const SummaryCupCol = styled.th`\n width: 49%;\n`;\n\nexport const SummaryRoundCol = styled.th`\n width: 24%;\n`;\n\nexport const SummaryStatusCol = styled.th`\n width: 27%;\n`;\n\nexport const LeagueSummaryTable = styled(Table)`\n table-layout: fixed;\n tr,\n td {\n padding: ${({ theme }) => theme.space[3]};\n }\n\n /* Have to do this because of Table td specificity */\n ${SummaryCupCol} {\n text-align: center;\n }\n`;\n\nexport const SelectWrap = styled.div`\n margin: ${({ theme }) => `${theme.space[4]} ${theme.space[2]}`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nexport const SelectBox = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 49%;\n }\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\nimport { getCupMatchesByLeagueId } from \"../../core/store/entries/reducers\";\nimport {\n CupMatchesByLeagueId,\n ILeagueEntry,\n} from \"../../core/store/entries/types\";\nimport { VisuallyHidden } from \"../Utils\";\nimport CupTypeRow from \"./CupTypeRow\";\nimport {\n LeagueSummaryHeading,\n LeagueSummaryTable,\n SummaryCupCol,\n SummaryRoundCol,\n SummaryStatusCol,\n} from \"./Styles\";\n\ninterface IProps {\n entryId: number;\n leagues: ILeagueEntry[];\n title: string;\n}\n\nconst MyLeagueCupSummary: React.FC = ({ entryId, leagues, title }) => {\n const cupMatches: CupMatchesByLeagueId | null = useSelector(\n (state: RootState) =>\n entryId ? getCupMatchesByLeagueId(state, entryId) : null\n );\n const { t } = useTranslation();\n\n return (\n \n {title}\n \n \n \n \n \n {t(\"myLeagueCupSummary.cup\", \"Cup\")}\n \n \n \n \n {t(\"myLeagueCupSummary.round\", \"Round\")}\n \n \n \n \n {t(\"myLeagueCupSummary.status\", \"Status\")}\n \n \n \n \n \n {leagues.map((l) => (\n \n ))}\n \n \n \n );\n};\n\nexport default MyLeagueCupSummary;\n","import React from \"react\";\nimport styled from \"styled-components\";\ninterface ILogoProps {\n justifyContent: string;\n}\n\nconst StyledLogoBar = styled.div`\n display: flex;\n align-items: center;\n justify-content: ${({ justifyContent }) => justifyContent};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n background-position: left center;\n background-repeat: no-repeat;\n background-size: contain;\n`;\n\ninterface IProps {\n children: React.ReactNode;\n justifyContent?: string;\n}\n\nconst LogoBar: React.FC = ({\n children,\n justifyContent = \"center\",\n ...props\n}) => {\n return (\n \n {children}\n \n );\n};\n\nexport default LogoBar;\n","import Parser from \"rss-parser\";\n\nfunction filterOnSSL(items: Parser.Item[]) {\n return items.filter(function (item: Parser.Item) {\n if (item && item.link && item.enclosure && item.enclosure.url) {\n return (\n item.link.indexOf(\"https\") !== -1 &&\n item.enclosure.url.indexOf(\"https\") !== -1\n );\n }\n // this to stop eslint flagging a warning, methods like map, filter and reduce\n // always expect something to be returned\n return [];\n });\n}\n\nexport default filterOnSSL;\n","import React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst TabHeadingOuter = styled.div`\n padding: 0 ${({ theme }) => theme.space[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst TabHeadingInner = styled.div`\n display: inline-block;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${(props) =>\n props.isBlock &&\n css`\n display: block;\n `}\n }\n`;\n\nconst TabHeadingTitle = styled.h3`\n font-size: ${({ theme }) => theme.fontSizes[3]};\n`;\n\ninterface IOwnProps {\n title: React.ReactNode;\n}\n\ninterface ITabHeadingOuter {\n hasBorder?: boolean;\n isCentered?: boolean;\n}\n\ninterface ITabHeadingInner {\n isBlock?: boolean;\n}\n\ntype Props = IOwnProps & ITabHeadingOuter & ITabHeadingInner;\n\nconst TabHeading: React.FC = ({\n hasBorder = false,\n isBlock = false,\n isCentered = false,\n title,\n}) => (\n \n \n {title}\n \n \n);\n\nexport default TabHeading;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { TabLink } from \"./Tab\";\n\nconst Item = styled.li`\n flex: 1;\n`;\n\ninterface IStyleProps {\n selected: boolean;\n}\n\ninterface IProps {\n key: number;\n index: number;\n label: React.ReactNode;\n link: string;\n onClick: (index: number) => void;\n}\n\ntype Props = IStyleProps & IProps;\n\nconst EntryTab: React.FC = ({\n index,\n label,\n link,\n onClick,\n selected,\n}) => {\n const onTabClick = (e: React.SyntheticEvent) => {\n e.preventDefault();\n onClick(index);\n };\n return (\n \n \n {label}\n \n \n );\n};\n\nexport default EntryTab;\n","import React, { useState } from \"react\";\nimport styled from \"styled-components/macro\";\nimport EntryTab from \"./EntryTab\";\nimport { ITabPanel } from \"./TabPanel\";\nimport { TabListShared } from \"./Tabs\";\n\nconst TabList = styled.ul`\n ${TabListShared}\n margin: ${({ theme }) => `${theme.space[4]}`};\n`;\n\ninterface IProps {\n children: Array>;\n}\n\nconst EntryTabs: React.FC = ({ children }) => {\n const [selectedTab, setSelectedTab] = useState(0);\n\n const handleClick = (index: number) => {\n setSelectedTab(index);\n };\n\n return (\n
\n \n {React.Children.map(children, (child, index) => {\n const panel = child;\n return (\n \n );\n })}\n \n {children[selectedTab]}\n
\n );\n};\n\nexport default EntryTabs;\n","import { Link as RouterLink } from \"@reach/router\";\nimport React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport {\n getEntry,\n getFanLeagueDetails,\n getPhaseStandingsForEntryPhaseLeague,\n getPrivateClassicCupLeaguesForEntry,\n getPrivateClassicLeaguesForEntry,\n getPrivateH2HLeaguesForEntry,\n getPublicClassicCupLeaguesForEntry,\n getPublicClassicLeaguesForEntry,\n getPublicH2HLeaguesForEntry,\n getSystemClassicCupLeaguesForEntry,\n getSystemClassicLeaguesForEntry,\n} from \"../core/store/entries/reducers\";\nimport {\n fetchEntryPhaseStandings,\n fetchEntrySummary,\n} from \"../core/store/entries/thunks\";\nimport {\n IEntry,\n IEntryPhaseStanding,\n IFanLeagueDetails,\n ILeagueEntry,\n} from \"../core/store/entries/types\";\nimport { getCurrentEvent } from \"../core/store/events/reducers\";\nimport { IEvent } from \"../core/store/events/types\";\nimport { getTotalPlayers } from \"../core/store/game/reducers\";\nimport { fetchMyTeam } from \"../core/store/my-team/thunks\";\nimport { ITransferState } from \"../core/store/my-team/types\";\nimport { getPhases } from \"../core/store/phases/reducers\";\nimport { IPhase } from \"../core/store/phases/types\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { getTransferState } from \"../core/store/squad/reducers\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport { ITeamsById } from \"../core/store/teams/types\";\nimport { getURL } from \"../core/store/urls/reducers\";\nimport { fetchURL } from \"../core/store/urls/thunks\";\nimport { IContent } from \"../core/store/urls/types\";\nimport { integerToMoney } from \"../core/utils/money\";\nimport Badge from \"./Badge\";\nimport Button from \"./Button\";\nimport Flag from \"./Flag\";\n// import { kitFromEntry } from \"./EntryUpdate\";\nimport Footnote from \"./Footnote\";\nimport { ControlArrowRight } from \"./icons/Arrows\";\nimport Movement from \"./leagues/Movement\";\nimport MyLeagueCupSummary from \"./leagues/MyLeagueCupSummary\";\nimport { LeagueSummaryTable } from \"./leagues/Styles\";\nimport {\n getBroadcasterLeagues,\n getFilteredSystemClassicLeagues,\n} from \"./leagues/utils\";\nimport Link from \"./Link\";\nimport LogoBar from \"./LogoBar\";\nimport Panel from \"./Panel\";\nimport filterOnSSL from \"./scout/filterOnSSL\";\nimport TabHeading from \"./TabHeading\";\nimport Table from \"./Table\";\nimport EntryTabs from \"./tabs/EntryTabs\";\nimport TabPanel from \"./tabs/TabPanel\";\nimport { VisuallyHidden } from \"./Utils\";\n\nconst Parser = require(\"rss-parser\");\nconst parser = new Parser();\nconst phaseSponsorLeague = 3; // if we have a new sponsor change to the new phase\nconst leagueSponsorLeague = 315; // check this and change to the overall league\n\nconst EntryFullName = styled.h2`\n margin-top: 0;\n margin-bottom: ${({ theme }) => `${theme.space[1]}`};\n line-height: 24px;\n font-size: 20px;\n\n font-family: ${({ theme }) => theme.fonts.impact};\n text-transform: uppercase;\n`;\n\nconst EntryName = styled.h3`\n margin-top: 0;\n margin-bottom: 0;\n padding-right: ${({ theme }) => theme.space[2]};\n font-size: 17px;\n font-family: ${({ theme }) => theme.fonts.impact};\n text-transform: uppercase;\n line-height: 20px;\n overflow-wrap: anywhere;\n`;\n\nconst DataListItem = styled.li`\n display: flex;\n align-items: center;\n padding: ${({ theme }) => theme.space[2]} 0;\n border-top: 1px solid ${({ theme }) => theme.colors.grey};\n font-size: ${({ theme }) => theme.fontSizes[1]};\n`;\n\nconst DataListHeading = styled.h5`\n flex: 1 0 65%;\n padding: 0 ${({ theme }) => theme.space[2]};\n`;\n\nconst DataListValue = styled.div`\n flex: 1 0 35%;\n padding: 0 ${({ theme }) => theme.space[2]};\n`;\n\nconst BadgeWrapper = styled.div`\n position: absolute;\n top: ${({ theme }) => theme.space[1]};\n bottom: 0;\n right: ${({ theme }) => theme.space[2]};\n\n img {\n width: auto;\n height: 80%;\n }\n`;\n\nconst TableFixed = styled(Table)`\n table-layout: fixed;\n`;\n\nconst MovementCell = styled.td`\n width: 16%;\n`;\n\nconst Rank = styled.td`\n width: 30%;\n font-weight: 800;\n`;\n\nconst Name = styled.td`\n width: 54%;\n overflow-wrap: break-word;\n hyphens: auto;\n`;\n\nconst linkToLeague = (l: ILeagueEntry) =>\n `/leagues/${l.id}/standings/${l.scoring}`;\n\nconst linkToCPhase = (\n l: ILeagueEntry,\n phase: number,\n pageNewEntries: number,\n pageStandings: number\n) =>\n `/leagues/${l.id}/standings/c?phase=${phase}&page_new_entries=${pageNewEntries}&page_standings=${pageStandings}`;\n\nconst boldStyles = css`\n color: ${({ theme }) => theme.colors.white};\n font-weight: bold;\n`;\n\nconst BoldText = styled.span`\n ${boldStyles}\n`;\n\nconst StyledLink = styled(Link)`\n ${boldStyles}\n`;\n\nconst StyledTdFixedWidth = styled.td`\n width: 33%;\n`;\nconst RSSArticleTitle = styled.h4`\n padding-bottom: 0;\n margin-bottom: 0;\n font-size: 14px;\n line-height: 1;\n margin-top: ${({ theme }) => theme.space[2]};\n`;\n\nconst RSSArticle = styled.article`\n padding: ${({ theme }) => theme.space[2]};\n box-sizing: border-box;\n background-color: ${({ theme }) => theme.colors.white};\n text-decoration: none;\n color: #000;\n`;\nconst RSSArticleLink = styled.a`\n color: #000;\n text-decoration: none;\n`;\n\nconst RSSArticleFigure = styled.figure`\n width: 100%;\n height: auto;\n margin: 0;\n`;\n\nconst RSSArticleImg = styled.img`\n max-width: 100%;\n`;\n\ninterface ILeagueSummaryProps {\n title: React.ReactNode;\n leagues: ILeagueEntry[];\n}\n\nconst RSSArticleDesc = styled.p`\n margin-bottom: 0;\n`;\ninterface IRowProps {\n leagueEntry: ILeagueEntry;\n}\n\nconst MovementHead = styled.th`\n width: 16%;\n`;\n\nconst RankHead = styled.th`\n width: 30%;\n`;\n\nconst NameHead = styled.th`\n width: 54%;\n`;\n\nconst providerUrls: { [key: string]: string } = {\n 217: \"https://feeds.feedburner.com/Hif-Feed\",\n 993: \"https://www.mff.se/feed/\",\n 1987: \"https://www.hammarbyfotboll.se/feed/aktuelltrss/\",\n 3056: \"https://www.siriusfotboll.se/category/app/feed\",\n 244: \"https://ifkgoteborg.se/feed/\",\n 375: \"https://elfsborg.se/feed/indexpush\",\n 1959: \"https://bkhacken.se/feed\",\n 1406: \"https://dif.se/specialsidor/rss?rss=Nyheter-fran-dif-se\",\n 2596: \"https://oskfotboll.se/4.2e99a75414ca28e954a6834c/12.2e99a75414ca28e954a68368.portlet?state=rss&sv.contenttype=text/xml;charset=UTF-8\",\n 2466: \"https://falkenbergsff.se/feed/?rss2\",\n 483: \"https://ifknorrkoping.se/feed/\",\n 2594: \"https://kalmarff.se/feed/kff-rss/\",\n 5576: \"https://ostersundsfk.se/category/livekanalen/feed/\",\n 195: \"https://www.aikfotboll.se/rss/app\",\n 6810: \"https://www.boisfc.nu/category/herr/feed/\",\n 2360: \"https://allsvenskan.se/fantasy-feed\",\n 466: \"https://www.hbk.se/modules/rss/HBKRSS2.php\",\n 2961: \"https://degerforsif.se/feed/\",\n 2598: \"https://gifsundsvall.se/feed/\",\n 6210: \"https://ifkvarnamo.se/feed.xml\",\n 3055: \"https://afc-eskilstuna.se/team/MaVKByEo/news/feed.xml\",\n 10745: \"https://dalkurd.se/feed/\",\n 2352: \"https://allsvenskan.se/fantasy-feed\",\n 2945: \"https://allsvenskan.se/fantasy-feed\",\n 3058: \"https://jonkopingssodra.se/feed/\",\n 1556: \"https://landskronabois.se/feed/\",\n 10746: \"https://www.norrbyif.se/rss/?SID=6275\",\n 417: \"https://oisfotboll.se/nyheter/feed\",\n 1486: \"https://ostersif.se/a/c/oster-app.rss\",\n 3722: \"https://allsvenskan.se/fantasy-feed\",\n 1155: \"https://www.trelleborgsff.se/rss/nyheter\",\n 7132: \"https://allsvenskan.se/fantasy-feed\",\n 6211: \"https://www.vskfotboll.nu/feed/?rss\",\n 13216: \"https://allsvenskan.se/fantasy-feed\",\n 7121: \"https://allsvenskan.se/fantasy-feed\",\n 670: \"ttps://bpfotboll.se/category/app/feed\",\n 2597: \"https://www.gais.se/nyheter/rss.xml\",\n};\n\ninterface IPropsFromState {\n entry: IEntry | null;\n mine: Boolean;\n now: IEvent | null;\n privateClassicLeagues: ILeagueEntry[];\n privateH2HLeagues: ILeagueEntry[];\n publicClassicLeagues: ILeagueEntry[];\n publicH2HLeagues: ILeagueEntry[];\n systemClassicLeagues: ILeagueEntry[];\n teamsById: ITeamsById;\n totalPlayers: number;\n transfersState: ITransferState | null;\n fanLeagueRssObj: IContent | null;\n fanLeagueDetails: IFanLeagueDetails | null;\n entryPhaseStandings: IEntryPhaseStanding | undefined;\n phases: IPhase[];\n privateClassicCupLeagues: ILeagueEntry[];\n publicClassicCupLeagues: ILeagueEntry[];\n systemClassicCupLeagues: ILeagueEntry[];\n}\n\ninterface IPropsFromDispatch {\n fetchEntrySummary: (entryId: number) => void;\n fetchEntryPhaseStandings: (entryId: number, phaseId: number) => void;\n fetchMyTeam: () => void;\n fetchUrl: (url: string) => void;\n}\n\ninterface IOwnProps {\n entryId: number;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & IOwnProps & WithTranslation;\n\nclass Entry extends React.Component {\n public state: IState = { favTeamArticle: null };\n\n public componentDidMount() {\n const { entry, fanLeagueDetails } = this.props;\n\n if (entry && fanLeagueDetails) {\n // If entry && fanLeagueDetails - Fetch the RSS content for fan league team\n this.props.fetchUrl(providerUrls[fanLeagueDetails.team.code]);\n }\n\n if (this.props.mine && !this.props.transfersState) {\n this.props.fetchMyTeam();\n }\n if (!this.props.entry) {\n this.props.fetchEntrySummary(this.props.entryId);\n }\n if (entry && phaseSponsorLeague) {\n this.props.fetchEntryPhaseStandings(entry.id, phaseSponsorLeague);\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (prevProps.fanLeagueRssObj !== this.props.fanLeagueRssObj) {\n this.handleParseContent(this.props.fanLeagueRssObj);\n }\n }\n\n handleParseContent = async (rss: any) => {\n try {\n const rssFeed = await parser.parseString(rss.text);\n const lastItem = filterOnSSL(rssFeed.items)[0];\n this.setState({\n favTeamArticle: lastItem,\n });\n } catch (err) {}\n };\n\n public render() {\n const {\n entry,\n privateClassicLeagues,\n publicClassicLeagues,\n privateH2HLeagues,\n publicH2HLeagues,\n systemClassicLeagues,\n totalPlayers,\n transfersState,\n mine = false,\n now,\n t,\n fanLeagueDetails,\n entryPhaseStandings,\n phases,\n privateClassicCupLeagues,\n publicClassicCupLeagues,\n systemClassicCupLeagues,\n } = this.props;\n\n const { favTeamArticle } = this.state;\n const leagueSponsorName = t(\"leagueSponsorName\", \"154 League\");\n\n if (!entry) {\n return null;\n }\n // const kit = kitFromEntry(entry);\n\n // Split broadcaster leagues out from system classic leagues\n const broadcasterLeagues = getBroadcasterLeagues(systemClassicLeagues);\n const filteredSystemClassicLeagues = getFilteredSystemClassicLeagues(\n systemClassicLeagues,\n broadcasterLeagues\n );\n\n const hasCupLeagues =\n privateClassicCupLeagues.length > 0 ||\n publicClassicCupLeagues.length > 0 ||\n systemClassicCupLeagues.length > 0;\n\n // Split broadcaster cup leagues out from system classic cup leagues\n const broadcasterCupLeagues = getBroadcasterLeagues(\n systemClassicCupLeagues\n );\n const filteredSystemCupLeagues = getFilteredSystemClassicLeagues(\n systemClassicCupLeagues,\n broadcasterCupLeagues\n );\n const phaseObj = phases.filter((p) => p.id === phaseSponsorLeague);\n\n const LeagueSummary: React.FC = ({\n leagues,\n title,\n }) => (\n
\n \n \n \n \n \n \n {t(\"myTeam.leagueSummary.movement\", \"Movement\")}\n \n \n \n {t(\"myTeam.leagueSummary.rank\", \"Rank\")}\n \n \n {t(\"myTeam.leagueSummary.league\", \"League\")}\n \n \n \n \n {leagues.map((l) => (\n \n ))}\n \n \n
\n );\n\n const LeagueSummaryRow: React.FC = ({ leagueEntry }) => (\n \n \n \n \n \n {leagueEntry.entry_rank\n ? leagueEntry.entry_rank.toLocaleString()\n : null}\n \n \n \n {leagueEntry.name}\n \n \n \n );\n\n return (\n \n \n {entry.player_first_name} {entry.player_last_name}\n \n\n \n {entry.name}\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{t(\"myTeam.overallPoints\", \"Overall Points\")}:\n {entry.summary_overall_points}\n
{t(\"myTeam.overallRank\", \"Overall Rank\")}:\n \n {entry.summary_overall_rank &&\n entry.summary_overall_rank.toLocaleString()}\n \n
{t(\"myTeam.totalPlayers\", \"Total Players\")}:\n {totalPlayers.toLocaleString()}\n
{t(\"myTeam.roundPoints\", \"Round Points\")}:\n {entry.summary_event_points}\n
\n
\n \n \n {t(\"myTeam.viewRoundHistory\", \"View Round history\")}\n \n \n
\n
\n {entryPhaseStandings &&\n now &&\n phaseObj &&\n phaseObj[0].start_event <= now.id &&\n phaseObj[0].stop_event >= now.id && (\n \n \n \n \n \n \n \n \n \n \n \n {entryPhaseStandings.rank\n ? entryPhaseStandings.rank.toLocaleString()\n : null}\n \n \n l.id === entryPhaseStandings.league_id\n )[0],\n entryPhaseStandings.phase,\n 1,\n 1\n )}\n >\n {\" \"}\n {\n entry.leagues.classic.filter(\n (l) => l.id === entryPhaseStandings.league_id\n )[0].name\n }\n \n \n \n \n \n \n \n \n )}\n {fanLeagueDetails && favTeamArticle && (\n \n \n \n \n \n \n \n \n \n \n \n {favTeamArticle.enclosure && (\n \n )}\n \n {favTeamArticle.title}\n \n {favTeamArticle.description}\n \n \n \n \n \n \n {t(\"myTeam.viewFanLeague\", \"View {{team}} Fan League\", {\n team: fanLeagueDetails.team.name,\n })}\n \n \n \n \n )}\n \n \n \n\n \n \n {broadcasterLeagues.length > 0 && (\n \n )}\n {privateClassicLeagues.length > 0 && (\n \n )}\n {privateH2HLeagues.length > 0 && (\n \n )}\n {publicClassicLeagues.length > 0 && (\n \n )}\n {publicH2HLeagues.length > 0 && (\n \n )}\n \n \n \n {hasCupLeagues ? (\n <>\n {privateClassicCupLeagues.length > 0 && (\n \n )}\n {publicClassicCupLeagues.length > 0 && (\n \n )}\n {filteredSystemCupLeagues.length > 0 && (\n \n )}\n {broadcasterCupLeagues.length > 0 && (\n \n )}\n \n ) : (\n \n

\n {t(\"myTeam.none\", \"None of your leagues have a cup yet.\")}\n

\n
\n )}\n
\n
\n
\n
\n\n \n \n \n\n {mine && transfersState && (\n \n \n \n \n \n \n \n \n \n {transfersState.made}\n \n \n \n \n \n \n {entry.last_deadline_total_transfers +\n transfersState.made}\n \n \n \n \n
{t(\"myTeam.roundTransfers\", \"Round transfers\")}:
{t(\"myTeam.totalTransfers\", \"Total transfers\")}:
\n
\n \n \n {t(\"myTeam.viewTransferHistory\", \"View transfer history\")}\n \n \n \n \n \n \n \n \n \n {integerToMoney(transfersState.value, 10)}\n \n \n \n \n \n \n \n {integerToMoney(transfersState.bank, 10)}\n \n \n \n \n
{t(\"myTeam.squadValue\", \"Squad value\")}:
{t(\"myTeam.inTheBank\", \"In the bank\")}:
\n
\n
\n
\n )}\n {!mine && (\n \n \n \n {t(\"myTeam.transfersAndFinance\", \"Transfers and Finance\")}{\" \"}\n *\n \n }\n />\n \n

\n

    \n \n \n {t(\"myTeam.totalTransfers\", \"Total transfers\")}:\n \n \n {entry.last_deadline_total_transfers}\n \n \n
\n
\n \n \n {t(\"myTeam.viewTransferHistory\", \"View transfer history\")}\n \n \n \n
    \n \n \n {t(\"myTeam.squadValue\", \"Squad value\")}:\n \n \n {entry.last_deadline_value !== null &&\n entry.last_deadline_bank !== null\n ? `kr${integerToMoney(\n entry.last_deadline_value -\n entry.last_deadline_bank,\n 10\n )}`\n : \"-\"}\n \n \n \n \n {t(\"myTeam.inTheBank\", \"In the bank\")}:\n \n \n {entry.last_deadline_bank !== null\n ? `kr${integerToMoney(entry.last_deadline_bank, 10)}`\n : \"-\"}\n \n \n
\n \n * Values at the last deadline\n \n
\n
\n
\n )}\n {mine && (\n \n \n \n \n {mine && (\n \n \n }\n >\n {t(\"teamDetails\", \"Team details\")}\n \n \n \n }\n >\n {t(\"myTeam.userProfile\", \"User profile\")}\n \n \n \n )}\n \n \n \n )}\n
\n );\n }\n}\n\nexport { Entry as EntryTest };\n\ninterface IState {\n favTeamArticle: any | null;\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: IOwnProps\n): IPropsFromState => {\n const player = getPlayerData(state);\n const entryId = ownProps.entryId;\n\n const fanLeagueDetails = getFanLeagueDetails(state, entryId);\n const fanLeagueUrl = fanLeagueDetails\n ? providerUrls[fanLeagueDetails.team.code]\n : null;\n const fanLeagueRssObj = fanLeagueUrl ? getURL(state, fanLeagueUrl) : null;\n const entryPhaseStandings = getPhaseStandingsForEntryPhaseLeague(\n state,\n entryId,\n phaseSponsorLeague,\n leagueSponsorLeague\n );\n return {\n entry: getEntry(state, entryId),\n mine: Boolean(player && player.entry && player.entry === entryId),\n now: getCurrentEvent(state),\n privateClassicLeagues: getPrivateClassicLeaguesForEntry(state, entryId),\n privateClassicCupLeagues: getPrivateClassicCupLeaguesForEntry(\n state,\n entryId\n ),\n privateH2HLeagues: getPrivateH2HLeaguesForEntry(state, entryId),\n publicClassicLeagues: getPublicClassicLeaguesForEntry(state, entryId),\n publicH2HLeagues: getPublicH2HLeaguesForEntry(state, entryId),\n systemClassicLeagues: getSystemClassicLeaguesForEntry(state, entryId),\n teamsById: getTeamsById(state),\n transfersState: getTransferState(state),\n totalPlayers: getTotalPlayers(state),\n fanLeagueRssObj,\n fanLeagueDetails,\n entryPhaseStandings,\n phases: getPhases(state),\n publicClassicCupLeagues: getPublicClassicCupLeaguesForEntry(state, entryId),\n systemClassicCupLeagues: getSystemClassicCupLeaguesForEntry(state, entryId),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n fetchEntryPhaseStandings: (entryId: number, phaseId: number) =>\n dispatch(fetchEntryPhaseStandings(entryId, phaseId)),\n fetchMyTeam: () => dispatch(fetchMyTeam()),\n fetchUrl: (url) => dispatch(fetchURL(url)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(Entry)\n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport {\n getEntry,\n getEntryChipHistory,\n getEntryEventHistory,\n getEntrySeasonHistory,\n} from \"../core/store/entries/reducers\";\nimport {\n fetchEntryHistory,\n fetchEntrySummary,\n} from \"../core/store/entries/thunks\";\nimport {\n IEntry,\n IEntryChipHistory,\n IEntryEventHistory,\n IEntrySeasonHistory,\n} from \"../core/store/entries/types\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { formatRawAsLocalI18n } from \"../core/utils/datetime\";\nimport { integerToMoney } from \"../core/utils/money\";\nimport { dateLocales } from \"../i18n\";\nimport { ChipName, getChipName } from \"../utils/chips\";\nimport Entry from \"./Entry\";\nimport { Main, Secondary, Wrapper } from \"./Layout\";\nimport Link from \"./Link\";\nimport SubHeading from \"./SubHeading\";\nimport Table, { ScrollTable, THeadRadius } from \"./Table\";\nimport Title from \"./Title\";\nimport Panel from \"./Panel\";\nimport Movement from \"./leagues/Movement\";\n\ntype OwnProps = RouteComponentProps<{ entryId: string }>;\n\ninterface IPropsFromState {\n chipHistory: IEntryChipHistory[];\n entry: IEntry | null;\n eventHistory: IEntryEventHistory[];\n mine: boolean;\n seasonHistory: IEntrySeasonHistory[];\n}\n\ninterface IPropsFromDispatch {\n fetchEntryHistory: (entryId: number) => void;\n fetchEntrySummary: (entryId: number) => void;\n}\n\ntype Props = OwnProps & WithTranslation & IPropsFromState & IPropsFromDispatch;\n\nclass EntryHistory extends React.Component {\n public componentDidMount() {\n this.props.fetchEntryHistory(Number(this.props.entryId));\n this.props.fetchEntrySummary(Number(this.props.entryId));\n }\n\n public movementFromIndex(index: number): React.ReactNode {\n const thisRank = this.props.eventHistory[index].overall_rank;\n const lastRank =\n index === 0 ? null : this.props.eventHistory[index - 1].overall_rank;\n return ;\n }\n\n public render() {\n const { entry, i18n, t } = this.props;\n if (!entry) {\n return null;\n }\n return (\n \n
\n \n {t(\"entryHistory.title\", \"Entry History\")}\n \n\n \n \n \n {t(\"entryHistory.thisSeason\", \"This Season\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.eventHistory.map((eh, i) => (\n \n \n \n \n \n \n \n \n \n \n \n \n ))}\n \n
RDGPPBGRTMTCOPORkr#
\n \n RD{eh.event}\n \n {eh.points}{eh.points_on_bench}{eh.rank ? eh.rank.toLocaleString() : \"-\"}{eh.event_transfers}{eh.event_transfers_cost}{eh.total_points}\n {eh.overall_rank\n ? eh.overall_rank.toLocaleString()\n : \"-\"}\n {integerToMoney(eh.value, 10)}{this.movementFromIndex(i)}
\n
\n
\n
\n\n \n \n {t(\"entryHistory.chips\", \"Chips\")}\n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.chipHistory.map((ch, i) => (\n \n \n \n \n \n ))}\n \n
{t(\"entryHistory.date\", \"Date\")}{t(\"entryHistory.name\", \"Name\")}{t(\"entryHistory.active\", \"Active\")}
\n {formatRawAsLocalI18n(\n ch.time,\n dateLocales[i18n.language]\n )}\n {getChipName(ch.name as ChipName, t)}\n \n RD{ch.event}\n \n
\n
\n
\n
\n\n \n \n \n {t(\"entryHistory.previousSeasons\", \"Previous Seasons\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {this.props.seasonHistory.map((sh) => (\n \n \n \n \n \n ))}\n \n
{t(\"entryHistory.season\", \"Season\")}{t(\"entryHistory.points\", \"Points\")}{t(\"entryHistory.Rank\", \"Rank\")}
{sh.season_name}{sh.total_points}{sh.rank}
\n
\n
\n
\n
\n \n \n \n
\n );\n }\n}\n\nexport { EntryHistory as EntryHistoryTest };\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps) => {\n const entryId = Number(ownProps.entryId);\n const player = getPlayerData(state);\n return {\n chipHistory: getEntryChipHistory(state, entryId),\n entry: getEntry(state, entryId),\n eventHistory: getEntryEventHistory(state, entryId),\n mine: Boolean(player && player.entry && player.entry === entryId),\n seasonHistory: getEntrySeasonHistory(state, entryId),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntryHistory: (entryId: number) => dispatch(fetchEntryHistory(entryId)),\n fetchEntrySummary: (entryId: number) => dispatch(fetchEntrySummary(entryId)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(EntryHistory)\n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch } from \"react-redux\";\nimport { Box } from \"rebass\";\nimport { ThunkDispatch } from \"../core/store\";\nimport { unsubscribeEntry } from \"../core/store/entries/thunks\";\nimport Button from \"./Button\";\nimport Copy from \"./Copy\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Title from \"./Title\";\n\ntype OwnProps = RouteComponentProps<{ signature: string }>;\n\nconst EntryUnsubscribe: React.FC = ({ signature }) => {\n const { t } = useTranslation();\n const reduxDispatch = useDispatch();\n\n const [unsubscribeState, setUnsubscribeState] =\n React.useState<\"pre\" | \"ok\" | \"bad\">(\"pre\");\n\n const doUnsubscribe = () => {\n reduxDispatch(unsubscribeEntry(signature!))\n .then(() => setUnsubscribeState(\"ok\"))\n .catch(() => setUnsubscribeState(\"bad\"));\n };\n\n const body = {\n pre: (\n <>\n

\n {t(\n \"entryUnsubscribe.Explain\",\n \"Unsubscribe from all emails about your Fantasy Allsvenskan team.\"\n )}\n

\n {\n \n }\n \n ),\n bad: (\n

\n {t(\n \"entryUnsubscribe.bad\",\n \"There was a problem with the newsletter unsubscribe. Please try again or contact fantasy@allsvenskan.se.\"\n )}\n

\n ),\n ok: (\n

\n {t(\n \"entryUnsubscribe.ok\",\n \"You have successfully unsubscribed from the newsletter.\"\n )}\n

\n ),\n };\n\n return (\n \n
\n \n {t(\"entryUnsubscribe.Title\", \"Unsubscribe\")}\n \n {body[unsubscribeState]}\n
\n
\n );\n};\n\nexport default EntryUnsubscribe;\n","import { useState } from \"react\";\n\nexport function useFormHook(initialStateObject: T) {\n const [formState, updateFormState] = useState(initialStateObject);\n\n // event handler\n const updateState = (event: React.FormEvent) => {\n const { id, value } = event.currentTarget;\n const newFormState = {\n ...formState,\n [id]: value,\n };\n updateFormState(newFormState);\n };\n\n const updateCheckboxState = (event: React.FormEvent) => {\n const { id, checked } = event.currentTarget;\n const newFormState = {\n ...formState,\n [id]: checked,\n };\n updateFormState(newFormState);\n };\n\n // color change handler\n const updateColorState = (name: string, hex: string) => {\n const newFormState = {\n ...formState,\n [name]: hex,\n };\n updateFormState(newFormState);\n };\n\n const updateSelectState = (event: React.ChangeEvent) => {\n const { id, value } = event.currentTarget;\n const newFormState = {\n ...formState,\n [id]: value,\n };\n updateFormState(newFormState);\n };\n\n return [\n formState,\n updateState,\n updateCheckboxState,\n updateColorState,\n updateSelectState,\n ] as [\n typeof formState,\n typeof updateState,\n typeof updateCheckboxState,\n typeof updateColorState,\n typeof updateSelectState\n ];\n}\n\nexport default useFormHook;\n","import { hideVisually, size } from \"polished\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport theme from \"../theme\";\n\nexport const FieldWrap = styled.div`\n margin: ${theme.space[4]} 0;\n`;\n\nconst fieldStyles = {\n display: \"block\",\n width: \"100%\",\n padding: theme.space[2],\n border: theme.borders[0],\n color: theme.colors.white,\n fontFamily: theme.fonts.base,\n fontSize: \"16px\",\n\n \":hover, :focus\": {\n borderColor: `${theme.colors.grey}`,\n },\n};\n\ninterface ILabelProps {\n labelVisbility?: boolean;\n}\n\nexport const FieldLabel = styled.label`\n display: block;\n margin-bottom: ${theme.space[1]};\n color: ${theme.colors.white};\n font-size: 1.5rem;\n font-weight: bold;\n cursor: pointer;\n\n ${({ labelVisbility }) => labelVisbility === false && hideVisually};\n`;\n\nconst Hint = styled.span`\n margin-bottom: ${theme.space[1]};\n display: block;\n color: ${theme.colors.white};\n font-weight: 100;\n font-size: 14px;\n`;\n\ninterface InputProps {\n hasErrors?: boolean;\n required?: boolean;\n}\n\nexport const Input = styled.input`\n ${fieldStyles}\n border-radius: ${theme.radii[1]};\n color: ${theme.colors.black};\n ${(props) =>\n props.hasErrors &&\n css`\n border-color: ${theme.colors.error};\n\n &:focus {\n border-color: ${theme.colors.error};\n }\n `}\n box-sizing: border-box;\n`;\n\nexport const SelectWrap = styled.div`\n position: relative;\n z-index: ${theme.zIndex.select.wrap};\n border: ${theme.borders[0]};\n border-radius: ${theme.radii[1]};\n background-color: ${theme.colors.lighterBlue};\n\n :hover {\n border-color: ${theme.colors.grey};\n }\n\n ::after {\n content: \"\";\n background: url('data:image/svg+xml;utf8,')\n no-repeat;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n width: 14px;\n height: 8px;\n background-size: contain;\n }\n`;\n\n// Unable to extend SelectWrap for some reason\nconst InlineSelectWrap = styled.div`\n position: relative;\n display: inline-block;\n z-index: ${theme.zIndex.select.wrap};\n border: ${theme.borders[0]};\n border-radius: 5px;\n background-color: ${theme.colors.lighterBlue};\n\n :hover {\n border-color: ${theme.colors.grey};\n }\n\n ::after {\n content: \"\";\n background: url('data:image/svg+xml;utf8,')\n no-repeat;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n width: 14px;\n height: 8px;\n background-size: contain;\n }\n`;\n\nexport const Select = styled.select`\n ${fieldStyles}\n position: relative;\n z-index: ${theme.zIndex.select.select};\n border: 0;\n border-radius: 0;\n background: none;\n appearance: none;\n cursor: pointer;\n color: ${theme.colors.black};\n\n ::-ms-expand {\n display: none; /* [1] */\n }\n`;\n\nconst InlineSelect = styled(Select)`\n display: inline-block;\n width: auto;\n padding-right: 40px;\n`;\n\nconst SearchWrap = styled.div`\n position: relative;\n`;\n\nconst SearchInput = styled(Input)`\n /* stylelint-disable property-no-vendor-prefix */\n border-radius: ${theme.radii[1]};\n color: ${theme.colors.black};\n -webkit-appearance: textfield;\n`;\n\nconst SearchIcon = styled.span`\n ${size(\"17px\")}\n content: \"\";\n background-size: contain;\n position: absolute;\n right: ${(props) => props.theme.space[2]};\n top: 50%;\n transform: translateY(-50%);\n background-repeat: no-repeat;\n background-image: url('data:image/svg+xml;utf8,');\n`;\n\nexport const FieldCols = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n }\n`;\n\nexport const FieldCol = styled.div`\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex: 1;\n }\n`;\n\ninterface ILabelHintProps {\n hint?: React.ReactNode;\n id: string;\n label: React.ReactNode;\n required?: boolean;\n labelVisbility?: boolean;\n}\n\ninterface IFieldProps extends ILabelHintProps {\n name?: string;\n value?: string | number;\n}\n\ninterface IInputProps extends IFieldProps {\n maxLength?: number;\n onChange?: (e: React.ChangeEvent) => void;\n onBlur?: (e: React.ChangeEvent) => void;\n type?: string;\n disabled?: boolean;\n readonly?: boolean;\n hasErrors?: boolean;\n required?: boolean;\n}\n\nexport const LabelHint: React.FC = ({\n id,\n label,\n hint,\n required = true,\n labelVisbility = true,\n}) => (\n \n {`${label}${required ? \"*\" : \"\"}`}\n {hint && {hint}}\n \n);\n\nconst InlineLabel: React.FC = ({\n id,\n label,\n required = true,\n labelVisbility = true,\n}) => (\n \n {`${label}${required && \"*\"}`}\n \n);\n\nexport const InputField: React.FC = ({\n hint,\n id,\n label,\n maxLength,\n name,\n onBlur,\n onChange,\n type,\n value,\n required = true,\n hasErrors,\n disabled = false,\n readonly = false,\n labelVisbility = true,\n}) => (\n <>\n \n \n \n);\n\ninterface ISearchProps extends IFieldProps {\n onChange?: (e: React.ChangeEvent) => void;\n}\n\nexport const SearchField: React.FC = ({\n hint,\n id,\n label,\n name,\n onChange,\n required = true,\n value,\n ...rest\n}) => (\n <>\n \n \n \n \n \n \n);\n\ninterface INumberProps extends IFieldProps {\n ariaValueMax?: number;\n ariaValueMin?: number;\n ariaValueNow?: number;\n max?: string | number;\n min?: string | number;\n onChange?: (e: React.ChangeEvent) => void;\n step?: string | number;\n}\n\nexport const NumberField: React.FC = ({\n ariaValueMax,\n ariaValueMin,\n ariaValueNow,\n hint,\n id,\n label,\n max = \"\",\n min = \"\",\n name,\n onChange,\n step = \"\",\n value,\n required = true,\n}) => (\n <>\n \n \n \n);\n\nconst Checkbox = styled.input`\n ${hideVisually()};\n\n :hover + span::before {\n border-color: ${(props) => props.theme.colors.blueDark};\n background-image: url('data:image/svg+xml;utf8,');\n }\n\n :focus + span {\n outline: -webkit-focus-ring-color auto 5px;\n }\n\n :checked + span::before {\n background-color: ${(props) => props.theme.colors.secondary};\n background-image: url('data:image/svg+xml;utf8,');\n }\n`;\n\ninterface ICheckboxText {\n hasLogo?: boolean;\n}\n\nconst CheckboxText = styled.span`\n display: inline-block;\n position: relative;\n padding: 6px 0 6px 42px;\n line-height: 1.6;\n\n ::before {\n content: \"\";\n position: absolute;\n top: 50%;\n left: 0;\n width: 30px;\n height: 30px;\n transform: translateY(-50%);\n border: ${theme.borders[0]};\n background-repeat: no-repeat;\n background-size: contain;\n vertical-align: middle;\n }\n\n ${({ hasLogo }) =>\n hasLogo &&\n css`\n display: flex;\n align-items: center;\n `}\n`;\n\ninterface ICheckboxProps {\n checked?: boolean;\n id: string;\n label: React.ReactNode;\n name?: string;\n onChange?: (e: React.FormEvent) => void;\n logo?: any;\n hideLabel?: boolean;\n}\n\nconst LogoImg = styled.img`\n height: 29px;\n width: auto;\n max-width: 100%;\n`;\n\nexport const CheckboxField: React.SFC = ({\n id,\n onChange,\n label,\n checked,\n logo,\n hideLabel = false,\n}) => {\n let labelStyles = {};\n if (hideLabel) {\n labelStyles = hideVisually;\n }\n\n return (\n
\n \n
\n );\n};\n\nCheckboxField.defaultProps = {\n checked: false,\n};\n\nexport const Fieldset = styled.fieldset`\n padding: 0;\n border: 0;\n`;\n\ninterface ILabelLegendProps {\n children: React.ReactNode;\n legend: string;\n}\n\nexport const LabelLegend: React.SFC = ({\n children,\n legend,\n}) => (\n
\n \n {legend}\n \n {children}\n
\n);\n\nconst Radio = styled.input`\n ${hideVisually()};\n\n &:hover + span::before {\n background-color: #e5e5e5;\n box-shadow: 0 0 0 0.2rem ${(props) => props.theme.colors.blueDarker1};\n }\n\n &:focus + span {\n outline: -webkit-focus-ring-color auto 5px;\n }\n\n &:checked + span::before {\n box-shadow: 0 0 0 0.2rem ${(props) => props.theme.colors.blueDarker1};\n background-color: ${(props) => props.theme.colors.blue};\n }\n`;\n\nconst RadioText = styled.span`\n display: inline-block;\n position: relative;\n padding: 6px 0 6px 42px;\n line-height: 1.6;\n\n &::before {\n /* [1] */\n display: inline-block;\n position: absolute;\n top: 50%;\n left: 0;\n width: 23px;\n height: 23px;\n transform: translateY(-50%);\n border: 5px solid white;\n border-radius: 50%;\n box-shadow: 0 0 0 2px #e5e5e5;\n content: \"\";\n vertical-align: middle;\n }\n`;\n\nconst StyledFieldFeedback = styled.p`\n color: ${theme.colors.error};\n margin-top: 0;\n`;\n\ninterface IOptions {\n checked?: boolean;\n id: string;\n label: string;\n onChange?: (e: React.FormEvent) => void;\n value: string;\n}\ninterface IRadioGroupProps {\n legend: React.ReactNode;\n name: string;\n options: IOptions[];\n}\n\nexport const RadioGroup: React.SFC = ({\n legend,\n name,\n options,\n}) => (\n
\n \n {legend}\n \n {options.map((o) => (\n
\n \n
\n ))}\n
\n);\n\ninterface ISelectProps extends IFieldProps {\n children: React.ReactNode;\n onBlur?: (e: React.ChangeEvent) => void;\n onChange?: (e: React.ChangeEvent) => void;\n required?: boolean;\n labelVisbility?: boolean;\n}\n\nexport const SelectField: React.FC = ({\n children,\n hint,\n id,\n label,\n onBlur,\n onChange,\n value,\n labelVisbility = true,\n required = true,\n}) => (\n <>\n \n \n \n \n \n);\n\nexport const InlineSelectField: React.FC = ({\n children,\n id,\n label,\n onChange,\n value,\n}) => (\n <>\n \n \n \n {children}\n \n \n \n);\n\ninterface IFieldFeedback {\n children: React.ReactNode;\n}\n\nexport const FieldFeedback: React.FC = ({ children }) => (\n {children}\n);\n","var _circle, _circle2, _rect;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgInfo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 10,\n fill: \"white\"\n })), _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 4,\n r: 2,\n fill: \"#0E204D\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 8,\n y: 8,\n width: 4,\n height: 10,\n rx: 2,\n fill: \"#0E204D\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.38eb0958.svg\";\nexport { ForwardRef as ReactComponent };","import { navigate } from \"@reach/router\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport useFormHook from \"../core/hooks/useFormHook\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport { getEntry } from \"../core/store/entries/reducers\";\nimport { fetchEntrySummary, updateEntry } from \"../core/store/entries/thunks\";\nimport { IEntry, IUpdateEntryData } from \"../core/store/entries/types\";\nimport { getEvents } from \"../core/store/events/reducers\";\nimport { IEvent } from \"../core/store/events/types\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { ILoggedInPlayer, IPlayer } from \"../core/store/player/types\";\nimport { getTeams } from \"../core/store/teams/reducers\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport { formatRawAsLocalI18n } from \"../core/utils/datetime\";\nimport { dateLocales } from \"../i18n\";\nimport Button from \"./Button\";\nimport {\n CheckboxField,\n FieldWrap,\n InputField,\n SelectField,\n} from \"./FieldRenderers\";\nimport { Main, Wrapper } from \"./Layout\";\nimport SubHeading from \"./SubHeading\";\nimport Title from \"./Title\";\n\nexport type ShirtValues = \"plain\" | \"stripes\" | \"hoops\";\n\nexport type SockValues = \"plain\" | \"hoops\";\n\nexport type SponsorValues =\n | \"none\"\n | \"pl-kicks\"\n | \"pl-primary-stars\"\n | \"rainbow-laces\"\n | \"sky-ocean-rescue\"\n | \"no-racism\";\n\ntype KitState = {\n \"ism-sponsor-logo\": SponsorValues;\n \"ism-shirt-style\": ShirtValues;\n \"ism-sock-style\": SockValues;\n \"ism-shirt-color\": string;\n \"ism-shirt-style-color\": string;\n \"ism-sleeve-color\": string;\n \"ism-short-color\": string;\n \"ism-sock-color\": string;\n \"ism-sock-style-color\": string;\n};\n\nexport type FormState = KitState & {\n \"ism-team-name\": string;\n \"ism-fav-club\": number;\n \"ism-email\": boolean;\n \"ism-language\": string;\n};\n\nexport const initState = (entry: IEntry, player: IPlayer): FormState => ({\n \"ism-shirt-style\": \"plain\",\n \"ism-sponsor-logo\": \"none\",\n \"ism-sock-style\": \"plain\",\n \"ism-shirt-color\": \"#E1E1E1\",\n \"ism-sleeve-color\": \"#E1E1E1\",\n \"ism-short-color\": \"#E1E1E1\",\n \"ism-sock-color\": \"#E1E1E1\",\n \"ism-shirt-style-color\": \"#E1E1E1\",\n \"ism-sock-style-color\": \"#E1E1E1\",\n \"ism-team-name\": entry.name,\n \"ism-fav-club\": entry.favourite_team || -1,\n \"ism-email\": player.entry_email ? true : false,\n \"ism-language\": player.entry_language || \"\",\n});\n\ntype Props = {\n entry: IEntry;\n player: IPlayer;\n events: IEvent[];\n teams: ITeam[];\n updateEntry: (data: IUpdateEntryData) => void;\n};\n\nconst EntryUpdate: React.FunctionComponent = ({\n entry,\n events,\n player,\n teams,\n updateEntry,\n}) => {\n const [\n formState,\n updateState,\n updateCheckboxState,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateColorState,\n updateSelectState,\n ] = useFormHook(initState(entry, player));\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n const fave = Number(formState[\"ism-fav-club\"]);\n updateEntry({\n name: formState[\"ism-team-name\"],\n kit: \"\",\n favourite_team: fave === -1 ? null : fave,\n email: formState[\"ism-email\"],\n language: formState[\"ism-language\"],\n });\n };\n // filterTeams\n const allsvenskan = teams\n .filter((team) => team.unavailable === false)\n .sort((a, b) => a.name.localeCompare(b.name));\n // First Division\n const firstDivision = teams\n .filter((team) => team.unavailable === true)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n const { i18n, t } = useTranslation();\n const languages: { [key: string]: string } = {\n en: t(\"entryUpdate.languageEn\", \"English\"),\n sv: t(\"entryUpdate.languageSv\", \"Swedish\"),\n };\n return (\n \n
\n \n
\n {t(\"entryUpdate.myDetails\", \"My Details\")}\n \n {t(\"entryUpdate.teamDetails\", \"Team Details\")}\n \n \n \n \n \n

\n {t(\n \"entryUpdate.p1\",\n \"Please think carefully before entering your team name. Teams with names that are deemed inappropriate or offensive may result in your account being deleted. Please refer to the Terms & Conditions of entry for more information.\"\n )}\n

\n
\n \n {t(\"entryUpdate.favouriteClubHeading\", \"Favourite Club\")}\n \n \n \n \n\n \n {allsvenskan.map((tm) => (\n \n {tm.name}\n \n ))}\n \n \n {firstDivision.map((tm) => (\n \n {tm.name}\n \n ))}\n \n\n \n {t(\"createEntryDialog.none\", \"None\")}\n \n \n \n \n

\n {t(\n \"entryUpdate.p2\",\n \"Choose your favourite Allsvenskan club if you would like to be entered into a supporters league. If you do not select an option before {{ firstRoundDeadline }}, you will not be entered into a supporters league.\",\n {\n firstRoundDeadline: formatRawAsLocalI18n(\n events[0].deadline_time,\n dateLocales[i18n.language]\n ),\n }\n )}\n

\n
\n

\n {t(\n \"entryUpdate.newsletter.title\",\n \"Subscribe To Email Newsletters\"\n )}\n

\n \n \n \n \n \n {Object.keys(languages).map((key, index) => (\n \n {languages[key]}\n \n ))}\n \n \n \n
\n
\n
\n
\n );\n};\n\nexport { EntryUpdate as EntryUpdateTest };\n\ninterface IPropsFromState {\n entry: IEntry | null;\n events: IEvent[];\n player: ILoggedInPlayer;\n teams: ITeam[];\n}\n\ninterface IPropsFromDispatch {\n fetchEntry: (entryId: number) => void;\n updateEntry: (data: IUpdateEntryData) => void;\n}\n\ntype FetcherProps = IPropsFromState & IPropsFromDispatch;\n\nclass EntryUpdateFetcher extends React.Component {\n public componentDidMount() {\n this.props.fetchEntry(Number(this.props.player.entry));\n }\n public render() {\n return this.props.entry ? (\n \n ) : null;\n }\n}\n\nconst mapStateToProps = (state: RootState) => {\n const player = getPlayerData(state) as ILoggedInPlayer; // enforced by EntryRoute\n return {\n player,\n entry: getEntry(state, player.entry),\n events: getEvents(state),\n teams: getTeams(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntry: (entryId: number) => dispatch(fetchEntrySummary(entryId)),\n updateEntry: async (data: IUpdateEntryData) => {\n await dispatch(updateEntry(data))\n .then(() => navigate(\"/my-team\"))\n .catch(() => {});\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EntryUpdateFetcher);\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport * as actions from \"./actions\";\nimport {\n filterElements,\n getElementControls,\n getElements,\n getElementTypeFilterOptions,\n maxCostFromElements,\n} from \"./reducers\";\nimport { IElementControls } from \"./types\";\nimport { getWatched } from \"../player/reducers\";\n\nexport const updateElementControlsAndMaxCost =\n (controls: IElementControls): ThunkResult =>\n (dispatch, getState) => {\n const elements = getElements(getState());\n dispatch(\n actions.updateElementControls({\n ...controls,\n maxCost: maxCostFromElements(\n filterElements(elements, controls.filter, getWatched(getState()))\n ),\n })\n );\n };\n\nexport const updateElementTypeControl =\n (elementTypeId: number): ThunkResult =>\n (dispatch, getState) => {\n dispatch(\n updateElementControlsAndMaxCost({\n ...getElementControls(getState()),\n filter: getElementTypeFilterOptions(getState())[elementTypeId - 1]\n .value,\n })\n );\n };\n\nexport const getElementSummary =\n (elementId: number): ThunkResult =>\n async (dispatch) => {\n try {\n await apiGet(\n `element-summary/${elementId}/`,\n dispatch,\n actions.fetchElementSummary,\n { id: elementId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const showElementSummary =\n (elementId: number): ThunkResult =>\n async (dispatch) => {\n dispatch(actions.elementDialogShow(elementId));\n dispatch(getElementSummary(elementId));\n };\n\nexport const fetchEventLive =\n (eventId: number): ThunkResult =>\n async (dispatch) => {\n try {\n await apiGet(\n `event/${eventId}/live/`,\n dispatch,\n actions.fetchElementEventData,\n {\n id: eventId,\n }\n );\n } catch (e) {\n return;\n }\n };\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { IFixture, IFixtureAllStats } from \"./types\";\n\n// Action Creators\nexport const addFixturesForEvent = createAsyncAction(\n \"ADD_FIXTURES_EVENT_START\",\n \"ADD_FIXTURES_EVENT_SUCCESS\",\n \"ADD_FIXTURES_EVENT_FAILURE\"\n)();\n\nexport const addFixtures = createAsyncAction(\n \"ADD_FIXTURES_START\",\n \"ADD_FIXTURES_SUCCESS\",\n \"ADD_FIXTURES_FAILURE\"\n)();\n\nexport const addAllStatsForFixture = createAsyncAction(\n \"ADD_ALL_STATS_FOR_FIXTURE_START\",\n \"ADD_ALL_STATS_FOR_FIXTURE_SUCCESS\",\n \"ADD_ALL_STATS_FOR_FIXTURE_FAILURE\"\n)();\n","import { startOfDay } from \"date-fns\";\nimport { utcToZonedTime } from \"date-fns-tz\";\nimport { isEqual } from \"lodash\";\nimport { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport { IElement } from \"../elements/types\";\nimport { getNextEvent } from \"../events/reducers\";\nimport { getTeamsById } from \"../teams/reducers\";\nimport * as actions from \"./actions\";\nimport {\n FixturesByEvent,\n IFixture,\n IFixtureGroup,\n IFixturesForEventByTeam,\n IGroupedFixturesByEvent,\n IState,\n} from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byEvent: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addFixturesForEvent.success):\n return {\n ...state,\n [action.payload.event]: action.payload.data,\n };\n case getType(actions.addFixtures.success): {\n const eventSlice: FixturesByEvent = {};\n action.payload.forEach((f) => {\n if (f.event) {\n if (!eventSlice[f.event]) {\n eventSlice[f.event] = [];\n }\n eventSlice[f.event].push(f);\n }\n });\n return {\n ...state,\n ...eventSlice,\n };\n }\n default:\n return state;\n }\n },\n allStatsById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addAllStatsForFixture.success):\n return {\n ...state,\n [action.payload.fixture]: action.payload.data,\n };\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getFixturesByEvent = (state: RootState) => state.fixtures.byEvent;\n\nexport const getGroupedFixturesByEvent = (state: RootState) => {\n const fixturesByEvent = getFixturesByEvent(state);\n const groupedFixturesByEvent: IGroupedFixturesByEvent = {};\n\n Object.keys(fixturesByEvent).forEach((eventId) => {\n const fixtures = fixturesByEvent[eventId];\n const groups: IFixtureGroup[] = [];\n let currentGroup: IFixtureGroup | null = null;\n fixtures.forEach((fixture: IFixture) => {\n if (fixture.kickoff_time) {\n const kickoffDate = new Date(fixture.kickoff_time);\n const fixtureDate = startOfDay(\n utcToZonedTime(\n kickoffDate,\n Intl.DateTimeFormat().resolvedOptions().timeZone\n )\n );\n if (currentGroup == null || !isEqual(fixtureDate, currentGroup.date)) {\n currentGroup = {\n date: fixtureDate,\n fixtures: [],\n };\n groups.push(currentGroup);\n }\n currentGroup.fixtures.push({ kickoffDate, ...fixture });\n }\n });\n groupedFixturesByEvent[eventId] = groups;\n });\n return groupedFixturesByEvent;\n};\n\nexport const getFixturesForEvent = (state: RootState, eventId: number) =>\n state.fixtures.byEvent[eventId] || [];\n\nexport const getFixturesForEventById = (state: RootState, eventId: number) => {\n const fixtures = getFixturesForEvent(state, eventId);\n if (!fixtures.length) {\n return null;\n }\n return fixtures.reduce((memo, f) => ({ ...memo, [f.id]: f }), {});\n};\n\nexport const getFixturesForEventByTeam = (\n state: RootState,\n eventId: number\n) => {\n const data: IFixturesForEventByTeam = Object.keys(getTeamsById(state)).reduce(\n (memo, id) => ({\n ...memo,\n [id]: [],\n }),\n {}\n );\n getFixturesForEvent(state, eventId).forEach((f) => {\n data[f.team_h].push(f);\n data[f.team_a].push(f);\n });\n return data;\n};\n\nexport const getFixturesForNextEventByTeam = (state: RootState) => {\n const nextEvent = getNextEvent(state);\n return getFixturesForEventByTeam(state, nextEvent ? nextEvent.id : 0);\n};\n\nexport const getElementFixtureOpponent = createSelector(\n [\n (state) => state.teams.byId,\n (_: RootState, element: IElement) => element,\n (_: RootState, __: IElement, fixture) => fixture,\n ],\n (teamsById, element, fixture) => {\n const isHome = element.team === fixture.team_h;\n const neutralIds: number[] = [];\n const suffix =\n neutralIds.indexOf(fixture.id) > -1 ? \"(N)\" : isHome ? \"(H)\" : \"(A)\";\n const oppTeam = isHome\n ? teamsById[fixture.team_a]\n : teamsById[fixture.team_h];\n return `${oppTeam.short_name} ${suffix}`;\n }\n);\n\nexport const getElementEventOpponents = (\n state: RootState,\n element: IElement,\n fixtures: IFixture[]\n) =>\n fixtures.map((f: IFixture) => getElementFixtureOpponent(state, element, f));\n\nexport const getAllStatsForFixture = (state: RootState, fixtureId: number) =>\n state.fixtures.allStatsById[fixtureId] || null;\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport * as actions from \"./actions\";\nimport { IFixture, IFixtureAllStats } from \"./types\";\n\nexport const fetchFixtures =\n (eventId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `fixtures/?event=${eventId}`,\n dispatch,\n actions.addFixturesForEvent,\n { event: eventId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchFixturesFuture =\n (): ThunkResult> => async (dispatch) => {\n try {\n await apiGet(\n `fixtures/?future=1`,\n dispatch,\n actions.addFixtures\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchFixtureAllStats =\n (fixtureId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `fixture/${fixtureId}/stats/`,\n dispatch,\n actions.addAllStatsForFixture,\n { fixture: fixtureId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchFixturesPhase =\n (phaseId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `fixtures/?phase=${phaseId}`,\n dispatch,\n actions.addFixtures\n );\n } catch (e) {\n return;\n }\n };\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState } from \"../core/store\";\nimport { IGroupFixture } from \"../core/store/fixtures/types\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport { ITeamsById } from \"../core/store/teams/types\";\nimport Badge from \"./Badge\";\nimport { formatRawAsISO } from \"../core/utils/datetime\";\nimport { formatInTimeZone } from \"date-fns-tz\";\n\nconst StyledFixture = styled.div`\n overflow: auto;\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n\n ${(props) =>\n props.isOpen &&\n css`\n padding: 0px;\n background-color: ${({ theme }) => theme.colors.yellow};\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n position: relative;\n }\n`;\n\nconst Teams = styled.div`\n display: flex;\n margin: 0.7rem 0;\n gap: 0.3rem;\n align-items: center;\n`;\n\nconst Team = styled.div`\n flex: 1 1 calc(50% - (6.6rem / 2));\n text-align: left;\n`;\n\nconst TeamH = styled(Team)`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n text-align: right;\n`;\n\nconst TeamA = styled(Team)`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n`;\n\nconst TeamName = styled.abbr`\n vertical-align: middle;\n font-family: ${({ theme }) => theme.fonts.base};\n font-weight: bold;\n font-size: 18px;\n color: ${({ theme }) => theme.colors.white};\n text-decoration: none;\n\n ${(props) =>\n props.isOpen &&\n css`\n color: ${({ theme }) => theme.colors.black};\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n &:after {\n content: attr(title);\n }\n span {\n display: none;\n }\n }\n`;\n\nconst FixtureBadge = styled.div`\n display: inline-block;\n margin-right: 0.6rem;\n margin-left: 0.6rem;\n width: 40px;\n height: 40px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-right: 0.8rem;\n margin-left: 0.8rem;\n }\n`;\n\nconst FixtureKOTime = styled.time`\n flex: 1 0 6.6rem;\n display: inline-block;\n margin: 0 ${({ theme }) => `${theme.space[2]}`};\n padding: 0.9rem ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n line-height: 1.1;\n text-align: center;\n color: ${({ theme }) => theme.colors.black};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n font-weight: bold;\n background-color: ${({ theme }) => theme.colors.white};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: 1rem 1.6rem 0.7rem;\n font-size: ${({ theme }) => theme.fontSizes[3]};\n }\n`;\n\nconst FixtureScore = styled.div`\n flex: 1 0 6.6rem;\n display: flex;\n margin: 0 ${({ theme }) => theme.space[2]};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst FixtureScoreTeam = styled.span`\n flex: 1;\n padding: 0 ${({ theme }) => theme.space[2]};\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n font-weight: bold;\n line-height: 1;\n text-align: center;\n\n :first-child {\n border-right: ${({ theme }) => theme.borders[0]};\n }\n`;\n\ninterface IPropsFromState {\n teamsById: ITeamsById;\n}\n\ninterface IOwnProps {\n fixture: IGroupFixture;\n}\n\ninterface IStyledFixtureProps {\n isOpen?: boolean;\n}\n\ntype Props = IPropsFromState & IOwnProps & IStyledFixtureProps;\n\nconst Fixture: React.FC = ({ fixture, teamsById, isOpen }) => {\n return (\n \n \n \n \n {teamsById[fixture.team_h].short_name}\n \n \n \n \n \n {fixture.started && fixture.team_h_score !== null ? (\n \n {fixture.team_h_score}\n {fixture.team_a_score}\n \n ) : fixture.kickoff_time ? (\n \n {formatInTimeZone(\n fixture.kickoffDate,\n Intl.DateTimeFormat().resolvedOptions().timeZone,\n \"HH:mm\"\n )}\n \n ) : (\n -\n )}\n \n \n \n \n \n {teamsById[fixture.team_a].short_name}\n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n teamsById: getTeamsById(state),\n});\n\nexport default connect(mapStateToProps)(Fixture);\n","import styled from \"styled-components/macro\";\n\nexport const Pager = styled.div`\n display: flex;\n`;\n\nexport const EventPager = styled.div`\n display: flex;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-top: -4.5rem;\n }\n`;\n\nexport const PagerItem = styled.div`\n flex: 1;\n padding: 0 ${(props) => props.theme.space[2]};\n`;\n\nexport const PagerButton = styled.div`\n flex-basis: 50%;\n padding: 0 ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: 33%;\n }\n`;\n\nexport const PagerButtonNext = styled(PagerButton)`\n margin-left: auto;\n`;\n\nexport const PagerHeading = styled.h3`\n margin: ${({ theme }) => theme.space[2]};\n font-size: 1.4rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 2rem;\n text-align: center;\n margin: 0 33%;\n padding: 1.1rem 1rem;\n }\n`;\n\nexport const PagerItemNext = styled(PagerItem)`\n margin-left: auto;\n text-align: right;\n`;\n","import { format } from \"date-fns\";\nimport * as React from \"react\";\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport { getElementStatsByIdentifier } from \"../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../core/store/element-stats/types\";\nimport { getElementsById } from \"../core/store/elements/reducers\";\nimport { showElementSummary } from \"../core/store/elements/thunks\";\nimport { IElementsById } from \"../core/store/elements/types\";\nimport {\n getCurrentEvent,\n getEventsById,\n getNextEvent,\n} from \"../core/store/events/reducers\";\nimport { IEvent, IEventsById } from \"../core/store/events/types\";\nimport { getGroupedFixturesByEvent } from \"../core/store/fixtures/reducers\";\nimport { fetchFixtures } from \"../core/store/fixtures/thunks\";\nimport {\n IFixtureStat,\n IFixtureStats,\n IGroupedFixturesByEvent,\n} from \"../core/store/fixtures/types\";\nimport { formatRawAsISO, formatRawAsLocalI18n } from \"../core/utils/datetime\";\nimport { dateLocales } from \"../i18n\";\nimport Button from \"./Button\";\nimport Fixture from \"./Fixture\";\nimport { Pager, PagerButton, PagerButtonNext } from \"./Pager\";\nimport { ControlArrowLeft, ControlArrowRight } from \"./icons/Arrows\";\n\nconst BackgroundColorWrapper = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst Deadline = styled.h2`\n margin: ${({ theme }) => theme.space[2]};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n text-align: center;\n font-family: ${({ theme }) => theme.fonts.impact};\n text-transform: uppercase;\n font-weight: 600;\n`;\n\nconst Heading = styled.h3`\n margin: ${({ theme }) => theme.space[2]};\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2.4rem;\n font-family: ${({ theme }) => theme.fonts.impact};\n text-transform: uppercase;\n`;\n\nconst Note = styled.p`\n text-align: center;\n`;\n\nconst FixtureDay = styled.h4`\n margin: 0;\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[2]}`};\n font-size: ${({ theme }) => theme.fontSizes[1]};\n text-align: center;\n`;\n\nconst FixtureTime = styled.time`\n font-weight: bold;\n color: ${({ theme }) => theme.colors.white};\n`;\n\nconst FixtureList = styled.ul`\n margin: 0;\n padding: 0;\n font-size: 1.1rem;\n list-style: none;\n`;\n\nconst FixtureItem = styled.li`\n margin-bottom: ${({ theme }) => theme.space[2]};\n padding: 0;\n font-size: 1.1rem;\n list-style: none;\n`;\n\nconst FixtureButton = styled.button`\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n text-align: left;\n cursor: pointer;\n\n ${(props) =>\n props.isOpen &&\n css`\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n `}\n`;\n\nconst FixtureStatsWrap = styled.div`\n display: ${(props) => (props.isOpen ? \"block\" : \"none\")};\n padding: ${({ theme }) => `${theme.space[2]} 5%`};\n border-bottom-left-radius: ${({ theme }) => theme.radii[2]};\n border-bottom-right-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n padding-right: 15%;\n padding-left: 15%;\n }\n`;\n\nconst FixtureStatsOuterList = styled.ul`\n list-style: none;\n padding: 0;\n`;\n\nconst FixtureStat = styled.li`\n margin-bottom: ${({ theme }) => theme.space[4]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: white;\n`;\n\nconst FixtureStatHeading = styled.h5`\n margin: 0;\n padding: ${({ theme }) => theme.space[1]} ${({ theme }) => theme.space[2]};\n border-bottom: ${({ theme }) => theme.borders[0]};\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.black};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n text-align: center;\n`;\n\nconst FixtureStatBody = styled.div`\n display: flex;\n padding-top: ${({ theme }) => theme.space[2]};\n padding-bottom: ${({ theme }) => theme.space[2]};\n`;\n\nconst FixtureStatList = styled.ul`\n flex: 1;\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n\n :first-child {\n border-right: 1px dotted ${({ theme }) => theme.colors.black};\n text-align: right;\n }\n`;\n\nconst FixtureStatItem = styled.li`\n padding-top: ${({ theme }) => theme.space[1]};\n padding-bottom: ${({ theme }) => theme.space[1]};\n border-bottom: 1px solid #e2e2e2;\n color: ${({ theme }) => theme.colors.black};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n list-style: none;\n\n :last-child {\n border-bottom: 0;\n }\n`;\n\nconst ElementButton = styled.button`\n background-color: transparent;\n padding: 0;\n border: 0;\n color: ${({ theme }) => theme.colors.black};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n\n :hover {\n text-decoration: underline;\n cursor: pointer;\n }\n`;\n\ninterface IFixtureStatsForTeamProps {\n elementsById: IElementsById;\n showElementDialog: (elementId: number) => void;\n stats: IFixtureStat[];\n}\n\nconst FixtureStatsForTeam: React.FC = ({\n elementsById,\n showElementDialog,\n stats,\n}) => (\n \n {stats\n .filter((fs) => elementsById[fs.element])\n .map((fs) => (\n \n showElementDialog(fs.element)}>\n {elementsById[fs.element].web_name}\n {\" \"}\n ({fs.value})\n \n ))}\n \n);\n\ninterface IFixtureStatsProps {\n elementsById: IElementsById;\n showElementDialog: (elementId: number) => void;\n stats: IFixtureStats[];\n statsByIdentifier: Record;\n}\n\ninterface IStyledFixtureStatsProps {\n isOpen?: boolean;\n}\n\ntype FixtureStatProps = IFixtureStatsProps & IStyledFixtureStatsProps;\n\nconst FixtureStats: React.FC = ({\n elementsById,\n isOpen = false,\n showElementDialog,\n stats,\n statsByIdentifier,\n}) => {\n // Our render stats should contain only stats with data and a maximum\n // of 5 per team of BPS\n const renderStats = stats\n .filter((stat) => stat.h.length || stat.a.length)\n .map((stat) =>\n stat.identifier === \"bps\"\n ? {\n identifier: stat.identifier,\n h: stat.h.slice(0, 5),\n a: stat.a.slice(0, 5),\n }\n : stat\n );\n return (\n \n \n {renderStats.map((stat) => (\n \n \n {statsByIdentifier[stat.identifier].label}\n \n \n \n \n \n \n ))}\n \n \n );\n};\n\ninterface IOwnProps {\n eventId?: number;\n useLinks?: boolean;\n}\n\ninterface IPropsFromDispatch {\n fetchFixturesForEvent: (eventId: number) => void;\n showElementDialog: (elementId: number) => void;\n}\n\ninterface IPropsFromState {\n currentEvent: IEvent | null;\n elementsById: IElementsById;\n eventsById: IEventsById;\n groupedFixturesByEvent: IGroupedFixturesByEvent;\n nextEvent: IEvent | null;\n statsByIdentifier: Record;\n}\n\ntype Props = IOwnProps & WithTranslation & IPropsFromDispatch & IPropsFromState;\n\ninterface IState {\n eventId: number;\n isOpen: Record;\n}\n\ndeclare global {\n interface Window {\n postscribe: any;\n }\n}\n\nconst UnibetBanner: React.FC = () => {\n const isDesktop = window.matchMedia(\"(min-width: 1025px)\").matches;\n const isMobile = window.matchMedia(\"(max-width: 480px)\").matches;\n const isTablet = window.matchMedia(\n \"(min-width: 481px) and (max-width: 1024px)\"\n ).matches;\n\n const desktopAdRef = React.useRef(null);\n const mobileAdRef = React.useRef(null);\n const tabletAdRef = React.useRef(null);\n\n React.useEffect(() => {\n if (isDesktop) {\n if (desktopAdRef) {\n window.postscribe(\n desktopAdRef.current,\n `\n \n `\n );\n }\n } else if (isMobile) {\n if (mobileAdRef) {\n window.postscribe(\n mobileAdRef.current,\n `\n \n `\n );\n }\n } else {\n if (tabletAdRef) {\n window.postscribe(\n tabletAdRef.current,\n `\n \n `\n );\n }\n }\n }, [desktopAdRef, mobileAdRef, tabletAdRef, isDesktop, isMobile]);\n\n return (\n
\n {isDesktop && (\n \n )}\n {isMobile && (\n \n )}\n {isTablet && (\n \n )}\n
\n );\n};\n\nclass Fixtures extends React.Component {\n public constructor(props: Props) {\n super(props);\n let eventId = 0;\n if (props.eventId) {\n eventId = props.eventId;\n } else if (props.nextEvent) {\n eventId = props.nextEvent.id;\n } else if (props.currentEvent) {\n eventId = props.currentEvent.id;\n }\n this.state = { eventId, isOpen: {} };\n }\n\n public componentDidMount() {\n this.props.fetchFixturesForEvent(this.state.eventId);\n }\n\n public changeEvent = (eventId: number) => {\n this.props.fetchFixturesForEvent(eventId);\n this.setState({ eventId });\n };\n\n public toggle = (fixtureId: number) => {\n this.setState({\n isOpen: {\n ...this.state.isOpen,\n [fixtureId]: !this.state.isOpen[fixtureId],\n },\n });\n };\n\n public render() {\n const {\n elementsById,\n eventsById,\n groupedFixturesByEvent,\n i18n,\n showElementDialog,\n statsByIdentifier,\n t,\n useLinks = false,\n } = this.props;\n const { eventId } = this.state;\n const event = eventsById[eventId];\n if (!event) {\n return null;\n }\n\n const eventFixtureGroups = groupedFixturesByEvent[eventId] || [];\n return (\n
\n \n \n
\n \n {event.name} -{\" \"}\n \n \n \n {t(\"fixtures.title\", \"Fixtures\")}\n \n
\n \n {eventsById[eventId - 1] && (\n \n {useLinks ? (\n this.changeEvent(eventId - 1)}\n startIcon={}\n >\n {t(\"fixtures.previous\", \"Previous\")}\n \n ) : (\n this.changeEvent(eventId - 1)}\n startIcon={}\n >\n {t(\"fixtures.previous\", \"Previous\")}\n \n )}\n \n )}\n {eventsById[eventId + 1] && (\n \n {useLinks ? (\n this.changeEvent(eventId + 1)}\n variant=\"primary\"\n endIcon={}\n >\n {t(\"fixtures.next\", \"Next\")}\n \n ) : (\n this.changeEvent(eventId + 1)}\n disabled={!eventsById[eventId + 1]}\n variant=\"primary\"\n endIcon={}\n >\n {t(\"fixtures.next\", \"Next\")}\n \n )}\n \n )}\n \n
\n
\n \n \n \n All times are shown in your local time\n \n \n \n {eventFixtureGroups.map((group) => (\n \n \n \n {format(group.date, \"EEEE d MMMM yyyy\")}\n \n \n \n {group.fixtures.map((f) => (\n \n {f.started && f.team_h_score !== null ? (\n \n this.toggle(f.id)}\n isOpen={this.state.isOpen[f.id]}\n >\n \n \n \n \n ) : (\n \n \n \n )}\n \n ))}\n \n \n ))}\n
\n
\n );\n }\n}\n\nexport { Fixtures as FixturesTest };\n\nconst mapStateToProps = (state: RootState, ownProps: IOwnProps) => ({\n currentEvent: getCurrentEvent(state),\n elementsById: getElementsById(state),\n eventsById: getEventsById(state),\n groupedFixturesByEvent: getGroupedFixturesByEvent(state),\n nextEvent: getNextEvent(state),\n statsByIdentifier: getElementStatsByIdentifier(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchFixturesForEvent: (eventId) => dispatch(fetchFixtures(eventId)),\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(Fixtures)\n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport Fixtures from \"./Fixtures\";\nimport { Main, Wrapper } from \"./Layout\";\n\nconst FixturesWrapper: React.FC> = ({\n eventId = 0,\n}) => (\n \n
\n \n
\n
\n);\n\nexport default FixturesWrapper;\n","export default __webpack_public_path__ + \"static/media/logo_footer.679dfd19.svg\";","export default __webpack_public_path__ + \"static/media/unibet@2x.aa18c06d.png\";","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport LogoFooter from \"../img/logo_footer.svg\";\nimport unibetx1 from \"../img/logos/unibet@1x.png\";\nimport unibetx2 from \"../img/logos/unibet@2x.png\";\n\n// const UnibetTracker =\n// \"https://track.adform.net/adfserve/?bn=36844312;1x1inv=1;srctype=3;ord=[timestamp]\";\n\nconst Container = styled.div`\n max-width: 1000px;\n min-height: 0;\n min-width: 0;\n margin: 0 auto;\n`;\n\nconst Img = styled.img`\n width: auto;\n display: block;\n margin: 0 auto;\n margin-bottom: 15px;\n max-height: 50px;\n max-width: 100%;\n`;\n\nconst SponsorRow = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst SponsorCol = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid #ededed;\n padding: 45px 10px;\n text-align: center;\n`;\n\nconst SponsorRowThirds = styled(SponsorRow)`\n ${SponsorCol} {\n flex-basis: 100%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n flex-basis: calc(100% / 3);\n }\n }\n`;\n\nconst SponsorType = styled.div`\n text-align: center;\n margin-top: ${({ theme }) => theme.space[2]};\n text-transform: uppercase;\n font-weight: 100;\n font-size: 11px;\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst CopyWrite = styled.div`\n font-weight: bold;\n font-size: 11px;\n color: #ffd600;\n`;\n\nconst Info = styled.div`\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst Copy = styled.div``;\n\nconst Links = styled.div`\n margin: ${({ theme }) => theme.space[2]} 0;\n\n a {\n color: white;\n font-size: 11px;\n text-decoration: none;\n text-transform: uppercase;\n margin-right: ${({ theme }) => theme.space[2]};\n\n &:hover {\n text-decoration: underline;\n }\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin: 0;\n width: 60%;\n text-align: left;\n }\n`;\n\nconst Logo = styled.div`\n width: 112px;\n height: 24px;\n margin: 0 auto;\n padding: 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin: 0;\n }\n`;\n\nconst Footer: React.FC = () => {\n const { t } = useTranslation();\n const currentYear = new Date().getFullYear();\n return (\n \n );\n};\n\nexport default Footer;\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/hero@1x.8540eb3c.jpg\";","export default __webpack_public_path__ + \"static/media/hero@2x.d3528c3f.jpg\";","export default __webpack_public_path__ + \"static/media/home-first@1x.c44912f3.jpg\";","export default __webpack_public_path__ + \"static/media/home-first@2x.8c6943ff.jpg\";","export default __webpack_public_path__ + \"static/media/home-second@2x.5af54fe7.jpg\";","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../core/store\";\nimport { getLoginError, getPlayerData } from \"../core/store/player/reducers\";\nimport { login } from \"../core/store/player/thunks\";\nimport { ILoginData } from \"../core/store/player/types\";\nimport Button from \"./Button\";\nimport Copy from \"./Copy\";\n\nconst LoggedInWrap = styled.div`\n margin-left: ${({ theme }) => theme.space[2]};\n margin-right: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin: 0;\n }\n`;\n\nconst Promo = styled.div`\n margin-left: ${({ theme }) => theme.space[2]};\n margin-right: ${({ theme }) => theme.space[2]};\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-left: 0;\n margin-right: 0;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 3rem;\n text-align: left;\n }\n`;\n\nconst PromoLeft = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 calc(70% - 1rem);\n padding-right: ${({ theme }) => theme.space[4]};\n }\n`;\n\nconst PromoRight = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 calc(30% - 1rem);\n }\n`;\n\nconst PromoHeading = styled.h3`\n margin: 0;\n font-size: 2.1rem;\n font-family: ${({ theme }) => theme.fonts.impact};\n color: ${({ theme }) => theme.colors.white};\n text-transform: uppercase;\n`;\n\nconst PromoText = styled.p`\n margin-bottom: ${({ theme }) => theme.space[4]};\n color: ${({ theme }) => theme.colors.white};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-bottom: 0;\n }\n`;\n\nconst mapState = (state: RootState) => ({\n error: getLoginError(state),\n player: getPlayerData(state),\n});\n\nconst mapDispatch = {\n login: (data: ILoginData) => login(data),\n};\n\nconst connector = connect(mapState, mapDispatch);\n\ntype PropsFromRedux = ConnectedProps;\n\nconst Login: React.FC = ({ error, player }) => {\n const { t } = useTranslation();\n\n if (player && player.id) {\n return (\n \n \n \n

\n {t(\n \"login.loggedInAs\",\n `You are logged in as {{ firstName }} {{ lastName }}`,\n {\n firstName: player.first_name,\n lastName: player.last_name,\n }\n )}\n

\n
\n
\n
\n );\n }\n\n return (\n <>\n \n \n \n {t(\"login.promo.heading\", \"A New Season of Allsvenskan Fantasy!\")}\n \n \n {t(\n \"login.promo.paragraph\",\n \"Challenge your friends in Allsvenskan Fantasy and have the chance to win both bragging rights and great prizes every round!\"\n )}\n \n \n \n \n \n \n \n );\n};\n\nexport default connector(Login);\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport Parser from \"rss-parser\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getURL } from \"../../core/store/urls/reducers\";\nimport { fetchURL } from \"../../core/store/urls/thunks\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport LogoBar from \"../LogoBar\";\nimport filterOnSSL from \"./filterOnSSL\";\n\nconst parser = new Parser();\n\nconst StyledProvider = styled.section`\n border: 1px solid #e5e5e5;\n margin-bottom: ${({ theme }) => theme.space[2]};\n`;\n\nconst ProviderHeader = styled.header``;\n\nconst ProviderContent = styled.div`\n display: flex;\n flex-wrap: wrap;\n`;\n\nconst ProviderFooter = styled.footer`\n display: flex;\n justify-content: flex-end;\n padding: 1rem;\n`;\n\nconst StyledLink = styled.a`\n color: #000;\n text-decoration: none;\n`;\n\nconst Article = styled.article`\n width: 50%;\n padding: 20px;\n background-color: ${({ theme }) => theme.colors.white};\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 25%;\n }\n`;\n\nconst ArticleFeatureImg = styled.img`\n max-width: 100%;\n`;\n\nconst StyledMoreLink = styled.a`\n display: inline-flex;\n align-items: center;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n color: ${({ theme }) => theme.colors.blue};\n text-decoration: none;\n text-transform: uppercase;\n font-weight: 600;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nconst SubHeading = styled.h3`\n margin: 0;\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 1.6rem;\n font-weight: bold;\n text-transform: uppercase;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 2rem;\n }\n`;\n\ninterface IProps {\n link: string;\n url: string;\n}\n\nconst ScoutProvider: React.FC = ({ link, url }) => {\n const { t } = useTranslation();\n const [providerData, setProviderData] = useState(null);\n\n // Fetch RSS\n const reduxDispatch = useDispatch();\n useEffect(() => {\n reduxDispatch(fetchURL(url));\n }, [reduxDispatch, url]);\n\n // Get raw RSS content, will be null until we have some\n const content = useSelector((state: RootState) => getURL(state, url));\n\n // Parse RSS data\n useEffect(() => {\n const parseContent = async () => {\n try {\n const feed = await parser.parseString(content.text);\n if (feed && feed.items) {\n const filteredSslFeedItems = filterOnSSL(feed.items).splice(0, 4); // Only show 4 news articles\n\n setProviderData(filteredSslFeedItems);\n }\n } catch (e) {}\n };\n if (content) {\n parseContent();\n }\n }, [content]);\n\n if (!providerData) {\n return null;\n }\n\n return (\n \n \n \n {t(\"scout.heading\", \"Allsvenskan Fantasy\")}\n \n \n \n {providerData.map((item) => {\n return (\n
\n \n {item.enclosure && (\n \n )}\n

{item.title}

\n \n
\n );\n })}\n
\n \n \n {t(\"scout.more\", \"More\")}\n \n \n \n
\n );\n};\n\nexport default ScoutProvider;\n","import { Link } from \"@reach/router\";\nimport { ellipsis } from \"polished\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { getEntry } from \"../../core/store/entries/reducers\";\nimport { fetchEntrySummary } from \"../../core/store/entries/thunks\";\nimport { IEntry } from \"../../core/store/entries/types\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { IPlayer } from \"../../core/store/player/types\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\n\nconst StyledEventInfo = styled.div`\n margin: ${({ theme }) => theme.space[4]} 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin: 4rem 0;\n }\n`;\n\nconst EventScores = styled.ul`\n display: flex;\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding: 0;\n gap: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n justify-content: space-around;\n }\n`;\n\nconst EventScore = styled.li`\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: ${({ theme }) => theme.space[3]};\n gap: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n list-style-type: none;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex: 1 0 30%;\n margin: 0 1.66%;\n }\n`;\n\nconst ItemHeading = styled.h4`\n margin: 0;\n color: inherit;\n`;\n\nconst ItemValue = styled.div`\n ${ellipsis()};\n color: inherit;\n font-size: ${({ theme }) => theme.fontSizes[4]};\n font-weight: bold;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n font-size: 2.5rem;\n }\n`;\n\nconst EventStats = styled.ul`\n padding: 0;\n list-style-type: none;\n color: ${({ theme }) => theme.colors.black};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n justify-content: space-around;\n gap: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst EventStat = styled.li`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n margin-top: ${({ theme }) => theme.space[2]};\n padding: ${({ theme }) => theme.space[3]};\n gap: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.white};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex: 1 0 30%;\n margin: 0 1.66%;\n }\n`;\n\nconst ArrowLink = styled(Link)`\n color: white;\n text-decoration: none;\n\n :hover {\n text-decoration: underline;\n }\n`;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n entry: IEntry | null;\n now: IEvent | null;\n player: IPlayer;\n}\n\ninterface IPropsFromDispatch {\n fetchEntrySummary: (entryId: number) => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch;\n\nconst EventInfo: React.FC = ({ elementsById, entry, now, player }) => {\n const { t } = useTranslation();\n\n if (!now || !entry) {\n return null;\n }\n const matches = now.chip_plays.filter((cp) => cp.chip_name === \"wildcard\");\n const wildcards = matches.length ? matches[0].num_played : \"-\";\n return (\n \n \n \n \n {t(\"eventInfo.averageScore\", \"Average score\")}\n \n {now.average_entry_score || \"-\"}\n \n {entry.started_event <= now.id && (\n \n {t(\"eventInfo.yourScore\", \"Your score\")}\n \n \n {entry.summary_event_points}\n \n \n \n \n )}\n \n \n {t(\"eventInfo.highestScore\", \"Highest score\")}\n \n \n {now.highest_scoring_entry ? (\n \n {now.highest_score}\n \n \n ) : (\n \"-\"\n )}\n \n \n \n \n {now.id > 1 && (\n \n \n {t(\"eventInfo.transfersMade\", \"Transfers Made\")}\n \n \n {now.transfers_made ? now.transfers_made.toLocaleString() : \"-\"}\n \n \n )}\n \n \n {t(\"eventInfo.wildcardsPlayed\", \"Wildcards Played\")}\n \n \n {wildcards === null ? \"-\" : wildcards.toLocaleString()}\n \n \n \n \n {t(\"eventInfo.mostCaptained\", \"Most Captained\")}\n \n \n {now.most_captained\n ? elementsById[now.most_captained].web_name\n : \"-\"}\n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const player = getPlayerData(state) as IPlayer;\n const entryId = player.entry || 0;\n const now = getCurrentEvent(state) as IEvent;\n return {\n elementsById: getElementsById(state),\n entry: getEntry(state, entryId),\n now,\n player,\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EventInfo);\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\n\nconst StatusBar = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n color: ${(props) =>\n props.isFinished ? props.theme.colors.white : props.theme.colors.black};\n background-color: ${(props) =>\n props.isFinished ? props.theme.colors.error : props.theme.colors.success};\n line-height: 1.3;\n font-size: ${({ theme }) => theme.fontSizes[3]};\n font-weight: bold;\n text-transform: uppercase;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\ninterface IStatusBar {\n isFinished: boolean;\n}\n\nconst EventStatusBar: React.FC = () => {\n const { t } = useTranslation();\n const now = useSelector(getCurrentEvent);\n if (!now) {\n return null;\n }\n const eventStatus = now.finished\n ? t(\"statusBar.complete\", \"complete\")\n : t(\"statusBar.live\", \"live\");\n\n return (\n \n {t(\"statusBar.eventStatus\", \"Round is {{ isFinished }}\", {\n isFinished: eventStatus,\n })}\n \n );\n};\n\nexport default EventStatusBar;\n","import { Link } from \"@reach/router\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ControlArrowRight } from \"./icons/Arrows\";\n\nconst BoldLinkStyles = css`\n display: inline-flex;\n align-items: center;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n color: ${({ theme }) => theme.colors.yellow};\n text-decoration: none;\n text-transform: uppercase;\n font-weight: 600;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nconst StyledBoldHyperlink = styled.a`\n ${BoldLinkStyles}\n`;\n\nconst StyledBoldLink = styled(Link)`\n ${BoldLinkStyles}\n`;\n\ninterface IBoldLinkProps {\n children: React.ReactNode;\n to: string;\n}\n\ninterface IBoldHyperlinkProps {\n children: React.ReactNode;\n href: string;\n}\n\nexport const BoldHyperlink: React.FC = ({\n children,\n href,\n}) => (\n \n {children}\n \n \n);\n\nconst BoldLink: React.FC = ({ children, to }) => (\n \n {children}\n \n \n);\n\nexport default BoldLink;\n","var _polygon, _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgStatus(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 32 32\",\n style: {\n enableBackground: \"new 0 0 32 32\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"icon_triangle_1_\",\n points: \"0,32 16,4 32,32 \"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"symbol_i\",\n fill: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: 13.5,\n y: 12.4,\n width: 5,\n height: 10.7\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 13.5,\n y: 25.6,\n width: 5,\n height: 3.8\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgStatus);\nexport default __webpack_public_path__ + \"static/media/status.5cee4a4d.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { IElement } from \"../core/store/elements/types\";\nimport { ReactComponent as Info } from \"../img/icons/info.svg\";\nimport { ReactComponent as Status } from \"../img/icons/status.svg\";\n\nconst StyledInfo = styled(Info)`\n ${size(14)}\n display: block;\n margin: auto;\n\n .box {\n fill: ${({ theme }) => theme.colors.white};\n }\n\n .icon {\n fill: ${({ theme }) => theme.colors.blue};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\nconst StyledStatus = styled(Status)<{ copnr: number }>`\n ${size(14)}\n display: block;\n margin: auto;\n fill: ${(props) => props.theme.colors.elementStatus[props.copnr].bg};\n color: ${(props) => props.theme.colors.elementStatus[props.copnr].color};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\ninterface IProps {\n element: IElement;\n}\n\nconst ElementStatus: React.FC = ({ element }) => {\n const copnr = element.chance_of_playing_next_round as number;\n return element.news ? : ;\n};\n\nexport default ElementStatus;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport { getElementsById } from \"../core/store/elements/reducers\";\nimport { showElementSummary } from \"../core/store/elements/thunks\";\nimport { IElementsById } from \"../core/store/elements/types\";\nimport ElementStatus from \"./ElementStatus\";\nimport { useTranslation } from \"react-i18next\";\n\nconst StyledElementDialogButton = styled.button`\n display: block;\n width: 100%;\n padding: 1.3rem 14%;\n border: 0;\n background-color: transparent;\n line-height: 1;\n cursor: pointer;\n\n ${({ variant }) =>\n variant === \"pitch\" &&\n css`\n padding: 0;\n `}\n`;\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n}\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n}\n\ninterface IOwnProps {\n elementId: number;\n}\n\ninterface IStyledProps {\n variant?: \"list\" | \"pitch\";\n}\n\ntype Props = IPropsFromDispatch & IPropsFromState & IOwnProps & IStyledProps;\n\nconst ElementDialogButton: React.FC = ({\n elementId,\n elementsById,\n showElementDialog,\n variant = \"pitch\",\n}) => {\n const { t } = useTranslation();\n return (\n showElementDialog(elementId)}\n title={t(\"viewInfoTitle\", \"View player information\")}\n variant={variant}\n >\n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementsById: getElementsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ElementDialogButton);\n","import styled, { css } from \"styled-components/macro\";\nimport Table from \"./Table\";\nimport { SubStatus } from \"../core/store/my-team/types\";\nimport { rgba } from \"polished\";\n\ninterface IProps {\n elementType?: number;\n}\n\nexport const ElementTable = styled(Table)`\n width: 100%;\n white-space: nowrap;\n table-layout: fixed;\n border-collapse: collapse;\n\n th,\n td {\n padding-top: 1rem;\n padding-bottom: 1rem;\n }\n\n thead th {\n background-color: ${({ theme }) => theme.colors.secondary};\n }\n`;\n\nexport const PrimaryCell = styled.td`\n position: relative;\n text-align: center;\n`;\n\nexport const PrimaryCellLined = styled(PrimaryCell)`\n ::after {\n content: \"\";\n position: absolute;\n top: 1rem;\n left: 0;\n bottom: 1rem;\n display: block;\n width: 2px;\n background: ${({ theme }) => theme.colors.lighterBlue};\n }\n`;\n\ninterface IElementRowProps {\n variant?: SubStatus;\n}\n\nexport const ElementRow = styled.tr`\n td:first-child {\n padding: 0.2rem;\n }\n\n ${(props) =>\n props.variant === \"instigator\" &&\n css`\n background-color: ${rgba(\"yellow\", 0.6)};\n `}\n\n ${(props) =>\n props.variant === \"target\" &&\n css`\n background-color: ${rgba(\"#f60\", 0.6)};\n `}\n\n ${(props) =>\n props.variant === \"invalid\" &&\n css`\n opacity: 0.6;\n `}\n`;\n\ninterface IElementCellProps {\n bold?: boolean;\n}\n\nexport const ElementCell = styled.td`\n position: relative;\n\n ::after {\n content: \"\";\n position: absolute;\n top: 1rem;\n right: 0;\n bottom: 1rem;\n display: block;\n width: 2px;\n background: ${({ theme }) => theme.colors.lighterBlue};\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst StyledPanelHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 ${({ theme }) => theme.space[2]};\n margin-bottom: ${({ theme }) => theme.space[2]};\n`;\n\ninterface IPanelHeaderProps {\n children: React.ReactNode;\n link?: React.ReactNode;\n}\n\nconst StatusPanelHeader: React.FC = ({ children, link }) => (\n \n {children}\n {link}\n \n);\n\ninterface IPanelBodyProps {\n children: React.ReactNode;\n}\n\nconst StatusPanelBody: React.FC = ({ children }) => (\n
{children}
\n);\n\ninterface IPanelProps {\n children?: React.ReactNode;\n}\n\nclass StatusPanel extends React.Component {\n public static Header = StatusPanelHeader;\n public static Body = StatusPanelBody;\n\n render() {\n const { children } = this.props;\n return
{children}
;\n }\n}\n\nexport default StatusPanel;\n","var _polygon;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTransferArrowLeft(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15,\n height: 12,\n viewBox: \"0 0 15 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"8.6 12 6.1 12 11 7.1 .5 7.1 .5 5.3 11 5.3 6.1 .4 8.6 .4 14.4 6.2\",\n transform: \"matrix(-1 0 0 1 15 0)\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTransferArrowLeft);\nexport default __webpack_public_path__ + \"static/media/transfer-arrow-left.febfc476.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../../core/store/element-types/types\";\nimport {\n getElementControls,\n getElementsFromControls,\n} from \"../../core/store/elements/reducers\";\nimport { updateElementControlsAndMaxCost } from \"../../core/store/elements/thunks\";\nimport {\n IElementControls,\n IElementDataFromControls,\n} from \"../../core/store/elements/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport BoldLink from \"../BoldLink\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementShirt from \"../ElementShirt\";\nimport { ElementRow, ElementTable, PrimaryCell } from \"../ElementTable\";\nimport SubHeading from \"../SubHeading\";\nimport { Ellipsis } from \"../Utils\";\nimport Panel from \"../Panel\";\nimport StatusPanel from \"./StatusPanel\";\n\nconst AvailabilityTable = styled(ElementTable)`\n th:not(:nth-child(3)) {\n text-align: center;\n }\n\n th {\n :first-of-type {\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n }\n\n :last-of-type {\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n }\n }\n`;\n\nconst StatusCol = styled.th`\n width: 12%;\n`;\n\nconst ShirtCol = styled.th`\n width: 16%;\n`;\n\nconst PlayerCol = styled.th`\n width: 36%;\n`;\n\nconst PosCol = styled.th`\n width: 20%;\n`;\n\nconst ClubCol = styled.th`\n width: 20%;\n`;\n\nconst ShirtCell = styled.td`\n text-align: right;\n`;\n\ninterface IPropsFromState {\n controls: IElementControls;\n elements: IElementDataFromControls;\n elementTypesById: IElementTypesById;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n updateControlsAndMaxCost: (controls: IElementControls) => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & WithTranslation;\n\nclass PlayerAvailability extends React.Component {\n public componentDidMount() {\n this.props.updateControlsAndMaxCost({\n ...this.props.controls,\n filter: \"all\",\n sort: \"news_added\",\n search: \"\",\n });\n }\n\n public render() {\n const { elements, elementTypesById, t, teamsById } = this.props;\n return (\n \n \n {t(\"playerAvailability.more\", \"more\")}\n \n }\n >\n \n {t(\"playerAvailability.heading\", \"Player Availability\")}\n \n \n \n \n \n \n \n  \n  \n \n {t(\"playerAvailability.player\", \"Player\")}\n \n \n {t(\"playerAvailability.postitionShort\", \"Pos\")}\n \n {t(\"playerAvailability.club\", \"Club\")}\n \n \n \n {elements.data.slice(0, 16).map((e) => (\n \n \n \n \n \n \n \n \n {e.web_name}\n \n \n {elementTypesById[e.element_type].singular_name_short}\n \n {teamsById[e.team].short_name}\n \n ))}\n \n \n \n \n \n );\n }\n}\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n controls: getElementControls(state),\n elements: getElementsFromControls(state),\n elementTypesById: getElementTypesById(state),\n teamsById: getTeamsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n updateControlsAndMaxCost: (controls) =>\n dispatch(updateElementControlsAndMaxCost(controls)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(PlayerAvailability)\n);\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IDreamTeamData } from \"./types\";\nimport { IError } from \"..\";\n\nexport const fetchOverallDreamTeam = createAsyncAction(\n \"FETCH_OVERALL_DREAM_TEAM_START\",\n \"FETCH_OVERALL_DREAM_TEAM_SUCCESS\",\n \"FETCH_OVERALL_DREAM_TEAM_FAILURE\"\n)();\n\nexport const fetchEventDreamTeam = createAsyncAction(\n \"FETCH_EVENT_DREAM_TEAM_START\",\n \"FETCH_EVENT_DREAM_TEAM_SUCCESS\",\n \"FETCH_EVENT_DREAM_TEAM_FAILURE\"\n)();\n","import { combineReducers } from \"redux\";\nimport { RootAction, RootState } from \"..\";\nimport { IState, IDreamTeamElement } from \"./types\";\nimport * as actions from \"./actions\";\nimport { getType } from \"typesafe-actions\";\nimport { getElementsById, getFormation } from \"../elements/reducers\";\n\n// State Reducer\nexport default combineReducers({\n byEventId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEventDreamTeam.success):\n return {\n ...state,\n [action.payload.event]: action.payload.data,\n };\n default:\n return state;\n }\n },\n overall: (state = null, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchOverallDreamTeam.success):\n return action.payload;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getOverallDreamTeam = (state: RootState) =>\n state.dreamTeams.overall;\n\nexport const getEventDreamTeam = (state: RootState, eventId: number) => {\n if (!state.dreamTeams.byEventId || !state.dreamTeams.byEventId[eventId]) {\n return null;\n }\n return state.dreamTeams.byEventId[eventId];\n};\n\nexport const getOverallDreamTeamFormation = (state: RootState) => {\n const data = getOverallDreamTeam(state);\n const elementsById = getElementsById(state);\n if (!data || !elementsById) {\n return \"\";\n }\n return getFormation(data.team.map((p) => elementsById[p.element]));\n};\n\nexport const getEventDreamTeamFormation = (\n state: RootState,\n eventId: number\n) => {\n const data = getEventDreamTeam(state, eventId);\n const elementsById = getElementsById(state);\n if (!data || !elementsById) {\n return \"\";\n }\n return getFormation(data.team.map((p) => elementsById[p.element]));\n};\n\nexport const dreamTeamAsPickLight = (team: IDreamTeamElement[]) => {\n return team.map((e) => ({\n element: e.element,\n position: e.position,\n is_captain: false,\n is_vice_captain: false,\n multiplier: 1,\n }));\n};\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport { IDreamTeamData } from \"./types\";\nimport * as actions from \"./actions\";\n\nexport const fetchOverallDreamTeam =\n (): ThunkResult> => async (dispatch) => {\n try {\n await apiGet(\n \"dream-team/\",\n dispatch,\n actions.fetchOverallDreamTeam\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchEventDreamTeam =\n (event: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `dream-team/${event}/`,\n dispatch,\n actions.fetchEventDreamTeam,\n { event }\n );\n } catch (e) {\n return;\n }\n };\n","import * as React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementStatsByIdentifier } from \"../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../core/store/element-stats/types\";\nimport {\n getElementsById,\n getElementsEventDataById,\n} from \"../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport {\n IElementExplain,\n IElementsById,\n IElementsEventDataById,\n} from \"../../core/store/elements/types\";\nimport { getFixturesForEventById } from \"../../core/store/fixtures/reducers\";\nimport { IFixture } from \"../../core/store/fixtures/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport Button from \"../Button\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport DialogHeading from \"../DialogHeading\";\nimport Table from \"../Table\";\n\nconst ExplainHeading = styled.h3`\n font-size: ${({ theme }) => theme.fontSizes[3]};\n text-align: center;\n`;\n\nconst ExplainScore = styled.span`\n margin: 0 ${({ theme }) => theme.space[1]};\n padding: ${({ theme }) => theme.space[1]};\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n`;\n\ninterface IOwnProps {\n closeDialog: () => void;\n elementId: number;\n eventId: number;\n}\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n elementsDataById: IElementsEventDataById | null;\n fixturesById: Record | null;\n statsByIdentifier: Record;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\nclass ElementExplainDialog extends React.Component {\n public showElementDialog = (elementId: number) => {\n this.props.showElementDialog(elementId);\n this.props.closeDialog();\n };\n\n public renderExplainFixture(explain: IElementExplain) {\n const {\n elementId,\n elementsDataById,\n fixturesById,\n statsByIdentifier,\n teamsById,\n t,\n } = this.props;\n const elementData = elementsDataById![elementId];\n const fixture = fixturesById && fixturesById[explain.fixture];\n if (!elementData || !fixture) {\n return null;\n }\n if (!fixture.started) {\n return null;\n }\n return (\n <>\n \n \n {teamsById[fixture.team_h].short_name}\n \n {fixture.team_h_score}-{fixture.team_a_score}\n \n {teamsById[fixture.team_a].short_name}\n \n \n \n \n \n \n \n \n \n \n \n \n {explain.stats.map((stat) => (\n \n \n \n \n \n ))}\n \n
{t(\"elementExplainDialog.stat\", \"Statistic\")}{t(\"elementExplainDialog.value\", \"Value\")}{t(\"elementExplainDialog.points\", \"Points\")}
{statsByIdentifier[stat.identifier].label}{stat.value}{stat.points}
\n
\n \n );\n }\n\n public render() {\n const { closeDialog, elementsById, elementsDataById, fixturesById, t } =\n this.props;\n const element = elementsById[this.props.elementId];\n if (!element || !fixturesById || !elementsDataById) {\n return null;\n }\n return (\n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n \n\n \n {elementsDataById[element.id].explain.map((e) => (\n \n {this.renderExplainFixture(e)}\n \n ))}\n
\n \n this.showElementDialog(element.id)}\n width={1}\n >\n {t(\"elementExplainDialog.info\", \"View Information\")}\n \n \n
\n
\n
\n );\n }\n}\n\nexport { ElementExplainDialog as ElementExplainDialogTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: IOwnProps\n): IPropsFromState => {\n return {\n elementsById: getElementsById(state),\n elementsDataById: getElementsEventDataById(state, ownProps.eventId),\n fixturesById: getFixturesForEventById(state, ownProps.eventId),\n statsByIdentifier: getElementStatsByIdentifier(state),\n teamsById: getTeamsById(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(ElementExplainDialog)\n);\n","import React from \"react\";\nimport { IFixture } from \"../../core/store/fixtures/types\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport {\n IElementsEventDataById,\n IElementsById,\n} from \"../../core/store/elements/types\";\nimport FixtureForElement from \"../FixtureForElement\";\nimport { IPickLight } from \"../../core/store/entries/types\";\n\nconst valueForPlayerElement =\n (initProps: {\n elementsById: IElementsById;\n elementsDataById: IElementsEventDataById | null;\n fixturesById: Record | null;\n teamsById: ITeamsById;\n }) =>\n (pick: IPickLight) => {\n if (!initProps.elementsDataById || !initProps.fixturesById) {\n return null;\n }\n const element = initProps.elementsById[pick.element];\n const elementData = initProps.elementsDataById[element.id];\n const fragments: React.ReactNode[] = [];\n let started = 0;\n elementData.explain.forEach((e) => {\n const fixture = initProps.fixturesById![e.fixture];\n if (!fixture.started) {\n fragments.push(\n \n );\n } else {\n started++;\n }\n });\n if (started) {\n fragments.unshift(\n elementData.stats.total_points * Math.max(pick.multiplier, 1)\n );\n }\n return fragments.length ? (\n fragments.reduce((result, item) => (\n <>\n {result}\n {\", \"}\n {item}\n \n ))\n ) : (\n -\n );\n };\n\nexport default valueForPlayerElement;\n","export default __webpack_public_path__ + \"static/media/as-pitch.5565cd15.svg\";","import { Flex } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { SubStatus } from \"../core/store/my-team/types\";\nimport { rgba } from \"polished\";\nimport PitchSvg from \"../img/as-pitch.svg\";\n\nconst Pitch = styled.div`\n min-height: 330px;\n background-image: url(${PitchSvg});\n background-repeat: no-repeat;\n background-position: center;\n background-size: 516px 330px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n min-height: 524px;\n background-size: 820px 524px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-height: 690px;\n background-size: 1080px 690px;\n }\n`;\n\nexport const ElementRow = styled(Flex)`\n max-width: 410px;\n margin: auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n max-width: 620px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n max-width: none;\n }\n`;\n\nexport const PitchRow = styled(ElementRow)`\n padding-bottom: 0.5rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-bottom: 2.8rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-bottom: 4.5rem;\n }\n`;\n\nexport const PitchUnit = styled.div`\n flex: 1;\n min-height: 7.2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n min-height: 9.6rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-height: 11.6rem;\n }\n`;\n\nexport const PitchElementWrap = styled.div`\n margin: 0 0.2rem;\n padding: 0.4rem 0;\n border-radius: 0.4rem;\n align-items: stretch;\n ${(props) =>\n (props.variant === \"instigator\" || props.variant === \"target\") &&\n css`\n transition: all 0.15s;\n box-shadow: 0 0 0.6rem 0 rgba(0, 0, 0, 0.4);\n `}\n\n ${(props) =>\n props.variant === \"instigator\" &&\n css`\n background-color: ${rgba(\"yellow\", 0.6)};\n `}\n\n ${(props) =>\n props.variant === \"target\" &&\n css`\n background-color: ${rgba(\"#f60\", 0.6)};\n `}\n\n ${(props) =>\n props.variant === \"invalid\" &&\n css`\n opacity: 0.6;\n `}\n`;\n\nexport const StyledPitchElement = styled.div`\n position: relative;\n width: 6.4rem;\n margin: auto;\n padding-right: 0.3rem;\n padding-left: 0.3rem;\n text-align: center;\n opacity: ${(props) => (props.isRemoved ? \"0.8\" : \"1\")};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 10.5rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 14rem;\n padding-right: 1rem;\n padding-left: 1rem;\n }\n`;\n\nexport const Controls = styled.div`\n display: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: block;\n }\n`;\n\nexport const PrimaryControl = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: absolute;\n top: 0;\n left: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n left: 20px;\n }\n`;\n\nexport const InfoControl = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: absolute;\n top: 0;\n right: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n right: 20px;\n }\n`;\n\ninterface IWrapStyleProps {\n variant?: SubStatus;\n}\n\ninterface IPitchElementStyleProps {\n isRemoved?: boolean;\n}\n\nexport default Pitch;\n","import React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { IElement } from \"../../core/store/elements/types\";\n\nexport const ElementName = styled.div`\n padding: 0.1rem 0.2rem;\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n color: ${({ theme }) => theme.colors.white};\n color: white;\n font-size: 1rem;\n font-weight: 800;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n ${(props) =>\n props.element.news &&\n props.element.chance_of_playing_next_round !== null &&\n css`\n background-color: ${props.theme.colors.elementStatus[\n props.element.chance_of_playing_next_round\n ].bg};\n color: ${props.theme.colors.elementStatus[\n props.element.chance_of_playing_next_round\n ].color};\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-top: 0.2rem;\n padding-bottom: 0.2rem;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n`;\n\nexport const ElementValue = styled.div`\n padding: 0 0.2rem;\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.blueDarker3};\n font-size: 1rem;\n font-weight: 800;\n`;\n\ninterface IStyledProps {\n element: IElement;\n}\n\ninterface IProps {\n value: React.ReactNode;\n}\n\ntype Props = IStyledProps & IProps;\n\nconst StatusPitchElementData: React.FC = ({ element, value }) => (\n
\n {element.web_name}\n {value}\n
\n);\n\nexport default StatusPitchElementData;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementShirt from \"../ElementShirt\";\nimport { Controls } from \"../Pitch\";\nimport { UnstyledButton } from \"../Utils\";\nimport StatusPitchElementData from \"./StatusPitchElementData\";\n\nexport const StatusPitchElementWrap = styled.div`\n margin: 0 0.2rem;\n padding: 0.4rem 0;\n border-radius: 0.4rem;\n align-items: stretch;\n`;\n\nexport const StyledStatusPitchElement = styled.div`\n position: relative;\n width: 6rem;\n margin: auto;\n padding-right: 0.3rem;\n padding-left: 0.3rem;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 7rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 10.5rem;\n }\n`;\n\nconst StyledInfoControl = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: absolute;\n top: 0;\n right: 5px;\n }\n`;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n}\n\ninterface IOwnProps {\n pick: IPickLight;\n renderElementMenu: () => void;\n renderPickValue: (pick: IPickLight) => React.ReactNode;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & IOwnProps;\n\nconst Squad: React.FC = ({\n pick,\n elementsById,\n renderElementMenu,\n renderPickValue,\n}) => {\n const element = elementsById[pick.element];\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementsById: getElementsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Squad);\n","import * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport PitchSvg from \"../../img/as-pitch.svg\";\nimport StatusPitchElement from \"./StatusPitchElement\";\n\nconst StatusPitch = styled.div`\n min-height: 330px;\n background-image: url(${PitchSvg});\n background-repeat: no-repeat;\n background-position: center;\n background-size: 516px 330px;\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-height: 524px;\n background-size: 820px 524px;\n }\n`;\n\nconst StatusPitchRow = styled.div`\n display: flex;\n max-width: 410px;\n margin: auto;\n padding-bottom: 0.5rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n max-width: 620px;\n padding-bottom: 2.8rem;\n }\n`;\n\nconst StatusPitchUnit = styled.div`\n flex: 1;\n min-height: 7.2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-height: 9.6rem;\n }\n`;\n\ninterface IFormationProps {\n generateProps: (i: number) => {\n pick: IPickLight;\n renderElementMenu: () => void;\n renderPickValue: (pick: IPickLight) => React.ReactNode;\n };\n}\n\nconst FiveFourOne: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FiveThreeTwo: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FiveTwoThree: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FourFiveOne: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FourThreeThree: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FourFourTwo: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst ThreeFourThree: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst ThreeFiveTwo: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\ninterface IProps {\n chipName: string | null;\n formation: string;\n picks: IPickLight[];\n renderDreamTeam: (pick: IPickLight) => React.ReactNode;\n renderElementMenu: (element: number) => void;\n renderPickValue: (pick: IPickLight) => React.ReactNode;\n}\n\ninterface IFormations {\n [key: string]: React.ReactNode;\n}\n\nconst StatusFormation: React.FC = ({\n formation,\n picks,\n renderElementMenu,\n renderPickValue,\n}) => {\n const sharedTeamPitchElementProps = (i: number) => ({\n pick: picks[i],\n renderElementMenu: () => renderElementMenu(picks[i].element),\n renderPickValue,\n });\n const formations: IFormations = {\n \"1-5-4-1\": ,\n \"1-5-3-2\": ,\n \"1-5-2-3\": ,\n \"1-4-5-1\": ,\n \"1-4-4-2\": ,\n \"1-4-3-3\": ,\n \"1-3-5-2\": ,\n \"1-3-4-3\": ,\n };\n return {formations[formation]};\n};\n\nexport default StatusFormation;\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\n// import styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n dreamTeamAsPickLight,\n getEventDreamTeam,\n getEventDreamTeamFormation,\n} from \"../../core/store/dream-teams/reducers\";\nimport { fetchEventDreamTeam } from \"../../core/store/dream-teams/thunks\";\nimport {\n getElementsById,\n getElementsEventDataById,\n} from \"../../core/store/elements/reducers\";\nimport { fetchEventLive } from \"../../core/store/elements/thunks\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { getFixturesForEventById } from \"../../core/store/fixtures/reducers\";\nimport { fetchFixtures } from \"../../core/store/fixtures/thunks\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport ElementShirt from \"../ElementShirt\";\nimport SubHeading from \"../SubHeading\";\nimport ElementExplainDialog from \"../team/ElementExplainDialog\";\nimport valueForPlayerElement from \"../team/valueForPlayedElement\";\nimport { UnstyledButton } from \"../Utils\";\nimport StatusFormation from \"./StatusFormation\";\n\nconst StyledDreamTeam = styled.div`\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n align-items: center;\n }\n`;\n\nconst PitchWrap = styled.div`\n padding-top: ${({ theme }) => theme.space[4]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 66.66%;\n }\n`;\n\nconst TopPlayerWrap = styled.div`\n padding: ${({ theme }) => `${theme.space[4]} ${theme.space[2]}`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 33.33%;\n }\n`;\n\nconst TopScorer = styled.div`\n text-align: center;\n`;\n\nconst TopScorerHeading = styled.h4`\n margin: 0 0 ${({ theme }) => theme.space[3]};\n color: white;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 2rem;\n text-transform: uppercase;\n`;\n\nconst TopScorerCard = styled.div`\n display: inline-block;\n`;\n\nconst TopScorerShirt = styled.div`\n padding: ${({ theme }) => `${theme.space[2]} 3rem`};\n background-color: white;\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n`;\n\nconst TopScorerData = styled.div`\n font-size: ${({ theme }) => theme.fontSizes[2]};\n font-weight: bold;\n`;\n\nconst TopScorerName = styled.div`\n padding: ${({ theme }) => theme.space[1]};\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n color: ${({ theme }) => theme.colors.white};\n`;\n\nconst TopScorerPts = styled.div`\n padding: ${({ theme }) => theme.space[1]};\n background-color: ${({ theme }) => theme.colors.yellow};\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst TopScorerTeam = styled.div`\n padding: ${({ theme }) => theme.space[1]};\n border: 1px solid ${({ theme }) => theme.colors.yellow};\n border-bottom-left-radius: ${({ theme }) => theme.radii[2]};\n border-bottom-right-radius: ${({ theme }) => theme.radii[2]};\n background-color: white;\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst StatusDreamTeam: React.FC = () => {\n const { t } = useTranslation();\n const [elementForMenu, setElementForMenu] = useState(0);\n const now = useSelector(getCurrentEvent);\n const data = useSelector((state: RootState) =>\n now ? getEventDreamTeam(state, now.id) : null\n );\n const formation = useSelector((state: RootState) =>\n now ? getEventDreamTeamFormation(state, now.id) : null\n );\n const elementsById = useSelector(getElementsById);\n const elementsDataById = useSelector((state: RootState) =>\n now ? getElementsEventDataById(state, now.id) : null\n );\n const fixturesById = useSelector((state: RootState) =>\n now ? getFixturesForEventById(state, now.id) : null\n );\n const teamsById = useSelector(getTeamsById);\n\n const reduxDispatch = useDispatch();\n useEffect(() => {\n if (now) {\n const eventId = now.id;\n reduxDispatch(fetchEventDreamTeam(eventId));\n reduxDispatch(fetchEventLive(eventId));\n reduxDispatch(fetchFixtures(eventId));\n }\n }, [elementForMenu, now, reduxDispatch]);\n\n if (!data || !formation || !now) {\n return null;\n }\n const picks = dreamTeamAsPickLight(data.team);\n const topPlayer = elementsById[data.top_player.id];\n\n const handleShowMenuForElement = (element: number) => {\n setElementForMenu(element);\n };\n\n const handleHideMenuForElement = () => {\n setElementForMenu(0);\n };\n\n // Create a new function on each render as data could have changed and\n // need to ensure a render of connected subcomponents\n const renderPickValue = now\n ? valueForPlayerElement({\n elementsById,\n elementsDataById,\n fixturesById,\n teamsById,\n })\n : (pick: IPickLight) => {\n const elementData = data.team.filter((e) => e.element === pick.element);\n return elementData.length ? elementData[0].points : null;\n };\n\n return (\n
\n \n \n {t(\"statusDreamTeam.heading\", \"{{ eventName }} Dream Team\", {\n eventName: now.name,\n })}\n \n \n \n \n null}\n renderElementMenu={handleShowMenuForElement}\n renderPickValue={renderPickValue}\n />\n \n \n \n \n {t(\"statusDreamTeam.topScorer\", \"{{ eventName }} Top Scorer\", {\n eventName: now.name,\n })}\n \n \n handleShowMenuForElement(topPlayer.id)}\n >\n \n \n \n \n {topPlayer.web_name}\n {data.top_player.points}\n \n {teamsById[topPlayer.team].short_name}\n \n \n \n \n \n \n \n\n {elementForMenu ? (\n \n ) : null}\n
\n );\n};\n\nexport default StatusDreamTeam;\n","var _polygon;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTransferArrowRight(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 15,\n height: 12,\n viewBox: \"0 0 15 12\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"8.6 12 6.1 12 11 7.1 .5 7.1 .5 5.3 11 5.3 6.1 .4 8.6 .4 14.4 6.2\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTransferArrowRight);\nexport default __webpack_public_path__ + \"static/media/transfer-arrow-right.129329a4.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCup(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 14,\n viewBox: \"0 0 16 14\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13 2V0H3v2H0v2a3 3 0 0 0 3.9 2.862A5 5 0 0 0 7 8.899v3.1H6a2 2 0 0 0-2 2h8a2 2 0 0 0-2-2H9v-3.1a5.003 5.003 0 0 0 3.1-2.037A3 3 0 0 0 16 4V2h-3ZM3 5.813A1.815 1.815 0 0 1 1.187 4V3H3v1c0 .628.116 1.229.327 1.782-.106.019-.216.03-.327.03v.001ZM14.813 4a1.815 1.815 0 0 1-2.14 1.783A4.994 4.994 0 0 0 13 4.001v-1h1.813v1V4Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCup);\nexport default __webpack_public_path__ + \"static/media/cup.57c1dacc.svg\";\nexport { ForwardRef as ReactComponent };","import orderBy from \"lodash/orderBy\";\nimport { size } from \"polished\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../../core/store/element-types/types\";\nimport { getElements } from \"../../core/store/elements/reducers\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { ReactComponent as ArrowLeft } from \"../../img/icons/transfer-arrow-left.svg\";\nimport { ReactComponent as ArrowRight } from \"../../img/icons/transfer-arrow-right.svg\";\nimport BoldLink from \"../BoldLink\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport {\n ElementRow,\n ElementTable,\n PrimaryCell,\n PrimaryCellLined,\n} from \"../ElementTable\";\nimport SubHeading from \"../SubHeading\";\nimport { Ellipsis } from \"../Utils\";\nimport StatusPanel from \"./StatusPanel\";\nimport Panel from \"../Panel\";\n\nconst BodyArrowIn = styled(ArrowRight)`\n ${size(12)};\n fill: #2fab2f;\n`;\n\nconst BodyArrowOut = styled(ArrowLeft)`\n ${size(12)};\n fill: #de0f0f;\n`;\n\nconst TransfersTable = styled(ElementTable)`\n th:not(:nth-child(4)) {\n text-align: center;\n }\n\n th {\n :first-of-type {\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n }\n\n :last-of-type {\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n }\n }\n`;\n\nconst StatusCol = styled.th`\n width: 12%;\n`;\n\nconst ArrowCol = styled.th`\n width: 10%;\n`;\n\nconst PosCol = styled.th`\n width: 14%;\n text-align: center;\n`;\n\nconst ClubCol = styled.th`\n width: 16%;\n`;\n\nconst PlayerCol = styled.th`\n width: 32%;\n`;\n\nconst TransfersCol = styled.th`\n width: 16%;\n`;\n\ninterface IPropsFromState {\n elements: IElement[];\n elementTypesById: IElementTypesById;\n teamsById: ITeamsById;\n}\n\ninterface IOwnProps {\n isOut?: boolean;\n}\n\ntype Props = IPropsFromState & IOwnProps;\n\nconst TransfersPanel: React.FC = ({\n elements,\n elementTypesById,\n isOut,\n teamsById,\n}) => {\n const { t } = useTranslation();\n const stat = isOut ? \"transfers_out_event\" : \"transfers_in_event\";\n const transferStatus = isOut\n ? t(\"transfersPanel.out\", \"Out\")\n : t(\"transfersPanel.in\", \"In\");\n return (\n \n \n {t(\"transfersPanel.postitionShort\", \"Pos\")}\n \n }\n >\n \n {t(\"transfersPanel.heading\", \"Top Transfers {{ inOut }}\", {\n inOut: transferStatus,\n })}\n \n \n \n \n \n \n \n  \n  \n {t(\"transfersPanel.postitionShort\", \"Pos\")}\n {t(\"transfersPanel.player\", \"Player\")}\n {t(\"transfersPanel.club\", \"Club\")}\n  \n \n \n \n {orderBy(elements, [stat], [\"desc\"])\n .slice(0, 5)\n .map((e) => (\n \n \n \n \n \n {isOut ? : }\n \n \n {elementTypesById[e.element_type].singular_name_short}\n \n \n {e.web_name}\n \n {teamsById[e.team].short_name}\n {e[stat]}\n \n ))}\n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elements: getElements(state),\n elementTypesById: getElementTypesById(state),\n teamsById: getTeamsById(state),\n});\n\nexport default connect(mapStateToProps)(TransfersPanel);\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { IPlayer } from \"../../core/store/player/types\";\nimport ScoutProvider from \"../scout/ScoutProvider\";\nimport Title from \"../Title\";\nimport EventInfo from \"./EventInfo\";\nimport EventStatusBar from \"./EventStatusBar\";\nimport PlayerAvailability from \"./PlayerAvailability\";\nimport StatusDreamTeam from \"./StatusDreamTeam\";\nimport TransfersPanel from \"./TransfersPanel\";\n\nconst StatusWrapper = styled.div`\n max-width: 1220px;\n margin: 0 auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst StatusCols = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nconst StatusMain = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 66.66%;\n }\n`;\n\nconst StatusSecondary = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 30%;\n }\n`;\ninterface IProvider {\n link: string;\n url: string;\n}\n\nconst providers: IProvider[] = [\n {\n url: \"https://allsvenskan.se/fantasy-feed\",\n link: \"https://allsvenskan.se/fantasy/\",\n },\n];\n\ninterface IPropsFromState {\n now: IEvent | null;\n player: IPlayer | null;\n}\n\nconst Status: React.FC = ({ now, player }) => {\n const { t } = useTranslation();\n\n if (!now || !player) {\n return null;\n }\n\n return (\n \n \n

\n {t(\"status.loggedIn\", \"You are logged in as {{ name }}\", {\n name: `${player.first_name} ${player.last_name}`,\n })}\n

\n {`${now.name} Status`}\n
\n \n \n \n \n \n \n \n {t(\"status.scout.title\", \"The Scout\")}\n \n {providers.map((provider: IProvider) => (\n \n ))}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n now: getCurrentEvent(state),\n player: getPlayerData(state),\n});\n\nexport default connect(mapStateToProps)(Status);\n","import React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport Button from \"./Button\";\n\ninterface SProps {\n lgSrc?: string;\n mdSrc: string;\n smSrc: string;\n reverse?: boolean;\n}\n\ninterface SVGProps {\n reverse?: boolean;\n highlight?: boolean;\n}\n\nconst Title = styled.h3`\n font-size: 20px;\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impact};\n margin-bottom: ${({ theme }) => theme.space[1]};\n text-transform: uppercase;\n`;\n\nconst Description = styled.p`\n margin-top: 0;\n margin-bottom: 0;\n font-size: 14px;\n color: ${({ theme }) => theme.colors.white};\n`;\n\nconst StyledTriangleCard = styled.div`\n position: relative;\n display: flex;\n height: 100%;\n width: 100%;\n min-height: 230px;\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n\n ${({ reverse }) =>\n reverse === true &&\n css`\n flex-direction: row-reverse;\n `}\n\n ${({ highlight }) =>\n highlight === true &&\n css`\n min-height: 320px;\n background-color: #005b6d;\n\n ${Title} {\n font-size: 26px;\n line-height: 32px;\n }\n `}\n`;\n\nconst BtnWrapper = styled.div`\n width: 100%;\n margin-top: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 40%;\n }\n`;\n\nconst BgImg = styled.div`\n display: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n position: relative;\n min-height: 230px;\n width: 50%;\n display: flex;\n align-items: center;\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n border-bottom-right-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.grey};\n background-image: url(${({ smSrc }) => smSrc});\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n background-image: url(${({ mdSrc }) => mdSrc});\n }\n`;\n\nconst Content = styled.div`\n position: relative;\n z-index: 10;\n width: 100%;\n display: flex;\n align-items: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 50%;\n border-right: 3px solid ${({ theme }) => theme.colors.yellow};\n }\n`;\n\nconst ContentInner = styled.div`\n position: relative;\n z-index: 10;\n padding: 2rem 3rem;\n color: ${({ theme }) => theme.colors.black};\n\n ${({ highlight }) =>\n highlight === true &&\n css`\n color: ${({ theme }) => theme.colors.white};\n `}\n\n button {\n margin-top: ${({ theme }) => theme.space[1]};\n }\n`;\n\ninterface IProps {\n title: string;\n desc: string;\n lgSrc?: string;\n mdSrc: string;\n smSrc: string;\n btnText?: string;\n btnLink?: string;\n reverse?: boolean;\n highlight?: boolean;\n}\n\nconst TriangleCard = ({\n lgSrc,\n mdSrc,\n smSrc,\n title,\n desc,\n btnText,\n btnLink,\n reverse,\n highlight,\n}: IProps) => (\n \n \n \n {title}\n {desc}\n {btnText && (\n \n \n \n )}\n \n \n \n \n);\n\nexport default TriangleCard;\n","import { RouteComponentProps } from \"@reach/router\";\nimport { hiDPI } from \"polished\";\nimport React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../core/store\";\nimport { getCurrentEvent } from \"../core/store/events/reducers\";\nimport { IEvent } from \"../core/store/events/types\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { IPlayer } from \"../core/store/player/types\";\n// Hero images\nimport heroImg1x from \"../img/hero@1x.jpg\";\nimport heroImg2x from \"../img/hero@2x.jpg\";\n// Highlight images\nimport homeFirst1x from \"../img/home/home-first@1x.jpg\";\nimport homeFirst2x from \"../img/home/home-first@2x.jpg\";\nimport homeSecond1x from \"../img/home/home-first@1x.jpg\";\nimport homeSecond2x from \"../img/home/home-second@2x.jpg\";\n// import pitch from \"../img/home/pitch.jpg\";\n// import pitch2x from \"../img/home/pitch@2x.jpg\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Login from \"./Login\";\nimport Status from \"./status/Status\";\nimport TriangleCard from \"./TriangleCard\";\n\nconst HomeHero = styled.div`\n margin-left: ${({ theme }) => theme.space[2]};\n margin-right: ${({ theme }) => theme.space[2]};\n margin-bottom: 60px;\n padding-top: 270px;\n text-align: center;\n height: 0;\n position: relative;\n border-radius: ${({ theme }) => theme.radii[2]};\n background-image: url(${heroImg1x});\n background-size: cover;\n background-repeat: no-repeat;\n\n ${hiDPI(2)} {\n background-image: url(${heroImg2x});\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nconst Highlights = styled.div`\n margin: ${({ theme }) => theme.space[4]} ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n justify-content: space-between;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nconst HighlightsItem = styled.div`\n margin-bottom: ${({ theme }) => theme.space[4]};\n border-radius: ${({ theme }) => theme.radii[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex: 0 0 calc(50% - 1rem);\n margin-bottom: 0;\n }\n`;\n\ninterface IPropsFromState {\n now: IEvent | null;\n player: IPlayer | null;\n}\n\ntype Props = RouteComponentProps & IPropsFromState & WithTranslation;\n\nclass Home extends React.Component {\n public componentDidMount() {\n this.TrackFacebook();\n }\n\n public TrackFacebook() {\n const fbq = (window as any).fbq;\n if (fbq) {\n fbq(\"trackCustom\", \"FPLLanding\");\n }\n }\n\n public render() {\n const { t, now, player } = this.props;\n\n // Show the status page if have a team and the game has started\n if (now && player && player.entry) {\n return ;\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n {/* \n \n */}\n
\n
\n );\n }\n}\n\nexport { Home as HomeTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n now: getCurrentEvent(state),\n player: getPlayerData(state),\n});\n\nexport default withTranslation()(connect(mapStateToProps)(Home));\n","import { RouteComponentProps } from \"@reach/router\";\nimport moment from \"moment\";\nimport * as React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport { getElementsById } from \"../core/store/elements/reducers\";\nimport { showElementSummary } from \"../core/store/elements/thunks\";\nimport { IElementsById } from \"../core/store/elements/types\";\nimport { getEntry, getTransfersForEntry } from \"../core/store/entries/reducers\";\nimport {\n fetchEntrySummary,\n fetchEntryTransfers,\n} from \"../core/store/entries/thunks\";\nimport { IEntry, ITransfer } from \"../core/store/entries/types\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { getLatestTransfers } from \"../core/store/squad/reducers\";\nimport { fetchLatestTransfers } from \"../core/store/squad/thunks\";\nimport Entry from \"./Entry\";\nimport { Main, Secondary, Wrapper } from \"./Layout\";\nimport Table, { THeadRadius } from \"./Table\";\nimport Title from \"./Title\";\nimport Panel from \"./Panel\";\n\nconst DialogButton = styled.button`\n padding: 0;\n border: 0;\n background-color: transparent;\n color: ${({ theme }) => theme.colors.white};\n font-size: inherit;\n text-decoration: none;\n text-align: left;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\ntype OwnProps = RouteComponentProps<{ entryId: string }>;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n entry: IEntry | null;\n latestTransfers: ITransfer[];\n mine: boolean;\n transfersHistory: ITransfer[];\n}\n\ninterface IPropsFromDispatch {\n fetchEntrySummary: (entryId: number) => void;\n fetchEntryTransfers: (entryId: number) => void;\n fetchLatestTransfers: () => void;\n showElementDialog: (elementId: number) => void;\n}\n\ntype Props = OwnProps & WithTranslation & IPropsFromState & IPropsFromDispatch;\n\nclass TransfersHistory extends React.Component {\n public componentDidMount() {\n this.props.fetchEntrySummary(Number(this.props.entryId));\n this.props.fetchEntryTransfers(Number(this.props.entryId));\n if (this.props.mine) {\n this.props.fetchLatestTransfers();\n }\n }\n\n public render() {\n const {\n elementsById,\n entryId,\n latestTransfers,\n showElementDialog,\n transfersHistory,\n t,\n } = this.props;\n\n return (\n \n
\n \n {t(\"transfersHistory.title\", \"Transfers\")}\n \n {transfersHistory.length || latestTransfers.length ? (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n {latestTransfers.concat(transfersHistory).map((t) => (\n \n \n \n \n \n \n ))}\n \n
{t(\"transfersHistory.time\", \"Time\")}{t(\"transfersHistory.in\", \"In\")}{t(\"transfersHistory.out\", \"Out\")}{t(\"transfersHistory.active\", \"Active\")}
{moment(t.time).format(\"D MMM HH:mm\")}\n \n showElementDialog(\n elementsById[t.element_in].id\n )\n }\n >\n {elementsById[t.element_in].web_name}\n \n \n \n showElementDialog(\n elementsById[t.element_out].id\n )\n }\n >\n {elementsById[t.element_out].web_name}\n \n {`RD${t.event}`}
\n
\n
\n
\n \n

\n {t(\n \"transfersHistory.p1\",\n \"If you are not logged in or are viewing another player's team then you will only be able to view transfers up to the last deadline.\"\n )}\n

\n
\n \n ) : (\n \n {t(\n \"transfersHistory.p2\",\n \"No transfers have been made yet for this team.\"\n )}\n \n )}\n
\n \n \n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps) => {\n const entryId = Number(ownProps.entryId);\n const player = getPlayerData(state);\n let mine = player && player.entry && player.entry === entryId ? true : false;\n let latestTransfers = mine ? getLatestTransfers(state) : [];\n return {\n elementsById: getElementsById(state),\n entry: getEntry(state, entryId),\n latestTransfers,\n mine,\n transfersHistory: getTransfersForEntry(state, entryId),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n fetchEntryTransfers: (entryId: number) =>\n dispatch(fetchEntryTransfers(entryId)),\n fetchLatestTransfers: () => dispatch(fetchLatestTransfers()),\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(TransfersHistory)\n);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { getElements } from \"../../core/store/elements/reducers\";\nimport { getElementTypes } from \"../../core/store/element-types/reducers\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { RootState } from \"../../core/store\";\nimport { ITeam, ITeamsById } from \"../../core/store/teams/types\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport { IElementType } from \"../../core/store/element-types/types\";\nimport { RouteComponentProps } from \"@reach/router\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport { Wrapper, Main } from \"../Layout\";\nimport Table from \"../Table\";\nimport SubHeading from \"../SubHeading\";\n\ninterface IElementListElementProps {\n element: IElement;\n team: ITeam;\n}\nconst ElementListElement: React.FC = ({\n element,\n team,\n}) => (\n \n {element.web_name}\n {team.name}\n {element.total_points}\n kr{integerToMoney(element.now_cost, 10)}\n \n);\n\ninterface IElementListTableProps {\n elements: IElement[];\n teamsById: ITeamsById;\n}\nconst ElementListTable: React.FC = ({\n elements,\n teamsById,\n}) => (\n \n \n \n \n \n \n \n \n \n \n {elements.map((element) => (\n \n ))}\n \n
PlayerTeamPointsCost
\n);\n\ninterface IElementListPositionProps {\n elements: IElement[];\n elementType: IElementType;\n teamsById: ITeamsById;\n}\nconst ElementListPosition: React.FC = ({\n elements,\n elementType,\n teamsById,\n}) => {\n const halfElements = Math.ceil(elements.length / 2);\n const firstHalfElements = elements.slice(0, halfElements);\n const secondHalfElements = elements.slice(halfElements, elements.length);\n return (\n \n
\n {elementType.plural_name}\n
\n \n \n
\n
\n
\n );\n};\n\ninterface IPropsFromState {\n elements: IElement[];\n elementTypes: IElementType[];\n teamsById: ITeamsById;\n}\n\ntype Props = RouteComponentProps & IPropsFromState;\n\nconst PlayerList: React.FC = ({ elements, elementTypes, teamsById }) => (\n
\n {elementTypes.map((et) => (\n e.element_type === et.id)\n .sort((a, b) => b.now_cost - a.now_cost)}\n elementType={et}\n key={et.id}\n teamsById={teamsById}\n />\n ))}\n
\n);\n\nexport { PlayerList as PlayerListTest };\n\nconst mapStateToProps = (state: RootState) => ({\n elements: getElements(state),\n elementTypes: getElementTypes(state),\n teamsById: getTeamsById(state),\n});\n\nexport default connect(mapStateToProps)(PlayerList);\n","import React from \"react\";\nimport Downshift from \"downshift\";\nimport { SearchField } from \"../../FieldRenderers\";\nimport debounce from \"lodash/debounce\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IEntry {\n entry: number;\n player_name: string;\n entry_name: string;\n}\n\ninterface IEntrySelectorProps {\n entries: IEntry[];\n handleChange: (selectedItem: any) => void;\n searchChange: (value: string) => any;\n}\n\nconst EntrySelector: React.FC = ({\n entries,\n handleChange,\n searchChange,\n}) => {\n const { t } = useTranslation();\n\n return (\n handleChange(Number(selection.entry))}\n onInputValueChange={debounce(searchChange, 400)}\n itemToString={(item) => (item ? item.player_name : \"\")}\n >\n {({\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n isOpen,\n highlightedIndex,\n selectedItem,\n }) => (\n
\n \n
    \n {isOpen\n ? entries.map((item, index) => (\n \n {item.player_name} ({item.entry_name})\n \n ))\n : null}\n
\n
\n )}\n \n );\n};\n\ninterface IProps {\n excluded?: number[];\n handleChange: (selectedItem: any) => void;\n leagueId: number;\n}\n\ninterface IState {\n entries: IEntry[];\n}\n\nclass EntrySelectorWrapper extends React.Component {\n public state: IState = {\n entries: [],\n };\n\n public lastSearch = \"\";\n\n public searchChange = async (value: string) => {\n const { excluded = [], handleChange, leagueId } = this.props;\n\n // If the search term has been cleared, clear any state\n if (!value.length) {\n handleChange(0);\n this.setState({ entries: [] });\n this.lastSearch = \"\";\n }\n\n // We are only interested in first name searches\n const searchMatches = value.match(/^(.*?) /);\n if (searchMatches && searchMatches[1] !== this.lastSearch) {\n const response = await fetch(\n `/api/league/${leagueId}/search-entries/?search=${encodeURIComponent(\n searchMatches[1]\n )}`\n );\n this.lastSearch = searchMatches[1];\n if (response.ok) {\n const entries: IEntry[] = await response.json();\n this.setState({\n entries: entries.filter((e) => excluded.indexOf(e.entry) === -1),\n });\n }\n }\n };\n\n public render() {\n return (\n \n );\n }\n}\n\nexport default EntrySelectorWrapper;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { ThunkDispatch } from \"../../../core/store\";\nimport { banLeagueEntry } from \"../../../core/store/leagues/thunks\";\nimport {\n IBanEntryData,\n IPrivateLeagueAdmin,\n} from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport { FieldWrap } from \"../../FieldRenderers\";\nimport SubHeading from \"../../SubHeading\";\nimport EntrySelector from \"./EntrySelector\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n}\n\ninterface IPropsFromDispatch {\n banLeagueEntry: (leagueId: number, data: IBanEntryData) => void;\n}\n\ntype Props = IOwnProps & IPropsFromDispatch & WithTranslation;\n\ninterface IState {\n entry: number;\n}\n\nclass AddBan extends React.Component {\n public state: IState = {\n entry: 0,\n };\n\n public handleEntryChange = (entryId: number) => {\n this.setState({ entry: entryId });\n };\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n this.props.banLeagueEntry(this.props.league.id, this.apiDataFromState());\n };\n\n public apiDataFromState = (): IBanEntryData => ({\n entry: this.state.entry,\n });\n\n public render() {\n const disabled = !this.state.entry;\n const { t, league } = this.props;\n return (\n <>\n {t(\"addBan.title\", \"Add league suspensions\")}\n

\n {t(\n \"addBan.description\",\n \"Search for the player you wish to suspend from this league. Once the player has been suspended they will be unable to rejoin the league again.\"\n )}\n

\n
\n \n \n \n \n \n \n
\n \n );\n }\n}\nexport { AddBan as AddBanTest };\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n banLeagueEntry: (leagueId: number, data: IBanEntryData) =>\n dispatch(banLeagueEntry(leagueId, data)),\n});\n\nexport default withTranslation()(connect(null, mapDispatchToProps)(AddBan));\n","import React from \"react\";\nimport { IPrivateLeagueAdmin } from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport { FieldWrap } from \"../../FieldRenderers\";\nimport SubHeading from \"../../SubHeading\";\nimport EntrySelector from \"./EntrySelector\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\ninterface IProps {\n updateAdmin: (entryId: number) => void;\n league: IPrivateLeagueAdmin;\n}\n\ntype Props = IProps & WithTranslation;\n\ninterface IState {\n entry: number;\n}\n\nclass ChangeAdmin extends React.Component {\n public state: IState = {\n entry: 0,\n };\n\n public handleEntryChange = (entryId: number) => {\n this.setState({ entry: entryId });\n };\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n this.props.updateAdmin(this.state.entry);\n };\n\n public render() {\n const disabled = !this.state.entry;\n const { league, t } = this.props;\n return (\n <>\n \n {t(\"changeAdmin.title\", \"Change league administrator\")}\n \n
\n \n \n \n \n \n \n
\n \n );\n }\n}\n\nexport default withTranslation()(ChangeAdmin);\n","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../../core/store\";\nimport { getEvents } from \"../../../core/store/events/reducers\";\nimport { IEvent } from \"../../../core/store/events/types\";\nimport { updateClassicLeague } from \"../../../core/store/leagues/thunks\";\nimport {\n IPrivateLeagueAdmin,\n IUpdateClassicLeagueData,\n LeagueCodePrivacy,\n} from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport {\n CheckboxField,\n FieldWrap,\n InputField,\n SelectField,\n} from \"../../FieldRenderers\";\nimport SubHeading from \"../../SubHeading\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n}\n\ninterface IPropsFromState {\n events: IEvent[];\n}\n\ninterface IPropsFromDispatch {\n updateLeague: (leagueId: number, data: IUpdateClassicLeagueData) => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\ninterface IState {\n codePrivacy: LeagueCodePrivacy;\n closed: boolean;\n name: string;\n startEvent: number;\n}\n\nclass ClassicDetails extends React.Component {\n public requiredFields: Array = [\n \"codePrivacy\",\n \"name\",\n \"startEvent\",\n ];\n\n public privacyOptions: { [key: string]: string } = {\n a: \"All game players\",\n l: \"League members\",\n p: \"League administrator\",\n };\n\n constructor(props: Props) {\n super(props);\n this.state = {\n closed: props.league.closed,\n codePrivacy: props.league.code_privacy,\n name: props.league.name,\n startEvent: props.league.start_event,\n };\n }\n\n public apiDataFromState = (): IUpdateClassicLeagueData => ({\n admin_entry: this.props.league.admin_entry,\n closed: this.state.closed,\n code_privacy: this.state.codePrivacy,\n name: this.state.name,\n start_event: this.state.startEvent,\n });\n\n public handleNameChange = (e: React.FormEvent) =>\n this.setState({ name: e.currentTarget.value });\n\n public handleCodePrivacyChange = (e: React.FormEvent) =>\n this.setState({ codePrivacy: e.currentTarget.value as LeagueCodePrivacy });\n\n public handleStartEventChange = (e: React.FormEvent) =>\n this.setState({ startEvent: parseInt(e.currentTarget.value, 10) });\n\n public handleClosedChange = (e: React.FormEvent) =>\n this.setState({ closed: e.currentTarget.checked ? true : false });\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n this.props.updateLeague(this.props.league.id, this.apiDataFromState());\n };\n\n public render() {\n const { t, events } = this.props;\n const disabled = this.requiredFields.some((e) => !this.state[e]);\n return (\n <>\n {t(\"classicDetails.title\", \"League details\")}\n
\n \n \n \n \n \n {Object.keys(this.privacyOptions).map((p) => (\n \n {this.privacyOptions[p]}\n \n ))}\n \n \n \n \n {events.map((e) => (\n \n {e.name}\n \n ))}\n \n \n \n \n \n \n \n \n
\n \n );\n }\n}\n\nexport { ClassicDetails as ClassicDetailsTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n events: getEvents(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n updateLeague: (leagueId: number, data: IUpdateClassicLeagueData) =>\n dispatch(updateClassicLeague(leagueId, data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(ClassicDetails)\n);\n","import React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../../core/store\";\nimport { getCode } from \"../../../core/store/leagues/reducers\";\nimport {\n fetchLeagueCode,\n regenerateLeagueCode,\n} from \"../../../core/store/leagues/thunks\";\nimport { IPrivateLeagueAdmin } from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n}\n\ninterface IPropsFromState {\n code: string | null;\n}\n\ninterface IPropsFromDispatch {\n fetchCode: (leagueId: number) => void;\n regenerateCode: (leagueId: number) => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\nclass Code extends React.Component {\n public componentDidMount() {\n if (!this.props.league.closed) {\n this.props.fetchCode(this.props.league.id);\n }\n }\n\n public render() {\n const { code, league, regenerateCode, t } = this.props;\n if (league.closed) {\n return null;\n }\n return (\n <>\n

\n {t(\"leagues.code\", \"League code\")}: {code}\n

\n \n \n \n \n );\n }\n}\n\nexport { Code as CodeTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: IOwnProps\n): IPropsFromState => ({\n code: getCode(state, ownProps.league.id),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchCode: (leagueId: number) => dispatch(fetchLeagueCode(leagueId)),\n regenerateCode: (leagueId: number) =>\n dispatch(regenerateLeagueCode(leagueId)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(Code)\n);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { ThunkDispatch } from \"../../../core/store\";\nimport { deleteLeague } from \"../../../core/store/leagues/thunks\";\nimport { IPrivateLeagueAdmin } from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport SubHeading from \"../../SubHeading\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n}\n\ninterface IPropsFromDispatch {\n remove: (leagueId: number) => void;\n}\n\ntype Props = IOwnProps & IPropsFromDispatch & WithTranslation;\n\nclass Delete extends React.Component {\n public render() {\n const { t, league, remove } = this.props;\n return (\n <>\n {t(\"delete.title\", \"Delete league\")}\n

\n {t(\n \"delete.description\",\n \"To delete the league, click on the button below. The players entered in the league will still exist and can enter other leagues if desired.\"\n )}\n

\n \n \n );\n }\n}\n\nexport { Delete as DeleteTest };\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n remove: (leagueId: number) => {\n if (window.confirm(\"Are you sure you want to delete this league?\")) {\n dispatch(deleteLeague(leagueId));\n }\n },\n});\n\nexport default withTranslation()(connect(null, mapDispatchToProps)(Delete));\n","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { ThunkDispatch } from \"../../../core/store\";\nimport { unbanLeagueEntry } from \"../../../core/store/leagues/thunks\";\nimport {\n IBanEntryData,\n IPrivateLeagueAdmin,\n} from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport SubHeading from \"../../SubHeading\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n}\n\ninterface IPropsFromDispatch {\n unban: (leagueId: number, data: IBanEntryData) => void;\n}\n\ntype Props = IOwnProps & IPropsFromDispatch & WithTranslation;\n\nclass RemoveBan extends React.Component {\n public render() {\n if (!this.props.league.bans.length) {\n return null;\n }\n const { league, t, unban } = this.props;\n return (\n <>\n \n {t(\"removeBan.title\", \"Remove league suspensions\")}\n \n

\n {t(\n \"removeBan.description\",\n \"If a player has a suspension removed, they will need to join the league again.\"\n )}\n

\n
    \n {league.bans.map((b) => (\n
  • \n {b.player_name}\n \n
  • \n ))}\n
\n \n );\n }\n}\nexport { RemoveBan as RemoveBanTest };\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n unban: (leagueId: number, data: IBanEntryData) =>\n dispatch(unbanLeagueEntry(leagueId, data)),\n});\n\nexport default withTranslation()(connect(null, mapDispatchToProps)(RemoveBan));\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getLeagueAdmin } from \"../../core/store/leagues/reducers\";\nimport {\n fetchClassicLeagueForAdmin,\n updateClassicLeague,\n} from \"../../core/store/leagues/thunks\";\nimport {\n IPrivateLeagueAdmin,\n IUpdateClassicLeagueData,\n} from \"../../core/store/leagues/types\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\nimport AddBan from \"./admin/AddBan\";\nimport ChangeAdmin from \"./admin/ChangeAdmin\";\nimport ClassicDetails from \"./admin/ClassicDetails\";\nimport Code from \"./admin/Code\";\nimport Delete from \"./admin/Delete\";\nimport RemoveBan from \"./admin/RemoveBan\";\n\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\ninterface IPropsFromState {\n league: IPrivateLeagueAdmin | null;\n leagueNumber: number;\n}\n\ninterface IPropsFromDispatch {\n fetchLeague: (leagueId: number) => void;\n updateLeague: (leagueId: number, data: IUpdateClassicLeagueData) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\nclass AdminClassic extends React.Component {\n public componentDidMount() {\n if (this.props.leagueNumber) {\n this.props.fetchLeague(this.props.leagueNumber);\n }\n }\n\n public render() {\n const { league, t, updateLeague } = this.props;\n if (!league) {\n return null;\n }\n return (\n \n
\n \n {t(\"leagues.adminTitle\", \"League Administration\")}\n \n \n \n \n \n \n \n \n \n \n \n \n updateLeague(league.id, {\n admin_entry: entryId,\n closed: league.closed,\n code_privacy: league.code_privacy,\n name: league.name,\n start_event: league.start_event,\n })\n }\n />\n \n \n \n \n \n
\n
\n );\n }\n}\n\nexport { AdminClassic as AdminClassicTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n const leagueNumber =\n ownProps.leagueId && parseInt(ownProps.leagueId, 10)\n ? parseInt(ownProps.leagueId, 10)\n : 0;\n return {\n league: leagueNumber\n ? (getLeagueAdmin(state, leagueNumber) as IPrivateLeagueAdmin)\n : null,\n leagueNumber,\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchLeague: (leagueId: number) =>\n dispatch(fetchClassicLeagueForAdmin(leagueId)),\n updateLeague: (leagueId: number, data: IUpdateClassicLeagueData) =>\n dispatch(updateClassicLeague(leagueId, data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(AdminClassic)\n);\n","import range from \"lodash/range\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../../core/store\";\nimport { getFutureEvents } from \"../../../core/store/events/reducers\";\nimport { IEvent } from \"../../../core/store/events/types\";\nimport { getSettings } from \"../../../core/store/game/reducers\";\nimport { ISettings } from \"../../../core/store/game/types\";\nimport { updateH2HLeague } from \"../../../core/store/leagues/thunks\";\nimport {\n IPrivateLeagueAdmin,\n IUpdateH2HLeagueData,\n LeagueCodePrivacy,\n} from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport {\n CheckboxField,\n InputField,\n SelectField,\n FieldWrap,\n} from \"../../FieldRenderers\";\nimport SubHeading from \"../../SubHeading\";\nimport { Box } from \"rebass/styled-components\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n started: boolean;\n}\n\ninterface IPropsFromState {\n events: IEvent[];\n settings: ISettings;\n}\n\ninterface IPropsFromDispatch {\n updateLeague: (leagueId: number, data: IUpdateH2HLeagueData) => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\ninterface IState {\n codePrivacy: LeagueCodePrivacy;\n closed: boolean;\n koRounds: number;\n maxEntries: number;\n name: string;\n startEvent: number;\n}\n\nclass H2HDetails extends React.Component {\n public requiredFields: Array = [\n \"codePrivacy\",\n \"name\",\n \"startEvent\",\n ];\n\n public privacyOptions: { [key: string]: string } = {\n a: \"All game players\",\n l: \"League members\",\n p: \"League administrator\",\n };\n\n constructor(props: Props) {\n super(props);\n this.state = {\n closed: props.league.closed,\n codePrivacy: props.league.code_privacy,\n koRounds: props.league.ko_rounds || 0,\n maxEntries: props.league.max_entries || 0,\n name: props.league.name,\n startEvent: props.league.start_event,\n };\n }\n\n public maximumKoRounds = () => {\n const remainingEvents = this.props.events.length;\n if (remainingEvents <= 1) {\n return 0;\n }\n return Math.min(\n this.props.settings.league_max_ko_rounds_private_h2h,\n remainingEvents - 1\n );\n };\n\n public minimumSize = (koRounds: number) =>\n this.state.koRounds ? Math.pow(2, koRounds) : 2;\n\n public validStartingEvents = (koRounds: number) =>\n koRounds ? this.props.events.slice(0, -koRounds) : this.props.events;\n\n public apiDataFromState = (): IUpdateH2HLeagueData => ({\n admin_entry: this.props.league.admin_entry,\n closed: this.state.closed,\n code_privacy: this.state.codePrivacy,\n ko_rounds: this.state.koRounds || null,\n max_entries: this.state.maxEntries || null,\n name: this.state.name,\n start_event: this.state.startEvent,\n });\n\n public handleNameChange = (e: React.FormEvent) =>\n this.setState({ name: e.currentTarget.value });\n\n public handleCodePrivacyChange = (e: React.FormEvent) =>\n this.setState({ codePrivacy: e.currentTarget.value as LeagueCodePrivacy });\n\n public handleStartEventChange = (e: React.FormEvent) =>\n this.setState({ startEvent: parseInt(e.currentTarget.value, 10) });\n\n public handleClosedChange = (e: React.FormEvent) =>\n this.setState({ closed: e.currentTarget.checked ? true : false });\n\n public handleMaxEntriesChange = (e: React.FormEvent) =>\n this.setState({ maxEntries: parseInt(e.currentTarget.value, 10) });\n\n public handleKoRoundsChange = (e: React.FormEvent) => {\n const koRounds = parseInt(e.currentTarget.value, 10);\n const minimumSize = this.minimumSize(koRounds);\n const events = this.validStartingEvents(koRounds);\n this.setState({\n koRounds,\n maxEntries: this.state.maxEntries\n ? Math.max(minimumSize, this.state.maxEntries)\n : 0,\n startEvent: Math.min(events[events.length - 1].id, this.state.startEvent),\n });\n };\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n this.props.updateLeague(this.props.league.id, this.apiDataFromState());\n };\n\n public render() {\n const { settings, started, t } = this.props;\n const disabled = this.requiredFields.some((e) => !this.state[e]);\n return (\n <>\n {t(\"h2hDetails.details\", \"League details\")}\n
\n \n \n \n {!started && (\n <>\n \n \n {Object.keys(this.privacyOptions).map((p) => (\n \n {this.privacyOptions[p]}\n \n ))}\n \n \n \n \n {this.validStartingEvents(this.state.koRounds).map((e) => (\n \n {e.name}\n \n ))}\n \n \n \n \n \n {range(\n this.minimumSize(this.state.koRounds),\n settings.league_max_size_private_h2h + 1\n ).map((num) => (\n \n {num}\n \n ))}\n \n \n {this.maximumKoRounds() > 0 && (\n \n \n {range(1, this.maximumKoRounds() + 1).map((num) => (\n \n {num}\n \n ))}\n \n )}\n \n \n \n \n )}\n \n \n \n \n \n );\n }\n}\n\nexport { H2HDetails as H2HDetailsTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n events: getFutureEvents(state),\n settings: getSettings(state) as ISettings,\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n updateLeague: (leagueId: number, data: IUpdateH2HLeagueData) =>\n dispatch(updateH2HLeague(leagueId, data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(H2HDetails)\n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getLeagueAdmin } from \"../../core/store/leagues/reducers\";\nimport {\n fetchH2HLeagueForAdmin,\n updateH2HLeague,\n} from \"../../core/store/leagues/thunks\";\nimport {\n IPrivateLeagueAdmin,\n IUpdateH2HLeagueData,\n} from \"../../core/store/leagues/types\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\nimport AddBan from \"./admin/AddBan\";\nimport ChangeAdmin from \"./admin/ChangeAdmin\";\nimport Code from \"./admin/Code\";\nimport Delete from \"./admin/Delete\";\nimport H2HDetails from \"./admin/H2HDetails\";\nimport RemoveBan from \"./admin/RemoveBan\";\nimport { Box } from \"rebass/styled-components\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\ninterface IPropsFromState {\n league: IPrivateLeagueAdmin | null;\n leagueNumber: number;\n now: IEvent | null;\n}\n\ninterface IPropsFromDispatch {\n fetchLeague: (leagueId: number) => void;\n updateLeague: (leagueId: number, data: IUpdateH2HLeagueData) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\nclass AdminClassic extends React.Component {\n public componentDidMount() {\n if (this.props.leagueNumber) {\n this.props.fetchLeague(this.props.leagueNumber);\n }\n }\n\n public render() {\n const { league, now, t, updateLeague } = this.props;\n if (!league) {\n return null;\n }\n const started = Boolean(now && now.id >= league.start_event);\n return (\n \n
\n \n {t(\"leagues.adminTitle\", \"League Administration\")}\n {!started && }\n \n \n \n {!started && (\n \n \n \n )}\n {!started && (\n \n \n \n )}\n {!started && (\n \n \n updateLeague(league.id, {\n admin_entry: entryId,\n closed: league.closed,\n code_privacy: league.code_privacy,\n ko_rounds: league.ko_rounds,\n max_entries: league.max_entries,\n name: league.name,\n start_event: league.start_event,\n })\n }\n />\n \n )}\n {!started && (\n \n \n \n )}\n \n
\n
\n );\n }\n}\n\nexport { AdminClassic as AdminClassicTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n const leagueNumber =\n ownProps.leagueId && parseInt(ownProps.leagueId, 10)\n ? parseInt(ownProps.leagueId, 10)\n : 0;\n return {\n league: leagueNumber\n ? (getLeagueAdmin(state, leagueNumber) as IPrivateLeagueAdmin)\n : null,\n leagueNumber,\n now: getCurrentEvent(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchLeague: (leagueId: number) => dispatch(fetchH2HLeagueForAdmin(leagueId)),\n updateLeague: (leagueId: number, data: IUpdateH2HLeagueData) =>\n dispatch(updateH2HLeague(leagueId, data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(AdminClassic)\n);\n","import React, { useEffect } from \"react\";\nimport { RouteComponentProps, navigate } from \"@reach/router\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { setCode, clearCode } from \"../../core/store/leagues/thunks\";\n\n// AutoJoin component simply stores the code in local storage and redirects\n// the user somewhere sensible.\n\ntype OwnProps = RouteComponentProps<{ code: string }>;\n\nconst AutoJoin: React.FC = ({ code }) => {\n const player = useSelector(getPlayerData);\n const reduxDispatch = useDispatch();\n useEffect(() => {\n code ? reduxDispatch(setCode(code)) : reduxDispatch(clearCode());\n });\n const next =\n player && player.entry ? \"/my-team\" : player ? \"/squad-selection\" : \"/\";\n\n // Need this to make sure LocationProvider is ready\n setTimeout(() => {\n return navigate(next, {\n replace: true,\n });\n }, 0);\n return
;\n};\n\nexport default AutoJoin;\n","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\n\nconst Create: React.FC = () => {\n const { t } = useTranslation();\n return (\n \n
\n \n \n {t(\"createLeagues.title\", \"Choose a league type to create\")}\n \n \n \n {t(\"createLeagues.classic.title\", \"Classic scoring\")}\n \n

\n {t(\n \"createLeagues.classic.p1\",\n \"In a league with classic scoring, teams are ranked based on their total points in the game. You can join or leave a league with classic scoring at any point during the season.\"\n )}\n

\n\n \n
\n \n \n {t(\"createLeagues.h2H.title\", \"Head-to-Head scoring\")}\n \n

\n {t(\n \"createLeagues.h2H.p1\",\n \"In a league with head-to-head scoring, every team plays a match against another team in the league each Round. The match result is based on the Round score of each team minus any transfer points spent preparing for the Round.\"\n )}\n

\n

\n {t(\n \"createLeagues.h2H.p2\",\n \"The Head-to-Head schedule is generated at the start of the league's first Round. Once the schedule has been generated the league is locked and teams will not be able to join or leave.\"\n )}\n

\n
\n\n \n
\n
\n
\n );\n};\n\nexport default Create;\n","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { IError, RootState, ThunkDispatch } from \"../../core/store\";\nimport { getEvents } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { getCreateClassicLeagueError } from \"../../core/store/leagues/reducers\";\nimport { createClassicLeague } from \"../../core/store/leagues/thunks\";\nimport { ICreateClassicLeagueData } from \"../../core/store/leagues/types\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { FieldWrap, InputField, SelectField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\nimport SubHeading from \"../SubHeading\";\nimport Collapsible from \"../Collapsible\";\n\ninterface IPropsFromState {\n error: IError | null;\n events: IEvent[];\n settings: ISettings | null;\n}\n\ninterface IPropsFromDispatch {\n createClassicLeague: (data: ICreateClassicLeagueData) => void;\n}\n\ntype Props = WithTranslation & IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n name: string;\n startEvent: number;\n}\n\nclass CreateClassic extends React.Component {\n public state: IState = {\n name: \"\",\n startEvent: 1,\n };\n\n public requiredFields: Array = [\"name\", \"startEvent\"];\n\n public apiDataFromState = (): ICreateClassicLeagueData => ({\n name: this.state.name,\n start_event: this.state.startEvent,\n });\n\n public handleNameChange = (e: React.FormEvent) =>\n this.setState({ name: e.currentTarget.value });\n\n public handleStartEventChange = (e: React.FormEvent) =>\n this.setState({ startEvent: parseInt(e.currentTarget.value, 10) });\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n this.props.createClassicLeague(this.apiDataFromState());\n };\n\n public render() {\n const { error, events, settings, t } = this.props;\n const disabled = this.requiredFields.some((e) => !this.state[e]);\n return (\n \n
\n \n \n {t(\"createClassic.title\", \"Create a new classic league & cup\")}\n \n {error ? (\n error.badRequest &&\n error.badRequest.non_field_errors &&\n error.badRequest.non_field_errors[0].code ===\n \"max_private_entries\" ? (\n

\n {t(\n \"createClassic.error\",\n \"You may only enter {{ maxPrivateEntries }} private leagues\",\n {\n maxPrivateEntries:\n settings && settings.league_join_private_max,\n }\n )}\n

\n ) : (\n

{JSON.stringify(error)}

\n )\n ) : (\n \"\"\n )}\n
\n \n \n \n \n \n {events.map((e) => (\n \n {e.name}\n \n ))}\n \n \n \n \n \n {t(\"createClassic.theCup\", \"The Cup\")}\n

\n {t(\n \"createClassic.theCupExplain\",\n \"League cups are now included in Private Classic Leagues. The League Cups will start in the second half of the season dependent on the size of your league and will conclude in Round 30.\"\n )}\n

\n \n

\n {t(\n \"createClassic.theCupHowExplain\",\n \"In the first round of the cup each qualifying team will be randomly drawn against another. The winner (the team with the highest Round score minus any transfer points), will progress to the second round of the cup and another random draw. The loser will be eliminated from the cup. This process continues until the final round of the cup when there will only be two teams remaining.\"\n )}\n

\n

\n {t(\n \"createClassic.theCupHowExplain1\",\n \"In the case of a draw, then the following tie-breaks will be applied until a winner is found:\"\n )}\n

\n
    \n
  1. \n {t(\n \"createClassic.theCupHowExplain2\",\n \"Most goals scored in the round\"\n )}\n
  2. \n
  3. \n {t(\n \"createClassic.theCupHowExplain3\",\n \"Fewest goals conceded in the round\"\n )}\n
  4. \n
  5. \n {t(\"createClassic.theCupHowExplain4\", \"Virtual coin toss\")}\n
  6. \n
\n \n \n
\n
\n
\n );\n }\n}\n\nexport { CreateClassic as CreateClassicTest };\n\nconst mapStateToProps = (state: RootState) => ({\n error: getCreateClassicLeagueError(state),\n events: getEvents(state),\n settings: getSettings(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n createClassicLeague: (data: ICreateClassicLeagueData) =>\n dispatch(createClassicLeague(data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(CreateClassic)\n);\n","import range from \"lodash/range\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { IError, RootState, ThunkDispatch } from \"../../core/store\";\nimport { getFutureEvents } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { getCreateH2HLeagueError } from \"../../core/store/leagues/reducers\";\nimport { createH2HLeague } from \"../../core/store/leagues/thunks\";\nimport { ICreateH2HLeagueData } from \"../../core/store/leagues/types\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { FieldWrap, InputField, SelectField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\n\ninterface IPropsFromState {\n error: IError | null;\n events: IEvent[];\n settings: ISettings;\n}\n\ninterface IPropsFromDispatch {\n createH2HLeague: (data: ICreateH2HLeagueData) => void;\n}\n\ntype Props = WithTranslation & IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n koRounds: number;\n maxEntries: number;\n name: string;\n startEvent: number;\n}\n\nclass CreateH2H extends React.Component {\n public requiredFields: Array = [\"name\", \"startEvent\"];\n\n public constructor(props: Props) {\n super(props);\n this.state = {\n koRounds: 0,\n maxEntries: 0,\n name: \"\",\n startEvent: props.events.length ? props.events[0].id : 1,\n };\n }\n\n public maximumKoRounds = () => {\n const remainingEvents = this.props.events.length;\n if (remainingEvents <= 1) {\n return 0;\n }\n return Math.min(\n this.props.settings.league_max_ko_rounds_private_h2h,\n remainingEvents - 1\n );\n };\n\n public minimumSize = (koRounds: number) =>\n this.state.koRounds ? Math.pow(2, koRounds) : 2;\n\n public validStartingEvents = (koRounds: number) =>\n koRounds ? this.props.events.slice(0, -koRounds) : this.props.events;\n\n public apiDataFromState = (): ICreateH2HLeagueData => ({\n ko_rounds: this.state.koRounds || null,\n max_entries: this.state.maxEntries || null,\n name: this.state.name,\n start_event: this.state.startEvent,\n });\n\n public handleNameChange = (e: React.FormEvent) =>\n this.setState({ name: e.currentTarget.value });\n\n public handleStartEventChange = (e: React.FormEvent) =>\n this.setState({ startEvent: parseInt(e.currentTarget.value, 10) });\n\n public handleMaxEntriesChange = (e: React.FormEvent) =>\n this.setState({ maxEntries: parseInt(e.currentTarget.value, 10) });\n\n public handleKoRoundsChange = (e: React.FormEvent) => {\n const koRounds = parseInt(e.currentTarget.value, 10);\n const minimumSize = this.minimumSize(koRounds);\n const events = this.validStartingEvents(koRounds);\n this.setState({\n koRounds,\n maxEntries: this.state.maxEntries\n ? Math.max(minimumSize, this.state.maxEntries)\n : 0,\n startEvent: Math.min(events[events.length - 1].id, this.state.startEvent),\n });\n };\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n this.props.createH2HLeague(this.apiDataFromState());\n };\n\n public render() {\n const { error, events, settings, t } = this.props;\n if (!events.length) {\n return null;\n }\n const disabled = this.requiredFields.some((e) => !this.state[e]);\n return (\n \n
\n \n \n {t(\"createH2H.title\", \"Create a new head-to-head league\")}\n \n {error ? (\n error.badRequest &&\n error.badRequest.non_field_errors &&\n error.badRequest.non_field_errors[0].code ===\n \"max_private_entries\" ? (\n

\n {t(\n \"createH2H.errors.maxPrivateEntry\",\n \"You may only enter {{ maxPrivateEntries }} private leagues\",\n {\n maxPrivateEntries:\n settings && settings.league_join_private_max,\n }\n )}\n

\n ) : (\n

{JSON.stringify(error)}

\n )\n ) : (\n \"\"\n )}\n
\n \n \n \n \n \n {this.validStartingEvents(this.state.koRounds).map((e) => (\n \n {e.name}\n \n ))}\n \n \n \n \n \n {range(\n this.minimumSize(this.state.koRounds),\n settings.league_max_size_private_h2h + 1\n ).map((num) => (\n \n {num}\n \n ))}\n \n \n {this.maximumKoRounds() > 0 && (\n \n \n \n {range(1, this.maximumKoRounds() + 1).map((num) => (\n \n {num}\n \n ))}\n \n \n )}\n \n \n \n
\n
\n
\n
\n );\n }\n}\n\nexport { CreateH2H as CreateH2HTest };\n\nconst mapStateToProps = (state: RootState) => ({\n error: getCreateH2HLeagueError(state),\n events: getFutureEvents(state),\n settings: getSettings(state) as ISettings,\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n createH2HLeague: (data: ICreateH2HLeagueData) =>\n dispatch(createH2HLeague(data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(CreateH2H)\n);\n","import styled from \"styled-components/macro\";\n\nconst TextDivider = styled.div`\n margin: ${({ theme }) => theme.space[4]} ${({ theme }) => theme.space[2]};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n text-align: center;\n text-transform: lowercase;\n overflow: hidden;\n\n ::before,\n ::after {\n content: \"\";\n position: relative;\n display: inline-block;\n width: 50%;\n height: 1px;\n background-color: ${({ theme }) => theme.colors.secondary};\n vertical-align: middle;\n }\n\n ::before {\n right: ${({ theme }) => theme.space[2]};\n margin-left: -50%;\n }\n\n ::after {\n left: ${({ theme }) => theme.space[2]};\n margin-right: -50%;\n }\n`;\n\nexport default TextDivider;\n","import React from \"react\";\nimport { Link } from \"@reach/router\";\nimport Copy from \"../Copy\";\nimport Button from \"../Button\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport TextDivider from \"../TextDivider\";\nimport Title from \"../Title\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { useTranslation } from \"react-i18next\";\n\nconst CreateJoin: React.FC = () => {\n const { t } = useTranslation();\n return (\n \n
\n \n {t(\"createJoin.title\", \"Create and join leagues\")}\n \n {t(\"createJoin.joinLeague.title\", \"Join a League & cup\")}\n \n

\n {t(\n \"createJoin.joinLeague.p1\",\n \"Join a private or public league to compete against friends and other game players.\"\n )}\n

\n\n \n {t(\"createJoin.or\", \"or\")}\n \n {t(\"createJoin.createLeague.title\", \"Create a new league & cup\")}\n \n

\n {t(\n \"createJoin.createLeague.p1\",\n \"Create a private league to compete against friends.\"\n )}\n

\n \n
\n
\n
\n );\n};\n\nexport default CreateJoin;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getLeagueCupStatus } from \"../../core/store/leagues/reducers\";\nimport { fetchLeagueCupStatus } from \"../../core/store/leagues/thunks\";\nimport BoldLink from \"../BoldLink\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\n\nconst StyledMain = styled(Main)`\n width: 100%;\n padding: ${({ theme }) => `${theme.space[4]} ${theme.space[2]}`};\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding: ${({ theme }) => `${theme.space[8]} ${theme.space[4]}`};\n }\n`;\n\nconst StyledSubheading = styled(SubHeading)`\n margin: ${({ theme }) => `${theme.space[8]} ${theme.space[0]}`};\n`;\n\nconst StyledParagraph = styled.p`\n padding-top: ${({ theme }) => theme.space[4]};\n`;\n\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\nconst CupNotStarted: React.FC = ({ leagueId }) => {\n const leagueNumber = Number(leagueId!) || 0;\n const { t } = useTranslation();\n\n const cupStatus = useSelector((state: RootState) =>\n leagueNumber ? getLeagueCupStatus(state, leagueNumber) : null\n );\n\n const reduxDispatch = useDispatch();\n\n useEffect(() => {\n leagueNumber &&\n !cupStatus &&\n reduxDispatch(fetchLeagueCupStatus(leagueNumber));\n }, [leagueNumber, cupStatus, reduxDispatch]);\n\n if (!cupStatus) {\n return null;\n }\n\n return (\n \n \n \n {cupStatus.name}\n\n \n \n {t(\"cupNotStarted.standings\", \"View league standings\")}\n \n \n\n {cupStatus.qualification_event ? (\n <>\n \n {t(\n \"cupNotStarted.starts\",\n \"The Cup is scheduled to start in RD {{ round }}\",\n { round: cupStatus.qualification_event + 1 }\n )}\n \n {cupStatus.has_byes ? (\n <>\n

\n {t(\n \"cupNotStarted.fixtures\",\n \"Fixtures will be determined at the end of Round {{ round }}\",\n { round: cupStatus.qualification_event }\n )}{\" \"}\n {cupStatus.qualification_numbers > 2 && (\n <>\n {t(\n \"cupNotStarted.qualify1\",\n \"If there are {{ qualification_numbers }} teams in the associated league, then each team will have an opponent in Round {{ qualification_event }}.\",\n {\n qualification_numbers:\n cupStatus.qualification_numbers,\n qualification_event:\n cupStatus.qualification_event + 1,\n }\n )}\n {cupStatus.qualification_numbers === 4 &&\n t(\n \"cupNotStarted.qualify2\",\n \"If there are 3 teams in the league, 1 team will receive a bye in Round {{ qualification_event_plus }} based on their score in Round {{ qualification_event_plus }}\",\n {\n qualification_event_plus:\n cupStatus.qualification_event + 1,\n qualification_event:\n cupStatus.qualification_event,\n }\n )}{\" \"}\n {t(\n \"cupNotStarted.qualify3\",\n \"If there are between {{ qualification_numbers_div }} and {{ qualification_numbers_min }} teams in the league, some teams will receive a bye in Round {{ qualification_numbers_plus }} based on their score in Round {{ qualification_event }}\",\n {\n qualification_numbers_div:\n cupStatus.qualification_numbers / 2 + 1,\n qualification_numbers_min:\n cupStatus.qualification_numbers - 1,\n qualification_numbers_plus:\n cupStatus.qualification_event + 1,\n qualification_event: cupStatus.qualification_event,\n }\n )}\n \n )}\n

\n\n

\n {t(\n \"cupNotStarted.qualify4\",\n \"The starting round of the cup is determined by the number of teams in the associated league and the final will be contested in Round 30.\"\n )}\n

\n

\n {t(\n \"cupNotStarted.qualify5\",\n \"You will not be entered into the cup if you have joined the league after the Round prior to the cup starting.\"\n )}\n

\n\n \n {t(\"cupNotStarted.qualify6\", \"How the cup works\")}\n \n

\n {t(\n \"cupNotStarted.qualify7\",\n \"Each team will be randomly drawn against another unless they have received a bye. The winner (the team with the highest Round score minus any transfer points), will progress to the process continues until the final round when the two remaining teams contest the cup final. If a cup match is drawn, then the following tie-breaks will be applied until a winner is found:\"\n )}\n

\n
    \n
  1. \n {t(\n \"cupNotStarted.qualify8\",\n \"Most goals scored in the Round\"\n )}\n
  2. \n
  3. \n {t(\n \"cupNotStarted.qualify9\",\n \"Fewest goals conceded in the Round\"\n )}\n
  4. \n
  5. {t(\"cupNotStarted.qualify10\", \"Virtual coin toss\")}
  6. \n
\n \n ) : (\n <>\n

\n {t(\n \"cupNotStarted.qualify11\",\n \"The top {{qualification_numbers}} ranked managers in Round {{qualification_event}} will be entered into the first round of the cup in Round {{qualification_numbers_plus}}. The final will be contested in Round 30.\",\n {\n qualification_numbers: cupStatus.qualification_numbers,\n qualification_event: cupStatus.qualification_event,\n qualification_numbers_plus:\n cupStatus.qualification_event + 1,\n }\n )}\n

\n\n \n {t(\"cupNotStarted.qualify12\", \"How the cup works\")}\n \n

\n {t(\n \"cupNotStarted.qualify13\",\n \"Each qualifying team will be randomly drawn against another in the first round. The winner (the team with the highest Round score minus any transfer points), will progress to the second round and another random draw, the losers are out! This process continues until the final round when the two remaining teams contest the cup final. If a cup match is drawn, then the following tie-breaks will be applied until a winner is found:\"\n )}\n

\n
    \n
  1. \n {t(\n \"cupNotStarted.qualify14\",\n \"Most goals scored in the Round\"\n )}\n
  2. \n
  3. \n {t(\n \"cupNotStarted.qualify15\",\n \"Fewest goals conceded in the Round\"\n )}\n
  4. \n
  5. {t(\"cupNotStarted.qualify16\", \"Virtual coin toss\")}
  6. \n
\n \n )}\n \n ) : (\n \n {t(\n \"cupNotStarted.qualify17\",\n \"There is no information available for this cup yet.\"\n )}\n \n )}\n
\n
\n
\n );\n};\n\nexport default CupNotStarted;\n","import { RouteComponentProps } from \"@reach/router\";\nimport { TFunction } from \"i18next\";\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport useClipboard from \"react-use-clipboard\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getLeagueForEntry } from \"../../core/store/entries/reducers\";\nimport { fetchEntrySummary } from \"../../core/store/entries/thunks\";\nimport { ILeagueEntry } from \"../../core/store/entries/types\";\nimport { getCode } from \"../../core/store/leagues/reducers\";\nimport { fetchLeagueCode } from \"../../core/store/leagues/thunks\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { ILoggedInPlayer } from \"../../core/store/player/types\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\n\nconst LeagueInvite = styled.div`\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding: ${({ theme }) => theme.space[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.white};\n font-size: ${({ theme }) => theme.space[3]};\n text-align: center;\n`;\n\nconst LeagueInviteCode = styled.strong`\n margin-left: ${({ theme }) => theme.space[1]};\n color: ${({ theme }) => theme.colors.yellow};\n`;\n\nconst Hr = styled.hr`\n border: 0;\n height: 1px;\n margin-top: 23px;\n margin-bottom: 23px;\n background-color: ${({ theme }) => theme.colors.grey};\n`;\n\nconst inviteMessage = (code: string, leagueName: string, t: TFunction) => [\n t(\"invite.inviteMsg1\", \"Hi\"),\n t(\"invite.inviteMsg2\", `I've created a league called ${leagueName}.`, {\n leagueName,\n }),\n `${window.location.origin}/leagues/auto-join/${code}`,\n t(\n \"invite.inviteMsg3\",\n `You shouldn't need the league code, but just in case here it is: ${code}`,\n {\n code,\n }\n ),\n t(\"invite.inviteMsg4\", \"Enjoy the game!\"),\n];\n\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\ninterface IPropsFromState {\n code: string | null;\n entryId: number;\n leagueNumber: number;\n league: ILeagueEntry | null;\n}\n\ninterface IPropsFromDispatch {\n fetchCode: (leagueId: number) => void;\n fetchEntrySummary: (entryId: number) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch;\n\nconst Invite: React.FC = ({\n code,\n league,\n leagueNumber,\n entryId,\n fetchCode,\n fetchEntrySummary,\n}) => {\n const { t } = useTranslation();\n const codeToCopy = code ? code : \"\";\n const leagueName = league ? league.name : \"\";\n const message = inviteMessage(codeToCopy, leagueName, t);\n const emailText = message ? message.join(\"\\n\\n\") : \"\";\n const emailBody = encodeURIComponent(emailText);\n const emailSubject = t(\"invite.emailSubject\", \"Play Allsvenskan Fantasy\");\n const encodedEmailSubject = encodeURI(emailSubject);\n const joinUrl = `${window.location.origin}/leagues/auto-join/${code}`;\n const [isCopied, setCopied] = useClipboard(codeToCopy, {\n successDuration: 500,\n });\n const [isCopiedUrl, setCopiedUrl] = useClipboard(joinUrl, {\n successDuration: 500,\n });\n const [isCopiedEmail, setCopiedEmail] = useClipboard(emailText, {\n successDuration: 500,\n });\n\n useEffect(() => {\n if (leagueNumber) {\n fetchCode(leagueNumber);\n }\n\n fetchEntrySummary(entryId);\n }, [leagueNumber, entryId, fetchCode, fetchEntrySummary]);\n\n if (!codeToCopy || !leagueNumber || !league) {\n return null;\n }\n\n return (\n \n
\n \n \n {t(\"invite.title\", \"Invite players to join\")} {leagueName}\n \n \n {t(\"invite.codeToJoin\", \"Code to join this league\")}:\n \n {isCopied ? t(\"invite.copied\", \"Copied!\") : codeToCopy}\n \n \n\n \n\n
\n\n

\n {t(\n \"invite.description1\",\n \"When you click the link below, the link will attempt to open your default email program and start a new email.\"\n )}\n

\n\n

\n {t(\n \"invite.description2\",\n \"If you do not have a default email program, like Outlook or Mail, enabled on your computer, clicking the link may not result in any action or you may be prompted to set up an email program.\"\n )}\n

\n\n \n (window.location.href = `mailto:?to=&subject=${encodedEmailSubject}&body=${emailBody}`)\n }\n >\n {t(\"invite.byEmailButton\", \"Share league code by email\")}{\" \"}\n \n \n\n
\n\n

\n {t(\n \"invite.description3\",\n \"If you use a browser based webmail application, like Gmail or Yahoo!, you can copy and paste the text below:\"\n )}\n

\n\n \n {message.map((line) => (\n

{line}

\n ))}\n
\n\n \n
\n
\n
\n );\n};\n\nexport { Invite as InviteTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n const player = getPlayerData(state) as ILoggedInPlayer; // enforced by EntryRoute\n const entry = player.entry;\n const leagueNumber =\n ownProps.leagueId && parseInt(ownProps.leagueId, 10)\n ? parseInt(ownProps.leagueId, 10)\n : 0;\n return {\n code: leagueNumber ? getCode(state, leagueNumber) : null,\n league: leagueNumber ? getLeagueForEntry(state, entry, leagueNumber) : null,\n leagueNumber,\n entryId: entry,\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchCode: (leagueId: number) => dispatch(fetchLeagueCode(leagueId)),\n fetchEntrySummary: (entryId: number) => dispatch(fetchEntrySummary(entryId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Invite);\n","import React from \"react\";\nimport { Link } from \"@reach/router\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport Copy from \"../Copy\";\nimport Button from \"../Button\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { useTranslation } from \"react-i18next\";\n\ninterface IPropsFromState {\n settings: ISettings | null;\n}\n\nconst Join: React.FC = ({ settings }) => {\n const { t } = useTranslation();\n if (!settings) {\n return null;\n }\n return (\n \n
\n \n {t(\"join.title\", \"Choose a league type to join\")}\n

\n {t(\n \"join.p1\",\n \"You can join up to {{ maxPrivateLeagues }} private leagues and {{ maxPublicLeagues }} public leagues.\",\n {\n maxPrivateLeagues: settings.league_join_private_max,\n maxPublicLeagues: settings.league_join_public_max,\n }\n )}\n

\n \n \n {t(\"join.private.title\", \"Private leagues & cups\")}\n \n

\n {t(\n \"join.private.p1\",\n \"Join a private league if somebody has given you a league code to enter.\"\n )}\n

\n\n \n
\n {t(\"join.public.title\", \"Public leagues\")}\n

\n {t(\n \"join.public.p1\",\n \"Join a public league to play against a small, randomly selected group of other game players.\"\n )}\n

\n \n
\n
\n
\n );\n};\n\nexport { Join as JoinTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n settings: getSettings(state),\n});\n\nexport default connect(mapStateToProps)(Join);\n","import { navigate } from \"@reach/router\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { IError, RootState, ThunkDispatch } from \"../../core/store\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport {\n getJoinPrivateLeagueError,\n getJoinPrivateLeagueSuccess,\n} from \"../../core/store/leagues/reducers\";\nimport { joinPrivateLeague } from \"../../core/store/leagues/thunks\";\nimport { IJoinPrivateLeagueData } from \"../../core/store/leagues/types\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { FieldWrap, InputField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\nimport { getErrorType } from \"./errors\";\nimport JoinLeagueError from \"./JoinLeagueError\";\n\ninterface IState {\n code: string;\n}\n\ninterface IPropsFromState {\n error: IError | null;\n settings: ISettings;\n hasJoinedPrivate: boolean;\n}\n\ninterface IPropsFromDispatch {\n joinPrivateLeague: (data: IJoinPrivateLeagueData) => void;\n}\n\ntype Props = WithTranslation & IPropsFromState & IPropsFromDispatch;\n\nclass JoinPrivate extends React.Component {\n public state = { code: \"\" };\n\n public apiDataFromState = (): IJoinPrivateLeagueData => ({\n code: this.state.code,\n });\n\n public handleCodeChange = (e: React.FormEvent) =>\n this.setState({ code: e.currentTarget.value });\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n this.props.joinPrivateLeague(this.apiDataFromState());\n };\n\n public render() {\n const disabled = !this.state.code;\n const error = getErrorType(this.props.error);\n const { settings, t, hasJoinedPrivate } = this.props;\n\n if (hasJoinedPrivate) {\n navigate(\"/leagues\");\n return null;\n }\n\n return (\n \n
\n \n {t(\"joinPrivate.title\", \"Join private league & cup\")}\n {error && (\n \n \n {settings && (\n \n )}\n \n \n )}\n
\n \n \n \n \n \n \n
\n
\n
\n
\n );\n }\n}\n\nexport { JoinPrivate as JoinPrivateTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n error: getJoinPrivateLeagueError(state),\n settings: getSettings(state) as ISettings,\n hasJoinedPrivate: getJoinPrivateLeagueSuccess(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n joinPrivateLeague: (data: IJoinPrivateLeagueData) =>\n dispatch(joinPrivateLeague(data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(JoinPrivate)\n);\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { IError, RootState, ThunkDispatch } from \"../../core/store\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { getJoinPublicLeagueError } from \"../../core/store/leagues/reducers\";\nimport { joinPublicLeague } from \"../../core/store/leagues/thunks\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\n\ninterface IPropsFromState {\n error: IError | null;\n settings: ISettings;\n}\n\ninterface IPropsFromDispatch {\n joinPublicLeagueClassic: () => void;\n joinPublicLeagueH2H: () => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch;\n\nconst JoinPublic: React.FC = ({\n error,\n joinPublicLeagueClassic,\n joinPublicLeagueH2H,\n settings,\n}) => {\n const { t } = useTranslation();\n return (\n \n
\n \n {t(\"joinPublic.title\", \"Join public league\")}\n {error ? (\n error.badRequest &&\n error.badRequest.non_field_errors &&\n error.badRequest.non_field_errors[0].code ===\n \"public_league_max_exceeded\" ? (\n \n \n {t(\n \"joinPublic.error\",\n \"You may only enter {{ publicLeagueMax }} public leagues\",\n { publicLeagueMax: settings.league_join_public_max }\n )}\n \n \n ) : (\n

{JSON.stringify(error)}

\n )\n ) : (\n \"\"\n )}\n \n

\n {t(\n \"joinPublic.p1\",\n \"Public leagues allow you to compete against {{ maxSizePublicClassic }} randomly assigned game players in a classic league and up to {{ maxSizePublicH2H }} in head-to-head leagues. You can join up to {{ leagueJoinPublicMax }} public leagues.\",\n {\n maxSizePublicClassic: settings.league_max_size_public_classic,\n maxSizePublicH2H: settings.league_max_size_public_h2h,\n leagueJoinPublicMax: settings.league_join_public_max,\n }\n )}\n

\n

\n \n {t(\n \"joinPublic.p2\",\n \"Note, you can't remove your team from a public league after the league has started, once the challenge is on there's no quitting.\"\n )}\n \n

\n
\n\n \n \n {t(\"joinPublic.classic.title\", \"Classic scoring\")}\n \n

\n {t(\n \"joinPublic.classic.p1\",\n \"In a league with classic scoring, teams are ranked based on their total points in the game. You can join or leave a league with classic scoring at any point during the season\"\n )}\n

\n \n
\n \n {t(\"joinPublic.h2H.button\", \"Head-to-Head scoring\")}\n \n

\n {t(\n \"joinPublic.h2H.p1\",\n \"In a league with head-to-head scoring, every team plays a match against another team in the league each Round. The match result is based on the Round score of each team minus any transfer points spent preparing for the Round.\"\n )}\n

\n \n
\n
\n
\n );\n};\n\nexport { JoinPublic as JoinPublicTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n error: getJoinPublicLeagueError(state),\n settings: getSettings(state) as ISettings,\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n joinPublicLeagueClassic: () => dispatch(joinPublicLeague({ scoring: \"c\" })),\n joinPublicLeagueH2H: () => dispatch(joinPublicLeague({ scoring: \"h\" })),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(JoinPublic);\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { IEntryInLeague } from \"../../core/store/leagues/types\";\nimport { SelectField } from \"../FieldRenderers\";\nimport { SelectBox } from \"./Styles\";\n\ninterface IProps {\n entryId: number;\n handleFilterChange: (e: React.ChangeEvent) => void;\n leagueEntries: IEntryInLeague[];\n}\n\nconst H2HEntryFilter: React.FC = ({\n entryId,\n handleFilterChange,\n leagueEntries,\n}) => {\n const { t } = useTranslation();\n return (\n \n \n \n {leagueEntries\n .sort((a, b) => a.entry_name.localeCompare(b.entry_name))\n .map((e) => (\n \n ))}\n \n \n );\n};\n\nexport default H2HEntryFilter;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { getEvents } from \"../../core/store/events/reducers\";\nimport { SelectField } from \"../FieldRenderers\";\nimport { SelectBox } from \"./Styles\";\n\ninterface IProps {\n eventId: number;\n handleFilterChange: (e: React.ChangeEvent) => void;\n startEvent: number | null;\n}\n\nconst H2HEventFilter: React.FC = ({\n eventId,\n handleFilterChange,\n startEvent,\n}) => {\n const { t } = useTranslation();\n const events = useSelector(getEvents);\n\n if (!startEvent) {\n return null;\n }\n return (\n \n \n \n {events\n .filter((e) => e.id >= startEvent)\n .map((e) => (\n \n ))}\n \n \n );\n};\n\nexport default H2HEventFilter;\n","var _g, _defs;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCog(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_2241_3699)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24 10.2959V13.7651C24 13.8898 23.9583 14.0095 23.875 14.1242C23.7917 14.2389 23.6873 14.3065 23.562 14.3272L20.6711 14.7652C20.4731 15.3279 20.2702 15.802 20.0622 16.1873C20.4268 16.7081 20.9841 17.4268 21.7341 18.3435C21.8381 18.4682 21.8901 18.5986 21.8901 18.7346C21.8901 18.8706 21.8431 18.9902 21.7491 19.0936C21.4678 19.479 20.9521 20.0413 20.2022 20.7807C19.4522 21.5201 18.9625 21.8898 18.7332 21.8898C18.6086 21.8898 18.4732 21.8428 18.3272 21.7488L16.1713 20.0617C15.7127 20.301 15.2387 20.499 14.7494 20.6557C14.5827 22.0725 14.4317 23.0413 14.2964 23.562C14.2237 23.854 14.0364 24 13.7344 24H10.2656C10.1196 24 9.99192 23.9557 9.88259 23.867C9.77326 23.7783 9.71326 23.6663 9.7026 23.531L9.26461 20.6557C8.75397 20.489 8.28532 20.2964 7.85867 20.0777L5.65576 21.7498C5.55177 21.8438 5.42144 21.8908 5.26478 21.8908C5.11879 21.8908 4.98846 21.8335 4.8738 21.7188C3.56118 20.5314 2.70189 19.6563 2.2959 19.0936C2.22324 18.9896 2.18691 18.8699 2.18691 18.7346C2.18691 18.6099 2.22857 18.4902 2.3119 18.3755C2.4679 18.1568 2.73355 17.8105 3.10887 17.3364C3.48419 16.8624 3.76551 16.495 3.95284 16.2344C3.67151 15.7136 3.45786 15.1979 3.31186 14.6872L0.452981 14.2652C0.317653 14.2445 0.208325 14.1795 0.124995 14.0702C0.0416649 13.9608 0 13.8385 0 13.7031V10.2339C0 10.1092 0.0416649 9.9895 0.124995 9.87482C0.208325 9.76015 0.307321 9.69247 0.421982 9.67181L3.32786 9.23377C3.47386 8.7544 3.67685 8.27536 3.93684 7.79665C3.52019 7.2026 2.96288 6.48387 2.26491 5.64047C2.16091 5.51579 2.10891 5.39078 2.10891 5.26544C2.10891 5.16143 2.15591 5.04175 2.24991 4.90641C2.52056 4.53171 3.03354 3.97166 3.78884 3.22627C4.54414 2.48087 5.03646 2.10851 5.26578 2.10918C5.40111 2.10918 5.53644 2.16118 5.67176 2.26519L7.82767 3.93733C8.28632 3.69797 8.7603 3.49996 9.24961 3.34328C9.41627 1.92649 9.56727 0.957747 9.7026 0.437036C9.77526 0.145679 9.96258 0 10.2646 0H13.7334C13.8794 0 14.0071 0.044337 14.1164 0.133011C14.2257 0.221685 14.2857 0.333694 14.2964 0.469039L14.7344 3.34428C15.245 3.51096 15.7137 3.70364 16.1403 3.92233L18.3592 2.25019C18.4532 2.15618 18.5782 2.10918 18.7342 2.10918C18.8695 2.10918 18.9999 2.16118 19.1252 2.26519C20.4691 3.50463 21.3284 4.39003 21.7031 4.92141C21.7758 5.00475 21.8121 5.11943 21.8121 5.26544C21.8121 5.39012 21.7704 5.50979 21.6871 5.62447C21.5311 5.84315 21.2654 6.18952 20.8901 6.66356C20.5148 7.13759 20.2335 7.50496 20.0462 7.76565C20.3168 8.28636 20.5305 8.79673 20.6871 9.29677L23.546 9.73481C23.6813 9.75548 23.7907 9.82049 23.874 9.92983C23.9573 10.0392 23.999 10.1615 23.999 10.2969L24 10.2959ZM16 12C16 10.896 15.6093 9.95333 14.828 9.172C14.0467 8.39067 13.104 8 12 8C10.896 8 9.95333 8.39067 9.172 9.172C8.39067 9.95333 8 10.896 8 12C8 13.104 8.39067 14.0467 9.172 14.828C9.95333 15.6093 10.896 16 12 16C13.104 16 14.0467 15.6093 14.828 14.828C15.6093 14.0467 16 13.104 16 12Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_2241_3699\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCog);\nexport default __webpack_public_path__ + \"static/media/cog.54ff1aed.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport styled, { css } from \"styled-components/macro\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IH2HMatch } from \"../../core/store/leagues/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { ReactComponent as CupBase } from \"../../img/icons/cup.svg\";\nimport { getShortNameFromId } from \"../../utils/events\";\nimport Alert from \"../Alert\";\nimport Link from \"../Link\";\n\nconst CupWinner = styled.span`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst StyledCup = styled(CupBase)`\n color: #dbaf13;\n margin-right: 0.6rem;\n`;\n\ninterface IStyledMatchRow {\n inProgress: boolean;\n mine: boolean;\n}\n\ninterface IMatchesScore {\n inProgress: boolean;\n}\n\nconst MatchesScore = styled.div`\n display: flex;\n border: 1px solid #efebf0;\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: white;\n color: ${({ theme }) => theme.colors.primary};\n\n ${(props) =>\n props.inProgress &&\n css`\n border: 0;\n background-color: ${({ theme }) => theme.colors.blueDarker2};\n color: white;\n\n td {\n > a {\n color: inherit;\n }\n }\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 80%;\n margin: auto;\n }\n`;\n\nconst MatchesScoreTeam = styled.span`\n width: 50%;\n padding: 0.2rem;\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: 1.3rem;\n line-height: 1;\n text-align: center;\n\n :first-child {\n border-right: 1px solid #e2e2e2;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding: ${({ theme }) => theme.space[1]};\n font-size: 1.8rem;\n }\n`;\n\nconst StyledStatusRow = styled.tr`\n td {\n padding-top: 0;\n border-top: 0 !important;\n }\n`;\n\nconst StyledMatchRow = styled.tr`\n ~ ${StyledStatusRow} td {\n border-top: 0;\n }\n\n ${(props) =>\n props.mine &&\n css`\n td {\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n > a {\n color: inherit;\n }\n }\n `}\n`;\n\nconst MatchesEntryStyles = css`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst MatchesEntry1 = styled.td`\n ${MatchesEntryStyles}\n text-align: right;\n`;\n\nconst MatchesEntry2 = styled.td`\n ${MatchesEntryStyles}\n`;\n\nconst StatusCell = styled.td`\n white-space: normal;\n text-align: center;\n`;\n\nconst MatchesScoreWrap = styled.td`\n text-align: center;\n white-space: nowrap;\n`;\n\nconst ByeScore = styled.div`\n display: inline-block;\n padding: 0.3rem;\n background-color: ${({ theme }) => theme.colors.grey};\n color: white;\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n text-transform: uppercase;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 0.4rem 1.7rem;\n font-size: ${({ theme }) => theme.fontSizes[4]};\n }\n`;\n\nconst KONameRow = styled.tr`\n td {\n padding-bottom: 0;\n }\n + tr td {\n border-top: 0;\n }\n`;\n\nconst KONameCell = styled.td`\n text-align: center;\n`;\n\ninterface IStyledKONameCell {\n isFinal: boolean;\n}\n\nconst KOName = styled.span`\n font-size: 1.1rem;\n\n ${(props) =>\n props.isFinal &&\n css`\n font-family: ${({ theme }) => theme.fonts.base};\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 1.3rem;\n }\n`;\n\nconst WinnerStatus: React.FC<{ isCup: boolean; match: IH2HMatch }> = ({\n isCup,\n match,\n}) => {\n const { t } = useTranslation();\n if (!match.winner) {\n return null;\n }\n const winnerName =\n match.winner === match.entry_1_entry\n ? match.entry_1_name\n : match.entry_2_name;\n\n return (\n <>\n {match.tiebreak && (\n \n \n {t(\"h2hMatch.tie\", \"Tie-break - {{winnerName}} progressed\", {\n winnerName: winnerName,\n })}{\" \"}\n {match.tiebreak === \"goals_scored\" &&\n t(\"h2hMatch.tie1\", \"on most goals scored\")}\n {match.tiebreak === \"goals_conceded\" &&\n t(\"h2hMatch.tie2\", \"on fewest goals conceded\")}\n {match.tiebreak === \"default\" &&\n t(\"h2hMatch.tie3\", \"by virtual coin toss\")}\n \n \n )}\n {isCup && match.event === 30 && (\n \n \n \n {winnerName}\n \n \n )}\n \n );\n};\n\nconst StatusRow: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n \n  \n {children}\n \n);\n\ninterface IH2HMatchRow {\n selectedEntry: number;\n isCup: boolean;\n showEvent?: boolean;\n started?: boolean;\n match: IH2HMatch;\n isAllMine: boolean;\n}\n\nconst H2HMatch: React.FC = ({\n selectedEntry,\n showEvent = false,\n started = false,\n match,\n isAllMine = false,\n isCup,\n}) => {\n const { t } = useTranslation();\n const player = useSelector(getPlayerData);\n const now = useSelector(getCurrentEvent);\n const inProgress = now?.id === match.event && !match.winner ? true : false;\n return (\n <>\n {match.knockout_name ? (\n \n  \n \n {match.knockout_name}\n \n \n ) : null}\n \n {showEvent && {getShortNameFromId(match.event, true)}}\n {/* Lots of duplication here but can't think of a clean way around it */}\n {selectedEntry === match.entry_2_entry ? (\n <>\n \n {match.entry_2_entry && started ? (\n \n {match.entry_2_name}\n
\n {match.entry_2_player_name}\n \n ) : (\n \n {match.entry_2_name}\n
\n {match.entry_2_player_name}\n \n )}\n
\n \n {match.is_bye ? (\n {t(\"h2hEventFilter.score\", \"N/A\")}\n ) : (\n \n {started ? (\n <>\n \n {match.entry_2_points}\n \n \n {match.entry_1_points}\n \n \n ) : (\n <>\n -\n -\n \n )}\n \n )}\n \n \n {match.entry_1_entry ? (\n started ? (\n \n {match.entry_1_name}\n
\n {match.entry_1_player_name}\n \n ) : (\n \n {match.entry_1_name}\n
\n {match.entry_1_player_name}\n \n )\n ) : (\n <> \n )}\n
\n \n ) : (\n <>\n \n {match.entry_1_entry && started ? (\n \n {match.entry_1_name}\n
\n {match.entry_1_player_name}\n \n ) : (\n \n {match.entry_1_name}\n
\n {match.entry_1_player_name}\n \n )}\n
\n \n {match.is_bye ? (\n {t(\"h2hEventFilter.score2\", \"N/A\")}\n ) : (\n \n {started ? (\n <>\n \n {match.entry_1_points}\n \n \n {match.entry_2_points}\n \n \n ) : (\n <>\n -\n -\n \n )}\n \n )}\n \n \n {match.entry_2_entry ? (\n started ? (\n \n {match.entry_2_name}\n
\n {match.entry_2_player_name}\n \n ) : (\n \n {match.entry_2_name}\n
\n {match.entry_2_player_name}\n \n )\n ) : (\n <> \n )}\n
\n \n )}\n \n {match.is_bye && (\n \n \n {t(\n \"h2hEventFilter.isbye\",\n \"{{matchEntry}} progressed with a bye due to their Round {{matchEvent}} score\",\n {\n matchEntry: match.entry_1_name,\n matchEvent: match.event - 1,\n }\n )}\n \n \n )}\n {match.winner && }\n \n );\n};\n\nexport default H2HMatch;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IH2HMatch } from \"../../core/store/leagues/types\";\nimport Table from \"../Table\";\nimport H2HMatch from \"./H2HMatch\";\n\nconst StyledMatchesTable = styled(Table)`\n table-layout: fixed;\n white-space: nowrap;\n\n /* Have to override Table td border to include tiebrake inside match border-bottom */\n td {\n border-top: 1px solid ${({ theme }) => theme.colors.grey};\n border-bottom: 0;\n }\n\n tr:last-child td {\n border-bottom: 1px solid ${({ theme }) => theme.colors.grey};\n }\n`;\n\nconst MatchesRoundColRound = styled.th`\n width: 10%;\n`;\n\nconst MatchesRoundColEntry = styled.th`\n width: 32%;\n`;\n\nconst MatchesRoundColEntry1 = styled.th`\n width: 32%;\n\n ${StyledMatchesTable} & {\n text-align: right;\n }\n`;\n\nexport const MatchesRoundColScore = styled.th`\n width: 21%;\n`;\n\ninterface IProps {\n selectedEntry: number;\n isCup?: boolean;\n isAllMine?: boolean;\n matches: IH2HMatch[] | null;\n}\n\nconst MatchesTable: React.FC = ({\n selectedEntry,\n isAllMine = false,\n isCup = false,\n matches,\n}) => {\n const { t } = useTranslation();\n const now = useSelector(getCurrentEvent);\n\n if (!matches) {\n return null;\n }\n\n return (\n \n \n \n \n {t(\"matchesTable.rd\", \"RD\")}\n \n \n {t(\"matchesTable.team1\", \"Team\")}\n \n  \n \n {t(\"matchesTable.team2\", \"Team\")}\n \n \n \n \n {matches.map((m) => (\n \n ))}\n \n \n );\n};\n\nexport default MatchesTable;\n","import { RouteComponentProps, navigate } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect, useDispatch } from \"react-redux\";\nimport { Flex } from \"rebass\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getActiveEntryInLeague,\n getCode,\n} from \"../../core/store/leagues/reducers\";\nimport {\n fetchLeagueCode,\n joinPrivateLeague,\n setCode,\n} from \"../../core/store/leagues/thunks\";\nimport {\n IJoinPrivateLeagueData,\n ILeague,\n} from \"../../core/store/leagues/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { IPlayer } from \"../../core/store/player/types\";\nimport Button from \"../Button\";\nimport ButtonLink from \"../ButtonLink\";\nimport Title from \"../Title\";\n\nconst StyledHeader = styled.div`\n padding-left: ${({ theme }) => theme.space[2]};\n padding-right: ${({ theme }) => theme.space[2]};\n`;\n\nconst ButtonWrapper = styled.div`\n margin: ${({ theme }) => theme.space[4]} 0;\n`;\n\ntype OwnProps = RouteComponentProps<{\n type: string;\n league: ILeague | null;\n leagueNumber: number;\n}>;\n\ninterface IPropsFromState {\n entryInLeague: any | null;\n leagueNumber: number;\n code: string | null;\n player: IPlayer | null;\n}\n\ninterface IPropsFromDispatch {\n fetchCode: (leagueId: number) => void;\n joinPrivateLeague: (data: IJoinPrivateLeagueData) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch;\n\nconst StandingsHeading: React.FC = ({\n code,\n player,\n fetchCode,\n league,\n leagueNumber,\n entryInLeague,\n}) => {\n const { t } = useTranslation();\n const isAdmin =\n entryInLeague &&\n entryInLeague.league &&\n entryInLeague.league.entry_can_admin;\n const isEntryInLeague = entryInLeague && entryInLeague.league;\n const reduxDispatch = useDispatch();\n\n useEffect(() => {\n if (\n !isEntryInLeague &&\n league &&\n league.code_privacy === \"a\" &&\n leagueNumber\n ) {\n fetchCode(leagueNumber);\n }\n }, [league, isAdmin, isEntryInLeague, leagueNumber, fetchCode]);\n\n let showInviteBtn = false;\n let showJoinBtn = false;\n\n if (league && !league.closed) {\n if (isAdmin) {\n showInviteBtn = true;\n } else {\n if (league) {\n if (isEntryInLeague) {\n if (league.code_privacy === \"a\") {\n showInviteBtn = true;\n }\n if (league.code_privacy === \"l\") {\n showInviteBtn = true;\n }\n }\n\n if (!isEntryInLeague) {\n if (league.code_privacy === \"a\") {\n showJoinBtn = true;\n }\n }\n }\n }\n }\n\n return (\n \n \n {league && league.name}\n \n {showInviteBtn && (\n \n {t(\n \"standingsHeading.inviteButton\",\n \"Invite people to join this league\"\n )}\n \n )}\n\n {code && showJoinBtn && (\n \n player && player.entry\n ? reduxDispatch(setCode(code))\n : navigate(`/leagues/auto-join/${code}`)\n }\n >\n {t(\"standingsHeading.joinButton\", \"Join this league\")}\n \n )}\n \n \n \n );\n};\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n const leagueNumber = ownProps.leagueNumber || 0;\n const entryInLeague = getActiveEntryInLeague(\n state,\n leagueNumber,\n ownProps.type === \"classic\" ? \"classic\" : \"h2h\"\n );\n\n return {\n leagueNumber,\n entryInLeague: entryInLeague,\n player: getPlayerData(state),\n code: leagueNumber ? getCode(state, leagueNumber) : null,\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchCode: (leagueNumber: number) => dispatch(fetchLeagueCode(leagueNumber)),\n joinPrivateLeague: (data: IJoinPrivateLeagueData) => {\n dispatch(joinPrivateLeague(data));\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StandingsHeading);\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport qs from \"qs\";\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getEntry, getLeagueForEntry } from \"../../core/store/entries/reducers\";\nimport { fetchEntrySummary } from \"../../core/store/entries/thunks\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport {\n getClassicLeague,\n getH2HMatches,\n getLeagueCupStatus,\n getLeagueEntries,\n} from \"../../core/store/leagues/reducers\";\nimport {\n fetchClassicLeagueStandings,\n fetchH2HLeagueMatches,\n fetchLeagueCupStatus,\n fetchLeagueEntries,\n} from \"../../core/store/leagues/thunks\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport Alert from \"../Alert\";\nimport BoldLink from \"../BoldLink\";\nimport ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport SubHeading from \"../SubHeading\";\nimport H2HEntryFilter from \"./H2HEntryFilter\";\nimport H2HEventFilter from \"./H2HEventFilter\";\nimport MatchesTable from \"./MatchesTable\";\nimport StandingsHeading from \"./StandingsHeading\";\nimport { SelectWrap } from \"./Styles\";\nimport { getLeagueUrl } from \"./utils\";\n\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\nconst MatchesCup: React.FC = ({ location, leagueId }) => {\n const { t } = useTranslation();\n const leagueNumber = Number(leagueId!) || 0;\n const query = qs.parse(location!.search, {\n ignoreQueryPrefix: true,\n });\n const entryNumber = Number(query.entry) || 0;\n const eventNumber = Number(query.event) || 0;\n const pageMatches = Number(query.page_matches) || 1;\n\n const buildMatchesUrl = (\n leagueNumber: number,\n eventNumber: number,\n entryNumber: number,\n pageMatches: number\n ) => {\n let url = `/leagues/${leagueNumber}/cup?page_matches=${pageMatches}`;\n if (entryNumber) {\n url += `&entry=${entryNumber}`;\n }\n if (eventNumber) {\n url += `&event=${eventNumber}`;\n }\n return url;\n };\n\n const player = useSelector(getPlayerData);\n\n const cupStatus = useSelector((state: RootState) =>\n leagueNumber ? getLeagueCupStatus(state, leagueNumber) : null\n );\n\n const entry = useSelector((state: RootState) =>\n entryNumber ? getEntry(state, entryNumber) : null\n );\n\n const leagueEntry = useSelector((state: RootState) =>\n entry ? getLeagueForEntry(state, entry.id, leagueNumber) : null\n );\n\n const myLeagueEntry = useSelector((state: RootState) =>\n player?.entry ? getLeagueForEntry(state, player.entry, leagueNumber) : null\n );\n\n const now = useSelector(getCurrentEvent);\n\n const league = useSelector((state: RootState) =>\n leagueNumber ? getClassicLeague(state, leagueNumber) : null\n );\n\n const matches = useSelector((state: RootState) =>\n cupStatus?.league\n ? getH2HMatches(\n state,\n cupStatus.league,\n entryNumber,\n eventNumber,\n pageMatches\n )\n : null\n );\n\n const leagueEntries = useSelector((state: RootState) =>\n cupStatus?.league ? getLeagueEntries(state, cupStatus.league) : null\n );\n\n const didNotQualify = leagueEntry && leagueEntry.cup_qualified === false;\n const notStarted = leagueEntry && leagueEntry.cup_qualified === null;\n // Event where we can show entries for large cups\n const largeCupEvent = 24;\n\n const reduxDispatch = useDispatch();\n\n // Can we fetch matches?\n const canFetchMatches = () => {\n if (!cupStatus) {\n return false;\n }\n // Asking for a specific entry is fine as long as qualified\n if (entryNumber) {\n return leagueEntry?.cup_qualified;\n }\n // Can always request a cup that isn't large\n if (!cupStatus.is_large) {\n return true;\n }\n // Asking for a late event in a large league is fine\n if (eventNumber >= largeCupEvent) {\n return true;\n }\n // We are able to show the current round or first round draw\n if (now && now.id >= largeCupEvent && cupStatus.qualification_event) {\n navigate(\n buildMatchesUrl(\n leagueNumber,\n Math.max(now.id, cupStatus.qualification_event + 1),\n 0,\n 1\n ),\n {\n replace: true,\n }\n );\n }\n // We are able to show the logged in entry. We are safe to use non null\n // assertion on player.entry if myLeagueEntry\n else if (myLeagueEntry && myLeagueEntry?.cup_qualified) {\n navigate(buildMatchesUrl(leagueNumber, 0, player!.entry!, 1), {\n replace: true,\n });\n }\n return false;\n };\n const fetchMatches = canFetchMatches();\n\n // API calls ...\n\n // This is currently the 'best' way to get a league which is needed by\n // child components for things like name\n useEffect(() => {\n leagueNumber &&\n !league &&\n reduxDispatch(fetchClassicLeagueStandings(leagueNumber, 1, 1, 1));\n }, [league, leagueNumber, reduxDispatch]);\n\n // Get any requested entry if different to the logged in entry as there\n // is a chance we won't have it\n useEffect(() => {\n entryNumber &&\n player?.entry !== entryNumber &&\n reduxDispatch(fetchEntrySummary(entryNumber));\n }, [entryNumber, player, reduxDispatch]);\n\n // Get the cup status for the parent league\n useEffect(() => {\n leagueNumber && reduxDispatch(fetchLeagueCupStatus(leagueNumber));\n }, [leagueNumber, reduxDispatch]);\n\n // Get a list of league entries for filtering. We need to know the cup\n // status before we can do this\n useEffect(() => {\n cupStatus &&\n cupStatus.league &&\n !cupStatus.is_large &&\n reduxDispatch(fetchLeagueEntries(cupStatus.league));\n }, [cupStatus, reduxDispatch]);\n\n // Get the list of matches.\n useEffect(() => {\n cupStatus &&\n cupStatus.league &&\n fetchMatches &&\n reduxDispatch(\n fetchH2HLeagueMatches(\n cupStatus.league,\n entryNumber,\n eventNumber,\n pageMatches\n )\n );\n }, [\n cupStatus,\n fetchMatches,\n entryNumber,\n eventNumber,\n pageMatches,\n reduxDispatch,\n ]);\n\n // We are still waiting for required data so delay rendering ...\n if (!cupStatus || !now || !league || (entryNumber && !entry)) {\n return null;\n }\n\n const cupStartText =\n now.id === cupStatus.qualification_event\n ? t(\"matchesCup.willStart\", \"will start\")\n : t(\"matchesCup.started\", \"started\");\n\n // This function wil be called if there are no matches, it attempts to\n // work out why!\n const getNoMatchesMessage = () => {\n if (eventNumber && eventNumber > now.id) {\n return t(\n \"matchesCup.cupMatches.end\",\n \"Cup matches for round {{ eventNumber }} will be available at the end of round {{eventNumberMinus}}\",\n {\n eventNumber: eventNumber,\n eventNumberMinus: eventNumber - 1,\n }\n );\n }\n if (cupStatus.is_large && now.id < largeCupEvent) {\n return t(\n \"matchesCup.cupMatches.after\",\n \"Cup matches will be available after round {{largeCupEvent}}\",\n {\n largeCupEvent: largeCupEvent,\n }\n );\n }\n if (notStarted || cupStatus.qualification_event === now.id) {\n return t(\n \"matchesCup.cupMatches.draw\",\n \"The draw for the first round is yet to be made\"\n );\n }\n if (entryNumber && eventNumber) {\n return t(\n \"matchesCup.cupMatches.eliminated\",\n \"This team has been eliminated\"\n );\n }\n return \"\";\n };\n\n const handleEntryFilterChange = (e: React.ChangeEvent) =>\n navigate(\n buildMatchesUrl(\n leagueNumber,\n eventNumber,\n Number(e.currentTarget.value),\n 1\n )\n );\n\n const handleEventFilterChange = (e: React.ChangeEvent) => {\n if (e.currentTarget.value) {\n return navigate(\n buildMatchesUrl(\n leagueNumber,\n Number(e.currentTarget.value),\n entryNumber,\n 1\n )\n );\n }\n return navigate(buildMatchesUrl(leagueNumber, 0, entryNumber, 1));\n };\n\n return (\n \n
\n \n \n \n {t(\"matchesCup.leagueLink\", \"View league standings\")}\n \n \n {didNotQualify ? (\n \n \n {t(\"matchesCup.notQf\", \"This team did not qualify for the cup.\")}{\" \"}\n \n {t(\"matchesCup.viewMatches\", \"View cup matches\")}\n \n \n \n ) : (\n <>\n \n {!cupStatus.is_large && leagueEntries && (\n \n )}\n {cupStatus.qualification_event &&\n !notStarted &&\n (!cupStatus.is_large || now.id >= largeCupEvent) && (\n \n )}\n \n {matches && matches.results.length ? (\n \n ) : (\n \n {getNoMatchesMessage()}\n \n )}\n \n )}\n {cupStatus.qualification_event && (\n \n {t(\n \"matchesCup.cupStart\",\n \"The cup {{ cupStartText }} in RD {{cupStatus}}\",\n {\n cupStartText: cupStartText,\n cupStatus: cupStatus.qualification_event + 1,\n }\n )}\n \n )}\n \n \n {t(\"matchesCup.how\", \"How the cup works\")}\n

\n {t(\n \"matchesCup.explain1\",\n \"Each qualifying team will be randomly drawn against another in the first round. The winner (the team with the highest Round score minus any transfer points), will progress to the second round and another random draw, the losers are out! This process continues until the final round when the two remaining teams contest the cup final.\"\n )}\n

\n

\n {t(\n \"matchesCup.explain2\",\n \"If a cup match is drawn, then the following tie-breaks will be applied until a winner is found:\"\n )}\n

\n
    \n
  1. \n {t(\"matchesCup.explain3\", \"Most goals scored in the Round\")}\n
  2. \n
  3. \n {t(\"matchesCup.explain4\", \"Fewest goals conceded in the Round\")}\n
  4. \n
  5. {t(\"matchesCup.explain5\", \"Virtual coin toss\")}
  6. \n
\n
\n
\n {matches && (\n \n \n \n {pageMatches > 1 && (\n \n {t(\"matchesCup.previews\", \"Previous\")}\n \n )}\n \n \n {matches.has_next && (\n \n {t(\"matchesCup.next\", \"Next\")}\n \n )}\n \n \n \n )}\n
\n \n <>\n \n
\n );\n};\n\nexport default MatchesCup;\n","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst NavList = styled.ul`\n margin: ${({ theme }) => theme.space[2]};\n display: flex;\n background-color: ${({ theme }) => theme.colors.primary};\n border: 2px solid ${({ theme }) => theme.colors.primary};\n border-radius: 3px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin-right: 20%;\n margin-left: 20%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n margin-right: 30%;\n margin-left: 30%;\n }\n`;\n\nconst NavItem = styled.li`\n flex: 1;\n :not(:last-child) {\n border-right: 2px solid white;\n }\n`;\n\n// TODO - This stops isCurrent being passed to Link but doesn't have\n// any type checking\nconst NavLink = styled(({ isCurrent, ...rest }) => )`\n display: block;\n padding: ${({ theme }) => theme.space[2]};\n color: white;\n font-family: ${({ theme }) => theme.fonts.bold};\n text-decoration: none;\n text-align: center;\n\n ${(props) =>\n props.isCurrent &&\n css`\n background-color: white;\n color: ${({ theme }) => theme.colors.black};\n `}\n`;\n\ninterface IProps {\n defaultEntry?: number;\n leagueId: number;\n eventId: number;\n}\n\nconst H2HNav: React.FC = ({ eventId, leagueId, defaultEntry }) => {\n const defaultEntryParam = defaultEntry ? `default_entry=${defaultEntry}` : \"\";\n const links = [\n {\n href: `/leagues/${leagueId}/matches/h`,\n qs: `?event=${eventId}` + (defaultEntryParam && `&${defaultEntryParam}`),\n text: \"Matches\",\n },\n {\n href: `/leagues/${leagueId}/standings/h`,\n qs: defaultEntryParam && `?${defaultEntryParam}`,\n text: \"Standings\",\n },\n ];\n return (\n \n );\n};\n\nexport default H2HNav;\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport qs from \"qs\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { IError, RootState, ThunkDispatch } from \"../../core/store\";\nimport { getCurrentEvent, getEvents } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport {\n getActiveEntryInLeague,\n getH2HLeague,\n getH2HMatches,\n getH2HNewEntries,\n getH2HStandings,\n getLeagueEntries,\n getLeagueEntriesError,\n} from \"../../core/store/leagues/reducers\";\nimport {\n fetchH2HLeagueMatches,\n fetchH2HLeagueStandings,\n fetchLeagueEntries,\n} from \"../../core/store/leagues/thunks\";\nimport {\n IEntryInLeague,\n IH2HMatchesData,\n IH2HStandingsData,\n ILeague,\n INewEntriesData,\n} from \"../../core/store/leagues/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { IPlayer } from \"../../core/store/player/types\";\nimport Alert from \"../Alert\";\nimport ButtonLink from \"../ButtonLink\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport H2HEntryFilter from \"./H2HEntryFilter\";\nimport H2HEventFilter from \"./H2HEventFilter\";\nimport H2HNav from \"./H2HNav\";\nimport MatchesTable from \"./MatchesTable\";\nimport StandingsHeading from \"./StandingsHeading\";\nimport { SelectWrap } from \"./Styles\";\n\ntype OwnProps = RouteComponentProps<{\n entryId: string;\n eventId: string;\n leagueId: string;\n}>;\n\ninterface IPropsFromState {\n defaultEntryNumber: number;\n entryNumber: number;\n eventNumber: number;\n events: IEvent[];\n isPlayerInLeague: boolean;\n league: ILeague | null;\n leagueEntries: IEntryInLeague[] | null;\n leagueEntriesError: IError | null;\n leagueNumber: number;\n matches: IH2HMatchesData | null;\n newEntries: INewEntriesData | null;\n now: IEvent | null;\n pageMatches: number;\n player: IPlayer | null;\n standings: IH2HStandingsData | null;\n}\n\ninterface IPropsFromDispatch {\n fetchEntries: (leagueId: number) => void;\n fetchMatches: (\n leagueId: number,\n entryId: number,\n eventId: number,\n page: number\n ) => void;\n fetchStandings: (leagueId: number) => void;\n}\n\ntype Props = WithTranslation & OwnProps & IPropsFromState & IPropsFromDispatch;\n\nclass MatchesH2H extends React.Component {\n defaultEntry?: number;\n public componentDidMount() {\n this.defaultEntry = this.props.defaultEntryNumber;\n if (this.props.leagueNumber) {\n const {\n entryNumber,\n eventNumber,\n fetchEntries,\n fetchMatches,\n fetchStandings,\n leagueNumber,\n pageMatches,\n } = this.props;\n // Have to fetch standings to get league\n fetchStandings(leagueNumber);\n // We could look at delaying these calls as they are pointless for\n // unstarted h2h leagues at the cost of some complexity as we may have\n // to wait for league to be available. As a 'good enough' we don't do\n // them before the season starts ...\n if (this.props.now) {\n fetchEntries(leagueNumber);\n fetchMatches(leagueNumber, entryNumber, eventNumber, pageMatches);\n }\n }\n }\n public componentDidUpdate(prevProps: Props) {\n const {\n entryNumber,\n eventNumber,\n fetchMatches,\n isPlayerInLeague,\n leagueEntriesError,\n leagueNumber,\n pageMatches,\n player,\n } = this.props;\n if (\n prevProps.eventNumber !== eventNumber ||\n prevProps.pageMatches !== pageMatches ||\n prevProps.entryNumber !== entryNumber\n ) {\n fetchMatches(leagueNumber, entryNumber, eventNumber, pageMatches);\n }\n // We've got a large league, we can only show default or logged in entry\n let showEntry = 0;\n if (\n leagueEntriesError !== prevProps.leagueEntriesError &&\n this.isLargeLeague()\n ) {\n showEntry = this.defaultEntry\n ? this.defaultEntry\n : isPlayerInLeague\n ? // As isPlayerInLeague we must have a player and an entry\n player!.entry!\n : 0;\n navigate(this.buildMatchesUrl(leagueNumber, 0, showEntry, pageMatches), {\n replace: true,\n });\n }\n }\n\n public buildMatchesUrl(\n leagueNumber: number,\n eventNumber: number,\n entryNumber: number,\n pageMatches: number\n ) {\n let url = `/leagues/${leagueNumber}/matches/h?page_matches=${pageMatches}`;\n if (entryNumber) {\n url += `&entry=${entryNumber}`;\n }\n if (this.props.now?.id && eventNumber !== this.props.now.id) {\n url += `&event=${eventNumber}`;\n }\n return url;\n }\n\n public isLargeLeague() {\n return this.props.leagueEntriesError?.badRequest?.non_field_errors[0]\n ?.code === \"large_leagues_forbidden\"\n ? true\n : false;\n }\n\n public handleEntryFilterChange = (e: React.ChangeEvent) =>\n navigate(\n this.buildMatchesUrl(\n this.props.leagueNumber,\n this.props.eventNumber,\n parseInt(e.currentTarget.value, 10),\n 1\n )\n );\n\n public handleEventFilterChange = (e: React.ChangeEvent) =>\n navigate(\n this.buildMatchesUrl(\n this.props.leagueNumber,\n parseInt(e.currentTarget.value, 10),\n this.props.entryNumber,\n 1\n )\n );\n\n public render() {\n const {\n entryNumber,\n eventNumber,\n league,\n leagueEntries,\n leagueNumber,\n matches,\n newEntries,\n now,\n pageMatches,\n player,\n standings,\n t,\n } = this.props;\n if (!league || !newEntries) {\n return null;\n }\n // If we have new entries then switch to dedicated page\n if (!now || newEntries.results.length) {\n navigate(`/leagues/${league.id}/new-entries/h`, { replace: true });\n }\n if (!matches) {\n return null;\n }\n // Handle the edge case between rollover and matches being created ...\n if (\n now &&\n now.id === league.start_event &&\n standings &&\n !standings.results.length\n ) {\n return (\n \n
\n \n \n

\n {t(\n \"matchesH2h.explain1\",\n \"Matches are currently being generated, please check back later.\"\n )}\n

\n
\n
\n
\n );\n }\n\n return (\n \n
\n \n \n <>\n {now && (\n \n )}\n {leagueEntries && (\n \n \n \n \n )}\n {this.isLargeLeague() && (\n \n \n {t(\n \"matchesH2h.explain2\",\n \"In head-to-head leagues with more than 512 teams only matches for a single team can be viewed.\"\n )}\n \n \n )}\n {now && (\n \n )}\n \n \n \n {pageMatches > 1 && (\n \n {t(\"matchesH2h.previews\", \"Previous\")}\n \n )}\n \n \n {matches.has_next && (\n \n {t(\"matchesH2h.next\", \"Next\")}\n \n )}\n \n \n \n \n \n
\n \n <>\n \n
\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n // Get league id from path\n const leagueNumber = parseInt(ownProps.leagueId!, 10) || 0;\n // Get entry id from query string\n const query = qs.parse(ownProps.location!.search, {\n ignoreQueryPrefix: true,\n });\n const entryNumber = parseInt(query.entry as string, 10) || 0;\n const defaultEntryNumber = parseInt(query.default_entry as string, 10) || 0;\n const now = getCurrentEvent(state);\n const eventNumber = query.event\n ? parseInt(query.event as string, 10)\n : now?.id || 0;\n const pageMatches = parseInt(query.page_matches as string, 10) || 1;\n return {\n defaultEntryNumber,\n entryNumber,\n eventNumber,\n events: getEvents(state),\n isPlayerInLeague: Boolean(\n getActiveEntryInLeague(state, leagueNumber, \"h2h\")\n ),\n league: getH2HLeague(state, leagueNumber),\n leagueEntries: getLeagueEntries(state, leagueNumber),\n leagueEntriesError: getLeagueEntriesError(state, leagueNumber),\n leagueNumber,\n matches: leagueNumber\n ? getH2HMatches(\n state,\n leagueNumber,\n entryNumber,\n eventNumber,\n pageMatches\n )\n : null,\n newEntries: getH2HNewEntries(state, leagueNumber, 1),\n now,\n pageMatches: pageMatches,\n player: getPlayerData(state),\n standings: getH2HStandings(state, leagueNumber, 1),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntries: async (leagueId: number) =>\n dispatch(fetchLeagueEntries(leagueId)),\n fetchMatches: (\n leagueId: number,\n entryId: number,\n eventId: number,\n page: number\n ) => dispatch(fetchH2HLeagueMatches(leagueId, entryId, eventId, page)),\n fetchStandings: (leagueId: number) =>\n dispatch(fetchH2HLeagueStandings(leagueId, 1, 1)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(MatchesH2H)\n);\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport {\n getCupMatchesByLeagueId,\n getEntry,\n} from \"../../core/store/entries/reducers\";\nimport {\n CupMatchesByLeagueId,\n ILeagueEntry,\n} from \"../../core/store/entries/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport Panel from \"../Panel\";\nimport Table from \"../Table\";\nimport { VisuallyHidden } from \"../Utils\";\nimport CupTypeRow from \"./CupTypeRow\";\n\nconst CupCol = styled.th`\n width: 56%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 72%;\n }\n`;\n\nconst RoundCol = styled.th`\n width: 22%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 12%;\n }\n`;\n\nconst StatusCol = styled.th`\n width: 22%;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 16%;\n }\n`;\n\nconst MyCupsTable = styled(Table)`\n table-layout: fixed;\n\n th,\n td {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n }\n\n /* Have to do this because of Table td specificity */\n ${StatusCol} {\n text-align: center;\n }\n`;\n\ninterface IProps {\n leagues: ILeagueEntry[] | null;\n title: string;\n}\n\nconst CupTypeTable: React.FC = ({ leagues, title }) => {\n const { t } = useTranslation();\n const player = useSelector(getPlayerData);\n const entry = useSelector((state: RootState) =>\n player?.entry ? getEntry(state, player.entry) : null\n );\n\n const cupMatches: CupMatchesByLeagueId | null = useSelector(\n (state: RootState) =>\n entry ? getCupMatchesByLeagueId(state, entry.id) : null\n );\n\n if (!leagues || !entry) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n {t(\"cupTypeTable.cup\", \"Cup\")}\n \n \n {t(\"cupTypeTable.round\", \"Round\")}\n \n \n \n \n {t(\"cupTypeTable.status\", \"Status\")}\n \n \n \n \n \n {leagues.map((l) => (\n \n ))}\n \n \n \n \n );\n};\n\nexport default CupTypeTable;\n","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst NavList = styled.ul`\n display: flex;\n margin: ${({ theme }) => theme.space[2]};\n padding-left: 0;\n border: ${({ theme }) => theme.borders[0]};\n border-radius: 3px;\n background-color: ${({ theme }) => theme.colors.white};\n list-style-type: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin-right: 20%;\n margin-left: 20%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n margin-right: 30%;\n margin-left: 30%;\n }\n`;\n\nconst NavItem = styled.li`\n flex: 1;\n :not(:last-child) {\n border-right: 2px solid white;\n }\n`;\n\n// TODO - This stops isCurrent being passed to Link but doesn't have\n// any type checking\nconst NavLink = styled(({ isCurrent, ...rest }) => )`\n display: block;\n margin: 2px;\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[0]};\n color: ${({ theme }) => theme.colors.black};\n font-weight: bold;\n text-decoration: none;\n text-align: center;\n\n ${(props) =>\n props.isCurrent &&\n css`\n background-color: ${({ theme }) => theme.colors.yellow};\n color: ${({ theme }) => theme.colors.black};\n `}\n`;\n\ninterface ILinks {\n href: string;\n text: string;\n}\n\ninterface ISubNav {\n links: ILinks[];\n}\n\nconst SubNav: React.FC = ({ links }) => (\n \n);\n\nexport default SubNav;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport SubNav from \"../SubNav\";\n\nconst LeaguesNav: React.FC = () => {\n const { t } = useTranslation();\n const links = [\n { href: \"/leagues\", text: t(\"leaguesNav.news\", \"Leagues\") },\n { href: \"/leagues/cups\", text: t(\"leaguesNav.cups\", \"Cups\") },\n ];\n return ;\n};\n\nexport default LeaguesNav;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\nimport {\n getEntry,\n getPrivateClassicCupLeaguesForEntry,\n getPublicClassicCupLeaguesForEntry,\n getSystemClassicCupLeaguesForEntry,\n} from \"../../core/store/entries/reducers\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\nimport CupTypeTable from \"./CupTypeTable\";\nimport LeaguesNav from \"./LeaguesNav\";\nimport {\n getBroadcasterLeagues,\n getFilteredSystemClassicLeagues,\n} from \"./utils\";\n\nconst NavContainer = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: calc(100% / 3 * 2);\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: calc(100% / 4 * 3);\n }\n`;\n\nconst MyCups: React.FC = () => {\n const player = useSelector(getPlayerData);\n const entry = useSelector((state: RootState) =>\n player?.entry ? getEntry(state, player.entry) : null\n );\n const privateClassicLeagues = useSelector((state: RootState) =>\n entry ? getPrivateClassicCupLeaguesForEntry(state, entry.id) : []\n );\n const publicClassicLeagues = useSelector((state: RootState) =>\n entry ? getPublicClassicCupLeaguesForEntry(state, entry.id) : []\n );\n const systemClassicLeagues = useSelector((state: RootState) =>\n entry ? getSystemClassicCupLeaguesForEntry(state, entry.id) : []\n );\n\n const { t } = useTranslation();\n\n if (!entry) {\n return null;\n }\n\n const hasCupLeagues =\n privateClassicLeagues.length > 0 ||\n publicClassicLeagues.length > 0 ||\n systemClassicLeagues.length > 0;\n\n const broadcasterLeagues = getBroadcasterLeagues(systemClassicLeagues);\n const filteredSystemClassicLeagues = getFilteredSystemClassicLeagues(\n systemClassicLeagues,\n broadcasterLeagues\n );\n\n return (\n <>\n \n \n \n {t(\"myCups.title\", \"Leagues & Cups - {{ entryName }}\", {\n entryName: entry.name,\n })}\n \n \n \n \n \n \n \n
\n {hasCupLeagues ? (\n <>\n {privateClassicLeagues.length > 0 && (\n \n \n \n )}\n {publicClassicLeagues.length > 0 && (\n \n \n \n )}\n {filteredSystemClassicLeagues.length > 0 && (\n \n \n \n )}\n {broadcasterLeagues.length > 0 && (\n \n \n \n )}\n \n ) : (\n \n

\n {t(\"myCups.noCups\", \"None of your leagues have a cup yet.\")}\n

\n\n \n \n {t(\"myCups.button\", \"Create and Join New Leagues & Cups\")}\n \n \n \n
\n )}\n
\n \n
\n \n );\n};\n\nexport default MyCups;\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgFacebookRound(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n style: {\n enableBackground: \"new 0 0 24 24\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M12,0C5.3725586,0,0,5.3725586,0,12s5.3725586,12,12,12s12-5.3725586,12-12S18.6274414,0,12,0z M14.5249634,12.3076782 h-1.6512451c0,2.6392212,0,5.8892212,0,5.8892212h-2.4484863c0,0,0-3.2174683,0-5.8892212H9.2615356v-2.0810547h1.1636963 V8.8809204c0-0.9638672,0.4581909-2.4708252,2.4697266-2.4708252l1.8133545,0.0076294V8.437439c0,0-1.1022949,0-1.3163452,0 c-0.2142944,0-0.5182495,0.1066895-0.5182495,0.5664673v1.2227173h1.8647461L14.5249634,12.3076782z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebookRound);\nexport default __webpack_public_path__ + \"static/media/facebook-round.12f81449.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from \"react\";\n\ninterface IDialogProps {\n render: (\n showDialog: boolean,\n handleHide: () => void,\n handleShow: () => void\n ) => React.ReactNode;\n}\n\ninterface IDialogState {\n readonly showDialog: boolean;\n}\n\nclass DialogManager extends React.Component {\n public readonly state: Readonly = { showDialog: false };\n\n public handleShow = () => {\n this.setState({ showDialog: true });\n };\n\n public handleHide = () => {\n this.setState({ showDialog: false });\n };\n\n public render() {\n return (\n <>\n {this.props.render(\n this.state.showDialog,\n this.handleShow,\n this.handleHide\n )}\n \n );\n }\n}\n\nexport default DialogManager;\n","import styled from \"styled-components/macro\";\n\nconst LinkButton = styled.button`\n display: inline-flex;\n align-items: center;\n padding: 0;\n border: 0;\n background-color: transparent;\n color: ${({ theme }) => theme.colors.white};\n font-family: inherit;\n font-size: inherit;\n text-align: left;\n cursor: pointer;\n\n :hover {\n text-decoration: underline;\n }\n`;\n\nexport default LinkButton;\n","import { Link as RouterLink } from \"@reach/router\";\nimport { hideVisually, size } from \"polished\";\nimport React from \"react\";\nimport {\n WithTranslation,\n useTranslation,\n withTranslation,\n} from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getEntry,\n getPrivateClassicLeaguesForEntry,\n getPrivateH2HLeaguesForEntry,\n getPublicClassicLeaguesForEntry,\n getPublicH2HLeaguesForEntry,\n getSystemClassicLeaguesForEntry,\n} from \"../../core/store/entries/reducers\";\nimport { fetchEntrySummary } from \"../../core/store/entries/thunks\";\nimport { IEntry, ILeagueEntry } from \"../../core/store/entries/types\";\nimport { leaveLeague } from \"../../core/store/leagues/thunks\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { ILoggedInPlayer } from \"../../core/store/player/types\";\nimport { ReactComponent as BaseCog } from \"../../img/icons/cog.svg\";\nimport Button from \"../Button\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport DialogHeading from \"../DialogHeading\";\nimport DialogManager from \"../DialogManager\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Link from \"../Link\";\nimport LinkButton from \"../LinkButton\";\nimport Panel from \"../Panel\";\nimport SubHeading from \"../SubHeading\";\nimport Table from \"../Table\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport LeaguesNav from \"./LeaguesNav\";\nimport Movement from \"./Movement\";\nimport { getLeagueUrl } from \"./utils\";\n\nconst ActionBar = styled.ul`\n list-style-type: none;\n padding: 0;\n margin: 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: flex;\n }\n`;\n\nconst ActionBarItem = styled.li`\n padding: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n flex: 1;\n }\n`;\n\nconst ActionList = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 50%;\n margin: 0 auto;\n }\n`;\n\nconst MyLeaguesTable = styled(Table)`\n table-layout: fixed;\n\n th {\n padding-left: ${({ theme }) => theme.space[1]};\n padding-right: ${({ theme }) => theme.space[1]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-left: ${({ theme }) => theme.space[2]};\n padding-right: ${({ theme }) => theme.space[2]};\n }\n }\n\n td {\n padding: ${({ theme }) => theme.space[3]} ${({ theme }) => theme.space[1]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-left: ${({ theme }) => theme.space[2]};\n padding-right: ${({ theme }) => theme.space[2]};\n }\n }\n`;\n\nconst LeagueCol = styled.th`\n width: 40%;\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 36%;\n }\n`;\n\nconst MovementCol = styled.th`\n width: 8%;\n`;\n\nconst RankCol = styled.th`\n width: 24%;\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 18%;\n }\n`;\n\nconst OptionsCol = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 20%;\n }\n`;\n\nconst MenuCopy = styled.span`\n margin-left: ${({ theme }) => theme.space[1]};\n\n @media (max-width: ${({ theme }) => theme.breakpoints[2]}) {\n ${hideVisually}\n }\n`;\n\nconst Cog = styled(BaseCog)`\n ${size(14)};\n`;\n\ninterface IPropsFromState {\n entry: IEntry | null;\n player: ILoggedInPlayer;\n privateClassicLeagues: ILeagueEntry[];\n privateH2HLeagues: ILeagueEntry[];\n publicClassicLeagues: ILeagueEntry[];\n publicH2HLeagues: ILeagueEntry[];\n systemClassicLeagues: ILeagueEntry[];\n}\n\ninterface IPropsFromDispatch {\n fetchEntrySummary: (entryId: number) => void;\n leave: (leagueId: number) => void;\n}\n\ntype Props = WithTranslation & IPropsFromState & IPropsFromDispatch;\n\nclass MyLeagues extends React.Component {\n public componentDidMount() {\n this.props.fetchEntrySummary(this.props.player.entry);\n }\n\n public render() {\n const {\n entry,\n leave,\n privateClassicLeagues,\n privateH2HLeagues,\n publicClassicLeagues,\n publicH2HLeagues,\n systemClassicLeagues,\n t,\n } = this.props;\n if (!entry) {\n return null;\n }\n return (\n \n
\n \n \n \n \n \n {entry.name}\n \n \n \n \n }\n >\n {t(\n \"myLeagues.createJoinButton\",\n \"Create and join new leagues & cups\"\n )}\n \n \n \n }\n >\n {t(\"myLeagues.renewButton\", \"Renew your leagues\")}\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n );\n }\n}\n\nexport { MyLeagues as MyLeaguesTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const player = getPlayerData(state) as ILoggedInPlayer; // enforced by EntryRoute\n const entry = player.entry;\n return {\n entry: getEntry(state, entry),\n player,\n privateClassicLeagues: getPrivateClassicLeaguesForEntry(state, entry),\n privateH2HLeagues: getPrivateH2HLeaguesForEntry(state, entry),\n publicClassicLeagues: getPublicClassicLeaguesForEntry(state, entry),\n publicH2HLeagues: getPublicH2HLeaguesForEntry(state, entry),\n systemClassicLeagues: getSystemClassicLeaguesForEntry(state, entry),\n };\n};\n\nconst mapDispatchToProps = (\n dispatch: ThunkDispatch,\n ownProps: WithTranslation\n): IPropsFromDispatch => ({\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n leave: (leagueId: number) => {\n if (\n window.confirm(\n ownProps.t(\n \"myLeagues.confirmLeave\",\n \"Are you sure you want to leave this league?\"\n )\n )\n ) {\n dispatch(leaveLeague(leagueId));\n }\n },\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(MyLeagues)\n);\n\ninterface ILeagueTypeTableProps {\n leagues: ILeagueEntry[];\n leave: (leagueId: number) => void;\n title: string;\n}\n\nconst LeagueTypeTable: React.FC = ({\n leagues,\n leave,\n title,\n}) => {\n const { t } = useTranslation();\n return (\n \n \n \n {leagues.length === 0 ? (\n \n

\n {t(\"myLeagues.noneJoined\", \"No \")}\n {title.toLowerCase()}\n {t(\"myLeagues.noneJoined2\", \" joined yet.\")}{\" \"}\n \n {t(\"myLeagues.noneJoined3\", \"Create and join new leagues\")}\n \n .\n

\n
\n ) : (\n \n \n \n {t(\"myLeagues.th.league\", \"League\")}\n  \n \n {t(\"myLeagues.th.currentRank\", \"Current Rank\")}\n \n {t(\"myLeagues.th.lastRank\", \"Last Rank\")}\n  \n \n \n \n {leagues.map((l) => (\n \n \n \n
{l.name}
\n \n \n \n \n \n {l.entry_rank ? l.entry_rank.toLocaleString() : \"-\"}\n \n {l.entry_last_rank\n ? l.entry_last_rank.toLocaleString()\n : \"-\"}\n \n \n (\n <>\n \n \n \n {t(\"myLeagues.optionsLink\", \"Options\")}\n \n \n {showDialog && (\n \n )}\n \n )}\n />\n \n \n ))}\n \n
\n )}\n
\n
\n );\n};\n\ninterface ILeagueMenuDialogProps {\n handleHide: () => void;\n leagueEntry: ILeagueEntry;\n leave: (leagueId: number) => void;\n}\n\nconst LeagueMenuDialog: React.FC = ({\n handleHide,\n leagueEntry,\n leave,\n}) => {\n const { t } = useTranslation();\n return (\n \n \n \n {leagueEntry.name}\n \n \n \n \n \n }\n to={`/leagues/${leagueEntry.id}/standings/${leagueEntry.scoring}`}\n >\n {t(\"myLeagues.menuDialog.standings\", \"Standings\")}\n \n \n {leagueEntry.entry_can_leave && (\n \n }\n onClick={() => {\n leave(leagueEntry.id);\n handleHide();\n }}\n >\n {t(\"myLeagues.menuDialog.leave\", \"Leave league\")}\n \n \n )}\n {leagueEntry.entry_can_admin && (\n \n }\n to={`/leagues/${leagueEntry.id}/admin/${leagueEntry.scoring}`}\n >\n {t(\"myLeagues.menuDialog.admin\", \"Administer\")}\n \n \n )}\n {leagueEntry.entry_can_invite && (\n \n }\n to={`/leagues/${leagueEntry.id}/invite`}\n >\n {t(\"myLeagues.menuDialog.invite\", \"Invite friends\")}\n \n \n )}\n \n \n \n );\n};\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getH2HLeague,\n getH2HNewEntries,\n} from \"../../core/store/leagues/reducers\";\nimport { fetchH2HLeagueStandings } from \"../../core/store/leagues/thunks\";\nimport Button from \"../Button\";\nimport { ControlArrowLeft, ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Link from \"../Link\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport SubHeading from \"../SubHeading\";\nimport Table, { THeadRadius } from \"../Table\";\nimport Panel from \"../Panel\";\nimport StandingsHeading from \"./StandingsHeading\";\n\ntype OwnProps = RouteComponentProps<{\n leagueId: string;\n}>;\n\nconst NewEntriesH2H: React.FC = ({ leagueId }) => {\n const { t } = useTranslation();\n const leagueNumber = Number(leagueId);\n const reduxDispatch = useDispatch();\n const [page, setPage] = useState(1);\n const league = useSelector((state: RootState) =>\n getH2HLeague(state, leagueNumber)\n );\n const newEntries = useSelector((state: RootState) =>\n getH2HNewEntries(state, leagueNumber, page)\n );\n useEffect(() => {\n reduxDispatch(fetchH2HLeagueStandings(leagueNumber, page, 1));\n }, [reduxDispatch, page, leagueNumber]);\n\n if (!league || !newEntries) {\n return null;\n }\n\n return (\n \n
\n \n \n {t(\"standingH2h.new\", \"New entries\")}\n \n \n \n \n \n \n \n \n \n \n {newEntries.results.map((ne) => (\n \n \n \n \n ))}\n \n
{t(\"standingH2h.team1\", \"Team\")}{t(\"standingH2h.manager1\", \"Manager\")}
{ne.entry_name}\n \n {ne.player_first_name} {ne.player_last_name}\n \n
\n
\n
\n \n \n {page > 1 && (\n \n )}\n \n \n {newEntries.has_next && (\n \n )}\n \n \n
\n
\n \n <>\n \n
\n );\n};\n\nexport default NewEntriesH2H;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getRenewableLeagues } from \"../../core/store/leagues/reducers\";\nimport {\n deleteRenewableLeague,\n fetchRenewableLeagues,\n renewRenewableLeague,\n} from \"../../core/store/leagues/thunks\";\nimport { IRenewableLeague } from \"../../core/store/leagues/types\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\ninterface IPropsFromState {\n leagues: IRenewableLeague[];\n}\n\ninterface IPropsFromDispatch {\n destroy: (id: number) => void;\n fetch: () => void;\n renew: (id: number) => void;\n}\n\ntype Props = WithTranslation & IPropsFromState & IPropsFromDispatch;\n\nclass Renew extends React.Component {\n public componentDidMount() {\n this.props.fetch();\n }\n\n public render() {\n const { destroy, leagues, renew, t } = this.props;\n return (\n \n
\n \n {t(\"renew.title\", \"Renew your leagues\")}\n

\n {t(\n \"renew.p1\",\n \"Choose whether you wish to renew or delete last season's private leagues.\"\n )}\n

\n

\n {t(\n \"renew.p2\",\n \"All players from last season will automatically be entered into the renewed league(s) when they join the game.\"\n )}\n

\n\n {leagues.length ? (\n
    \n {leagues.map((l) => (\n
  • \n {l.name}\n \n \n \n \n \n \n \n \n
  • \n ))}\n
\n ) : (\n \n {t(\"renew.none\", \"You have no leagues to renew.\")}\n \n )}\n
\n
\n
\n );\n }\n}\n\nexport { Renew as RenewTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n leagues: getRenewableLeagues(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n destroy: async (id: number) =>\n await dispatch(deleteRenewableLeague(id)).catch((e) => {}),\n fetch: async () => await dispatch(fetchRenewableLeagues()).catch((e) => {}),\n renew: async (id: number) =>\n await dispatch(renewRenewableLeague(id)).catch((e) => {}),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(Renew)\n);\n","import React from \"react\";\nimport { Helmet } from \"react-helmet\";\n\ninterface IProps {\n description: string;\n title: string;\n}\n\nconst HelmetHead: React.FC = ({ description, title }) => {\n return (\n \n {title}\n \n \n );\n};\n\nexport default HelmetHead;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport HelmetHead from \"../HelmetHead\";\n\nconst HelmetHeadLeagues: React.FC = () => {\n const { t } = useTranslation();\n return (\n <>\n \n \n );\n};\n\nexport default HelmetHeadLeagues;\n","import styled, { css } from \"styled-components/macro\";\n\ninterface IProps {\n mine: boolean;\n}\n\nconst StandingsRow = styled.tr`\n ${(props) =>\n props.mine &&\n css`\n td {\n background-color: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.white};\n font-weight: normal;\n > a {\n color: ${({ theme }) => theme.colors.white};\n font-weight: bold;\n }\n }\n `}\n`;\nexport default StandingsRow;\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport qs from \"qs\";\nimport React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport {\n getClassicLeague,\n getClassicNewEntries,\n getClassicStandings,\n} from \"../../core/store/leagues/reducers\";\nimport { fetchClassicLeagueStandings } from \"../../core/store/leagues/thunks\";\nimport {\n IClassicStandingsWithDates,\n ILeague,\n INewEntriesData,\n} from \"../../core/store/leagues/types\";\nimport { getStartedPhases } from \"../../core/store/phases/reducers\";\nimport { IPhase } from \"../../core/store/phases/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { IPlayer } from \"../../core/store/player/types\";\nimport { formatRawAsLocalI18n } from \"../../core/utils/datetime\";\nimport { dateLocales } from \"../../i18n\";\nimport { getShortNameFromId } from \"../../utils/events\";\nimport Alert from \"../Alert\";\nimport BoldLink from \"../BoldLink\";\nimport ButtonLink from \"../ButtonLink\";\nimport { InlineSelectField } from \"../FieldRenderers\";\nimport { ControlArrowLeft, ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Link from \"../Link\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport SubHeading from \"../SubHeading\";\nimport Table, { THeadRadius } from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\nimport Movement from \"./Movement\";\nimport StandingsHeading from \"./StandingsHeading\";\nimport StandingsRow from \"./StandingsRow\";\nimport Panel from \"../Panel\";\nimport { getCupUrl } from \"./utils\";\n\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\ninterface IPropsFromState {\n league: ILeague | null;\n leagueNumber: number;\n newEntries: INewEntriesData | null;\n now: IEvent | null;\n pageNewEntries: number;\n pageStandings: number;\n phase: number;\n phases: IPhase[];\n player: IPlayer | null;\n standings: IClassicStandingsWithDates | null;\n}\n\ninterface IPropsFromDispatch {\n fetchStandings: (\n leagueId: number,\n phaseId: number,\n pageNewEntries: number,\n pageStandings: number\n ) => void;\n}\n\ntype Props = WithTranslation & OwnProps & IPropsFromState & IPropsFromDispatch;\n\nclass StandingsClassic extends React.Component {\n public fetchLeagueStandings() {\n if (this.props.leagueNumber) {\n this.props.fetchStandings(\n this.props.leagueNumber,\n this.props.phase,\n this.props.pageNewEntries,\n this.props.pageStandings\n );\n }\n }\n\n public componentDidMount() {\n this.fetchLeagueStandings();\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (\n prevProps.pageNewEntries !== this.props.pageNewEntries ||\n prevProps.pageStandings !== this.props.pageStandings ||\n prevProps.phase !== this.props.phase\n ) {\n this.fetchLeagueStandings();\n }\n }\n\n public buildLink(\n phase: number,\n pageNewEntries: number,\n pageStandings: number\n ) {\n return `/leagues/${\n this.props.league!.id\n }/standings/c?phase=${phase}&page_new_entries=${pageNewEntries}&page_standings=${pageStandings}`;\n }\n\n public handleChange = (e: React.FormEvent) =>\n navigate(this.buildLink(parseInt(e.currentTarget.value, 10), 1, 1));\n\n public render() {\n const {\n i18n,\n league,\n leagueNumber,\n newEntries,\n now,\n pageNewEntries,\n pageStandings,\n phase,\n phases,\n player,\n standings,\n t,\n } = this.props;\n\n if (!league) {\n return null;\n }\n\n const started = now && league.start_event <= now.id;\n return (\n <>\n \n \n
\n \n {league.has_cup && (\n \n \n {league.cup_league\n ? t(\"standingClassic.matches\", \"View cup matches\")\n : t(\"standingClassic.info\", \"View cup info\")}\n \n \n )}\n {league.start_event > 1 && (\n \n \n {started\n ? t(\n \"standingClassic.started\",\n \"League scoring started in Round {{eventStarted}}\",\n {\n eventStarted: getShortNameFromId(\n league.start_event,\n true\n ),\n }\n )\n : t(\n \"standingClassic.starting\",\n \"League scoring will start in Round {{eventStarted}}\",\n {\n eventStarting: getShortNameFromId(\n league.start_event,\n true\n ),\n }\n )}\n \n \n )}\n \n
\n \n {phases.map((p) => (\n \n {p.name}\n \n ))}\n \n \n
\n {standings && standings.lastUpdatedData && (\n \n {t(\n \"standingClassic.lastUpdate\",\n \"Last updated: {{ lastUpdatedData }} (local time)\",\n {\n lastUpdatedData: formatRawAsLocalI18n(\n standings.lastUpdatedData,\n dateLocales[i18n.language]\n ),\n }\n )}\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {standings &&\n standings.results.map((ls) => (\n \n \n \n \n \n \n ))}\n \n
{t(\"standingClassic.rank\", \"Rank\")}\n {t(\"standingClassic.team\", \"Team & Manager\")}\n \n \n \n {t(\"standingClassic.rd\", \"RD\")}\n \n \n \n \n \n {t(\"standingClassic.tot\", \"TOT\")}\n \n \n
\n \n {ls.rank}\n \n \n \n {now ? (\n \n {ls.entry_name}\n \n ) : (\n {ls.entry_name}\n )}\n
\n {ls.player_name}\n
{ls.event_total}{ls.total}
\n
\n
\n
\n {standings && (\n \n \n {pageStandings > 1 && (\n \n {t(\"standingClassic.previews\", \"Previous\")}\n \n )}\n \n \n {standings.has_next && (\n \n {t(\"standingClassic.next\", \"Next\")}\n \n )}\n \n \n )}\n {newEntries && newEntries.results.length > 0 && (\n <>\n \n {t(\"standingClassic.new\", \"New entries\")}\n \n \n \n \n \n \n \n \n \n \n \n {newEntries.results.map((ne) => (\n \n \n \n \n ))}\n \n
\n {t(\"standingClassic.team1\", \"Team\")}\n \n {t(\"standingClassic.manager1\", \"Manager\")}\n
{ne.entry_name}\n \n {ne.player_first_name} {ne.player_last_name}\n \n
\n
\n
\n \n \n {pageNewEntries > 1 && (\n \n \n \n {t(\"standingClassic.previews1\", \"Previous\")}\n \n \n )}\n \n \n {newEntries.has_next && (\n \n \n {t(\"standingClassic.next1\", \"Next\")}\n \n \n \n )}\n \n \n \n )}\n
\n \n <>\n \n
\n \n );\n }\n}\n\nexport { StandingsClassic as StandingClassicTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n // Get league id from path\n const leagueNumber = parseInt(ownProps.leagueId!, 10) || 0;\n\n // Get phase and page numbers from query string\n const query = qs.parse(ownProps.location!.search, {\n ignoreQueryPrefix: true,\n });\n const phase = parseInt(query.phase as string, 10) || 1;\n const pageNewEntries = parseInt(query.page_new_entries as string, 10) || 1;\n const pageStandings = parseInt(query.page_standings as string, 10) || 1;\n\n return {\n now: getCurrentEvent(state),\n league: getClassicLeague(state, leagueNumber),\n leagueNumber,\n newEntries: getClassicNewEntries(state, leagueNumber, pageNewEntries),\n pageNewEntries,\n pageStandings,\n phase,\n phases: getStartedPhases(state),\n player: getPlayerData(state),\n standings: getClassicStandings(state, leagueNumber, phase, pageStandings),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchStandings: (\n leagueId: number,\n phaseId: number,\n pageNewEntries: number,\n pageStandings: number\n ) =>\n dispatch(\n fetchClassicLeagueStandings(\n leagueId,\n pageNewEntries,\n pageStandings,\n phaseId\n )\n ),\n});\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(StandingsClassic)\n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport qs from \"qs\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getCurrentEvent,\n getNextEvent,\n} from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport {\n getActiveEntryInLeague,\n getH2HLeague,\n getH2HStandings,\n} from \"../../core/store/leagues/reducers\";\nimport { fetchH2HLeagueStandings } from \"../../core/store/leagues/thunks\";\nimport { IH2HStandingsData, ILeague } from \"../../core/store/leagues/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { IPlayer } from \"../../core/store/player/types\";\nimport ButtonLink from \"../ButtonLink\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Link from \"../Link\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport Table, { ScrollTable } from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport { ControlArrowLeft, ControlArrowRight } from \"../icons/Arrows\";\nimport H2HNav from \"./H2HNav\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\nimport Movement from \"./Movement\";\nimport StandingsHeading from \"./StandingsHeading\";\nimport StandingsRow from \"./StandingsRow\";\n\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\ninterface IPropsFromState {\n defaultEntryNumber: number;\n isPlayerInLeague: boolean;\n league: ILeague | null;\n leagueNumber: number;\n next: IEvent | null;\n now: IEvent | null;\n pageNewEntries: number;\n pageStandings: number;\n player: IPlayer | null;\n standings: IH2HStandingsData | null;\n}\n\ninterface IPropsFromDispatch {\n fetchStandings: (\n leagueId: number,\n pageNewEntries: number,\n pageStandings: number\n ) => void;\n}\n\ntype Props = WithTranslation & OwnProps & IPropsFromState & IPropsFromDispatch;\n\nclass StandingsH2H extends React.Component {\n public fetchLeagueStandings() {\n if (this.props.leagueNumber) {\n this.props.fetchStandings(\n this.props.leagueNumber,\n this.props.pageNewEntries,\n this.props.pageStandings\n );\n }\n }\n\n public componentDidMount() {\n this.fetchLeagueStandings();\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (\n prevProps.pageNewEntries !== this.props.pageNewEntries ||\n prevProps.pageStandings !== this.props.pageStandings\n ) {\n this.fetchLeagueStandings();\n }\n }\n\n public buildLink(pageStandings: number) {\n return `/leagues/${\n this.props.league!.id\n }/standings/h?page_standings=${pageStandings}`;\n }\n\n public render() {\n const {\n defaultEntryNumber,\n league,\n now,\n pageStandings,\n player,\n standings,\n leagueNumber,\n t,\n } = this.props;\n if (!league) {\n return null;\n }\n return (\n \n \n
\n \n {standings && standings.results[0] && now && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {standings &&\n standings.results.map((ls) => (\n \n \n \n \n \n \n \n \n \n ))}\n \n
{t(\"standingH2h.rank\", \"Rank\")}\n {t(\"standingH2h.team\", \"Team & Manager\")}\n \n \n {t(\"standingH2h.win\", \"W\")}\n \n \n \n \n {t(\"standingH2h.draw\", \"D\")}\n \n \n \n \n \n {t(\"standingH2h.loose\", \"L\")}\n \n \n {t(\"standingH2h.score\", \"Score\")}\n \n \n {t(\"standingH2h.pts\", \"Pts\")}\n \n \n
\n \n {ls.rank}\n \n \n \n {ls.entry ? (\n \n {ls.entry_name}\n \n ) : (\n {ls.entry_name}\n )}\n
\n {ls.player_name}\n
{ls.matches_won}{ls.matches_drawn}{ls.matches_lost}{ls.points_for}{ls.total}
\n
\n
\n {standings && standings.results.length > 0 && (\n \n \n \n {pageStandings > 1 && (\n \n \n {t(\"standingH2h.previews\", \"Previous\")}\n \n )}\n \n \n {standings.has_next && (\n \n {t(\"standingH2h.next\", \"Next\")}\n \n \n )}\n \n \n \n )}\n
\n \n <>\n \n
\n );\n }\n}\n\nexport { StandingsH2H as StandingH2HTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n // Get league id from path\n const leagueNumber = parseInt(ownProps.leagueId!, 10) || 0;\n\n // Get page numbers from query string\n const query = qs.parse(ownProps.location!.search, {\n ignoreQueryPrefix: true,\n });\n const defaultEntryNumber = parseInt(query.default_entry as string, 10) || 0;\n const pageNewEntries = parseInt(query.page_new_entries as string, 10) || 1;\n const pageStandings = parseInt(query.page_standings as string, 10) || 1;\n const next = getNextEvent(state);\n const now = getCurrentEvent(state);\n return {\n defaultEntryNumber,\n isPlayerInLeague: Boolean(\n getActiveEntryInLeague(state, leagueNumber, \"h2h\")\n ),\n league: getH2HLeague(state, leagueNumber),\n leagueNumber,\n next: next,\n now: now,\n pageNewEntries,\n pageStandings,\n player: getPlayerData(state),\n standings: getH2HStandings(state, leagueNumber, pageStandings),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchStandings: (\n leagueId: number,\n pageNewEntries: number,\n pageStandings: number\n ) =>\n dispatch(fetchH2HLeagueStandings(leagueId, pageNewEntries, pageStandings)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(StandingsH2H)\n);\n","import React from \"react\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { useSelector } from \"react-redux\";\nimport { Redirect, RouteComponentProps } from \"@reach/router\";\n\nconst LoggedIn: React.FC = () => {\n const player = useSelector(getPlayerData);\n if (!player) {\n return ;\n } else if (!player.entry) {\n return ;\n }\n return ;\n};\n\nexport default LoggedIn;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { logout } from \"../../core/store/player/thunks\";\n\nconst mapDispatch = {\n logout: () => logout(),\n};\n\nconst connector = connect(null, mapDispatch);\n\ntype PropsFromRedux = ConnectedProps;\n\nclass Logout extends React.Component {\n public async componentDidMount() {\n await this.props\n .logout()\n .then(() => window.location.replace(\"/\"))\n .catch(() => {});\n }\n\n public render() {\n return
;\n }\n}\n\nexport default connector(Logout);\n","export const FetchAPI = async (\n uri: string,\n data: Record,\n method: string\n) => {\n await fetch(`/api/${uri}`, {\n method,\n credentials: \"same-origin\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(data),\n });\n};\n\nexport const FetchPost = async (uri: string, data: Record) =>\n FetchAPI(uri, data, \"POST\");\n\nexport const FetchPut = async (uri: string, data: Record) =>\n FetchAPI(uri, data, \"PUT\");\n","import { Link, navigate, RouteComponentProps } from \"@reach/router\";\nimport React, { useState } from \"react\";\nimport { Trans, useTranslation } from \"react-i18next\";\nimport { useDispatch } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { bootstrap } from \"../../core/store/bootstrap/thunks\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { InputField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport { FetchPut } from \"./utils\";\n\nconst MergeCode: React.FC = () => {\n const reduxDispatch = useDispatch();\n const { t } = useTranslation();\n const [token, setToken] = useState(\"\");\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n FetchPut(\"player/otp-validate/\", { token }).then(async () => {\n try {\n await reduxDispatch(bootstrap());\n } catch (e) {\n return;\n }\n navigate(\"../player\");\n });\n };\n return (\n \n
\n \n {t(\"mergeCode.title\", \"Merge Account\")}\n {t(\"mergCode.subheading\", \"Enter Code\")}\n

\n {t(\n \"mergeCode.intro\",\n \"To complete the account merge, please enter the 6-digit code sent to the email address registered to your old account and click 'Submit code'.\"\n )}\n

\n
\n ) =>\n setToken(e.currentTarget.value)\n }\n required={false}\n />\n \n \n \n \n

\n \n Didn't get the code? If you do not see the email in your inbox,{\" \"}\n check your “junk mail” folder or “spam” folder. We make every{\" \"}\n effort to ensure these emails are delivered. If you still don't{\" \"}\n receive the code, click here{\" \"}\n to send it again.\n \n

\n
\n
\n
\n );\n};\n\nexport default MergeCode;\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { InputField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport { FetchPost } from \"./utils\";\n\nconst MergeEmail: React.FC = () => {\n const { t } = useTranslation();\n const [email, setEmail] = useState(\"\");\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n FetchPost(\"player/otp-send/\", { email }).then(() =>\n navigate(\"./merge-code\")\n );\n };\n\n return (\n \n
\n \n {t(\"mergeEmail.title\", \"Merge Account\")}\n {t(\"mergeEmail.subheading\", \"Send Code\")}\n

\n {t(\n \"mergeEmail.intro\",\n \"To merge your account, we need to send a code to the email address registered to your old Allsvenskan Fantasy account. Please enter the email address you used to log into your old Allsvenskan Fantasy account (it may be the same one you use for your new account).\"\n )}\n

\n
\n ) =>\n setEmail(e.currentTarget.value)\n }\n required={false}\n />\n \n \n \n \n
\n
\n
\n );\n};\n\nexport default MergeEmail;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch } from \"react-redux\";\nimport { Box } from \"rebass\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { passwordReset } from \"../../core/store/player/thunks\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { InputField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\n\nconst PasswordReset: React.FC = () => {\n const reduxDispatch = useDispatch();\n const { t } = useTranslation();\n const [email, setEmail] = useState(\"\");\n const [submitted, setSumbitted] = useState(false);\n\n async function handleSubmit(e: React.FormEvent) {\n e.preventDefault();\n try {\n await reduxDispatch(passwordReset({ email }));\n } catch (e) {\n return;\n }\n setSumbitted(true);\n }\n\n if (submitted) {\n return (\n \n
\n \n {t(\"passwordReset.sentTitle\", \"Password reset sent\")}\n \n \n

\n {t(\n \"passwordReset.sentExplain\",\n \"We've emailed you instructions for setting your password to the email address you submitted. You should receive it shortly.\"\n )}\n

\n
\n
\n
\n );\n }\n\n return (\n \n
\n \n {t(\"passwordReset.title\", \"Password reset\")}\n \n \n

\n {t(\n \"passwordReset.explain\",\n \"Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one.\"\n )}\n

\n
\n \n ) =>\n setEmail(e.currentTarget.value)\n }\n />\n \n \n \n \n
\n
\n
\n
\n );\n};\n\nexport default PasswordReset;\n","import { RouteComponentProps } from \"@reach/router\";\nimport values from \"lodash/values\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { getPasswordSetError } from \"../../core/store/player/reducers\";\nimport { passwordSet } from \"../../core/store/player/thunks\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport { FieldFeedback, InputField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\n\ninterface IErrors {\n newPassword1: string;\n newPassword2: string;\n}\n\nconst PasswordSet: React.FC<\n RouteComponentProps<{\n uidb64: string;\n token: string;\n }>\n> = ({ uidb64, token }) => {\n const passwordSetErrors = useSelector(getPasswordSetError);\n const reduxDispatch = useDispatch();\n const { t } = useTranslation();\n const [initialToken] = useState(token);\n const [newPassword1, setNewPassword1] = useState(\"\");\n const [newPassword2, setNewPassword2] = useState(\"\");\n const [submitted, setSumbitted] = useState(false);\n const [errors, setErrors] = useState({\n newPassword1: \"\",\n newPassword2: \"\",\n });\n\n if (submitted) {\n return (\n \n
\n \n \n {t(\"passwordReset.completeTitle\", \"Password reset sent\")}\n \n \n \n

\n {t(\n \"passwordReset.completeText\",\n \"Your password has been set. You may go ahead and log in now.\"\n )}\n

\n \n \n {t(\"passwordSet.completeLogin\", \"Log in\")}\n \n \n
\n
\n
\n );\n }\n\n if (!initialToken || !uidb64) {\n return (\n \n
\n \n \n {t(\"passwordReset.errorMissingTitle\", \"Error validating link\")}\n \n \n \n

\n {t(\n \"passwordReset.errorMissingText\",\n \"There was a problem with the password reset URL. Please try clicking the link again or cut and paste it from your email application.\"\n )}\n

\n
\n
\n
\n );\n }\n\n async function handleSubmit(e: React.FormEvent) {\n e.preventDefault();\n try {\n await reduxDispatch(\n passwordSet({\n new_password1: newPassword1,\n new_password2: newPassword2,\n uidb64: uidb64 as string,\n token: initialToken as string,\n })\n );\n } catch (e) {\n return;\n }\n setSumbitted(true);\n }\n\n // Errors which can be picked up by the UI\n const validate = () => {\n const errors: IErrors = {\n newPassword1: \"\",\n newPassword2: \"\",\n };\n if (newPassword1.length <= 6) {\n errors.newPassword1 = t(\n \"passwordSet.hintPassword1\",\n \"Minimum 6 characters\"\n );\n }\n if (newPassword2.length && newPassword1 !== newPassword2) {\n errors.newPassword2 = t(\n \"passwordSet.errorMatch\",\n \"Please make sure the passwords match.\"\n );\n }\n setErrors(errors);\n };\n\n // Obvious errors should be picked up by the UI but just in case we should\n // show them. Better en errors than none ...\n const serverErrors =\n passwordSetErrors && passwordSetErrors.badRequest\n ? values(passwordSetErrors.badRequest).map((e) => e[0].message)\n : [];\n\n const disabled = newPassword1.length < 6 || newPassword1 !== newPassword2;\n\n return (\n \n
\n \n {t(\"passwordSet.title\", \"Enter new password\")}\n \n {serverErrors.length > 0 && (\n \n {values(serverErrors).map((r) => (\n

{r}

\n ))}\n
\n )}\n \n

\n {t(\n \"passwordSet.explain\",\n \"Please enter your new password twice so we can verify you typed it in correctly.\"\n )}\n

\n
\n \n ) =>\n setNewPassword1(e.currentTarget.value)\n }\n onBlur={validate}\n hint={t(\"passwordSet.hintPassword1\", \"Minimum 6 characters\")}\n />\n \n {errors.newPassword1 && (\n {errors.newPassword1}\n )}\n \n ) =>\n setNewPassword2(e.currentTarget.value)\n }\n onBlur={validate}\n />\n \n {errors.newPassword2 && (\n {errors.newPassword2}\n )}\n \n \n \n
\n
\n
\n
\n );\n};\n\nexport default PasswordSet;\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { IRegion } from \"./types\";\n\n// Action Creators\nexport const addRegions = createAsyncAction(\n \"ADD_REGIONS_START\",\n \"ADD_REGIONS_SUCCESS\",\n \"ADD_REGIONS_FAILURE\"\n)();\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"./actions\";\nimport { IRegion, IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addRegions.success):\n const newState: { [key: string]: IRegion } = {};\n action.payload.forEach((team) => {\n newState[team.id] = team;\n });\n return newState;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getRegionsById = (state: RootState) => state.regions.byId;\n\nexport const getRegions = (state: RootState) =>\n Object.keys(state.regions.byId).map((r) => state.regions.byId[r]);\n","import { Link } from \"@reach/router\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\n\nconst StitchBox = () => {\n const player = useSelector(getPlayerData);\n const { t } = useTranslation();\n\n if (!player) {\n return null;\n }\n\n const isNormalConfirm = player.dirty && !player.stitched;\n const canStitch = !player.dirty && !player.stitched;\n const isConfirmStitch = player.dirty && player.stitched;\n const isStitched = !player.dirty && player.stitched;\n\n if (isNormalConfirm) {\n return null;\n }\n\n if (canStitch) {\n return (\n \n \n \n

\n \n {t(\n \"stitchBox.canStitch.p1\",\n \"Would you like to keep your game history from previous seasons?\"\n )}\n \n

\n

\n {t(\n \"stitchBox.canStitch.p2\",\n \"To do so, you'll need to merge your old account with the new one you are now using.\"\n )}\n

\n

\n {t(\n \"stitchBox.canStitch.p3\",\n \"This should only take a couple of minutes. It can be done at any time, even once the season is under way.\"\n )}\n

\n \n
\n
\n
\n );\n }\n\n if (isConfirmStitch) {\n return (\n \n \n \n

\n {t(\n \"stitchBox.confirmStitch.p1\",\n \"Your account has now been merged.\"\n )}\n

\n

\n \n {t(\n \"stitchBox.confirmStitch.p2\",\n \"You need to reconfirm your details below before you can continue\"\n )}\n \n .\n

\n
\n
\n
\n );\n }\n\n if (isStitched) {\n return (\n \n \n \n

\n {t(\n \"stitchBox.stitched.p1\",\n \"Your new account has been merged with your old account\"\n )}\n

\n
\n
\n
\n );\n }\n\n return null;\n};\n\nexport default StitchBox;\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport range from \"lodash/range\";\nimport sortBy from \"lodash/sortBy\";\nimport values from \"lodash/values\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport { Trans, withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { IError, RootState, ThunkDispatch } from \"../../core/store\";\nimport { bootstrap } from \"../../core/store/bootstrap/thunks\";\nimport {\n getPlayerData,\n getPlayerUpdateError,\n getRegisterError,\n} from \"../../core/store/player/reducers\";\nimport { playerUpdate, register } from \"../../core/store/player/thunks\";\nimport { getRegions } from \"../../core/store/regions/reducers\";\nimport { fetchRegions } from \"../../core/store/regions/thunks\";\nimport { IRegion } from \"../../core/store/regions/types\";\nimport { IPlayer } from \"../../types\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport {\n CheckboxField,\n FieldFeedback,\n InputField,\n SelectField,\n} from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\nimport StitchBox from \"./StitchBox\";\n\nconst DOBFieldset = styled.fieldset`\n margin: 0;\n padding: 0;\n border: 0;\n`;\n\nconst DOBFieldsetInner = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n align-items: flex-end;\n justify-content: space-between;\n margin-top: ${({ theme }) => theme.space[2]};\n margin-left: -${({ theme }) => theme.space[2]};\n margin-right: -${({ theme }) => theme.space[2]};\n }\n`;\n\nconst DOBLegend = styled.legend`\n display: block;\n padding: 0;\n margin-bottom: ${({ theme }) => theme.space[1]};\n color: ${({ theme }) => theme.colors.white};\n font-size: 1.5rem;\n font-weight: bold;\n cursor: pointer;\n`;\n\nconst DOBCol = styled.div`\n margin-top: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: calc(100% / 3);\n margin-top: 0;\n padding-left: ${({ theme }) => theme.space[2]};\n padding-right: ${({ theme }) => theme.space[2]};\n }\n`;\n\ninterface IPropsFromState {\n player: IPlayer | null;\n regions: IRegion[];\n registerError: IError | null;\n updateError: IError | null;\n}\n\ninterface IPropsFromDispatch {\n doBootstrap: () => Promise;\n fetchRegionData: () => void;\n registerPlayer: (data: {}) => Promise;\n updatePlayer: (data: {}) => Promise;\n}\n\ntype Props = RouteComponentProps &\n WithTranslation &\n IPropsFromState &\n IPropsFromDispatch;\n\ninterface IState {\n birthDay: number;\n birthMonth: number;\n birthYear: number;\n email: string;\n emailAllsvenskan: boolean;\n emailFavourite: boolean;\n firstName: string;\n lastName: string;\n password: string;\n region: number;\n errorDob: string;\n errorEmail: string;\n errorFName: string;\n errorLName: string;\n errorPass: string;\n errorRegion: string;\n}\n\nclass Register extends React.Component {\n public errorsTxt: { [key: string]: string } = {\n EDob: this.props.t(\"register.errors.dob\", \"

not valid\"),\n EEmail: this.props.t(\"register.errors.email\", \"An email is required\"),\n EFName: this.props.t(\"register.errors.fname\", \"First name is required\"),\n ELName: this.props.t(\"register.errors.lname\", \"Last name is required\"),\n EPass: this.props.t(\"register.errors.pass\", \"A password is required\"),\n EPassLenght: this.props.t(\n \"register.errors.passLength\",\n \"Password too short, minimum 6 characters\"\n ),\n ERegion: this.props.t(\"register.errors.region\", \"A region is required\"),\n EValidDob: this.props.t(\n \"register.errors.validDob\",\n \"A correct

is required\"\n ),\n EvalidEmail: this.props.t(\n \"register.errors.validEmail\",\n \"This Email address is already registered\"\n ),\n EValidPass: this.props.t(\"register.errors.validPass\", \"Password not valid\"),\n };\n\n public months: { [key: string]: string } = {\n 1: this.props.t(\"months.janShort\", \"Jan\"),\n 2: this.props.t(\"months.febShort\", \"Feb\"),\n 3: this.props.t(\"months.marShort\", \"Mar\"),\n 4: this.props.t(\"months.aprShort\", \"Apr\"),\n 5: this.props.t(\"months.mayShort\", \"May\"),\n 6: this.props.t(\"months.junShort\", \"Jun\"),\n 7: this.props.t(\"months.julShort\", \"Jul\"),\n 8: this.props.t(\"months.augShort\", \"Aug\"),\n 9: this.props.t(\"months.sepShort\", \"Sep\"),\n 10: this.props.t(\"months.octShort\", \"Oct\"),\n 11: this.props.t(\"months.novShort\", \"Nov\"),\n 12: this.props.t(\"months.decShort\", \"Dec\"),\n };\n\n constructor(props: Props) {\n super(props);\n const player = props.player;\n this.state = {\n birthDay:\n player && player.date_of_birth\n ? Number(player.date_of_birth.split(\"-\")[2])\n : 0,\n birthMonth:\n player && player.date_of_birth\n ? Number(player.date_of_birth.split(\"-\")[1])\n : 0,\n birthYear:\n player && player.date_of_birth\n ? Number(player.date_of_birth.split(\"-\")[0])\n : 0,\n email:\n player && player.email.indexOf(\"@ismfgsocial\") === -1\n ? player.email\n : \"\",\n emailAllsvenskan: player ? player.email_allsvenskan : false,\n emailFavourite: player ? player.email_favourite : false,\n errorDob: \"\",\n errorEmail: \"\",\n errorFName: \"\",\n errorLName: \"\",\n errorPass: \"\",\n errorRegion: \"\",\n firstName: player ? player.first_name : \"\",\n lastName: player ? player.last_name : \"\",\n password: \"\",\n region: props.player ? props.player.region : 0,\n };\n }\n\n public getMode = () => {\n const { player } = this.props;\n if (!player) {\n return \"register\";\n }\n return player.dirty && !player.stitched ? \"confirm\" : \"update\";\n };\n\n public getRequiredFields(): Array {\n switch (this.getMode()) {\n case \"register\":\n return [\n \"birthDay\",\n \"birthMonth\",\n \"birthYear\",\n \"email\",\n \"firstName\",\n \"lastName\",\n \"password\",\n \"region\",\n ];\n case \"confirm\":\n case \"update\":\n return [\n \"birthDay\",\n \"birthMonth\",\n \"birthYear\",\n \"email\",\n \"firstName\",\n \"lastName\",\n \"region\",\n ];\n }\n }\n\n public apiDataFromState() {\n switch (this.getMode()) {\n case \"register\":\n return {\n date_of_birth: `${this.state.birthYear}-${this.state.birthMonth}-${this.state.birthDay}`,\n email: this.state.email,\n email_allsvenskan: this.state.emailAllsvenskan,\n email_favourite: this.state.emailFavourite,\n first_name: this.state.firstName,\n last_name: this.state.lastName,\n password: this.state.password,\n region: this.state.region,\n };\n case \"confirm\":\n case \"update\":\n return {\n date_of_birth: `${this.state.birthYear}-${this.state.birthMonth}-${this.state.birthDay}`,\n email: this.state.email,\n email_allsvenskan: this.state.emailAllsvenskan,\n email_favourite: this.state.emailFavourite,\n first_name: this.state.firstName,\n last_name: this.state.lastName,\n region: this.state.region,\n };\n }\n }\n\n public handleBirthDayChange = (e: React.FormEvent) =>\n this.setState({ birthDay: parseInt(e.currentTarget.value, 10) });\n\n public handleBirthMonthChange = (e: React.FormEvent) =>\n this.setState({ birthMonth: parseInt(e.currentTarget.value, 10) });\n\n public handleBirthYearChange = (e: React.FormEvent) =>\n this.setState({ birthYear: parseInt(e.currentTarget.value, 10) });\n\n public handleEmailChange = (e: React.FormEvent) =>\n this.setState({ email: e.currentTarget.value });\n\n public handleemailAllsvenskanChange = (\n e: React.FormEvent\n ) =>\n this.setState({ emailAllsvenskan: e.currentTarget.checked ? true : false });\n\n public handleEmailFavouriteChange = (e: React.FormEvent) =>\n this.setState({ emailFavourite: e.currentTarget.checked ? true : false });\n\n public handleFirstNameChange = (e: React.FormEvent) =>\n this.setState({ firstName: e.currentTarget.value });\n\n public handleLastNameChange = (e: React.FormEvent) =>\n this.setState({ lastName: e.currentTarget.value });\n\n public handlePasswordChange = (e: React.FormEvent) =>\n this.setState({ password: e.currentTarget.value });\n\n public handleRegionChange = (e: React.FormEvent) =>\n this.setState({ region: parseInt(e.currentTarget.value, 10) });\n\n public handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n const mode = this.getMode();\n if (mode === \"register\") {\n try {\n await this.props.registerPlayer(this.apiDataFromState());\n } catch (e) {\n window.scrollTo(0, 0); // To see error if failure ...\n return;\n }\n await this.props.doBootstrap();\n navigate(\"/squad-selection\");\n } else if (mode === \"confirm\") {\n try {\n await this.props.updatePlayer(this.apiDataFromState());\n } catch (e) {\n window.scrollTo(0, 0); // To see error if failure ...\n return;\n }\n await this.props.doBootstrap();\n navigate(\"/squad-selection\");\n } else if (mode === \"update\") {\n try {\n await this.props.updatePlayer(this.apiDataFromState());\n } catch (e) {\n window.scrollTo(0, 0); // To see error if failure ...\n return;\n }\n await this.props.doBootstrap();\n // Maybe this should be back to my team, maybe our LoggedIn component\n navigate(\"/\");\n }\n };\n\n public componentDidMount() {\n this.props.fetchRegionData();\n }\n\n public getIntRegions() {\n const regs = this.props.regions;\n return sortBy(regs, [\"name\"]);\n }\n\n public handleFirstnameBlur = (e: React.FormEvent) => {\n if (!e.currentTarget.value) {\n this.setState({ errorFName: this.errorsTxt.EFName });\n } else {\n this.setState({ errorFName: \"\" });\n }\n };\n\n public handleLastnameBlur = (e: React.FormEvent) => {\n if (!e.currentTarget.value) {\n this.setState({ errorLName: this.errorsTxt.ELName });\n } else {\n this.setState({ errorLName: \"\" });\n }\n };\n\n public handlePasswordBlur = (e: React.FormEvent) => {\n if (!e.currentTarget.value) {\n this.setState({ errorPass: this.errorsTxt.EPass });\n } else {\n if (e.currentTarget.value.length < 6) {\n this.setState({ errorPass: this.errorsTxt.EPassLenght });\n } else {\n this.setState({ errorPass: \"\" });\n }\n }\n };\n\n public handleEmailBlur = (e: React.FormEvent) => {\n if (!e.currentTarget.value) {\n this.setState({ errorEmail: this.errorsTxt.EEmail });\n } else {\n this.setState({ errorEmail: \"\" });\n }\n };\n\n public handleRegionBlur = (e: React.FormEvent) => {\n if (!e.currentTarget.value || e.currentTarget.value === \"0\") {\n this.setState({ errorRegion: this.errorsTxt.ERegion });\n } else {\n this.setState({ errorRegion: \"\" });\n }\n };\n\n public handleDobBlur = (e: React.FormEvent) => {\n const year = this.state.birthYear;\n const month = this.state.birthMonth;\n const day = this.state.birthDay;\n if (year > 0 && month > 0 && day > 0) {\n if (moment(new Date(year, month - 1, day)).isValid()) {\n const today = new Date();\n const birthDate = new Date(year, month - 1, day);\n let age = today.getFullYear() - birthDate.getFullYear();\n const m = today.getMonth() - birthDate.getMonth();\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\n age--;\n }\n if (age < 13) {\n this.setState({ errorDob: this.errorsTxt.EDob });\n } else {\n this.setState({ errorDob: \"\" });\n }\n } else {\n this.setState({ errorDob: this.errorsTxt.EDob });\n }\n }\n };\n\n public handleServerErrors = () => {\n const errors =\n this.getMode() === \"register\"\n ? this.props.registerError\n : this.props.updateError;\n const formattedErrors = [];\n if (errors) {\n if (\n errors.badRequest &&\n errors.badRequest.password &&\n errors.badRequest.password[0].code === \"invalid\"\n ) {\n formattedErrors.push(this.errorsTxt.EValidPass);\n }\n if (\n errors.badRequest &&\n errors.badRequest.email &&\n errors.badRequest.email[0].code === \"unique\"\n ) {\n formattedErrors.push(this.errorsTxt.EvalidEmail);\n }\n if (\n errors.badRequest &&\n errors.badRequest.email &&\n errors.badRequest.email[0].code === \"blank\"\n ) {\n formattedErrors.push(this.errorsTxt.EEmail);\n }\n if (\n errors.badRequest &&\n errors.badRequest.password &&\n errors.badRequest.password[0].code === \"blank\"\n ) {\n formattedErrors.push(this.errorsTxt.EPass);\n }\n if (\n errors.badRequest &&\n errors.badRequest.last_name &&\n errors.badRequest.last_name[0].code === \"blank\"\n ) {\n formattedErrors.push(this.errorsTxt.EFName);\n }\n if (\n errors.badRequest &&\n errors.badRequest.last_name &&\n errors.badRequest.last_name[0].code === \"blank\"\n ) {\n formattedErrors.push(this.errorsTxt.ELName);\n }\n if (\n errors.badRequest &&\n errors.badRequest.date_of_birth &&\n errors.badRequest.date_of_birth[0].code === \"invalid\"\n ) {\n formattedErrors.push(this.errorsTxt.EValidDob);\n }\n if (\n errors.badRequest &&\n errors.badRequest.region &&\n errors.badRequest.region[0].code === \"does_not_exist\"\n ) {\n formattedErrors.push(this.errorsTxt.ERegion);\n }\n\n return formattedErrors;\n }\n };\n\n public render() {\n const { t } = this.props;\n const mode = this.getMode();\n\n const title = {\n register: t(\"register.title.registration\", \"Registration\"),\n confirm: t(\"register.title.confirm\", \"Confirm your details\"),\n update: t(\"register.title.update\", \"Confirm your details\"),\n };\n const buttonText = {\n register: t(\"register.label.register\", \"Register\"),\n confirm: t(\"register.label.confirm\", \"Update\"),\n update: t(\"register.label.update\", \"Update\"),\n };\n const disabled = this.getRequiredFields().some((e) => !this.state[e]);\n const errors = this.handleServerErrors();\n\n return (\n \n
\n {mode === \"update\" && }\n\n \n {title[mode]}\n

\n {t(\n \"register.required\",\n \"Fields marked with an asterisk (*) are required\"\n )}\n .\n

\n
\n\n {errors && {values(errors).map((r) => r)}}\n \n
\n {mode === \"register\" && (\n \n \n {this.state.errorPass && (\n {this.state.errorPass}\n )}\n \n )}\n \n \n {this.state.errorFName && (\n {this.state.errorFName}\n )}\n \n \n \n {this.state.errorLName && (\n {this.state.errorLName}\n )}\n \n \n \n \n {t(\"register.label.dob\", \"Date of birth\")}\n \n \n {t(\n \"register.hint.dob\",\n \"The game is only available to individuals aged 13 and over\"\n )}\n \n \n \n \n \n {t(\"register.label.day\", \"Day\")}\n \n {range(1, 32).map((d) => (\n \n {d}\n \n ))}\n \n \n \n \n \n {t(\"register.label.month\", \"Month\")}\n \n {Object.keys(this.months).map((m) => (\n \n {this.months[m]}\n \n ))}\n \n \n \n \n \n {t(\"register.label.year\", \"Year\")}\n \n {range(new Date().getFullYear() - 13, 1900).map((y) => (\n \n {y}\n \n ))}\n \n \n \n {this.state.errorDob && (\n {this.state.errorDob}\n )}\n \n \n \n {this.state.errorRegion && (\n {this.state.errorRegion}\n )}\n \n \n \n {values(this.getIntRegions()).map((r) => (\n \n {r.name}\n \n ))}\n \n \n \n \n

\n {t(\n \"register.emailText\",\n \"Receive information and newsletter from\"\n )}\n

\n \n \n
\n \n {mode === \"confirm\" && (\n \n By updating your account details, you confirm that you\n accept the \n \n User Terms\n \n  and \n \n SEF's Integrity Policy\n \n . \n \n )}\n {mode === \"update\" && (\n \n By updating your account details, you confirm that you\n accept the \n \n User Terms\n \n  and \n \n SEF's Integrity Policy\n \n . \n \n )}\n {mode === \"register\" && (\n \n By creating an account, you confirm that you accept the\n  \n \n User Terms\n \n  and \n \n SEF's Integrity Policy\n \n . \n \n )}\n \n If you have opted to receive information from your favorite\n team, you also confirm that you have read your \n \n favorite club's Integrity Policy\n \n .\n \n \n \n \n \n
\n
\n
\n
\n );\n }\n}\n\nexport { Register as RegisterTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n player: getPlayerData(state) as IPlayer | null,\n regions: getRegions(state),\n registerError: getRegisterError(state),\n updateError: getPlayerUpdateError(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n doBootstrap: () => dispatch(bootstrap()),\n fetchRegionData: () => dispatch(fetchRegions()),\n registerPlayer: (data) => dispatch(register(data)),\n updatePlayer: (data) => dispatch(playerUpdate(data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(Register)\n);\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport * as actions from \"./actions\";\nimport { IRegion } from \"./types\";\n\nexport const fetchRegions =\n (): ThunkResult> => async (dispatch) => {\n try {\n await apiGet(\"regions/\", dispatch, actions.addRegions);\n } catch (e) {\n return;\n }\n };\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgTwitterRound(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"24px\",\n height: \"24px\",\n viewBox: \"0 0 24 24\",\n style: {\n enableBackground: \"new 0 0 24 24\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M12,0C5.3725586,0,0,5.3725586,0,12s5.3725586,12,12,12s12-5.3725586,12-12S18.6274414,0,12,0z M16.6724243,9.6036377 c0.0046387,0.1033936,0.006958,0.2073364,0.006958,0.3118896c0,3.185791-2.4248047,6.8592529-6.8591919,6.8592529 c-1.3614502,0-2.6286621-0.3990479-3.6955566-1.0830688c0.1885986,0.0222168,0.3804932,0.0336304,0.5750732,0.0336304 c1.1295166,0,2.1690063-0.385376,2.9940796-1.0319824c-1.0549316-0.0194702-1.9452515-0.7164917-2.2520752-1.6742554 c0.1472168,0.0281372,0.2982178,0.0432129,0.4536133,0.0432129c0.2198486,0,0.4328003-0.0294189,0.6351318-0.0845337 c-1.1029053-0.2214355-1.9338989-1.1958008-1.9338989-2.3638916c0-0.0101929,0.000061-0.0202637,0.0002441-0.0303345 c0.3250122,0.180603,0.6967773,0.2890625,1.0919189,0.3015747C7.0418701,10.4527588,6.616272,9.7148438,6.616272,8.878479 c0-0.4418335,0.1188354-0.855957,0.326355-1.2120361c1.1890869,1.4586182,2.9654541,2.418396,4.9690552,2.5189209 c-0.0410767-0.1764526-0.0623779-0.3604736-0.0623779-0.5494385c0-1.3312988,1.0794067-2.4107056,2.4108887-2.4107056 c0.6933594,0,1.3198853,0.2927246,1.7596436,0.7612915c0.5491943-0.1080933,1.0651245-0.3087769,1.5309448-0.585022 c-0.1799927,0.5629272-0.5622559,1.0354004-1.0600586,1.3338013c0.4877319-0.0582886,0.9523315-0.1879272,1.3846436-0.3796387 C17.5521851,8.8391113,17.1434326,9.2637329,16.6724243,9.6036377z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitterRound);\nexport default __webpack_public_path__ + \"static/media/twitter-round.d8593716.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgRemove(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n fill: \"#12326E\",\n stroke: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.35358 5.64648L14.3536 14.6465\",\n stroke: \"#E73088\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.64642 14.6465L14.6464 5.64648\",\n stroke: \"#E73088\",\n strokeWidth: 2,\n strokeLinecap: \"round\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRemove);\nexport default __webpack_public_path__ + \"static/media/remove.4bea715e.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/scouting-hero-1180.e2a023ea.png\";","export default __webpack_public_path__ + \"static/media/scouting-hero-2360.80499571.png\";","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport SubNav from \"../SubNav\";\n\nconst ScoutNav: React.FC = () => {\n const { t } = useTranslation();\n const links = [\n { href: \"/the-scout\", text: t(\"scoutNav.news\", \"News\") },\n {\n href: \"/the-scout/player-news\",\n text: t(\"scoutNav.availabilty\", \"Availability\"),\n },\n ];\n return ;\n};\n\nexport default ScoutNav;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as FacebookLogo } from \"../../img/icons/facebook-round.svg\";\nimport { ReactComponent as TwitterLogo } from \"../../img/icons/twitter-round.svg\";\nimport image from \"../../img/scouting-hero-1180.png\";\nimport image2x from \"../../img/scouting-hero-2360.png\";\nimport Hero from \"../Hero\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport LogoBar from \"../LogoBar\";\nimport Title from \"../Title\";\nimport ScoutNav from \"./ScoutNav\";\nimport ScoutProvider from \"./ScoutProvider\";\n\nconst Social = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst SocialHeader = styled.header`\n border-top-left-radius: ${({ theme }) => theme.radii[2]};\n border-top-right-radius: ${({ theme }) => theme.radii[2]};\n`;\n\nconst SocialBody = styled.div`\n padding: ${({ theme }) => theme.space[1]};\n`;\n\nconst SocialLinks = styled.ul`\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n margin-bottom: ${({ theme }) => theme.space[2]};\n background-color: white;\n`;\n\nconst SocialLink = styled.a`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 0.8rem;\n border-radius: 2px;\n color: ${(props) => props.theme.colors.social[props.network].color};\n background-color: ${(props) => props.theme.colors.social[props.network].bg};\n text-decoration: none;\n\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst SocialLinkItem = styled.li`\n padding: ${({ theme }) => theme.space[2]};\n list-style-type: none;\n`;\n\nconst SocialLinkText = styled.span`\n margin-left: 1rem;\n font-size: 1.2rem;\n`;\n\nconst SubHeading = styled.h3`\n margin: 0;\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 1.6rem;\n font-weight: bold;\n text-transform: uppercase;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 2rem;\n }\n`;\n\ninterface ISocialLinkStyleProps {\n network: string;\n}\n\ninterface IProvider {\n link: string;\n url: string;\n}\n\ntype Props = RouteComponentProps;\n\nconst providers: IProvider[] = [\n {\n url: \"https://allsvenskan.se/nyheter/category/fantasy/feed/\",\n link: \"https://allsvenskan.se/fantasy/\",\n },\n];\n\nconst Scout: React.FC = () => {\n const { t } = useTranslation();\n const twitterFeedId = \"twsrc%5Etfw\";\n\n useEffect(() => {\n const twttr = (window as any).twttr;\n if (twttr && twttr.widgets) {\n twttr.widgets.load();\n }\n }, []);\n\n return (\n <>\n \n \n \n \n \n \n
\n \n \n {t(\"scout.title\", \"The Scout\")}\n \n {providers.map((provider: IProvider) => (\n \n ))}\n
\n \n \n \n \n {t(\"Allsvenskan on Social\")}\n \n \n \n \n \n \n \n \n {t(\"Allsvenskan on Facebook\")}\n \n \n \n \n \n \n \n {t(\"Allsvenskan on Twitter\")}\n \n \n \n \n \n {t(\"Tweets by Allsvenskan\")}\n \n \n \n \n
\n \n );\n};\n\nexport default Scout;\n","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport { Trans, withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getSquadError } from \"../../core/store/squad/reducers\";\nimport { createEntry } from \"../../core/store/squad/thunks\";\nimport { ICreateEntryData } from \"../../core/store/squad/types\";\nimport { getTeams } from \"../../core/store/teams/reducers\";\nimport { ITeam } from \"../../core/store/teams/types\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog from \"../Dialog\";\nimport DialogHeading from \"../DialogHeading\";\nimport {\n CheckboxField,\n FieldWrap,\n InputField,\n SelectField,\n} from \"../FieldRenderers\";\nimport { getCodeFromError } from \"./helpers\";\nimport styled from \"styled-components\";\n\nconst StyledLink = styled(Link)`\n color: ${({ theme }) => theme.colors.yellow};\n`;\n\ninterface IProps {\n handleHide: () => void;\n}\n\ninterface IPropsFromState {\n error: any;\n nextEvent: IEvent | null;\n teams: ITeam[];\n}\n\ninterface IPropsFromDispatch {\n createEntry: (data: ICreateEntryData) => void;\n}\n\ntype Props = IProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\ninterface IState extends ICreateEntryData {\n favourite_team: number;\n}\n\nclass CreateEntryDialog extends React.Component {\n public state: IState = {\n email: false,\n favourite_team: 0,\n name: \"\",\n terms_agreed: false,\n language: this.props.i18n.language,\n };\n\n public requiredFields: Array = [\n \"favourite_team\",\n \"name\",\n \"terms_agreed\",\n \"language\",\n ];\n\n public apiDataFromState = () => ({\n email: this.state.email,\n favourite_team:\n this.state.favourite_team > 0 ? this.state.favourite_team : null,\n name: this.state.name,\n terms_agreed: this.state.terms_agreed,\n language: this.props.i18n.language,\n });\n\n public handleEmailChange = (e: React.FormEvent) =>\n this.setState({ email: e.currentTarget.checked ? true : false });\n\n public handleFaveChange = (e: React.FormEvent) =>\n this.setState({ favourite_team: parseInt(e.currentTarget.value, 10) });\n\n public handleNameChange = (e: React.FormEvent) =>\n this.setState({ name: e.currentTarget.value });\n\n public handleTermsChange = (e: React.FormEvent) =>\n this.setState({ terms_agreed: e.currentTarget.checked ? true : false });\n\n public handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (this.isValid()) {\n this.props.createEntry(this.apiDataFromState());\n }\n };\n\n public isValid = () =>\n this.requiredFields.every((e) => Boolean(this.state[e]));\n\n public render() {\n const { handleHide, nextEvent, error, teams, t } = this.props;\n // filterTeams\n const allsvenskan = teams\n .filter((team) => team.unavailable === false)\n .sort((a, b) => a.name.localeCompare(b.name));\n // First Division\n const firstDivision = teams\n .filter((team) => team.unavailable === true)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n const errorCode = getCodeFromError(error);\n if (error) {\n const handledErrorCodes = [\"price_changed\"];\n if (handledErrorCodes.indexOf(errorCode) === -1) {\n window.location.reload();\n return null;\n }\n }\n if (!nextEvent) {\n return (\n \n \n {t(\"createEntryDialog.over\", \"Game over\")}\n \n \n

\n {t(\n \"createEntryDialog.finished\",\n \"This game has now finished. Thanks for your interest, come back soon to select your squad for next season's game.\"\n )}\n

\n
\n
\n );\n }\n return (\n \n \n \n \n {t(\"createEntryDialog.enterSquad\", \"Enter squad\")}\n \n \n \n\n \n
\n \n \n \n \n \n \n {t(\"createEntryDialog.chooseAClub\", \"Choose a club\")}...\n \n\n \n {allsvenskan.map((tm) => (\n \n {tm.name}\n \n ))}\n \n \n {firstDivision.map((tm) => (\n \n {tm.name}\n \n ))}\n \n\n \n {t(\"createEntryDialog.none\", \"None\")}\n \n \n \n \n \n \n \n \n I agree to the \n \n terms and conditions\n \n \n }\n onChange={this.handleTermsChange}\n checked={this.state.terms_agreed}\n />\n \n {errorCode && (\n \n \n {errorCode === \"price_changed\" &&\n t(\n \"createEntryDialog.unable\",\n \"Unable to enter squad as player prices have changed. Please refresh the page and try again.\"\n )}\n \n \n )}\n \n
\n
\n
\n );\n }\n}\n\nexport { CreateEntryDialog as CreateEntryDialogTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n error: getSquadError(state),\n nextEvent: getNextEvent(state),\n teams: getTeams(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n createEntry: (data) => dispatch(createEntry(data)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(CreateEntryDialog)\n);\n","// Look for errors we potentally can handle\nexport const getCodeFromError = (error: any) => {\n let errorCode = \"\";\n if (error && error.badRequest) {\n const e = error.badRequest;\n if (e.transfers && e.transfers.length) {\n for (let i = 0; i < e.transfers.length; i++) {\n if (\n e.transfers[i].non_field_errors &&\n e.transfers[i].non_field_errors.length\n ) {\n errorCode = e.transfers[i].non_field_errors[0].code;\n break;\n }\n }\n } else if (e.non_field_errors && e.non_field_errors.length) {\n errorCode = e.non_field_errors[0].code;\n } else if (e.picks && e.picks.length) {\n for (let i = 0; i < e.picks.length; i++) {\n if (e.picks[i].purchase_price && e.picks[i].purchase_price.length) {\n errorCode = e.picks[i].purchase_price[0].code;\n break;\n }\n }\n }\n }\n return errorCode || \"\";\n};\n","import * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport Title from \"./Title\";\n\nconst StyledPageHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\ninterface IProps {\n children: React.ReactNode;\n title: React.ReactNode;\n}\n\nconst PageHeader: React.FC = ({ children, title }) => (\n \n {title}\n {children}\n \n);\n\nexport default PageHeader;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst StyledDeadlineBar = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: ${({ theme }) => theme.space[2]};\n background-color: ${({ theme }) => theme.colors.white};\n font-size: 1.8rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n`;\n\nconst Heading = styled.h3`\n margin-top: 0;\n margin-bottom: 0;\n line-height: 1;\n color: ${({ theme }) => theme.colors.black};\n font-size: inherit;\n font-weight: normal;\n`;\n\nconst Deadline = styled.time`\n margin-left: 0.4rem;\n line-height: 1;\n color: ${({ theme }) => theme.colors.primary};\n font-weight: bold;\n`;\n\ninterface IProps {\n deadlineISO: string;\n deadlineLocal: string;\n headingText: string;\n}\n\nconst DeadlineBar: React.FC = ({\n deadlineISO,\n deadlineLocal,\n headingText,\n}) => (\n \n {headingText}:\n  \n {deadlineLocal}\n \n);\n\nexport default DeadlineBar;\n","import styled from \"styled-components/macro\";\n\nconst SaveBar = styled.div`\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-right: 30%;\n margin-left: 30%;\n }\n`;\n\nexport default SaveBar;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst StyledScoreboardPanel = styled.div`\n padding: ${(props) => props.theme.space[4]} 0;\n text-align: center;\n`;\n\nconst Heading = styled.h3`\n margin: 0;\n font-size: 1.4rem;\n`;\n\nconst Value = styled.div`\n font-size: 2.3rem;\n font-weight: bold;\n\n ${(props) =>\n props.isError &&\n css`\n color: ${props.theme.colors.error};\n `}\n\n ${(props) =>\n props.isSuccess &&\n css`\n color: ${props.theme.colors.success};\n `}\n`;\n\ninterface IScoreboardPanel {\n heading: string;\n value: string;\n}\n\ninterface IValue {\n isError?: boolean;\n isSuccess?: boolean;\n}\n\ntype Props = IScoreboardPanel & IValue;\n\nexport const ScoreboardPanel: React.FC = ({\n heading,\n isError,\n isSuccess,\n value,\n}) => (\n \n {heading}\n \n {value}\n \n \n);\n","import * as React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n cancelProposedChip,\n proposeAvailableChip,\n} from \"../../core/store/chips/actions\";\nimport {\n getActiveChipName,\n getAvailableChipNames,\n getPotentialChips,\n getProposedChipName,\n} from \"../../core/store/chips/reducers\";\nimport { IPotentialChip } from \"../../core/store/chips/types\";\nimport { getElementTypesBySquadPosition } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesBySquadPosition } from \"../../core/store/element-types/types\";\nimport {\n canAutocomplete,\n canReset,\n getErrors,\n getFreeTransfersRemaining,\n getProposedElements,\n getToSpend,\n getTransferCosts,\n} from \"../../core/store/squad/reducers\";\nimport { autoComplete, reset } from \"../../core/store/squad/thunks\";\nimport { IProposedElements, ISquadErrors } from \"../../core/store/squad/types\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport { ChipName, getChipName } from \"../../utils/chips\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog from \"../Dialog\";\nimport DialogHeading from \"../DialogHeading\";\nimport DialogManager from \"../DialogManager\";\nimport { ScoreboardPanel } from \"./ScoreboardPanel\";\n\nconst ScoreboardButtons = styled(Flex)`\n margin-top: ${({ theme }) => theme.space[4]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst ScoreboardButtonsRadiusWrap = styled.div`\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst CostScoreboardUnit = styled.div`\n flex: 1 0 50%;\n padding: 0 ${({ theme }) => theme.space[2]};\n\n :nth-child(4) > div {\n border-bottom-width: 0;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex: 1 0 25%;\n\n :nth-child(3) > div {\n border-bottom-width: 0;\n }\n\n :nth-child(4) > div {\n border-bottom-width: 1px;\n }\n }\n`;\n\nconst CostButtonWrap = styled.div`\n margin-top: 1rem;\n margin-bottom: 2rem;\n`;\n\ninterface IBasicProps {\n autoPick: () => void;\n canAutocomplete: boolean;\n canReset: boolean;\n currencyDivisor: number;\n elementTypesByPosition: IElementTypesBySquadPosition;\n isBudgetExceeded: boolean;\n isNeedElements: boolean;\n proposedElements: IProposedElements;\n reset: () => void;\n toSpend: number;\n}\n\nconst Basic: React.FC = ({\n autoPick,\n canAutocomplete,\n canReset,\n currencyDivisor,\n elementTypesByPosition,\n isBudgetExceeded,\n isNeedElements,\n proposedElements,\n reset,\n toSpend,\n}) => {\n const { t } = useTranslation();\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n\ninterface IExplainChipDialogProps {\n chip: string;\n handleHide: () => void;\n transferCosts: number;\n}\n\nconst ExplainChipDialog: React.FC = ({\n chip,\n handleHide,\n transferCosts,\n}) => {\n const { t } = useTranslation();\n return (\n \n \n \n {chip === \"wildcard\" && t(\"squad.playWildcardText\", \"Play Wildcard\")}\n {chip === \"uteam\" && t(\"squad.playUnlimitText\", \"Play Loan Rangers\")}\n \n \n \n \n {transferCosts ? (\n <>\n

\n {chip === \"wildcard\" &&\n t(\n \"squad.wildcardText1\",\n \"You are now proposing to play your wildcard. Unlimited transfers can be made this Round without points deduction.\"\n )}\n {chip === \"uteam\" &&\n t(\n \"squad.unlimitText1\",\n \"You are now proposing to play your Loan Rangers chip. Unlimited transfers with as many players you want from a specific team can be picked this Round without points deduction.\"\n )}\n

\n

\n {chip === \"wildcard\" &&\n t(\n \"squad.wildcardText2\",\n \"Your wildcard will not be activated until you confirm your transfers.\"\n )}\n {chip === \"uteam\" &&\n t(\n \"squad.unlimitText2\",\n \"Your Loan Rangers chip will not be activated until you confirm your transfers\"\n )}\n

\n \n ) : (\n

\n {chip === \"wildcard\" &&\n t(\n \"squad.wildcardText3\",\n \"To activate your wildcard you must be making enough proposed transfers that points will be deducted.\"\n )}\n {chip === \"uteam\" &&\n t(\n \"squad.unlimitText3\",\n \"To activate your Loan Rangers chip you must be making enough proposed transfers that points will be deducted.\"\n )}\n

\n )}\n
\n
\n
\n );\n};\n\ninterface ICostProps {\n activeChipName: string;\n availableChipNames: string[];\n autoPick: () => void;\n canAutocomplete: boolean;\n canReset: boolean;\n currencyDivisor: number;\n freeTransfersRemaining: number;\n isBudgetExceeded: boolean;\n proposedChipName: string;\n reset: () => void;\n toSpend: number;\n transferCosts: number;\n cancelChip: (chip: string) => void;\n proposeChip: (chip: string) => void;\n chips: IPotentialChip[];\n}\n\nconst Cost: React.FC = ({\n activeChipName,\n availableChipNames,\n autoPick,\n canAutocomplete,\n canReset,\n currencyDivisor,\n freeTransfersRemaining,\n isBudgetExceeded,\n proposedChipName,\n reset,\n toSpend,\n transferCosts,\n cancelChip,\n proposeChip,\n chips,\n}) => {\n const { t } = useTranslation();\n const unlimitChip = chips.filter((c) => c.name === \"uteam\")[0];\n const wildCardChip = chips.filter((c) => c.name === \"wildcard\")[0];\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n {t(\"scoreboard.cost.reset\", \"Reset\")}\n \n \n \n\n {activeChipName ? (\n \n \n \n ) : wildCardChip.status_for_entry === \"played\" ? (\n \n \n \n ) : wildCardChip.status_for_entry === \"active\" ? (\n \n \n \n ) : proposedChipName === \"wildcard\" ? (\n \n \n \n \n \n ) : (\n (\n <>\n \n \n \n {t(\"squad.playWildcardTest\", \"Play Wildcard\")}\n \n \n \n {showDialog && (\n {\n handleHide();\n if (transferCosts) {\n proposeChip(\"wildcard\");\n }\n }}\n transferCosts={transferCosts}\n />\n )}\n \n )}\n />\n )}\n\n {activeChipName ? (\n <> \n ) : unlimitChip.status_for_entry === \"played\" ? (\n \n \n \n ) : unlimitChip.status_for_entry === \"active\" ? (\n \n \n \n ) : proposedChipName === \"uteam\" ? (\n \n \n \n \n \n ) : (\n (\n <>\n \n \n \n {t(\"squad.playUnlimitText\", \"Play Loan Rangers\")}\n \n \n \n {showDialog && (\n {\n handleHide();\n if (transferCosts) {\n proposeChip(\"uteam\");\n }\n }}\n transferCosts={transferCosts}\n />\n )}\n \n )}\n />\n )}\n \n \n \n \n \n \n \n 0}\n />\n \n \n \n \n \n \n );\n};\n\ninterface IOwnProps {\n scoreboard: string;\n}\n\ninterface IPropsFromState {\n activeChipName: string;\n availableChipNames: string[];\n canAutocomplete: boolean;\n canReset: boolean;\n currencyDivisor: number;\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n errors: ISquadErrors;\n freeTransfersRemaining: number;\n proposedChipName: string;\n proposedElements: IProposedElements;\n toSpend: number;\n transferCosts: number;\n chips: IPotentialChip[];\n}\n\ninterface IPropsFromDispatch {\n autoPick: () => void;\n reset: () => void;\n cancelChip: (chip: string) => void;\n proposeChip: (chip: string) => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch;\n\nclass Scoreboard extends React.Component {\n public render() {\n const {\n elementTypesByPosition,\n errors,\n proposedElements,\n scoreboard,\n ...rest\n } = this.props;\n if (!elementTypesByPosition) {\n return null;\n }\n const isNeedElements = Boolean(errors.needElements);\n const isBudgetExceeded = Boolean(errors.budgetExceeded);\n switch (scoreboard) {\n case \"basic\":\n return (\n \n );\n case \"cost\":\n return ;\n default:\n return null;\n }\n }\n}\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n activeChipName: getActiveChipName(state),\n availableChipNames: getAvailableChipNames(state),\n canAutocomplete: canAutocomplete(state),\n canReset: canReset(state),\n currencyDivisor: 10,\n elementTypesByPosition: getElementTypesBySquadPosition(state),\n errors: getErrors(state),\n freeTransfersRemaining: getFreeTransfersRemaining(state),\n proposedChipName: getProposedChipName(state),\n proposedElements: getProposedElements(state),\n toSpend: getToSpend(state),\n transferCosts: getTransferCosts(state),\n chips: getPotentialChips(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n autoPick: () => {\n if (!dispatch(autoComplete())) {\n // We should do something :-)\n window.console.log(\"Failed to autocomplete\");\n }\n },\n cancelChip: (chip: string) => dispatch(cancelProposedChip(chip)),\n proposeChip: (chip: string) => dispatch(proposeAvailableChip(chip)),\n reset: () => dispatch(reset()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Scoreboard);\n","import React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { IElement } from \"../core/store/elements/types\";\n\nexport const ElementName = styled.div`\n padding: 0.1rem 0.2rem;\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n color: ${({ theme }) => theme.colors.white};\n color: white;\n font-size: 1rem;\n font-weight: 800;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n ${(props) =>\n props.element.news &&\n props.element.chance_of_playing_next_round !== null &&\n css`\n background-color: ${props.theme.colors.elementStatus[\n props.element.chance_of_playing_next_round\n ].bg};\n color: ${props.theme.colors.elementStatus[\n props.element.chance_of_playing_next_round\n ].color};\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-top: 0.2rem;\n padding-bottom: 0.2rem;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-top: 0.4em;\n padding-bottom: 0.4em;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n }\n`;\n\nexport const ElementValue = styled.div`\n padding: 0 0.2rem;\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.blueDarker3};\n font-size: 1rem;\n font-weight: 800;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-top: 0.1rem;\n padding-bottom: 0.1rem;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n`;\n\ninterface IStyledProps {\n element: IElement;\n}\n\ninterface IProps {\n value: React.ReactNode;\n}\n\ntype Props = IStyledProps & IProps;\n\nconst PitchElementData: React.FC = ({ element, value }) => (\n
\n {element.web_name}\n {value}\n
\n);\n\nexport default PitchElementData;\n","import React from \"react\";\nimport Shirt from \"./Shirt\";\n\ninterface IProps {\n elementType?: number;\n hasShadow?: boolean;\n sizes: string;\n}\n\nconst PlaceholderShirt: React.FC = ({\n elementType,\n hasShadow,\n sizes,\n}) => {\n const suffix = elementType === 1 ? `_${elementType}` : \"\";\n return (\n \n );\n};\n\nexport default PlaceholderShirt;\n","import { size } from \"polished\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { ReactComponent as Remove } from \"../../img/icons/remove.svg\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementShirt from \"../ElementShirt\";\nimport {\n Controls,\n InfoControl,\n PitchElementWrap,\n PrimaryControl,\n StyledPitchElement,\n} from \"../Pitch\";\nimport PitchElementData from \"../PitchElementData\";\nimport PlaceholderShirt from \"../PlaceholderShirt\";\nimport { UnstyledButton } from \"../Utils\";\n\nconst StyledRemove = styled(Remove)`\n ${size(14)}\n display: block;\n fill: #e9ff03;\n color: #e50012;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n}\n\ninterface IOwnProps {\n actionMe: () => void;\n elementId: number;\n elementValue: React.ReactNode;\n renderElementMenu: () => void;\n}\n\ninterface IStyleProps {\n isRemoved?: boolean;\n}\ntype Props = IPropsFromState & IPropsFromDispatch & IOwnProps & IStyleProps;\n\nconst SquadPitchElement: React.FC = ({\n actionMe,\n elementId,\n elementsById,\n elementValue,\n isRemoved,\n renderElementMenu,\n}) => {\n const element = elementsById[elementId];\n const shirtProps = {\n hasShadow: true,\n sizes: \"(min-width: 1024px) 55px, (min-width: 610px) 44px, 33px\",\n };\n\n return (\n \n \n \n {isRemoved ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementsById: getElementsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SquadPitchElement);\n","import { rgba } from \"polished\";\nimport * as React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styled from \"styled-components/macro\";\nimport { IElementType } from \"../../core/store/element-types/types\";\nimport { PitchElementWrap } from \"../Pitch\";\nimport PlaceholderShirt from \"../PlaceholderShirt\";\n\nconst StyledPlaceholder = styled.button`\n display: block;\n width: 6.4rem;\n margin: auto;\n padding: 0 0.3rem;\n border: 0;\n background-color: transparent;\n text-align: center;\n line-height: 1;\n cursor: pointer;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 10.5rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 14rem;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n padding-right: 1rem;\n padding-left: 1rem;\n }\n`;\n\nconst Title = styled.div`\n padding: 0.1rem 0.2rem;\n background-color: ${rgba(\"#035f1d\", 0.8)};\n color: white;\n font-size: 1rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-top: 0.2em;\n padding-bottom: 0.2em;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-top: 0.4em;\n padding-bottom: 0.4em;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n }\n`;\n\nconst Abbr = styled.abbr`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n text-decoration: none;\n text-transform: lowercase;\n ::after {\n content: attr(title);\n }\n }\n`;\n\nconst Span = styled.span`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: none;\n }\n`;\n\ninterface IProps {\n elementType: IElementType | null;\n onClick: () => void;\n}\n\nconst PitchPlaceholder: React.FC = ({ elementType, onClick }) => {\n const { t } = useTranslation();\n if (!elementType) {\n return null;\n }\n return (\n \n \n \n \n {t(\"add\", \"Add\")}{\" \"}\n <Abbr title={elementType.singular_name}>\n <Span>{elementType.singular_name_short}</Span>\n </Abbr>\n \n \n \n );\n};\n\nexport default PitchPlaceholder;\n","import { RouteComponentProps } from \"@reach/router\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementTypesBySquadPosition } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesBySquadPosition } from \"../../core/store/element-types/types\";\nimport {\n showElementSummary,\n updateElementTypeControl,\n} from \"../../core/store/elements/thunks\";\nimport {\n getProposedElements,\n getSavedPicks,\n} from \"../../core/store/squad/reducers\";\nimport { removeElement, restoreElement } from \"../../core/store/squad/thunks\";\nimport { IProposedElements, ISavedPicks } from \"../../core/store/squad/types\";\nimport SquadPitchElement from \"./SquadPitchElement\";\nimport PitchPlaceholder from \"./PitchPlaceholder\";\n\ninterface IPropsFromState {\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n proposedElements: IProposedElements;\n savedPicks: ISavedPicks;\n}\n\ninterface IPropsFromDispatch {\n removePitchElement: (position: number) => void;\n restorePitchElement: (position: number) => void;\n showElementDialog: (elementId: number) => void;\n showElementType: (elementTypeId: number) => void;\n}\n\ninterface IOwnProps {\n pos: number;\n elementValue: React.ReactNode;\n renderElementMenu: (pos: number) => void;\n showSidebar: () => void;\n}\n\ntype Props = RouteComponentProps &\n IPropsFromState &\n IPropsFromDispatch &\n IOwnProps;\n\nconst SquadPitchUnit: React.FC = ({\n elementTypesByPosition,\n elementValue,\n proposedElements,\n pos,\n renderElementMenu,\n removePitchElement,\n restorePitchElement,\n savedPicks,\n showElementType,\n}) => {\n if (!elementTypesByPosition) {\n return null;\n }\n return (\n <>\n {proposedElements[pos] ? (\n {\n removePitchElement(pos);\n }}\n elementId={proposedElements[pos].id}\n elementValue={elementValue}\n renderElementMenu={() => renderElementMenu(pos)}\n />\n ) : savedPicks[pos] ? (\n {\n restorePitchElement(pos);\n }}\n elementId={savedPicks[pos].element}\n elementValue={elementValue}\n renderElementMenu={() => renderElementMenu(pos)}\n isRemoved={true}\n />\n ) : (\n \n showElementType(elementTypesByPosition[pos].thisType.id)\n }\n />\n )}\n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementTypesByPosition: getElementTypesBySquadPosition(state),\n proposedElements: getProposedElements(state),\n savedPicks: getSavedPicks(state),\n});\n\nconst mapDispatchToProps = (\n dispatch: ThunkDispatch,\n ownProps: IOwnProps\n): IPropsFromDispatch => ({\n removePitchElement: (position) => {\n dispatch(removeElement(position));\n },\n restorePitchElement: (position) => {\n dispatch(restoreElement(position));\n },\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n showElementType: (elementTypeId) => {\n dispatch(updateElementTypeControl(elementTypeId));\n ownProps.showSidebar();\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SquadPitchUnit);\n","import * as React from \"react\";\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport {\n showElementSummary,\n updateElementTypeControl,\n} from \"../../core/store/elements/thunks\";\nimport { IElement, IElementsById } from \"../../core/store/elements/types\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { IPick } from \"../../core/store/my-team/types\";\nimport { resetLastChange } from \"../../core/store/squad/actions\";\nimport {\n getErrors,\n getLastChange,\n getProposedElements,\n getSavedPicks,\n getSquadMode,\n} from \"../../core/store/squad/reducers\";\nimport {\n autoComplete,\n removeElement,\n restoreElement,\n} from \"../../core/store/squad/thunks\";\nimport {\n ILastChange,\n IProposedElements,\n ISavedPicks,\n ISquadErrors,\n SquadMode,\n} from \"../../core/store/squad/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport {\n formatRawAsISO,\n formatRawAsLocalI18n,\n} from \"../../core/utils/datetime\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport { dateLocales } from \"../../i18n\";\nimport Alert, { AlertWrap } from \"../Alert\";\nimport Button from \"../Button\";\nimport DeadlineBar from \"../DeadlineBar\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport DialogHeading from \"../DialogHeading\";\nimport DialogManager from \"../DialogManager\";\nimport Pitch, { PitchRow, PitchUnit } from \"../Pitch\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport SaveBar from \"./SaveBar\";\nimport Scoreboard from \"./Scoreboard\";\nimport SquadPitchUnit from \"./SquadPitchUnit\";\nimport Copy from \"../Copy\";\n\nconst DialogHeaderContent = styled.div`\n padding: ${(props) => `${props.theme.space[2]} ${props.theme.space[3]}}`};\n`;\n\nconst ButtonWrap = styled.div`\n display: flex;\n gap: ${(props) => props.theme.space[2]};\n margin: 0 ${(props) => props.theme.space[2]};\n flex-direction: column;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n flex-direction: row;\n }\n`;\n\nconst StyledCopy = styled(Copy)`\n margin-bottom: 3rem;\n font-size: ${(props) => props.theme.fontSizes[3]};\n text-align: center;\n`;\n\nconst StyledDialogButton = styled(DialogButtonItem)`\n flex: 1;\n`;\n\nconst PlayerActions = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 50%;\n margin: 0 auto;\n }\n`;\n\nconst StyledPitchWrapper = styled(Box)`\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\n//TODO: Move IListTableProps somewhere more abstract?\nexport interface IListTableProps {\n elementType: number;\n key: string;\n positions: number[];\n renderElementDialog: (element: IElement) => void;\n renderElementMenu: (position: number) => void;\n}\n\ninterface IOwnProps {\n listTable: (listTableProps: IListTableProps) => void;\n scoreboard: string;\n showSidebar: () => void;\n submitDialog: (handleHide: () => void) => React.ReactNode;\n}\n\ninterface IPropsFromState {\n currencyDivisor: number;\n elementsById: IElementsById;\n errors: ISquadErrors;\n lastChange: ILastChange;\n mode: SquadMode;\n nextEvent: IEvent | null;\n proposedElements: IProposedElements;\n savedPicks: ISavedPicks;\n settings: ISettings | null;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n clearLastChange: () => void;\n removeElement: (position: number) => void;\n restoreElement: (position: number) => void;\n showElementDialog: (elementId: number) => void;\n showElementType: (elementTypeId: number) => void;\n autoPick: () => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\ninterface IState {\n positionForMenu: number;\n showAutoPickDialog: boolean;\n}\n\nclass CreateSquad extends React.Component {\n public state: IState = {\n positionForMenu: 0,\n showAutoPickDialog: false,\n };\n\n public handleShowMenuForElement = (position: number) =>\n this.setState({ positionForMenu: position });\n\n public handleHideMenuForElement = () => {\n this.setState({ positionForMenu: 0 });\n };\n\n public removeElement = (position: number) => {\n this.handleHideMenuForElement();\n this.props.removeElement(position);\n };\n\n public restoreElement = (position: number) => {\n this.handleHideMenuForElement();\n this.props.restoreElement(position);\n };\n\n public showElementType = (elementType: number) => {\n this.handleHideMenuForElement();\n this.props.showElementType(elementType);\n };\n\n public showDialog = (element: IElement) => {\n this.props.showElementDialog(element.id);\n this.handleHideMenuForElement();\n };\n\n public showAutoPickDialog = () => {\n this.setState({ showAutoPickDialog: true });\n };\n\n public hideAutoPickDialog = () => {\n this.setState({ showAutoPickDialog: false });\n };\n\n public renderMenu() {\n const { t } = this.props;\n let element: IElement | undefined;\n let mode: \"remove\" | \"restore\" | undefined;\n if (this.props.proposedElements[this.state.positionForMenu]) {\n element = this.props.proposedElements[this.state.positionForMenu];\n mode = \"remove\";\n } else if (this.props.savedPicks[this.state.positionForMenu]) {\n element =\n this.props.elementsById[\n this.props.savedPicks[this.state.positionForMenu].element\n ];\n mode = \"restore\";\n }\n if (!mode || !element) {\n return null;\n }\n return (\n \n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n \n \n \n \n {mode === \"remove\" ? (\n \n this.removeElement(this.state.positionForMenu)}\n width={1}\n >\n {t(\"createSquad.removePlayer\", \"Remove player\")}\n \n \n ) : mode === \"restore\" ? (\n <>\n \n \n this.restoreElement(this.state.positionForMenu)\n }\n width={1}\n >\n {t(\"createSquad.restorePlayer\", \"Restore player\")}\n \n \n \n this.showElementType(element!.element_type)}\n width={1}\n >\n {t(\"createSquad.replacePlayer\", \"Select replacement\")}\n \n \n \n ) : (\n \"\"\n )}\n \n this.showDialog(element as IElement)}\n width={1}\n >\n {t(\"createSquad.viewInformation\", \"View Information\")}\n \n \n \n \n \n );\n }\n\n public renderElementValueForPosition(pos: number) {\n const element: IElement = this.props.proposedElements[pos];\n const pick: IPick | undefined = this.props.savedPicks[pos];\n // Initial element selection (squad selection)\n if (!pick && element) {\n return integerToMoney(element.now_cost, this.props.currencyDivisor);\n }\n // Removed element (transfers)\n if (pick && !element) {\n return integerToMoney(pick.selling_price, this.props.currencyDivisor);\n }\n // Original element (transfers)\n if (pick && element && pick.element === element.id) {\n return integerToMoney(pick.selling_price, this.props.currencyDivisor);\n }\n // Replaced element (transfers)\n if (pick && element && pick.element !== element.id) {\n return integerToMoney(element.now_cost, this.props.currencyDivisor);\n }\n return null;\n }\n\n public componentDidMount() {\n this.props.clearLastChange();\n Object.keys(this.props.proposedElements).length === 0 &&\n this.showAutoPickDialog();\n }\n\n public render() {\n const {\n autoPick,\n elementsById,\n errors,\n i18n,\n listTable,\n lastChange,\n mode,\n nextEvent,\n scoreboard,\n settings,\n showSidebar,\n submitDialog,\n t,\n teamsById,\n } = this.props;\n\n let latestAction: React.ReactNode = null;\n if (lastChange.type === \"addition\") {\n latestAction = (\n \n \n \n {{ playerName: elementsById[lastChange.element].web_name }}\n {\" \"}\n has been added to your squad.\n \n \n );\n } else if (lastChange.type === \"removal\") {\n latestAction = (\n \n \n \n {{ playerName: elementsById[lastChange.element].web_name }}\n {\" \"}\n has been removed from your squad.\n \n \n );\n }\n\n // Button enablers\n const canEnter = !Boolean(Object.keys(errors).length);\n\n // Helper functions to generate props used by multiple component instances\n const sharedPitchElementProps = (pos: number) => ({\n pos,\n renderElementMenu: this.handleShowMenuForElement,\n elementValue: this.renderElementValueForPosition(pos),\n showSidebar,\n });\n\n const sharedSquadListTableProps = (\n pos: number[],\n elementType: number,\n key: string\n ) => ({\n elementType,\n key,\n positions: pos,\n renderElementDialog: this.showDialog,\n renderElementMenu: this.handleShowMenuForElement,\n });\n\n const submitButtonText = {\n selection: t(\"createSquad.enterSquad\", \"Enter Squad\"),\n transfers: t(\"createSquad.makeTransfers\", \"Make Transfers\"),\n };\n\n const positionsByElementType: {\n [index: string]: number[];\n } = {\n 1: [1, 2],\n 2: [3, 4, 5, 6, 7],\n 3: [8, 9, 10, 11, 12],\n 4: [13, 14, 15],\n };\n\n return (\n
\n {settings && (\n \n

\n {t(\n \"createSquad.help\",\n \"Select a maximum of {{ teamLimit }} players from a single team or 'Auto Pick' if you're short of time.\",\n { teamLimit: settings.squad_team_limit }\n )}\n

\n
\n )}\n {nextEvent && (\n \n )}\n \n {errors.overTeamLimit && (\n \n \n {t(\n \"createSquad.errors.overTeamLimit\",\n \"Too many players selected from\"\n )}{\" \"}\n \n {errors.overTeamLimit\n .map((team) => teamsById[team].name)\n .join(\", \")}\n \n \n \n )}\n {latestAction && {latestAction}}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {Object.keys(positionsByElementType).map((et) =>\n listTable(\n sharedSquadListTableProps(\n positionsByElementType[et],\n parseInt(et, 10),\n et\n )\n )\n )}\n \n \n \n \n \n \n {/* */}\n {this.renderMenu()}\n (\n <>\n \n \n \n {showDialog && submitDialog(handleHide)}\n \n )}\n />\n {this.state.showAutoPickDialog && (\n \n \n \n \n {t(\"createSquad.onboarding.titlen\", \"Squad Selection\")}\n \n \n \n \n \n

\n {t(\n \"createSquad.onboarding.p1n\",\n \"Welcome to Allsvenskan Fantasy! It's time to pick your squad. Auto pick to get started quickly or choose your Squad yourself.\"\n )}\n

\n

\n {t(\n \"createSquad.onboarding.p2n\",\n \"You can make unlimited free transations before your first gameweek deadline, so you can still make further changes if you auto pick.\"\n )}\n

\n

\n {t(\n \"createSquad.onboarding.p3n\",\n \"You can pick a maximum of 3 players from one Allsvenskan team.\"\n )}\n

\n
\n \n \n {\n autoPick();\n this.hideAutoPickDialog();\n }}\n width={1}\n >\n {t(\"createSquad.onboarding.autoPickn\", \"Auto Pick\")}\n \n \n \n \n \n \n
\n
\n )}\n
\n );\n }\n}\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n currencyDivisor: 10,\n elementsById: getElementsById(state),\n errors: getErrors(state),\n lastChange: getLastChange(state),\n mode: getSquadMode(state),\n nextEvent: getNextEvent(state),\n proposedElements: getProposedElements(state),\n savedPicks: getSavedPicks(state),\n settings: getSettings(state),\n teamsById: getTeamsById(state),\n});\n\nconst mapDispatchToProps = (\n dispatch: ThunkDispatch,\n ownProps: IOwnProps\n): IPropsFromDispatch => ({\n autoPick: () => {\n if (!dispatch(autoComplete())) {\n // We should do something :-)\n window.console.log(\"Failed to autocomplete\");\n }\n },\n clearLastChange: () => dispatch(resetLastChange()),\n removeElement: (position) => dispatch(removeElement(position)),\n restoreElement: (position) => dispatch(restoreElement(position)),\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n showElementType: (elementTypeId) => {\n dispatch(updateElementTypeControl(elementTypeId));\n ownProps.showSidebar();\n },\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(CreateSquad)\n);\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { RootState } from \"../../core/store\";\nimport {\n getElementControls,\n getElementTypeFilterOptions,\n} from \"../../core/store/elements/reducers\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { getTeams } from \"../../core/store/teams/reducers\";\nimport { FieldWrap, SelectField } from \"../FieldRenderers\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { ITeam } from \"../../core/store/teams/types\";\n\nconst mapState = (state: RootState) => ({\n teams: getTeams(state),\n controls: getElementControls(state),\n elementTypeFilterOptions: getElementTypeFilterOptions(state),\n player: getPlayerData(state),\n});\n\nconst connector = connect(mapState, {});\n\ntype PropsFromRedux = ConnectedProps;\n\ntype Props = PropsFromRedux &\n WithTranslation & {\n teams: ITeam[];\n handleFilterChange: (e: React.ChangeEvent) => void;\n };\n\nclass ElementFilter extends React.Component {\n public render() {\n const {\n controls,\n elementTypeFilterOptions,\n handleFilterChange,\n player,\n t,\n teams,\n } = this.props;\n\n // filterTeams\n const filterTeams = teams\n .filter((team: any) => team.unavailable === false)\n .sort((a, b) => a.name.localeCompare(b.name));\n\n return (\n \n \n \n \n {player && player.entry && (\n \n )}\n \n \n {elementTypeFilterOptions.map((o) => (\n \n {o.label}\n \n ))}\n \n \n {filterTeams.map((o) => (\n \n {o.name}\n \n ))}\n \n \n \n );\n }\n}\n\nexport { ElementFilter as ElementFilterTest };\n\nexport default withTranslation()(connector(ElementFilter));\n","import { TFunction } from \"i18next\";\n\ninterface IStatDetails {\n description: string;\n label: string;\n}\n\nconst allStatsDetails = (\n t: TFunction\n): Record => ({\n total_points: {\n description: t(\n \"stats.total_points.description\",\n \"Total points earned this season.\"\n ),\n label: t(\"stats.total_points.label\", \"Total points\"),\n },\n event_points: {\n description: t(\n \"stats.round_points.description\",\n \"Total points earned in the latest round.\"\n ),\n label: t(\"stats.round_points.label\", \"Round points\"),\n },\n now_cost: {\n description: t(\n \"stats.now_cost.description\",\n \"Current buying price in the transfer market.\"\n ),\n label: t(\"stats.now_cost.label\", \"Price\"),\n },\n selected_by_percent: {\n description: t(\n \"stats.selected_by_percent.description\",\n \"The percentage of overall Fantasy managers who currently own the player.\"\n ),\n label: t(\"stats.selected_by_percent.label\", \"Team selected by %\"),\n },\n minutes: {\n description: t(\n \"stats.minutes.description\",\n \"Total minutes played this season.\"\n ),\n label: t(\"stats.minutes.label\", \"Minutes played\"),\n },\n goals_scored: {\n description: t(\n \"stats.goals_scored.description\",\n \"Total goals scored this season.\"\n ),\n label: t(\"stats.goals_scored.label\", \"Goals scored\"),\n },\n assists: {\n description: t(\n \"stats.assists.description\",\n \"Total goal assists – awarded to the player from the goalscoring team who makes the final pass before a goal is scored, including own goals.\"\n ),\n label: t(\"stats.assists.label\", \"Assists\"),\n },\n clean_sheets: {\n description: t(\n \"stats.clean_sheets.description\",\n \"Total clean sheets – awarded to players who do not concede a goal and have played at least 60 minutes.\"\n ),\n label: t(\"stats.clean_sheets.label\", \"Clean sheets\"),\n },\n goals_conceded: {\n description: t(\n \"stats.goals_conceded.description\",\n \"Total number of goals conceded by a team while the player has been on the pitch.\"\n ),\n label: t(\"stats.goals_conceded.label\", \"Goals conceded\"),\n },\n own_goals: {\n description: t(\n \"stats.own_goals.description\",\n \"Awarded to a player who puts the ball into his own team’s goal.\"\n ),\n label: t(\"stats.own_goals.label\", \"Own goals\"),\n },\n penalties_saved: {\n description: t(\n \"stats.penalties_saved.description\",\n \"Awarded to a goalkeeper who touches the ball when saving a penalty.\"\n ),\n label: t(\"stats.penalties_saved.label\", \"Penalties saved\"),\n },\n penalties_missed: {\n description: t(\n \"stats.penalties_missed.description\",\n \"Awarded to a player who takes a penalty but does not score from the penalty spot.\"\n ),\n label: t(\"stats.penalties_missed.label\", \"Penalties missed\"),\n },\n yellow_cards: {\n description: t(\n \"stats.yellow_cards.description\",\n \"Total yellow cards this season.\"\n ),\n label: t(\"stats.yellow_cards.label\", \"Yellow cards\"),\n },\n red_cards: {\n description: t(\n \"stats.red_cards.description\",\n \"Total red cards this season.\"\n ),\n label: t(\"stats.red_cards.label\", \"Red cards\"),\n },\n saves: {\n description: t(\n \"stats.saves.description\",\n \"Total times a goalkeeper has saved a shot on goal.\"\n ),\n label: t(\"stats.saves.label\", \"Saves\"),\n },\n attacking_bonus: {\n description: t(\n \"stats.attackingBonus.description\",\n \"Bonus points are awarded for attacking, positive actions in a match.\"\n ),\n label: t(\"stats.attackingBonus.label\", \"Attacking Bonus points\"),\n },\n defending_bonus: {\n description: t(\n \"stats.defendingBonus.description\",\n \"Players score extra points for good defending.\"\n ),\n label: t(\"stats.defendingBonus.label\", \"Defending Bonus points\"),\n },\n key_passes: {\n description: t(\n \"stats.keyPasses.description\",\n \"A key pass is one that leads to a shot at goal.\"\n ),\n label: t(\"stats.keyPasses.label\", \"Key passes\"),\n },\n clearances_blocks_interceptions: {\n description: t(\n \"stats.CBI.description\",\n \"Total number of clearances away from the defensive area, blocked shots, interceptions of passes and recoveries.\"\n ),\n label: t(\"stats.CBI.label\", \"Defensive actions\"),\n },\n winning_goals: {\n description: t(\n \"stats.WinGoals.description\",\n \"For scoring the winning goal.\"\n ),\n label: t(\"stats.WinGoals.label\", \"Winning goals\"),\n },\n form: {\n description: t(\n \"stats.form.description\",\n \"Form is a player’s average score per match, calculated from all matches played by his club in the last 30 days.\"\n ),\n label: t(\"stats.form.label\", \"Form\"),\n },\n dreamteam_count: {\n description: t(\n \"stats.dreamteam_count.description\",\n \"The number of times a player has been selected in a Round Dream Team. Players with the most points in a Round in a valid formation earn a place in the Dream Team.\"\n ),\n label: t(\"stats.dreamteam_count.label\", \"Times in Dream Team\"),\n },\n value_form: {\n description: t(\n \"stats.value_form.description\",\n \"Player’s form divided by player’s value.\"\n ),\n label: t(\"stats.value_form.label\", \"Value (form)\"),\n },\n value_season: {\n description: t(\n \"stats.value_season.description\",\n \"Player’s total points divided by player’s value.\"\n ),\n label: t(\"stats.value_season.label\", \"Value (season)\"),\n },\n points_per_game: {\n description: t(\n \"stats.points_per_game.description\",\n \"Player’s total points divided by player’s number of matches.\"\n ),\n label: t(\"stats.points_per_game.label\", \"Points per match\"),\n },\n transfers_in: {\n description: t(\n \"stats.transfers_in.description\",\n \"Total number of times a player has been transferred in to a team this season.\"\n ),\n label: t(\"stats.transfers_in.label\", \"Transfers in\"),\n },\n transfers_out: {\n description: t(\n \"stats.transfers_out.description\",\n \"Total number of times a player has been transferred out of a team this season.\"\n ),\n label: t(\"stats.transfers_out.label\", \"Transfers out\"),\n },\n transfers_in_event: {\n description: t(\n \"stats.transfers_in_event.description\",\n \"Total number of times a player has been transferred in to a team this Round.\"\n ),\n label: t(\"stats.transfers_in_event.label\", \"Transfers in (round)\"),\n },\n transfers_out_event: {\n description: t(\n \"stats.transfers_out_event.description\",\n \"Total number of times a player has been transferred out of a team this Round.\"\n ),\n label: t(\"stats.transfers_out_event.label\", \"Transfers out (round)\"),\n },\n cost_change_start: {\n description: t(\n \"stats.cost_change_start.description\",\n \"How much a player’s price has increased since the start of the season.\"\n ),\n label: t(\"stats.cost_change_start.label\", \"Price rise\"),\n },\n cost_change_start_fall: {\n description: t(\n \"stats.cost_change_start_fall.description\",\n \"How much a player price has fallen since the start of the season.\"\n ),\n label: t(\"stats.cost_change_start_fall.label\", \"Price fall\"),\n },\n cost_change_event: {\n description: t(\n \"stats.cost_change_event.description\",\n \"How much a player’s price has increased this Round.\"\n ),\n label: t(\"stats.cost_change_event.label\", \"Price rise (round)\"),\n },\n cost_change_event_fall: {\n description: t(\n \"stats.cost_change_event_fall.description\",\n \"How much a player’s price has fallen this Round.\"\n ),\n label: t(\"stats.cost_change_event_fall.label\", \"Price fall (round)\"),\n },\n});\n\nlet _stats: Record = {};\n\nconst getStats = (t: TFunction) => {\n if (!Object.keys(_stats).length) {\n _stats = allStatsDetails(t);\n }\n return _stats;\n};\n\nexport const getStatDetails = (name: string, t: TFunction) => {\n const stats = getStats(t);\n return stats[name] ? stats[name] : null;\n};\n\nexport const getStatNames = (t: TFunction) => Object.keys(getStats(t));\n","import React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { RootState } from \"../../core/store\";\nimport { getElementStats } from \"../../core/store/element-stats/reducers\";\nimport { getElementControls } from \"../../core/store/elements/reducers\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport { getStatDetails, getStatNames } from \"../../utils/stats\";\nimport { FieldWrap, SelectField } from \"../FieldRenderers\";\n\nconst mapState = (state: RootState) => ({\n controls: getElementControls(state),\n elementStats: getElementStats(state),\n});\n\nconst connector = connect(mapState, {});\n\ntype PropsFromRedux = ConnectedProps;\n\ninterface ISortOption {\n label: string;\n value: keyof IElement;\n}\n\ntype Props = PropsFromRedux &\n WithTranslation & {\n handleSortChange: (e: React.ChangeEvent) => void;\n sortOptions?: ISortOption[];\n };\n\nclass ElementSort extends React.Component {\n public getSortOptions = (): ISortOption[] =>\n getStatNames(this.props.t).map((s) => ({\n label: getStatDetails(s, this.props.t)!.label,\n value: s,\n }));\n\n public render() {\n const {\n controls,\n handleSortChange,\n sortOptions = this.getSortOptions(),\n t,\n } = this.props;\n return (\n \n \n {sortOptions.map((o) => (\n \n {o.label}\n \n ))}\n \n \n );\n }\n}\n\nexport { ElementSort as ElementSortTest };\n\nexport default withTranslation()(connector(ElementSort));\n","import { hideVisually, size } from \"polished\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst Button = styled.button`\n ${size(42)};\n padding: 7px;\n border: ${({ theme }) => theme.borders[0]};\n border-radius: 50%;\n background-color: ${({ theme }) => theme.colors.secondary};\n color: ${({ theme }) => theme.colors.white};\n cursor: pointer;\n\n ${(props) =>\n props.disabled &&\n css`\n background-color: ${props.theme.colors.greyLight};\n color: ${props.theme.colors.grey};\n `}\n\n ${(props) =>\n props.isSmall &&\n css`\n ${size(38)};\n `}\n`;\n\nconst HiddenLabel = styled.span`\n ${hideVisually}\n`;\n\ninterface IStyledProps {\n disabled?: boolean;\n isSmall?: boolean;\n}\n\ninterface IProps {\n actionMe: () => void;\n children: React.ReactNode;\n label: string;\n}\n\ntype Props = IProps & IStyledProps;\n\nconst PaginatorButton: React.FC = ({\n actionMe,\n children,\n disabled,\n isSmall,\n label,\n}) => (\n \n {children}\n {label}\n \n);\n\nexport default PaginatorButton;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Flex } from \"rebass/styled-components\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport {\n ArrowLeft,\n ArrowLeftDouble,\n ArrowRight,\n ArrowRightDouble,\n} from \"../icons/Arrows\";\nimport PaginatorButton from \"../paginator/PaginatorButton\";\n\nexport const paginate = (\n elements: IElement[],\n page: number,\n pageSize: number\n) => {\n const start = (page - 1) * pageSize;\n return {\n data: elements.slice(start, start + pageSize),\n totalPages: Math.ceil(elements.length / pageSize),\n };\n};\n\ninterface IProps {\n page: number;\n setPage: (page: number) => void;\n totalPages: number;\n}\n\nconst Paginator: React.FunctionComponent = ({\n page,\n setPage,\n totalPages,\n}) => {\n const { t } = useTranslation();\n return (\n \n setPage(1)}\n label={t(\"paginator.first\", \"First\")}\n disabled={page === 1}\n isSmall={true}\n >\n \n \n setPage(page - 1)}\n label={t(\"paginator.previous\", \"Previous\")}\n disabled={page === 1}\n >\n \n \n
\n {page} {t(\"paginator.of\", \"of\")} {totalPages}\n
\n setPage(page + 1)}\n label={t(\"paginator.next\", \"Next\")}\n disabled={page === totalPages}\n >\n \n \n setPage(totalPages)}\n label={t(\"paginator.last\", \"Last\")}\n disabled={page === totalPages}\n isSmall={true}\n >\n \n \n
\n );\n};\n\nexport default Paginator;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst StyledMedia = styled.div`\n display: flex;\n ${(props) =>\n props.centred &&\n css`\n align-items: center;\n `}\n`;\n\nconst Img = styled.div`\n margin-right: ${({ theme }) => theme.space[2]};\n`;\n\nconst Body = styled.div`\n flex: 1;\n /* For ElementInTable webname ellipsis */\n max-width: 100%;\n overflow: hidden;\n`;\n\ninterface IStyledMediaProps {\n centred: boolean | undefined;\n}\n\ninterface IMediaProps {\n img: React.ReactNode;\n centred?: boolean;\n children: React.ReactNode;\n}\n\nconst Media: React.FC = ({ img, centred, children }) => (\n \n {img}\n {children}\n \n);\n\nMedia.defaultProps = {\n centred: false,\n};\n\nexport default Media;\n","var _circle, _path, _path2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgSub(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n fill: \"#12326E\",\n stroke: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.34807 4.23291C6.50137 4.10009 6.72981 4.10304 6.87963 4.23977L10.2379 7.30454C10.5077 7.55074 10.3335 8 9.9683 8H3.07256C2.70224 8 2.53075 7.54017 2.81063 7.29768L6.34807 4.23291Z\",\n fill: \"#51F5C4\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.6519 15.7671C13.4986 15.8999 13.2702 15.897 13.1204 15.7602L9.76207 12.6955C9.49228 12.4493 9.66647 12 10.0317 12L16.9274 12C17.2978 12 17.4692 12.4598 17.1894 12.7023L13.6519 15.7671Z\",\n fill: \"#E73088\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSub);\nexport default __webpack_public_path__ + \"static/media/sub.93b5379c.svg\";\nexport { ForwardRef as ReactComponent };","import { ellipsis } from \"polished\";\nimport * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { IElement } from \"../core/store/elements/types\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport Media from \"./Media\";\nimport ElementShirt from \"./ElementShirt\";\nimport { connect } from \"react-redux\";\nimport { getElementTypesById } from \"../core/store/element-types/reducers\";\nimport { RootState } from \"../core/store\";\nimport { IElementTypesById } from \"../core/store/element-types/types\";\n\nconst MenuButton = styled.button`\n ${ellipsis()};\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.base};\n font-weight: bold;\n text-align: left;\n cursor: pointer;\n`;\n\nconst Name = styled.div`\n ${ellipsis()};\n color: ${({ theme }) => theme.colors.white};\n font-weight: bold;\n\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst Team = styled.div`\n margin-right: ${({ theme }) => theme.space[2]};\n color: ${({ theme }) => theme.colors.white};\n font-size: ${({ theme }) => theme.fontSizes[1]};\n font-weight: normal;\n`;\n\ninterface IPropsFromState {\n elementTypesById: IElementTypesById;\n}\n\ninterface IOwnProps {\n element: IElement;\n renderElementMenu: () => void;\n team: ITeam;\n}\n\ntype Props = IPropsFromState & IOwnProps;\n\nconst ElementInTable: React.FC = ({\n element,\n elementTypesById,\n renderElementMenu,\n team,\n}) => {\n const Shirt = ;\n return (\n \n \n {element.web_name}\n {team.short_name}\n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementTypesById: getElementTypesById(state),\n});\n\nexport default connect(mapStateToProps)(ElementInTable);\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { IElement } from \"../core/store/elements/types\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport { integerToMoney, isMoneyStat } from \"../core/utils/money\";\nimport ElementDialogButton from \"./ElementDialogButton\";\nimport ElementInTable from \"./ElementInTable\";\nimport { ElementCell, ElementRow } from \"./ElementTable\";\n\nconst StyledElementListRow = styled(ElementRow)`\n ${(props) =>\n props.isProposed &&\n css`\n td,\n button {\n color: ${({ theme }) => theme.colors.white};\n }\n\n img {\n opacity: 0.6;\n }\n `}\n`;\n\nconst ElementListStatCell = styled.td`\n font-weight: bold;\n`;\n\ninterface IStyledProps {\n isProposed: boolean;\n}\n\ninterface IProps extends IStyledProps {\n currencyDivisor: number;\n element: IElement;\n renderElementDialog: () => void;\n renderElementMenu: () => void;\n sort: React.ReactText;\n team: ITeam;\n}\n\nconst ElementListRow: React.FC = ({\n currencyDivisor,\n element,\n isProposed,\n renderElementMenu,\n sort,\n team,\n}) => (\n \n \n \n \n \n \n \n \n {integerToMoney(element.now_cost, currencyDivisor)}\n \n \n {isMoneyStat(sort)\n ? integerToMoney(element[sort] as number, currencyDivisor)\n : element[sort]}\n \n \n);\n\nexport default ElementListRow;\n","import groupBy from \"lodash/groupBy\";\nimport range from \"lodash/range\";\nimport * as React from \"react\";\nimport { Trans, withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Flex, Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getElementTypes,\n getElementTypesById,\n} from \"../../core/store/element-types/reducers\";\nimport {\n IElementType,\n IElementTypesById,\n} from \"../../core/store/element-types/types\";\nimport { updateElementControls } from \"../../core/store/elements/actions\";\nimport {\n getElementControls,\n getElementsFromControls,\n} from \"../../core/store/elements/reducers\";\nimport {\n showElementSummary,\n updateElementControlsAndMaxCost,\n updateElementTypeControl,\n} from \"../../core/store/elements/thunks\";\nimport {\n IElement,\n IElementControls,\n IElementDataFromControls,\n} from \"../../core/store/elements/types\";\nimport {\n getProposedElementsById,\n getTypesNeeded,\n} from \"../../core/store/squad/reducers\";\nimport { proposeElement, removeElement } from \"../../core/store/squad/thunks\";\nimport {\n IProposedElementsById,\n ITypesNeeded,\n} from \"../../core/store/squad/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport ElementFilter from \"../element-controls/ElementFilter\";\nimport ElementSort from \"../element-controls/ElementSort\";\nimport Paginator from \"../element-controls/Paginator\";\nimport ElementListRow from \"../ElementListRow\";\nimport { ElementTable } from \"../ElementTable\";\nimport { FieldWrap, SearchField, SelectField } from \"../FieldRenderers\";\nimport { ControlArrowLeft } from \"../icons/Arrows\";\nimport SubHeading from \"../SubHeading\";\nimport Panel from \"../Panel\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport DialogHeading from \"../DialogHeading\";\n\nconst Form = styled.form`\n padding: 0 ${({ theme }) => theme.space[2]};\n`;\n\nconst ElementsShown = styled.p`\n margin: ${({ theme }) => theme.space[2]} 0;\n text-align: center;\n\n strong {\n color: ${({ theme }) => theme.colors.primary};\n }\n`;\n\nconst ElementListElement = styled.th`\n width: 46%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 50%;\n }\n`;\n\nconst ElementListPrice = styled.th`\n width: 22%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 18%;\n }\n`;\n\nconst ElementListStat = styled.th`\n width: 22%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 18%;\n }\n`;\n\nconst ElementTypeButton = styled.span`\n padding: 0;\n border: 0;\n background-color: transparent;\n color: currentColor;\n font-size: ${({ theme }) => theme.fontSizes[2]};\n cursor: pointer;\n font-family: ${({ theme }) => theme.fonts.base};\n`;\n\nconst ButtonWrap = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: none;\n }\n`;\n\nconst PlayerActions = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 50%;\n margin: 0 auto;\n }\n`;\n\ninterface IPropsFromState {\n controls: IElementControls;\n currencyDivisor: number;\n elementTypes: IElementType[];\n elementTypesById: IElementTypesById;\n elements: IElementDataFromControls;\n proposedElementsById: IProposedElementsById;\n teamsById: ITeamsById;\n typesNeeded: ITypesNeeded;\n}\n\ninterface IPropsFromDispatch {\n proposeElement: (elementId: number) => void;\n removeElement: (position: number) => void;\n showElementDialog: (elementId: number) => void;\n showElementType: (elementTypeId: number) => void;\n updateControls: (controls: IElementControls) => void;\n updateControlsAndMaxCost: (controls: IElementControls) => void;\n}\n\ninterface IOwnProps {\n hideRef: React.RefObject;\n hideSidebar: () => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\ninterface IState {\n page: number;\n elementForMenu: IElement | null;\n}\n\nclass ElementList extends React.Component {\n public state: IState = { elementForMenu: null, page: 1 };\n\n public addElement = (elementId: number) => {\n this.props.proposeElement(elementId);\n this.handleHideMenuForElement();\n };\n\n public removeElement = (position: number) => {\n this.props.removeElement(position);\n this.handleHideMenuForElement();\n };\n\n public handleFilterChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControlsAndMaxCost({\n ...this.props.controls,\n filter: e.target.value,\n });\n };\n\n public handleSortChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControls({\n ...this.props.controls,\n sort: e.target.value,\n });\n };\n\n public handleSearchChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControls({\n ...this.props.controls,\n search: e.target.value,\n });\n };\n\n public handleMaxCostChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControls({\n ...this.props.controls,\n maxCost: Number(e.target.value),\n });\n };\n\n public handleShowMenuForElement = (element: IElement) =>\n this.setState({ elementForMenu: element });\n\n public handleHideMenuForElement = () => {\n this.setState({ elementForMenu: null });\n };\n\n public showDialog = (element: IElement) => {\n this.props.showElementDialog(element.id);\n this.handleHideMenuForElement();\n };\n\n public setPage = (page: number) => this.setState({ page });\n\n public componentDidMount() {\n this.props.updateControlsAndMaxCost({\n ...this.props.controls,\n filter: \"all\",\n sort: \"total_points\",\n search: \"\",\n getUnavailable: false,\n });\n }\n\n public paginateAndGroup(elements: IElement[], pageSize: number) {\n const start = (this.state.page - 1) * pageSize;\n return {\n data: groupBy(elements.slice(start, start + pageSize), \"element_type\"),\n totalPages: Math.ceil(elements.length / pageSize),\n };\n }\n\n public renderMenu() {\n const element = this.state.elementForMenu;\n\n if (!element) {\n return null;\n }\n\n const { t } = this.props;\n const proposedElement = this.props.proposedElementsById[element.id];\n const roomInSquad = this.props.typesNeeded[element.element_type];\n\n let alert = null;\n if (!roomInSquad) {\n alert = (\n \n {t(\n \"elementList.errors.maxElementType\",\n \"You already have the maximum number of {{ position }}\",\n {\n position:\n this.props.elementTypesById[element.element_type].plural_name,\n }\n )}\n \n );\n } else if (proposedElement) {\n alert = (\n \n \n {{ playerName: element.web_name }} is already in\n your squad.\n \n \n );\n }\n\n return (\n \n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n \n \n {alert && alert}\n\n \n \n \n {proposedElement ? (\n this.removeElement(proposedElement.position)}\n width={1}\n >\n {t(\"elementList.removePlayer\", \"Remove player\")}\n \n ) : (\n this.addElement(element.id)}\n disabled={Boolean(!roomInSquad)}\n width={1}\n >\n {t(\"elementList.addPlayer\", \"Add player\")}\n \n )}\n \n \n \n \n \n \n \n );\n }\n\n public render() {\n const {\n controls,\n currencyDivisor,\n elements,\n elementTypes,\n hideRef,\n hideSidebar,\n proposedElementsById,\n showElementType,\n teamsById,\n t,\n } = this.props;\n const { data, totalPages } = this.paginateAndGroup(elements.data, 30);\n return (\n
\n \n \n \n {t(\"elementList.playerSelection\", \"Player Selection\")}\n \n \n }\n >\n {t(\"back\", \"Back\")}\n \n \n \n
e.preventDefault()}>\n \n \n \n \n \n \n \n {range(elements.maxCost, elements.minCost - 1, -5).map(\n (cost) => (\n \n {integerToMoney(cost, 10)}\n \n )\n )}\n \n \n \n \n \n {{ length: elements.data.length }} players shown\n \n \n {elementTypes.map(\n (et) =>\n data[et.id] && (\n \n \n \n  \n \n showElementType(et.id)}\n >\n {et.plural_name}\n \n \n \n \n Mkr\n \n \n P\n \n \n \n {data[et.id].map((e) => (\n \n this.handleShowMenuForElement(e)\n }\n renderElementDialog={() => this.showDialog(e)}\n team={teamsById[e.team]}\n currencyDivisor={currencyDivisor}\n sort={controls.sort}\n />\n ))}\n \n \n )\n )}\n {this.renderMenu()}\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n controls: getElementControls(state),\n currencyDivisor: 10,\n elementTypes: getElementTypes(state),\n elementTypesById: getElementTypesById(state),\n elements: getElementsFromControls(state),\n proposedElementsById: getProposedElementsById(state),\n teamsById: getTeamsById(state),\n typesNeeded: getTypesNeeded(state),\n});\n\nconst mapDispatchToProps = (\n dispatch: ThunkDispatch,\n ownProps: IOwnProps\n): IPropsFromDispatch => ({\n proposeElement: (elementId) => {\n dispatch(proposeElement(elementId));\n ownProps.hideSidebar();\n },\n removeElement: (position) => dispatch(removeElement(position)),\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n showElementType: (elementTypeId) =>\n dispatch(updateElementTypeControl(elementTypeId)),\n updateControls: (controls) => dispatch(updateElementControls(controls)),\n updateControlsAndMaxCost: (controls) =>\n dispatch(updateElementControlsAndMaxCost(controls)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(ElementList)\n);\n","import React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport Button from \"../Button\";\nimport Fixtures from \"../Fixtures\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Wrapper } from \"../Layout\";\nimport PageHeader from \"../PageHeader\";\nimport CreateSquad, { IListTableProps } from \"./CreateSquad\";\nimport ElementList from \"./ElementList\";\n\nconst PusherWrap = styled.div`\n overflow-x: hidden;\n`;\n\nconst Pusher = styled.div`\n position: relative;\n transition: all 300ms;\n\n ${(props) =>\n props.isSidebarVisible &&\n css`\n transform: translate3d(-100%, 0, 0);\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n transform: none;\n }\n `}\n`;\n\nconst PusherSecondary = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n height: 100%;\n transform: translate3d(100%, 0, 0);\n overflow-y: auto;\n padding-top: 2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: static;\n transform: none;\n width: calc(100% / 3);\n padding-right: 1rem;\n padding-left: 1rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 25%;\n }\n`;\n\nconst ButtonWrap = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: none;\n }\n`;\n\ninterface IProps {\n listTable: (listTableProps: IListTableProps) => void;\n scoreboard: string;\n submitDialog: (handleHide: () => void) => React.ReactNode;\n title: React.ReactNode;\n}\n\ninterface IState {\n isSidebarVisible: boolean;\n}\n\ntype Props = IProps & WithTranslation;\n\nclass SquadBase extends React.Component {\n public state: IState = {\n isSidebarVisible: false,\n };\n\n public showRef = React.createRef();\n\n public hideRef = React.createRef();\n\n public handleShowSidebar = () => this.setState({ isSidebarVisible: true });\n\n public handleHideSidebar = () => this.setState({ isSidebarVisible: false });\n\n public handleTransitionEnd = (e: React.TransitionEvent) => {\n // Just handle the Pusher transition\n if (e.target === e.currentTarget) {\n this.state.isSidebarVisible\n ? this.hideRef.current!.focus()\n : this.showRef.current!.focus();\n }\n };\n\n public render() {\n const { t } = this.props;\n return (\n \n \n \n
\n \n \n \n }\n >\n {t(\"squadBase.playerList\", \"Player List\")}\n \n \n \n \n \n \n
\n \n \n \n
\n \n
\n );\n }\n}\n\nexport default withTranslation()(SquadBase);\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementTypesBySquadPosition } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesBySquadPosition } from \"../../core/store/element-types/types\";\nimport { updateElementTypeControl } from \"../../core/store/elements/thunks\";\nimport { getFixturesForNextEventByTeam } from \"../../core/store/fixtures/reducers\";\nimport { IFixturesForEventByTeam } from \"../../core/store/fixtures/types\";\nimport { getProposedElements } from \"../../core/store/squad/reducers\";\nimport { IProposedElements } from \"../../core/store/squad/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport { ElementCell, ElementRow, ElementTable } from \"../ElementTable\";\nimport { FixturesForElement } from \"../FixtureForElement\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ScrollWrapper = styled.div`\n overflow-x: auto;\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n overflow-x: visible;\n }\n`;\n\nconst FlexElementCell = styled(ElementCell)`\n display: flex;\n align-items: center;\n`;\n\nconst FilterElTypeButton = styled.button`\n padding: 10px 0 9px;\n border: 0;\n background-color: transparent;\n font-size: 1.3rem;\n white-space: normal;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nconst SquadListElement = styled.th`\n width: 40%;\n`;\n\nconst SquadListCost = styled.th`\n width: 15%;\n`;\n\nconst SquadListSelected = styled.th`\n width: 15%;\n`;\n\nconst SquadListPoints = styled.th`\n width: 15%;\n`;\n\nconst SquadListFixture = styled.th`\n width: 15%;\n`;\n\ninterface ISquadListRowProps {\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n proposedElements: IProposedElements;\n pos: number;\n renderElementMenu: (position: number) => void;\n showElementType: (elementTypeId: number) => void;\n teamsById: ITeamsById;\n}\n\nconst SquadListRow: React.FC = ({\n elementTypesByPosition,\n proposedElements,\n pos,\n renderElementMenu,\n showElementType,\n teamsById,\n fixturesForNextEventByTeam,\n}) => {\n const { t } = useTranslation();\n\n if (!elementTypesByPosition) {\n return null;\n }\n\n const element = proposedElements[pos];\n return (\n \n {element ? (\n <>\n \n
\n \n
\n renderElementMenu(pos)}\n element={element}\n team={teamsById[element.team]}\n />\n
\n {integerToMoney(element.now_cost, 10)}\n {element.selected_by_percent}\n {element.total_points}\n \n }\n fixtures={fixturesForNextEventByTeam[element.team]}\n element={element}\n teamsById={teamsById}\n />\n \n \n ) : (\n <>\n \n \n showElementType(elementTypesByPosition[pos].thisType.id)\n }\n >\n {t(\"squad.selectElement\", \"Select {{position}}\", {\n position: elementTypesByPosition[pos].thisType.singular_name,\n })}\n \n \n \n )}\n
\n );\n};\n\ninterface IPropsFromState {\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n proposedElements: IProposedElements;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n showElementType: (elementTypeId: number) => void;\n}\n\ninterface ISquadListTableProps {\n elementType: number;\n positions: number[];\n renderElementMenu: (pos: number) => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & ISquadListTableProps;\n\nconst SquadListTable: React.SFC = ({\n elementType,\n elementTypesByPosition,\n positions,\n ...rest\n}) => {\n const { t } = useTranslation();\n\n if (!elementTypesByPosition) {\n return null;\n }\n return (\n \n \n \n \n \n {elementTypesByPosition[positions[0]].thisType.plural_name}\n \n \n \n Mkr\n \n \n \n \n \n {t(\"squadListTabel.label.selectedPct\", \"VAL\")}\n \n \n \n \n \n \n {t(\"squadListTabel.label.totalPoints\", \"TP\")}\n \n \n \n \n \n \n {t(\"squadListTabel.label.fixtureNext\", \"Mot\")}\n \n \n \n \n \n \n {positions.map((p) => (\n \n ))}\n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementTypesByPosition: getElementTypesBySquadPosition(state),\n fixturesForNextEventByTeam: getFixturesForNextEventByTeam(state),\n proposedElements: getProposedElements(state),\n teamsById: getTeamsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementType: (elementTypeId) =>\n dispatch(updateElementTypeControl(elementTypeId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SquadListTable);\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport Register from \"../player/Register\";\nimport CreateEntryDialog from \"./CreateEntryDialog\";\nimport SquadBase from \"./SquadBase\";\nimport SquadListTable from \"./SquadListTable\";\n\nconst SquadSelection = () => {\n const { t } = useTranslation();\n const player = useSelector(getPlayerData);\n if (!player || player.dirty) {\n return ;\n }\n return (\n }\n scoreboard=\"basic\"\n submitDialog={(handleHide) => (\n \n )}\n title={t(\"squad.title\", \"Squad Selection\")}\n />\n );\n};\n\nexport default SquadSelection;\n","import { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n cancelProposedChip,\n proposeAvailableChip,\n} from \"../../core/store/chips/actions\";\nimport {\n getActiveChipName,\n getAvailableChipNames,\n getProposedChipName,\n} from \"../../core/store/chips/reducers\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { ITransferState } from \"../../core/store/my-team/types\";\nimport {\n getFreeTransfers,\n getProposedTransfers,\n getTransferCosts,\n getTransferState,\n} from \"../../core/store/squad/reducers\";\nimport { makeTransfers } from \"../../core/store/squad/thunks\";\nimport { ITransfersData } from \"../../core/store/squad/types\";\nimport { formatRawAsLocalI18n } from \"../../core/utils/datetime\";\nimport { dateLocales } from \"../../i18n\";\nimport Alert, { AlertGroup, AlertItem } from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport DialogHeading from \"../DialogHeading\";\nimport Table, { THeadRadius } from \"../Table\";\nimport Panel from \"../Panel\";\n\ninterface IOwnProps {\n handleHide: () => void;\n}\n\ninterface IPropsFromState {\n activeChip: string;\n elementsById: IElementsById;\n freeTransfers: number;\n nextEvent: IEvent | null;\n proposedChip: string;\n transferCosts: number;\n transfers: ITransfersData[];\n transferState: ITransferState | null;\n wildcardAvailable: boolean;\n unlimitAvaliable: boolean;\n}\n\ninterface IPropsFromDispatch {\n makeTransfers: () => void;\n cancelChip: (chip: string) => void;\n proposeChip: (chip: string) => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch;\n\nconst ConfirmTransfersDialog = ({\n freeTransfers,\n handleHide,\n elementsById,\n makeTransfers,\n nextEvent,\n proposedChip,\n transferCosts,\n transfers,\n transferState,\n wildcardAvailable,\n unlimitAvaliable,\n cancelChip,\n proposeChip,\n}: Props) => {\n const { i18n, t } = useTranslation();\n if (!nextEvent || !transferState) {\n return null;\n }\n return (\n \n \n \n \n {t(\"confirmTransfers.heading\", \"Confirm Transfers\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {transfers.map((t, index) => (\n \n {/*\n * Non-null assertion used here because elements\n * are always transferred out in this game.\n */}\n \n \n \n \n ))}\n \n \n \n \n \n
{t(\"confirmTransfers.out\", \"Out\")}{t(\"confirmTransfers.in\", \"In\")}{t(\"confirmTransfers.cost\", \"Cose\")}
{elementsById[t.element_out!].web_name}{elementsById[t.element_in].web_name}\n {transferCosts && index >= freeTransfers\n ? transferState.cost\n : 0}{\" \"}\n pts\n
\n {t(\"confirmTransfers.totalCost\", \"Total cost\")}{transferCosts} pts
\n
\n
\n
\n \n {transferCosts > 0 ? (\n \n \n \n {t(\n \"confirmTransfers.transferAlert\",\n `\n These transfers will be active for ${\n nextEvent.name\n } (${formatRawAsLocalI18n(\n nextEvent.deadline_time,\n dateLocales[i18n.language]\n )}) and will deduct ${transferCosts}pts from your score!\n `,\n {\n name: nextEvent.name,\n time: formatRawAsLocalI18n(\n nextEvent.deadline_time,\n dateLocales[i18n.language]\n ),\n costs: transferCosts,\n }\n )}\n \n \n {wildcardAvailable && proposedChip !== \"uteam\" && (\n \n \n {t(\n \"confirmTransfers.playYourWildcard\",\n \"Play your wildcard to make unlimited free transfers this Round.\"\n )}\n \n \n \n )}\n \n ) : (\n \n \n \n {t(\n \"confirmTransfers.theseTransfersWill\",\n `These transfers will be active for ${\n nextEvent.name\n } (${formatRawAsLocalI18n(\n nextEvent.deadline_time,\n dateLocales[i18n.language]\n )})`,\n {\n name: nextEvent.name,\n time: formatRawAsLocalI18n(\n nextEvent.deadline_time,\n dateLocales[i18n.language]\n ),\n }\n )}\n \n \n {proposedChip === \"wildcard\" && (\n \n \n \n {t(\n \"confirmTransfers.youAreProposingWildcard\",\n \"You are proposing to play your wildcard!\"\n )}\n \n \n \n {t(\n \"confirmTransfers.cancelYourWildcard\",\n \"Cancel your wildcard if you would prefer to spend points on these transfers.\"\n )}\n \n \n \n )}\n {proposedChip === \"uteam\" && (\n \n \n \n {t(\n \"confirmTransfers.proposingUnlimit\",\n \"You are proposing to play your Loan Rangers chip! This allows you to make unlimited free transfers and choose how many players you want from a specific team for a single round. At the next deadline, your squad is returned to how it was at the start of the round.\"\n )}\n \n \n \n {t(\n \"confirmTransfers.cancelYourUnlimit\",\n \"Cancel Loan Rangers chip if you would prefer not to do this.\"\n )}\n \n {\n cancelChip(\"uteam\");\n return handleHide();\n }}\n width={1}\n >\n {t(\"confirmTransfers.cancelUnlimit\", \"Cancel Loan Rangers\")}\n \n \n )}\n \n )}\n \n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n );\n};\n\nexport { ConfirmTransfersDialog as ConfirmTransfersDialogTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const availableChips = getAvailableChipNames(state);\n return {\n activeChip: getActiveChipName(state),\n elementsById: getElementsById(state),\n freeTransfers: getFreeTransfers(state),\n nextEvent: getNextEvent(state),\n proposedChip: getProposedChipName(state),\n transferCosts: getTransferCosts(state),\n transferState: getTransferState(state),\n transfers: getProposedTransfers(state),\n wildcardAvailable: availableChips.indexOf(\"wildcard\") > -1,\n unlimitAvaliable: availableChips.indexOf(\"uteam\") > -1,\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n makeTransfers: () => dispatch(makeTransfers()),\n cancelChip: (chip: string) => dispatch(cancelProposedChip(chip)),\n proposeChip: (chip: string) => dispatch(proposeAvailableChip(chip)),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ConfirmTransfersDialog);\n","import * as React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementTypesBySquadPosition } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesBySquadPosition } from \"../../core/store/element-types/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElement, IElementsById } from \"../../core/store/elements/types\";\nimport { getFixturesForNextEventByTeam } from \"../../core/store/fixtures/reducers\";\nimport { IFixturesForEventByTeam } from \"../../core/store/fixtures/types\";\nimport {\n getProposedElements,\n getSavedPicks,\n} from \"../../core/store/squad/reducers\";\nimport { IProposedElements, ISavedPicks } from \"../../core/store/squad/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport { ElementCell, ElementRow, ElementTable } from \"../ElementTable\";\nimport { FixturesForElement } from \"../FixtureForElement\";\nimport { ScrollTable } from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\n\nconst SquadListStatus = styled.th`\n width: 7%;\n`;\n\nconst SquadListElement = styled.th`\n width: 28%;\n`;\n\nconst SquadListPrice = styled.th`\n width: 11%;\n`;\n\nconst SquadListForm = styled.th`\n width: 8%;\n`;\n\nconst SquadListPoints = styled.th`\n width: 9%;\n`;\n\nconst SquadListFixture = styled.th`\n width: 15%;\n`;\n\ninterface ISquadListRowProps {\n elementsById: IElementsById;\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n proposedElements: IProposedElements;\n pos: number;\n renderElementMenu: (position: number) => void;\n savedPicks: ISavedPicks;\n teamsById: ITeamsById;\n}\n\nconst TransfersListRow: React.FC = ({\n elementsById,\n elementTypesByPosition,\n fixturesForNextEventByTeam,\n proposedElements,\n pos,\n renderElementMenu,\n savedPicks,\n teamsById,\n}) => {\n if (!elementTypesByPosition) {\n return null;\n }\n\n let element = proposedElements[pos];\n // TODO - We need a visual indicator of the row elementState, in the past we\n // have rendered the '0' shirt instead of the regular one\n let elementState: \"original\" | \"removed\" | \"replaced\" = \"original\";\n if (!element) {\n element = elementsById[savedPicks[pos].element];\n elementState = \"removed\";\n } else if (element.id !== savedPicks[pos].element) {\n elementState = \"replaced\";\n }\n\n return (\n \n \n \n \n \n renderElementMenu(pos)}\n element={element}\n team={teamsById[element.team]}\n />\n \n {integerToMoney(element.now_cost, 10)}\n {elementState === \"replaced\" ? (\n <>\n {integerToMoney(element.now_cost, 10)}\n {integerToMoney(element.now_cost, 10)}\n \n ) : (\n <>\n {integerToMoney(savedPicks[pos].selling_price, 10)}\n {integerToMoney(savedPicks[pos].purchase_price, 10)}\n \n )}\n {element.form}\n {element.total_points}\n \n }\n fixtures={fixturesForNextEventByTeam[element.team]}\n element={element}\n teamsById={teamsById}\n />\n \n \n );\n};\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n proposedElements: IProposedElements;\n savedPicks: ISavedPicks;\n teamsById: ITeamsById;\n}\n\ninterface IOwnProps {\n elementType: number;\n positions: number[];\n renderElementDialog: (element: IElement) => void;\n renderElementMenu: (pos: number) => void;\n}\n\ntype Props = IPropsFromState & IOwnProps & WithTranslation;\n\nconst TransfersListTable: React.SFC = ({\n t,\n elementType,\n elementTypesByPosition,\n positions,\n ...rest\n}) => {\n if (!elementTypesByPosition) {\n return null;\n }\n return (\n \n \n \n \n  \n \n {elementTypesByPosition[positions[0]].thisType.plural_name}\n \n \n \n \n {t(\"squadListTabel.label.currentPrice\", \"CP\")}\n \n \n \n \n \n \n {t(\"squadListTabel.label.sellingPrice\", \"SP\")}\n \n \n \n \n \n \n {t(\"squadListTabel.label.purchasePrice\", \"PP\")}\n \n \n \n \n \n \n {t(\"squadListTabel.label.form\", \"F\")}\n \n \n \n \n \n \n {t(\"squadListTabel.label.totalPoints\", \"TP\")}\n \n \n \n \n \n \n {t(\"transferListTable.label.fixtureNext\", \"Fix\")}\n \n \n \n \n \n \n {positions.map((p) => (\n \n ))}\n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementsById: getElementsById(state),\n elementTypesByPosition: getElementTypesBySquadPosition(state),\n fixturesForNextEventByTeam: getFixturesForNextEventByTeam(state),\n proposedElements: getProposedElements(state),\n savedPicks: getSavedPicks(state),\n teamsById: getTeamsById(state),\n});\n\nexport default withTranslation()(connect(mapStateToProps)(TransfersListTable));\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { fetchMyTeam } from \"../../core/store/my-team/thunks\";\nimport { ITransferState } from \"../../core/store/my-team/types\";\nimport { getTransferState } from \"../../core/store/squad/reducers\";\nimport ConfirmTransfersDialog from \"./ConfirmTransfersDialog\";\nimport SquadBase from \"./SquadBase\";\nimport TransfersListTable from \"./TransfersListTable\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\ninterface IPropsFromState {\n transfersState: ITransferState | null;\n}\n\ninterface IPropsFromDispatch {\n fetchMyTeam: () => void;\n}\n\ntype Props = RouteComponentProps &\n IPropsFromState &\n IPropsFromDispatch &\n WithTranslation;\n\nclass Transfers extends React.Component {\n public componentDidMount() {\n this.props.fetchMyTeam();\n }\n\n public render() {\n // Don't render until we know what transfers staate we need to render ...\n if (!this.props.transfersState) {\n return null;\n }\n const scoreboard =\n this.props.transfersState.status === \"cost\" ? \"cost\" : \"basic\";\n const { t } = this.props;\n return (\n (\n \n )}\n scoreboard={scoreboard}\n submitDialog={(handleHide) => (\n \n )}\n title={t(\"transfers.title\", \"Transfers\")}\n />\n );\n }\n}\n\nexport { Transfers as TransfersTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n transfersState: getTransferState(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchMyTeam: () => dispatch(fetchMyTeam()),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(Transfers)\n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { updateElementControls } from \"../../core/store/elements/actions\";\nimport {\n getElementControls,\n getElementsFromControls,\n} from \"../../core/store/elements/reducers\";\nimport { updateElementControlsAndMaxCost } from \"../../core/store/elements/thunks\";\nimport {\n IElementControls,\n IElementDataFromControls,\n} from \"../../core/store/elements/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport ElementFilter from \"../element-controls/ElementFilter\";\nimport ElementSort from \"../element-controls/ElementSort\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport { ElementRow, ElementTable } from \"../ElementTable\";\nimport { FieldCol, FieldCols } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport ScoutNav from \"../scout/ScoutNav\";\nimport Title from \"../Title\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\n\nconst NewsStatus = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 6%;\n }\n`;\n\nconst NewsElement = styled.th`\n width: 39%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 38%;\n }\n`;\n\nconst NewsNews = styled.th`\n width: 51%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 56%;\n }\n`;\n\nconst NewsCell = styled.td`\n white-space: normal;\n`;\n\ninterface IState {\n page: number;\n}\n\ninterface IPropsFromState {\n elements: IElementDataFromControls;\n controls: IElementControls;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n updateControls: (controls: IElementControls) => void;\n updateControlsAndMaxCost: (controls: IElementControls) => void;\n}\n\ntype Props = RouteComponentProps &\n IPropsFromState &\n IPropsFromDispatch &\n WithTranslation;\n\nclass News extends React.Component {\n public handleFilterChange = (e: React.ChangeEvent) => {\n this.props.updateControls({\n ...this.props.controls,\n filter: e.target.value,\n });\n };\n\n public handleSortChange = (e: React.ChangeEvent) => {\n this.props.updateControls({\n ...this.props.controls,\n sort: e.target.value,\n });\n };\n\n public componentDidMount() {\n this.props.updateControlsAndMaxCost({\n ...this.props.controls,\n filter: \"all\",\n sort: \"news_added\",\n });\n }\n\n public render() {\n const { elements, t, teamsById } = this.props;\n return (\n <>\n \n \n \n \n \n \n
\n \n {t(\"news.title\", \"Player Availability\")}\n \n
\n \n \n \n \n \n \n \n \n
\n \n \n \n  \n {t(\"news.playerCol\", \"Player\")}\n {t(\"news.newsCol\", \"News\")}\n \n \n \n {elements.data\n .filter((e) => e.news)\n .map((e) => (\n \n \n \n \n \n {\n window.console.log(\"not needed\");\n }}\n element={e}\n team={teamsById[e.team]}\n />\n \n {e.news}\n \n ))}\n \n \n
\n
\n \n );\n }\n}\n\nexport { News as NewsTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n controls: getElementControls(state),\n elements: getElementsFromControls(state),\n teamsById: getTeamsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n updateControls: (controls) => dispatch(updateElementControls(controls)),\n updateControlsAndMaxCost: (controls) =>\n dispatch(updateElementControlsAndMaxCost(controls)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(News)\n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport { ellipsis } from \"polished\";\nimport React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { updateElementControls } from \"../../core/store/elements/actions\";\nimport {\n getElementControls,\n getElementsFromControls,\n} from \"../../core/store/elements/reducers\";\nimport {\n showElementSummary,\n updateElementControlsAndMaxCost,\n} from \"../../core/store/elements/thunks\";\nimport {\n IElement,\n IElementControls,\n IElementDataFromControls,\n} from \"../../core/store/elements/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport { getStatDetails } from \"../../utils/stats\";\nimport Alert from \"../Alert\";\nimport ElementFilter from \"../element-controls/ElementFilter\";\nimport ElementSort from \"../element-controls/ElementSort\";\nimport Paginator, { paginate } from \"../element-controls/Paginator\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementShirt from \"../ElementShirt\";\nimport { ElementRow, ElementTable } from \"../ElementTable\";\nimport { FieldCol, FieldCols } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Media from \"../Media\";\nimport Panel from \"../Panel\";\nimport { ScrollTable } from \"../Table\";\nimport Title from \"../Title\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\n\nconst StatsStatus = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 7%;\n }\n`;\n\nconst StatsElement = styled.th`\n width: 40%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 38%;\n }\n`;\n\nconst StatsCost = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsSel = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsForm = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsPts = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsExtra = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst ElementNameButton = styled.button`\n ${ellipsis()};\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.base};\n font-weight: bold;\n text-align: left;\n cursor: pointer;\n`;\n\nconst Name = styled.div`\n ${ellipsis()};\n font-weight: bold;\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst Team = styled.div`\n margin-right: ${({ theme }) => theme.space[2]};\n font-size: ${({ theme }) => theme.fontSizes[1]};\n font-weight: normal;\n`;\n\ninterface IState {\n page: number;\n}\n\ntype OwnProps = RouteComponentProps<{ statName?: string }>;\n\ninterface IPropsFromState {\n currencyDivisor: number;\n elements: IElementDataFromControls;\n controls: IElementControls;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n updateControls: (controls: IElementControls) => void;\n updateControlsAndMaxCost: (controls: IElementControls) => void;\n}\n\ntype Props = OwnProps & WithTranslation & IPropsFromState & IPropsFromDispatch;\n\nclass Statistics extends React.Component {\n public state: IState = { page: 1 };\n\n public handleFilterChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControls({\n ...this.props.controls,\n filter: e.target.value,\n });\n };\n\n public handleSortChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControls({\n ...this.props.controls,\n sort: e.target.value,\n });\n };\n\n public setPage = (page: number) => this.setState({ page });\n\n public defaultStats: Array = [\n \"now_cost\",\n \"selected_by_percent\",\n \"form\",\n \"total_points\",\n ];\n\n public componentDidMount() {\n this.props.updateControlsAndMaxCost({\n ...this.props.controls,\n filter: \"all\",\n sort: this.props.statName || \"total_points\",\n search: \"\",\n });\n }\n\n public render() {\n const {\n controls,\n currencyDivisor,\n elements,\n showElementDialog,\n teamsById,\n t,\n } = this.props;\n const { page } = this.state;\n const { data, totalPages } = paginate(elements.data, page, 30);\n const extraStat =\n this.defaultStats.indexOf(controls.sort) === -1 ? controls.sort : \"\";\n const statDetail = getStatDetails(String(controls.sort), this.props.t);\n\n return (\n \n
\n \n {t(\"statistics.title\", \"Statistics\")}\n \n
\n \n \n \n \n \n \n \n \n
\n \n \n {statDetail ? statDetail.description : \"\"}\n \n \n \n \n \n \n \n  \n \n {t(\"statistics.player\", \"Player\")}\n \n Mkr\n \n \n \n {t(\"statistics.selectedByShort\", \"Sel.\")}\n \n \n \n {t(\"statistics.form\", \"Form\")}\n \n \n \n {t(\"statistics.totalPointsShort\", \"TP.\")}\n \n \n \n {extraStat ? ** : null}\n \n \n \n {data.map((e) => (\n \n \n \n \n \n showElementDialog(e.id)}\n >\n }\n centred={true}\n >\n {e.web_name}\n {teamsById[e.team].short_name}\n \n \n \n {integerToMoney(e.now_cost, currencyDivisor)}\n {e.selected_by_percent}%\n {e.form}\n {e.total_points}\n {extraStat ? {e[extraStat]} : null}\n \n ))}\n \n \n \n \n \n
\n
\n );\n }\n}\n\nexport { Statistics as StatisticsTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n controls: getElementControls(state),\n currencyDivisor: 10,\n elements: getElementsFromControls(state),\n teamsById: getTeamsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n updateControls: (controls) => dispatch(updateElementControls(controls)),\n updateControlsAndMaxCost: (controls) =>\n dispatch(updateElementControlsAndMaxCost(controls)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(Statistics)\n);\n","import * as React from \"react\";\nimport styled from \"styled-components/macro\";\n\ninterface IStyledProps {\n ref?: any;\n}\n\ninterface IProps {\n children: React.ReactNode;\n onClick?: () => void;\n}\n\ntype Props = IStyledProps & IProps;\n\nconst StyledBoldLinkButton = styled.button`\n display: inline-flex;\n align-items: center;\n padding: 0;\n border: 0;\n background-color: transparent;\n color: ${({ theme }) => theme.colors.yellow};\n font-size: inherit;\n text-decoration: none;\n text-align: left;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nconst BoldLinkButton: React.ForwardRefExoticComponent = React.forwardRef(\n ({ children, ...rest }, ref) => (\n \n {children}\n \n )\n);\n\nexport default BoldLinkButton;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementStats } from \"../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../core/store/element-stats/types\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../../core/store/element-types/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport {\n IElement,\n IElementsById,\n IElementsEventDataById,\n} from \"../../core/store/elements/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport Table from \"../Table\";\n\nconst ScrollTable = styled.div`\n overflow-x: auto;\n width: 100%;\n`;\n\nconst StatsTable = styled(Table)`\n white-space: nowrap;\n`;\n\ninterface IDreamTeamRowProps {\n data: Record;\n element: IElement;\n elementTypesById: IElementTypesById;\n renderElementMenu: (index: number) => void;\n stats: ReadonlyArray;\n teamsById: ITeamsById;\n}\n\nconst DreamTeamRow: React.FC = ({\n data,\n element,\n renderElementMenu,\n stats,\n teamsById,\n}) => (\n \n \n \n \n \n renderElementMenu(element.id)}\n element={element}\n team={teamsById[element.team]}\n />\n \n {data.total_points}\n {stats.map((s) => (\n {data[s.name]}\n ))}\n \n);\n\ninterface IOwnProps {\n dataById: IElementsEventDataById;\n elements: number[];\n renderElementMenu: (index: number) => void;\n}\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n elementTypesById: IElementTypesById;\n stats: ReadonlyArray;\n teamsById: ITeamsById;\n}\n\ntype Props = IOwnProps & IPropsFromState;\n\nconst DreamTeamTable: React.FC = ({\n dataById,\n elements,\n elementsById,\n stats,\n ...rest\n}) => {\n return (\n \n \n \n \n  \n Player\n TP\n {stats.map((s) => (\n \n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n \n ))}\n \n \n \n {elements.map((e) => (\n \n ))}\n \n \n \n );\n};\n\nexport { DreamTeamTable as DreamTeamTableTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n return {\n elementsById: getElementsById(state),\n elementTypesById: getElementTypesById(state),\n stats: getElementStats(state),\n teamsById: getTeamsById(state),\n };\n};\n\nexport default connect(mapStateToProps)(DreamTeamTable);\n","var _g, _g2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgCaptain(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"32px\",\n height: \"32px\",\n viewBox: \"0 0 32 32\",\n style: {\n enableBackground: \"new 0 0 32 32\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon_circle\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: 16\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"symbol_K\",\n fill: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.5,7.4h3.7v7.4l6.9-7.4h4.5l-6.9,7.2l7.2,9.8h-4.5l-5.3-7.2l-2,2v5.2H9.5V7.4z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaptain);\nexport default __webpack_public_path__ + \"static/media/captain.5e64dca7.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgViceCaptain(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Element Icon vice captain\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon_circle\",\n \"data-name\": \"icon circle\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: 16\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n id: \"symbol_vice\",\n \"data-name\": \"symbol vice\",\n fill: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25,8.5l-6.1,16H13.2L7,8.5h4.2L16,21.4,20.8,8.5H25Z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgViceCaptain);\nexport default __webpack_public_path__ + \"static/media/vice-captain.0c8a5676.svg\";\nexport { ForwardRef as ReactComponent };","var _g, _g2;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgX2(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n \"data-name\": \"Layer 1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"icon_circle\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: 16\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"currentColor\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5,16.7l-3.4-5h3.1l1.9,3l1.9-3h3l-3.4,5l3.6,5.2H12L10,18.7l-2.1,3.2h-3L8.5,16.7z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.5,19.6l4.4-3.6c1.7-1.4,2.3-2.1,2.3-3.2c0-1.1-0.7-1.7-1.8-1.7c-1,0-1.7,0.6-2.7,1.8l-2.1-1.7c1.3-1.8,2.6-2.8,5-2.8 c2.8,0,4.6,1.6,4.6,4.1v0c0,2.2-1.1,3.3-3.5,5.1l-2.2,1.7h5.8v2.5h-9.8V19.6z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgX2);\nexport default __webpack_public_path__ + \"static/media/x2.b18573cb.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDreamteam(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n fill: \"#12326E\",\n stroke: \"white\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 3L11.5716 7.83688H16.6574L12.5429 10.8262L14.1145 15.6631L10 12.6738L5.8855 15.6631L7.4571 10.8262L3.3426 7.83688H8.4284L10 3Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDreamteam);\nexport default __webpack_public_path__ + \"static/media/dreamteam.bb462050.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { ReactComponent as Captain } from \"../../img/icons/captain.svg\";\nimport { ReactComponent as ViceCaptain } from \"../../img/icons/vice-captain.svg\";\nimport { ReactComponent as x2 } from \"../../img/icons/x2.svg\";\n\nconst StyledCaptain = styled(Captain)`\n ${size(14)};\n color: white;\n\n ${(props) =>\n props.variant === \"2capt\" &&\n css`\n color: black;\n fill: #fac101;\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\nconst StyledViceCaptain = styled(ViceCaptain)`\n ${size(14)};\n color: white;\n\n ${(props) =>\n props.variant === \"2capt\" &&\n css`\n color: black;\n fill: #fac101;\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\nconst StyledX2 = styled(x2)`\n ${size(14)};\n color: #fac101;\n fill: #28aae1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n settings: ISettings | null;\n}\n\ninterface IOwnProps {\n chipName: string | null;\n pick: IPickLight;\n}\n\ninterface IStyledCaptainProps {\n variant?: string;\n}\n\ntype Props = IPropsFromState & IOwnProps & IStyledCaptainProps;\n\nconst TeamElementIcon: React.FC = ({\n chipName,\n elementsById,\n pick,\n settings,\n}) => {\n if (settings && pick.position > settings.squad_squadplay) return null;\n\n if (!chipName || chipName === \"wildcard\" || chipName === \"uteam\") {\n if (pick.is_captain) return ;\n if (pick.is_vice_captain) return ;\n }\n\n if (chipName === \"2capt\") {\n if (pick.is_captain) return ;\n if (pick.is_vice_captain) return ;\n }\n\n const element = elementsById[pick.element];\n\n if (chipName === \"pdbus\" && element.element_type === 2) {\n return ;\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementsById: getElementsById(state),\n settings: getSettings(state),\n});\n\nexport default connect(mapStateToProps)(TeamElementIcon);\n","import { size } from \"polished\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { ReactComponent as Sub } from \"../../img/icons/sub.svg\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementShirt from \"../ElementShirt\";\nimport {\n Controls,\n InfoControl,\n PitchElementWrap,\n PrimaryControl,\n StyledPitchElement,\n} from \"../Pitch\";\nimport PitchElementData from \"../PitchElementData\";\nimport { UnstyledButton } from \"../Utils\";\nimport TeamElementIcon from \"./TeamElementIcon\";\n\nconst StyledSub = styled(Sub)`\n ${size(14)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\nconst ElementIconWrap = styled.span`\n position: absolute;\n top: 22%;\n right: 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n right: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n right: 20px;\n }\n`;\n\nconst DreamTeamWrap = styled.div`\n position: absolute;\n top: 44%;\n right: 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n right: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n right: 20px;\n }\n`;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n settings: ISettings | null;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n}\n\ninterface IOwnProps {\n actionMe: () => void;\n chipName: string | null;\n pick: IPickLight;\n renderDreamTeam: (pick: IPickLight) => React.ReactNode;\n renderElementMenu: () => void;\n renderPickValue: (pick: IPickLight) => React.ReactNode;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & IOwnProps;\n\nconst TeamPitchElement: React.FC = ({\n actionMe,\n chipName,\n pick,\n elementsById,\n renderElementMenu,\n renderPickValue,\n renderDreamTeam,\n settings,\n}) => {\n if (!settings) return null;\n\n const element = elementsById[pick.element];\n\n return (\n \n \n \n \n \n \n \n {actionMe && typeof pick.subStatus !== \"undefined\" && (\n \n \n \n \n \n )}\n \n \n \n \n\n \n \n \n\n {renderDreamTeam(pick)}\n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementsById: getElementsById(state),\n settings: getSettings(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TeamPitchElement);\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { actionSubstitution } from \"../../core/store/my-team/thunks\";\nimport Pitch, { PitchRow, PitchUnit } from \"../Pitch\";\nimport TeamPitchElement from \"./TeamPitchElement\";\nimport { IPickLight } from \"../../core/store/entries/types\";\n\ninterface IFormationProps {\n generateProps: (i: number) => {\n actionMe: () => void;\n chipName: string | null;\n pick: IPickLight;\n renderDreamTeam: (pick: IPickLight) => React.ReactNode;\n renderElementMenu: () => void;\n renderPickValue: (pick: IPickLight) => React.ReactNode;\n };\n}\n\nconst FiveFourOne: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FiveThreeTwo: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FiveTwoThree: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FourFiveOne: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FourThreeThree: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst FourFourTwo: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst ThreeFourThree: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nconst ThreeFiveTwo: React.FC = ({ generateProps }) => (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\ninterface IPropsFromDispatch {\n substitute: (elementId: number) => void;\n}\n\ninterface IProps {\n chipName: string | null;\n formation: string;\n picks: IPickLight[];\n renderDreamTeam: (pick: IPickLight) => React.ReactNode;\n renderElementMenu: (element: number) => void;\n renderPickValue: (pick: IPickLight) => React.ReactNode;\n}\n\ntype Props = IPropsFromDispatch & IProps;\n\ninterface IFormations {\n [key: string]: React.ReactNode;\n}\n\nconst PitchFormation: React.FC = ({\n chipName,\n formation,\n substitute,\n picks,\n renderDreamTeam,\n renderElementMenu,\n renderPickValue,\n}) => {\n const sharedTeamPitchElementProps = (i: number) => ({\n actionMe: () => substitute(picks[i].element),\n chipName,\n pick: picks[i],\n renderDreamTeam,\n renderElementMenu: () => renderElementMenu(picks[i].element),\n renderPickValue,\n });\n const formations: IFormations = {\n \"1-5-4-1\": ,\n \"1-5-3-2\": ,\n \"1-5-2-3\": ,\n \"1-4-5-1\": ,\n \"1-4-4-2\": ,\n \"1-4-3-3\": ,\n \"1-3-5-2\": ,\n \"1-3-4-3\": ,\n };\n return {formations[formation]};\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n substitute: (elementId) => dispatch(actionSubstitution(elementId)),\n});\n\nexport default connect(null, mapDispatchToProps)(PitchFormation);\n","import { RouteComponentProps } from \"@reach/router\";\nimport * as React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n dreamTeamAsPickLight,\n getEventDreamTeam,\n getEventDreamTeamFormation,\n getOverallDreamTeam,\n getOverallDreamTeamFormation,\n} from \"../../core/store/dream-teams/reducers\";\nimport {\n fetchEventDreamTeam,\n fetchOverallDreamTeam,\n} from \"../../core/store/dream-teams/thunks\";\nimport { IDreamTeamData } from \"../../core/store/dream-teams/types\";\nimport {\n getElementsById,\n getElementsEventDataById,\n} from \"../../core/store/elements/reducers\";\nimport {\n fetchEventLive,\n showElementSummary,\n} from \"../../core/store/elements/thunks\";\nimport {\n IElementsById,\n IElementsEventDataById,\n} from \"../../core/store/elements/types\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport {\n getCurrentEvent,\n getEventsById,\n} from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getFixturesForEventById } from \"../../core/store/fixtures/reducers\";\nimport { IFixture } from \"../../core/store/fixtures/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport BoldLink from \"../BoldLink\";\nimport BoldLinkButton from \"../BoldLinkButton\";\nimport ButtonLink from \"../ButtonLink\";\nimport ElementShirt from \"../ElementShirt\";\nimport Fixtures from \"../Fixtures\";\nimport { ControlArrowLeft, ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Media from \"../Media\";\nimport {\n EventPager,\n PagerButton,\n PagerButtonNext,\n PagerHeading,\n} from \"../Pager\";\nimport { NotFound } from \"../Routes\";\nimport SubHeading from \"../SubHeading\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport Title from \"../Title\";\nimport DreamTeamTable from \"./DreamTeamTable\";\nimport ElementExplainDialog from \"./ElementExplainDialog\";\nimport PitchFormation from \"./PitchFormation\";\nimport valueForPlayerElement from \"./valueForPlayedElement\";\n\nconst StyledPitchWrapper = styled(Box)`\n padding-top: ${({ theme }) => theme.space[4]};\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nconst DTScoreboard = styled.div`\n display: flex;\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nconst DTScoreboardPanel = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-evenly;\n align-items: center;\n gap: ${({ theme }) => theme.space[1]};\n margin: ${({ theme }) => theme.space[2]};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n gap: ${({ theme }) => theme.space[3]};\n padding: ${({ theme }) => theme.space[3]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n gap: ${({ theme }) => theme.space[2]};\n padding-bottom: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst DTScoreboardHeading = styled.h3`\n margin: 0;\n font-size: ${({ theme }) => theme.fontSizes[4]};\n`;\n\nconst DTScoreboardValue = styled.div`\n font-size: 4rem;\n`;\n\nconst TopPlayer = styled.div`\n display: inline-block;\n border-radius: ${({ theme }) => theme.space[1]};\n padding: ${({ theme }) => theme.space[1]} ${({ theme }) => theme.space[2]} 0;\n background-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst TopPlayerData = styled.div`\n text-align: left;\n`;\n\ntype OwnProps = RouteComponentProps<{ eventId?: string }>;\n\ninterface IPropsFromState {\n data: IDreamTeamData | null;\n elementsById: IElementsById;\n elementsDataById: IElementsEventDataById;\n fixturesById: Record | null;\n event: IEvent | undefined;\n formation: string;\n now: IEvent | null;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n fetchEventLive: (entryId: number) => void;\n fetchEventDreamTeam: (eventId: number) => void;\n fetchOverallDreamTeam: () => void;\n showElementDialog: (elementId: number) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\ninterface IState {\n elementForMenu: number;\n}\n\nclass DreamTeam extends React.Component {\n public state: IState = {\n elementForMenu: 0,\n };\n\n public handleShowMenuForElement = (element: number) => {\n this.setState({ elementForMenu: element });\n };\n\n public handleHideMenuForElement = () => {\n this.setState({ elementForMenu: 0 });\n };\n\n public fetchData() {\n if (this.props.event) {\n this.props.fetchEventDreamTeam(this.props.event.id);\n this.props.fetchEventLive(this.props.event.id);\n } else {\n this.props.fetchOverallDreamTeam();\n }\n }\n\n public componentDidMount() {\n this.fetchData();\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (prevProps.event !== this.props.event) {\n this.fetchData();\n }\n }\n\n public render() {\n const {\n data,\n elementsById,\n elementsDataById,\n event,\n fixturesById,\n formation,\n now,\n showElementDialog,\n t,\n teamsById,\n } = this.props;\n if (!now) {\n return ;\n }\n if (!data) {\n return null;\n }\n const picks = dreamTeamAsPickLight(data.team);\n const topPlayer = elementsById[data.top_player.id];\n\n // For the overall team we just show the standard element dialog as there\n // is no explain\n if (this.state.elementForMenu && !event) {\n showElementDialog(this.state.elementForMenu);\n }\n\n // Create a new function on each render as data could have changed and\n // need to ensure a render of connected subcomponents\n const renderPickValue = event\n ? valueForPlayerElement({\n elementsById,\n elementsDataById,\n fixturesById,\n teamsById,\n })\n : (pick: IPickLight) => {\n const elementData = data.team.filter(\n (e) => e.element === pick.element\n );\n return elementData.length ? elementData[0].points : null;\n };\n return (\n \n
\n \n {t(\"dreamTeam.dt\", \"Dream Team\")}\n \n {/* ROUND PAGER */}\n {event ? (\n \n {event.name}\n {(event.id > 1 || event.id < now.id) && (\n \n {event.id > 1 && (\n \n \n \n {t(\"dreamTeam.prev\", \"Previous\")}\n \n \n )}\n {event.id < now.id && (\n \n \n {t(\"dreamTeam.next\", \"Next\")}\n \n \n \n )}\n \n )}\n \n ) : (\n \n {t(\"dreamTeam.overall\", \"Overall\")}\n \n )}\n {/* SCOREBOARD */}\n\n \n \n \n \n {t(\"dreamTeam.topPlayer\", \"Top Player\")}\n \n \n showElementDialog(topPlayer.id)}\n >\n {topPlayer.web_name}\n \n \n \n \n \n \n }\n centred={true}\n >\n \n
{teamsById[topPlayer.team].short_name}
\n
\n {data.top_player.points}{\" \"}\n {t(\"dreamTeam.points\", \"Points\")}\n
\n
\n \n
\n
\n
\n \n \n {t(\"dreamTeam.totalPoints\", \"Total Points\")}\n \n \n {data.team.reduce((total, e) => total + e.points, 0)}\n \n {event ? (\n \n {t(\"dreamTeam.overall\", \"Overall\")}\n \n ) : (\n \n {t(\"dreamTeam.round\", \"Round\")}\n \n )}\n \n
\n
\n {/* TEAM */}\n \n \n \n \n \n null}\n renderElementMenu={this.handleShowMenuForElement}\n renderPickValue={renderPickValue}\n />\n \n \n \n \n e.element)}\n renderElementMenu={this.handleShowMenuForElement}\n dataById={elementsDataById}\n />\n \n \n \n \n \n {event && this.state.elementForMenu ? (\n \n ) : null}\n {event && }\n
\n \n  \n \n
\n );\n }\n}\nexport { DreamTeam as DreamTeamTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n const eventId = Number(ownProps.eventId) || 0;\n return {\n data: eventId\n ? getEventDreamTeam(state, eventId)\n : getOverallDreamTeam(state),\n elementsById: getElementsById(state),\n elementsDataById: getElementsEventDataById(state, eventId),\n event: getEventsById(state)[eventId],\n fixturesById: getFixturesForEventById(state, eventId),\n formation: eventId\n ? getEventDreamTeamFormation(state, eventId)\n : getOverallDreamTeamFormation(state),\n now: getCurrentEvent(state),\n teamsById: getTeamsById(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEventLive: (eventId) => dispatch(fetchEventLive(eventId)),\n fetchEventDreamTeam: (eventId) => dispatch(fetchEventDreamTeam(eventId)),\n fetchOverallDreamTeam: () => dispatch(fetchOverallDreamTeam()),\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(DreamTeam)\n);\n","var _polygon, _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgReload(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Non_mover\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n width: \"16px\",\n height: \"16px\",\n viewBox: \"0 0 16 16\",\n enableBackground: \"new 0 0 16 16\",\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Reload\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"7,16 11,16 16,11 11,6 7,6 12,11 \"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.3,0L16,0v3H6.3C4.5,3,3,4.5,3,6.2s1.5,3.2,3.3,3.2h7.2v3H6.3C2.9,12.4,0,9.6,0,6.2S2.8,0,6.3,0z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgReload);\nexport default __webpack_public_path__ + \"static/media/reload.0ae64c38.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as BaseDreamTeam } from \"../../img/icons/dreamteam.svg\";\n\nconst DreamTeam = styled(BaseDreamTeam)`\n ${size(14)};\n color: white;\n fill: #005baa;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n }\n`;\n\nexport default DreamTeam;\n","import styled from \"styled-components/macro\";\n\nconst Bench = styled.div`\n background-image: linear-gradient(\n ${({ theme }) => theme.colors.greyLight} 50%,\n ${({ theme }) => theme.colors.grey} 50%\n );\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-bottom-left-radius: ${({ theme }) => theme.radii[2]};\n border-bottom-right-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nexport default Bench;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { actionSubstitution } from \"../../core/store/my-team/thunks\";\nimport TeamPitchElement from \"./TeamPitchElement\";\n\nconst StyledBenchUnit = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n padding-top: ${({ theme }) => theme.space[1]};\n`;\n\nconst BenchUnitHeading = styled.h3`\n order: 2;\n margin: 0.2rem 0;\n color: #61605c;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: ${({ theme }) => theme.fontSizes[3]};\n }\n`;\n\ninterface IPropsFromDispatch {\n substitute: (elementId: number) => void;\n}\n\ninterface IProps {\n chipName: string | null;\n heading: React.ReactNode;\n pick: IPickLight;\n renderDreamTeam: (pick: IPickLight) => React.ReactNode;\n renderElementMenu: (pick: IPickLight) => void;\n renderPickValue: (element: IPickLight) => React.ReactNode;\n substitute: (elementId: number) => void;\n}\n\ntype Props = IPropsFromDispatch & IProps;\n\nconst BenchUnit: React.FC = ({\n chipName,\n heading,\n pick,\n renderDreamTeam,\n renderElementMenu,\n renderPickValue,\n substitute,\n}) => (\n \n {heading}\n substitute(pick.element)}\n chipName={chipName}\n pick={pick}\n renderDreamTeam={renderDreamTeam}\n renderElementMenu={() => renderElementMenu(pick)}\n renderPickValue={renderPickValue}\n />\n \n);\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n substitute: (elementId) => dispatch(actionSubstitution(elementId)),\n});\n\nexport default connect(null, mapDispatchToProps)(BenchUnit);\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementStats } from \"../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../core/store/element-stats/types\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../../core/store/element-types/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport {\n IElement,\n IElementEventStats,\n IElementsById,\n IElementsEventDataById,\n} from \"../../core/store/elements/types\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport { ElementRow } from \"../ElementTable\";\nimport Table from \"../Table\";\nimport TeamElementIcon from \"./TeamElementIcon\";\n\nconst ScrollTable = styled.div`\n overflow-x: auto;\n width: 100%;\n`;\n\nconst StatsTable = styled(Table)`\n white-space: nowrap;\n`;\n\ninterface IEntryEventRowProps {\n chipName: string | null;\n data: IElementEventStats;\n pick: IPickLight;\n element: IElement;\n elementTypesById: IElementTypesById;\n renderElementMenu: (index: number) => void;\n stats: ReadonlyArray;\n teamsById: ITeamsById;\n}\n\nconst EntryEventRow: React.FC = ({\n chipName,\n data,\n pick,\n element,\n renderElementMenu,\n stats,\n teamsById,\n}) => (\n \n \n \n \n \n \n \n \n renderElementMenu(pick.element)}\n element={element}\n team={teamsById[element.team]}\n />\n \n {data.total_points * Math.max(pick.multiplier, 1)}\n {stats.map((s) => (\n {data[s.name]}\n ))}\n \n);\n\ninterface IOwnProps {\n chipName: string | null;\n dataById: IElementsEventDataById | null;\n picks: IPickLight[];\n renderElementMenu: (index: number) => void;\n title: string;\n}\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n elementTypesById: IElementTypesById;\n stats: ReadonlyArray;\n teamsById: ITeamsById;\n}\n\ntype Props = IOwnProps & IPropsFromState;\n\nconst EntryEventTable: React.FC = ({\n dataById,\n elementsById,\n picks,\n stats,\n title,\n ...rest\n}) => {\n if (!dataById) {\n return null;\n }\n return (\n \n \n \n \n  \n  \n {title}\n TP\n {stats.map((s) => (\n \n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n \n ))}\n \n \n \n {picks.map((p) => (\n \n ))}\n \n \n \n );\n};\n\nexport { EntryEventTable as EntryEventTableTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n return {\n elementsById: getElementsById(state),\n elementTypesById: getElementTypesById(state),\n stats: getElementStats(state),\n teamsById: getTeamsById(state),\n };\n};\n\nexport default connect(mapStateToProps)(EntryEventTable);\n","import { Link as ReachLink, RouteComponentProps } from \"@reach/router\";\nimport range from \"lodash/range\";\nimport { hideVisually, size } from \"polished\";\nimport * as React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getElementsById,\n getElementsEventDataById,\n} from \"../../core/store/elements/reducers\";\nimport { fetchEventLive } from \"../../core/store/elements/thunks\";\nimport {\n IElementsById,\n IElementsEventDataById,\n} from \"../../core/store/elements/types\";\nimport {\n getEntry,\n getEntryEventFormation,\n getEntryEventPicks,\n getEntryEventPoints,\n} from \"../../core/store/entries/reducers\";\nimport {\n fetchEntryEventPicks,\n fetchEntrySummary,\n} from \"../../core/store/entries/thunks\";\nimport {\n IEntry,\n IEntryEvent,\n IPickLight,\n} from \"../../core/store/entries/types\";\nimport {\n getCurrentEvent,\n getEventsById,\n} from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getFixturesForEventById } from \"../../core/store/fixtures/reducers\";\nimport { fetchFixtures } from \"../../core/store/fixtures/thunks\";\nimport { IFixture } from \"../../core/store/fixtures/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { IPlayer } from \"../../core/store/player/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { ReactComponent as BaseDreamTeam } from \"../../img/icons/dreamteam.svg\";\nimport { ReactComponent as BaseReload } from \"../../img/icons/reload.svg\";\nimport { ChipName, getChipName } from \"../../utils/chips\";\nimport ButtonLink from \"../ButtonLink\";\nimport Entry from \"../Entry\";\nimport Fixtures from \"../Fixtures\";\nimport { ControlArrowLeft, ControlArrowRight } from \"../icons/Arrows\";\nimport DreamTeam from \"../icons/DreamTeam\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Link from \"../Link\";\nimport {\n EventPager,\n PagerButton,\n PagerButtonNext,\n PagerHeading,\n} from \"../Pager\";\nimport Panel from \"../Panel\";\nimport { ElementRow } from \"../Pitch\";\nimport { NotFound } from \"../Routes\";\nimport Table, { THeadRadius } from \"../Table\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport Title from \"../Title\";\nimport Bench from \"./Bench\";\nimport BenchUnit from \"./BenchUnit\";\nimport ElementExplainDialog from \"./ElementExplainDialog\";\nimport EntryEventTable from \"./EntryEventTable\";\nimport PitchFormation from \"./PitchFormation\";\nimport valueForPlayerElement from \"./valueForPlayedElement\";\n\nconst StyledPitchWrapper = styled(Box)`\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nconst PointsScoreboard = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.space[2]};\n padding: ${({ theme }) => theme.space[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n position: relative;\n align-items: flex-start;\n padding-bottom: 4rem;\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nconst ScoreboardPrimary = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n flex: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex-basis: 25%;\n }\n`;\n\ninterface IPrimaryPanelProps {\n chipPlayed?: boolean;\n}\n\nconst PrimaryPanel = styled.div`\n padding-top: 4rem;\n padding-right: ${({ theme }) => theme.space[2]};\n padding-bottom: 4.3rem;\n padding-left: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n text-align: center;\n\n ${(props) =>\n props.chipPlayed &&\n css`\n padding-top: 2rem;\n padding-bottom: 1.8rem;\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding: 1.2rem 0;\n }\n`;\n\nconst PrimaryHeading = styled.h4`\n font-size: ${({ theme }) => theme.fontSizes[4]};\n margin: ${({ theme }) => theme.space[2]} 0;\n`;\n\nconst PrimaryValue = styled.div`\n position: relative;\n font-size: 4rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-bottom: 0.3rem;\n }\n`;\n\nconst ReloadButton = styled.button`\n position: absolute;\n top: 50%;\n left: -${({ theme }) => theme.space[2]};\n transform: translateY(-50%);\n padding: ${({ theme }) => theme.space[1]};\n border: 0;\n background-color: ${({ theme }) => theme.colors.primary};\n line-height: 1;\n cursor: pointer;\n`;\n\nconst Reload = styled(BaseReload)`\n fill: white;\n`;\n\nconst ReloadButtonText = styled.span`\n ${hideVisually()}\n`;\n\nconst ScoreboardSecondary = styled.div`\n flex: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n align-items: flex-start;\n flex-basis: 75%;\n }\n`;\n\nconst SecondaryPanel = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.space[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n :not(:last-child) {\n margin-bottom: ${({ theme }) => theme.space[2]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex: 1;\n\n :not(:last-child) {\n margin-right: ${({ theme }) => theme.space[2]};\n }\n }\n`;\n\nconst SecondaryItem = styled.div`\n display: flex;\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n }\n`;\n\nconst SecondaryHeading = styled.h4`\n flex: 1 0 60%;\n margin-top: 1.7rem;\n padding-left: ${({ theme }) => theme.space[2]};\n margin-bottom: 1.7rem;\n`;\n\nconst SecondaryValue = styled.div`\n flex: 1 0 40%;\n margin-top: 1.7rem;\n margin-bottom: 1.7rem;\n padding-right: ${({ theme }) => theme.space[2]};\n font-weight: bold;\n text-align: right;\n`;\n\nconst DreamTeamLinkIcon = styled(BaseDreamTeam)`\n ${size(16)}\n margin-right: ${({ theme }) => theme.space[1]};\n color: white;\n fill: #005baa;\n`;\n\nconst DreamTeamLink = styled(ReachLink)`\n display: flex;\n align-items: center;\n justify-content: space-around;\n border: ${({ theme }) => theme.borders[0]};\n border-radius: ${({ theme }) => theme.radii[1]};\n padding: 0.8rem;\n background-color: white;\n color: ${({ theme }) => theme.colors.black};\n text-decoration: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n position: absolute;\n right: ${({ theme }) => theme.space[2]};\n bottom: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst ChipStatus = styled.div`\n margin-top: ${({ theme }) => theme.space[1]};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[2]};\n background-color: ${({ theme }) => theme.colors.success};\n color: ${({ theme }) => theme.colors.black};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n font-weight: bold;\n text-align: center;\n`;\n\ntype OwnProps = RouteComponentProps<{ entryId: string; eventId: string }> &\n WithTranslation;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n elementsDataById: IElementsEventDataById;\n entry: IEntry | null;\n entryData: IEntryEvent | null;\n event: IEvent | null;\n fixturesById: Record | null;\n formation: string;\n mine: boolean;\n now: IEvent | null;\n points: number;\n settings: ISettings;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n fetchEntryEventPicks: (entryId: number, eventId: number) => void;\n fetchEntrySummary: (entryId: number) => void;\n fetchEventLive: (entryId: number) => void;\n fetchFixturesForEvent: (eventId: number) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n pickForMenu: IPickLight | null;\n}\n\nclass EntryEvent extends React.Component {\n public state: IState = {\n pickForMenu: null,\n };\n\n public handleShowMenuForPickElement = (element: number) => {\n const matches = this.props.entryData!.picks.filter(\n (p) => p.element === element\n );\n if (matches.length) {\n this.setState({ pickForMenu: matches[0] });\n }\n };\n\n public handleHideMenuForPick = () => {\n this.setState({ pickForMenu: null });\n };\n\n public renderDreamTeam = (pick: IPickLight) =>\n this.props.elementsDataById &&\n this.props.elementsDataById[pick.element] &&\n this.props.elementsDataById[pick.element].stats.in_dreamteam ? (\n \n \n \n ) : null;\n\n public fetchDataAndFixtures = () => {\n this.fetchData();\n this.props.fetchFixturesForEvent(Number(this.props.eventId));\n };\n\n public fetchData = () => {\n this.props.fetchEntrySummary(Number(this.props.entryId));\n this.props.fetchEntryEventPicks(\n Number(this.props.entryId),\n Number(this.props.eventId)\n );\n this.props.fetchEventLive(Number(this.props.eventId));\n };\n\n public componentDidMount() {\n this.fetchData();\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (\n prevProps.eventId !== this.props.eventId ||\n prevProps.entryId !== this.props.entryId\n ) {\n this.fetchData();\n }\n }\n public render() {\n const {\n elementsById,\n elementsDataById,\n entry,\n entryData,\n event,\n fixturesById,\n formation,\n mine,\n now,\n points,\n settings,\n t,\n teamsById,\n } = this.props;\n // Handle unknown and unstarted events\n if (!now || !event || event.id > now.id) {\n return ;\n }\n if (!entry || !entryData) {\n return null;\n }\n\n const chipName = entryData.active_chip\n ? getChipName(entryData.active_chip as ChipName, t)\n : \"\";\n\n // Create a new function on each render as data could have changed and\n // need to ensure a render of connected subcomponents\n const renderPickValue = valueForPlayerElement({\n elementsById,\n elementsDataById,\n fixturesById,\n teamsById,\n });\n const benchHeading: Record = {\n 11: (\n \n {t(\"entryEvent.goalkeeper.abbr\", \"GK\")}\n \n ),\n 12: \"1\",\n 13: \"2\",\n 14: \"3\",\n };\n\n // Handle events before the entry started\n return (\n \n
\n \n \n {t(\"entryEvent.title\", \"Points\")} - {entry.name}\n \n \n {/* ROUND PAGER */}\n \n \n {event.name}\n \n {(event.id > entry.started_event || event.id < now.id) && (\n \n {event.id > entry.started_event && (\n \n \n \n {t(\"entryEvent.prev\", \"Previous\")}\n \n \n )}\n {event.id < now.id && (\n \n \n {t(\"entryEvent.next\", \"Next\")}\n \n \n \n )}\n {/* Also need to check isn't last event */}\n {mine && event.id === now.id && (\n \n \n {t(\"entryEvent.next\", \"Next\")}\n \n \n \n )}\n \n )}\n \n {/* SCOREBOARD */}\n \n \n \n \n \n \n {event.finished\n ? t(\"entryEvent.finalPoints\", \"Final Points\")\n : t(\"entryEvent.latestPoints\", \"Latest Points\")}\n \n \n {points}\n {!event.finished && (\n \n \n {t(\"entryEvent.reload\", \"Reload Points\")}\n \n \n \n )}\n \n \n {chipName && (\n \n {t(\n \"entryEvent.ChipStatus.played\",\n \"{{ chipName }} played\",\n {\n chipName: chipName,\n }\n )}\n \n )}\n \n
\n \n \n {t(\"entryEvent.dreamTeam\", \"Dream Team\")}\n \n \n
\n
\n \n \n \n \n {t(\"entryEvent.average\", \"Average Pts\")}\n \n \n {event.average_entry_score || \"-\"}\n \n \n \n \n {t(\"entryEvent.highest\", \"Highest Pts\")}\n \n \n {event.highest_scoring_entry ? (\n \n {event.highest_score || \"???\"}\n \n ) : (\n \"-\"\n )}\n \n \n \n \n \n \n {t(\"entryEvent.rank\", \"RD Rank\")}\n \n \n {entryData.entry_history.rank\n ? entryData.entry_history.rank.toLocaleString()\n : \"-\"}\n \n \n \n \n {t(\"entryEvent.transfers\", \"Transfers\")}\n \n \n \n {entryData.entry_history.event_transfers}\n {\" \"}\n {entryData.entry_history.event_transfers_cost\n ? `(-${entryData.entry_history.event_transfers_cost} pts)`\n : \"\"}\n \n \n \n \n
\n
\n {/* TEAM */}\n \n \n \n \n \n \n \n \n \n {range(\n settings.squad_squadplay,\n settings.squad_squadsize\n ).map((i) => (\n \n this.handleShowMenuForPickElement(\n entryData.picks[i].element\n )\n }\n renderPickValue={renderPickValue}\n />\n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {entryData.automatic_subs.length > 0 && (\n <>\n \n \n {t(\"entryEvent.autoSubs.title\", \"Automatic Substitutions\")}\n \n \n \n \n \n \n \n \n \n \n \n \n {entryData.automatic_subs.map((s) => (\n \n \n \n \n ))}\n \n
\n {t(\"entryEvent.autoSubs.playerOut\", \"Player out\")}\n \n {t(\"entryEvent.autoSubs.playerIn\", \"Player in\")}\n
{elementsById[s.element_out].web_name}{elementsById[s.element_in].web_name}
\n
\n
\n \n )}\n {this.state.pickForMenu && (\n \n )}\n \n
\n \n \n \n
\n );\n }\n}\nexport { EntryEvent as EntryEventTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n const entryId = Number(ownProps.entryId);\n const eventId = Number(ownProps.eventId);\n const player = getPlayerData(state) as IPlayer;\n return {\n elementsById: getElementsById(state),\n elementsDataById: getElementsEventDataById(state, eventId),\n entry: getEntry(state, entryId),\n event: getEventsById(state)[eventId],\n now: getCurrentEvent(state),\n entryData: getEntryEventPicks(state, entryId, eventId),\n fixturesById: getFixturesForEventById(state, eventId),\n formation: getEntryEventFormation(state, entryId, eventId),\n points: getEntryEventPoints(state, entryId, eventId),\n settings: getSettings(state) as ISettings,\n teamsById: getTeamsById(state),\n mine: Boolean(player && player.entry && player.entry === entryId),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntryEventPicks: (entryId, eventId) =>\n dispatch(fetchEntryEventPicks(entryId, eventId)),\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n fetchEventLive: (eventId) => dispatch(fetchEventLive(eventId)),\n fetchFixturesForEvent: (eventId) => dispatch(fetchFixtures(eventId)),\n});\n\n// Have to split declarations due to TS error - https://github.com/DefinitelyTyped/DefinitelyTyped/issues/50211\nconst connected = connect(\n mapStateToProps,\n mapDispatchToProps\n)(withTranslation()(EntryEvent));\nconst translated = withTranslation()(connected);\n\nexport default translated;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getActiveOrProposedTeamChipName } from \"../../core/store/chips/reducers\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../../core/store/element-types/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElement, IElementsById } from \"../../core/store/elements/types\";\nimport { getFixturesForNextEventByTeam } from \"../../core/store/fixtures/reducers\";\nimport { IFixturesForEventByTeam } from \"../../core/store/fixtures/types\";\nimport { IPickProposed } from \"../../core/store/my-team/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport { ElementCell, ElementRow, ElementTable } from \"../ElementTable\";\nimport { FixturesForElement } from \"../FixtureForElement\";\nimport { ScrollTable } from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport TeamElementIcon from \"./TeamElementIcon\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\nconst MyTeamStatus = styled.th`\n width: 6%;\n`;\n\nconst MyTeamCpt = styled.th`\n width: 4%;\n`;\n\nconst MyTeamElement = styled.th`\n width: 32%;\n`;\n\nconst MyTeamPos = styled.th`\n width: 12%;\n`;\n\nconst MyTeamForm = styled.th`\n width: 10%;\n`;\n\nconst MyTeamRD = styled.th`\n width: 10%;\n`;\n\nconst MyTeamPts = styled.th`\n width: 12%;\n`;\n\nconst MyTeamFix = styled.th`\n width: 14%;\n`;\n\ninterface IMyTeamRowProps {\n chipInPlayName: string | null;\n pick: IPickProposed;\n element: IElement;\n elementTypesById: IElementTypesById;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n renderElementMenu: (index: number) => void;\n teamsById: ITeamsById;\n}\n\nconst MyTeamRow: React.FC = ({\n chipInPlayName,\n pick,\n element,\n elementTypesById,\n fixturesForNextEventByTeam,\n renderElementMenu,\n teamsById,\n}) => (\n \n \n \n \n \n \n \n \n renderElementMenu(pick.element)}\n element={element}\n team={teamsById[element.team]}\n />\n \n {elementTypesById[element.element_type].singular_name_short}\n {element.form}\n {element.event_points}\n {element.total_points}\n \n }\n fixtures={fixturesForNextEventByTeam[element.team]}\n element={element}\n teamsById={teamsById}\n />\n \n \n);\n\ninterface IOwnProps {\n picks: IPickProposed[];\n renderElementMenu: (index: number) => void;\n title: string;\n}\n\ninterface IPropsFromState {\n chipInPlayName: string | null;\n elementsById: IElementsById;\n elementTypesById: IElementTypesById;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n teamsById: ITeamsById;\n}\n\ntype Props = IOwnProps & IPropsFromState & WithTranslation;\n\nconst MyTeamTable: React.FC = ({\n t,\n elementsById,\n picks,\n title,\n ...rest\n}) => {\n return (\n \n \n \n \n  \n  \n {title}\n \n \n \n {t(\"myTeamTable.postitionShort\", \"Pos\")}\n \n \n \n {t(\"myTeamTable.form\", \"Form\")}\n \n \n \n {t(\"myTeamTable.roundPointsShort\", \"RD\")}\n \n \n \n \n \n \n {t(\"myTeamTable.totalPointsShort\", \"TP\")}\n \n \n \n \n \n \n {t(\"myTeamTable.fixtureNextRoundShort\", \"Fix\")}\n \n \n \n \n \n \n {picks.map((p) => (\n \n ))}\n \n \n \n );\n};\n\nexport { MyTeamTable as MyTeamTableTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n return {\n chipInPlayName: getActiveOrProposedTeamChipName(state),\n elementsById: getElementsById(state),\n elementTypesById: getElementTypesById(state),\n fixturesForNextEventByTeam: getFixturesForNextEventByTeam(state),\n teamsById: getTeamsById(state),\n };\n};\n\nexport default withTranslation()(connect(mapStateToProps)(MyTeamTable));\n","import { range } from \"lodash\";\nimport { size } from \"polished\";\nimport * as React from \"react\";\nimport { Trans, WithTranslation, withTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, SavingState, ThunkDispatch } from \"../../core/store\";\nimport {\n cancelActiveChip,\n cancelProposedChip,\n proposeAvailableChip,\n restoreCancelledChip,\n} from \"../../core/store/chips/actions\";\nimport {\n getActiveChip,\n getActiveOrProposedAllChipName,\n getActiveOrProposedTeamChipName,\n getPotentialChips,\n teamChipsHaveChanged,\n} from \"../../core/store/chips/reducers\";\nimport { IPotentialChip } from \"../../core/store/chips/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport { IElement, IElementsById } from \"../../core/store/elements/types\";\nimport { getEntry } from \"../../core/store/entries/reducers\";\nimport { fetchEntrySummary } from \"../../core/store/entries/thunks\";\nimport { IEntry, IPickLight } from \"../../core/store/entries/types\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getFixturesForNextEventByTeam } from \"../../core/store/fixtures/reducers\";\nimport { IFixturesForEventByTeam } from \"../../core/store/fixtures/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport {\n changeCaptain,\n changeViceCaptain,\n} from \"../../core/store/my-team/actions\";\nimport {\n getMyFormation,\n getMyPicksProposed,\n getMyTeamSavingState,\n hasMyTeamChanged,\n isMyTeamValid,\n} from \"../../core/store/my-team/reducers\";\nimport {\n actionSubstitution,\n fetchMyTeam,\n saveMyTeam,\n} from \"../../core/store/my-team/thunks\";\nimport { IPickProposed } from \"../../core/store/my-team/types\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { ILoggedInPlayer } from \"../../core/store/player/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport {\n formatRawAsISO,\n formatRawAsLocalI18n,\n} from \"../../core/utils/datetime\";\nimport { ReactComponent as ArrowRight } from \"../../img/icons/arrow-right.svg\";\nimport { ChipName, getAllChipDetails } from \"../../utils/chips\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport DeadlineBar from \"../DeadlineBar\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport DialogHeading from \"../DialogHeading\";\nimport DialogManager from \"../DialogManager\";\nimport Entry from \"../Entry\";\nimport { FixturesForElement } from \"../FixtureForElement\";\nimport Fixtures from \"../Fixtures\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Link from \"../Link\";\nimport { ElementRow } from \"../Pitch\";\nimport DreamTeam from \"../icons/DreamTeam\";\n// import ShirtSoonAlert from \"../ShirtSoonAlert\";\nimport { dateLocales } from \"../../i18n\";\nimport Title from \"../Title\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport SaveBar from \"../squad/SaveBar\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport Bench from \"./Bench\";\nimport BenchUnit from \"./BenchUnit\";\nimport MyTeamTable from \"./MyTeamTable\";\nimport PitchFormation from \"./PitchFormation\";\n\nconst StyledPitchWrapper = styled(Box)`\n background-color: ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nconst ChipList = styled.ul`\n display: flex;\n align-items: baseline;\n margin: ${({ theme }) => theme.space[4]} 0 3.5rem;\n padding: ${({ theme }) => theme.space[2]};\n background-color: ${({ theme }) => theme.colors.primary};\n list-style-type: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[2]};\n }\n`;\n\nconst ChipItem = styled.li`\n flex: 1;\n padding: 0 ${({ theme }) => theme.space[2]} ${({ theme }) => theme.space[2]};\n`;\n\nconst Chip = styled.div`\n text-align: center;\n`;\n\nconst ChipHeading = styled.h3`\n display: inline-block;\n margin-bottom: 1.5rem;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 1.8rem;\n font-weight: 600;\n text-align: center;\n text-transform: uppercase;\n border-bottom: 1px dotted ${({ theme }) => theme.colors.blue};\n`;\n\nconst ChipLink = styled(Link)`\n position: relative;\n display: block;\n width: 100%;\n padding: 0.6rem 2.7rem 0.5rem;\n border-radius: 4px;\n background-color: ${({ theme }) => theme.colors.grey};\n color: #333;\n text-transform: uppercase;\n\n :hover {\n text-decoration: none;\n }\n`;\n\nconst ChipLinkArrow = styled(ArrowRight)`\n ${size(10)};\n position: absolute;\n top: 50%;\n right: ${({ theme }) => theme.space[2]};\n transform: translateY(-50%);\n fill: currentColor;\n cursor: pointer;\n`;\n\nconst renderPickValue =\n (initProps: {\n elementsById: IElementsById;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n teamsById: ITeamsById;\n }) =>\n (pick: IPickLight) => {\n const element = initProps.elementsById[pick.element];\n return (\n \n );\n };\n\nconst PlayerActions = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 50%;\n margin: 0 auto;\n }\n`;\n\ninterface IPropsFromState {\n activeChip: IPotentialChip | null;\n changed: boolean;\n chipInPlayName: string | null;\n chipAllPlayName: string | null;\n chips: IPotentialChip[];\n chipsChanged: boolean;\n entry: IEntry | null;\n elementsById: IElementsById;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n formation: string;\n nextEvent: IEvent | null;\n picks: IPickProposed[];\n player: ILoggedInPlayer;\n savingState: SavingState;\n settings: ISettings;\n teamsById: ITeamsById;\n valid: boolean;\n}\n\ninterface IPropsFromDispatch {\n cancelChip: (name: string) => void;\n deactivateChip: (name: string) => void;\n fetchEntrySummary: (entryId: number) => void;\n fetchMyTeam: () => void;\n makeCaptain: (elementId: number) => void;\n makeViceCaptain: (elementId: number) => void;\n proposeChip: (name: string) => void;\n restoreChip: (name: string) => void;\n save: () => void;\n showElementDialog: (elementId: number) => void;\n substitute: (elementId: number) => void;\n}\n\ntype Props = WithTranslation & IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n pickForMenu: IPickProposed | null;\n}\n\nclass MyTeam extends React.Component {\n public state: IState = {\n pickForMenu: null,\n };\n\n public handleShowMenuForPickElement = (element: number) => {\n const matches = this.props.picks.filter((p) => p.element === element);\n if (matches.length) {\n this.setState({ pickForMenu: matches[0] });\n }\n };\n\n public handleHideMenuForPick = () => {\n this.setState({ pickForMenu: null });\n };\n\n public renderDreamTeam = (pick: IPickLight) =>\n this.props.elementsById[pick.element].in_dreamteam ? (\n \n \n \n ) : null;\n\n public action = (\n type: \"substitute\" | \"makeCaptain\" | \"makeViceCaptain\",\n element: number\n ) => {\n this.handleHideMenuForPick();\n this.props[type](element);\n };\n\n public showDialog = (element: IElement) => {\n this.props.showElementDialog(element.id);\n this.handleHideMenuForPick();\n };\n\n public renderMenu() {\n const pick = this.state.pickForMenu;\n if (!pick) {\n return null;\n }\n const element = this.props.elementsById[pick.element];\n const status = pick.subStatus;\n const startMax = this.props.settings.squad_squadplay;\n const t = this.props.t;\n return (\n \n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n \n \n \n \n {status.match(/^(target|)$/) && (\n \n this.action(\"substitute\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.switch\", \"Switch\")}\n \n \n )}\n {status === \"instigator\" && (\n \n this.action(\"substitute\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.cancel\", \"Cancel\")}\n \n \n )}\n {!status && pick.position <= startMax && !pick.is_captain && (\n \n this.action(\"makeCaptain\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.makeCaptain\", \"Make Captain\")}\n \n \n )}\n {!status && pick.position <= startMax && !pick.is_vice_captain && (\n \n this.action(\"makeViceCaptain\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.makeViceCaptain\", \"Make Vice Captain\")}\n \n \n )}\n \n \n \n \n \n \n );\n }\n\n public componentDidMount() {\n this.props.fetchMyTeam();\n this.props.fetchEntrySummary(this.props.player.entry);\n }\n\n public renderChipAction(c: IPotentialChip) {\n const {\n cancelChip,\n chipInPlayName,\n deactivateChip,\n entry,\n proposeChip,\n restoreChip,\n t,\n } = this.props;\n switch (c.status_for_entry) {\n case \"available\":\n case \"unavailable\":\n return (\n proposeChip(c.name)}\n disabled={Boolean(chipInPlayName)}\n width={1}\n variant=\"secondary\"\n >\n {t(\"myTeam.play\", \"Play\")}\n \n );\n case \"proposed\":\n return (\n \n );\n case \"active\":\n return (\n \n );\n case \"cancelled\":\n return (\n restoreChip(c.name)}\n disabled={Boolean(chipInPlayName)}\n width={1}\n >\n {t(\"myTeam.restore\", \"Restore\")}\n \n );\n case \"played\":\n if (!entry) {\n return (\n <>\n
{t(\"myTeam.played\", \"Played\")}
\n
{`${t(\"myTeam.round\", \"Round\")} ${\n c.played_by_entry[0]\n }`}
\n \n );\n }\n return (\n \n
\n
{t(\"myTeam.played\", \"Played\")}
\n
{`${t(\"myTeam.round\", \"Round\")} ${\n c.played_by_entry[0]\n }`}
\n \n
\n
\n );\n default:\n return \"\";\n }\n }\n\n public renderUnlimitChipAction(c: IPotentialChip) {\n const { chipInPlayName, entry, t } = this.props;\n switch (c.status_for_entry) {\n case \"available\":\n case \"unavailable\":\n return (\n (\n <>\n \n {t(\"myTeam.play\", \"Play\")}\n \n {showDialog && (\n \n \n {t(\"myTeam.chips.unlimit.name\", \"Loan Rangers\")}\n \n \n \n

\n {t(\n \"myTeam.chips.unlimit.dialog.p1\",\n \"The Loan Rangers chip is played when confirming your transfers and can be used once a season.\"\n )}\n

\n

\n {t(\n \"myTeam.chips.unlimit.dialog.p2\",\n \"It allows you to make unlimited free transfers and choose how many players you want from a specific team for a single round. At the next deadline, your squad is returned to how it was at the start of the round.\"\n )}\n

\n

\n \n Please note: Loan Rangers{\" \"}\n cannot be cancelled once\n confirmed.\n \n

\n
\n
\n
\n )}\n \n )}\n />\n );\n case \"active\":\n return ;\n case \"played\":\n if (!entry) {\n return (\n <>\n
{t(\"myTeam.active\", \"Active\")}
\n
{`${t(\"myTeam.round\", \"Round\")} ${\n c.played_by_entry[0]\n }`}
\n \n );\n }\n return (\n \n
\n
{t(\"myTeam.played\", \"Played\")}
\n
{`${t(\"myTeam.round\", \"Round\")} ${\n c.played_by_entry[0]\n }`}
\n \n
\n
\n );\n default:\n return \"\";\n }\n }\n\n public render() {\n const {\n activeChip,\n changed,\n chipAllPlayName,\n chips,\n chipsChanged,\n elementsById,\n entry,\n fixturesForNextEventByTeam,\n formation,\n i18n,\n nextEvent,\n picks,\n save,\n savingState,\n settings,\n t,\n teamsById,\n valid,\n } = this.props;\n if (!entry || !picks.length) {\n return null;\n }\n // Create a new function on each render as fixtures could have changed and\n // need to ensure a render of connected subcomponents\n const _renderPickValue = renderPickValue({\n elementsById,\n teamsById,\n fixturesForNextEventByTeam,\n });\n const benchHeading: Record = {\n 11: (\n \n GK\n \n ),\n 12: \"1\",\n 13: \"2\",\n 14: \"3\",\n };\n\n const unlimitChip = chips.filter((c) => c.name === \"uteam\")[0];\n const chipDetails = getAllChipDetails(t);\n return (\n <>\n \n
\n \n {t(\"myTeam.title\", \"My Team\")}\n \n {nextEvent && (\n \n )}\n \n \n {t(\n \"myTeam.alerts.captain\",\n \"To change your captain use the menu which appears when clicking on a player's shirt.\"\n )}\n \n \n \n \n \n \n \n \n \n \n \n {range(\n settings.squad_squadplay,\n settings.squad_squadsize\n ).map((i) => (\n \n this.handleShowMenuForPickElement(\n picks[i].element\n )\n }\n renderDreamTeam={this.renderDreamTeam}\n renderPickValue={_renderPickValue}\n />\n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n {activeChip && activeChip.chip_type === \"transfer\" ? (\n \n \n

\n {t(\"myTeam.alerts.transferChip\", \"{{ chipName }} Active\", {\n chipName: chipDetails[activeChip.name as ChipName].name,\n })}\n

\n
\n
\n ) : (\n \n {chips\n .filter((c) => [\"2capt\", \"pdbus\"].indexOf(c.name) > -1)\n .map((c) => (\n \n \n \n \n {chipDetails[c.name as ChipName].name}\n \n \n {this.renderChipAction(c)}\n \n \n ))}\n {unlimitChip && (\n \n \n \n \n {chipDetails[unlimitChip.name as ChipName].name}\n \n \n {this.renderUnlimitChipAction(unlimitChip)}\n \n \n )}\n \n )}\n {savingState === \"saved\" ? (\n \n \n {t(\"myTeam.alerts.teamSaved\", \"Your team has been saved.\")}\n \n \n ) : (\n \n \n {t(\"myTeam.saveTeam\", \"Save Your Team\")}\n \n \n )}\n {this.renderMenu()}\n \n
\n \n \n \n
\n \n );\n }\n}\n\nexport { MyTeam as MyTeamTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const player = getPlayerData(state) as ILoggedInPlayer; // enforced by EntryRoute\n return {\n activeChip: getActiveChip(state),\n chipInPlayName: getActiveOrProposedTeamChipName(state),\n chipAllPlayName: getActiveOrProposedAllChipName(state),\n changed: hasMyTeamChanged(state),\n chips: getPotentialChips(state),\n chipsChanged: teamChipsHaveChanged(state),\n elementsById: getElementsById(state),\n entry: getEntry(state, player.entry),\n fixturesForNextEventByTeam: getFixturesForNextEventByTeam(state),\n formation: getMyFormation(state),\n nextEvent: getNextEvent(state),\n picks: getMyPicksProposed(state),\n player,\n savingState: getMyTeamSavingState(state),\n settings: getSettings(state) as ISettings,\n teamsById: getTeamsById(state),\n valid: isMyTeamValid(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n cancelChip: (name) => dispatch(cancelProposedChip(name)),\n deactivateChip: (name) => dispatch(cancelActiveChip(name)),\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n fetchMyTeam: () => dispatch(fetchMyTeam()),\n makeCaptain: (elementId) => dispatch(changeCaptain(elementId)),\n makeViceCaptain: (elementId) => dispatch(changeViceCaptain(elementId)),\n proposeChip: (name) => dispatch(proposeAvailableChip(name)),\n restoreChip: (name) => dispatch(restoreCancelledChip(name)),\n save: () => dispatch(saveMyTeam()),\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n substitute: (elementId) => dispatch(actionSubstitution(elementId)),\n});\nexport default withTranslation()(\n connect(mapStateToProps, mapDispatchToProps)(MyTeam)\n);\n","import {\n Location,\n Redirect,\n RouteComponentProps,\n Router,\n WindowLocation,\n} from \"@reach/router\";\nimport React, { Suspense, lazy } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { ConnectedComponent, connect } from \"react-redux\";\nimport { RootState } from \"../core/store\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { IPlayer } from \"../core/store/player/types\";\nimport { Loading } from \"./App\";\nimport Copy from \"./Copy\";\nimport EntryHistory from \"./EntryHistory\";\nimport EntryUnsubscribe from \"./EntryUnsubscribe\";\nimport EntryUpdate from \"./EntryUpdate\";\nimport FixturesWrapper from \"./FixturesWrapper\";\nimport Footer from \"./Footer\";\nimport Home from \"./Home\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Login from \"./Login\";\nimport TransfersHistory from \"./TransfersHistory\";\nimport PlayerList from \"./help/PlayerList\";\nimport AdminClassic from \"./leagues/AdminClassic\";\nimport AdminH2H from \"./leagues/AdminH2H\";\nimport AutoJoin from \"./leagues/AutoJoin\";\nimport Create from \"./leagues/Create\";\nimport CreateClassic from \"./leagues/CreateClassic\";\nimport CreateH2H from \"./leagues/CreateH2H\";\nimport CreateJoin from \"./leagues/CreateJoin\";\nimport CupNotStarted from \"./leagues/CupNotStarted\";\nimport Invite from \"./leagues/Invite\";\nimport Join from \"./leagues/Join\";\nimport JoinPrivate from \"./leagues/JoinPrivate\";\nimport JoinPublic from \"./leagues/JoinPublic\";\nimport MatchesCup from \"./leagues/MatchesCup\";\nimport MatchesH2H from \"./leagues/MatchesH2H\";\nimport MyCups from \"./leagues/MyCups\";\nimport MyLeagues from \"./leagues/MyLeagues\";\nimport NewEntriesH2H from \"./leagues/NewEntriesH2H\";\nimport Renew from \"./leagues/Renew\";\nimport StandingsClassic from \"./leagues/StandingsClassic\";\nimport StandingsH2H from \"./leagues/StandingsH2H\";\nimport LoggedIn from \"./player/LoggedIn\";\nimport Logout from \"./player/Logout\";\nimport MergeCode from \"./player/MergeCode\";\nimport MergeEmail from \"./player/MergeEmail\";\nimport PasswordReset from \"./player/PasswordReset\";\nimport PasswordSet from \"./player/PasswordSet\";\nimport Register from \"./player/Register\";\nimport Scout from \"./scout/Scout\";\nimport SquadSelection from \"./squad/SquadSelection\";\nimport Transfers from \"./squad/Transfers\";\nimport News from \"./stats/News\";\nimport Statistics from \"./stats/Statistics\";\nimport DreamTeam from \"./team/DreamTeam\";\nimport EntryEvent from \"./team/EntryEvent\";\nimport MyTeam from \"./team/MyTeam\";\n\nconst Help = lazy(() => import(\"./help/Help\"));\nconst Rules = lazy(() => import(\"./help/Rules\"));\nconst Terms = lazy(() => import(\"./help/Terms\"));\nconst Prizes = lazy(() => import(\"./Prizes\"));\n\ninterface IRouteChangeProps {\n action: () => void;\n}\n\ninterface IRouteChangeWorkerProps {\n location: WindowLocation;\n}\n\ntype RouteChangeProps = IRouteChangeProps & IRouteChangeWorkerProps;\n\nclass OnRouteChangeWorker extends React.Component {\n componentDidUpdate(prevProps: RouteChangeProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n this.props.action();\n }\n }\n\n render() {\n return null;\n }\n}\n\nconst OnRouteChange: React.FC = ({ action }) => (\n \n {({ location }) => (\n \n )}\n \n);\n\ninterface IProtectedRouteProps extends RouteComponentProps {\n as: React.ComponentType | ConnectedComponent;\n player: IPlayer | null;\n}\n\ninterface IPropsFromState {\n player: IPlayer | null;\n}\n\nconst PlayerRoute: React.FC = ({\n as: Component,\n player,\n ...rest\n}) => {\n if (player && !player.entry) {\n return ;\n } else if (player && player.dirty) {\n return ;\n } else {\n return (\n \n
\n \n
\n
\n );\n }\n};\n\nconst EntryRoute: React.FC = ({\n as: Component,\n player,\n ...rest\n}) => {\n if (player && player.entry && !player.dirty) {\n return ;\n } else if (player && player.dirty) {\n return ;\n } else {\n return (\n \n
\n \n
\n
\n );\n }\n};\n\nexport const NotFound: React.FC = () => {\n const { t } = useTranslation();\n return (\n \n
\n \n

{t(\"routes.notFound.title\", \"Page not found\")}

\n

\n {t(\n \"routes.notFound.text\",\n \"Sorry, but the page you were looking for can't be found.\"\n )}\n

\n
\n
\n
\n );\n};\n\nconst Routes: React.FC = ({ player }) => {\n return (\n }>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n window.scrollTo(0, 0)} />\n