{"version":3,"sources":["core/store/phases/reducers.ts","core/store/events/actions.ts","components/Collapsible.tsx","core/store/events/reducers.ts","components/SubHeading.tsx","components/Title.tsx","components/Copy.tsx","components/Table.tsx","core/store/bootstrap/actions.ts","core/store/game/reducers.ts","core/store/element-types/reducers.ts","i18n.ts","core/utils/datetime.ts","core/store/bootstrap/reducers.ts","core/store/global/actions.ts","core/utils/api.ts","core/store/entries/actions.ts","core/store/entries/thunks.ts","core/store/bootstrap/thunks.ts","core/store/global/reducers.ts","theme.ts","GlobalStyle.ts","utils/sites.ts","core/store/teams/reducers.ts","components/Badge.tsx","components/BadgeHeader.tsx","utils/cookies.ts","utils/allauth.ts","components/auth/AuthContext.tsx","img/icons/close.svg","core/store/element-stats/reducers.ts","core/store/elements/actions.ts","core/store/player/actions.ts","core/store/player/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","core/utils/money.ts","img/headshots/shirt_onerror.png","utils/stats.ts","components/Alert.tsx","components/Button.tsx","components/Dialog.tsx","components/FixtureForElement.tsx","components/Panel.tsx","components/ScorePrefix.tsx","components/tabs/TabPanel.tsx","components/tabs/Tab.tsx","components/tabs/Tabs.tsx","img/logos/es-lion-logo.svg","components/Tooltip.tsx","core/store/urls/actions.ts","core/store/urls/reducers.ts","core/store/urls/thunks.ts","img/icons/arrow-left.svg","components/LogoBar.tsx","img/icons/arrow-right.svg","img/icons/arrow-double-left.svg","img/icons/arrow-double-right.svg","img/icons/arrow-right-long.svg","img/icons/arrow-left-long.svg","components/icons/Arrows.tsx","components/provider-components/ProviderHeader.tsx","components/provider-components/ProviderStyles.tsx","components/highlights/HighlightsProvider.tsx","components/ElementDialog.tsx","img/player-comps/player-comp@1x.png","img/player-comps/player-comp@2x.png","img/player-comps/player-comp2@1x.png","img/player-comps/player-comp2@2x.png","img/player-comps/player-comp3@1x.png","img/player-comps/player-comp3@2x.png","img/player-comps/player-comp4@1x.png","img/player-comps/player-comp4@2x.png","img/player-comps/player-comp5@1x.png","img/player-comps/player-comp5@2x.png","img/player-comps/player-comp6@1x.png","img/player-comps/player-comp6@2x.png","img/player-comps/player-comp-wide@1x.png","img/player-comps/player-comp-wide@2x.png","img/player-comps/player-comp-wide2@1x.png","img/player-comps/player-comp-wide2@2x.png","img/player-comps/player-comp-wide3@1x.png","img/player-comps/player-comp-wide3@2x.png","img/player-comps/player-comp-wide4@1x.png","img/player-comps/player-comp-wide4@2x.png","img/player-comps/player-comp-wide5@1x.png","img/player-comps/player-comp-wide5@2x.png","img/player-comps/player-comp-wide6@1x.png","img/player-comps/player-comp-wide6@2x.png","utils/player-comps.ts","core/hooks/useWindowSize.ts","core/hooks/usePriorityNav.ts","webpack:///./src/img/icons/arrow-down.svg?5f77","core/store/leagues/actions.ts","core/store/entries/reducers.ts","core/hooks/useDocumentEventHandler.ts","img/logos/es-fantasy-logo.svg","components/nav/Dropdown.tsx","components/nav/ListItem.tsx","components/nav/Navigation.tsx","img/icons/new.svg","components/Link.tsx","components/sponsors/SponsorRotatingImages.tsx","components/sponsors/Sponsors.tsx","utils/reducedMotion.ts","components/GameHeader.tsx","components/AdWrap.tsx","components/LeaderboardAd.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/fathom.ts","components/auth/AuthCallback.tsx","utils/chips.ts","core/store/my-team/reducers.ts","core/store/my-team/thunks.ts","components/BoldLink.tsx","components/Footnote.tsx","img/icons/same.svg","img/icons/up.svg","img/icons/down.svg","components/icons/Movement.tsx","components/leagues/Movement.tsx","components/Utils.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/MedRecAd.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","img/icons/arrow-down.svg","img/icons/search.svg","components/FieldRenderers.tsx","webpack:///./src/img/logos/es-logo.svg?6bd3","components/EntryUpdate.tsx","core/store/elements/thunks.ts","core/store/fixtures/actions.ts","core/store/fixtures/reducers.ts","core/store/fixtures/thunks.ts","img/flags/gb.svg","img/icons/play-button.svg","components/Tv.tsx","components/Fixture.tsx","components/Pager.tsx","components/Fixtures.tsx","components/FixturesWrapper.tsx","img/flags/no.svg","webpack:///./src/img/logos/altibox-logo.svg?3cc3","components/LanguageToggle.tsx","img/hero-logo.svg","img/icons/facebook-round.svg","img/icons/instagram.svg","img/icons/linkedin-round.svg","img/icons/twitter-round.svg","img/icons/youtube-round.svg","img/icons/tiktok-round.svg","components/Footer.tsx","components/help/PlayerList.tsx","img/home/hero.jpg","img/home/hero@2x.jpg","img/home/step-1@1x.png","img/home/step-1@2x.png","img/home/step-1@3x.png","img/home/step-2@1x.png","img/home/step-2@2x.png","img/home/step-2@3x.png","img/home/step-3@1x.png","img/home/step-3@2x.png","img/home/step-3@3x.png","img/home/step-4@1x.png","img/home/step-4@2x.png","img/home/step-4@3x.png","webpack:///./src/img/logos/obos-logo.svg?02fe","webpack:///./src/img/logos/tv2-logo.svg?dc34","img/logos/norsk-tipping.svg","img/icons/info.svg","img/home/es-promo-splash-left.png","img/home/es-promo-splash-left@2x.png","img/home/es-promo-splash-right.png","img/home/es-promo-splash-right@2x.png","components/auth/TV2Login.tsx","components/TextDivider.tsx","components/Login.tsx","components/scout/ScoutProvider.tsx","img/event-info-bg.png","img/event-info-bg@2x.png","img/event-info-bg-lg.png","img/event-info-bg-lg@2x.png","img/event-info-players.png","img/event-info-players@2x.png","components/status/EventInfo.tsx","components/status/EventStatusBar.tsx","img/icons/status.svg","components/ElementStatus.tsx","components/ElementDialogButton.tsx","components/ElementTable.tsx","components/Shirt.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/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","img/home/step-splash.png","img/home/step-splash@2x.png","components/TriangleCard.tsx","components/Home.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/leagues/CreateJoin.tsx","components/leagues/CupNotStarted.tsx","components/leagues/Invite.tsx","components/leagues/Join.tsx","components/leagues/JoinPrivate.tsx","components/leagues/JoinPublic.tsx","components/ButtonLink.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/twitter.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/PasswordReset.tsx","components/player/PasswordSet.tsx","core/store/regions/actions.ts","core/store/regions/reducers.ts","img/logos/altibox-logo.svg","img/logos/es-logo.svg","img/logos/obos-logo.svg","img/logos/tv2-logo.svg","components/player/PasswordChange.tsx","components/player/Register.tsx","core/store/regions/thunks.ts","img/prizes-hero@1x.jpg","img/prizes-hero@2x.jpg","components/Hero.tsx","components/Prizes.tsx","img/icons/remove.svg","components/scout/ScoutNav.tsx","components/scout/Scout.tsx","components/squad/CreateEntryDialog.tsx","components/squad/helpers.ts","components/PageHeader.tsx","components/squad/SaveBar.tsx","components/squad/ScoreboardPanel.tsx","components/squad/Scoreboard.tsx","components/PitchElementData.tsx","img/headshots/shirt_placeholder.png","components/PlaceholderShirt.tsx","components/squad/SquadPitchElement.tsx","img/headshots/shirt_placeholdershort.png","components/squad/SquadPlaceHolder.tsx","components/squad/PitchPlaceholder.tsx","components/squad/SquadPitchUnit.tsx","components/team/PitchWrapper.tsx","components/squad/CreateSquad.tsx","components/element-controls/ElementFilter.tsx","components/element-controls/ElementSort.tsx","components/paginator/PaginatorButton.tsx","components/element-controls/Paginator.tsx","components/Media.tsx","img/icons/captain.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/sub.svg","img/icons/vice-captain.svg","img/icons/x2.svg","img/icons/dreamteam.svg","components/team/TeamPitchElement.tsx","components/team/PitchFormation.tsx","components/team/DreamTeam.tsx","img/icons/reload.svg","components/icons/DreamTeam.tsx","components/team/BenchUnit.tsx","components/team/TableCaptains.tsx","components/team/EntryEventTable.tsx","components/team/EntryEvent.tsx","components/DeadlineBar.tsx","components/team/MyTeamTable.tsx","components/team/MyTeam.tsx","components/TransfersHistory.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/overrides/reducers.ts"],"names":["combineReducers","byId","state","action","type","getType","actions","newState","payload","forEach","et","id","getPhases","Object","keys","phases","map","p","getStartedPhases","createSelector","getFinishedEvents","events","length","lastFinishedEvent","filter","stop_event","getCurrentEvent","now","start_event","fetchEventStatus","createAsyncAction","StyledCollapsible","styled","div","theme","space","Button","button","radii","colors","grey","bgWhiteOpacity85","black","fonts","base","primary","CollapsibleContent","bgWhiteOpacity50","lastId","Collapsible","open","toggle","setState","this","newId","props","children","headingText","onClick","aria-expanded","aria-controls","aria-hidden","React","Component","event","currentEventStatus","success","getEventsById","getEvents","_","eventId","e","previousEvent","is_previous","currentEvent","is_current","getNextEvent","nextEvent","is_next","getFutureEvents","next","finished","getLastEvent","eventsById","ids","Number","Math","max","SubHeading","h3","variant","white","impact","Title","h2","Copy","ScrollTable","em","Table","table","fontSizes","tableBlueLight","tableBlueDark","createAction","deprecated","addChips","resolve","chips","addElementStats","elementStats","addElementTypes","elementTypes","addElements","elements","addEvents","addGameSettings","settings","addPhases","addPlayer","data","addWatched","watched","addTeams","teams","addTotalPlayers","total","bootstrap","bootstrapMe","bootstrapStatic","total_players","getSettings","chipId","overrides","getOverrides","game","rules","getTotalPlayers","getElementTypesById","element_types","getElementTypes","elementTypesById","getElementTypesBySquadPosition","types","count","range","squad_select","lastType","nextType","thisType","lng","window","location","hostname","substring","dateLocales","nb","i18n","on","moment","locale","setDefaultOptions","use","Backend","initReactI18next","init","ns","defaultNS","fallbackLng","debug","interpolation","escapeValue","localTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","formatDateAsLocal","dt","format","formatInTimeZone","formatRawAsISO","raw","Date","utcToZonedTime","toISOString","formatRawAsLocal","formatRawAsLocalI18n","formatDateAsLocalI18n","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","a","fetch","credentials","errorText","message","ok","statusText","json","badRequest","text","code","details","Error","apiGet","_apiDeletePostPut","method","body","JSON","stringify","apiPost","apiPut","apiDelete","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","blueblack","lightblack","breakpoints","backgroundGradient","bgWhiteOpacity95","blackLighter","difficulties","1","bg","color","2","3","4","5","elementStatus","0","25","50","75","fantasy","pink","pinkLighter","purple1","purple2","purple3","purple4","primaryDarker","greyDarker1","greyDarker2","greyDarker3","greyDarker4","greyDarker5","blue","blueDarker1","blueDarker2","blueDarker3","blueDarker4","red","redDarker","green","social","facebook","twitter","google","successDark","whiteDarker","whiteDarker2","backgroundwhite50","yellow","baseSemiBold","baseBold","impactMedium","zIndex","clientMenu","dialog","menu","overlay","select","wrap","GlobalStyle","createGlobalStyle","sites","getSite","team","getTeamsById","getTeams","t","sort","b","localeCompare","StyledBadge","img","badgePath","process","Badge","className","isPresentation","sizes","path","imgProps","alt","role","src","srcSet","BannerBackground","Banner","BadgeBanner","teamsById","useSelector","values","validTeams","unavailable","clubUrls","16","48","1438","5043","9","2718","6","8","7","40","13","15","index","href","target","rel","getCSRFToken","cookies","i","Client","freeze","APP","BROWSER","client","baseUrl","withCredentials","ACCEPT_JSON","accept","AuthProcess","LOGIN","CONNECT","URLs","VERIFY_EMAIL","LOGIN_BY_CODE","SIGNUP","PASSWORD_RESET_BY_CODE","PROVIDER_REDIRECT","PROVIDER_SIGNUP","MFA_AUTHENTICATE","REAUTHENTICATE","MFA_REAUTHENTICATE","MFA_WEBAUTHN_SIGNUP","CONFIG","CHANGE_PASSWORD","EMAIL","PROVIDERS","AUTHENTICATORS","RECOVERY_CODES","TOTP_AUTHENTICATOR","REQUEST_LOGIN_CODE","CONFIRM_LOGIN_CODE","SESSION","REQUEST_PASSWORD_RESET","RESET_PASSWORD","REDIRECT_TO_PROVIDER","PROVIDER_TOKEN","SESSIONS","REAUTHENTICATE_WEBAUTHN","AUTHENTICATE_WEBAUTHN","LOGIN_WEBAUTHN","SIGNUP_WEBAUTHN","WEBAUTHN_AUTHENTICATOR","TOTP","WEBAUTHN","postForm","f","createElement","key","d","value","appendChild","submit","tokenStorage","sessionStorage","getSessionToken","getItem","options","csrfToken","sessionToken","resp","msg","removeItem","meta","session_token","setItem","includes","is_authenticated","CustomEvent","detail","dispatchEvent","logout","getConfig","getAuth","authenticateByToken","providerId","token","provider","AuthContext","createContext","AuthContextProvider","useState","auth","setAuth","config","setConfig","useEffect","authData","configData","isAuthenticated","fetchData","onAuthChanged","addEventListener","removeEventListener","Provider","_circle","_polygon","reducer","getElementStats","getElementStatsByIdentifier","stats","reduce","memo","stat","updateElementControls","controls","elementDialogShow","elementDialogHide","fetchElementSummary","fetchElementEventData","login","recover","register","playerUpdate","passwordChange","passwordReset","passwordSet","addToWatched","elementCode","removeFromWatched","addToWatchlist","removeFromWatchlist","loginError","loginSuccess","passwordChangeError","passwordResetError","passwordSetError","playerUpdateError","registerError","recoveryError","recoveryStatus","getPlayerData","getWatched","getLoginError","getPasswordChangeError","getPasswordSetError","getPlayerUpdateError","getRegisterError","formatNameForSearching","search","toLowerCase","replace","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","getTeamFilterOptions","filterElements","filterString","watchedElements","filters","element_type","matches","match","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","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","proposeElementInPosition","position","removeElementInPosition","resetLastChange","resetProposed","createSquad","makeTransfers","fetchTransfersLatest","defaultLastType","lastChange","proposed","myTeamActions","picksInSquadOrder","picks","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","toSpend","squad_total_spend","selling_price","bank","getTeamLimit","squad_team_limit","getTypesNeeded","needed","getCountByTeam","countByTeam","elementsByTeam","groupBy","teamId","getProposedTransfers","pickKeys","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","integerToMoney","int","divisor","_stats","getStats","total_points","description","event_points","selected_by_percent","minutes","goals_scored","assists","clean_sheets","goals_conceded","own_goals","penalties_saved","penalties_missed","yellow_cards","red_cards","saves","bonus","form","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","excludedStats","getIncludedStats","StyledAlert","textAlign","noRadius","css","copnr","AlertItem","AlertWrap","AlertGroup","Alert","btnVariations","baseBtn","secondary","link","fullwidth","xs","sm","lg","StyledBtn","Base","size","hasicon","disabled","ref","as","width","startIconProp","startIcon","endIconProp","endIcon","commonProps","style","marginRight","marginLeft","to","tabIndex","_extends","assign","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgClose","_ref","svgRef","title","titleId","xmlns","xmlnsXlink","x","y","height","viewBox","enableBackground","xmlSpace","cx","cy","r","points","fill","ForwardRef","CloseIcon","Close","CloseLabel","span","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","docRef","current","focusElement","querySelector","focusable","focus","focusedItem","focusableItems","slice","querySelectorAll","numFocusableItems","focusedIndex","shiftKey","preventDefault","ReactDOM","createPortal","aria-labelledby","getElementById","Header","Body","FixtureForElement","showBadge","fixture","isHome","team_h","useTranslation","team_a","short_name","FixturesForElement","delimiter","fragments","result","item","StyledPanel","StyledPanelHeader","PanelHeading","StyledPanelFooter","Panel","Footer","ScorePrefixStyles","WinPrefix","LosePrefix","DrawPrefix","TabPanel","Item","li","TabLink","Tab","TabListShared","TabList","ul","centered","Tabs","getSelectedFromLocationHash","handleClick","locationHash","child","panel","_g","_defs","StyledTooltip","Tippy","TooltipLabel","Tooltip","content","arrow","placement","fetchURL","byURL","last_fetched","getURL","urls","isEmptyResponse","every","setTimeout","SvgEsLionLogo","clipPath","_path","StyledLogoBar","justifyContent","Logo","EliteSerienLogo","LogoBar","SvgArrowLeft","SvgArrowRight","_rect","SvgArrowDoubleLeft","SvgArrowDoubleRight","fillRule","clipRule","SvgArrowRightLong","SvgArrowLeftLong","ArrowLeft","ArrowLeftIcon","ArrowRight","ArrowRightIcon","ArrowLeftDouble","ArrowLeftDoubleIcon","ArrowRightDouble","ArrowRightDoubleIcon","ArrowRightLong","ArrowRightLongIcon","ArrowLeftLong","ArrowLeftLongIcon","ControlArrowRight","ControlArrowLeft","StyledMoreLink","StyledProviderHeader","header","ProviderHeader","showMoreLink","ProviderLink","ProviderArticleImg","aspectRatio","ProviderContentStyles","ProviderContent","backgroundColor","wide","ProviderSection","section","Article","article","HighlightsProvider","numberOfHighlights","highlightsData","sethighlightsData","reduxDispatch","useDispatch","createVideoPlayerUrl","asset","turneringType","slug","titleToSlugify","toString","normalize","slugifyTitle","idField","parse","feed","filteredSslFeedItems","splice","parseContent","images","defaultUrl","TabsWrapper","Summary","Card","TablesWrapper","TableWrapper","CardInfo","Img","HistoryTable","HeaderWrap","ElementDialogHeaderWrap","ElementHeader","NameMoneyWrap","ElementMoney","ElementFullName","h1","FixtureForElementWrap","StyledTableHeadOne","th","StyledTableHeadTwo","TeamBadge","ElementInfo","ElementInfoItem","ElementInfoHeading","ElementInfoValue","TableHeading","NoData","TdBold","td","ElementDialog","added","addElement","historyTotals","seasonHistory","lastThreeHistory","firstThreeFixtures","elementFullname","first_name","second_name","elementCost","includedStats","highlights","fiks_id","team_code","news","m","chance_of_playing_next_round","onError","OnErrorImg","singular_name","opponent_team","was_home","team_h_score","team_a_score","kickoff_time","dateTime","language","highlight","w","toUpperCase","transfers_balance","colSpan","px","season_name","start_cost","end_cost","mx","my","renderWatchlistButton","ConnectedDialog","withTranslation","connect","ownProps","reverse","ElementDialogContainer","getElementDialog","choice","getPlayerComp","playerImages","x1","playerComp1","x2","playerComp1x2","x1wide","playerCompWide1","x2wide","playerCompWide1x2","playerComp2","playerComp2x2","playerCompWide2","playerCompWide2x2","playerComp3","playerComp3x2","playerCompWide3","playerCompWide3x2","playerComp4","playerComp4x2","playerCompWide4","playerCompWide4x2","playerComp5","playerComp5x2","playerCompWide5","playerCompWide5x2","playerComp6","playerComp6x2","playerCompWide6","playerCompWide6x2","floor","random","getSize","innerHeight","innerWidth","outerHeight","outerWidth","useWindowSize","windowSize","setWindowSize","handleResize","arraysEqual","usePriorityNav","links","offset","isRTL","childrenWidths","setWidths","visibleLinks","setVisibleLinks","nonVisibleLinks","setNonVisibleLinks","oldLinks","setLinks","measuredRef","useCallback","node","concat","getBoundingClientRect","left","right","useLayoutEffect","screen","filteredIndexedElements","newVisibleLinks","newNonVisibleLinks","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","useDocumentEventHandler","handler","eventHandler","SvgArrowDown","_path2","_path3","_path4","_path5","_path6","_path7","StyledDropdown","MoreButton","StyledArrowDown","ArrowDown","NavLink","NavReachLink","Link","NavHyperLink","Dropdown","setOpen","aria-haspopup","nativeEvent","stopImmediatePropagation","useRouter","LIStyled","ListItem","forwardRef","indicateExternal","getProps","isCurrent","isPartiallyCurrent","StyledNav","nav","StyledUL","NavigationLinks","connector","started_event","SvgEsFantasyLogo","transform","LinkStyles","RouterLink","Image","$isVisible","SponsorImages","currentIndex","setCurrentIndex","setIsVisible","imageCount","interval","setInterval","prevIndex","clearInterval","image","altText","ReduceMotionWrap","ReduceMotionWrapNested","StyledImage","StyledLogo","GameHeading","Sponsors","matchMedia","GameHeaderOuter","GameHeaderInner","HeaderUpperNavWrap","GameHeaderUpper","PlayerImage","hiDPI","TransparentGradient","GameHeader","AdWrap","LeaderboardAd","adSlot","useRef","googletag","cmd","mapping_fantasy_leaderboard","sizeMapping","addSize","build","defineSlot","defineSizeMapping","addService","pubads","enableSingleRequest","enableServices","collapseEmptyDivs","pubadsReady","destroySlots","display","localStorageKey","getInitialState","localStorage","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","setValue","clearCode","clearValue","getErrorType","non_field_errors","JoinLeagueError","maxPrivateEntries","league_join_private_max","league_join_public_max","getErrorMessage","ConfirmBtnWrapper","LeagueName","AutoJoinDialog","getAutoJoinCode","joinedPrivateLeagueSuccess","getLeagueFromCode","isPlayerInLeague","handleHide","mb","leagueName","confirmJoinLeague","loadFathomTrackingId","trackingId","Fathom","CallbackContainer","Box","AuthCallback","useNavigate","setError","setLoading","urlParams","URLSearchParams","allauth","errorParam","errorDescription","errorMessage","returnPath","idToken","processAuth","mt","allChipDetails","frush","rich","wildcard","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","possibles","pick2","p1","p2","p1Type","p2Type","p1Sub","p2Sub","validSwap","squad_max_play","squad_min_play","sub_positions_locked","isLegalSwap","isMyTeamValid","hasMyTeamChanged","is_captain","is_vice_captain","toUpdateMyTeamAPI","lastBootstrap","REFRESH_MINUTES","actionSubstitution","BoldLinkStyles","StyledBoldLink","BoldLink","Footnote","SvgNew","SvgSame","SvgUp","SvgDown","NewIcon","BaseNewIcon","SameIcon","BaseSameIcon","arrowStyling","BaseUpIcon","BaseDownIcon","StyledUpArrow","StyledDownArrow","Movement","lastRank","Ellipsis","ellipsis","UnstyledButton","VisuallyHidden","getShortNameFromId","idOnly","prefix","StyledResult","Result","resultChar","CupSummaryScore","iAmOne","entry_1_entry","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","h4","SummaryCupCol","SummaryRoundCol","SummaryStatusCol","LeagueSummaryTable","SelectWrap","SelectBox","MyLeagueCupSummary","pb","scope","MedRecAd","filterOnSSL","items","enclosure","TabHeadingOuter","isCentered","hasBorder","TabHeadingInner","isBlock","TabHeadingTitle","TabHeading","EntryTab","EntryTabs","selectedTab","setSelectedTab","Children","parser","require","TableStyles","StyledTable","StyledSubHeading","EntryName","DataListItem","DataListHeading","h5","DataListValue","MovementCell","Rank","Name","linkToLeague","BoldText","StyledTdFixedWidth","StyledLink","RSSArticleTitle","RSSArticle","RSSArticleLink","RSSArticleFigure","figure","RSSArticleImg","RSSArticleDesc","MovementHead","RankHead","NameHead","providerUrls","12","14","46","1370","53","405","11","89","302","52","103","10","37","98","Entry","favTeamArticle","handleParseContent","rss","parseString","rssFeed","lastItem","fanLeagueDetails","fetchUrl","mine","transfersState","prevProps","fanLeagueRssObj","privateClassicLeagues","publicClassicLeagues","privateH2HLeagues","publicH2HLeagues","totalPlayers","privateClassicCupLeagues","publicClassicCupLeagues","systemClassicCupLeagues","filteredSystemClassicLeagues","hasCupLeagues","broadcasterCupLeagues","filteredSystemCupLeagues","LeagueSummary","LeagueSummaryRow","leagueEntry","toLocaleString","summary_overall_rank","last_deadline_total_transfers","last_deadline_value","last_deadline_bank","fanLeagueMatch","fanLeagues","getFanLeagueDetails","fanLeagueUrl","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","border","borderRadius","fontFamily","fontSize","padding","borderColor","FieldLabel","labelVisbility","Hint","Input","input","hasErrors","InlineSelectWrap","Select","InlineSelect","SearchWrap","SearchIcon","Search","SearchInput","FieldCols","FieldCol","LabelHint","hint","required","htmlFor","InlineLabel","InputField","maxLength","onBlur","onChange","readonly","readOnly","SearchField","rest","Checkbox","CheckboxText","hasLogo","LogoImg","CheckboxField","logo","hideLabel","aria-checked","fieldset","StyledFieldFeedback","SelectField","InlineSelectField","FieldFeedback","EntryUpdate","favourite_team","entry_email","entry_language","initState","updateState","updateCheckboxState","updateSelectState","eliteserien","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","__","suffix","oppTeam","SvgEsLogo","tvPath","Tv","channel","StyledFixture","Teams","FixtureTV","Team","Tickets","TeamH","TeamA","TeamName","abbr","FixtureBadge","FixtureKOTime","FixtureScore","FixtureScoreTeam","TicketsLink","TicketsText","VideoLinkUrl","NoTicketsUrl","HighlightsIconWrapper","HighlightsIcon","tv_channel","started","forzify_id","PlayButton","tickets_url","Pager","EventPager","PagerItem","PagerButton","PagerButtonNext","PagerHeading","PagerItemNext","Deadline","Heading","Note","FixtureDay","FixtureTime","FixtureList","FixtureItem","FixtureButton","FixtureStatsWrap","isOpen","FixtureStatsOuterList","FixtureStat","FixtureStatHeading","FixtureStatBody","FixtureStatList","FixtureStatItem","ElementButton","FixtureStatsForTeam","showElementDialog","fs","FixtureStats","statsByIdentifier","renderStats","identifier","Fixtures","changeEvent","fetchFixturesForEvent","fixtureId","useLinks","eventFixtureGroups","group","FixturesWrapper","SvgGb","rx","SvgNo","FlagsWrap","FlagList","FlagItem","FlagLink","StyledNOFlag","NOFlag","StyledGBFlag","GBFlag","LanguageToggle","StyledFooter","Inner","LangLogoWrap","SocialIcon","InlineBlock","SocialIconWrapper","LogoSVG","alignItems","flexWrap","ml","Facebook","Twitter","Insta","Youtube","Linkedin","TicTok","ElementListElement","ElementListTable","ElementListPosition","halfElements","ceil","firstHalfElements","secondHalfElements","isWide","SvgAltiboxLogo","SvgObosLogo","SvgTv2Logo","preserveAspectRatio","stroke","_polygon2","_polygon3","_polygon4","_polygon5","_polygon6","_polygon7","SvgNorskTipping","_rect2","TV2Login","handleTV2Login","callbackURL","callback_url","protocol","host","csrfmiddlewaretoken","console","flex","TextDivider","LoginWrap","CopyWrap","Username","Password","LoginButtonWrap","LoginForm","LoginLink","SocialIntro","SocialLogin","StyledPromoBox","ESPromoSplashLeft1x","ESPromoSplashRight1x","ESPromoSplashLeft2x","ESPromoSplashRight2x","PromoLogo","ESPromoLogo","PromoTextWrap","PromoButtonWrap","PromoText","mapDispatch","setEmail","password","setPassword","last_name","firstName","lastName","Parser","ScoutProvider","numberOfArticles","providerData","setProviderData","StyledEventInfo","eventInfoBg1x","eventInfoBg2x","eventInfoBgLg1x","eventInfoBgLg2x","PlayersImage","eventInfoPlayers1x","eventInfoPlayers2x","TitleWrap","BoldLinkWrap","ButtonWrap","EventStats","EventStat","EventStatsWrap","ItemHeading","ItemValue","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","SvgInfo","SvgStatus","StyledInfo","Info","StyledStatus","Status","ElementStatus","StyledElementDialogButton","ElementTable","PrimaryCell","PrimaryCellLined","ElementRow","tr","ElementCell","bold","Shirt","StyledPanelBody","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","ElementWrapper","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","StyledTriangleCard","mdSrc","lgSrc","Content","StepSplashBg","StepSplash1x","StepSplash2x","Svg","svg","Desc","TriangleCard","smSrc","desc","HomeHero","heroImg1x","heroImg2x","Tagline","Highlights","HighlightsItem","VideoEmbed","SponsorBarOuter","SponsorBarInner","SponsorList","SponsorItem","SponsorBox","SponsorHeading","SponsorWrap","StyledAltiboxLogo","AltiboxLogo","StyledNTLogo","NTLogo","StyledObosLogo","ObosLogo","PresentedList","PresentedItem","StyledTv2Logo","Tv2Logo","Home","TrackFacebook","fbq","providers","step13x","step12x","step1","step23x","step22x","step2","step33x","step32x","step3","step43x","step42x","step4","frameBorder","allow","referrerPolicy","allowFullScreen","EntrySelector","handleChange","searchChange","selection","onInputValueChange","debounce","itemToString","getInputProps","getItemProps","getLabelProps","getMenuProps","highlightedIndex","selectedItem","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","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","ButtonLinkStyles","StyledButtonLink","ButtonLink","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","MatchesCup","query","qs","ignoreQueryPrefix","entryNumber","eventNumber","pageMatches","page_matches","buildMatchesUrl","myLeagueEntry","didNotQualify","notStarted","largeCupEvent","fetchMatches","is_large","cupStartText","eventNumberMinus","has_next","NavList","NavItem","H2HNav","defaultEntryParam","pathname","MatchesH2H","handleEntryFilterChange","handleEventFilterChange","defaultEntryNumber","fetchEntries","fetchStandings","leagueEntriesError","showEntry","isLargeLeague","default_entry","CupCol","RoundCol","MyCupsTable","CupTypeTable","SubNav","LeaguesNav","LeaguesNavWrap","StyledSpan","MyCups","pt","entryName","SvgCog","DialogManager","showDialog","handleShow","render","LinkButton","SubHeadingWrap","PrimaryWrap","ActionBar","ActionBarItem","ActionList","NoLeaguesJoined","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","StandingsH2H","LoggedIn","noThrow","LogoutContainer","log","user","socialaccounts","returnTo","performLogout","PasswordReset","submitted","setSumbitted","PasswordSet","uidb64","passwordSetErrors","initialToken","newPassword1","setNewPassword1","newPassword2","setNewPassword2","setErrors","new_password1","new_password2","validate","serverErrors","addRegions","getRegions","regions","PasswordChange","passwordChangeErrors","oldPassword","setOldPassword","old_password","DOBFieldset","DOBFieldsetInner","DOBLegend","legend","DOBCol","Register","errorsTxt","EDob","EEmail","EFName","ELName","EPass","EPassLenght","ERegion","EValidDob","EvalidEmail","EValidPass","months","getMode","dirty","handleBirthDayChange","birthDay","handleBirthMonthChange","birthMonth","handleBirthYearChange","birthYear","handleEmailChange","handleEmailEliteserienChange","emailEliteserien","handleEmailFavouriteChange","emailFavourite","handleEmailObosChange","emailObos","handleEmailTV2Change","emailTV2","handleEmailAltiboxChange","emailAltibox","handleFirstNameChange","handleLastNameChange","handlePasswordChange","handleRegionChange","region","registerPlayer","scrollTo","doBootstrap","site","trackEventLabels","main_nb","main_en","tv2","trackEvent","updatePlayer","handleFirstnameBlur","errorFName","handleLastnameBlur","errorLName","handlePasswordBlur","errorPass","handleEmailBlur","errorEmail","handleRegionBlur","errorRegion","handleDobBlur","year","month","day","isValid","today","birthDate","age","getFullYear","getMonth","getDate","errorDob","handleServerErrors","updateError","formattedErrors","date_of_birth","email_altibox","email_eliteserien","email_obos","email_tv2","email_favourite","fetchRegionData","regs","nor","reg","update","buttonText","getRequiredFields","defaultValue","getNorwayRegions","getIntRegions","TV2Logo","is_social","StyledHero","image2x","HeroTitle","Hero","Prizes","SvgTwitter","ScoutNav","ScoutWrap","Social","TwitterTimelineWrap","SocialHeader","SocialBody","SocialLinks","SocialLink","network","SocialLinkItem","SocialLinkText","twitterFeeds","socialLinkText","linkText","Scout","twttr","widgets","load","data-height","data-link-color","data-chrome","EnterSquadText","CreateEntryDialog","terms_agreed","handleFaveChange","handleTermsChange","createEntry","errorCode","getCodeFromError","reload","Trans","i18nKey","StyledPageHeader","PageHeader","SaveBar","StyledScoreboardPanel","Value","isError","isSuccess","ScoreboardPanel","heading","StyledBasic","ScoreboardButtons","ScoreboardPanels","PanelWrapper","CostScoreboardUnit","CostButtonWrap","DialogHeading","Basic","autoPick","currencyDivisor","isBudgetExceeded","isNeedElements","proposedElements","reset","ExplainChipDialog","transferCosts","Cost","activeChipName","availableChipNames","freeTransfersRemaining","proposedChipName","cancelChip","proposeChip","richUncleChip","wildCardChip","Scoreboard","scoreboard","typesByPosition","averageCostByType","elementsOwned","failures","typesNeeded","avgToSpend","weightingFactor","invalidTeams","shuffle","savedPicks","SvgRemove","PitchElementData","PlaceholderShirt","PlaceholderImg","StyledRemove","Remove","actionMe","elementValue","StyledSquadPlaceholder","SquadPlaceholder","StyledPlaceholder","Abbr","Span","PitchPlaceholder","data-testid","removePitchElement","restorePitchElement","showElementType","showSidebar","PitchWrapper","PlayerName","PlayerActions","CreateSquad","positionForMenu","handleHideMenuForElement","clearLastChange","listTable","submitDialog","latestAction","playerName","canEnter","sharedPitchElementProps","renderElementValueForPosition","submitButtonText","positionsByElementType","positions","renderElementDialog","renderMenu","elementTypeFilterOptions","ElementFilter","o","ElementSort","getSortOptions","handleSortChange","sortOptions","isSmall","HiddenLabel","PaginatorButton","PageCount","Paginator","totalPages","StyledMedia","centred","Media","_g2","MenuButton","StyledElementListRow","isProposed","FlexElementCell","ElementListRow","PanelWrap","Form","ElementsShown","ElementListPrice","ElementListStat","ElementTypeButton","ElementListWrapper","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","FilterElTypeButton","SquadListElement","SquadListCost","SquadListSelected","SquadListPoints","SquadListFixture","SquadListRow","fixturesForNextEventByTeam","SquadSelection","listTableProps","availableChips","freeTransfers","wildcardAvailable","richUncleAvaliable","costs","SquadListStatus","SquadListPrice","SquadListForm","TransfersListRow","elementState","Transfers","NewsStatus","NewsElement","NewsNews","NewsCell","NavWrap","News","StatsStatus","StatsElement","StatsCost","StatsSel","StatsForm","StatsPts","StatsExtra","Statistics","defaultStats","statName","paginate","extraStat","statDetail","String","StyledBoldLinkButton","BoldLinkButton","StatsTable","DreamTeamRow","dataById","SvgCaptain","SvgSub","SvgViceCaptain","SvgX2","StyledSub","Sub","StyledButton","StyledCaptain","Captain","StyledViceCaptain","ViceCaptain","StyledX2","DreamTeamWrap","substitute","DTScoreboard","DTScoreboardPanel","DTScoreboardHeading","DTScoreboardValue","SectionBackground","TopPlayer","TopPlayerData","DreamTeam","SvgDreamteam","SvgReload","BaseDreamTeam","StyledBenchUnit","BenchUnitHeading","EntryEventRow","PointsScoreboardWrap","StyledEventPager","StyledPagerHeading","PagerButtonStyles","StyledPagerButton","StyledPagerButtonNext","TableWrap","PointsScoreboard","ScoreboardPrimary","PrimaryPanel","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","chipPlayed","entry_history","automatic_subs","connected","translated","DeadlineBar","deadlineISO","deadlineLocal","MyTeamStatus","MyTeamCpt","MyTeamElement","MyTeamPos","MyTeamForm","MyTeamRD","MyTeamPts","MyTeamFix","MyTeamRow","chipInPlayName","ChipList","ChipItem","Chip","ChipHeading","ChipLink","ChipTextWrap","ChipLinkText","ChipLinkArrow","MyTeam","startMax","deactivateChip","restoreChip","played_by_entry","changed","chipsChanged","save","valid","_renderPickValue","richChip","chipDetails","getAllChipDetails","renderChipAction","renderRichChipAction","makeCaptain","makeViceCaptain","DialogButton","TransfersHistory","fetchLatestTransfers","transfersHistory","getLatestTransfers","Help","lazy","Rules","Terms","OnRouteChangeWorker","OnRouteChange","PlayerRoute","EntryRoute","NotFound","fallback","Join","JoinPublic","AdminH2H","Invite","default","HomeOrHelp","renderError","ServerError","TV2Header","headerStyles","euro","StyledHeaderWrapper","Loading","App","bootstrapped","siteHeaders","StrictMode","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","chipOverrides","eventOverrides","getOverridesByChipId","getOverridesByEventId","merge"],"mappings":"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","file":"static/js/main.0a16a42d.chunk.js","sourcesContent":["import { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"../bootstrap/actions\";\nimport { getCurrentEvent, getFinishedEvents } from \"../events/reducers\";\nimport { IPhase, IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addPhases):\n const newState: { [key: string]: IPhase } = {};\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 getPhasesById = (state: RootState) => state.phases.byId;\n\nexport const getPhases = (state: RootState) =>\n Object.keys(state.phases.byId).map((p) => state.phases.byId[p]);\n\nexport const getFinishedPhases = createSelector(\n getPhases,\n getFinishedEvents,\n (phases, events) => {\n if (!events.length) {\n return [];\n }\n const lastFinishedEvent = events[events.length - 1];\n return phases.filter((p) => p.stop_event <= lastFinishedEvent.id);\n }\n);\n\nexport const getStartedPhases = createSelector(\n getPhases,\n getCurrentEvent,\n (phases, now) => {\n if (!now) {\n return [];\n }\n return phases.filter((p) => p.start_event <= now.id);\n }\n);\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 margin-bottom: 0;\n }\n`;\n\nconst Button = styled.button`\n display: flex;\n align-items: center;\n width: 100%;\n margin-bottom: ${({ theme }) => theme.space[1]};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[1]};\n border: 1px solid ${({ theme }) => theme.colors.grey};\n background: ${({ theme }) => theme.colors.bgWhiteOpacity85};\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: 1.4rem;\n text-align: left;\n\n :hover {\n color: black;\n background-color: ${({ theme }) => theme.colors.primary};\n\n svg {\n fill: white;\n }\n }\n\n svg {\n fill: ${({ theme }) => theme.colors.black};\n }\n\n &[aria-expanded=\"true\"] {\n svg {\n transform: rotate(180deg);\n }\n }\n`;\n\nconst CollapsibleContent = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n background: ${({ theme }) => theme.colors.bgWhiteOpacity50};\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 {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 styled from \"styled-components/macro\";\n\ninterface IHeadingProps {\n variant?: string;\n}\n\nconst SubHeading = styled.h3`\n margin: ${({ theme }) => theme.space[3]} 0;\n font-size: 2.4rem;\n font-weight: 600;\n line-height: 1;\n color: ${({ theme, variant }) =>\n variant === \"light\" ? theme.colors.white : theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.impact};\n`;\n\nexport default SubHeading;\n","import styled from \"styled-components/macro\";\n\nconst Title = styled.h2`\n margin-top: 0;\n margin-bottom: 0;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 3.2rem;\n font-weight: 600;\n line-height: 1.25em;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n`;\n\nexport default Title;\n","import styled from \"styled-components/macro\";\n\nconst Copy = styled.div`\n margin: 0 ${({ theme }) => theme.space[2]};\n\n h4,\n h5,\n p,\n ul,\n ol,\n table {\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 h5 {\n font-size: 1.3rem;\n }\n\n h6 {\n margin-bottom: ${({ theme }) => theme.space[1]};\n font-size: 1.2rem;\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\nexport default Copy;\n","import { em } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nexport const ScrollTable = styled.div`\n @media (max-width: ${em(\"480px\")}) {\n overflow-x: auto;\n\n table {\n width: 48rem;\n }\n }\n`;\n\nconst Table = styled.table`\n width: 100%;\n border-collapse: collapse;\n font-size: ${({ theme }) => theme.fontSizes[2]};\n\n th,\n td {\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[2]}`};\n }\n\n th {\n color: ${({ theme }) => theme.colors.black};\n background: ${({ theme }) => theme.colors.white};\n\n :first-of-type {\n border-top-left-radius: ${({ theme }) => theme.radii[1]};\n }\n\n :last-of-type {\n border-top-right-radius: ${({ theme }) => theme.radii[1]};\n }\n\n text-align: left;\n }\n\n tr {\n background: ${({ theme }) => theme.colors.tableBlueLight};\n\n &:nth-child(odd) {\n background: ${({ theme }) => theme.colors.tableBlueDark};\n }\n border-top: 1px solid ${({ theme }) => theme.colors.white};\n\n :first-of-type {\n border: 0;\n }\n }\n\n tr:last-of-type td:first-of-type {\n border-bottom-left-radius: ${({ theme }) => theme.radii[0]};\n }\n\n tr:last-of-type td:last-of-type {\n border-bottom-right-radius: ${({ theme }) => theme.radii[0]};\n }\n`;\n\nexport default Table;\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 { 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 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 { setDefaultOptions } from \"date-fns\";\nimport { nb } from \"date-fns/locale\";\nimport i18n from \"i18next\";\nimport Backend from \"i18next-xhr-backend\";\nimport moment from \"moment\";\nimport \"moment/locale/nb\";\nimport { initReactI18next } from \"react-i18next\";\n\nconst lng = window.location.hostname.substring(0, 3) === \"en.\" ? \"en\" : \"nb\";\nexport const dateLocales: Record = {\n nb,\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 { 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 { 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","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 backgroundGradient =\n \"linear-gradient(185deg, rgba(255, 255, 255, 0.20) 18.33%, rgba(255, 255, 255, 0.00) 32.38%), linear-gradient(17deg, rgba(255, 255, 255, 0.00) 83.02%, rgba(0, 205, 255, 0.80) 96.53%), linear-gradient(177deg, #C736D3 1.13%, #DF8DE6 6.32%, rgba(255, 255, 255, 0.00) 13.13%), linear-gradient(9deg, #88CFE8 0%, rgba(255, 255, 255, 0.00) 22.63%), linear-gradient(183deg, rgba(212, 243, 250, 0.60) 23.48%, rgba(113, 217, 239, 0.60) 100%), linear-gradient(150deg, rgba(255, 255, 255, 0.00) 53.74%, rgba(199, 54, 211, 0.20) 87.86%), white\";\nconst blue = \"#00a8e1\";\nconst blueblack = \"#00263d\";\nconst fantasy = \"#00ff87\";\nconst primary = \"#e9e7f2\";\nconst yellow = \"#ebff00\";\nconst red = \"#d22a5d\";\nconst green = \"#03b155\";\nconst black = \"#100118\";\nconst lightblack = \"#726b85\";\nconst backgroundwhite50 = \"rgba(255, 255, 255, 0.5)\";\n\nconst theme: DefaultTheme = {\n breakpoints: [\n em(\"400px\"),\n em(\"610px\"),\n em(\"700px\"),\n em(\"900px\"),\n em(\"1024px\"),\n em(\"1220px\"),\n ],\n colors: {\n backgroundGradient,\n bgWhiteOpacity50: \"rgba(255, 255, 255, 0.5)\",\n bgWhiteOpacity85: \"rgba(255, 255, 255, 0.85)\",\n bgWhiteOpacity95: \"rgba(255, 255, 255, 0.95)\",\n black: black,\n blackLighter: lightblack,\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: blueblack,\n },\n 75: {\n bg: \"#ffe65b\",\n color: blueblack,\n },\n },\n error: \"#df2f2f\",\n fantasy,\n pink: \"#ff2882\",\n pinkLighter: \"#ffb1c9\",\n purple1: \"#3a2f5c\",\n purple2: \"#a09bff\",\n purple3: \"#b2aeff\",\n purple4: \"#756b97\",\n primary,\n primaryDarker: \"#cac5dd\",\n grey: \"#f2f2f2\",\n greyDarker1: \"#e5e5e5\",\n greyDarker2: \"#f0f0f8\",\n greyDarker3: \"#6e6e6e\",\n greyDarker4: \"#d9d8ed\",\n greyDarker5: \"#f2f9fa\",\n blue,\n blueDarker1: \"#3069a5\",\n blueDarker2: \"#004986\",\n blueDarker3: \"#14253c\",\n blueDarker4: \"#114387\",\n tableBlueLight: \"#f7f9f9\",\n tableBlueDark: \"#e7eff1\",\n red: red,\n redDarker: \"#ab224f\",\n green: green,\n social: {\n facebook: {\n bg: \"#3b5998\",\n color: \"white\",\n },\n twitter: {\n bg: \"black\",\n color: \"white\",\n },\n google: {\n bg: \"white\",\n color: \"rgba(0, 0, 0, 0.54)\",\n },\n },\n success: \"#28dacc\",\n successDark: \"#058643\",\n text: lightblack,\n white: \"#fff\",\n whiteDarker: \"#f8f8fc\",\n whiteDarker2: \"#fafafa\",\n backgroundwhite50,\n yellow,\n },\n fontSizes: [\n \"1.2rem\",\n \"1.3rem\",\n \"1.4rem\",\n \"1.6rem\",\n \"1.8rem\",\n \"2rem\",\n \"4rem\",\n \"4.8rem\",\n ],\n fonts: {\n base: '\"TV 2 Text Light\", Helvetica, Arial, sans-serif',\n baseSemiBold: '\"TV 2 Text Semi Bold\", Helvetica, Arial, sans-serif',\n baseBold: '\"TV 2 Text Bold\", Helvetica, Arial, sans-serif',\n impact: '\"TV 2 Display Semi Bold\", Impact, sans-serif',\n impactMedium: '\"TV 2 Display Medium\", Impact, sans-serif',\n },\n radii: [\"5px\", \"6px\"],\n space: [\n \"0\",\n \"0.5rem\",\n \"1rem\",\n \"1.5rem\",\n \"2rem\",\n \"2.5rem\",\n \"3rem\",\n \"3.5rem\",\n \"4rem\",\n \"5rem\",\n ],\n zIndex: {\n clientMenu: 7000,\n dialog: 9000,\n menu: 6000,\n overlay: 8000,\n select: {\n select: 5000,\n wrap: 4000,\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 min-height: 100%;\n font-family: ${theme.fonts.base};\n\t/* has to be important so affiliate CSS doesn't override */\n\tfont-size: 62.5% !important;\n\tline-height: 1.5;\n\t-webkit-font-smoothing: antialiased;\n }\n\n body {\n margin: 0;\n\tcolor: ${theme.colors.black};\n font-size: ${theme.fontSizes[2]};\n background: ${theme.colors.backgroundGradient};\n\t}\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\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","export type SITE_IDS = \"main_nb\" | \"main_en\" | \"tv2\";\n\nconst sites: Record = {\n \"dev.fantasy.eliteserien.no\": \"main_nb\",\n \"en.dev.fantasy.eliteserien.no\": \"main_en\",\n \"eliteserien.staging.ismgames.com\": \"main_nb\",\n \"en.eliteserien.staging.ismgames.com\": \"main_en\",\n \"fantasy.eliteserien.no\": \"main_nb\",\n \"en.fantasy.eliteserien.no\": \"main_en\",\n \"fantasy.tv2.no\": \"tv2\",\n \"dev.fantasy.tv2.no\": \"tv2\",\n \"tv2-eliteserien.staging.ismgames.com\": \"tv2\",\n};\n\nexport const getSite = () => sites[window.location.hostname] || \"\";\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 * as React from \"react\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport styled from \"styled-components/macro\";\n\nconst StyledBadge = styled.img`\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 className?: string;\n isPresentation?: boolean;\n sizes: string;\n team: ITeam | null;\n}\n\nconst Badge: React.FC = ({\n className,\n isPresentation,\n sizes,\n team,\n}) => {\n const code = team ? 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 50w, ${path}-100.png 100w`,\n };\n\n if (isPresentation) {\n imgProps.alt = \"\";\n imgProps.role = \"presentation\";\n }\n\n return ;\n};\n\nexport default Badge;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport Badge from \"./Badge\";\n\nconst BannerBackground = styled.div`\n background-color: transparent;\n`;\n\nconst Banner = styled.div`\n display: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: flex;\n align-items: center;\n justify-content: space-evenly;\n gap: ${({ theme }) => theme.space[4]};\n max-width: 1220px;\n margin: auto;\n padding: ${({ theme }) => `${theme.space[2]} 0`};\n }\n`;\n\nconst StyledBadge = styled(Badge)`\n transition: all 0.3s ease;\n\n &:hover {\n transform: scale(1.2);\n }\n`;\n\nconst BadgeBanner = () => {\n const teamsById = useSelector(getTeamsById);\n const teams = Object.values(teamsById);\n const validTeams = teams.filter((team) => !team.unavailable);\n\n const clubUrls: { [key: number]: string } = {\n 16: \"https://www.fkh.no/\",\n 48: \"https://www.sandefjordfotball.no/\",\n 1438: \"https://kaaffa.no/\",\n 5043: \"https://www.sarpsborg08.no/\",\n 9: \"https://www.godset.no/\",\n 2718: \"https://www.kristiansundbk.no/\",\n 1: \"https://www.brann.no/\",\n 6: \"https://www.moldefk.no/\",\n 3: \"https://www.til.no/\",\n 8: \"https://www.glimt.no/\",\n 5: \"https://www.rbk.no/\",\n 7: \"https://www.vikingfotball.no/\",\n 40: \"https://www.fredrikstadfk.no/\",\n 50: \"https://www.hamkam.no/\",\n 13: \"https://www.brynefk.no/\",\n 15: \"https://www.vif-fotball.no/\",\n };\n\n if (!teams) {\n return null;\n }\n\n return (\n \n \n {validTeams.map((team: ITeam, index: number) => (\n \n \n \n ))}\n \n \n );\n};\n\nexport default BadgeBanner;\n","export function getCookie(name: string) {\n let cookieValue = null;\n if (document.cookie && document.cookie !== \"\") {\n const cookies = document.cookie.split(\";\");\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n\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}\nexport function getCSRFToken() {\n return getCookie(\"csrftoken\");\n}\n","import { getCSRFToken } from \"./cookies\";\n\nexport const Client = Object.freeze({\n APP: \"app\",\n BROWSER: \"browser\",\n} as const);\n\nexport type ClientType = typeof Client[keyof typeof Client];\n\nexport interface Settings {\n client: ClientType;\n baseUrl: string;\n withCredentials: boolean;\n}\n\nexport const settings: Settings = {\n client: Client.BROWSER,\n baseUrl: `/api/_allauth/${Client.BROWSER}/v1`, // Match Django's URL pattern from urls.py\n withCredentials: true, // Enable credentials for cross-origin requests\n};\n\nconst ACCEPT_JSON = {\n accept: \"application/json\",\n};\n\nexport const AuthProcess = Object.freeze({\n LOGIN: \"login\",\n CONNECT: \"connect\",\n} as const);\n\nexport type AuthProcessType = typeof AuthProcess[keyof typeof AuthProcess];\n\nexport const Flows = Object.freeze({\n VERIFY_EMAIL: \"verify_email\",\n LOGIN: \"login\",\n LOGIN_BY_CODE: \"login_by_code\",\n SIGNUP: \"signup\",\n PASSWORD_RESET_BY_CODE: \"password_reset_by_code\",\n PROVIDER_REDIRECT: \"provider_redirect\",\n PROVIDER_SIGNUP: \"provider_signup\",\n MFA_AUTHENTICATE: \"mfa_authenticate\",\n REAUTHENTICATE: \"reauthenticate\",\n MFA_REAUTHENTICATE: \"mfa_reauthenticate\",\n MFA_WEBAUTHN_SIGNUP: \"mfa_signup_webauthn\",\n} as const);\n\nexport type FlowType = typeof Flows[keyof typeof Flows];\n\nexport const URLs = Object.freeze({\n // Meta\n CONFIG: \"/config\",\n\n // Account management\n CHANGE_PASSWORD: \"/account/password/change\",\n EMAIL: \"/account/email\",\n PROVIDERS: \"/account/providers\",\n\n // Account management: 2FA\n AUTHENTICATORS: \"/account/authenticators\",\n RECOVERY_CODES: \"/account/authenticators/recovery-codes\",\n TOTP_AUTHENTICATOR: \"/account/authenticators/totp\",\n\n // Auth: Basics\n LOGIN: \"/auth/login\",\n REQUEST_LOGIN_CODE: \"/auth/code/request\",\n CONFIRM_LOGIN_CODE: \"/auth/code/confirm\",\n SESSION: \"/auth/session\",\n REAUTHENTICATE: \"/auth/reauthenticate\",\n REQUEST_PASSWORD_RESET: \"/auth/password/request\",\n RESET_PASSWORD: \"/auth/password/reset\",\n SIGNUP: \"/auth/signup\",\n VERIFY_EMAIL: \"/auth/email/verify\",\n\n // Auth: 2FA\n MFA_AUTHENTICATE: \"/auth/2fa/authenticate\",\n MFA_REAUTHENTICATE: \"/auth/2fa/reauthenticate\",\n\n // Auth: Social\n PROVIDER_SIGNUP: \"/auth/provider/signup\",\n REDIRECT_TO_PROVIDER: \"/auth/provider/redirect\",\n PROVIDER_TOKEN: \"/auth/provider/token\",\n\n // Auth: Sessions\n SESSIONS: \"/auth/sessions\",\n\n // Auth: WebAuthn\n REAUTHENTICATE_WEBAUTHN: \"/auth/webauthn/reauthenticate\",\n AUTHENTICATE_WEBAUTHN: \"/auth/webauthn/authenticate\",\n LOGIN_WEBAUTHN: \"/auth/webauthn/login\",\n SIGNUP_WEBAUTHN: \"/auth/webauthn/signup\",\n WEBAUTHN_AUTHENTICATOR: \"/account/authenticators/webauthn\",\n} as const);\n\nexport type URLType = typeof URLs[keyof typeof URLs];\n\nexport const AuthenticatorType = Object.freeze({\n TOTP: \"totp\",\n RECOVERY_CODES: \"recovery_codes\",\n WEBAUTHN: \"webauthn\",\n} as const);\n\nexport type AuthenticatorTypeValue =\n typeof AuthenticatorType[keyof typeof AuthenticatorType];\n\ninterface FormData {\n [key: string]: string;\n}\n\nfunction postForm(action: string, data: FormData): void {\n const f = document.createElement(\"form\");\n f.method = \"POST\";\n f.action = settings.baseUrl + action;\n\n for (const key in data) {\n const d = document.createElement(\"input\");\n d.type = \"hidden\";\n d.name = key;\n d.value = data[key];\n f.appendChild(d);\n }\n document.body.appendChild(f);\n f.submit();\n}\n\nconst tokenStorage = window.sessionStorage;\n\nexport function getSessionToken(): string | null {\n return tokenStorage.getItem(\"sessionToken\");\n}\n\ninterface RequestOptions extends RequestInit {\n credentials?: RequestCredentials;\n headers: Record;\n}\n\ninterface ResponseMeta {\n session_token?: string;\n is_authenticated?: boolean;\n}\n\ninterface ApiResponse {\n status: number;\n meta?: ResponseMeta;\n [key: string]: any;\n}\n\nasync function request(\n method: string,\n path: string,\n data?: any,\n headers: Record = {}\n): Promise {\n const options: RequestOptions = {\n method,\n headers: {\n ...ACCEPT_JSON,\n ...headers,\n },\n };\n\n if (settings.withCredentials) {\n options.credentials = \"include\";\n }\n\n // Don't pass along authentication related headers to the config endpoint.\n if (path !== URLs.CONFIG) {\n if (settings.client === Client.BROWSER) {\n const csrfToken = getCSRFToken();\n if (csrfToken) {\n options.headers[\"X-CSRFToken\"] = csrfToken;\n }\n } else if (settings.client === Client.APP) {\n // IMPORTANT!: Do NOT use `Client.APP` in a browser context, as you will\n // be vulnerable to CSRF attacks. This logic is only here for\n // development/demonstration/testing purposes...\n options.headers[\"User-Agent\"] = \"django-allauth example app\";\n const sessionToken = getSessionToken();\n if (sessionToken) {\n options.headers[\"X-Session-Token\"] = sessionToken;\n }\n }\n }\n\n if (typeof data !== \"undefined\") {\n options.body = JSON.stringify(data);\n options.headers[\"Content-Type\"] = \"application/json\";\n }\n\n let msg: ApiResponse;\n try {\n const resp = await fetch(settings.baseUrl + path, options);\n if (!resp.ok) {\n throw new Error(`HTTP error! status: ${resp.status}`);\n }\n msg = await resp.json();\n } catch (error) {\n throw new Error(\"Failed to fetch or parse response\");\n }\n\n if (msg.status === 410) {\n tokenStorage.removeItem(\"sessionToken\");\n }\n\n if (msg.meta?.session_token) {\n tokenStorage.setItem(\"sessionToken\", msg.meta.session_token);\n }\n\n if (\n [401, 410].includes(msg.status) ||\n (msg.status === 200 && msg.meta?.is_authenticated)\n ) {\n const event = new CustomEvent(\"allauth.auth.change\", { detail: msg });\n document.dispatchEvent(event);\n }\n\n return msg;\n}\n\ninterface LoginData {\n email?: string;\n password?: string;\n [key: string]: any;\n}\n\nexport async function login(data: LoginData): Promise {\n return await request(\"POST\", URLs.LOGIN, data);\n}\n\nexport async function reauthenticate(data: {\n password: string;\n}): Promise {\n return await request(\"POST\", URLs.REAUTHENTICATE, data);\n}\n\nexport async function logout(): Promise {\n return await request(\"DELETE\", URLs.SESSION);\n}\n\ninterface SignupData {\n email: string;\n password1: string;\n password2: string;\n [key: string]: any;\n}\n\nexport async function signUp(data: SignupData): Promise {\n return await request(\"POST\", URLs.SIGNUP, data);\n}\n\nexport async function signUpByPasskey(data: any): Promise {\n return await request(\"POST\", URLs.SIGNUP_WEBAUTHN, data);\n}\n\ninterface ProviderSignupData {\n email?: string;\n [key: string]: any;\n}\n\nexport async function providerSignup(\n data: ProviderSignupData\n): Promise {\n return await request(\"POST\", URLs.PROVIDER_SIGNUP, data);\n}\n\nexport async function getProviderAccounts(): Promise {\n return await request(\"GET\", URLs.PROVIDERS);\n}\n\nexport async function disconnectProviderAccount(\n providerId: string,\n accountUid: string\n): Promise {\n return await request(\"DELETE\", URLs.PROVIDERS, {\n provider: providerId,\n account: accountUid,\n });\n}\n\nexport async function requestPasswordReset(\n email: string\n): Promise {\n return await request(\"POST\", URLs.REQUEST_PASSWORD_RESET, { email });\n}\n\nexport async function requestLoginCode(email: string): Promise {\n return await request(\"POST\", URLs.REQUEST_LOGIN_CODE, { email });\n}\n\nexport async function confirmLoginCode(code: string): Promise {\n return await request(\"POST\", URLs.CONFIRM_LOGIN_CODE, { code });\n}\n\nexport async function getEmailVerification(key: string): Promise {\n return await request(\"GET\", URLs.VERIFY_EMAIL, undefined, {\n \"X-Email-Verification-Key\": key,\n });\n}\n\nexport async function getEmailAddresses(): Promise {\n return await request(\"GET\", URLs.EMAIL);\n}\n\nexport async function getSessions(): Promise {\n return await request(\"GET\", URLs.SESSIONS);\n}\n\nexport async function endSessions(ids: string[]): Promise {\n return await request(\"DELETE\", URLs.SESSIONS, { sessions: ids });\n}\n\nexport async function getAuthenticators(): Promise {\n return await request(\"GET\", URLs.AUTHENTICATORS);\n}\n\nexport async function getTOTPAuthenticator(): Promise {\n return await request(\"GET\", URLs.TOTP_AUTHENTICATOR);\n}\n\nexport async function mfaAuthenticate(code: string): Promise {\n return await request(\"POST\", URLs.MFA_AUTHENTICATE, { code });\n}\n\nexport async function mfaReauthenticate(code: string): Promise {\n return await request(\"POST\", URLs.MFA_REAUTHENTICATE, { code });\n}\n\nexport async function activateTOTPAuthenticator(\n code: string\n): Promise {\n return await request(\"POST\", URLs.TOTP_AUTHENTICATOR, { code });\n}\n\nexport async function deactivateTOTPAuthenticator(): Promise {\n return await request(\"DELETE\", URLs.TOTP_AUTHENTICATOR);\n}\n\nexport async function getRecoveryCodes(): Promise {\n return await request(\"GET\", URLs.RECOVERY_CODES);\n}\n\nexport async function generateRecoveryCodes(): Promise {\n return await request(\"POST\", URLs.RECOVERY_CODES);\n}\n\nexport async function getConfig(): Promise {\n return await request(\"GET\", URLs.CONFIG);\n}\n\nexport async function addEmail(email: string): Promise {\n return await request(\"POST\", URLs.EMAIL, { email });\n}\n\nexport async function deleteEmail(email: string): Promise {\n return await request(\"DELETE\", URLs.EMAIL, { email });\n}\n\nexport async function markEmailAsPrimary(email: string): Promise {\n return await request(\"PATCH\", URLs.EMAIL, { email, primary: true });\n}\n\nexport async function requestEmailVerification(\n email: string\n): Promise {\n return await request(\"PUT\", URLs.EMAIL, { email });\n}\n\nexport async function verifyEmail(key: string): Promise {\n return await request(\"POST\", URLs.VERIFY_EMAIL, { key });\n}\n\nexport async function getPasswordReset(key: string): Promise {\n return await request(\"GET\", URLs.RESET_PASSWORD, undefined, {\n \"X-Password-Reset-Key\": key,\n });\n}\n\ninterface ResetPasswordData {\n password1: string;\n password2: string;\n key: string;\n}\n\nexport async function resetPassword(\n data: ResetPasswordData\n): Promise {\n return await request(\"POST\", URLs.RESET_PASSWORD, data);\n}\n\ninterface ChangePasswordData {\n oldpassword: string;\n password1: string;\n password2: string;\n}\n\nexport async function changePassword(\n data: ChangePasswordData\n): Promise {\n return await request(\"POST\", URLs.CHANGE_PASSWORD, data);\n}\n\nexport async function getAuth(): Promise {\n return await request(\"GET\", URLs.SESSION);\n}\n\nexport async function authenticateByToken(\n providerId: string,\n token: string,\n process: AuthProcessType = AuthProcess.LOGIN\n): Promise {\n return await request(\"POST\", URLs.PROVIDER_TOKEN, {\n provider: providerId,\n token,\n process,\n });\n}\n\nexport function redirectToProvider(\n providerId: string,\n callbackURL: string,\n process: AuthProcessType = AuthProcess.LOGIN\n): void {\n postForm(URLs.REDIRECT_TO_PROVIDER, {\n provider: providerId,\n process,\n callback_url:\n window.location.protocol + \"//\" + window.location.host + callbackURL,\n csrfmiddlewaretoken: getCSRFToken() as string,\n });\n}\n\nexport async function getWebAuthnCreateOptions(\n passwordless?: boolean\n): Promise {\n let url = URLs.WEBAUTHN_AUTHENTICATOR;\n if (passwordless) {\n url += \"?passwordless\";\n }\n return await request(\"GET\", url);\n}\n\nexport async function getWebAuthnCreateOptionsAtSignup(): Promise {\n return await request(\"GET\", URLs.SIGNUP_WEBAUTHN);\n}\n\nexport async function addWebAuthnCredential(\n name: string,\n credential: any\n): Promise {\n return await request(\"POST\", URLs.WEBAUTHN_AUTHENTICATOR, {\n name,\n credential,\n });\n}\n\nexport async function signupWebAuthnCredential(\n name: string,\n credential: any\n): Promise {\n return await request(\"PUT\", URLs.SIGNUP_WEBAUTHN, {\n name,\n credential,\n });\n}\n\nexport async function deleteWebAuthnCredential(\n ids: string[]\n): Promise {\n return await request(\"DELETE\", URLs.WEBAUTHN_AUTHENTICATOR, {\n authenticators: ids,\n });\n}\n\nexport async function updateWebAuthnCredential(\n id: string,\n data: any\n): Promise {\n return await request(\"PUT\", URLs.WEBAUTHN_AUTHENTICATOR, { id, ...data });\n}\n\nexport async function getWebAuthnRequestOptionsForReauthentication(): Promise {\n return await request(\"GET\", URLs.REAUTHENTICATE_WEBAUTHN);\n}\n\nexport async function reauthenticateUsingWebAuthn(\n credential: any\n): Promise {\n return await request(\"POST\", URLs.REAUTHENTICATE_WEBAUTHN, { credential });\n}\n\nexport async function authenticateUsingWebAuthn(\n credential: any\n): Promise {\n return await request(\"POST\", URLs.AUTHENTICATE_WEBAUTHN, { credential });\n}\n\nexport async function loginUsingWebAuthn(\n credential: any\n): Promise {\n return await request(\"POST\", URLs.LOGIN_WEBAUTHN, { credential });\n}\n\nexport async function getWebAuthnRequestOptionsForLogin(): Promise {\n return await request(\"GET\", URLs.LOGIN_WEBAUTHN);\n}\n\nexport async function getWebAuthnRequestOptionsForAuthentication(): Promise {\n return await request(\"GET\", URLs.AUTHENTICATE_WEBAUTHN);\n}\n\nexport function setup(\n client: ClientType,\n baseUrl: string,\n withCredentials: boolean\n): void {\n settings.client = client;\n settings.baseUrl = baseUrl;\n settings.withCredentials = withCredentials;\n}\n","import { useEffect, createContext, useState } from \"react\";\nimport { getAuth, getConfig } from \"../../utils/allauth\";\n\nexport interface AuthContextType {\n auth: any;\n config?: {\n status: number;\n [key: string]: any;\n };\n}\n\nexport const AuthContext = createContext(null);\n\nexport function AuthContextProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [auth, setAuth] = useState({ status: 200 });\n const [config, setConfig] = useState<{ status: number; data?: any }>({\n status: 200,\n });\n\n useEffect(() => {\n const fetchData = async () => {\n try {\n const [authData, configData] = await Promise.all([\n getAuth(),\n getConfig(),\n ]);\n setAuth(authData);\n setConfig(configData);\n } catch (error) {\n setAuth({ status: 200, data: { isAuthenticated: false } });\n setConfig({ status: 200, data: {} });\n }\n };\n\n fetchData();\n\n // Auth change listener\n const onAuthChanged = (e: CustomEvent) => {\n setAuth(e.detail);\n };\n\n document.addEventListener(\n \"allauth.auth.change\",\n onAuthChanged as EventListener\n );\n\n return () => {\n document.removeEventListener(\n \"allauth.auth.change\",\n onAuthChanged as EventListener\n );\n };\n }, []);\n\n const loading = !auth || !config || config.status !== 200;\n\n if (loading) {\n return
Starting...
;\n }\n\n if (config.status !== 200) {\n return
Error loading configuration
;\n }\n\n return (\n \n {children}\n \n );\n}\n","var _circle, _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 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 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, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n id: \"icon\",\n cx: 16,\n cy: 16,\n r: 16\n })), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n id: \"X\",\n points: \"24.5,21.7 18.8,16 24.5,10.3 21.7,7.5 16,13.2 10.3,7.5 7.5,10.3 13.2,16 7.5,21.7 10.3,24.5 16,18.8 21.7,24.5 \",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.b86cb55f.svg\";\nexport { ForwardRef as ReactComponent };","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 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 { 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","export default __webpack_public_path__ + \"static/media/shirt_onerror.f548e5b7.png\";","import { TFunction } from \"i18next\";\nimport { IElementStat } from \"../core/store/element-stats/types\";\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 bonus: {\n description: t(\n \"stats.bonus.description\",\n \"The three best performing players in each match will receive additional bonus points: 3 points will be awarded to the highest scoring player, 2 to the second best and 1 to the third. More information on this season's bonus system will be updated before the first round.\"\n ),\n label: t(\"stats.bonus.label\", \"Bonus\"),\n },\n // opta_index: {\n // description: t(\n // \"stats.opta_index.description\",\n // \"The Opta Index provides player ratings for a specific match, based on totals in a variety of statistics.\"\n // ),\n // label: t(\"stats.opta_index.label\", \"Opta index\"),\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\nexport const excludedStats = [\"opta_index\"];\n\nexport const getIncludedStats = (stats: readonly IElementStat[]) =>\n stats.filter((stat) => !excludedStats.includes(stat.name));\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 }) => (noRadius ? 0 : \".25rem\")};\n\n ${(props) =>\n props.type === \"error\" &&\n css`\n background-color: ${props.theme.colors.error};\n color: white;\n `}\n\n ${(props) =>\n props.type === \"success\" &&\n css`\n background-color: ${props.theme.colors.success};\n `}\n\n ${(props) =>\n props.type === \"warning\" &&\n css`\n background-color: #ffe65b;\n `}\n\n ${(props) =>\n props.type === \"info\" &&\n css`\n background-color: ${({ theme }) => theme.colors.blueDarker4};\n color: ${({ theme }) => theme.colors.white};\n `}\n\n ${(props) =>\n (props.copnr || props.copnr === 0) &&\n css`\n background-color: ${props.theme.colors.elementStatus[props.copnr].bg};\n color: ${props.theme.colors.elementStatus[props.copnr].color};\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 copnr?: number | null;\n type: \"error\" | \"success\" | \"warning\" | \"info\" | \"news\";\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 copnr = null,\n textAlign = \"center\",\n type,\n noRadius = false,\n}) => (\n \n {children}\n \n);\n\nexport default Alert;\n","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.2rem;\n background-color: transparent;\n font-size: 1.6rem;\n color: ${({ theme }) => theme.colors.whiteDarker2};\n line-height: 1;\n font-weight: 500;\n font-family: ${({ theme }) => theme.fonts.impactMedium};\n border-radius: 0;\n box-sizing: border-box;\n cursor: pointer;\n transition: all 250ms linear;\n text-decoration: none;\n border-radius: 40px;\n `,\n primary: css`\n background-color: ${({ theme }) => theme.colors.red};\n\n &:hover {\n color: ${({ theme }) => theme.colors.whiteDarker2};\n background-color: ${({ theme }) => theme.colors.redDarker};\n }\n `,\n secondary: css`\n background-color: ${({ theme }) => theme.colors.blueDarker4};\n color: ${({ theme }) => theme.colors.white};\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.blueDarker1};\n }\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.6rem;\n padding: 0.8rem;\n `,\n sm: css`\n font-size: 24px;\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 === \"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 border: 2px solid ${theme.colors.purple4};\n background-color: ${theme.colors.greyDarker2};\n color: ${theme.colors.blackLighter};\n cursor: auto;\n\n &:hover {\n background-color: ${theme.colors.greyDarker2};\n color: ${theme.colors.blackLighter};\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.Ref;\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}\n\nconst Button: React.ForwardRefExoticComponent = 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 ...props\n }: IProps,\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 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 { 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`;\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: 0;\n border-radius: ${(props) => props.theme.radii[0]};\n /* Ugly hack to deal with sub-pixel rounding in chrome bug causing blurry content with transform */\n width: 640px;\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 flex: 1;\n margin: ${({ theme }) =>\n `${theme.space[2]} ${theme.space[2]} ${theme.space[1]}`};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${(props) => props.theme.radii[0]};\n background: ${(props) => props.theme.colors.blueDarker4};\n font-family: ${({ theme }) => theme.fonts.impactMedium};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n color: ${(props) => props.theme.colors.white};\n text-align: center;\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\ninterface IStyledHeaderProps {\n variant?: \"light\" | undefined;\n}\n\ntype DialogHeaderProps = IDialogHeaderProps & IStyledHeaderProps;\n\nconst DialogHeader: React.FC = ({\n children,\n variant,\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 ${(props) =>\n props.isPadded &&\n css`\n padding: ${props.theme.space[4]} ${props.theme.space[3]};\n `};\n > ul {\n padding: 0;\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 Badge from \"./Badge\";\nimport { IFixture } from \"../core/store/fixtures/types\";\nimport { IElement, IElementFixture } from \"../core/store/elements/types\";\nimport { useTranslation } from \"react-i18next\";\nimport { ITeamsById } from \"../core/store/teams/types\";\n\ninterface IProps {\n showBadge?: boolean;\n fixture: IFixture | IElementFixture;\n element: IElement;\n teamsById: ITeamsById;\n}\n\nconst FixtureForElement: React.FC = ({\n showBadge = false,\n fixture,\n element,\n teamsById,\n}) => {\n const isHome = element.team === fixture.team_h;\n const { t } = useTranslation();\n return isHome ? (\n <>\n {showBadge && (\n \n )}\n \n {teamsById[fixture.team_a].short_name} (\n {t(\"elementDialog.tabs.history.homeShort\", \"H\")})\n \n \n ) : (\n <>\n {showBadge && (\n \n )}\n \n {teamsById[fixture.team_h].short_name} (\n {t(\"elementDialog.tabs.history.awayShort\", \"A\")})\n \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\";\nimport styled from \"styled-components/macro\";\n\nconst StyledPanel = styled.div`\n margin: 0;\n border: 1px solid ${({ theme }) => theme.colors.white};\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: transparent;\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[4]} ${({ theme }) => theme.space[3]};\n border-top-left-radius: ${({ theme }) => theme.radii[0]};\n border-top-right-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.bgWhiteOpacity50};\n`;\n\nconst PanelHeading = styled.h3`\n flex: 1;\n margin: 0;\n font-size: 2rem;\n font-family: ${({ theme }) => theme.fonts.impact};\n line-height: 1;\n`;\n\nconst StyledPanelFooter = styled.div`\n padding: ${({ theme }) => theme.space[1]} ${({ theme }) => theme.space[2]};\n text-align: left;\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}\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 = true } = this.props;\n return (\n <>\n {children}\n \n );\n }\n}\n\nexport default Panel;\n","import styled, { css } from \"styled-components/macro\";\n\nconst ScorePrefixStyles = css`\n display: inline-block;\n width: ${({ theme }) => theme.space[5]};\n height: ${({ theme }) => theme.space[5]};\n border-radius: 100%;\n font-size: ${({ theme }) => theme.fontSizes[2]};\n line-height: 2.6rem;\n text-align: center;\n vertical-align: middle;\n`;\n\nexport const WinPrefix = styled.span`\n ${ScorePrefixStyles}\n color: ${({ theme }) => theme.colors.white};\n background-color: ${({ theme }) => theme.colors.successDark};\n`;\n\nexport const LosePrefix = styled.span`\n ${ScorePrefixStyles}\n color: ${({ theme }) => theme.colors.white};\n background-color: ${({ theme }) => theme.colors.error};\n`;\n\nexport const DrawPrefix = styled.span`\n ${ScorePrefixStyles}\n color: ${({ theme }) => theme.colors.white};\n background-color: ${({ theme }) => theme.colors.blackLighter}; ;\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 { rgba } from \"polished\";\nimport * 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: inherit;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n text-align: center;\n text-decoration: none;\n transition: all 0.2s;\n\n ${(props) =>\n props.selected &&\n css`\n background-color: white;\n box-shadow: 0 3px 4px 0 ${rgba(\"black\", 0.08)},\n 0 3px 3px -2px ${rgba(\"black\", 0.08)},\n 0 1px 8px 0 ${rgba(\"black\", 0.16)};\n border-radius: ${({ theme }) => theme.radii[1]};\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: ${({ theme }) => theme.colors.primary};\n`;\n\nconst TabList = styled.ul`\n display: flex;\n align-items: center;\n margin: 0;\n padding: 3px;\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: ${({ theme }) => theme.colors.primary};\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 _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 SvgEsLionLogo(_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: 32,\n height: 25,\n viewBox: \"0 0 32 25\",\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_1_17)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.41 10.1663C31.027 6.7692 24.6698 1.77739 22.9803 0.964876C22.8207 0.413399 22.7445 0.00714106 22.163 0.00179556C16.5095 -0.0489867 12.5447 0.980022 8.67552 2.75562C7.25019 3.40955 6.55702 4.21316 5.93654 5.6903C5.55539 5.94064 1.94862 8.73456 1.09146 9.43036C0.234314 10.1262 1.48591 11.826 2.08867 12.5388C2.50439 13.0306 2.80133 13.3433 3.02116 13.5099C3.2401 13.6765 3.36243 13.5909 4.20983 13.4546C4.62112 14.0025 5.73267 14.9024 6.8389 14.8543C6.54018 14.6315 6.26805 13.7914 6.2193 13.2666C8.64095 13.0386 10.513 14.4052 11.145 15.7888C6.58893 15.1224 5.89399 15.9287 4.01659 17.1341C2.28545 18.2451 1.08703 18.3859 0.00119019 17.5145C1.08437 21.6074 5.38963 18.1302 6.37176 17.8843C6.26273 19.4861 6.65541 20.5846 7.36719 21.2172C8.09227 20.3361 9.49012 19.757 11.3259 19.6456L5.9977 25.0009H27.4646C29.272 21.0506 30.2115 17.1314 30.4916 14.9389C30.5227 15.0173 31.2282 15.6641 32.0012 15.7202C31.6245 14.4115 31.7982 13.607 31.41 10.168V10.1663ZM26.283 17.1519C26.026 15.6997 25.3514 13.9821 24.1876 13.1268C21.3342 19.3757 17.77 18.9275 15.7313 23.5612C13.5073 19.2474 19.034 18.4144 17.6601 13.2782L14.6321 16.3216C15.6435 14.0613 16.0788 11.5891 14.6747 9.89631C13.2937 8.23119 9.72502 8.44857 8.04883 9.52034C9.44314 10.2901 10.6868 11.1908 11.45 12.6341C8.82798 11.2434 5.70253 11.4652 2.98925 12.3686C2.87579 12.259 2.75701 12.1218 2.63824 11.9695C3.13817 11.4037 3.73915 10.2162 3.62923 9.84464C3.038 10.3516 2.48578 10.7712 2.01864 11.0518C1.83072 10.7356 1.66319 10.4211 1.54087 10.1582C2.72954 9.24594 5.5022 7.03736 6.22905 6.49212C6.54993 5.82839 7.2883 4.67109 8.46012 4.10536C12.3488 2.22463 17.7124 1.41479 20.4469 1.39875C21.0781 4.47063 19.0447 7.17545 19.0322 7.22C19.0695 6.06893 18.8816 4.07061 18.098 3.22424C17.3312 3.28571 14.8706 3.70533 12.5801 4.43143C17.3339 5.6609 19.143 8.5733 19.8203 11.1071L24.7814 6.12061C25.9568 8.35859 27.6108 11.8465 26.2839 17.1519H26.283ZM8.47519 5.27424C7.96551 5.74375 7.47888 6.46539 7.25994 7.13536C8.12861 7.27345 9.13468 7.63427 9.32969 7.75009C10.0353 6.22039 11.1778 5.19495 11.6787 4.73791C10.568 5.14149 9.82873 5.4836 8.63652 6.26315C8.58333 5.86581 8.53813 5.40431 8.47608 5.27424H8.47519Z\",\n fill: \"#114387\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1_17\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 32,\n height: 25,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEsLionLogo);\nexport default __webpack_public_path__ + \"static/media/es-lion-logo.a0bd8480.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 { 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","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 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 width: 11,\n height: 16,\n viewBox: \"0 0 11 16\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.06721 10.1L6.81236 16L11 16L3.16348 8L11 1.31174e-07L6.83195 8.14702e-08L1.06721 5.85L0.714564 6.21C0.256959 6.67861 1.03588e-07 7.31331 9.56972e-08 7.975C8.78066e-08 8.63669 0.256959 9.27139 0.714564 9.74L1.06721 10.1Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-left.57d2d031.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { size } from \"polished\";\nimport { ReactComponent as EliteSerienLogo } from \"../img/logos/es-lion-logo.svg\";\n\ninterface ILogoProps {\n justifyContent: string;\n}\n\nconst StyledLogoBar = styled.div`\n display: flex;\n justify-content: ${({ justifyContent }) => justifyContent};\n margin-top: ${({ theme }) => theme.space[5]};\n margin-bottom: ${({ theme }) => theme.space[3]};\n padding: ${({ theme }) => theme.space[2]};\n border: 1px solid ${({ theme }) => theme.colors.primary};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: ${({ theme }) => theme.radii[0]};\n }\n\n ${({ justifyContent }) =>\n (justifyContent === \"flex-start\" || justifyContent === \"space-between\") &&\n css`\n padding-left: 55px;\n `}\n`;\n\nconst Logo = styled(EliteSerienLogo)`\n ${size(24, 32)};\n margin-right: 1.6rem;\n`;\n\ninterface IProps {\n children: React.ReactNode;\n justifyContent?: string;\n}\n\nconst LogoBar: React.FC = ({\n children,\n justifyContent = \"right\",\n ...props\n}) => {\n return (\n \n \n {children}\n \n );\n};\n\nexport default LogoBar;\n","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 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 width: 11,\n height: 16,\n viewBox: \"0 0 11 16\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.93279 5.9L4.18764 -2.97778e-07L0 -4.80825e-07L7.83652 8L-6.99382e-07 16L4.16805 16L9.93279 10.15L10.2854 9.79C10.743 9.32139 11 8.68669 11 8.025C11 7.36331 10.743 6.72861 10.2854 6.26L9.93279 5.9Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRight);\nexport default __webpack_public_path__ + \"static/media/arrow-right.1e28a3e8.svg\";\nexport { ForwardRef as ReactComponent };","var _rect, _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 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 width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\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, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"none\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.33334 13L3.33334 3L6.00001 3V7.16667L12.6667 3L12.6667 13L6.00001 8.83333L6.00001 13H3.33334Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDoubleLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-double-left.af7cb146.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 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 width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.6667 8.83333L4 13V3L10.6667 7.16667V3H13.3333V13H10.6667V8.83333Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDoubleRight);\nexport default __webpack_public_path__ + \"static/media/arrow-double-right.263aabc0.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 SvgArrowRightLong(_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: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.055 8.47084C13.4466 8.08016 13.6666 7.55035 13.6666 6.99793C13.6666 6.4455 13.4466 5.91569 13.055 5.52501L12.7584 5.22918L7.85354 0.333344H4.29814L9.72942 5.75001H0.333313V8.25001H9.72942L4.29814 13.6667H7.85354L12.7584 8.77084L13.055 8.47084Z\",\n fill: \"#100118\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRightLong);\nexport default __webpack_public_path__ + \"static/media/arrow-right-long.671120fb.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 SvgArrowLeftLong(_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: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.94497 5.52925C0.553352 5.91993 0.333354 6.44974 0.333354 7.00216C0.333354 7.55459 0.553352 8.0844 0.94497 8.47508L1.2416 8.77091L6.14646 13.6667L9.70186 13.6667L4.27058 8.25008L13.6667 8.25008L13.6667 5.75008L4.27058 5.75008L9.70186 0.333415L6.14646 0.333414L1.2416 5.22925L0.94497 5.52925Z\",\n fill: \"#100118\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeftLong);\nexport default __webpack_public_path__ + \"static/media/arrow-left-long.1058e616.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\";\nimport { ReactComponent as ArrowRightLongIcon } from \"../../img/icons/arrow-right-long.svg\";\nimport { ReactComponent as ArrowLeftLongIcon } from \"../../img/icons/arrow-left-long.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 ArrowRightLong = styled(ArrowRightLongIcon)`\n fill: ${(props) =>\n props.color ? props.theme.colors[props.color] : \"currentColor\"};\n`;\n\nexport const ArrowLeftLong = styled(ArrowLeftLongIcon)`\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`;\n\nexport const ControlArrowLeft = styled(ArrowLeft)`\n ${size(\"16px\")};\n margin-right: 0.5rem;\n`;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport styled from \"styled-components/macro\";\nimport LogoBar from \"../LogoBar\";\nimport SubHeading from \"../SubHeading\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\n\ninterface IProps {\n title: string;\n link?: string;\n showMoreLink?: boolean;\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.red};\n text-decoration: none;\n font-weight: 600;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nconst StyledProviderHeader = styled.header`\n margin-bottom: ${({ theme }) => theme.space[2]};\n`;\n\nconst StyledLogoBar = styled(LogoBar)`\n border: none;\n justify-content: space-between;\n > :first-child {\n display: none;\n }\n`;\n\nconst ProviderHeader: React.FC = ({\n title,\n link,\n showMoreLink = true,\n}) => {\n const { t } = useTranslation();\n return (\n \n \n {title}\n {showMoreLink && (\n \n {t(\"scout.more\", \"More\")}\n \n \n )}\n \n \n );\n};\n\nexport default ProviderHeader;\n","import styled, { css } from \"styled-components\";\n\n// Shared components in Scout and Highlights provider\nexport const ProviderLink = styled.a`\n color: #000;\n text-decoration: none;\n`;\n\nexport const ProviderArticleImg = styled.img<{\n aspectRatio?: boolean | \"default\";\n}>`\n width: 100%;\n object-fit: cover;\n object-position: top;\n border-radius: ${({ theme }) => theme.radii[1]};\n ${({ aspectRatio = true }) =>\n aspectRatio &&\n css`\n aspect-ratio: 14/9;\n `};\n`;\n\nconst ProviderContentStyles = css`\n flex-wrap: nowrap;\n flex-direction: row;\n`;\n\nexport const ProviderContent = styled.div<{\n backgroundColor: string;\n wide?: boolean | \"default\";\n}>`\n display: flex;\n flex-direction: column;\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: ${(props) => props.backgroundColor};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${ProviderContentStyles}\n }\n\n ${({ wide = false }) =>\n wide &&\n css`\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n ${ProviderContentStyles}\n }\n `};\n`;\n\nexport const ProviderSection = styled.section`\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding: ${({ theme }) => theme.space[2]};\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: ${({ theme }) => theme.space[0]};\n }\n`;\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styled from \"styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getURL } from \"../../core/store/urls/reducers\";\nimport { fetchURL } from \"../../core/store/urls/thunks\";\nimport i18n from \"../../i18n\";\nimport ProviderHeader from \"../provider-components/ProviderHeader\";\nimport {\n ProviderArticleImg,\n ProviderContent,\n ProviderLink,\n ProviderSection,\n} from \"../provider-components/ProviderStyles\";\n\nconst Article = styled.article`\n padding: ${({ theme }) => `${theme.space[4]} ${theme.space[4]} 0`};\n cursor: pointer;\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.blueDarker4};\n\n ${ProviderLink} {\n color: ${({ theme }) => theme.colors.white};\n }\n }\n`;\n\ninterface IProps {\n url: string;\n numberOfHighlights: number;\n}\ninterface IHighlights {\n title: string;\n images: { defaultUrl: string };\n frontend_url: string;\n id: string;\n}\n\nconst HighlightsProvider: React.FC = ({ url, numberOfHighlights }) => {\n const [highlightsData, sethighlightsData] = useState<[] | null>(null);\n\n // Fetch feed\n const reduxDispatch = useDispatch();\n useEffect(() => {\n reduxDispatch(fetchURL(url));\n }, [reduxDispatch, url]);\n\n // Get raw feed content, will be null until we have some\n const content = useSelector((state: RootState) => getURL(state, url));\n const slugify = (value: string) => {\n return value\n ? value\n .toString()\n .toLowerCase()\n .replace(/æ/g, \"ae\")\n .replace(/ø/g, \"o\")\n .replace(/å/g, \"a\")\n .normalize(\"NFD\")\n .replace(/[^a-z0-9- ]/g, \"\")\n .replace(/ +/g, \" \")\n .trim()\n .replace(/ - /g, \"-\")\n .replace(/ /g, \"-\")\n : \"\";\n };\n\n const slugifyTitle = (asset: { title: string }) => {\n if (!asset) return \"/slug\";\n const maxTitleLength = 50;\n const titleToSlugify = asset.title?.substring(0, maxTitleLength) || \"\";\n return titleToSlugify ? `/${slugify(titleToSlugify)}` : \"\";\n };\n\n const createVideoPlayerUrl = (\n asset: { title: string; [x: string]: any; id: any },\n turneringType: string\n ) => {\n const slug = slugifyTitle(asset).substring(1); // Remove leading slash\n const idField =\n turneringType === \"spiller\" ? \"tv2-player-id\" : \"tv2-tournament-id\";\n let urlStart = \"https://www.stage.tv2.no\";\n if (process.env.REACT_APP_SENTRY_ENVIRONMENT === \"production\") {\n urlStart = \"https://www.tv2.no\";\n }\n return `${urlStart}/video/sportauto/fotball/${turneringType}/${slug}/${asset[idField]}/all/${asset.id}`;\n };\n\n // Parse feed data\n useEffect(() => {\n const parseContent = async () => {\n try {\n const feed = await JSON.parse(content.text);\n if (feed && feed.data) {\n const filteredSslFeedItems = feed.data.splice(0, numberOfHighlights);\n sethighlightsData(filteredSslFeedItems);\n }\n } catch (e) {}\n };\n if (content) {\n parseContent();\n }\n }, [content, numberOfHighlights]);\n if (!highlightsData) {\n return null;\n }\n return (\n \n \n \n {highlightsData.map((item: IHighlights) => (\n
\n \n \n

{item.title}

\n \n
\n ))}\n
\n
\n );\n};\n\nexport default HighlightsProvider;\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 { formatRawAsLocal, formatRawAsLocalI18n } from \"../core/utils/datetime\";\nimport { integerToMoney } from \"../core/utils/money\";\nimport { dateLocales } from \"../i18n\";\nimport OnErrorImg from \"../img/headshots/shirt_onerror.png\";\nimport { getIncludedStats } from \"../utils/stats\";\nimport Alert from \"./Alert\";\nimport Badge from \"./Badge\";\nimport Button from \"./Button\";\nimport Dialog from \"./Dialog\";\n\nimport FixtureForElement from \"./FixtureForElement\";\nimport \"./OverflowScrolling.css\";\nimport Panel from \"./Panel\";\nimport { DrawPrefix, LosePrefix, WinPrefix } from \"./ScorePrefix\";\nimport SubHeading from \"./SubHeading\";\nimport Table from \"./Table\";\nimport TabPanel from \"./tabs/TabPanel\";\nimport Tabs from \"./tabs/Tabs\";\nimport Tooltip, { TooltipLabel } from \"./Tooltip\";\nimport HighlightsProvider from \"./highlights/HighlightsProvider\";\n\nconst TabsWrapper = styled.div`\n padding: 20px 10px 10px 10px;\n`;\n\nconst Summary = styled.div`\n padding: ${({ theme }) => theme.space[3]} 0;\n`;\n\nconst Card = styled.div`\n position: relative;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n min-height: 140px;\n padding: ${({ theme }) => theme.space[2]};\n border: 2px solid ${({ theme }) => theme.colors.blueDarker4};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: linear-gradient(0deg, rgba(222, 242, 248, 0) 0%, #fff 100%),\n linear-gradient(90deg, #def2f8 0%, #e7d6f4 100%);\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 CardInfo = styled.div`\n width: 58%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 40%;\n }\n`;\n\nconst Img = styled.img`\n position: absolute;\n bottom: 0;\n left: -23px;\n max-width: 180px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n left: -10px;\n max-width: 180px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n left: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n left: 50px;\n max-width: 175px;\n }\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\nconst HeaderWrap = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst ElementDialogHeaderWrap = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.space[1]};\n margin-right: ${({ theme }) => theme.space[3]};\n`;\n\nconst ElementHeader = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: ${({ theme }) => theme.space[4]};\n width: 100%;\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[0]};\n background-color: ${({ theme }) => theme.colors.blueDarker4};\n line-height: 1;\n`;\n\nconst NameMoneyWrap = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.space[4]};\n`;\n\nconst ElementMoney = styled.span`\n display: flex;\n align-items: center;\n max-width: 75px;\n max-height: 40px;\n padding: ${({ theme }) => theme.space[1]} ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: white;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n font-weight: 600;\n color: ${({ theme }) => theme.colors.blueDarker4};\n line-height: 1;\n`;\n\nconst ElementFullName = styled.h1`\n margin: 0;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: ${({ theme }) => theme.fontSizes[5]};\n font-weight: 600;\n color: white;\n text-align: left;\n line-height: 1;\n`;\n\nconst FixtureForElementWrap = styled.div`\n display: flex;\n gap: 2rem;\n align-items: center;\n`;\n\nconst StyledTableHeadOne = styled.th`\n width: 10%;\n`;\n\nconst StyledTableHeadTwo = styled.th`\n width: 25%;\n`;\n\nconst TeamBadge = styled.img`\n max-width: 50px;\n max-height: 50px;\n`;\n\nconst ElementInfo = styled.ul`\n margin: 0;\n padding: 0;\n list-style-type: none;\n`;\n\nconst ElementInfoItem = styled.li`\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid #f2f2f2;\n background-color: ${({ theme }) => theme.colors.blueDarker4};\n color: white;\n\n :first-of-type {\n border-top-left-radius: ${({ theme }) => theme.radii[0]};\n border-top-right-radius: ${({ theme }) => theme.radii[0]};\n }\n\n :last-of-type {\n border-bottom-right-radius: ${({ theme }) => theme.radii[0]};\n border-bottom-left-radius: ${({ theme }) => theme.radii[0]};\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`;\n\nconst ElementInfoValue = styled.div`\n padding: 10px;\n width: 50%;\n font-size: 14px;\n line-height: 1;\n`;\n\nconst TableHeading = styled.h3`\n padding: 5px 10px;\n font-weight: 600;\n margin-top: 0;\n margin-bottom: 0;\n background: #003b5c;\n color: white;\n font-family: \"TV 2 Text Light\", \"Helvetica\", \"Arial\", sans-serif;\n text-transform: none;\n font-size: 16px;\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: 50px;\n border-bottom-right-radius: ${({ theme }) => theme.radii[0]};\n border-bottom-left-radius: ${({ theme }) => theme.radii[0]};\n background-color: #efefef;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-height: 172px;\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}\ninterface IHighlights {\n url: string;\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 // currentEvent,\n // nextEvent,\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)}m`;\n const includedStats = getIncludedStats(stats);\n\n let hpHighlightsUrl = `https://tv2news.content-discovery.cf.eu-north-1-preprod.vmnd.tv/api/v1/assets?platform=web&page%5Bsize%5D=5&page%5Bnumber%5D=1&query=%28fiks-id-player%3A%22person-${element.fiks_id}%22%20AND%20%28type-of-action%3AGoal%20OR%20type-of-action%3ARedCard%29%20AND%20%28tv2-tournament-id%3A%2256f79b03-9608-4b12-9903-2ebaa1a07922%22%20OR%20tv2-tournament-id%3A%22e53e02b8-a512-51d3-aa98-ceda8e3a01b1%22%29%29`;\n const production_url = `https://tv2news.content-discovery.cf.eu-north-1-prod.vmnd.tv/api/v1/assets?platform=web&page%5Bsize%5D=5&page%5Bnumber%5D=1&query=%28fiks-id-player%3A%22person-${element.fiks_id}%22%20AND%20%28type-of-action%3AGoal%20OR%20type-of-action%3ARedCard%29%20AND%20tv2-tournament-id%3A%22e53e02b8-a512-51d3-aa98-ceda8e3a01b1%22%29`;\n if (process.env.REACT_APP_SENTRY_ENVIRONMENT === \"production\") {\n hpHighlightsUrl = production_url;\n }\n\n const highlights: IHighlights[] = [\n {\n url: hpHighlightsUrl,\n },\n ];\n\n return (\n \n \n \n \n \n \n {elementFullname}\n {elementCost}\n \n \n \n\n {/* \n \n \n \n \n \n
\n {t(\"elementDialog.playerProfile\", \"View player profile\")}\n
\n
\n
\n
*/}\n
\n \n
\n \n {element.news && (\n \n \n {element.news}\n \n \n )}\n \n \n \n \n \n {\n e.currentTarget.src = `${OnErrorImg}`;\n }}\n />\n\n \n \n \n \n {t(\n \"elementDialog.tabs.summary.position\",\n \"Position\"\n )}\n :\n \n \n {elementType.singular_name}\n \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 {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 {t(\n \"elementDialog.tabs.summary.recentMatches.roundLabel\",\n \"RD\"\n )}\n \n \n \n \n \n {t(\n \"elementDialog.tabs.summary.recentMatches.points\",\n \"Pts\"\n )}\n \n \n \n \n {lastThreeHistory.map((h: IElementHistory) => {\n return (\n \n {h.round}\n \n \n \n (\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 {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 {h.total_points}\n \n );\n })}\n \n
\n {t(\n \"elementDialog.tabs.summary.recentMatches.opponent\",\n \"Opp\"\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 {t(\n \"elementDialog.tabs.summary.upcoming.roundLabel\",\n \"RD\"\n )}\n \n \n \n \n \n {t(\n \"elementDialog.tabs.summary.upcoming.date\",\n \"Date\"\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 {t(\n \"elementDialog.tabs.summary.upcoming.opponent\",\n \"Opp\"\n )}\n
\n
\n )}\n
\n
\n
\n \n\n \n {highlights.map((highlight: IHighlights) => (\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 \n {t(\n \"elementDialog.tabs.history.roundShort\",\n \"RD\"\n )}\n \n \n {t(\n \"elementDialog.tabs.history.opponentShort\",\n \"OPP\"\n )}\n \n \n {t(\n \"elementDialog.tabs.history.pointsShort\",\n \"PTS\"\n )}\n \n {includedStats.map((s) => (\n \n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\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].short_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 {h.total_points}\n {includedStats.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(\n \"elementDialog.tabs.history.totals\",\n \"Totals\"\n )}\n \n {historyTotals.total_points}\n {includedStats.map((s) => (\n {historyTotals[s.name]}\n ))}\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 \n {t(\n \"elementDialog.tabs.history.season\",\n \"Season\"\n )}\n \n \n \n TP\n \n \n {includedStats.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 \n {t(\"elementDialog.tabs.schedule.subHeading\", \"This Season\")}\n \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 \n {t(\"elementDialog.tabs.schedule.roundShort\", \"RD\")}\n \n {t(\n \"elementDialog.tabs.schedule.opponent\",\n \"Opponent\"\n )}\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\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 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).slice().reverse(),\n stats: getElementStats(state),\n teamsById: getTeamsById(state),\n watched: getWatched(state),\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","export default __webpack_public_path__ + \"static/media/player-comp@1x.df79c043.png\";","export default __webpack_public_path__ + \"static/media/player-comp@2x.8e03ef1b.png\";","export default __webpack_public_path__ + \"static/media/player-comp2@1x.6c27ea30.png\";","export default __webpack_public_path__ + \"static/media/player-comp2@2x.4715ccb8.png\";","export default __webpack_public_path__ + \"static/media/player-comp3@1x.e5e86e43.png\";","export default __webpack_public_path__ + \"static/media/player-comp3@2x.ea213f25.png\";","export default __webpack_public_path__ + \"static/media/player-comp4@1x.4bf6084d.png\";","export default __webpack_public_path__ + \"static/media/player-comp4@2x.b3dc06bb.png\";","export default __webpack_public_path__ + \"static/media/player-comp5@1x.d57a0dfe.png\";","export default __webpack_public_path__ + \"static/media/player-comp5@2x.2879743f.png\";","export default __webpack_public_path__ + \"static/media/player-comp6@1x.f6adce86.png\";","export default __webpack_public_path__ + \"static/media/player-comp6@2x.79b7254a.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide@1x.845b064b.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide@2x.138d46b2.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide2@1x.9becfc10.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide2@2x.1a9874d8.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide3@1x.884b2663.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide3@2x.d70d8f51.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide4@1x.3f2efe15.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide4@2x.ced703de.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide5@1x.bd6b7b1b.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide5@2x.e346efcd.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide6@1x.1a6e9b54.png\";","export default __webpack_public_path__ + \"static/media/player-comp-wide6@2x.a69f4dcb.png\";","import playerComp1 from \"../img/player-comps/player-comp@1x.png\";\nimport playerComp1x2 from \"../img/player-comps/player-comp@2x.png\";\nimport playerComp2 from \"../img/player-comps/player-comp2@1x.png\";\nimport playerComp2x2 from \"../img/player-comps/player-comp2@2x.png\";\nimport playerComp3 from \"../img/player-comps/player-comp3@1x.png\";\nimport playerComp3x2 from \"../img/player-comps/player-comp3@2x.png\";\nimport playerComp4 from \"../img/player-comps/player-comp4@1x.png\";\nimport playerComp4x2 from \"../img/player-comps/player-comp4@2x.png\";\nimport playerComp5 from \"../img/player-comps/player-comp5@1x.png\";\nimport playerComp5x2 from \"../img/player-comps/player-comp5@2x.png\";\nimport playerComp6 from \"../img/player-comps/player-comp6@1x.png\";\nimport playerComp6x2 from \"../img/player-comps/player-comp6@2x.png\";\nimport playerCompWide1 from \"../img/player-comps/player-comp-wide@1x.png\";\nimport playerCompWide1x2 from \"../img/player-comps/player-comp-wide@2x.png\";\nimport playerCompWide2 from \"../img/player-comps/player-comp-wide2@1x.png\";\nimport playerCompWide2x2 from \"../img/player-comps/player-comp-wide2@2x.png\";\nimport playerCompWide3 from \"../img/player-comps/player-comp-wide3@1x.png\";\nimport playerCompWide3x2 from \"../img/player-comps/player-comp-wide3@2x.png\";\nimport playerCompWide4 from \"../img/player-comps/player-comp-wide4@1x.png\";\nimport playerCompWide4x2 from \"../img/player-comps/player-comp-wide4@2x.png\";\nimport playerCompWide5 from \"../img/player-comps/player-comp-wide5@1x.png\";\nimport playerCompWide5x2 from \"../img/player-comps/player-comp-wide5@2x.png\";\nimport playerCompWide6 from \"../img/player-comps/player-comp-wide6@1x.png\";\nimport playerCompWide6x2 from \"../img/player-comps/player-comp-wide6@2x.png\";\n\nexport interface IPlayerCompProps {\n images: Record;\n}\n\nlet choice = -1;\n\nexport const getPlayerComp = () => {\n const playerImages = [\n {\n x1: playerComp1,\n x2: playerComp1x2,\n x1wide: playerCompWide1,\n x2wide: playerCompWide1x2,\n },\n {\n x1: playerComp2,\n x2: playerComp2x2,\n x1wide: playerCompWide2,\n x2wide: playerCompWide2x2,\n },\n {\n x1: playerComp3,\n x2: playerComp3x2,\n x1wide: playerCompWide3,\n x2wide: playerCompWide3x2,\n },\n {\n x1: playerComp4,\n x2: playerComp4x2,\n x1wide: playerCompWide4,\n x2wide: playerCompWide4x2,\n },\n {\n x1: playerComp5,\n x2: playerComp5x2,\n x1wide: playerCompWide5,\n x2wide: playerCompWide5x2,\n },\n {\n x1: playerComp6,\n x2: playerComp6x2,\n x1wide: playerCompWide6,\n x2wide: playerCompWide6x2,\n },\n ];\n\n if (choice < 0) {\n choice = Math.floor(Math.random() * playerImages.length);\n }\n return playerImages[choice];\n};\n","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 _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 SvgArrowDown(_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: 14,\n height: 10,\n viewBox: \"0 0 14 10\",\n fill: \"currentColor\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.75002 9.1109L13.6667 4.32328L13.6667 0.833577L7.00002 7.36401L0.333354 0.833576L0.333354 4.30695L5.20835 9.1109L5.50835 9.40477C5.89887 9.78611 6.42778 10.0002 6.97919 10.0002C7.53059 10.0002 8.05951 9.78611 8.45002 9.40477L8.75002 9.1109Z\",\n fill: \"currentColor\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowDown);\nexport default __webpack_public_path__ + \"static/media/arrow-down.1b9b5ea4.svg\";\nexport { ForwardRef as ReactComponent };","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 { 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","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _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 SvgEsFantasyLogo(_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: 174,\n height: 38,\n viewBox: \"0 0 174 38\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.1401 19.787H67.2518V14.5162H78.2901V10.7908H63.1401V19.787ZM63.1401 31.7634H67.2518V23.4848H63.1401V31.7634ZM67.2518 23.4848H77.1311V19.787H67.2518V23.4848Z\",\n fill: \"#114387\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.0714 32.0394C88.3618 32.0394 90.2935 31.0459 91.2869 28.5347H91.5905V31.7634H95.4539V16.2547H91.5905V19.4558H91.2869C90.2935 16.9998 88.3618 15.9788 86.0714 15.9788C82.2632 15.9788 79.5588 19.0971 79.5588 24.0091C79.5588 28.9487 82.2632 32.0394 86.0714 32.0394ZM83.8637 24.0091C83.8637 21.1667 85.3815 19.3454 87.7271 19.3454C90.1003 19.3454 91.5905 21.1667 91.5905 24.0091C91.5905 26.8514 90.1003 28.6727 87.7271 28.6727C85.3815 28.6727 83.8637 26.8514 83.8637 24.0091Z\",\n fill: \"#114387\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.9226 31.7634H101.786V23.7055C101.786 20.9736 103.166 19.3454 105.511 19.3454C107.774 19.3454 109.126 20.808 109.126 23.54V31.7634H112.962V23.0156C112.962 18.5728 110.451 15.9788 107.084 15.9788C105.015 15.9788 103.083 17.0274 102.09 19.4834H101.786V16.2547H97.9226V31.7634Z\",\n fill: \"#114387\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.339 31.7634H124.423V28.2036H121.553C120.919 28.2036 120.726 28.0104 120.726 27.3757V19.511H124.423V16.2547H120.726V12.1706H116.89V16.2547H113.937V19.511H116.89V28.176C116.89 30.6596 118.104 31.7634 120.339 31.7634Z\",\n fill: \"#114387\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.208 32.0394C134.498 32.0394 136.43 31.0459 137.423 28.5347H137.727V31.7634H141.59V16.2547H137.727V19.4558H137.423C136.43 16.9998 134.498 15.9788 132.208 15.9788C128.399 15.9788 125.695 19.0971 125.695 24.0091C125.695 28.9487 128.399 32.0394 132.208 32.0394ZM130 24.0091C130 21.1667 131.518 19.3454 133.863 19.3454C136.237 19.3454 137.727 21.1667 137.727 24.0091C137.727 26.8514 136.237 28.6727 133.863 28.6727C131.518 28.6727 130 26.8514 130 24.0091Z\",\n fill: \"#114387\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M150.792 32.0394C154.628 32.0394 157.277 29.9973 157.277 27.2654C157.277 21.1667 147.95 22.8501 147.95 20.5044C147.95 19.787 148.667 19.3178 150.102 19.3178C151.62 19.3178 152.696 20.0077 153.027 21.1391H156.836C156.477 18.1588 153.773 15.9788 150.102 15.9788C146.598 15.9788 144.142 17.8277 144.142 20.5044C144.142 26.6031 153.469 24.699 153.469 27.2654C153.469 28.0932 152.614 28.7003 150.792 28.7003C148.971 28.7003 147.619 27.9 147.26 26.7134H143.452C143.838 29.8317 146.763 32.0394 150.792 32.0394Z\",\n fill: \"#114387\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M158.568 38H163.425C166.433 38 167.592 36.8686 167.592 33.8331V33.0328L173.829 16.2547H169.634L165.798 28.6727H165.522L161.411 16.2547H157.161L163.729 33.088V34.4954H158.568V38Z\",\n fill: \"#114387\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1_2)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46.1885 17.8261C45.662 13.2061 36.9207 6.41722 34.5977 5.3122C34.3783 4.56219 34.2735 4.00968 33.4739 4.00241C25.7004 3.93335 20.2487 5.3328 14.9286 7.74761C12.9688 8.63696 12.0157 9.72986 11.1625 11.7388C10.6385 12.0792 5.67914 15.879 4.50056 16.8253C3.32198 17.7716 5.04293 20.0834 5.87171 21.0527C6.44333 21.7215 6.85163 22.1468 7.1539 22.3734C7.45494 22.6 7.62313 22.4836 8.78831 22.2983C9.35383 23.0434 10.8822 24.2672 12.4033 24.2018C11.9925 23.8989 11.6184 22.7563 11.5513 22.0426C14.8811 21.7324 17.4552 23.5911 18.3242 25.4728C12.0596 24.5665 11.104 25.663 8.52261 27.3024C6.14229 28.8133 4.49447 29.0047 3.00143 27.8197C4.49081 33.386 10.4105 28.657 11.761 28.3226C11.6111 30.5011 12.151 31.9951 13.1297 32.8553C14.1267 31.657 16.0487 30.8694 18.5729 30.718L11.2466 38.0012H40.7636C43.2487 32.6288 44.5407 27.2987 44.9258 24.3169C44.9685 24.4235 45.9386 25.3031 47.0014 25.3795C46.4834 23.5996 46.7223 22.5055 46.1885 17.8285V17.8261ZM39.1389 27.3266C38.7855 25.3516 37.858 23.0156 36.2577 21.8524C32.3344 30.3509 27.4336 29.7414 24.6303 36.0432C21.5723 30.1764 29.1716 29.0435 27.2824 22.0584L23.119 26.1973C24.5096 23.1234 25.1081 19.7611 23.1775 17.459C21.2786 15.1944 16.3717 15.49 14.0669 16.9476C15.9841 17.9945 17.6941 19.2195 18.7435 21.1823C15.1383 19.291 10.8408 19.5927 7.11002 20.8213C6.95401 20.6722 6.79069 20.4856 6.62737 20.2785C7.31478 19.5091 8.14113 17.8939 7.98999 17.3887C7.17705 18.0781 6.41774 18.6488 5.77543 19.0305C5.51704 18.6003 5.28669 18.1726 5.11849 17.8152C6.75291 16.5745 10.5653 13.5708 11.5647 12.8293C12.0059 11.9266 13.0212 10.3526 14.6325 9.58325C19.9794 7.02547 27.3543 5.92408 31.1143 5.90227C31.9821 10.08 29.1862 13.7586 29.1691 13.8192C29.2203 12.2537 28.9619 9.536 27.8845 8.38493C26.8302 8.46854 23.4469 9.03922 20.2975 10.0267C26.8339 11.6988 29.3215 15.6597 30.2526 19.1056L37.0743 12.324C38.6904 15.3677 40.9647 20.1112 39.1402 27.3266H39.1389ZM14.6532 11.1729C13.9524 11.8115 13.2833 12.7929 12.9822 13.7041C14.1766 13.8919 15.56 14.3826 15.8281 14.5401C16.7983 12.4597 18.3693 11.0651 19.0579 10.4435C17.5308 10.9924 16.5143 11.4577 14.875 12.5179C14.8019 11.9775 14.7397 11.3498 14.6544 11.1729H14.6532Z\",\n fill: \"#114387\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1_2\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 44,\n height: 34,\n fill: \"white\",\n transform: \"translate(3 4)\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEsFantasyLogo);\nexport default __webpack_public_path__ + \"static/media/es-fantasy-logo.1f663388.svg\";\nexport { ForwardRef as ReactComponent };","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\";\nimport { ReactComponent as ArrowDown } from \"../../img/icons/arrow-down.svg\";\n\nconst StyledDropdown = styled.span`\n display: inline-block;\n position: relative;\n z-index: ${({ theme }) => theme.zIndex.menu};\n`;\n\nconst MoreButton = styled.button`\n position: relative;\n display: flex;\n align-items: center;\n padding: 0.9rem 1.8rem;\n border: 0;\n border-radius: 40px;\n background-color: ${({ theme }) => theme.colors.purple1};\n color: ${({ theme }) => theme.colors.white};\n font-size: 1.4rem;\n font-family: ${({ theme }) => theme.fonts.impactMedium};\n line-height: 1;\n transition: all 0.2s;\n cursor: pointer;\n text-align: center;\n text-decoration: none;\n\n :focus,\n :hover {\n background-color: ${({ theme }) => theme.colors.purple2};\n color: ${({ theme }) => theme.colors.purple1};\n }\n`;\n\nconst StyledArrowDown = styled(ArrowDown)`\n :hover,\n :focus {\n fill: ${({ theme }) => theme.colors.white};\n }\n margin-left: 8px;\n`;\n\nconst NavLink = css`\n display: block;\n padding: 0.9rem 1.8rem;\n background-color: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.black};\n font-size: 1.4rem;\n text-align: center;\n text-decoration: none;\n transition: all 0.2s;\n cursor: pointer;\n\n :focus,\n :hover {\n background-color: ${({ theme }) => theme.colors.purple3};\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
    \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 list-style-type: none;\n display: inline-block;\n margin: 0 8px 0 0;\n border-radius: 40px;\n background: ${({ theme }) => theme.colors.purple1};\n\n :last-child a {\n border: 0;\n }\n &:hover {\n background: ${({ theme }) => theme.colors.purple2};\n border-radius: 6px;\n }\n &:hover a {\n color: ${({ theme }) => theme.colors.purple1};\n }\n`;\n\nconst ListItem = React.forwardRef(\n ({ useRouter, text, href, rel, indicateExternal, 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 React from \"react\";\nimport { useTranslation } from \"react-i18next\";\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 { getEntry } from \"../../core/store/entries/reducers\";\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\";\n\nconst StyledNav = styled.nav`\n white-space: nowrap;\n position: relative;\n z-index: 99;\n`;\n\nconst StyledUL = styled.ul`\n vertical-align: middle;\n font-size: 0;\n padding: 0;\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 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 currentEvent,\n entry,\n nextEvent,\n player,\n serverError,\n}) => {\n const { t } = useTranslation();\n let links: INavLink[] = [];\n const useRouter = !serverError;\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 {\n useRouter,\n href: \"/help\",\n text: t(\"navigation.help\", \"Help\"),\n },\n {\n useRouter,\n href: \"/player/logout\",\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,\n href: \"/player/logout\",\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 ];\n }\n return ;\n};\n\nexport { Navigation as NavigationTest };\n\nexport default connector(Navigation);\n","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 styled, { css } from \"styled-components/macro\";\nimport { Link as RouterLink } from \"@reach/router\";\n\nconst LinkStyles = css`\n color: ${({ theme }) => theme.colors.black};\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 { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { ISponsorImageStyles, SponsorImagesProps } from \"./types\";\n\nconst Image = styled.img`\n opacity: ${(props) => (props.$isVisible ? 1 : 0)};\n transition: opacity 1s ease-in-out;\n`;\n\nconst SponsorImages = ({ images }: SponsorImagesProps) => {\n const [currentIndex, setCurrentIndex] = useState(0);\n const [isVisible, setIsVisible] = useState(true);\n const imageCount = Object.keys(images).length;\n\n useEffect(() => {\n const interval = setInterval(() => {\n setIsVisible(false);\n\n setTimeout(() => {\n setCurrentIndex((prevIndex) => (prevIndex + 1) % imageCount);\n setIsVisible(true);\n }, 1000);\n }, 4000);\n\n return () => clearInterval(interval);\n }, [imageCount]);\n\n return (\n \n );\n};\nexport default SponsorImages;\n","import { size } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as Logo } from \"../../img/logos/es-fantasy-logo.svg\";\nimport { getPrefersReducedMotion } from \"../../utils/reducedMotion\";\nimport Link from \"../Link\";\nimport SponsorImages from \"./SponsorRotatingImages\";\nimport { ISponsors } from \"./types\";\n\nconst ReduceMotionWrap = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-bottom: ${(props) => props.theme.space[4]};\n }\n`;\nconst ReduceMotionWrapNested = styled.div`\n display: flex;\n gap: ${(props) => props.theme.space[1]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n gap: ${(props) => props.theme.space[6]};\n }\n`;\n\nconst StyledImage = styled.img`\n ${size(21, 60)}\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${size(29, 81)}\n }\n`;\n\nconst StyledLogo = styled(Logo)`\n ${size(38, 118)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${size(38, 173)}\n }\n`;\n\nconst GameHeading = styled.h1`\n position: relative;\n z-index: 3;\n margin: 0;\n line-height: 0.8;\n`;\n\nconst Sponsors = () => {\n const images: ISponsors = [\n {\n image: `${process.env.PUBLIC_URL}/img/sponsors/sponsor-1.svg`,\n altText: \"Altibox\",\n },\n {\n image: `${process.env.PUBLIC_URL}/img/sponsors/sponsor-2.svg`,\n altText: \"TV2\",\n },\n {\n image: `${process.env.PUBLIC_URL}/img/sponsors/sponsor-3.svg`,\n altText: \"Obos\",\n },\n {\n image: `${process.env.PUBLIC_URL}/img/sponsors/sponsor-4.svg`,\n altText: \"Norsk Tipping\",\n },\n ];\n return getPrefersReducedMotion() ? (\n \n \n \n {images.map((image, index) => (\n \n ))}\n \n \n ) : (\n <>\n \n \n \n \n \n \n \n \n );\n};\n\nexport default Sponsors;\n","export const getPrefersReducedMotion = () => {\n const QUERY = \"(prefers-reduced-motion: no-preference)\";\n const mediaQueryList = window.matchMedia(QUERY);\n const prefersReducedMotion = !mediaQueryList.matches;\n return prefersReducedMotion;\n};\n","import { hiDPI } from \"polished\";\nimport * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { getPlayerComp, IPlayerCompProps } from \"../utils/player-comps\";\nimport Navigation from \"./nav/Navigation\";\nimport Sponsors from \"./sponsors/Sponsors\";\n\nconst GameHeaderOuter = styled.div`\n min-height: 150px;\n`;\n\nconst GameHeaderInner = styled.div`\n position: relative;\n max-width: 1220px;\n margin-left: auto;\n margin-right: auto;\n padding: ${({ theme }) => `0 ${theme.space[4]} ${theme.space[2]}`};\n`;\n\nconst HeaderUpperNavWrap = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 100px;\n margin-top: ${(props) => props.theme.space[4]};\n`;\n\nconst GameHeaderUpper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-bottom: ${(props) => props.theme.space[6]};\n }\n`;\n\nconst PlayerImage = styled.div`\n position: absolute;\n left: 0;\n right: 0;\n bottom: -15px;\n z-index: 1;\n width: 350px;\n height: 151px;\n margin: auto;\n background-image: url(${(props) => props.images.x1});\n background-repeat: no-repeat;\n background-size: 350px 151px;\n\n ${hiDPI(2)} {\n background-image: url(${(props) => props.images.x2});\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n bottom: 15px;\n width: 500px;\n height: 112px;\n background-image: url(${(props) => props.images.x1wide});\n background-size: 500px 110px;\n\n ${hiDPI(2)} {\n background-image: url(${(props) => props.images.x2wide});\n }\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 600px;\n height: 135px;\n background-size: 600px 135px;\n }\n`;\n\nconst TransparentGradient = styled.div`\n z-index: -1;\n position: absolute;\n top: 40px;\n width: 100%;\n min-height: 200px;\n background: linear-gradient(\n 0deg,\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 255, 255, 0.4) 25.5%,\n rgba(255, 255, 255, 0.58) 47.5%,\n rgba(255, 255, 255, 0.4) 70%,\n rgba(255, 255, 255, 0) 97%\n );\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n top: 0px;\n min-height: 350px;\n }\n`;\n\nconst GameHeader: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport default GameHeader;\n","import styled from \"styled-components/macro\";\n\nconst AdWrap = styled.div`\n margin-top: ${({ theme }) => theme.space[2]};\n margin-bottom: ${({ theme }) => theme.space[2]};\n text-align: center;\n`;\n\nexport default AdWrap;\n","import React, { useEffect, useRef } from \"react\";\nimport AdWrap from \"./AdWrap\";\n\nconst LeaderboardAd: React.FC = () => {\n const adSlot = useRef(null);\n\n // Loading of ad and cleanup goes in first useEffect effectively handling mount and unmount\n useEffect(() => {\n const googletag = (window as any).googletag;\n googletag?.cmd?.push(() => {\n /* Size-mapping for Fantasy Leaderboard ad*/\n var mapping_fantasy_leaderboard = googletag\n .sizeMapping()\n .addSize([1300, 0], [[728, 90]])\n .addSize([1024, 0], [[728, 90]])\n .addSize([640, 0], [[300, 90]])\n .addSize([0, 0], [[300, 90]])\n .build();\n\n adSlot.current = googletag\n .defineSlot(\n \"/64964091/FantasyLeaderBoard\",\n [\n [300, 90],\n [728, 90],\n ],\n \"div-gpt-ad-1612959919603-0\"\n )\n .defineSizeMapping(mapping_fantasy_leaderboard)\n .addService(googletag.pubads());\n googletag.pubads().enableSingleRequest();\n googletag.enableServices();\n googletag.pubads().collapseEmptyDivs();\n });\n // cleanup\n return () => {\n googletag &&\n googletag.pubadsReady &&\n googletag.destroySlots([adSlot.current]);\n };\n }, []);\n\n // Showing of ad has to go in separate useEffect because can get called twice on pages like Points (component update)\n useEffect(() => {\n const googletag = (window as any).googletag;\n googletag?.cmd?.push(() => {\n googletag.display(\"div-gpt-ad-1612959919603-0\");\n });\n }, []);\n\n return ;\n};\n\nexport default LeaderboardAd;\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 * as Fathom from \"fathom-client\";\n\nexport const loadFathomTrackingId = () => {\n const trackingId = process.env.REACT_APP_FATHOM_ENV_ID;\n if (process.env.NODE_ENV !== \"development\" && trackingId) {\n return Fathom.load(trackingId);\n } else return null;\n};\n","import { RouteComponentProps, useNavigate } from \"@reach/router\";\nimport { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport * as allauth from \"../../utils/allauth\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport SubHeading from \"../SubHeading\";\n\nconst CallbackContainer = styled(Box)`\n margin-top: 6rem;\n margin-bottom: 3rem;\n padding: 3rem;\n background-color: #f2f9fa;\n text-align: center;\n`;\n\nconst AuthCallback: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const [error, setError] = useState(null);\n // isLoading state is used to track the authentication process\n const [, setLoading] = useState(true);\n\n useEffect(() => {\n const processAuth = async () => {\n try {\n const urlParams = new URLSearchParams(window.location.search);\n\n // Check if we're already authenticated\n const auth = await allauth.getAuth();\n if (auth.status === 200 && auth.meta?.is_authenticated) {\n navigate(\"/\");\n return;\n }\n\n // Check if there's an error in the URL\n const errorParam = urlParams.get(\"error\");\n const errorDescription = urlParams.get(\"error_description\");\n\n if (errorParam) {\n // Provide more helpful error message based on the error type\n let errorMessage = errorDescription || \"Authentication failed\";\n if (\n errorParam === \"unknown\" &&\n urlParams.get(\"error_process\") === \"login\"\n ) {\n errorMessage =\n \"TV 2 authentication service returned an unknown error. Please check your credentials or try again later.\";\n }\n\n setError(errorMessage);\n setLoading(false);\n return;\n }\n\n // Process authentication response from the URL\n const code = urlParams.get(\"code\");\n const state = urlParams.get(\"state\");\n\n if (code && state) {\n try {\n const response = await allauth.authenticateByToken(\n \"auth0\", // provider id\n code, // the authorization code\n allauth.AuthProcess.LOGIN\n );\n\n if (response.status === 200 && response.meta?.is_authenticated) {\n const returnPath =\n localStorage.getItem(\"auth_return_path\") || \"/\";\n localStorage.removeItem(\"auth_return_path\");\n navigate(returnPath);\n } else {\n setError(response.message || \"Authentication failed\");\n setLoading(false);\n }\n } catch (apiError) {\n setError(\"API error during authentication\");\n setLoading(false);\n }\n } else {\n // If we're missing code or state but have an id_token (for implicit flow)\n const idToken = urlParams.get(\"id_token\");\n if (idToken) {\n try {\n const response = await allauth.authenticateByToken(\n \"auth0\",\n idToken,\n allauth.AuthProcess.LOGIN\n );\n\n if (response.status === 200 && response.meta?.is_authenticated) {\n navigate(\"/\");\n } else {\n setError(response.message || \"Authentication failed\");\n setLoading(false);\n }\n } catch (tokenError) {\n setError(\"API error during token authentication\");\n setLoading(false);\n }\n } else {\n // Missing required parameters\n setError(\"Invalid authentication response\");\n setLoading(false);\n }\n }\n } catch (err) {\n setError(\"An unexpected error occurred during authentication\");\n setLoading(false);\n }\n };\n\n processAuth();\n }, [navigate]);\n\n if (error) {\n return (\n \n \n {t(\"login.tv2.authError\", \"Authentication Error\")}\n \n {error}\n \n \n \n \n );\n }\n\n return (\n \n \n {t(\"login.tv2.authenticating\", \"Authenticating...\")}\n \n

\n {t(\n \"login.tv2.pleaseWait\",\n \"Please wait while we complete your authentication with TV2.\"\n )}\n

\n
\n );\n};\n\nexport default AuthCallback;\n","import { TFunction } from \"i18next\";\n\nexport type ChipName = \"frush\" | \"2capt\" | \"rich\" | \"wildcard\";\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\", \"Two Captains\"),\n description: t(\n \"chips.2capt.description\",\n \"Both your Captain and Vice Captain score double points.\"\n ),\n },\n rich: {\n name: t(\"chips.rich.name\", \"Rich Uncle\"),\n description: t(\n \"chips.rich.description\",\n \"Make unlimited free transfers with an unlimited budget for a single round. Next round your team will be set back to how it was before using the chip.\"\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});\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 { 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.red};\n text-decoration: none;\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","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 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 { ellipsis, hideVisually } from \"polished\";\nimport styled from \"styled-components/macro\";\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 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.blackLighter};\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.blackLighter};\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\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, { useEffect, useRef } from \"react\";\nimport AdWrap from \"./AdWrap\";\n\nconst MedRecAd: React.FC = () => {\n const adSlot = useRef(null);\n\n // Loading of ad and cleanup goes in first useEffect effectively handling mount and unmount\n useEffect(() => {\n const googletag = (window as any).googletag;\n googletag?.cmd?.push(() => {\n adSlot.current = googletag\n .defineSlot(\n \"/64964091/FantasyRightColumn\",\n [[300, 250]],\n \"div-gpt-ad-1612861196737-0\"\n )\n .addService(googletag.pubads());\n googletag.pubads().enableSingleRequest();\n googletag.enableServices();\n googletag.pubads().collapseEmptyDivs();\n });\n // cleanup\n return () => {\n googletag &&\n googletag.pubadsReady &&\n googletag.destroySlots([adSlot.current]);\n };\n }, []);\n\n // Showing of ad has to go in separate useEffect because can get called twice on pages like Points (component update)\n useEffect(() => {\n const googletag = (window as any).googletag;\n googletag?.cmd?.push(() => {\n googletag.display(\"div-gpt-ad-1612861196737-0\");\n });\n }, []);\n\n return ;\n};\n\nexport default MedRecAd;\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-left: ${({ theme }) => theme.space[2]};\n ${(props) =>\n props.isCentered &&\n css`\n text-align: center;\n `}\n ${(props) =>\n props.hasBorder &&\n css`\n border-top: 1px solid ${({ theme }) => theme.colors.white};\n `}\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[1]};\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[2]}`};\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 getPrivateClassicCupLeaguesForEntry,\n getPrivateClassicLeaguesForEntry,\n getPrivateH2HLeaguesForEntry,\n getPublicClassicCupLeaguesForEntry,\n getPublicClassicLeaguesForEntry,\n getPublicH2HLeaguesForEntry,\n getSystemClassicCupLeaguesForEntry,\n getSystemClassicLeaguesForEntry,\n} from \"../core/store/entries/reducers\";\nimport { fetchEntrySummary } from \"../core/store/entries/thunks\";\nimport {\n IEntry,\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 { 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 BoldLink from \"./BoldLink\";\nimport Button from \"./Button\";\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 MedRecAd from \"./MedRecAd\";\nimport Panel from \"./Panel\";\nimport filterOnSSL from \"./scout/filterOnSSL\";\nimport SubHeading from \"./SubHeading\";\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();\n\nconst StyledLogoBar = styled(LogoBar)`\n background-color: ${({ theme }) => theme.colors.backgroundwhite50};\n`;\n\nconst TableStyles = css`\n > tbody > tr {\n line-height: ${({ theme }) => theme.space[6]};\n }\n`;\n\nconst StyledTable = styled(Table)`\n ${TableStyles};\n`;\n\nconst StyledSubHeading = styled(SubHeading)`\n margin: auto 0;\n overflow-wrap: anywhere;\n font-size: 1.6rem;\n`;\n\nconst EntryName = styled.h2`\n color: ${({ theme }) => theme.colors.black};\n font-size: 1.7rem;\n margin-top: 0;\n margin-bottom: ${({ theme }) => `${theme.space[1]}`};\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 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 BoldText = styled.b``;\n\nconst StyledTdFixedWidth = styled.td`\n width: 33%;\n`;\nconst StyledLink = styled(Link)`\n ${BoldText}\n`;\n\nconst RSSArticleTitle = styled.h4`\n padding-top: 10px;\n margin: 0;\n font-size: 14px;\n line-height: 1;\n`;\n\nconst RSSArticle = styled.article`\n padding: ${({ theme }) => theme.space[2]};\n box-sizing: border-box;\n background-color: transparent;\n text-decoration: none;\n color: #000;\n &:hover {\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n ${RSSArticleTitle} {\n color: ${({ theme }) => theme.colors.white};\n }\n }\n`;\nconst RSSArticleLink = styled.a`\n color: #000;\n text-decoration: none;\n`;\n\nconst RSSArticleFigure = styled.figure`\n margin: 0;\n object-fit: contain;\n width: 100%;\n`;\n\nconst RSSArticleImg = styled.img`\n max-width: 100%;\n`;\n\nconst RSSArticleDesc = styled.p`\n margin-bottom: 0;\n`;\n\ninterface IRowProps {\n leagueEntry: ILeagueEntry;\n}\n\ninterface ILeagueSummaryProps {\n title: React.ReactNode;\n leagues: 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 8: \"http://www.glimt.no/rss-nyheter\",\n 1: \"https://www.brann.no/rss-nyheter\",\n 40: \"http://www.fredrikstadfk.no/rss-nyheter\",\n 50: \"https://www.hamkam.no/rss-nyheter\",\n 16: \"https://www.fkh.no/rss-nyheter\",\n 1438: \"https://www.kaaffa.no/rss-nyheter\",\n 2718: \"https://www.kristiansundbk.no/rss-nyheter\",\n 12: \"http://www.lsk.no/rss-nyheter\",\n 6: \"http://www.moldefk.no/rss-nyheter\",\n 14: \"http://www.odd.no/rss-nyheter\",\n 5: \"http://www.rbk.no/rss-nyheter\",\n 48: \"https://www.sandefjordfotball.no/rss-nyheter\",\n 5043: \"http://www.sarpsborg08.no/rss-nyheter\",\n 9: \"http://www.godset.no/rss-nyheter\",\n 3: \"http://www.til.no/rss-nyheter\",\n 7: \"http://www.viking-fk.no/rss-nyheter\",\n 46: \"http://www.aafk.no/rss-nyheter\",\n 13: \"http://www.brynefk.no/rss-nyheter\",\n 1370: \"http://eikfotball.no/rss-nyheter\",\n 53: \"http://www.kil.no/rss-nyheter\",\n 405: \"http://www.levangerfk.no/rss-nyheter\",\n 11: \"https://lyn1896.no/rss-nyheter\",\n 89: \"http://www.miffotball.no/rss-nyheter\",\n 2: \"http://www.mossfk.no/rss-nyheter\",\n 302: \"http://www.ranheimfotball.no/rss-nyheter\",\n 52: \"https://www.raufossfotball.no/rss-nyheter\",\n 103: \"http://www.sandnesulf.no/rss-nyheter\",\n 10: \"https://www.sogndalfotball.no/rss-nyheter\",\n 4: \"http://www.stabak.no/rss-nyheter\",\n 37: \"https://www.ikstart.no/rss-nyheter\",\n 15: \"http://www.vif-fotball.no/rss-nyheter\",\n 98: \"http://www.asanefotball.no/rss-nyheter\",\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 privateClassicCupLeagues: ILeagueEntry[];\n publicClassicCupLeagues: ILeagueEntry[];\n systemClassicCupLeagues: ILeagueEntry[];\n}\n\ninterface IPropsFromDispatch {\n fetchEntrySummary: (entryId: 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 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 }\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 t,\n fanLeagueDetails,\n privateClassicCupLeagues,\n publicClassicCupLeagues,\n systemClassicCupLeagues,\n } = this.props;\n\n const { favTeamArticle } = this.state;\n\n if (!entry) {\n return null;\n }\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 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 \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 {t(\"myTeam.overallPoints\", \"Overall Points\")}:\n \n {entry.summary_overall_points}\n \n \n \n {t(\"myTeam.overallRank\", \"Overall Rank\")}:\n \n \n {entry.summary_overall_rank &&\n entry.summary_overall_rank.toLocaleString()}\n \n \n \n \n {t(\"myTeam.totalPlayers\", \"Total Players\")}:\n \n {totalPlayers.toLocaleString()}\n \n \n \n {t(\"myTeam.roundPoints\", \"Round Points\")}:\n \n {entry.summary_event_points}\n \n \n \n \n \n \n \n {t(\"myTeam.viewRoundHistory\", \"View Round history\")}\n \n \n \n \n\n {fanLeagueDetails && favTeamArticle && (\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(\"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(\n \"myTeam.none\",\n \"None of your leagues have a cup yet.\"\n )}\n

\n
\n )}\n
\n
\n
\n
\n
\n \n }\n >\n {t(\"myTeam.createAndJoinLeagues\", \"Create and join leagues\")}\n \n \n\n {mine && transfersState && (\n \n \n \n \n \n \n \n \n {t(\"myTeam.roundTransfers\", \"Round transfers\")}:\n \n \n {transfersState.made}\n \n \n \n \n {t(\"myTeam.totalTransfers\", \"Total transfers\")}:\n \n \n \n {entry.last_deadline_total_transfers +\n transfersState.made}\n \n \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 {integerToMoney(transfersState.value, 10)}\n \n \n \n \n {t(\"myTeam.inTheBank\", \"In the bank\")}:\n \n \n {integerToMoney(transfersState.bank, 10)}\n \n \n \n \n \n \n \n \n )}\n {!mine && (\n \n \n \n {t(\n \"myTeam.transfersAndFinance2\",\n \"Transfers and Finance\"\n )}{\" \"}\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 \n {t(\"myTeam.footNote\", \"* Values at the last deadline\")}\n \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}\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\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 publicClassicCupLeagues: getPublicClassicCupLeaguesForEntry(state, entryId),\n systemClassicCupLeagues: getSystemClassicCupLeaguesForEntry(state, entryId),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\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 } from \"./Table\";\nimport Title from \"./Title\";\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 {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 {t(\"entryHistory.chips\", \"Chips\")}\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 {t(\"entryHistory.previousSeasons\", \"Previous Seasons\")}\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\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 Eliteserien 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 support@eliteserien.no.\"\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","export default __webpack_public_path__ + \"static/media/arrow-down.1b9b5ea4.svg\";","export default __webpack_public_path__ + \"static/media/search.cab4f29c.svg\";","import { hideVisually, size } from \"polished\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport theme from \"../theme\";\nimport ArrowDown from \"../img/icons/arrow-down.svg\";\nimport Search from \"../img/icons/search.svg\";\nimport { VisuallyHidden } from \"./Utils\";\n\nexport const FieldWrap = styled.div`\n margin-bottom: ${theme.space[4]};\n`;\n\nconst fieldStyles = {\n border: `2px solid ${theme.colors.primaryDarker}`,\n borderRadius: \"6px\",\n backgroundColor: theme.colors.primary,\n display: \"block\",\n fontFamily: theme.fonts.base,\n color: theme.colors.blackLighter,\n fontSize: \"16px\",\n padding: theme.space[2],\n width: \"100%\",\n\n \"&:focus\": {\n borderColor: `${theme.colors.blue}`,\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.black};\n font-size: 1.5rem;\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.black};\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 ${(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: 2px solid ${theme.colors.primaryDarker};\n border-radius: ${({ theme }) => theme.radii[1]};\n background: ${theme.colors.white};\n\n ::after {\n content: \"\";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n background-size: contain;\n /* Triangle */\n width: 14px;\n height: 10px;\n background-image: url(${ArrowDown});\n background-size: cover;\n background-repeat: no-repeat;\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: 1px solid ${theme.colors.greyDarker3};\n\n ::after {\n content: \"\";\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n background-size: contain;\n /* Triangle */\n width: 0;\n height: 0;\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n border-top: 10px solid ${(props) => props.theme.colors.blueDarker1};\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\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 SearchIcon = styled.span`\n ${size(\"14px\")}\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(${Search});\n`;\n\nconst SearchInput = styled(Input)`\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-appearance: textfield;\n background: ${theme.colors.white};\n\n &:focus + ${SearchIcon} {\n display: none;\n }\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.blueDarker1};\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.red};\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: 2px solid ${(props) => props.theme.colors.blueDarker1};\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 width: auto;\n max-width: 100%;\n height: 29px;\n margin-right: ${(props) => props.theme.space[2]};\n`;\n\nexport const CheckboxField: React.SFC = ({\n id,\n onChange,\n label,\n checked,\n logo,\n hideLabel = false,\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 _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 SvgEsLogo(_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: 72,\n height: 33,\n viewBox: \"0 0 72 33\",\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_1_26)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.60315 8.47974V11.1748H3.01725V14.5594H5.49573V17.2544H3.01725V20.8764H5.64622V23.5714H0V8.47974H5.60315Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.78355 8.47974V20.8764H11.9599V23.5714H6.7663V8.47974H9.78299H9.78355Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.9467 23.5708H12.93V8.47974H15.9467V23.5708Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.7049 23.5709V11.1742H16.8732V8.47919H23.5539V11.1742H21.7222V23.5709H18.7055H18.7049Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M51.2569 6.38694C51.0152 4.25274 47.0026 1.11664 45.9363 0.606183C45.8356 0.259718 45.7875 0.00448636 45.4204 0.00112806C41.8521 -0.0307758 39.3496 0.615698 36.9075 1.73121C36.0078 2.14205 35.5703 2.64691 35.1787 3.57492C34.9381 3.7322 32.6616 5.48748 32.1206 5.92462C31.5796 6.36176 32.3696 7.4297 32.75 7.87747C33.0124 8.18644 33.1998 8.3829 33.3386 8.48756C33.4768 8.59223 33.554 8.5385 34.0888 8.45286C34.3484 8.79709 35.05 9.3624 35.7482 9.33218C35.5597 9.19225 35.3879 8.66444 35.3572 8.33476C36.8856 8.19147 38.0673 9.05008 38.4662 9.91932C35.5905 9.50065 35.1518 10.0072 33.9669 10.7645C32.8742 11.4625 32.1178 11.5509 31.4324 11.0035C32.1161 13.5748 34.8335 11.3903 35.4534 11.2358C35.3846 12.2421 35.6324 12.9323 36.0817 13.3297C36.5393 12.7761 37.4216 12.4123 38.5803 12.3423L35.2173 15.7068H48.7667C49.9074 13.225 50.5005 10.7628 50.6773 9.38535C50.6969 9.43461 51.1422 9.84096 51.6301 9.87622C51.3923 9.054 51.5019 8.54857 51.2569 6.38806V6.38694ZM48.0209 10.7757C47.8586 9.86335 47.4329 8.78421 46.6983 8.24689C44.8973 12.1727 42.6477 11.8912 41.3609 14.8023C39.9572 12.0921 43.4455 11.5688 42.5783 8.34204L40.6671 10.254C41.3055 8.83403 41.5802 7.28081 40.694 6.21735C39.8223 5.17124 37.5699 5.30781 36.5119 5.98115C37.392 6.46475 38.1769 7.03062 38.6586 7.93736C37.0037 7.06364 35.031 7.20301 33.3184 7.77057C33.2468 7.70172 33.1719 7.61553 33.0969 7.51981C33.4124 7.16439 33.7917 6.41829 33.7224 6.18489C33.3492 6.50337 33.0007 6.76699 32.7058 6.9433C32.5872 6.7446 32.4815 6.54702 32.4043 6.38191C33.1545 5.80876 34.9045 4.42122 35.3633 4.07867C35.5658 3.66168 36.0319 2.93461 36.7715 2.57919C39.2259 1.39762 42.6113 0.88884 44.3373 0.878765C44.7356 2.80867 43.4522 4.50797 43.4444 4.53596C43.4679 3.8128 43.3493 2.55736 42.8547 2.02563C42.3707 2.06425 40.8176 2.32787 39.372 2.78404C42.3724 3.55645 43.5143 5.38617 43.9417 6.97801L47.0731 3.84527C47.815 5.25128 48.859 7.44257 48.0214 10.7757H48.0209ZM36.781 3.31354C36.4593 3.60851 36.1522 4.06188 36.014 4.48279C36.5623 4.56954 37.1973 4.79623 37.3204 4.86899C37.7657 3.90796 38.4869 3.26372 38.803 2.97659C38.1019 3.23014 37.6353 3.44507 36.8828 3.93482C36.8493 3.68519 36.8207 3.39525 36.7816 3.31354H36.781Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.0528 20.8758H27.4753V17.2539H29.9538V14.5594H27.4753V11.1742H30.0612V8.47974H24.4586V23.5708H27.3595L30.0528 20.8758Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.6663 17.4005V20.0239H42.1486V23.319H44.5611V25.9424H42.1486V29.4686H44.7082V32.092H39.2119V17.4005H44.6663Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.9314 27.0338V32.092H49.9942V27.0551C49.9942 26.6985 49.8263 26.5306 49.4699 26.5306H48.7359V32.0925H45.7986V17.4011H50.1833C52.0083 17.4011 52.9107 18.3033 52.9107 20.1297V22.963C52.9107 24.2223 52.4491 24.852 51.6519 25.1459C52.5538 25.3977 52.9314 25.9642 52.9314 27.0349V27.0338ZM49.4492 19.9606H48.7359V24.032H49.4492C49.8056 24.032 49.9734 23.8641 49.9734 23.5076V20.4851C49.9734 20.1286 49.8056 19.9606 49.4492 19.9606Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57.0223 32.092H54.085V17.4005H57.0223V32.092Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.6929 17.4005V20.0239H61.1753V23.319H63.5877V25.9424H61.1753V29.4686H63.7349V32.092H58.2386V17.4005H63.6929Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M69.1472 32.092L67.2803 24.0959L67.3222 27.8314L67.3642 32.092H64.8258V17.4005H67.8258L69.5249 24.683L69.4829 20.4437L69.4617 17.4005H72V32.092H69.1467H69.1472Z\",\n fill: \"#114387\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.0093 24.4731L34.4917 22.6053C34.1353 22.3534 33.9881 22.1228 33.9881 21.6611V20.2758C33.9881 19.9187 34.156 19.7507 34.5124 19.7507H34.7429C35.0992 19.7507 35.2671 19.9187 35.2671 20.2758V22.6893H38.1411V20.0026C38.1411 18.1768 37.2392 17.274 35.4137 17.274H33.8192C33.761 17.274 33.7034 17.2751 33.6474 17.2768L31.0951 19.8302C31.0934 19.8867 31.0923 19.9438 31.0923 20.002V22.3316C31.0923 23.3811 31.3647 23.9895 32.2672 24.6404L34.7848 26.5082C35.1412 26.7601 35.2884 26.9907 35.2884 27.4525V29.2156C35.2884 29.5727 35.1205 29.74 34.7641 29.74H34.4917C34.1353 29.74 33.9674 29.5721 33.9674 29.2156V26.361H31.0934V29.4881C31.0934 31.3139 31.9953 32.2168 33.8208 32.2168H35.4573C37.2823 32.2168 38.1848 31.3145 38.1848 29.4881V26.7808C38.1848 25.6893 37.9117 25.1229 37.0099 24.472L37.0093 24.4731Z\",\n fill: \"#114387\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1_26\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 72,\n height: 32.2179,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgEsLogo);\nexport default __webpack_public_path__ + \"static/media/es-logo.d6420b42.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 player: IPlayer;\n entry: IEntry;\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 // Eliteserien\n const eliteserien = teams\n .filter((team) => team.unavailable === false)\n .sort((a, b) => a.name.localeCompare(b.name));\n\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 nb: t(\"entryUpdate.languageNb\", \"Norwegian\"),\n };\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 {eliteserien.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 Eliteserien 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","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 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 width: 1024,\n height: 1024,\n viewBox: \"0 0 1024 1024\",\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_3_23366)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H1024V1024H0V0Z\",\n fill: \"#012169\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1024 0V128L644 512L1024 886V1024H890L508 648L136 1024H0V888L372 514L0 148V0H124L508 376L880 0H1024Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M368 648L390 716L84 1024H0V1018L368 648ZM616 624L724 640L1024 934V1024L616 624ZM1024 0L640 392L632 304L932 0H1024ZM0 2L386 380L268 364L0 98V2Z\",\n fill: \"#C8102E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M352 0V1024H672V0H352ZM0 352V672H1024V352H0Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 416V608H1024V416H0ZM416 0V1024H608V0H416Z\",\n fill: \"#C8102E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_3_23366\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 1024,\n height: 1024,\n rx: 512,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgGb);\nexport default __webpack_public_path__ + \"static/media/gb.b0d1be6a.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/play-button.523ccbff.svg\";","import * as React from \"react\";\n\nconst tvPath = `${process.env.PUBLIC_URL}/dist/img/tv_channels`;\nconst prefix = \"tv_\";\n\ninterface IProps {\n sizes: string;\n channel: string;\n}\n\nconst Tv: React.FC = ({ sizes, channel }) => {\n const path = `${tvPath}/${prefix}${channel}`;\n\n return (\n \n \n \n \n );\n};\n\nexport default Tv;\n","import * as 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 { IGroupFixture } from \"../core/store/fixtures/types\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport { ITeamsById } from \"../core/store/teams/types\";\nimport PlayButton from \"../img/icons/play-button.svg\";\nimport Badge from \"./Badge\";\nimport { ControlArrowRight } from \"./icons/Arrows\";\nimport Tv from \"./Tv\";\nimport { hideVisually } from \"polished\";\nimport { formatRawAsISO } from \"../core/utils/datetime\";\nimport { formatInTimeZone } from \"date-fns-tz\";\n\nconst StyledFixture = styled.div`\n overflow: auto;\n border-radius: ${(props) => props.theme.radii[0]};\n background: ${({ theme }) => theme.colors.bgWhiteOpacity85};\n color: ${(props) => props.theme.colors.black};\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 align-items: center;\n`;\n\nconst FixtureTV = styled.div`\n flex: 0 0 15%;\n padding-right: ${(props) => props.theme.space[1]};\n padding-left: ${(props) => props.theme.space[1]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: 11%;\n padding-right: ${(props) => props.theme.space[2]};\n padding-left: ${(props) => props.theme.space[2]};\n }\n`;\n\nconst Team = styled.div`\n flex: 0 0 calc(38% - (6.6rem / 2));\n display: flex;\n align-items: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: calc(37% - (6.6rem / 2));\n }\n`;\n\nconst Tickets = styled.div`\n flex: 0 0 9%;\n margin-left: auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: 14%;\n }\n`;\n\nconst TeamH = styled(Team)`\n justify-content: flex-end;\n`;\n\nconst TeamA = styled(Team)`\n justify-content: flex-start;\n`;\n\nconst TeamName = styled.abbr`\n vertical-align: middle;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: ${(props) => props.theme.fontSizes[3]};\n text-transform: uppercase;\n text-decoration: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n &:after {\n content: attr(title);\n }\n span {\n display: none;\n }\n }\n`;\n\nconst FixtureBadge = styled.div`\n margin: 0 ${(props) => props.theme.space[2]};\n`;\n\nconst FixtureKOTime = styled.time`\n flex: 0 0 6.6rem;\n display: inline-block;\n padding: ${({ theme }) => theme.space[2]};\n border-radius: 40px;\n background-color: ${({ theme }) => theme.colors.blueDarker3};\n color: white;\n font-family: ${(props) => props.theme.fonts.impact};\n font-size: ${(props) => props.theme.fontSizes[3]};\n text-align: center;\n line-height: 1.1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 0.8rem 1.6rem;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n }\n`;\n\nconst FixtureScore = styled.div`\n flex: 0 0 6.6rem;\n display: flex;\n padding: 0.4rem;\n background-color: ${({ theme }) => theme.colors.blackLighter};\n`;\n\nconst FixtureScoreTeam = styled.span`\n flex: 1;\n padding: 0.3rem 0;\n color: white;\n font-size: 1.8rem;\n line-height: 1;\n text-align: center;\n\n :first-child {\n border-right: 1px solid rgba(255, 255, 255, 0.5);\n }\n`;\n\nconst TicketsLink = styled.a`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: ${(props) => props.theme.space[1]};\n color: ${(props) => props.theme.colors.blue};\n text-decoration: none;\n vertical-align: middle;\n\n :hover {\n text-decoration: underline;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: ${(props) => props.theme.space[2]};\n }\n`;\n\nconst TicketsText = styled.span`\n font-size: ${({ theme }) => theme.fontSizes[3]};\n font-weight: bold;\n\n @media (max-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${hideVisually}\n }\n`;\n\nconst VideoLinkUrl = styled.a`\n display: inline-flex;\n align-items: center;\n align-items: right;\n font-weight: 600;\n padding: 0.4rem;\n color: ${({ theme }) => theme.colors.blue};\n text-decoration: none;\n font-size: ${({ theme }) => theme.fontSizes[3]};\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst NoTicketsUrl = styled.div`\n display: flex;\n`;\n\nconst HighlightsIconWrapper = styled.span`\n display: inline-block;\n line-height: 1;\n margin-right: 5px;\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-right: 15px;\n margin-left: 50px;\n }\n`;\nconst HighlightsIcon = styled.img`\n width: 20px;\n height: 20px;\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 28px;\n height: 28px;\n }\n`;\n\ninterface IPropsFromState {\n teamsById: ITeamsById;\n}\n\ninterface IOwnProps {\n fixture: IGroupFixture;\n}\n\ntype Props = IPropsFromState & IOwnProps;\n\nconst Fixture: React.FC = ({ fixture, teamsById }) => {\n const { t } = useTranslation();\n return (\n \n \n \n {fixture.tv_channel && (\n \n \n \n )}\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 {fixture.started && fixture.forzify_id ? (\n \n \n \n \n \n ) : fixture.tickets_url ? (\n \n \n {t(\"fixtures.tickets\", \"Tickets\")}\n \n \n \n ) : (\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 { 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 { 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 { ReactComponent as Logo } from \"../img/logos/es-logo.svg\";\nimport Button from \"./Button\";\nimport Fixture from \"./Fixture\";\nimport { Pager, PagerButton, PagerButtonNext } from \"./Pager\";\nimport { VisuallyHidden } from \"./Utils\";\nimport { ControlArrowLeft, ControlArrowRight } from \"./icons/Arrows\";\n\nconst Deadline = styled.h2`\n margin: ${({ theme }) => theme.space[3]};\n font-family: ${({ theme }) => theme.fonts.baseSemiBold};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n text-align: center;\n`;\n\nconst Heading = styled.h3`\n margin: ${({ theme }) => theme.space[2]};\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${({ theme }) => theme.colors.primary};\n font-size: 2.4rem;\n font-family: ${({ theme }) => theme.fonts.impact};\n text-transform: uppercase;\n`;\n\nconst Note = styled.p`\n margin: 0;\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 color: ${({ theme }) => theme.colors.blackLighter};\n text-align: center;\n font-weight: 100;\n`;\n\nconst FixtureTime = styled.time`\n font-weight: 100;\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: transparent;\n text-align: left;\n cursor: pointer;\n`;\n\nconst FixtureStatsWrap = styled.div`\n display: ${(props) => (props.isOpen ? \"block\" : \"none\")};\n padding: ${({ theme }) => `${theme.space[2]} 5%`};\n border-top: 1px solid ${({ theme }) => theme.colors.greyDarker1};\n background: ${({ theme }) => theme.colors.bgWhiteOpacity50};\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: 1px solid ${({ theme }) => theme.colors.white};\n border-radius: ${({ theme }) => theme.radii[1]};\n background: ${({ theme }) => theme.colors.bgWhiteOpacity95};\n`;\n\nconst FixtureStatHeading = styled.h5`\n margin: 0;\n padding: 0.3rem ${({ theme }) => theme.space[2]};\n border-top-left-radius: ${({ theme }) => theme.radii[0]};\n border-top-right-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.black};\n font-size: ${({ theme }) => theme.fontSizes[0]};\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 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 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: 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\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 {t(\"fixtures.title\", \"Fixtures\")}\n \n \n {eventsById[eventId - 1] && (\n \n {useLinks ? (\n this.changeEvent(eventId - 1)}\n variant=\"secondary\"\n startIcon={}\n >\n {t(\"fixtures.previous\", \"Previous\")}\n \n ) : (\n this.changeEvent(eventId - 1)}\n variant=\"secondary\"\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=\"secondary\"\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 {event.name} -{\" \"}\n \n \n
\n \n {t(\"fixtures.localTimes\", \"All times are shown in your local time\")}\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\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","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 SvgNo(_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: 1024,\n height: 1024,\n viewBox: \"0 0 1024 1024\",\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_3_20809)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H1024V1024H0V0Z\",\n fill: \"#ED2939\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M256 0H512V1024H256V0Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 384H1024V640H0V384Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M320 0H448V1024H320V0Z\",\n fill: \"#002664\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 448H1024V576H0V448Z\",\n fill: \"#002664\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_3_20809\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 1024,\n height: 1024,\n rx: 512,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNo);\nexport default __webpack_public_path__ + \"static/media/no.bd2512fb.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 SvgAltiboxLogo(_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: 284,\n height: 104,\n viewBox: \"0 0 284 104\",\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 }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#D73523\",\n d: \"M52.516931,104 C23.513058,104 0,80.71752 0,51.998063 C0,23.278608 23.513058,0 52.516931,0 L231.483079,0 C260.486959,0 284,23.278608 284,51.998063 C284,80.71752 260.486959,104 231.483079,104 L52.516931,104 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M60.13676,60.360846 C59.577111,61.856691 58.802212,63.158774 57.808152,64.26322 C56.814091,65.37154 55.600868,66.251221 54.172394,66.913889 C52.740008,67.57268 51.16673,67.905952 49.452563,67.905952 C47.738396,67.905952 46.180772,67.57268 44.775781,66.913889 C43.374704,66.251221 42.169307,65.37154 41.159592,64.26322 C40.15379,63.158774 39.382807,61.856691 38.854467,60.360846 C38.322214,58.865001 38.056087,57.29165 38.056087,55.648546 C38.056087,53.978314 38.322214,52.401088 38.854467,50.916869 C39.382807,49.43265 40.15379,48.138318 41.159592,47.033872 C42.169307,45.929426 43.374704,45.04587 44.775781,44.383203 C46.180772,43.724411 47.738396,43.391139 49.452563,43.391139 C51.16673,43.391139 52.740008,43.724411 54.172394,44.383203 C55.600868,45.04587 56.814091,45.929426 57.808152,47.033872 C58.802212,48.138318 59.577111,49.440401 60.13676,50.936245 C60.692493,52.43209 60.970361,54.005441 60.970361,55.648546 C60.970361,57.29165 60.692493,58.865001 60.13676,60.360846 M60.970361,36.353691 L60.970361,40.682342 C58.050797,36.907852 52.387781,35.346127 48.904656,35.342252 C45.969436,35.346152 43.280777,35.884786 40.83476,36.962105 C38.380919,38.039424 36.279302,39.515893 34.522084,41.391512 C32.76878,43.267132 31.399011,45.433395 30.416692,47.901927 C29.438285,50.37046 28.945169,52.951374 28.945169,55.648546 C28.945169,58.399971 29.438285,60.988635 30.416692,63.414541 C31.399011,65.840446 32.76878,67.998958 34.522084,69.886202 C36.279302,71.773448 38.377005,73.257668 40.815192,74.334987 C43.245553,75.412305 45.942042,75.950965 48.904656,75.95484 C52.387781,75.95094 58.050797,74.38924 60.970361,70.61475 L60.970361,74.9434 L70.08128,74.9434 L70.08128,36.353691 L60.970361,36.353691 Z\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#FFF\",\n points: \"77.067 24.98 86.174 24.98 86.174 74.94 77.067 74.94\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M97.018759 63.32541C97.018759 70.025712 102.075159 74.9434 108.258699 74.9434L112.160579 74.9434 112.160579 67.003019 110.524689 67.003019C108.098229 67.003019 106.129679 65.022768 106.129679 62.581362L106.129679 43.879421 112.160579 43.879421 112.160579 36.353691 106.129679 36.353691 106.129679 24.979842 97.022669 24.979842 97.022669 36.353691 91.038739 36.353691 91.038739 43.879421 97.022669 43.879421 97.022669 61.837315 97.018759 63.32541zM117.455709 25.26661C117.455709 28.711704 120.277429 31.501882 123.756649 31.501882 127.235859 31.501882 130.057579 28.711704 130.057579 25.26661 130.057579 21.821516 127.235859 19.027463 123.756649 19.027463 120.277429 19.027463 117.455709 21.821516 117.455709 25.26661\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#FFF\",\n points: \"119.201 36.354 128.312 36.354 128.312 74.943 119.201 74.943\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFF\",\n d: \"M145.046759 55.648546C145.046759 57.29165 145.312889 58.865001 145.841229 60.360846 146.373479 61.856691 147.136629 63.158774 148.130699 64.26322 149.124759 65.37154 150.330159 66.251221 151.746899 66.913889 153.159699 67.57268 154.768199 67.905952 156.564559 67.905952 158.282639 67.905952 159.840259 67.57268 161.241349 66.913889 162.642419 66.251221 163.851729 65.37154 164.857529 64.26322 165.863329 63.158774 166.634319 61.856691 167.162659 60.360846 167.694909 58.865001 167.961039 57.29165 167.961039 55.648546 167.961039 54.005441 167.694909 52.43209 167.162659 50.936245 166.634319 49.440401 165.863329 48.138318 164.857529 47.033872 163.851729 45.925551 162.650249 45.04587 161.264829 44.383203 159.875489 43.724411 158.306119 43.391139 156.564559 43.391139 154.768199 43.391139 153.159699 43.724411 151.746899 44.383203 150.330159 45.04587 149.124759 45.925551 148.130699 47.033872 147.136629 48.138318 146.373479 49.43265 145.841229 50.916869 145.312889 52.401088 145.046759 53.978314 145.046759 55.648546M145.046759 74.9434L135.935849 74.9434 135.935849 24.979842 145.046759 24.979842 145.046759 40.682342C147.970249 36.903977 153.617589 35.342252 157.096809 35.342252 160.063339 35.342252 162.767659 35.884786 165.201919 36.962105 167.640119 38.039424 169.737819 39.515893 171.495029 41.391512 173.252259 43.267132 174.622029 45.42952 175.600429 47.882551 176.582759 50.335582 177.071959 52.924247 177.071959 55.648546 177.071959 58.399971 176.582759 60.988635 175.600429 63.414541 174.622029 65.840446 173.252259 67.998958 171.495029 69.886202 169.737819 71.773448 167.636199 73.257668 165.186279 74.334987 162.732439 75.412305 160.039859 75.95484 157.096809 75.95484L157.096809 75.93933C153.617589 75.93933 147.970249 74.38148 145.046759 70.603115L145.046759 74.9434zM200.412819 66.886762C193.998379 66.886762 188.801089 61.736559 188.801089 55.385029 188.801089 49.033499 193.998379 43.887171 200.412819 43.887171 206.827239 43.887171 212.028459 49.033499 212.028459 55.385029 212.028459 61.736559 206.827239 66.886762 200.412819 66.886762M200.412819 35.342252C189.235509 35.342252 180.171539 44.317324 180.171539 55.385029 180.171539 66.452734 189.235509 75.427806 200.412819 75.427806 211.590129 75.427806 220.654079 66.452734 220.654079 55.385029 220.654079 44.317324 211.590129 35.342252 200.412819 35.342252\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"#FFF\",\n points: \"219.065 74.943 231.812 55.486 219.351 36.354 229.89 36.354 237.08 48.448 244.269 36.354 254.808 36.354 242.351 55.486 255.051 74.943 244.515 74.943 237.08 62.523 229.605 74.943\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAltiboxLogo);\nexport default __webpack_public_path__ + \"static/media/altibox-logo.3e5d4b9e.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport styled from \"styled-components\";\nimport { ReactComponent as GBFlag } from \"../img/flags/gb.svg\";\nimport { ReactComponent as NOFlag } from \"../img/flags/no.svg\";\n\nconst FlagsWrap = styled.div`\n width: 81px;\n height: 36px;\n background-color: ${({ theme }) => theme.colors.primary};\n border-radius: 32px;\n`;\n\nconst FlagList = styled.ul`\n padding: 8px 0;\n font-size: 0;\n list-style-type: none;\n`;\n\nconst FlagItem = styled.li`\n display: inline-block;\n vertical-align: middle;\n padding: 0 ${({ theme }) => theme.space[2]};\n line-height: 1;\n\n :not(:last-child) {\n border-right: 1px solid #cac5dd;\n }\n`;\n\nconst FlagLink = styled.a`\n display: inline-block;\n vertical-align: middle;\n line-height: 1;\n`;\n\nconst StyledNOFlag = styled(NOFlag)`\n ${size(20, 20)}\n`;\n\nconst StyledGBFlag = styled(GBFlag)`\n ${size(20, 20)}\n`;\n\nconst LanguageToggle = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\nexport default LanguageToggle;\n","export default __webpack_public_path__ + \"static/media/hero-logo.59689d00.svg\";","export default __webpack_public_path__ + \"static/media/facebook-round.12f81449.svg\";","export default __webpack_public_path__ + \"static/media/instagram.dc6f8598.svg\";","export default __webpack_public_path__ + \"static/media/linkedin-round.0fb4f54e.svg\";","export default __webpack_public_path__ + \"static/media/twitter-round.a1b61465.svg\";","export default __webpack_public_path__ + \"static/media/youtube-round.f07d9bef.svg\";","export default __webpack_public_path__ + \"static/media/tiktok-round.5c82db11.svg\";","import { Link as RouterLink } from \"@reach/router\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport LanguageToggle from \"./LanguageToggle\";\nimport LogoSVG from \"../img/hero-logo.svg\";\nimport Facebook from \"../img/icons/facebook-round.svg\";\nimport Insta from \"../img/icons/instagram.svg\";\nimport Linkedin from \"../img/icons/linkedin-round.svg\";\nimport Twitter from \"../img/icons/twitter-round.svg\";\nimport Youtube from \"../img/icons/youtube-round.svg\";\nimport TicTok from \"../img/icons/tiktok-round.svg\";\nimport { Wrapper } from \"./Layout\";\n\nconst StyledFooter = styled.div`\n padding-top: ${(props) => props.theme.space[4]};\n padding-bottom: ${(props) => props.theme.space[6]};\n border-top: 5px solid ${({ theme }) => theme.colors.blue};\n background-color: ${({ theme }) => theme.colors.blueDarker4};\n font-family: ${({ theme }) => theme.fonts.impact};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n font-size: 1.6rem;\n }\n`;\n\nconst Inner = styled.div`\n margin: 0 auto;\n padding-left: ${(props) => props.theme.space[2]};\n padding-right: ${(props) => props.theme.space[2]};\n text-align: center;\n color: white;\n`;\n\nconst Logo = styled.img`\n width: 75px;\n`;\n\nconst LangLogoWrap = styled.div`\n display: flex;\n justify-content: center;\n gap: 100px;\n margin-top: ${({ theme }) => theme.space[3]};\n`;\n\nconst SocialIcon = styled.img`\n width: 20px;\n height: 20px;\n color: white;\n fill: white;\n`;\n\nconst Link = styled.a`\n color: white;\n line-height: 1;\n margin-right: 1rem;\n`;\n\nconst InlineBlock = styled.span`\n display: inline-block;\n margin-right: 5px;\n`;\n\nconst SocialIconWrapper = styled.span`\n display: inline-block;\n font-size: 1rem;\n line-height: 1;\n margin-right: 5px;\n`;\n\nconst Footer = () => {\n const { t } = useTranslation();\n return (\n \n \n \n \n \n \n \n \n \n \n \n {t(\"footer.email\", \"Email\")}:\n \n support@eliteserien.no\n \n \n \n \n {t(\"footer.contactUs\", \"Contact Us\")}\n \n \n \n \n \n \n \n \n \n Facebook\n \n \n \n \n \n \n \n X\n \n \n \n \n \n \n \n Instagram\n \n \n \n \n \n \n \n Youtube\n \n \n \n \n \n \n \n LinkedIn\n \n \n \n \n \n \n \n TikTok\n \n \n \n \n \n Foto: NTB - Redaktør: Thomas Torjusen\n \n \n \n \n \n {t(\"footer.termsAndConditions\", \"Terms and Conditions\")}\n \n \n \n \n {t(\"footer.privacyPolicy\", \"Privacy Policy\")}\n \n \n \n \n \n \n );\n};\n\nexport default Footer;\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","export default __webpack_public_path__ + \"static/media/hero.d80aee97.jpg\";","export default __webpack_public_path__ + \"static/media/hero@2x.3389ac11.jpg\";","export default __webpack_public_path__ + \"static/media/step-1@1x.5f06a00b.png\";","export default __webpack_public_path__ + \"static/media/step-1@2x.98170041.png\";","export default __webpack_public_path__ + \"static/media/step-1@3x.e2c66aa3.png\";","export default __webpack_public_path__ + \"static/media/step-2@1x.b7dc87ff.png\";","export default __webpack_public_path__ + \"static/media/step-2@2x.e0933d9d.png\";","export default __webpack_public_path__ + \"static/media/step-2@3x.261ce669.png\";","export default __webpack_public_path__ + \"static/media/step-3@1x.e9c22fa2.png\";","export default __webpack_public_path__ + \"static/media/step-3@2x.3eed7331.png\";","export default __webpack_public_path__ + \"static/media/step-3@3x.20f74186.png\";","export default __webpack_public_path__ + \"static/media/step-4@1x.febb6c76.png\";","export default __webpack_public_path__ + \"static/media/step-4@2x.c083e6f1.png\";","export default __webpack_public_path__ + \"static/media/step-4@3x.53573012.png\";","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 SvgObosLogo(_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 viewBox: \"0 0 479.5 105.7\",\n enableBackground: \"new 0 0 479.5 105.7\",\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: \"#0D4FA7\",\n d: \"M54.9,33.5c0-12-9.7-21.8-21.6-21.8c-12,0-21.6,9.7-21.6,21.8c0,12,9.7,21.8,21.6,21.8 C45.2,55.2,54.9,45.5,54.9,33.5 M102.3,34.3c0-4.7-3.8-8.6-8.5-8.6c-4.7,0-8.5,3.8-8.5,8.6c0,4.7,3.8,8.6,8.5,8.6 C98.5,42.9,102.3,39,102.3,34.3 M122.9,54.2c2.2-0.4,4.9-8.2,0.7-7.8c-29.4,2.1-30.2,2-59.5,0c-4.2-0.4-1.5,7.4,0.7,7.8 c13.1,2.6,16.5,3.2,16.5,6.9c-0.4,6.1-0.6,11.6-8.8,35.4c-1.9,4.5,6.5,3.1,7.5,0.8C85.2,87.1,88.5,79,92,75c0.9-1.1,2.8-1.1,3.6,0 c3.5,4,6.8,12.1,12.1,22.3c1,2.3,9.4,3.6,7.5-0.8c-8.2-23.9-8.4-29.4-8.8-35.4C106.4,57.4,109.7,56.8,122.9,54.2 M145.9,42.9v47.9 c0,7.5-5.2,14.9-14.6,14.9H46.9c-9.9,0-13.7-8.7-13.7-14.9V73.5c0-3.2-2.3-6.7-6.3-7.2C11.6,63.3,0,49.7,0,33.5C0,15,14.9,0,33.3,0 c10.4,0,19.8,4.8,25.9,12.4c3,3.8,6.3,3.6,9.1,2.1c7.6-4.3,13.7-7.8,14.6-8.3c4-2.3,7.8-3.1,12.8-0.2c2.3,1.4,39.1,22.7,45.2,26.3 C145.8,35.2,145.9,38.3,145.9,42.9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0D4FA7\",\n d: \"M478.3,48.1l-14.1,4.2C462.9,46.4,458.7,42,451,42c-6.4,0-11,3.9-11,8.3c0,3.6,2.3,6.8,7.8,7.8l10.5,1.9 c13.9,2.6,21.3,11.5,21.3,22.1c0,11.6-9.8,23.4-27.6,23.4c-18,0-27.8-9.1-30.1-23.3l14.5-3.4c1.2,8.2,7.9,12.7,16.1,12.7 c7.2,0,11.3-3.8,11.3-8.5c0-3.7-3.3-6.8-8.5-7.9l-10.6-2.1c-12.1-2.4-20-10.2-20-21.6c0-13.4,12.1-23.4,26.6-23.4 C468.5,28,476.9,38.4,478.3,48.1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0D4FA7\",\n d: \"M398.3,66.8c0-13-10.2-23.6-23.1-23.6c-13,0-23.2,10.6-23.2,23.6c0,13,10.2,23.7,23.2,23.7 C388.1,90.5,398.3,79.7,398.3,66.8 M375.3,28c21.7,0,38.9,16.9,38.9,38.5c0,21.8-17.6,39-39.2,39c-21.7,0-38.9-16.9-38.9-38.6 C336.1,45.2,353.7,28,375.3,28\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0D4FA7\",\n d: \"M309.3,51.5c0-6.2-5.7-8-10.9-8h-13.9v16.2h12.8C302.9,59.7,309.3,58.3,309.3,51.5 M300.8,90 c5.6,0,11.8-1.6,11.8-8.3c0-6.9-6.5-8.4-12.3-8.4h-15.8V90H300.8z M314,65.3c8.9,3.4,13.8,8.4,13.8,18.3 c0,15.3-13.5,20.8-26.8,20.8h-31.6V29.2h31.2c12.1,0,24,6.4,24,19.9c0,7.5-4,12.7-10.5,16.1V65.3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#0D4FA7\",\n d: \"M240.6,66.8c0-13-10.2-23.6-23.1-23.6c-13,0-23.2,10.6-23.2,23.6c0,13,10.2,23.7,23.2,23.7 C230.4,90.5,240.6,79.7,240.6,66.8 M217.6,28c21.7,0,38.9,16.9,38.9,38.5c0,21.8-17.6,39-39.2,39c-21.7,0-38.9-16.9-38.9-38.6 C178.3,45.2,196,28,217.6,28\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFFFFF\",\n d: \"M123.6,46.4c4.2-0.4,1.5,7.4-0.7,7.8c-13.1,2.6-16.5,3.2-16.5,6.9c0.4,6.1,0.6,11.6,8.8,35.4 c1.9,4.5-6.5,3.1-7.5,0.8C102.4,87.1,99.1,79,95.6,75c-0.8-1.1-2.8-1.1-3.6,0c-3.5,4-6.8,12.1-12.1,22.3c-1,2.3-9.4,3.6-7.5-0.8 c8.2-23.9,8.4-29.4,8.8-35.4c0-3.6-3.3-4.2-16.5-6.9c-2.2-0.4-4.9-8.2-0.7-7.8C93.3,48.4,94.1,48.5,123.6,46.4\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FFFFFF\",\n d: \"M93.8,25.7c4.7,0,8.5,3.8,8.5,8.6c0,4.7-3.8,8.6-8.5,8.6c-4.7,0-8.5-3.8-8.5-8.6 C85.3,29.5,89.1,25.7,93.8,25.7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#00AA79\",\n d: \"M33.3,11.7c11.9,0,21.6,9.7,21.6,21.8c0,12-9.7,21.8-21.6,21.8c-12,0-21.6-9.7-21.6-21.8 C11.6,21.4,21.3,11.7,33.3,11.7\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgObosLogo);\nexport default __webpack_public_path__ + \"static/media/obos-logo.ee6425fe.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 SvgTv2Logo(_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: \"2188.000000pt\",\n height: \"2702.000000pt\",\n viewBox: \"0 0 2188.000000 2702.000000\",\n preserveAspectRatio: \"xMidYMid meet\",\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: \"translate(0.000000,2702.000000) scale(0.100000,-0.100000)\",\n fill: \"#000000\",\n stroke: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10600 26477 c-3 -2 -88 -7 -190 -11 -102 -3 -207 -9 -235 -11 -27 -3 -115 -9 -195 -15 -588 -43 -1322 -165 -1900 -316 -1720 -449 -3201 -1285 -4395 -2479 -1409 -1410 -2331 -3232 -2706 -5350 -49 -276 -105 -688 -123 -910 -8 -94 -18 -194 -21 -226 -2 -14 -6 -77 -10 -140 -4 -63 -9 -134 -11 -159 -2 -25 -7 -178 -9 -340 -3 -162 -7 -312 -9 -332 l-4 -38 2579 0 2579 0 0 143 c1 573 103 1241 276 1808 209 686 548 1298 1005 1815 755 854 1848 1387 3104 1514 236 23 331 28 625 28 294 0 389 -5 625 -28 1133 -115 2121 -552 2870 -1272 824 -792 1334 -1905 1474 -3218 11 -102 23 -210 27 -240 3 -30 8 -738 11 -1572 l4 -1518 2575 0 2575 0 -4 1603 c-2 881 -6 1620 -10 1642 -3 22 -8 90 -12 150 -25 451 -104 1052 -201 1540 -563 2836 -2159 5148 -4509 6532 -1361 802 -2979 1280 -4665 1378 -58 4 -125 9 -150 11 -63 7 -964 17 -970 11z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7754 13322 c-143 -158 -1214 -1333 -2379 -2612 -1166 -1279 -2488 -2730 -2939 -3225 -452 -495 -1006 -1104 -1233 -1353 l-413 -452 0 -2470 0 -2470 10165 0 10165 0 0 2475 0 2475 -7013 2 -7013 3 1194 1310 c656 721 1438 1578 1736 1905 3095 3397 4250 4664 4265 4683 13 16 -156 17 -3130 17 l-3144 -1 -261 -287z\"\n }))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTv2Logo);\nexport default __webpack_public_path__ + \"static/media/tv2-logo.b52e4439.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _polygon, _polygon2, _polygon3, _polygon4, _rect, _polygon5, _polygon6, _polygon7, _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 SvgNorskTipping(_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 viewBox: \"0 0 2112.45 350\",\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, \".cls-1{fill:#42c0ed;}.cls-2{fill:#a1c854;}.cls-3{fill:#f19ec4;}.cls-4{fill:#f18700;}.cls-5{fill:#211452;}.cls-6{fill:#fec800;}.cls-7{fill:#009e3d;}.cls-8{fill:#e3051b;}.cls-9{fill:#006fb9;}\"))), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-6\",\n points: \"0 278.46 71.54 350 246.54 175 71.54 0 0 71.54 103.48 175 0 278.46\"\n })), _polygon2 || (_polygon2 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-2\",\n points: \"0 71.54 246.54 175 103.48 175 0 71.54\"\n })), _polygon3 || (_polygon3 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-7\",\n points: \"0 71.54 71.54 0 246.54 175 0 71.54\"\n })), _polygon4 || (_polygon4 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-4\",\n points: \"103.48 175 71.54 350 246.54 175 103.48 175\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n className: \"cls-3\",\n x: 208.92,\n y: 28.81,\n width: 123.38,\n height: 101.17,\n transform: \"translate(23.12 214.6) rotate(-45)\"\n })), _polygon5 || (_polygon5 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-8\",\n points: \"350 71.54 262.76 158.78 278.46 0 350 71.54\"\n })), _polygon6 || (_polygon6 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-1\",\n points: \"350 278.46 262.76 191.22 191.22 262.76 350 278.46\"\n })), _polygon7 || (_polygon7 = /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"cls-9\",\n points: \"278.46 350 191.22 262.76 350 278.46 278.46 350\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"cls-5\",\n d: \"M1158.98,135.06h-48.31l-49.96,65.33V71.92h-40.63v208.63h40.63v-67.81l51.33,67.81h49.69l-59.3-74.12,56.55-71.37ZM1200.14,111.45h55.18v169.1h42.55V111.45h50.74v-39.53h-148.47v39.53ZM706.34,131.22c-39.8,0-71.37,27.45-71.37,76.59s31.57,76.59,71.37,76.59,71.65-27.45,71.65-76.59-32.12-76.59-71.65-76.59ZM706.34,248.71c-15.65,0-30.47-9.33-30.47-40.9s14.82-41.45,30.47-41.45,31.02,12.08,31.02,41.45c0,32.12-15.37,40.9-31.02,40.9ZM967.81,194.63l-24.98-8.78c-10.16-3.29-14.55-7.41-14.55-13.73,0-7.69,6.04-12.63,15.65-12.63,12.08,0,19.21,6.04,22.51,19.21l32.12-10.16c-6.59-24.98-24.71-37.33-54.35-37.33-32.39,0-53.53,17.84-53.53,44.75,0,19.21,11.53,33.77,32.39,41.45l24.43,9.06c8.51,2.74,15.37,6.86,15.37,14.82,0,8.51-7.14,14.83-17.84,14.83-12.63,0-23.06-8.78-26.63-22.79l-32.12,10.43c7.14,26.63,27.45,40.63,58.75,40.63,34.59,0,57.65-19.77,57.65-49.69,0-18.12-12.35-32.39-34.86-40.08ZM1365.82,280.56h40.63v-145.49h-40.63v145.49ZM830.43,150.98l-6.86-15.92h-27.45v145.49h40.63v-110.08h42.82v-39.26h-3.29c-18.67,0-32.39,6.86-45.84,19.77ZM575.22,192.44l-112.28-122.98h-14v211.1h39.53v-120.24l112,122.71h14.27V71.92h-39.53v120.51ZM1901.23,131.22c-21.14,0-36.24,8.24-45.3,21.96l-6.59-18.12h-25.53v145.49h40.63v-84.82c0-16.47,9.06-28,25.53-28,13.73,0,20.04,7.14,20.04,20.86v91.96h40.63v-102.67c0-29.65-20.31-46.67-49.41-46.67ZM1775.98,70.55c-14,0-25.25,11.25-25.25,25.26s11.26,25.53,25.25,25.53,25.53-11.53,25.53-25.53-11.53-25.26-25.53-25.26ZM2112.45,131.22h-4.12c-14.27,0-23.61,3.57-33.77,14.27-10.16-9.06-24.98-14.27-42.82-14.27-35.41,0-58.75,20.04-58.75,50.78,0,16.47,6.86,30.2,18.67,38.98-13.45,5.76-20.31,15.37-20.31,28.28,0,10.16,4.12,18.39,12.08,23.61-12.9,6.04-20.59,16.2-20.59,28.82,0,25.81,24.16,40.35,67.53,40.35,47.22,0,76.31-19.22,76.31-49.96,0-27.73-19.76-43.65-54.63-43.92h-33.76c-9.61,0-13.73-2.74-13.73-8.78,0-4.12,2.47-7.14,7.69-8.78,5.77,1.37,12.35,2.2,19.49,2.2,35.41,0,58.75-20.31,58.75-50.78,0-5.49-.82-10.43-2.2-15.37h24.16v-35.41ZM2010.06,279.73h34.59c14.27,0,20.59,4.67,20.59,14.83,0,11.25-11.26,17.29-32.67,17.29-19.49,0-30.2-6.04-30.2-17.02,0-6.04,2.75-11.53,7.69-15.1ZM2031.74,203.14c-13.18,0-21.41-8.24-21.41-21.41s8.51-21.41,21.96-21.41,20.86,7.96,20.86,21.41-7.96,21.41-21.41,21.41ZM1386.13,70.55c-14,0-25.25,11.25-25.25,25.26s11.26,25.53,25.25,25.53,25.53-11.53,25.53-25.53-11.53-25.26-25.53-25.26ZM1513.03,131.22c-20.86,0-36.24,9.06-45.84,24.98l-7.69-21.14h-25.53v203.14h40.63v-70.82c9.61,10.71,22.78,17.02,38.71,17.02,39.53,0,63.96-27.73,63.96-76.59s-24.16-76.59-64.24-76.59ZM1505.62,248.71c-18.94,0-33.22-16.2-33.22-40.9s14.27-41.45,33.22-41.45c17.84,0,30.75,15.65,30.75,41.45,0,27.18-11.8,40.9-30.75,40.9ZM1755.66,280.56h40.63v-145.49h-40.63v145.49ZM1673.42,131.22c-20.86,0-36.24,9.06-45.84,24.98l-7.69-21.14h-25.53v203.14h40.63v-70.82c9.61,10.71,22.79,17.02,38.71,17.02,39.53,0,63.96-27.73,63.96-76.59s-24.16-76.59-64.24-76.59ZM1666.01,248.71c-18.94,0-33.22-16.2-33.22-40.9s14.27-41.45,33.22-41.45c17.84,0,30.75,15.65,30.75,41.45,0,27.18-11.8,40.9-30.75,40.9Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNorskTipping);\nexport default __webpack_public_path__ + \"static/media/norsk-tipping.962c90d2.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _rect, _rect2;\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: 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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 0C9.62663 0 7.30655 0.703788 5.33316 2.02236C3.35977 3.34094 1.8217 5.21508 0.913451 7.4078C0.00519937 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693605 16.6689 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6934 24 14.3734 24 12C24 8.8174 22.7357 5.76515 20.4853 3.51472C18.2348 1.26428 15.1826 0 12 0ZM13.5 19.5H10.5V10.5H13.5V19.5ZM13.5 7.5H10.5V4.5H13.5V7.5Z\",\n fill: \"#100118\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 10.4998,\n y: 4.5,\n width: 3,\n height: 3,\n fill: \"white\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 10.4998,\n y: 10.5,\n width: 3,\n height: 9,\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.5e041b44.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/es-promo-splash-left.bf0f7e2e.png\";","export default __webpack_public_path__ + \"static/media/es-promo-splash-left@2x.5dd15bc9.png\";","export default __webpack_public_path__ + \"static/media/es-promo-splash-right.9cfcb638.png\";","export default __webpack_public_path__ + \"static/media/es-promo-splash-right@2x.e9e77762.png\";","import { Location } from \"@reach/router\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport * as allauth from \"../../utils/allauth\";\nimport Button from \"../Button\";\n\nconst TV2Login = () => {\n const { t } = useTranslation();\n\n const handleTV2Login = () => {\n // Store the current path to redirect back after authentication\n localStorage.setItem(\"auth_return_path\", \"/\");\n\n const callbackUrl = \"/api/accounts/auth0/login/callback/\";\n\n try {\n // Redirect to Auth0 provider for SSO login\n allauth.redirectToProvider(\n \"auth0\",\n callbackUrl,\n allauth.AuthProcess.LOGIN\n );\n } catch (error) {\n console.error(\"Error during TV 2 login redirect:\", error);\n }\n };\n\n return (\n \n {() => (\n \n \n \n )}\n \n );\n};\n\nexport default TV2Login;\n","import { rgba } from \"polished\";\nimport 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: ${rgba(\"black\", 0.1)};\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 { Link } from \"@reach/router\";\nimport { hideVisually, hiDPI, size } from \"polished\";\nimport React, { useState } 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 ESPromoSplashLeft1x from \"../img/home/es-promo-splash-left.png\";\nimport ESPromoSplashLeft2x from \"../img/home/es-promo-splash-left@2x.png\";\nimport ESPromoSplashRight1x from \"../img/home/es-promo-splash-right.png\";\nimport ESPromoSplashRight2x from \"../img/home/es-promo-splash-right@2x.png\";\nimport { ReactComponent as ESPromoLogo } from \"../img/logos/es-fantasy-logo.svg\";\nimport Alert from \"./Alert\";\nimport TV2Login from \"./auth/TV2Login\";\nimport Button from \"./Button\";\nimport Copy from \"./Copy\";\nimport { FieldWrap, InputField } from \"./FieldRenderers\";\nimport SubHeading from \"./SubHeading\";\nimport TextDivider from \"./TextDivider\";\n\nconst LoginWrap = styled.div`\n margin-left: ${({ theme }) => theme.space[3]};\n margin-top: ${({ theme }) => theme.space[3]};\n margin-right: ${({ theme }) => theme.space[3]};\n margin-bottom: ${({ theme }) => theme.space[6]};\n padding: ${({ theme }) => theme.space[6]};\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\n`;\n\nconst CopyWrap = styled(Copy)`\n text-align: center;\n font-family: ${({ theme }) => theme.fonts.baseBold};\n color: ${({ theme }) => theme.colors.blackLighter};\n margin-top: -20px;\n`;\n\nconst Username = styled(FieldWrap)`\n flex: 1 0 28%;\n padding-right: ${({ theme }) => theme.space[2]};\n`;\n\nconst Password = styled(FieldWrap)`\n flex: 1 0 22%;\n padding-right: ${({ theme }) => theme.space[2]};\n`;\n\nconst LoginButtonWrap = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 0 20%;\n margin-top: 2.3rem;\n margin-bottom: ${({ theme }) => theme.space[4]};\n }\n`;\n\nconst LoginForm = styled.form`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n`;\n\nconst LoginLink = styled(Link)`\n color: ${({ theme }) => theme.colors.blackLighter};\n margin-left: ${({ theme }) => theme.space[2]};\n font-weight: bold;\n`;\n\nconst SocialIntro = styled.p`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${hideVisually()};\n }\n`;\n\nconst SocialLogin = styled.div`\n display: flex;\n flex-direction: column;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex-direction: row;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-right: 15%;\n margin-left: 15%;\n }\n`;\n\nconst StyledPromoBox = styled.div`\n background-image: url(${ESPromoSplashLeft1x}), url(${ESPromoSplashRight1x});\n\n ${hiDPI(2)} {\n background-image: url(${ESPromoSplashLeft2x}), url(${ESPromoSplashRight2x});\n }\n\n background-position: left bottom, right top;\n background-repeat: no-repeat, no-repeat;\n background-size: 60%;\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0 1.5rem 2.5rem 1.5rem;\n padding: ${({ theme }) => theme.space[6]};\n border-radius: 8px;\n background-color: ${({ theme }) => theme.colors.greyDarker4};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n background-size: 40%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n background-size: contain;\n flex-direction: row;\n height: 150px;\n }\n`;\n\nconst PromoLogo = styled(ESPromoLogo)`\n ${size(40, 200)}\n`;\n\nconst PromoTextWrap = styled.div`\n flex-grow: 1;\n flex-basis: min-content;\n padding: 2rem;\n text-align: center;\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n text-align: left;\n padding: 0 2rem 0 4rem;\n }\n`;\n\nconst PromoButtonWrap = styled.div`\n min-width: 100%;\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-width: 20%;\n }\n`;\n\nconst PromoText = styled.p`\n color: ${({ theme }) => theme.colors.black};\n margin-bottom: 0;\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, login, player }) => {\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const { t } = useTranslation();\n\n // TODO - Probably should send user to correct page after login\n const doLogin = (e: React.FormEvent) => {\n e.preventDefault();\n login({\n email,\n password,\n });\n };\n\n if (player && player.id) {\n return (\n \n \n

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

\n
\n
\n );\n }\n\n return (\n <>\n \n {error && (\n
\n \n \n {t(\"login.incorrectDetails\", \"Incorrect login details\")}\n \n \n
\n )}\n \n {t(\"login.title\", \"Login\")}\n \n \n \n setEmail(e.target.value)}\n value={email}\n />\n \n \n setPassword(e.target.value)}\n value={password}\n />\n \n \n \n \n \n {t(\"login.form.forgotPwd\", \"Forgot your password?\")}\n \n \n {t(\"login.form.or\", \"Or\")}\n \n {t(\"login.form.orLoginWithSocial\", \"Log in using:\")}\n \n \n \n \n \n {t(\"login.social.1\", \"Login with Facebook\")}\n \n \n \n \n \n \n
\n \n \n \n \n {t(\"login.promo.heading\", \"Play Eliteserien Fantasy\")}\n \n \n {t(\n \"login.promo.paragraph\",\n \"Who knows most about Eliteserien? Create a team of 15 players and compete against friends and familiy. Honor and glory is on the line, every single round.\"\n )}\n \n \n \n \n \n \n \n );\n};\n\nexport default connector(Login);\n","import React, { useEffect, useState } from \"react\";\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 ProviderHeader from \"../provider-components/ProviderHeader\";\nimport {\n ProviderArticleImg,\n ProviderContent,\n ProviderLink,\n ProviderSection,\n} from \"../provider-components/ProviderStyles\";\nimport filterOnSSL from \"./filterOnSSL\";\n\nconst parser = new Parser();\n\nconst Article = styled.article`\n padding: ${({ theme }) => theme.space[4]};\n border: 3px solid transparent;\n background-color: transparent;\n cursor: pointer;\n\n &:hover {\n border: 3px solid ${({ theme }) => theme.colors.blueDarker1};\n border-radius: ${({ theme }) => theme.radii[0]};\n background-color: ${({ theme }) => theme.colors.backgroundwhite50};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: ${({ theme }) => theme.space[2]};\n width: 33%;\n }\n`;\n\ninterface IProps {\n link: string;\n url: string;\n title: string;\n numberOfArticles: number;\n}\n\nconst ScoutProvider: React.FC = ({\n link,\n url,\n title,\n numberOfArticles,\n}) => {\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(\n 0,\n numberOfArticles\n );\n\n setProviderData(filteredSslFeedItems);\n }\n } catch (e) {}\n };\n if (content) {\n parseContent();\n }\n }, [content, numberOfArticles]);\n\n if (!providerData) {\n return null;\n }\n\n return (\n \n \n \n {providerData.map((item: Parser.Item) => {\n return (\n
\n \n {item.enclosure && (\n \n )}\n

{item.title}

\n \n
\n );\n })}\n
\n
\n );\n};\n\nexport default ScoutProvider;\n","export default __webpack_public_path__ + \"static/media/event-info-bg.6eedc7f4.png\";","export default __webpack_public_path__ + \"static/media/event-info-bg@2x.269a3842.png\";","export default __webpack_public_path__ + \"static/media/event-info-bg-lg.bcb79404.png\";","export default __webpack_public_path__ + \"static/media/event-info-bg-lg@2x.657eddbd.png\";","export default __webpack_public_path__ + \"static/media/event-info-players.92b72e00.png\";","export default __webpack_public_path__ + \"static/media/event-info-players@2x.9dd76a2d.png\";","import { Link } from \"@reach/router\";\nimport { hiDPI, 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\nimport Button from \"../Button\";\nimport BoldLink from \"../BoldLink\";\nimport Title from \"../Title\";\nimport eventInfoBg1x from \"../../img/event-info-bg.png\";\nimport eventInfoBg2x from \"../../img/event-info-bg@2x.png\";\nimport eventInfoBgLg1x from \"../../img/event-info-bg-lg.png\";\nimport eventInfoBgLg2x from \"../../img/event-info-bg-lg@2x.png\";\nimport eventInfoPlayers1x from \"../../img/event-info-players.png\";\nimport eventInfoPlayers2x from \"../../img/event-info-players@2x.png\";\n\nconst StyledEventInfo = styled.div`\n position: relative;\n background-image: url(${eventInfoBg1x});\n background-size: cover;\n background-repeat: no-repeat;\n padding-top: 1rem;\n margin: 1rem;\n border-radius: 6px;\n\n ${hiDPI(2)} {\n background-image: url(${eventInfoBg2x});\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n background-image: url(${eventInfoBgLg1x});\n margin: 0;\n\n ${hiDPI(2)} {\n background-image: url(${eventInfoBgLg2x});\n }\n }\n`;\nconst PlayersImage = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: absolute;\n top: 5%;\n right: 2%;\n width: 500px;\n height: 100%;\n background-image: url(${eventInfoPlayers1x});\n background-repeat: no-repeat;\n background-size: contain;\n\n ${hiDPI(2)} {\n background-image: url(${eventInfoPlayers2x});\n }\n }\n`;\n\nconst TitleWrap = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n margin: 1rem 2rem;\n > ${Title} {\n font-size: 2rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n grid-template-columns: 1fr;\n }\n`;\n\nconst BoldLinkWrap = styled.div`\n grid-column: 2 / 4;\n justify-self: right;\n\n > :first-child {\n color: ${({ theme }) => theme.colors.black};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n grid-column: 1;\n justify-self: left;\n }\n`;\n\nconst ButtonWrap = styled.div`\n grid-column: 1 / 4;\n padding-top: 2rem;\n > :first-child {\n width: 100%;\n text-align: center;\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 25%;\n }\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n grid-column: 1;\n grid-row-start: 2;\n padding: 1rem 0;\n }\n`;\n\nconst EventStats = styled.ul`\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(40%, 1fr));\n grid-gap: 1px;\n padding: 2px;\n margin-bottom: 0;\n align-items: stretch;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n grid-gap: 0;\n }\n`;\n\nconst EventStat = styled.li`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: ${({ theme }) => theme.space[2]};\n list-style-type: none;\n background-color: ${({ theme }) => theme.colors.whiteDarker};\n color: ${({ theme }) => theme.colors.black};\n text-align: center;\n\n &:last-child:nth-child(2n-1) {\n grid-column: span 2;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n &:last-child:nth-child(2n-1) {\n grid-column: span 1;\n }\n }\n`;\n\nconst EventStatsWrap = styled.div`\n clip-path: inset(2px round 0 0 4px 4px);\n overflow: clip;\n`;\n\nconst ItemHeading = styled.h4`\n margin: 0;\n color: inherit;\n`;\n\nconst ItemValue = styled.div`\n ${ellipsis()};\n font-size: 1.8rem;\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst ArrowLink = styled(Link)`\n color: ${({ theme }) => theme.colors.black};\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 {now.name}\n \n {t(\"prizes.title\", \"Prizes\")}\n \n \n \n \n \n \n \n {entry.started_event <= now.id && (\n \n \n {t(\"eventInfo.yourScore\", \"Your score\")}\n \n \n \n {entry.summary_event_points}\n \n \n \n \n )}\n \n \n {t(\"eventInfo.averageScore\", \"Average score\")}\n \n {now.average_entry_score || \"-\"}\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 {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};\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: 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[0]};\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","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 fill: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.blackLighter};\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 let copnr: number = 50;\n if (element.chance_of_playing_next_round !== null) {\n copnr = element.chance_of_playing_next_round;\n }\n\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 border: 0;\n background-color: transparent;\n line-height: 1;\n cursor: pointer;\n padding: 1.3rem 0.8rem;\n\n ${({ variant }) =>\n variant === \"pitch\" &&\n css`\n padding: 0;\n background-color: transparent;\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 table-layout: fixed;\n white-space: nowrap;\n overflow: hidden;\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.grey};\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 ${({ bold }) => css`\n font-weight: 600;\n `}\n`;\n","import * as React from \"react\";\nimport styled from \"styled-components\";\nimport { useSelector } from \"react-redux\";\nimport { getElement } from \"../core/store/elements/reducers\";\nimport { RootState } from \"../core/store\";\nimport OnErrorImg from \"../img/headshots/shirt_onerror.png\";\n\nconst Img = styled.img`\n display: block;\n margin: auto;\n max-width: 200px;\n width: 100%;\n height: auto;\n`;\n\ninterface IProps {\n elementId: number;\n}\n\ntype Props = IProps;\n\nconst Shirt: React.FC = ({ elementId }) => {\n const element = useSelector((state: RootState) =>\n getElement(state, elementId)\n );\n\n if (!element) {\n return null;\n }\n\n return (\n {\n e.currentTarget.src = `${OnErrorImg}`;\n }}\n />\n );\n};\nexport default Shirt;\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\nconst StyledPanelBody = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.white};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n border-radius: 6px;\n }\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 { ElementRow, ElementTable, PrimaryCell } from \"../ElementTable\";\nimport Shirt from \"../Shirt\";\nimport SubHeading from \"../SubHeading\";\nimport { Ellipsis } from \"../Utils\";\nimport StatusPanel from \"./StatusPanel\";\n\nconst AvailabilityTable = styled(ElementTable)`\n th:not(:nth-child(3)) {\n text-align: center;\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 {t(\"playerAvailability.player\", \"Player\")}\n \n {t(\"playerAvailability.postitionShort\", \"Pos\")}\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\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 Table from \"../Table\";\nimport Panel from \"../Panel\";\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: ${({ theme }) => theme.colors.black};\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 \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\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 {`${element.first_name} ${element.second_name}`}\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/pitch.f5bcd2f8.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/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-top: 0.8rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-top: 2rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-top: 3rem;\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: auto;\n padding: 0.4rem 0;\n border-radius: 0.8rem;\n align-items: stretch;\n width: 7.2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 10.6rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 12.8rem;\n }\n\n ${(props) =>\n (props.variant === \"instigator\" || props.variant === \"target\") &&\n css`\n transition: all 0.15s;\n `}\n\n ${(props) =>\n props.variant === \"instigator\" &&\n css`\n background-color: ${({ theme }) => theme.colors.pinkLighter};\n `}\n\n ${(props) =>\n props.variant === \"target\" &&\n css`\n background-color: ${rgba(\"#100118\", 0.2)};\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 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: 100%;\n height: 100%;\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: 4px;\n }\n`;\n\nexport const InfoControl = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: absolute;\n top: 0;\n right: 4px;\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\n//crops player image\nconst ElementWrapper = styled.div`\n position: absolute;\n left: 0.2px;\n right: 0.2px;\n bottom: -10px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n bottom: -12px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n bottom: -5px;\n }\n`;\n\nexport const ElementName = styled.div`\n padding: 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.4rem;\n padding-bottom: 0.4rem;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n`;\n\nexport const ElementValue = styled.div`\n padding: 0.2rem;\n border-bottom-left-radius: 6px;\n border-bottom-right-radius: 6px;\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.blueDarker3};\n font-size: 1.2rem;\n font-weight: 800;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\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 Shirt from \"../Shirt\";\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/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\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n min-height: 400px;\n background-size: 600px 400px;\n }\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-top: 0.7rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding-top: 2rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n max-width: 620px;\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 { useDispatch, useSelector } 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} 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 Shirt from \"../Shirt\";\nimport SubHeading from \"../SubHeading\";\nimport ElementExplainDialog from \"../team/ElementExplainDialog\";\nimport valueForPlayerElement from \"../team/valueForPlayedElement\";\nimport { UnstyledButton } from \"../Utils\";\nimport StatusFormation from \"./StatusFormation\";\nimport { useTranslation } from \"react-i18next\";\n\nconst StyledDreamTeam = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\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: ${({ theme }) => theme.colors.black};\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 0`};\n background-color: white;\n border-radius: 1px;\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: 0.3rem ${({ theme }) => theme.space[1]};\n background-color: ${({ theme }) => theme.colors.purple1};\n color: white;\n`;\n\nconst TopScorerPts = styled.div`\n padding: 0.3rem ${({ theme }) => theme.space[1]};\n background-color: ${({ theme }) => theme.colors.purple3};\n color: ${({ theme }) => theme.colors.purple1}; ;\n`;\n\nconst TopScorerTeam = styled.div`\n padding: 0.3rem;\n border: 1px solid ${({ theme }) => theme.colors.purple3};\n border-radius: 0 0 5px 5px;\n background-color: white;\n color: ${({ theme }) => theme.colors.purple1};\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\";\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\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 {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\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 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 position: relative;\n z-index: 3;\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`;\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 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 \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","export default __webpack_public_path__ + \"static/media/step-splash.49348c83.png\";","export default __webpack_public_path__ + \"static/media/step-splash@2x.10968eaf.png\";","import styled from \"styled-components/macro\";\nimport { hiDPI } from \"polished\";\nimport StepSplash1x from \"../img/home/step-splash.png\";\nimport StepSplash2x from \"../img/home/step-splash@2x.png\";\n\ninterface SProps {\n lgSrc: string;\n mdSrc: string;\n smSrc: string;\n}\n\nconst StyledTriangleCard = styled.div`\n padding-top: 50%;\n background: ${({ theme }) => theme.colors.greyDarker4}\n url(${({ mdSrc }) => mdSrc}) top center no-repeat;\n background-size: contain;\n border-radius: 12px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n position: relative;\n min-height: 220px;\n padding-top: 0;\n background-image: url(${({ lgSrc }) => lgSrc});\n background-size: cover;\n background-position: 50px -80px;\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n background-position: 50px -110px;\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n background-position: 50px -35px;\n }\n`;\n\nconst Content = styled.div`\n padding: 2rem 2rem 0rem;\n background-color: ${({ theme }) => theme.colors.greyDarker4};\n border-bottom-left-radius: 12px;\n border-bottom-right-radius: 12px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding: 6rem 2rem 0rem;\n position: relative;\n z-index: 11;\n width: 46%;\n background-color: transparent;\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 2rem 2rem 0rem;\n }\n`;\n\nconst StepSplashBg = styled.div`\n position: absolute;\n bottom: 0;\n left: 0px;\n display: none;\n width: 340px;\n height: 220px;\n border-bottom-left-radius: 12px;\n background-image: url(${StepSplash1x});\n background-repeat: no-repeat;\n background-size: cover;\n\n ${hiDPI(2)} {\n background-image: url(${StepSplash2x});\n }\n z-index: 11;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n display: block;\n }\n`;\n\nconst Svg = styled.svg`\n display: none;\n border-top-left-radius: 12px;\n border-bottom-left-radius: 12px;\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n display: block;\n position: absolute;\n right: 0;\n top: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n width: 70%;\n max-height: 100%;\n z-index: 10;\n }\n`;\n\nconst Title = styled.h3`\n margin: 0;\n font-size: 2.4rem;\n font-weight: 600;\n line-height: 1.25em;\n margin-bottom: ${({ theme }) => theme.space[3]};\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.impact};\n`;\n\nconst Desc = styled.div`\n margin-top: 0;\n font-size: 16px;\n padding-bottom: ${({ theme }) => theme.space[4]};\n color: ${({ theme }) => theme.colors.black};\n line-height: normal;\n`;\n\ninterface IProps {\n title: string;\n desc: string;\n lgSrc: string;\n mdSrc: string;\n smSrc: string;\n}\n\nconst TriangleCard = ({ lgSrc, mdSrc, smSrc, title, desc }: IProps) => (\n \n \n \n \n \n \n {title}\n {desc}\n \n \n);\n\nexport default TriangleCard;\n","import { RouteComponentProps } from \"@reach/router\";\nimport { hiDPI, size } 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\";\nimport i18n from \"../i18n\";\n// Hero images\nimport heroImg1x from \"../img/home/hero.jpg\";\nimport heroImg2x from \"../img/home/hero@2x.jpg\";\n// Highlight images\nimport step1 from \"../img/home/step-1@1x.png\";\nimport step12x from \"../img/home/step-1@2x.png\";\nimport step13x from \"../img/home/step-1@3x.png\";\nimport step2 from \"../img/home/step-2@1x.png\";\nimport step22x from \"../img/home/step-2@2x.png\";\nimport step23x from \"../img/home/step-2@3x.png\";\nimport step3 from \"../img/home/step-3@1x.png\";\nimport step32x from \"../img/home/step-3@2x.png\";\nimport step33x from \"../img/home/step-3@3x.png\";\nimport step4 from \"../img/home/step-4@1x.png\";\nimport step42x from \"../img/home/step-4@2x.png\";\nimport step43x from \"../img/home/step-4@3x.png\";\nimport { ReactComponent as AltiboxLogo } from \"../img/logos/altibox-logo.svg\";\nimport { ReactComponent as ObosLogo } from \"../img/logos/obos-logo.svg\";\nimport { ReactComponent as Tv2Logo } from \"../img/logos/tv2-logo.svg\";\nimport { ReactComponent as NTLogo } from \"../img/logos/norsk-tipping.svg\";\nimport HighlightsProvider from \"./highlights/HighlightsProvider\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Login from \"./Login\";\nimport ScoutProvider from \"./scout/ScoutProvider\";\nimport Status from \"./status/Status\";\nimport TriangleCard from \"./TriangleCard\";\n\nconst HomeHero = styled.div`\n background-repeat: no-repeat;\n background-position: 50% 0;\n background-image: url(${heroImg1x});\n\n ${hiDPI(2)} {\n background-image: url(${heroImg2x});\n background-size: cover;\n }\n\n margin: 0 ${({ theme }) => theme.space[3]};\n margin-bottom: 100px;\n padding-top: 270px;\n text-align: center;\n height: 0;\n position: relative;\n border-radius: 12px;\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border-radius: 12px;\n }\n`;\n\nconst Tagline = styled.h3`\n display: inline-block;\n margin: 0 ${({ theme }) => theme.space[2]};\n padding: ${({ theme }) => theme.space[5]};\n background: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 20px;\n transform: translateY(-50%);\n line-height: 1;\n border-radius: 12px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 34px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 52px;\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[4]}) {\n display: flex;\n justify-content: space-between;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-left: 0;\n margin-right: 0;\n }\n`;\n\nconst HighlightsItem = styled.div`\n margin-bottom: ${({ theme }) => theme.space[4]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 calc(43%);\n margin-bottom: 0;\n }\n`;\nconst VideoEmbed = styled.div`\n display: flex;\n justify-content: center;\n margin: ${({ theme }) => `${theme.space[6]} ${theme.space[2]} 0`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: none;\n }\n`;\n\nconst SponsorBarOuter = styled.div`\n background-color: #f2f9fa;\n`;\n\nconst SponsorBarInner = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n max-width: 1220px;\n margin: auto;\n }\n`;\n\nconst SponsorList = styled.ul`\n margin: 0;\n padding: ${({ theme }) => theme.space[2]};\n list-style-type: none;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n justify-content: center;\n padding-top: 3rem;\n padding-bottom: 3rem;\n }\n`;\n\nconst SponsorItem = styled.li`\n margin-bottom: ${({ theme }) => theme.space[3]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 27%;\n margin-bottom: 0;\n padding: 0 5rem;\n text-align: right;\n\n :not(:first-child) {\n border-left: 2px solid #a5a5a5;\n text-align: left;\n }\n }\n`;\n\nconst SponsorBox = styled.div`\n text-align: center;\n display: inline-block;\n`;\n\nconst SponsorHeading = styled.h3`\n margin: 0 0 ${({ theme }) => theme.space[3]};\n font-size: 1.4rem;\n font-family: ${({ theme }) => theme.fonts.baseSemiBold};\n color: ${({ theme }) => theme.colors.black};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-bottom: 0.5rem;\n }\n`;\n\nconst SponsorWrap = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n flex-direction: row;\n gap: ${({ theme }) => theme.space[8]};\n }\n`;\n\nconst StyledAltiboxLogo = styled(AltiboxLogo)`\n ${size(37, 84)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${size(55, 133)}\n }\n`;\n\nconst StyledNTLogo = styled(NTLogo)`\n ${size(37, 140)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${size(35, 210)}\n }\n`;\n\nconst StyledObosLogo = styled(ObosLogo)`\n ${size(37, 84)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${size(55, 133)}\n }\n`;\n\nconst PresentedList = styled.ul`\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n list-style-type: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-top: 2rem;\n }\n`;\n\nconst PresentedItem = styled.li`\n padding: 0;\n line-height: 1;\n\n :not(:last-child) {\n padding-right: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst StyledTv2Logo = styled(Tv2Logo)`\n ${size(32, 41)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(40, 53)}\n margin-top: -5px;\n }\n`;\n\ninterface IPropsFromState {\n now: IEvent | null;\n player: IPlayer | null;\n}\n\ninterface IProvider {\n link: string;\n url: string;\n title: string;\n}\ninterface IHighlights {\n url: string;\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 const providers: IProvider[] = [\n {\n url: \"https://www.tv2.no/rest/cms-feeds-dw-rest/v2/cms/article/sport/fotball/fantasy\",\n link: \"https://www.tv2.no/sport/fotball/eliteserien\",\n title: i18n.t(\"feed.providers.title1\", \"Latest Fantasy-news from TV 2\"),\n },\n {\n url: \"https://www.eliteserien.no/rss-nyheter\",\n link: \"https://www.eliteserien.no/nyheter\",\n title: i18n.t(\"feed.providers.title2\", \"Latest news from Eliteserien\"),\n },\n ];\n let hpHighlightsUrl =\n \"https://tv2news.content-discovery.cf.eu-north-1-preprod.vmnd.tv/api/v1/assets?platform=web&page%5bsize%5d=10&page%5bnumber%5d=1&sort=-event-occurrence-time&query=%28%28video-type%3aSportAutomatic%29%20and%20%28tv2-tournament-id%3a%2256f79b03-9608-4b12-9903-2ebaa1a07922%22%20or%20tv2-tournament-id%3a%22e53e02b8-a512-51d3-aa98-ceda8e3a01b1%22%29%20and%20%28type-of-action%3agoal%20or%20type-of-action%3aredcard%20or%20type-of-action%3ahighlight%29%29\";\n const production_url =\n \"https://tv2news.content-discovery.cf.eu-north-1-prod.vmnd.tv/api/v1/assets?platform=web&page%5bsize%5d=10&page%5bnumber%5d=1&sort=-event-occurrence-time&query=%28%28video-type%3aSportAutomatic%29%20and%20%28tv2-tournament-id%3a%2256f79b03-9608-4b12-9903-2ebaa1a07922%22%20or%20tv2-tournament-id%3a%22e53e02b8-a512-51d3-aa98-ceda8e3a01b1%22%29%20and%20%28type-of-action%3agoal%20or%20type-of-action%3aredcard%20or%20type-of-action%3ahighlight%29%29\";\n if (process.env.REACT_APP_SENTRY_ENVIRONMENT === \"production\") {\n hpHighlightsUrl = production_url;\n }\n\n const highlights: IHighlights[] = [\n {\n url: hpHighlightsUrl,\n },\n ];\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 {t(\"home.title\", \"How to play Fantasy\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {providers.map((provider: IProvider) => (\n \n ))}\n {highlights.map((highlight: IHighlights) => (\n \n ))}\n
\n
\n \n \n \n \n \n \n {t(\"home.mainPartner\", \"Main partner\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t(\"home.poweredBy\", \"Powered by\")}\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 React from \"react\";\nimport Downshift from \"downshift\";\nimport { SearchField } from \"../../FieldRenderers\";\nimport debounce from \"lodash/debounce\";\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 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\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 { withTranslation, WithTranslation } from \"react-i18next\";\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\";\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 { league, t } = 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 { league, remove, t } = 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
\n \n \n \n \n \n {t(\"createLeagues.title\", \"Choose a league type to create\")}\n \n \n \n \n \n {t(\"createLeagues.classic.title\", \"Classic scoring\")}\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 {t(\"createLeagues.h2H.title\", \"Head-to-Head scoring\")}\n

\n {t(\n \"createLeagues.h2H.p0\",\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 {t(\n \"createLeagues.h2H.p1\",\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\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 Collapsible from \"../Collapsible\";\nimport Copy from \"../Copy\";\nimport { FieldWrap, InputField, SelectField } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\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\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 \n
\n \n
\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 ) : (\n \n )\n ) : (\n \"\"\n )}\n \n {t(\"createClassic.title\", \"Create a new classic league & cup\")}\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

{JSON.stringify(error)}

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

\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 \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 {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 \n \n
  • \n {t(\n \"createClassic.theCupHowExplain2\",\n \"Most goals scored in the round\"\n )}\n
  • \n {t(\n \"createClassic.theCupHowExplain3\",\n \"Fewest goals conceded in the round\"\n )}\n
  • \n {t(\"createClassic.theCupHowExplain4\", \"Virtual coin toss\")}\n
  • {\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\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 { Link } from \"@reach/router\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport TextDivider from \"../TextDivider\";\nimport Title from \"../Title\";\n\nconst CreateJoin: React.FC = () => {\n const { t } = useTranslation();\n return (\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 styled from \"styled-components\";\nimport { Box } from \"rebass/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\n \n
    \n \n
    \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 ) : (\n \n )\n ) : (\n \"\"\n )}\n \n \n {t(\"createH2H.title\", \"Create a new head-to-head league\")}\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

    {JSON.stringify(error)}

    \n \n \n \n {this.maximumKoRounds() > 0 && (\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 {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 \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 \n {t(\"createJoin.title\", \"Create and join leagues\")}\n {t(\"createJoin.joinLeague.title\", \"Join a League & cup\")}\n

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

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

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

    = ({ 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\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.blue};\n font-size: ${({ theme }) => theme.space[4]};\n text-align: center;\n`;\n\nconst LeagueInviteCode = styled.strong`\n margin-left: ${({ theme }) => theme.space[1]};\n color: ${({ theme }) => theme.colors.black};\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(\n \"invite.inviteMsg2\",\n `I'm playing Fantasy Eliteserien in a league called ${leagueName}.`,\n {\n leagueName,\n }\n ),\n t(\"invite.inviteMsg3\", \"Why not join me?\"),\n `${window.location.origin}/leagues/auto-join/${code}`,\n t(\"invite.inviteMsg4\", `The code to join this league is: ${code}`, {\n code: code,\n }),\n t(\"invite.inviteMsg5\", \"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 \n \n \n \n \n\n \n\n {cupStatus.qualification_event ? (\n <>\n \n {cupStatus.has_byes ? (\n <>\n \n\n \n \n\n \n \n \n \n ) : (\n <>\n \n\n \n \n \n \n )}\n \n ) : (\n \n )}\n {cupStatus.name}\n \n \n {t(\"cupNotStarted.standings\", \"View league standings\")}\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 {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 {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 {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 {t(\"cupNotStarted.qualify6\", \"How the cup works\")}\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 \n \n
  • \n {t(\n \"cupNotStarted.qualify8\",\n \"Most goals scored in the Round\"\n )}\n
  • \n {t(\n \"cupNotStarted.qualify9\",\n \"Fewest goals conceded in the Round\"\n )}\n
  • {t(\"cupNotStarted.qualify10\", \"Virtual coin toss\")}
  • \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 {t(\"cupNotStarted.qualify12\", \"How the cup works\")}\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 \n \n
  • \n {t(\n \"cupNotStarted.qualify14\",\n \"Most goals scored in the Round\"\n )}\n
  • \n {t(\n \"cupNotStarted.qualify15\",\n \"Fewest goals conceded in the Round\"\n )}\n
  • {t(\"cupNotStarted.qualify16\", \"Virtual coin toss\")}
  • \n {t(\n \"cupNotStarted.qualify17\",\n \"There is no information available for this cup yet.\"\n )}\n = ({\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 Eliteserien 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\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 { Link } from \"@reach/router\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\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 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\ninterface IPropsFromState {\n settings: ISettings | null;\n}\n\nconst Join: React.FC\n \n
    \n \n
    \n \n \n\n \n\n \n\n \n\n \n\n \n {t(\"invite.title\", \"Invite players to join\")} {leagueName}\n \n {t(\"invite.codeToJoin\", \"Code to join this league\")}:\n \n \n {isCopied ? t(\"invite.copied\", \"Copied!\") : codeToCopy}\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 {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 (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\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 {message.map((line) => (\n \n ))}\n

    {line}

    = ({ settings }) => {\n const { t } = useTranslation();\n if (!settings) {\n return null;\n }\n return (\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 \n
    \n \n
    \n \n \n \n \n \n \n {t(\"join.title\", \"Choose a league type to join\")}

    \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\n \n \n {t(\"join.private.title\", \"Private leagues & cups\")}\n

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

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

    \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 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}\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 \n
    \n \n
    \n \n {error && (\n \n )}\n \n {t(\"joinPrivate.title\", \"Join private league & cup\")}\n \n \n {settings && (\n \n )}\n
    \n \n \n
    \n \n \n \n = ({\n error,\n joinPublicLeagueClassic,\n joinPublicLeagueH2H,\n settings,\n}) => {\n const { t } = useTranslation();\n return (\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 { 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 \n
    \n \n
    \n \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 \n )\n ) : (\n \"\"\n )}\n \n\n \n \n \n \n {t(\"joinPublic.title\", \"Join public league\")}\n \n \n {t(\n \"joinPublic.error\",\n \"You may only enter {{ publicLeagueMax }} public leagues\",\n { publicLeagueMax: settings.league_join_public_max }\n )}\n

    {JSON.stringify(error)}

    \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 {t(\"joinPublic.classic.title\", \"Classic scoring\")}\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 {t(\"joinPublic.h2H.button\", \"Head-to-Head scoring\")}\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 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 background-color: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.black};\n text-decoration: none;\n\n ${(props) =>\n props.variant === \"secondary\" &&\n css`\n background: ${({ theme }) => theme.colors.greyDarker2};\n color: #333;\n `}\n`;\n\nexport const ButtonHyperlink = styled.a`\n ${ButtonLinkStyles}\n`;\n\nconst 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 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\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\n \n \n {leagueEntries\n .sort((a, b) => a.entry_name.localeCompare(b.entry_name))\n .map((e) => (\n \n ))}\n \n ) => 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\nexport default H2HEventFilter;\n","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 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 xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\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 fillRule: \"evenodd\",\n d: \"M24,10.295858 L24,13.7651471 C24,13.8898242 23.9583351,14.0095008 23.8750052,14.124177 C23.7916753,14.2388532 23.6873464,14.3065255 23.5620182,14.3271939 L20.6711387,14.7652304 C20.473147,15.327944 20.2701554,15.8019835 20.0621641,16.1873489 C20.4268155,16.708059 20.9841257,17.4267856 21.7340944,18.3435286 C21.8380901,18.4682057 21.8900879,18.5985499 21.8900879,18.7345612 C21.8900879,18.8705725 21.8430899,18.9902492 21.7490938,19.0935911 C21.4677722,19.4789566 20.952127,20.0413368 20.2021582,20.7807317 C19.4521895,21.5201267 18.9625432,21.8898242 18.7332194,21.8898242 C18.608558,21.8898242 18.4732303,21.8428202 18.3272364,21.7488124 L16.1713262,20.0616718 C15.7126786,20.3010251 15.2386984,20.4990416 14.7493854,20.6557213 C14.5827257,22.072506 14.431732,23.0412534 14.2964043,23.5619635 C14.2237407,23.8539878 14.0364151,24 13.7344277,24 L10.2655723,24 C10.1195784,24 9.991917,23.955663 9.88258823,23.8669889 C9.77325945,23.7783149 9.71326195,23.6663055 9.70259573,23.5309609 L9.26461397,20.6557213 C8.75396858,20.4890408 8.28532144,20.296358 7.85867256,20.0776731 L5.65576434,21.7498125 C5.55176868,21.8438203 5.42144077,21.8908242 5.26478063,21.8908242 C5.11878672,21.8908242 4.98845881,21.8334861 4.87379693,21.7188099 C3.56118495,20.5313776 2.70188742,19.6563047 2.29590434,19.0935911 C2.2232407,18.9895825 2.18690888,18.8699058 2.18690888,18.7345612 C2.18690888,18.6098842 2.22857381,18.4902075 2.31190367,18.3755313 C2.46789717,18.1568464 2.73355277,17.8104842 3.10887046,17.3364447 C3.48418816,16.8624052 3.76550977,16.4950413 3.9528353,16.2343529 C3.67151369,15.7136428 3.45785592,15.1979332 3.31186201,14.6872239 L0.452981126,14.2651888 C0.317653431,14.2445204 0.208324653,14.179515 0.124994792,14.0701725 C0.0416649306,13.9608301 0,13.8384865 0,13.7031419 L0,10.2338528 C0,10.1091758 0.0416649306,9.98949912 0.124994792,9.8748229 C0.208324653,9.76014668 0.307320528,9.69247437 0.421982417,9.67180598 L3.32786134,9.23376948 C3.47385526,8.7543962 3.6768468,8.27535628 3.93683597,7.79664972 C3.52018666,7.20260022 2.96287655,6.48387366 2.26490563,5.64047004 C2.16090996,5.51579298 2.10891213,5.39078257 2.10891213,5.26543879 C2.10891213,5.16143012 2.15591017,5.04175348 2.24990625,4.90640887 C2.52056164,4.53171098 3.03354027,3.97166431 3.78884213,3.22626886 C4.54414399,2.48087341 5.03645681,2.10850904 5.26578059,2.10917576 C5.40110829,2.10917576 5.53643598,2.1611801 5.67176368,2.26518877 L7.82767385,3.93732811 C8.2863214,3.69797483 8.76030165,3.49995833 9.2496146,3.34327861 C9.41627432,1.92649387 9.56726803,0.957746479 9.70259573,0.43703642 C9.77525936,0.145678807 9.96258489,0 10.2645723,0 L13.7334278,0 C13.8794217,0 14.007083,0.0443370281 14.1164118,0.133011084 C14.2257406,0.22168514 14.2857381,0.333694475 14.2964043,0.469039087 L14.7343861,3.34427869 C15.2450315,3.51095925 15.7136786,3.70364197 16.1403275,3.92232686 L18.359235,2.25018752 C18.4532311,2.15617968 18.5782259,2.10917576 18.7342194,2.10917576 C18.8695471,2.10917576 18.999875,2.1611801 19.1252031,2.26518877 C20.4691471,3.50462539 21.3284446,4.3900325 21.7030957,4.92141012 C21.7757593,5.0047504 21.8120912,5.11942662 21.8120912,5.26543879 C21.8120912,5.39011584 21.7704262,5.50979248 21.6870964,5.62446871 C21.5311029,5.8431536 21.2654473,6.18951579 20.8901296,6.6635553 C20.5148119,7.1375948 20.2334903,7.50495875 20.0461647,7.76564714 C20.3168201,8.2863572 20.5304779,8.79673306 20.687138,9.29677473 L23.5460189,9.73481123 C23.6813466,9.75547962 23.7906754,9.82048504 23.8740052,9.92982749 C23.9573351,10.0391699 23.999,10.1615135 23.999,10.2968581 L24,10.295858 Z M16,12 C16,10.896 15.6093333,9.95333333 14.828,9.172 C14.0466667,8.39066667 13.104,8 12,8 C10.896,8 9.95333333,8.39066667 9.172,9.172 C8.39066667,9.95333333 8,10.896 8,12 C8,13.104 8.39066667,14.0466667 9.172,14.828 C9.95333333,15.6093333 10.896,16 12,16 C13.104,16 14.0466667,15.6093333 14.828,14.828 C15.6093333,14.0466667 16,13.104 16,12 Z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCog);\nexport default __webpack_public_path__ + \"static/media/cog.47b424f1.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 \n \n {events\n .filter((e) => e.id >= startEvent)\n .map((e) => (\n \n ))}\n \n `\n display: flex;\n border: 1px solid ${({ theme }) => theme.colors.greyDarker3};\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: white;\n color: ${({ theme }) => theme.colors.greyDarker3};\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.baseSemiBold};\n font-size: 1.3rem;\n line-height: 1;\n text-align: center;\n\n :first-child {\n border-right: 1px solid ${({ theme }) => theme.colors.greyDarker3};\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.primary};\n color: ${({ theme }) => theme.colors.greyDarker3};\n border-radius: ${({ theme }) => theme.radii[1]};\n font-family: ${({ theme }) => theme.fonts.baseSemiBold};\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.baseSemiBold};\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 {isCup && match.event === 30 && (\n \n )}\n \n );\n};\n\nconst StatusRow: React.FC<{ children: React.ReactNode }> = ({ 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 \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 \n \n {winnerName}\n  \n \n {children} = ({\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 ) : null}\n \n  \n \n \n \n {match.knockout_name}\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 \n \n \n ) : (\n <>\n \n \n \n \n )}\n \n {match.is_bye && (\n \n )}\n {match.winner && \n {match.entry_2_entry && started ? (\n \n \n \n {match.entry_2_player_name}\n \n ) : (\n \n \n \n {match.entry_2_player_name}\n \n )}\n {match.entry_2_name}
    {match.entry_2_name}
    \n {match.is_bye ? (\n \n ) : (\n \n )}\n {t(\"h2hEventFilter.score\", \"N/A\")}\n {started ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n {match.entry_2_points}\n \n {match.entry_1_points}\n --\n {match.entry_1_entry ? (\n started ? (\n \n \n \n {match.entry_1_player_name}\n \n ) : (\n \n \n \n {match.entry_1_player_name}\n \n )\n ) : (\n <> \n )}\n {match.entry_1_name}
    {match.entry_1_name}
    \n {match.entry_1_entry && started ? (\n \n \n \n {match.entry_1_player_name}\n \n ) : (\n \n \n \n {match.entry_1_player_name}\n \n )}\n {match.entry_1_name}
    {match.entry_1_name}
    \n {match.is_bye ? (\n \n ) : (\n \n )}\n {t(\"h2hEventFilter.score2\", \"N/A\")}\n {started ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n {match.entry_1_points}\n \n {match.entry_2_points}\n --\n {match.entry_2_entry ? (\n started ? (\n \n \n \n {match.entry_2_player_name}\n \n ) : (\n \n \n \n {match.entry_2_player_name}\n \n )\n ) : (\n <> \n )}\n {match.entry_2_name}
    {match.entry_2_name}
    \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};\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\";\nimport Panel from \"../Panel\";\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\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\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 \n \n \n \n \n \n \n \n \n \n \n {matches.map((m) => (\n \n {t(\"matchesTable.rd\", \"RD\")}\n \n {t(\"matchesTable.team1\", \"Team\")}\n  \n {t(\"matchesTable.team2\", \"Team\")}\n \n ))}\n \n = ({\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};\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 styled from \"styled-components/macro\";\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\nconst StyledMain = styled(Main)`\n min-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\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\nconst MatchesCup: React.FC\n \n \n \n \n {league && league.name}\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 = ({ 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\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\n \n \n \n \n \n {didNotQualify ? (\n \n ) : (\n <>\n \n {matches && matches.results.length ? (\n \n \n \n {t(\"matchesCup.leagueLink\", \"View league standings\")}\n \n \n \n {t(\"matchesCup.notQf\", \"This team did not qualify for the cup.\")}{\" \"}\n \n \n {t(\"matchesCup.viewMatches\", \"View cup matches\")}\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 ) : (\n \n )}\n \n )}\n {cupStatus.qualification_event && (\n \n )}\n \n {matches && (\n \n )}\n \n \n {getNoMatchesMessage()}\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 \n \n \n {t(\"matchesCup.how\", \"How the cup works\")}

    \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 {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 \n \n
  • \n {t(\"matchesCup.explain3\", \"Most goals scored in the Round\")}\n
  • \n {t(\"matchesCup.explain4\", \"Fewest goals conceded in the Round\")}\n
  • {t(\"matchesCup.explain5\", \"Virtual coin toss\")}
  • \n \n \n \n \n \n {pageMatches > 1 && (\n \n \n \n )}\n {t(\"matchesCup.previews\", \"Previous\")}\n {matches.has_next && (\n \n \n \n )}\n {t(\"matchesCup.next\", \"Next\")}\n <>\n = ({ 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 {links.map((l) => (\n \n ))}\n \n \n {l.text}\n \n {\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 return (\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\n \n
    \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 <>\n {now && (\n \n )}\n {leagueEntries && (\n \n )}\n {this.isLargeLeague() && (\n \n )}\n {now && (\n \n \n \n \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 \n \n \n \n \n \n \n {pageMatches > 1 && (\n \n \n \n )}\n {t(\"matchesH2h.previews\", \"Previous\")}\n {matches.has_next && (\n \n \n \n )}\n {t(\"matchesH2h.next\", \"Next\")}\n <>\n = ({ 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\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 align-items: center;\n margin: ${({ theme }) => theme.space[2]};\n padding-left: 0;\n`;\n\nconst NavItem = styled.li`\n flex: 1;\n overflow: hidden;\n list-style-type: none;\n border-radius: ${({ theme }) => theme.space[1]};\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 background-color: ${({ theme }) => theme.colors.purple4};\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impactMedium};\n font-size: 1.6rem;\n text-decoration: none;\n overflow: hidden;\n border: none;\n text-align: center;\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.primaryDarker};\n color: ${({ theme }) => theme.colors.black};\n }\n\n ${(props) =>\n props.isCurrent &&\n css`\n background-color: ${({ theme }) => theme.colors.red};\n color: ${({ theme }) => theme.colors.white};\n border-radius: ${({ theme }) => theme.radii[1]};\n padding: 1.2rem 0;\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.redDarker};\n }\n `}\n`;\n\ninterface ILinks {\n href: string;\n text: string;\n}\n\ninterface ISubNav {\n links: ILinks[];\n}\n\nconst SubNav: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n {leagues.map((l) => (\n {t(\"cupTypeTable.cup\", \"Cup\")}\n \n \n {t(\"cupTypeTable.round\", \"Round\")}\n \n \n \n {t(\"cupTypeTable.status\", \"Status\")}\n \n ))}\n \n = ({ 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 {links.map((l) => (\n \n ))}\n \n \n \n {l.text}\n ;\n};\n\nexport default LeaguesNav;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"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 { 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 StyledMain = styled(Main)`\n min-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 LeaguesNavWrap = styled.div`\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 StyledSpan = styled.span`\n color: ${({ theme }) => theme.colors.black};\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 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 );\n};\n\nexport default MyCups;\n","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 SvgTwitter(_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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.3263 1.90381H21.6998L14.3297 10.3273L23 21.7898H16.2112L10.894 14.8379L4.80995 21.7898H1.43443L9.31743 12.7799L1 1.90381H7.96111L12.7674 8.25814L18.3263 1.90381ZM17.1423 19.7706H19.0116L6.94539 3.81694H4.93946L17.1423 19.7706Z\",\n fill: \"white\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitter);\nexport default __webpack_public_path__ + \"static/media/twitter.435b9f1d.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 \n \n \n \n \n {t(\"myCups.title\", \"Leagues & Cups - {{ entryName }}\", {\n entryName: entry.name,\n })}\n \n \n \n \n \n {hasCupLeagues ? (\n <>\n {privateClassicLeagues.length > 0 && (\n \n )}\n {publicClassicLeagues.length > 0 && (\n \n )}\n {filteredSystemClassicLeagues.length > 0 && (\n \n )}\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n

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

    \n \n \n {t(\"myCups.button\", \"Create and Join New Leagues & Cups\")}\n \n {\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.blueDarker3};\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 useTranslation,\n WithTranslation,\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 DialogManager from \"../DialogManager\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\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 { Ellipsis } from \"../Utils\";\nimport LeaguesNav from \"./LeaguesNav\";\nimport Movement from \"./Movement\";\nimport { getLeagueUrl } from \"./utils\";\n\nconst StyledMain = styled(Main)`\n min-width: 100%;\n padding: ${({ theme }) => `${theme.space[4]} ${theme.space[2]}`};\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding: ${({ theme }) => ` ${theme.space[4]}`};\n }\n`;\n\nconst SubHeadingWrap = styled(SubHeading)`\n padding: ${({ theme }) => `${theme.space[0]} ${theme.space[3]}`};\n`;\n\nconst LeaguesNavWrap = styled.div`\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 PrimaryWrap = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: ${({ theme }) => `${theme.space[2]} ${theme.space[2]} 0`};\n }\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 ActionBar = styled.ul`\n list-style-type: none;\n padding: 0;\n margin: 0;\n margin: auto;\n width: 100%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: flex;\n width: 85%;\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 74%;\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 NoLeaguesJoined = styled.div`\n padding: 0 ${({ theme }) => theme.space[3]};\n border-top: 1px solid ${({ theme }) => theme.colors.white};\n`;\n\nconst MyLeaguesTable = 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\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 @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\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 \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {entry.name}\n \n \n \n \n \n }\n >\n {t(\n \"myLeagues.createJoinButton\",\n \"Create and join new leagues & cups\"\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 leagues,\n leave,\n title,\n}) => {\n const { t } = useTranslation();\n return (\n \n );\n};\n\ninterface ILeagueMenuDialogProps {\n handleHide: () => void;\n leagueEntry: ILeagueEntry;\n leave: (leagueId: number) => void;\n}\n\nconst LeagueMenuDialog: React.FC\n \n \n \n {leagues.length === 0 ? (\n \n ) : (\n \n )}\n \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 \n \n \n \n \n {leagues.map((l) => (\n \n \n \n \n \n \n \n {t(\"myLeagues.th.league\", \"League\")} \n {t(\"myLeagues.th.currentRank\", \"Current Rank\")}\n {t(\"myLeagues.th.lastRank\", \"Last Rank\")} {l.name}\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 {showDialog && (\n \n \n \n \n {t(\"myLeagues.optionsLink\", \"Options\")}\n \n )}\n \n )}\n />\n \n \n ))}\n \n = ({\n handleHide,\n leagueEntry,\n leave,\n}) => {\n const { t } = useTranslation();\n return (\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 from \"../Table\";\nimport Panel from \"../Panel\";\nimport StandingsHeading from \"./StandingsHeading\";\n\ntype OwnProps = RouteComponentProps<{\n leagueId: string;\n}>;\n\nconst NewEntriesH2H: React.FC\n \n \n \n \n {leagueEntry.name}\n \n \n \n {leagueEntry.entry_can_leave && (\n \n )}\n {leagueEntry.entry_can_admin && (\n \n )}\n {leagueEntry.entry_can_invite && (\n \n )}\n \n }\n to={`/leagues/${leagueEntry.id}/standings/${leagueEntry.scoring}`}\n >\n {t(\"myLeagues.menuDialog.standings\", \"Standings\")}\n \n \n }\n onClick={() => {\n leave(leagueEntry.id);\n handleHide();\n }}\n >\n {t(\"myLeagues.menuDialog.leave\", \"Leave league\")}\n \n \n }\n to={`/leagues/${leagueEntry.id}/admin/${leagueEntry.scoring}`}\n >\n {t(\"myLeagues.menuDialog.admin\", \"Administer\")}\n \n \n }\n to={`/leagues/${leagueEntry.id}/invite`}\n >\n {t(\"myLeagues.menuDialog.invite\", \"Invite friends\")}\n \n = ({ 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\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 \n \n
    \n
    \n \n \n \n \n \n {t(\"standingH2h.new\", \"New entries\")}\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 {page > 1 && (\n \n )}\n \n \n Previous\n {newEntries.has_next && (\n \n )}\n Next\n \n <>\n {\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}\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\n \n
    \n \n
    \n \n \n \n\n {leagues.length ? (\n \n ) : (\n \n )}\n {t(\"renew.title\", \"Renew your leagues\")}

    \n {t(\n \"renew.p1\",\n \"Choose whether you wish to renew or delete last season's private leagues.\"\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 {leagues.map((l) => (\n \n ))}\n
  • \n \n \n
  • {l.name}\n \n \n \n \n \n \n \n {t(\"renew.none\", \"You have no leagues to renew.\")}\n = ({ description, title }) => {\n return (\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 {title}\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 tr {\n background: ${({ theme }) => theme.colors.tableBlueLight};\n\n &:nth-child(odd) {\n background: ${({ theme }) => theme.colors.tableBlueDark};\n }\n color: ${({ theme }) => theme.colors.black};\n > a {\n color: ${({ theme }) => theme.colors.red};\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 styled from \"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 Panel from \"../Panel\";\nimport SubHeading from \"../SubHeading\";\nimport Table from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\nimport Movement from \"./Movement\";\nimport StandingsHeading from \"./StandingsHeading\";\nimport StandingsRow from \"./StandingsRow\";\nimport { getCupUrl } from \"./utils\";\n\nconst StyledMain = styled(Main)`\n min-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\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 }\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 \n \n \n \n {league.has_cup && (\n \n )}\n {league.start_event > 1 && (\n \n )}\n \n {standings && standings.lastUpdatedData && (\n \n )}\n \n {standings && (\n \n )}\n {newEntries && newEntries.results.length > 0 && (\n <>\n \n \n \n \n )}\n \n \n \n {league.cup_league\n ? t(\"standingClassic.matches\", \"View cup matches\")\n : t(\"standingClassic.info\", \"View cup info\")}\n \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 {phases.map((p) => (\n \n {p.name}\n \n ))}\n \n \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 {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 \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 {now ? (\n \n \n \n ) : (\n \n )}\n \n {ls.player_name}\n {ls.entry_name}{ls.entry_name}
    {ls.event_total}{ls.total}\n \n \n \n {pageStandings > 1 && (\n \n \n \n )}\n {t(\"standingClassic.previews\", \"Previous\")}\n {standings.has_next && (\n \n \n \n )}\n {t(\"standingClassic.next\", \"Next\")}\n {t(\"standingClassic.new\", \"New entries\")}\n \n \n \n \n \n \n \n \n {newEntries.results.map((ne) => (\n \n \n \n \n ))}\n \n
    {t(\"standingClassic.team1\", \"Team\")}\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 {pageNewEntries > 1 && (\n \n \n \n \n )}\n \n {t(\"standingClassic.previews1\", \"Previous\")}\n \n {newEntries.has_next && (\n \n \n \n {t(\"standingClassic.next1\", \"Next\")}\n \n \n )}\n \n <>\n {\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\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 \n \n \n
    \n
    \n {standings && standings.results[0] && now && (\n \n )}\n \n {standings && standings.results.length > 0 && (\n \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 \n ))}\n \n
    {t(\"standingH2h.rank\", \"Rank\")}\n {t(\"standingH2h.team\", \"Team & Manager\")}\n \n \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 {t(\"standingH2h.score\", \"Score\")}\n \n \n \n \n {t(\"standingH2h.pts\", \"Pts\")}\n \n \n \n \n {ls.rank}\n \n {ls.entry ? (\n \n \n \n ) : (\n \n )}\n \n {ls.player_name}\n {ls.entry_name}{ls.entry_name}
    {ls.matches_won}{ls.matches_drawn}{ls.matches_lost}{ls.points_for}{ls.total}\n \n \n \n \n \n {pageStandings > 1 && (\n \n \n \n \n )}\n {t(\"standingH2h.previews\", \"Previous\")}\n {standings.has_next && (\n \n \n {t(\"standingH2h.next\", \"Next\")}\n \n )}\n \n <>\n = () => {\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, { useEffect } from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport * as allauth from \"../../utils/allauth\";\nimport { logout } from \"../../core/store/player/thunks\";\nimport { RootState } from \"../../core/store\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { Box } from \"rebass/styled-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst LogoutContainer = styled(Box)`\n margin-top: 6rem;\n margin-bottom: 3rem;\n padding: 3rem;\n background-color: #f2f9fa;\n text-align: center;\n`;\n\nconst mapStateToProps = (state: RootState) => ({\n player: getPlayerData(state),\n});\n\nconst mapDispatch = {\n logout: () => logout(),\n};\n\nconst connector = connect(mapStateToProps, mapDispatch);\n\ntype PropsFromRedux = ConnectedProps;\n\nconst Logout: React.FC = ({\n logout,\n player,\n}) => {\n const { t } = useTranslation();\n\n useEffect(() => {\n const performLogout = async () => {\n try {\n // First log out from the game\n await logout();\n\n // Check if we need to logout from TV2 by checking\n // if the player was authenticated with social auth\n const auth = await allauth.getAuth();\n console.log(\"auth state: \", auth);\n console.log(\"auth state:\", JSON.stringify(auth, null, 2));\n if (\n auth &&\n auth.data?.user &&\n auth.data.user.socialaccounts?.length > 0\n ) {\n // User was logged in with social auth, we need to logout from TV2\n await allauth.logout();\n\n // Redirect to the TV2 logout endpoint to complete SSO logout\n // This URL should be configured in your TV2 settings\n const returnTo = encodeURIComponent(window.location.origin);\n const auth0Domain =\n process.env.REACT_APP_AUTH0_DOMAIN || \"https://id-stage.tv2.no\";\n window.location.href = `https://${auth0Domain}/v2/logout?client_id=${process.env.REACT_APP_AUTH0_CLIENT_ID}&returnTo=${returnTo}`;\n } else {\n // Regular logout, just redirect to home\n window.location.replace(\"/\");\n }\n } catch (error) {\n console.error(\"Logout error:\", error);\n // If there's an error, just redirect to home\n window.location.replace(\"/\");\n }\n };\n\n performLogout();\n }, [logout]);\n\n return (\n \n );\n};\n\nexport default connector(Logout);\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 \n \n

    {t(\"logout.title\", \"Signing Out\")}

    {t(\"logout.message\", \"Please wait while we sign you out...\")}

    = () => {\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\n return (\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 \n
    \n \n \n
    \n \n {t(\"passwordReset.sentTitle\", \"Password reset sent\")}\n \n

    \n {t(\n \"passwordReset.sentExplain\",\n \"If the email you submitted is registered in the game we have emailed you the instructions for resetting your password. You should receive it shortly.\"\n )}\n

    \n \n
    \n \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 ) =>\n setEmail(e.currentTarget.value)\n }\n />\n \n \n ();\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 if (!initialToken || !uidb64) {\n return (\n \n );\n }\n\n async function handleSubmit(e: React.FormEvent\n \n
    \n \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 {t(\"passwordReset.errorMissingTitle\", \"Error validating link\")}\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 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\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 \n
    \n \n {serverErrors.length > 0 && (\n \n )}\n \n
    \n \n {t(\"passwordSet.title\", \"Enter new password\")}\n {values(serverErrors).map((r) => (\n \n ))}\n

    {r}

    \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 {errors.newPassword1 && (\n \n )}\n \n {errors.newPassword2 && (\n \n )}\n \n
    \n ) =>\n setNewPassword1(e.currentTarget.value)\n }\n onBlur={validate}\n hint={t(\"passwordSet.hintPassword1\", \"Minimum 6 characters\")}\n />\n {errors.newPassword1}\n ) =>\n setNewPassword2(e.currentTarget.value)\n }\n onBlur={validate}\n />\n {errors.newPassword2}\n \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","export default __webpack_public_path__ + \"static/media/altibox-logo.3e5d4b9e.svg\";","export default __webpack_public_path__ + \"static/media/es-logo.d6420b42.svg\";","export default __webpack_public_path__ + \"static/media/obos-logo.ee6425fe.svg\";","export default __webpack_public_path__ + \"static/media/tv2-logo.b52e4439.svg\";","import { navigate } from \"@reach/router\";\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 { bootstrap } from \"../../core/store/bootstrap/thunks\";\nimport { getPasswordChangeError } from \"../../core/store/player/reducers\";\nimport { passwordChange } from \"../../core/store/player/thunks\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Copy from \"../Copy\";\nimport { FieldFeedback, InputField } from \"../FieldRenderers\";\nimport { Main } from \"../Layout\";\nimport Title from \"../Title\";\n\ninterface IErrors {\n oldPassword: string;\n password: string;\n}\n\nconst PasswordChange: React.FC = () => {\n const passwordChangeErrors = useSelector(getPasswordChangeError);\n const reduxDispatch = useDispatch();\n const { t } = useTranslation();\n const [oldPassword, setOldPassword] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [errors, setErrors] = useState({\n password: \"\",\n oldPassword: \"\",\n });\n\n async function handleSubmit(e: React.FormEvent) {\n e.preventDefault();\n try {\n await reduxDispatch(\n passwordChange({\n old_password: oldPassword,\n password,\n })\n );\n } catch (e) {\n return;\n }\n await reduxDispatch(bootstrap());\n navigate(\"/\");\n }\n\n // Errors which can be picked up by the UI\n const validate = () => {\n if (password.length <= 6) {\n errors.password = t(\n \"passwordChange.hintPassword\",\n \"Minimum 6 characters\"\n );\n }\n setErrors(errors);\n };\n\n const disabled = password.length < 6 || !oldPassword.length;\n\n return (\n \n );\n};\n\nexport default PasswordChange;\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport { trackEvent } from \"fathom-client\";\nimport range from \"lodash/range\";\nimport sortBy from \"lodash/sortBy\";\nimport values from \"lodash/values\";\nimport moment from \"moment\";\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 { 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 AltiboxLogo from \"../../img/logos/altibox-logo.svg\";\nimport EliteSerienLogo from \"../../img/logos/es-logo.svg\";\nimport ObosLogo from \"../../img/logos/obos-logo.svg\";\nimport TV2Logo from \"../../img/logos/tv2-logo.svg\";\nimport { IPlayer } from \"../../types\";\nimport { loadFathomTrackingId } from \"../../utils/fathom\";\nimport { getSite } from \"../../utils/sites\";\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 PasswordChange from \"./PasswordChange\";\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.blueDarker1};\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 \n {passwordChangeErrors && (\n \n )}\n \n
    \n \n {t(\"passwordChange.title\", \"Change password\")}\n {t(\"passwordChange.error\", \"Error updating password.\")}\n \n \n
    \n \n \n {errors.password && }\n \n
    \n ) =>\n setOldPassword(e.currentTarget.value)\n }\n />\n \n ) =>\n setPassword(e.currentTarget.value)\n }\n onBlur={validate}\n hint={t(\"passwordChange.hintPassword\", \"Minimum 6 characters\")}\n />\n {errors.password}\n \n ;\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 emailEliteserien: boolean;\n emailFavourite: boolean;\n emailObos: boolean;\n emailTV2: boolean;\n emailAltibox: 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 emailAltibox: player ? player.email_altibox : false,\n emailEliteserien: player ? player.email_eliteserien : false,\n emailObos: player ? player.email_obos : false,\n emailTV2: player ? player.email_tv2 : 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 if (!this.props.player) {\n return \"register\";\n }\n return this.props.player.dirty ? \"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_altibox: this.state.emailAltibox,\n email_eliteserien: this.state.emailEliteserien,\n email_obos: this.state.emailObos,\n email_tv2: this.state.emailTV2,\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_altibox: this.state.emailAltibox,\n email_eliteserien: this.state.emailEliteserien,\n email_obos: this.state.emailObos,\n email_tv2: this.state.emailTV2,\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 handleEmailEliteserienChange = (\n e: React.FormEvent\n ) =>\n this.setState({ emailEliteserien: e.currentTarget.checked ? true : false });\n\n public handleEmailFavouriteChange = (e: React.FormEvent) =>\n this.setState({ emailFavourite: e.currentTarget.checked ? true : false });\n\n public handleEmailObosChange = (e: React.FormEvent) =>\n this.setState({ emailObos: e.currentTarget.checked ? true : false });\n\n public handleEmailTV2Change = (e: React.FormEvent) =>\n this.setState({ emailTV2: e.currentTarget.checked ? true : false });\n\n public handleEmailAltiboxChange = (e: React.FormEvent) =>\n this.setState({ emailAltibox: 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\n // Add fathom trackEvent when a new user\n // registers and navigates to \"/squad-selection\"\n const site = getSite();\n const trackEventLabels = {\n main_nb: \"Registrert bruker\",\n main_en: \"Registered user\",\n tv2: \"Registrert TV 2 bruker\",\n };\n if (trackEventLabels[site]) {\n trackEvent(trackEventLabels[site]);\n }\n\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 // Upon initial page load...\n loadFathomTrackingId();\n }\n\n public getNorwayRegions() {\n const regs = this.props.regions;\n const norStart = 286;\n const nor = regs.filter((reg) => reg.code >= norStart);\n return sortBy(nor, [\"name\"]);\n }\n public getIntRegions() {\n const regs = this.props.regions;\n const norStart = 286;\n const int = regs.filter((reg) => reg.code < norStart);\n return sortBy(int, [\"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 === \"duplicate\"\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 { player, t } = this.props;\n const mode = this.getMode();\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 }\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\n \n
    \n \n\n {errors && }\n \n {mode === \"update\" && player && !player.is_social && (\n
    \n \n \n {title[mode]}

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

    {values(errors).map((r) => r)}\n \n
    \n \n {mode === \"register\" && (\n \n )}\n \n \n \n \n \n \n
    \n \n {this.state.errorEmail && (\n \n )}\n {this.state.errorEmail}\n \n {this.state.errorPass && (\n \n )}\n {this.state.errorPass}\n \n {this.state.errorFName && (\n \n )}\n {this.state.errorFName}\n \n {this.state.errorLName && (\n \n )}\n {this.state.errorLName}\n \n \n \n \n \n {this.state.errorDob && (\n \n )}\n Date of birth\n {t(\"register.hint.dob\", \"Game open to over 13 only\")}\n \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 {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 {t(\"register.label.year\", \"Year\")}\n \n {range(new Date().getFullYear() - 13, 1900).map((y) => (\n \n {y}\n \n ))}\n \n {this.state.errorDob}\n {this.state.errorRegion && (\n \n )}\n {this.state.errorRegion}\n \n \n \n {values(this.getNorwayRegions()).map((r) => (\n \n {r.name}\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 \n \n \n )}\n > => async (dispatch) => {\n try {\n await apiGet(\"regions/\", dispatch, actions.addRegions);\n } catch (e) {\n return;\n }\n };\n","export default __webpack_public_path__ + \"static/media/prizes-hero@1x.c44765f3.jpg\";","export default __webpack_public_path__ + \"static/media/prizes-hero@2x.d79e2ee1.jpg\";","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 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 background: ${({ theme }) => theme.colors.primary};\n transform: translateY(-50%);\n line-height: 1;\n padding: 2.5rem;\n border-radius: 12px;\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);\n\nexport default Hero;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Box } from \"rebass/styled-components\";\nimport image from \"../img/prizes-hero@1x.jpg\";\nimport image2x from \"../img/prizes-hero@2x.jpg\";\nimport Copy from \"./Copy\";\nimport Hero from \"./Hero\";\nimport { Main, Wrapper } from \"./Layout\";\nimport SubHeading from \"./SubHeading\";\n\nconst Prizes: React.FC\n \n {title} = () => {\n const { t } = useTranslation();\n return (\n \n );\n};\n\nexport default Prizes;\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 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: 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_574_4236)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 8,\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 0C9.62663 0 7.30655 0.703788 5.33316 2.02236C3.35977 3.34094 1.8217 5.21508 0.913451 7.4078C0.00519937 9.60051 -0.232441 12.0133 0.230582 14.3411C0.693604 16.6689 1.83649 18.807 3.51472 20.4853C5.19295 22.1635 7.33115 23.3064 9.65892 23.7694C11.9867 24.2324 14.3995 23.9948 16.5922 23.0865C18.7849 22.1783 20.6591 20.6402 21.9776 18.6668C23.2962 16.6934 24 14.3734 24 12C24 8.8174 22.7357 5.76515 20.4853 3.51472C18.2348 1.26428 15.1826 0 12 0ZM18.0975 15.45L15.45 18.0975L12 14.655L8.55 18.0975L5.9025 15.45L9.345 12L5.9025 8.55L8.55 5.9025L12 9.345L15.45 5.9025L18.0975 8.55L14.655 12L18.0975 15.45Z\",\n fill: \"#DC0E2A\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_574_4236\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgRemove);\nexport default __webpack_public_path__ + \"static/media/remove.a90cd024.svg\";\nexport { ForwardRef as ReactComponent };","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
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t(\"prizes.season.title\", \"Season\")}

    \n {t(\"prizes.season.firstPrize.title_23\", \"First Place Season\")}\n

      \n \n \n \n \n \n
  • \n {t(\n \"prizes.season.firstPrize.item1_23\",\n \"Universal Gift Card worth 7500 NOK from OBOS\"\n )}\n
  • \n {t(\n \"prizes.season.firstPrize.item2_23\",\n \"Annual subscription to TV 2 Play (value 389 NOK/month)\"\n )}\n
  • {t(\"prizes.season.firstPrize.item3_23\", \"FC 2025\")}
  • \n {t(\n \"prizes.season.firstPrize.item4_23\",\n \"Signed National Team Jersey provided by Norsk Tipping\"\n )}\n
  • \n {t(\n \"prizes.season.firstPrize.item5_23\",\n \"2 VIP tickets to any Eliteserien match of choice\"\n )}\n
  • \n \n \n

    \n {t(\"prizes.season.secondPrize.title_23\", \"Second Place Season\")}\n

      \n \n \n \n \n
  • \n {t(\n \"prizes.season.secondPrize.item1_23\",\n \"Universal Gift Card worth 7500 NOK from OBOS\"\n )}\n
  • \n {t(\n \"prizes.season.secondPrize.item2_23\",\n \"Annual subscription to TV 2 Play (value 389 NOK/month)\"\n )}\n
  • {t(\"prizes.season.secondPrize.item3_23\", \"FC 2025\")}
  • \n {t(\n \"prizes.season.secondPrize.item4_23\",\n \"Signed National Team Jersey provided by Norsk Tipping\"\n )}\n
  • \n \n \n

    \n {t(\"prizes.season.thirdPrize.title_23\", \"Third Place Season\")}\n

      \n \n \n \n \n
  • \n {t(\n \"prizes.season.thirdPrize.item1_23\",\n \"Universal Gift Card worth 7500 NOK from OBOS\"\n )}\n
  • \n {t(\n \"prizes.season.thirdPrize.item2_23\",\n \"Annual subscription to TV 2 Play (value 389 NOK/month)\"\n )}\n
  • {t(\"prizes.season.thirdPrize.item3_23\", \"FC 2025\")}
  • \n {t(\n \"prizes.season.thirdPrize.item4_23\",\n \"Signed National Team Jersey provided by Norsk Tipping\"\n )}\n
  • \n \n \n \n \n \n \n {t(\n \"prizes.cup.title_23\",\n \"ESF CUP - “New Opportunity” - From Round 10 Winner\"\n )}\n

    {t(\"prizes.cup.subHeading_23\", \"Winner\")}

      \n \n \n
  • {t(\"prizes.cup.item1_23\", \"85-inch TV\")}
  • \n {t(\n \"prizes.cup.item2_23\",\n \"Annual subscription to TV 2 Play (value 389 NOK/month)\"\n )}\n
  • \n \n \n \n \n \n \n {t(\"prizes.monthly.title\", \"Monthly Phases\")}\n

    {t(\"prizes.monthly.subHeading\", \"Manager of the Month\")}

      \n \n \n \n
  • \n {t(\n \"prizes.monthly.item1_23\",\n \"Gift Card worth 2500 NOK provided by COOP. Can be used in all stores (grocery and construction)\"\n )}\n
  • \n {t(\"prizes.monthly.item2_23\", \"Double room at Thon Hotels\")}\n
  • \n {t(\n \"prizes.monthly.item3_23\",\n \"Annual subscription to TV 2 Play (value 389 NOK/month)\"\n )}\n
  • ;\n};\n\nexport default ScoutNav;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport i18n from \"../../i18n\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as TwitterLogo } from \"../../img/icons/twitter.svg\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport ScoutNav from \"./ScoutNav\";\nimport ScoutProvider from \"./ScoutProvider\";\n\nconst TitleWrap = styled.div`\n margin: ${({ theme }) => `${theme.space[0]} ${theme.space[2]}`};\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin: ${({ theme }) =>\n `${theme.space[2]} ${theme.space[2]} ${theme.space[6]}`};\n }\n`;\nconst ScoutWrap = styled.div`\n width: 100%;\n padding: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 50%;\n padding: ${({ theme }) => theme.space[0]};\n margin-bottom: ${({ theme }) => theme.space[4]};\n }\n`;\n\nconst StyledSubHeading = styled(SubHeading)`\n font-size: 2rem;\n`;\n\nconst Social = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\n`;\n\nconst TwitterTimelineWrap = styled.div`\n overflow: hidden;\n border-radius: ${({ theme }) => theme.radii[1]};\n`;\n\nconst SocialHeader = styled.header`\n padding: 1rem;\n`;\n\nconst SocialBody = styled.div`\n padding: ${({ theme }) => theme.space[1]};\n`;\n\nconst SocialLinks = styled.ul`\n padding: ${({ theme }) => theme.space[1]};\n border-radius: 3px;\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 list-style-type: none;\n :not(:last-child) {\n margin-bottom: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst SocialLinkText = styled.span`\n margin-left: 1rem;\n font-size: 1.2rem;\n`;\n\ninterface ISocialLinkStyleProps {\n network: string;\n}\n\ninterface IProvider {\n link: string;\n url: string;\n title: string;\n}\n\ntype Props = RouteComponentProps;\n\ninterface ITwitterFeed {\n title: string;\n url: string;\n socialLinkText: string;\n linkText: string;\n}\n\nconst twitterFeeds: ITwitterFeed[] = [\n {\n title: \"TV 2 on Social\",\n url: \"https://twitter.com/tv2sport\",\n socialLinkText: \"To Kapteiner on X\",\n linkText: \"Posts by To Kapteiner\",\n },\n {\n title: \"Eliteserien on Social\",\n url: \"https://twitter.com/eliteserien\",\n socialLinkText: \"Eliteserien on X\",\n linkText: \"Posts by Eliteserien\",\n },\n];\n\nconst Scout: React.FC = () => {\n const { t } = useTranslation();\n const twitterFeedId = \"twsrc%5Etfw\";\n\n const providers: IProvider[] = [\n {\n url: \"https://www.tv2.no/rest/cms-feeds-dw-rest/v2/cms/article/sport/fotball/fantasy\",\n link: \"https://www.tv2.no/sport/fotball/eliteserien\",\n title: i18n.t(\"feed.providers.title1\", \"Latest Fantasy-news from TV 2\"),\n },\n {\n url: \"https://www.eliteserien.no/rss-nyheter\",\n link: \"https://www.eliteserien.no/nyheter\",\n title: i18n.t(\"feed.providers.title2\", \"Latest news from Eliteserien\"),\n },\n ];\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\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 styled from \"styled-components/macro\";\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 {\n CheckboxField,\n FieldWrap,\n InputField,\n SelectField,\n} from \"../FieldRenderers\";\nimport { getCodeFromError } from \"./helpers\";\n\nconst EnterSquadText = styled.h3`\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: 800;\n line-height: 1;\n margin: 0;\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 \n \n
    \n \n \n\n {providers.map((provider: IProvider) => (\n
    \n \n {t(\"scout.title\", \"The Scout\")}\n \n \n ))}\n \n {twitterFeeds.map((feed: ITwitterFeed) => (\n \n ))}\n \n \n \n \n \n \n {`${t(feed.title)}`}\n \n \n \n \n \n \n \n \n \n \n \n {`${t(feed.socialLinkText)}`}\n \n \n {`${t(feed.linkText)}`}\n \n {\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\n // Eliteserien\n const eliteserien = teams\n .filter((team) => team.unavailable === false)\n .sort((a, b) => a.name.localeCompare(b.name));\n\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 }\n return (\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 margin-bottom: ${({ theme }) => theme.space[4]};\n`;\ninterface IProps {\n children: React.ReactNode;\n title: React.ReactNode;\n}\n\nconst PageHeader: React.FC\n \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 \n \n {t(\"createEntryDialog.enterSquad\", \"Enter squad\")}\n \n \n
    \n \n \n \n \n {errorCode && (\n \n )}\n \n
    \n \n \n \n \n {t(\"createEntryDialog.chooseAClub\", \"Choose a club\")}...\n \n\n \n \n\n \n {eliteserien.map((tm) => (\n \n {tm.name}\n \n ))}\n \n {firstDivision.map((tm) => (\n \n {tm.name}\n \n ))}\n \n {t(\"createEntryDialog.none\", \"None\")}\n \n \n \n \n \n \n I agree to the\n Terms and conditions\n \n }\n onChange={this.handleTermsChange}\n checked={this.state.terms_agreed}\n />\n \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 = ({ children, title }) => (\n \n);\n\nexport default PageHeader;\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[2]} 0;\n text-align: center;\n`;\n\nconst Heading = styled.h3`\n margin: 0;\n font-size: 1.4rem;\n font-weight: 600;\n font-family: ${({ theme }) => theme.fonts.base};\n color: ${({ theme }) => theme.colors.text};\n margin-bottom: 5px;\n`;\n\nconst Value = styled.div\n \n {children}\n {title}`\n font-size: 28px;\n font-weight: 600;\n letter-spacing: 0.5px;\n line-height: 1;\n font-family: ${({ theme }) => theme.fonts.impact};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 24px;\n }\n\n ${(props) =>\n props.isError &&\n css`\n color: ${props.theme.colors.red};\n `}\n\n ${(props) =>\n props.isSuccess &&\n css`\n color: ${props.theme.colors.green};\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);\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 DialogManager from \"../DialogManager\";\nimport { ScoreboardPanel } from \"./ScoreboardPanel\";\n\nconst StyledBasic = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n border: 1px solid ${({ theme }) => theme.colors.white};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n border-radius: ${({ theme }) => theme.radii[1]};\n }\n`;\n\nconst ScoreboardButtons = styled(Flex)`\n flex: 1;\n align-items: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n border-right: 0;\n }\n`;\n\nconst ScoreboardPanels = styled(Flex)`\n flex: 1;\n border-top: 1px solid ${({ theme }) => theme.colors.white};\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n border-top: 0;\n border-left: 1px solid ${({ theme }) => theme.colors.white};\n }\n`;\n\nconst PanelWrapper = styled(Box)`\n flex: 1;\n border-left: 1px solid ${({ theme }) => theme.colors.white};\n\n &:first-of-type {\n border-left: 0;\n }\n`;\n\nconst ButtonWrap = styled.div`\n flex: 1;\n padding: ${({ theme }) => theme.space[2]};\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;\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\nconst DialogHeading = 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\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 \n \n {heading}\n {value}\n = ({\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\ninterface IExplainChipDialogProps {\n chip: string;\n handleHide: () => void;\n transferCosts: number;\n}\n\nconst ExplainChipDialog: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({\n chip,\n handleHide,\n transferCosts,\n}) => {\n const { t } = useTranslation();\n return (\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 \n \n \n \n \n {chip === \"wildcard\" && t(\"squad.playWildcardTest\", \"Play Wildcard\")}\n {chip === \"rich\" && t(\"squad.playRichUncleText\", \"Play Rich Uncle\")}\n \n \n \n {transferCosts ? (\n <>\n \n \n \n ) : (\n \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 === \"rich\" &&\n t(\n \"squad.richUncleText1\",\n \"You are now proposing to play your Rich Uncle chip. Unlimited transfers with an unlimted budget can be made this Round without points deduction.\"\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 === \"rich\" &&\n t(\n \"squad.richUncleText2\",\n \"Your Rich Uncle will not be activated until you confirm your transfers\"\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 === \"rich\" &&\n t(\n \"squad.richUncleText3\",\n \"To activate your Rich Uncle chip you must be making enough proposed transfers that points will be deducted.\"\n )}\n

    = ({\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\n const richUncleChip = chips.filter((c) => c.name === \"rich\")[0];\n const wildCardChip = chips.filter((c) => c.name === \"wildcard\")[0];\n\n return (\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 \n \n\n {activeChipName ? (\n \n ) : wildCardChip.status_for_entry === \"played\" ? (\n \n ) : wildCardChip.status_for_entry === \"active\" ? (\n \n ) : proposedChipName === \"wildcard\" ? (\n \n ) : (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n (\n <>\n \n {showDialog && (\n \n \n \n \n {t(\"squad.playWildcardTest\", \"Play Wildcard\")}\n \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 ) : richUncleChip.status_for_entry === \"played\" ? (\n \n ) : richUncleChip.status_for_entry === \"active\" ? (\n \n ) : proposedChipName === \"rich\" ? (\n \n ) : (\n \n \n \n \n \n \n \n \n (\n <>\n \n {showDialog && (\n \n \n \n \n {t(\"squad.playRichUncleText\", \"Play Rich Uncle\")}\n \n {\n handleHide();\n if (transferCosts) {\n proposeChip(\"rich\");\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 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\n//crops player image\nconst ElementWrapper = styled.div`\n position: absolute;\n left: 0.2px;\n right: 0.2px;\n bottom: 0px;\n`;\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 min-height: 1rem;\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 min-height: 1.6rem;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\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: 6px;\n border-bottom-right-radius: 6px;\n background-color: ${({ theme }) => theme.colors.white};\n color: ${({ theme }) => theme.colors.blueDarker3};\n font-size: 1rem;\n font-weight: 800;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\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\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);\n\nexport default PitchElementData;\n","export default __webpack_public_path__ + \"static/media/shirt_placeholder.e810909b.png\";","import styled from \"styled-components\";\nimport PlaceholderImg from \"../img/headshots/shirt_placeholder.png\";\n\nconst Img = styled.img`\n display: block;\n margin: auto;\n max-width: 200px;\n width: 100%;\n height: auto;\n`;\n\nconst PlaceholderShirt = () => {\n return ;\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 Shirt from \"../Shirt\";\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 \n \n {element.web_name}{value}\"\" = ({\n actionMe,\n elementId,\n elementsById,\n elementValue,\n isRemoved,\n renderElementMenu,\n}) => {\n const element = elementsById[elementId];\n\n return (\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","export default __webpack_public_path__ + \"static/media/shirt_placeholdershort.93211b47.png\";","import styled from \"styled-components\";\nimport PlaceholderShirt from \"../../img/headshots/shirt_placeholdershort.png\";\n\nconst StyledSquadPlaceholder = styled.img`\n display: block;\n margin: auto;\n max-width: 100px;\n width: 100%;\n height: auto;\n`;\n\nconst SquadPlaceholder = () => {\n return (\n \n \n \n \n \n \n {isRemoved ? : }\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default SquadPlaceholder;\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 SquadPlaceholder from \"./SquadPlaceHolder\";\n\nconst StyledPlaceholder = styled.button`\n display: block;\n width: 5.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: 8.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 border-radius: ${({ theme }) => theme.radii[0]};\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\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 \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 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 { Box } from \"rebass\";\nimport styled from \"styled-components\";\n\nconst PitchWrapper = styled(Box)`\n border-top: 1px solid ${({ theme }) => theme.colors.primary};\n border-bottom: 1px solid ${({ theme }) => theme.colors.primary};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n }\n`;\n\nexport default PitchWrapper;\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 { removeElement, restoreElement } 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\";\n// import { formatRawAsISO, formatRawAsLocal } from \"../../core/utils/datetime\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport Alert, { AlertWrap } from \"../Alert\";\nimport Button from \"../Button\";\n// import DeadlineBar from \"../DeadlineBar\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\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 PitchWrapper from \"../team/PitchWrapper\";\n// import ShirtSoonAlert from \"../ShirtSoonAlert\";\n\nconst PlayerName = styled.div`\n border-radius: ${({ theme }) => theme.radii[0]};\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 PlayerActions = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 50%;\n margin: 0 auto;\n }\n`;\n\nconst StyledParagraph = styled.p`\n color: ${({ theme }) => theme.colors.blackLighter};\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}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch & WithTranslation;\n\ninterface IState {\n positionForMenu: number;\n}\n\nclass CreateSquad extends React.Component {\n public state: IState = {\n positionForMenu: 0,\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 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 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 }\n\n public render() {\n const {\n t,\n elementsById,\n errors,\n listTable,\n lastChange,\n mode,\n // nextEvent,\n scoreboard,\n settings,\n showSidebar,\n submitDialog,\n teamsById,\n } = this.props;\n\n let latestAction: React.ReactNode = null;\n if (lastChange.type === \"addition\") {\n latestAction = (\n \n );\n } else if (lastChange.type === \"removal\") {\n latestAction = (\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(\"squad.enterSquad\", \"Enter Squad\"),\n transfers: t(\"squad.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 );\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 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 \n \n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n \n \n {mode === \"remove\" ? (\n \n ) : mode === \"restore\" ? (\n <>\n \n \n \n ) : (\n \"\"\n )}\n \n \n this.removeElement(this.state.positionForMenu)}\n width={1}\n >\n {t(\"removePlayer\", \"Remove player\")}\n \n \n \n this.restoreElement(this.state.positionForMenu)\n }\n width={1}\n >\n {t(\"restorePlayer\", \"Restore player\")}\n \n \n this.showElementType(element!.element_type)}\n width={1}\n >\n {t(\"replacePlayer\", \"Select replacement\")}\n \n \n this.showDialog(element as IElement)}\n width={1}\n >\n {t(\"viewInformation1\", \"View Information\")}\n \n \n \n \n {\" \"}\n has been added to your squad.\n \n {{ playerName: elementsById[lastChange.element].web_name }}\n \n \n \n {\" \"}\n has been removed from your squad.\n \n {{ playerName: elementsById[lastChange.element].web_name }}\n
    \n {settings && (\n \n )}\n {/* TODO: Commenting DeadlineBar out until removal is confirmed - # 3519 */}\n {/* {nextEvent && (\n
    \n \n \n {t(\n \"squad.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 {errors.overTeamLimit && (\n \n )}\n {latestAction && }\n \n {/* \n \n \n {t(\n \"squad.errors.overTeamLimit\",\n \"Too many players selected from\"\n )}{\" \"}\n \n \n {errors.overTeamLimit\n .map((team) => teamsById[team].name)\n .join(\", \")}\n {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 \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 {this.renderMenu()}\n (\n \n )}\n />\n \n \n {showDialog && submitDialog(handleHide)}\n \n \n ;\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 // Eliteserien\n const eliteserien = 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\nexport { ElementFilter as ElementFilterTest };\n\nexport default withTranslation()(connector(ElementFilter));\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 \n \n \n \n \n \n \n {player && player.entry && (\n \n )}\n \n {elementTypeFilterOptions.map((o) => (\n \n {o.label}\n \n ))}\n \n {eliteserien.map((o) => (\n \n {o.name}\n \n ))}\n ;\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 }\n}\n\nexport { ElementSort as ElementSortTest };\n\nexport default withTranslation()(connector(ElementSort));\n","import { hideVisually } from \"polished\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst Button = styled.button\n \n {sortOptions.map((o) => (\n \n {o.label}\n \n ))}\n \n `\n height: 36px;\n width: 36px;\n padding: 10px;\n border: 0;\n border-radius: 50%;\n background-color: ${({ theme }) => theme.colors.red};\n color: ${({ theme }) => theme.colors.white};\n cursor: pointer;\n\n ${(props) =>\n props.disabled &&\n css`\n background-color: ${props.theme.colors.primary};\n color: ${props.theme.colors.blackLighter};\n `}\n\n ${(props) =>\n props.isSmall &&\n css`\n height: 26px;\n width: 26px;\n padding: 5px;\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 \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\";\nimport styled from \"styled-components/macro\";\n\nconst PageCount = styled.div`\n color: ${({ theme }) => theme.colors.blackLighter};\n`;\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{label} = ({\n page,\n setPage,\n totalPages,\n}) => {\n const { t } = useTranslation();\n return (\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 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 \n of {totalPages}\n {page} 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 display: flex;\n ${(props) =>\n props.centred &&\n css`\n align-items: center;\n `}\n`;\n\n//fits the image we pull from eliteserien into the available space\nconst Img = styled.div`\n width: 44px;\n height: auto;\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);\n\nMedia.defaultProps = {\n centred: false,\n};\n\nexport default Media;\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 };","import { ellipsis } from \"polished\";\nimport * as React from \"react\";\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 { IElement } from \"../core/store/elements/types\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport Media from \"./Media\";\nimport Shirt from \"./Shirt\";\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-size: 1.3rem;\n text-align: left;\n cursor: pointer;\n`;\n\nconst Name = styled.div`\n ${ellipsis()};\n`;\n\nconst Team = styled.div`\n margin-right: ${({ theme }) => theme.space[2]};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n font-weight: 800;\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 {img}\n {children}\n = ({\n element,\n elementTypesById,\n renderElementMenu,\n team,\n}) => {\n return (\n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementTypesById: getElementTypesById(state),\n});\n\nexport default connect(mapStateToProps)(ElementInTable);\n","import { rgba } from \"polished\";\nimport * 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 \n } centred={true}>\n \n \n {element.web_name}{team.short_name}`\n ${(props) =>\n props.isProposed &&\n css`\n td,\n button {\n color: ${rgba(\"black\", 0.6)};\n }\n\n img {\n opacity: 0.6;\n }\n `}\n`;\n\nconst FlexElementCell = styled(ElementCell)`\n display: flex;\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\nexport default ElementListRow;\n","import groupBy from \"lodash/groupBy\";\nimport range from \"lodash/range\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Flex } 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 { ArrowLeftLong } from \"../icons/Arrows\";\nimport SubHeading from \"../SubHeading\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport Panel from \"../Panel\";\n\nimport { withTranslation, WithTranslation, Trans } from \"react-i18next\";\n\nconst PanelWrap = styled.div`\n margin-bottom: 1.6rem;\n`;\n\nconst Form = styled.form`\n padding: 0 ${({ theme }) => theme.space[2]};\n`;\n\nconst ElementsShown = styled.p`\n margin-bottom: ${({ theme }) => theme.space[1]};\n text-align: center;\n color: ${({ theme }) => theme.colors.blackLighter};\n\n strong {\n color: ${({ theme }) => theme.colors.blackLighter};\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[1]};\n cursor: pointer;\n font-weight: 800;\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 ElementListWrapper = styled.div`\n margin-bottom: 20px;\n border-bottom: 1px solid ${({ theme }) => theme.colors.white};\n`;\n\nconst PlayerName = 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: 800;\n line-height: 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\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 \n \n \n \n \n
    \n
    \n \n \n {integerToMoney(element.now_cost, currencyDivisor)}\n \n {isMoneyStat(sort)\n ? integerToMoney(element[sort] as number, currencyDivisor)\n : element[sort]}\n ;\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 );\n } else if (proposedElement) {\n alert = (\n \n );\n }\n\n return (\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\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 { ArrowRightLong } 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 {t(\n \"squad.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 \n is already in\n your squad.\n {{ playerName: element.web_name }}\n \n {alert && alert}\n\n \n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n \n \n \n \n \n {proposedElement ? (\n this.removeElement(proposedElement.position)}\n width={1}\n >\n {t(\"removePlayer\", \"Remove player\")}\n \n ) : (\n this.addElement(element.id)}\n disabled={Boolean(!roomInSquad)}\n width={1}\n >\n {t(\"addPlayer\", \"Add player\")}\n \n )}\n \n \n \n \n\n \n \n {t(\"squad.playerSelection\", \"Player Selection\")}\n \n \n \n }\n >\n {t(\"back\", \"Back\")}\n \n
    e.preventDefault()}>\n
    \n \n \n \n \n \n {elementTypes.map(\n (et) =>\n data[et.id] && (\n \n )\n )}\n {this.renderMenu()}\n \n \n \n \n {range(elements.maxCost, elements.minCost - 1, -5).map((cost) => (\n \n {integerToMoney(cost, 10)}\n \n ))}\n \n \n \n \n players shown\n {{ length: elements.data.length }}\n \n \n \n \n \n \n \n \n \n \n \n \n {data[et.id].map((e) => (\n \n showElementType(et.id)}\n >\n {et.plural_name}\n \n \n \n \n \n mNOK\n \n \n \n TS\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 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\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 \n \n \n \n \n \n
    \n \n
    \n \n \n \n \n }\n >\n {t(\"squad.playerList\", \"Player List\")}\n \n \n \n \n \n = ({\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 );\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 {element ? (\n <>\n \n {integerToMoney(element.now_cost, 10)}\n {element.selected_by_percent}\n {element.total_points}\n \n \n \n
    \n
    \n renderElementMenu(pos)}\n element={element}\n team={teamsById[element.team]}\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 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\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 \n \n \n \n \n \n \n \n \n \n \n {positions.map((p) => (\n \n {elementTypesByPosition[positions[0]].thisType.plural_name}\n \n \n \n \n mNOK\n \n \n \n \n {t(\"squadListTabel.label.selectedPct\", \"SB\")}\n \n \n \n \n \n {t(\"squadListTabel.label.totalPoints\", \"TP\")}\n \n \n \n \n \n {t(\"squadListTabel.label.fixtureNext\", \"Fix\")}\n \n ))}\n \n ;\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 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 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 getToSpend,\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 Table from \"../Table\";\n\ninterface IOwnProps {\n handleHide: () => void;\n}\n\nconst DialogHeading = 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\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 richUncleAvaliable: boolean;\n toSpend: number;\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 richUncleAvaliable,\n cancelChip,\n proposeChip,\n toSpend,\n}: Props) => {\n const { i18n, t } = useTranslation();\n if (!nextEvent || !transferState) {\n return null;\n }\n\n return (\n \n );\n};\n\nexport { ConfirmTransfersDialog as ConfirmTransfersDialogTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const availableChips = getAvailableChipNames(state);\n\n return {\n toSpend: getToSpend(state),\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 richUncleAvaliable: availableChips.indexOf(\"rich\") > -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 { 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\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport Panel from \"../Panel\";\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\nconst PanelWrap = styled.div`\n margin-bottom: 1rem;\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 \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 {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\", \"Cost\")}{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 {transferCosts > 0 ? (\n \n ) : (\n \n )}\n \n \n \n {wildcardAvailable && proposedChip !== \"rich\" && (\n \n )}\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 \n \n {t(\n \"confirmTransfers.playYourWildcard\",\n \"Play your wildcard to make unlimited free transfers this Round.\"\n )}\n \n \n {proposedChip === \"wildcard\" && (\n \n )}\n {proposedChip === \"rich\" && (\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 \n \n \n \n \n {t(\n \"confirmTransfers.youAreProposingWildcard\",\n \"You are proposing to play your wildcard!\"\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 \n \n {t(\n \"confirmTransfers.proposingRichUncle\",\n \"You are proposing to play your Rich Uncle chip! This allows you to make unlimited free transfers with an unlimited budget 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 {t(\n \"confirmTransfers.cancelYourRichUncle\",\n \"Cancel Rich Uncle chip if you would prefer not to do this.\"\n )}\n {\n cancelChip(\"rich\");\n return handleHide();\n }}\n width={1}\n >\n {t(\"confirmTransfers.cancelRichUncle\", `Cancel Rich Uncle`)}\n \n \n \n
    \n \n \n
    \n \n


    \n \n = ({\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\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 \n \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 renderElementMenu(pos)}\n element={element}\n team={teamsById[element.team]}\n />\n }\n fixtures={fixturesForNextEventByTeam[element.team]}\n element={element}\n teamsById={teamsById}\n />\n \n = ({\n t,\n elementType,\n elementTypesByPosition,\n positions,\n ...rest\n}) => {\n if (!elementTypesByPosition) {\n return null;\n }\n return (\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {positions.map((p) => (\n  \n {elementTypesByPosition[positions[0]].thisType.plural_name}\n \n \n \n \n \n {t(\"squadListTabel.label.currentPrice\", \"CP\")}\n \n \n \n \n \n {t(\"squadListTabel.label.sellingPrice\", \"SP\")}\n \n \n \n \n \n {t(\"squadListTabel.label.purchasePrice\", \"PP\")}\n \n \n \n \n \n {t(\"squadListTabel.label.form\", \"F\")}\n \n \n \n \n \n {t(\"squadListTabel.label.totalPoints\", \"TP\")}\n \n \n \n \n \n {t(\"squadListTabel.label.fixtureNext\", \"Fix\")}\n \n ))}\n \n {\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\n return (\n (\n \n )}\n scoreboard={scoreboard}\n submitDialog={(handleHide) => (\n \n )}\n title={t(\"transfer.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\nconst NavWrap = styled.div`\n width: 100%;\n margin: auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 75%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 50%;\n }\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\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 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 { updateElementControlsAndMaxCost } 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 ElementInTable from \"../ElementInTable\";\nimport { ElementRow, ElementTable } from \"../ElementTable\";\nimport { FieldCol, FieldCols } from \"../FieldRenderers\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Title from \"../Title\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport Panel from \"../Panel\";\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: 32%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 38%;\n }\n`;\n\nconst StatsCost = styled.th`\n width: 14%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsSel = styled.th`\n width: 11%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsForm = styled.th`\n width: 13%;\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\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 updateControls: (controls: IElementControls) => void;\n updateControlsAndMaxCost: (controls: IElementControls) => void;\n}\n\ntype Props = OwnProps & WithTranslation & IPropsFromState & IPropsFromDispatch;\n\nclass Statistics extends React.Component\n \n \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 \n \n {elements.data\n .filter((e) => e.news)\n .map((e) => (\n \n ))}\n \n  {t(\"news.playerCol\", \"Player\")}{t(\"news.newsCol\", \"News\")}\n \n \n \n \n {\n window.console.log(\"not needed\");\n }}\n element={e}\n team={teamsById[e.team]}\n />\n \n \n {e.news} {\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 { controls, currencyDivisor, elements, teamsById, t } = 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}\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 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 \n
    \n \n \n \n \n
    \n \n {t(\"statistics.title\", \"Statistics\")}
    \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 \n \n {extraStat ? : null}\n \n \n \n {data.map((e) => (\n \n ))}\n \n  \n {t(\"statistics.player\", \"Player\")}\n mNOK\n \n \n \n \n {t(\"statistics.selectedByShort\", \"Sel.\")}\n {t(\"statistics.form\", \"Form\")}\n \n \n \n \n {t(\"statistics.totalPointsShort\", \"Pts.\")}\n **\n \n \n \n \n {\n window.console.log(\"not needed\");\n }}\n element={e}\n team={teamsById[e.team]}\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 display: inline-flex;\n align-items: center;\n padding: 0;\n border: 0;\n background-color: transparent;\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 )\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 { getIncludedStats } from \"../../utils/stats\";\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 {children}\n ;\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 const includedStats = getIncludedStats(stats);\n return (\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, _rect, _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 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: 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_574_3747)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 12,\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.47 16.5C9.70585 16.2401 9.02054 15.7898 8.47874 15.1915C7.93694 14.5933 7.55653 13.8668 7.37339 13.0808C7.19026 12.2947 7.21045 11.4749 7.43206 10.6988C7.65367 9.92269 8.06939 9.21586 8.63999 8.64501L6.87499 6.88C5.95459 7.80126 5.29932 8.95342 4.97803 10.2154C4.65674 11.4774 4.68129 12.8026 5.0491 14.0518C5.41691 15.3011 6.1144 16.4282 7.06828 17.3147C8.02216 18.2012 9.19722 18.8145 10.47 19.09V22L14 19V17L10.47 14V16.5Z\",\n fill: \"#D22A5D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.125 6.875C16.1425 5.88635 14.8933 5.20528 13.53 4.915V2L10 5V7L13.53 10V7.5C14.2941 7.7599 14.9794 8.21022 15.5212 8.80848C16.063 9.40673 16.4435 10.1332 16.6266 10.9192C16.8097 11.7053 16.7895 12.5251 16.5679 13.3012C16.3463 14.0773 15.9306 14.7841 15.36 15.355L17.125 17.12C17.7984 16.4472 18.3325 15.6482 18.697 14.7689C19.0614 13.8895 19.249 12.9469 19.249 11.995C19.249 11.0431 19.0614 10.1005 18.697 9.22114C18.3325 8.34177 17.7984 7.54283 17.125 6.87V6.875Z\",\n fill: \"#03B155\"\n }))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 23,\n height: 23,\n rx: 11.5,\n stroke: \"#CAC5DD\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_574_3747\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n rx: 12,\n fill: \"white\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSub);\nexport default __webpack_public_path__ + \"static/media/sub.4b78c42e.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 _path, _path2, _path3;\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: \"currentColor\",\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, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.1202 0.332257L12.2646 1.18135C12.5969 1.40286 12.966 1.55053 13.3352 1.55053H14.7381C15.5503 1.55053 16.2517 2.06737 16.5101 2.84264L16.9531 4.20858C17.0639 4.57776 17.3223 4.91001 17.6176 5.13152L18.7621 5.98062C19.4266 6.46055 19.685 7.27272 19.4266 8.04799L18.9836 9.41393C18.8728 9.78311 18.8728 10.1892 18.9836 10.5584L19.4266 11.9243C19.685 12.6996 19.3897 13.5118 18.7621 13.9917L17.6176 14.8408C17.2854 15.0623 17.0639 15.3946 16.9531 15.7637L16.5101 17.1297C16.2517 17.9049 15.5503 18.4218 14.7381 18.4218H13.3352C12.9291 18.4218 12.56 18.5325 12.2646 18.791L11.1202 19.6401C10.4557 20.12 9.60657 20.12 8.94206 19.6401L7.79761 18.791C7.46535 18.5695 7.09619 18.4218 6.72701 18.4218H5.28723C4.47504 18.4218 3.77362 17.9049 3.5152 17.1297L3.07218 15.7637C2.96143 15.3946 2.70301 15.0623 2.40767 14.8408L1.26322 13.9917C0.598708 13.5118 0.340291 12.6996 0.598713 11.9243L1.04173 10.5584C1.15248 10.1892 1.15248 9.78311 1.04173 9.41393L0.598713 8.04799C0.340291 7.27272 0.635626 6.46055 1.26322 5.98062L2.40767 5.13152C2.73993 4.91001 2.96143 4.57776 3.07218 4.20858L3.5152 2.84264C3.77362 2.06737 4.47504 1.55053 5.28723 1.55053H6.69008C7.09617 1.55053 7.46536 1.43978 7.7607 1.18135L8.90513 0.332257C9.56964 -0.110752 10.4557 -0.110752 11.1202 0.332257Z\",\n fill: \"#D22A5D\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.584 9.89387C16.584 6.27596 13.6306 3.32257 10.0127 3.32257C6.39479 3.32257 3.44141 6.27596 3.44141 9.89387C3.44141 13.5118 6.39479 16.4652 10.0127 16.4652C13.6306 16.4652 16.584 13.5487 16.584 9.89387Z\",\n fill: \"#FAFAFA\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.013 11.9612L7.61341 13.2164L8.09334 10.5584L6.13672 8.67559L8.83168 8.2695L10.013 5.86987L11.2313 8.2695L13.8894 8.67559L11.9697 10.5584L12.4127 13.2164L10.013 11.9612Z\",\n fill: \"#D22A5D\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDreamteam);\nexport default __webpack_public_path__ + \"static/media/dreamteam.5f4dabb8.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport * 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 { IPickLight } from \"../../core/store/entries/types\";\nimport { ReactComponent as Captain } from \"../../img/icons/captain.svg\";\nimport { ReactComponent as Sub } from \"../../img/icons/sub.svg\";\nimport { ReactComponent as ViceCaptain } from \"../../img/icons/vice-captain.svg\";\nimport { ReactComponent as x2 } from \"../../img/icons/x2.svg\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport Shirt from \"../Shirt\";\nimport {\n Controls,\n InfoControl,\n PitchElementWrap,\n PrimaryControl,\n StyledPitchElement,\n} from \"../Pitch\";\nimport PitchElementData from \"../PitchElementData\";\nimport { UnstyledButton } from \"../Utils\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\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 StyledButton = styled(UnstyledButton)`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n line-height: 1;\n cursor: pointer;\n height: auto;\n flex-direction: column;\n align-items: stretch;\n height: 100%;\n justify-content: start;\n }\n`;\n\nconst StyledCaptain = styled(Captain)\n \n \n \n \n  \n Player\n Pts\n {includedStats.map((s) => (\n \n \n \n ))}\n \n \n \n {elements.map((e) => (\n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n ))}\n \n `\n ${size(14)};\n position: absolute;\n top: 22%;\n right: 4px;\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 position: absolute;\n top: 22%;\n right: 4px;\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 position: absolute;\n top: 22%;\n right: 4px;\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\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\ninterface IStyledCaptainProps {\n variant?: string;\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\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\n \n \n \n \n\n {pick.is_captain &&\n (!chipName || chipName === \"rich\" || chipName === \"wildcard\") && (\n \n \n \n \n {actionMe && typeof pick.subStatus !== \"undefined\" && (\n \n )}\n \n \n \n \n \n \n \n \n )}\n\n {pick.is_vice_captain &&\n (!chipName || chipName === \"rich\" || chipName === \"wildcard\") && (\n \n )}\n\n {pick.is_captain && chipName === \"2capt\" && (\n \n )}\n\n {pick.is_vice_captain && chipName === \"2capt\" && (\n \n )}\n\n {chipName === \"frush\" &&\n element.element_type === 4 &&\n pick.position <= settings.squad_squadplay && }\n\n \n {renderDreamTeam(pick)} = ({ generateProps }) => (\n <>\n \n \n \n \n \n);\n\nconst FiveThreeTwo: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({ generateProps }) => (\n <>\n \n \n \n \n \n);\n\nconst FiveTwoThree: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({ generateProps }) => (\n <>\n \n \n \n \n \n);\n\nconst FourFiveOne: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({ generateProps }) => (\n <>\n \n \n \n \n \n);\n\nconst FourThreeThree: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({ generateProps }) => (\n <>\n \n \n \n \n \n);\n\nconst FourFourTwo: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({ generateProps }) => (\n <>\n \n \n \n \n \n);\n\nconst ThreeFourThree: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({ generateProps }) => (\n <>\n \n \n \n \n \n);\n\nconst ThreeFiveTwo: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({ generateProps }) => (\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({\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 ;\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 { 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 Shirt from \"../Shirt\";\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\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\n\nconst DTScoreboard = styled.div`\n display: flex;\n margin: 0 ${({ theme }) => theme.space[2]};\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin: 0;\n }\n`;\n\nconst DTScoreboardPanel = styled.div`\n flex: 1;\n margin: ${({ theme }) => theme.space[2]};\n padding: 0 ${({ theme }) => theme.space[2]};\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: white;\n text-align: center;\n`;\n\nconst DTScoreboardHeading = styled.h3`\n margin-bottom: ${({ theme }) => theme.space[1]};\n font-size: ${({ theme }) => theme.fontSizes[4]};\n`;\n\nconst DTScoreboardValue = styled.div`\n position: relative;\n color: ${({ theme }) => theme.colors.pink};\n font-size: 4rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-bottom: 0.3rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-top: 0.6rem;\n padding-bottom: 1rem;\n }\n`;\n\nconst SectionBackground = styled.div`\n padding-top: ${({ theme }) => theme.space[4]};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\n border-top: 1px solid ${({ theme }) => theme.colors.primary};\n border-bottom: 1px solid ${({ theme }) => theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n }\n`;\n\nconst TopPlayer = styled.div`\n display: inline-block;\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{formations[formation]} | 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 = WithTranslation & OwnProps & IPropsFromState & IPropsFromDispatch;\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 t,\n data,\n elementsById,\n elementsDataById,\n event,\n fixturesById,\n formation,\n now,\n showElementDialog,\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}\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 * 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 \n \n
    \n \n {/* ROUND PAGER */}\n {event ? (\n \n ) : (\n \n )}\n {/* SCOREBOARD */}\n\n \n {/* TEAM */}\n \n {event && this.state.elementForMenu ? (\n
    \n \n {t(\"dreamTeam.title\", \"Dream Team\")}\n \n {(event.id > 1 || event.id < now.id) && (\n \n )}\n {event.name}\n {event.id > 1 && (\n \n )}\n {event.id < now.id && (\n \n )}\n \n \n \n {t(\"dreamTeam.previous\", \"Previous\")}\n \n \n \n {t(\"dreamTeam.next\", \"Next\")}\n \n \n \n \n {t(\"dreamTeam.overall\", \"Overall\")}\n \n \n \n \n \n \n \n \n \n {t(\"dreamTeam.topPlayer\", \"Top Player\")}\n \n showElementDialog(topPlayer.id)}\n >\n {topPlayer.web_name}\n \n \n \n \n \n }\n centred={true}\n >\n \n \n \n \n \n
    {teamsById[topPlayer.team].short_name}
    \n {data.top_player.points}{\" \"}\n {t(\"dreamTeam.points\", \"Points\")}\n
    \n \n \n {event ? (\n \n ) : (\n \n )}\n \n {t(\"dreamTeam.totalPoints\", \"Total Points\")}\n \n {data.team.reduce((total, e) => total + e.points, 0)}\n \n {t(\"dreamTeam.overall\", \"Overall\")}\n \n {t(\"dreamTeam.round\", \"Round\")}\n \n \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 ) : null}\n {event && }\n \n \n   = ({\n chipName,\n heading,\n pick,\n renderDreamTeam,\n renderElementMenu,\n renderPickValue,\n substitute,\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 { size } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as Captain } from \"../../img/icons/captain.svg\";\nimport { ReactComponent as ViceCaptain } from \"../../img/icons/vice-captain.svg\";\n\ninterface IStyledCaptainProps {\n variant?: string;\n}\n\nexport const StyledCaptain = styled(Captain)\n \n {heading} substitute(pick.element)}\n chipName={chipName}\n pick={pick}\n renderDreamTeam={renderDreamTeam}\n renderElementMenu={() => renderElementMenu(pick)}\n renderPickValue={renderPickValue}\n />\n `\n ${size(14)};\n color: white;\n margin-top: 0.6rem;\n\n ${(props) =>\n props.variant === \"3xc\" &&\n css`\n color: black;\n fill: white;\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n right: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n right: 20px;\n }\n`;\n\nexport const StyledViceCaptain = styled(ViceCaptain)`\n ${size(14)};\n margin-top: 0.6rem;\n color: white;\n\n ${(props) =>\n props.variant === \"3xc\" &&\n css`\n color: black;\n fill: white;\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n right: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(20)}\n right: 20px;\n }\n`;\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 { getIncludedStats } from \"../../utils/stats\";\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 { StyledCaptain, StyledViceCaptain } from \"./TableCaptains\";\nimport Panel from \"../Panel\";\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\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 \n \n \n \n {pick.is_captain &&\n (chipName === \"3xc\" ? (\n \n ) : (\n \n ))}\n {pick.is_vice_captain &&\n (chipName === \"3xc\" ? (\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 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\n const includedStats = getIncludedStats(stats);\n return (\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 { ElementRow } from \"../Pitch\";\nimport { NotFound } from \"../Routes\";\nimport Table from \"../Table\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport Title from \"../Title\";\nimport BenchUnit from \"./BenchUnit\";\nimport ElementExplainDialog from \"./ElementExplainDialog\";\nimport EntryEventTable from \"./EntryEventTable\";\nimport PitchWrapper from \"./PitchWrapper\";\nimport PitchFormation from \"./PitchFormation\";\nimport valueForPlayerElement from \"./valueForPlayedElement\";\n\nconst PointsScoreboardWrap = styled.div`\n margin: ${({ theme }) => theme.space[2]};\n border: 1px solid ${({ theme }) => theme.colors.primary};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.backgroundwhite50};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin: ${({ theme }) => `${theme.space[3]} ${theme.space[0]}`};\n }\n`;\n\nconst StyledEventPager = styled(EventPager)`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 0 23%;\n }\n`;\n\nconst StyledPagerHeading = styled(PagerHeading)`\n margin-bottom: -2.4rem;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: ${({ theme }) => theme.fontSizes[5]};\n text-align: center;\n padding: 1rem 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-bottom: -2rem;\n padding: 1.8rem 0;\n }\n`;\n\nconst PagerButtonStyles = css`\n flex-basis: 10%;\n margin-top: ${({ theme }) => `-${theme.space[4]}`};\n font-family: ${({ theme }) => theme.fonts.impactMedium};\n\n > a {\n min-width: 110px;\n padding: 0.6rem 1.5rem;\n border-radius: 40px;\n background-color: ${({ theme }) => theme.colors.primary};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-top: 0.3rem;\n }\n`;\n\nconst StyledPagerButton = styled(PagerButton)`\n ${PagerButtonStyles};\n`;\n\nconst StyledPagerButtonNext = styled(PagerButtonNext)`\n ${PagerButtonStyles};\n`;\n\nconst DreamTeamWrap = styled.div`\n width: 60%;\n margin: ${({ theme }) => theme.space[4]} auto;\n font-weight: 600;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 40%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 30%;\n }\n`;\n\nconst TableWrap = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n`;\n\nconst PointsScoreboard = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n padding: ${({ theme }) => theme.space[3]} 0;\n text-align: center;\n`;\n\nconst ScoreboardPrimary = styled.div`\n flex: 0 0 38%;\n border: 1px solid ${({ theme }) => theme.colors.greyDarker4};\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: ${({ theme }) => theme.colors.greyDarker2};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: calc(22% - ${({ theme }) => theme.space[1]});\n }\n`;\n\ninterface IPrimaryPanelProps {\n chipPlayed?: boolean;\n}\n\nconst PrimaryPanel = styled.div\n \n \n \n \n \n \n  \n  \n {title}\n Pts\n {includedStats.map((s) => (\n \n \n \n ))}\n \n \n \n {picks.map((p) => (\n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n ))}\n \n `\n position: relative;\n`;\n\nconst PrimaryHeading = styled.h4`\n margin: 0;\n padding-top: ${({ theme }) => theme.space[3]};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n font-weight: 300;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-top: ${({ theme }) => theme.space[3]};\n }\n`;\n\nconst PrimaryValue = styled.div`\n position: relative;\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: ${({ theme }) => theme.fontSizes[7]};\n font-weight: 600;\n color: ${({ theme }) => theme.colors.black};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: ${({ theme }) => theme.fontSizes[6]};\n }\n`;\n\nconst ReloadButton = styled.button`\n position: absolute;\n top: 50%;\n left: ${({ theme }) => theme.space[0]};\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: ${({ theme }) => theme.colors.black};\n`;\n\nconst ReloadButtonText = styled.span`\n ${hideVisually()}\n`;\n\nconst ScoreboardSecondary = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n`;\n\nconst SecondaryPanel = styled.div`\n flex: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n justify-content: space-around;\n }\n`;\n\nconst SecondaryItem = styled.div`\n overflow: auto;\n text-align: center;\n`;\n\nconst SecondaryHeading = styled.h4`\n margin: ${({ theme }) => theme.space[1]} 0;\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n font-weight: 300;\n`;\n\nconst SecondaryValue = styled.div`\n margin: ${({ theme }) => `${theme.space[1]} ${theme.space[0]}`};\n font-family: ${({ theme }) => theme.fonts.base};\n font-size: 2.2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 2.4rem;\n }\n`;\n\nconst DreamTeamLinkIcon = styled(BaseDreamTeam)`\n ${size(16)}\n margin-right: ${({ theme }) => theme.space[1]};\n color: ${({ theme }) => theme.colors.white};\n fill: ${({ theme }) => theme.colors.red};\n`;\n\nconst DreamTeamLink = styled(ReachLink)`\n display: flex;\n align-items: center;\n justify-content: space-around;\n padding: ${({ theme }) => theme.space[1]};\n border-radius: 15px;\n background-color: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.red};\n text-decoration: none;\n`;\n\nconst ChipStatus = styled.div`\n padding: 1.6rem ${({ theme }) => theme.space[2]};\n border-bottom-left-radius: ${({ theme }) => theme.radii[1]};\n border-bottom-right-radius: ${({ theme }) => theme.radii[1]};\n background-color: ${({ theme }) => theme.colors.blue};\n font-size: 1.1rem;\n font-weight: bold;\n text-align: center;\n color: ${({ theme }) => theme.colors.primary};\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 teamsById,\n t,\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 12: \"1\",\n 13: \"2\",\n 14: \"3\",\n };\n\n // Handle events before the entry started\n return (\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 React from \"react\";\nimport styled from \"styled-components/macro\";\nimport LogoBar from \"./LogoBar\";\n\nconst Heading = styled.h3`\n margin-top: 0;\n margin-bottom: 0;\n font-size: 1.6rem;\n font-weight: 100;\n font-family: ${({ theme }) => theme.fonts.impact};\n color: ${({ theme }) => theme.colors.black};\n`;\n\nconst Deadline = styled.time`\n font-size: 1.6rem;\n font-family: ${({ theme }) => theme.fonts.impact};\n color: ${({ theme }) => theme.colors.black};\n`;\n\ninterface IProps {\n deadlineISO: string;\n deadlineLocal: string;\n headingText: string;\n}\n\nconst DeadlineBar: React.FCGK\n \n \n
    \n \n \n\n {/* TEAM */}\n \n {entryData.automatic_subs.length > 0 && (\n <>\n \n \n \n )}\n {this.state.pickForMenu && (\n
    \n \n \n {t(\"entryEvent.pointsTitle\", \"Points\")} - {entry.name}\n \n \n {(event.id > entry.started_event || event.id < now.id) && (\n \n )}\n \n \n {event.name}\n {event.id > entry.started_event && (\n \n )}\n {event.id < now.id && (\n \n )}\n {/* Also need to check isn't last event */}\n {mine && event.id === now.id && (\n \n )}\n \n \n \n {t(\"entryEvent.previous\", \"Previous\")}\n \n \n \n {t(\"entryEvent.next\", \"Next\")}\n \n \n \n \n \n {t(\"entryEvent.next\", \"Next\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {t(\"entryEvent.avgPoints\", \"Average Pts\")}\n \n {event.average_entry_score || \"-\"}\n \n \n \n \n {t(\"entryEvent.highestPoints\", \"Highest Pts\")}\n \n {event.highest_scoring_entry ? (\n \n {event.highest_score || \"???\"}\n \n ) : (\n \"-\"\n )}\n \n \n \n \n {chipName && (\n \n )}\n \n \n \n \n {event.finished\n ? t(\"entryEvent.finalPoints\", \"Final Points\")\n : t(\"entryEvent.latestPoints\", \"Latest Points\")}\n \n {points}\n {!event.finished && (\n \n )}\n \n \n \n {t(\"entryEvent.reload\", \"Reload Points\")}\n \n \n {t(\"entryEvent.chipPlayed\", \"{{ chipName }} played\", {\n chipName: chipName,\n })}\n \n \n \n \n \n \n \n {t(\"entryEvent.rdRank\", \"RD Rank\")}\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 {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 {t(\"entryEvent.dreamTeam\", \"Dream Team\")}\n \n \n \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 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 {t(\"entryEvent.automaticSubs\", \"Automatic Substitutions\")}\n \n \n \n \n \n \n \n \n {entryData.automatic_subs.map((s) => (\n \n \n \n \n ))}\n \n
    {t(\"entryEvent.playerOut\", \"Player out\")}{t(\"entryEvent.playerIn\", \"Player in\")}{elementsById[s.element_out].web_name}{elementsById[s.element_in].web_name}\n )}\n \n \n \n = ({\n deadlineISO,\n deadlineLocal,\n headingText,\n}) => (\n \n);\n\nexport default DeadlineBar;\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 { StyledCaptain, StyledViceCaptain } from \"./TableCaptains\";\nimport { useTranslation } from \"react-i18next\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport Panel from \"../Panel\";\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 \n \n \n {headingText}: {deadlineLocal} = ({\n chipInPlayName,\n pick,\n element,\n elementTypesById,\n fixturesForNextEventByTeam,\n renderElementMenu,\n teamsById,\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 \n \n \n \n {pick.is_captain &&\n (chipInPlayName === \"3xc\" ? (\n \n ) : (\n \n ))}\n {pick.is_vice_captain &&\n (chipInPlayName === \"3xc\" ? (\n \n ) : (\n \n ))}\n \n \n {elementTypesById[element.element_type].singular_name_short}\n {element.form}\n {element.event_points}\n {element.total_points}\n \n \n renderElementMenu(pick.element)}\n element={element}\n team={teamsById[element.team]}\n />\n }\n fixtures={fixturesForNextEventByTeam[element.team]}\n element={element}\n teamsById={teamsById}\n />\n \n = ({\n elementsById,\n picks,\n title,\n ...rest\n}) => {\n const { t } = useTranslation();\n return (\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 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 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 PitchWrapper from \"./PitchWrapper\";\nimport BenchUnit from \"./BenchUnit\";\nimport MyTeamTable from \"./MyTeamTable\";\nimport PitchFormation from \"./PitchFormation\";\n\nconst TableWrap = styled.div`\n margin: ${({ theme }) => theme.space[2]} 0;\n`;\n\nconst ChipList = styled.ul`\n display: flex;\n flex-direction: column;\n margin: ${({ theme }) => `${theme.space[4]} ${theme.space[2]}`};\n padding: ${({ theme }) =>\n `${theme.space[0]} ${theme.space[4]} ${theme.space[4]}`};\n border: 1px solid ${({ theme }) => theme.colors.white};\n border-radius: ${({ theme }) => theme.radii[1]};\n list-style-type: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n flex-direction: row;\n padding: ${({ theme }) => theme.space[2]};\n margin: ${({ theme }) =>\n `${theme.space[4]} ${theme.space[0]} ${theme.space[7]}`};\n }\n`;\n\nconst ChipItem = styled.li`\n flex: 1;\n padding-right: ${({ theme }) => theme.space[1]};\n padding-left: ${({ theme }) => theme.space[1]};\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 color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 1.8rem;\n font-weight: 600;\n text-align: center;\n border-bottom: 1px solid ${({ theme }) => theme.colors.black};\n`;\n\nconst ChipLink = styled(Link)`\n position: relative;\n display: block;\n width: 100%;\n padding: 0.9rem 2.7rem;\n border-radius: 40px;\n background-color: ${({ theme }) => theme.colors.greyDarker2};\n color: ${({ theme }) => theme.colors.black};\n\n :hover {\n text-decoration: none;\n }\n`;\n\nconst ChipTextWrap = styled.div`\n display: flex;\n justify-content: space-between;\n font-family: ${({ theme }) => theme.fonts.baseSemiBold};\n`;\n\nconst ChipLinkText = styled.div`\n color: ${({ theme }) => theme.colors.red};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: none;\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: block;\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 color: ${({ theme }) => theme.colors.red};\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {picks.map((p) => (\n   {title}\n \n \n \n \n {t(\"myTeamTable.label.pos\", \"Pos\")}\n {t(\"myTeamTable.label.from\", \"Form\")}\n \n \n \n {t(\"myTeamTable.label.rd\", \"RD\")}\n \n \n \n \n {t(\"myTeamTable.label.pts\", \"Pts\")}\n \n \n \n \n \n {t(\"myTeamTable.label.fix\", \"Fix\")}\n \n ))}\n \n \n );\n };\n\nconst PlayerName = styled.div`\n border-radius: ${({ theme }) => theme.radii[0]};\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.impact};\n font-size: 24px;\n font-weight: 600;\n line-height: 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\ninterface IPropsFromState {\n activeChip: IPotentialChip | null;\n changed: boolean;\n chipInPlayName: 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 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 \n \n \n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n \n \n {status.match(/^(target|)$/) && (\n \n )}\n {status === \"instigator\" && (\n \n )}\n {!status && pick.position <= startMax && !pick.is_captain && (\n \n )}\n {!status && pick.position <= startMax && !pick.is_vice_captain && (\n \n )}\n \n \n this.action(\"substitute\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.switch\", \"Switch\")}\n \n \n this.action(\"substitute\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.cancel\", \"Cancel\")}\n \n \n this.action(\"makeCaptain\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.makeCaptain\", \"Make Captain\")}\n \n \n this.action(\"makeViceCaptain\", pick.element)}\n width={1}\n >\n {t(\"myTeam.menuDialog.makeViceCaptain\", \"Make Vice Captain\")}\n \n \n \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 \n \n \n );\n }\n return (\n \n );\n default:\n return \"\";\n }\n }\n\n public renderRichChipAction(c: IPotentialChip) {\n const { chipInPlayName, entry, t } = this.props;\n switch (c.status_for_entry) {\n case \"available\":\n case \"unavailable\":\n return (\n
    {t(\"myTeam.played\", \"Played\")}
    {`${t(\"myTeam.round\", \"Round\")} ${\n c.played_by_entry[0]\n }`}
    \n \n \n \n \n
    {`${t(\"myTeam.played\", \"Played\")} ${t(\n \"myTeam.round\",\n \"Round\"\n )} ${c.played_by_entry[0]} `}
    {t(\"myTeam.points\", \"Points\")}\n (\n <>\n \n {t(\"myTeam.play\", \"Play\")}\n \n {showDialog && (\n \n )}\n \n )}\n />\n );\n case \"active\":\n return ;\n case \"played\":\n if (!entry) {\n return (\n <>\n \n \n \n );\n }\n return (\n \n );\n default:\n return \"\";\n }\n }\n\n public render() {\n const {\n activeChip,\n changed,\n chipInPlayName,\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 \n \n \n {t(\"myTeam.chips.rich.name\", \"Rich Uncle\")}\n \n \n \n \n \n \n

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

    \n {t(\n \"myTeam.chips.rich.dialog.p2\",\n \"It allows you to make unlimited free transfers with an unlimited budget 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: Rich Uncle{\" \"}\n once\n confirmed.\n cannot be cancelled
    {t(\"myTeam.active\", \"Active\")}
    {`${t(\"myTeam.round\", \"Round\")} ${\n c.played_by_entry[0]\n }`}
    \n \n
    \n \n \n
    {t(\"myTeam.played\", \"Played\")}
    {`${t(\"myTeam.round\", \"Round\")} ${\n c.played_by_entry[0]\n }`}
    \n = {\n 11: (\n \n ),\n 12: \"1\",\n 13: \"2\",\n 14: \"3\",\n };\n\n const richChip = chips.filter((c) => c.name === \"rich\")[0];\n const chipDetails = getAllChipDetails(t);\n return (\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 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 { 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 from \"./Table\";\nimport Title from \"./Title\";\n\nconst DialogButton = styled.button`\n padding: 0;\n border: 0;\n background-color: transparent;\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 \n GK\n \n \n
    \n \n {nextEvent && (\n
    \n \n {t(\"myTeam.title\", \"My Team\")}\n )}\n \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.\"\n )}\n \n \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 {activeChip && activeChip.chip_type === \"transfer\" ? (\n \n ) : (\n \n )}\n {savingState === \"saved\" ? (\n \n ) : (\n \n )}\n {this.renderMenu()}\n \n \n \n \n

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

    \n {chips\n .filter((c) => [\"frush\", \"2capt\"].indexOf(c.name) > -1)\n .map((c) => (\n \n ))}\n {richChip && (\n \n )}\n \n \n \n \n \n \n {this.renderChipAction(c)}\n \n {chipDetails[c.name as ChipName].name}\n \n \n \n \n \n \n {this.renderRichChipAction(richChip)}\n \n {chipDetails[richChip.name as ChipName].name}\n \n \n \n {t(\"myTeam.alerts.teamSaved\", \"Your team has been saved.\")}\n \n \n {t(\"myTeam.saveTeam\", \"Save Your Team\")}\n \n \n \n \n {\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}\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 {\n Location,\n Redirect,\n RouteComponentProps,\n Router,\n WindowLocation,\n} from \"@reach/router\";\nimport * as Fathom from \"fathom-client\";\nimport React, { lazy, Suspense } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect, ConnectedComponent } from \"react-redux\";\nimport { RootState } from \"../core/store\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { IPlayer } from \"../core/store/player/types\";\nimport { loadFathomTrackingId } from \"../utils/fathom\";\nimport { Loading } from \"./App\";\nimport AuthCallback from \"./auth/AuthCallback\";\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 PlayerList from \"./help/PlayerList\";\nimport Home from \"./Home\";\nimport { Main, Wrapper } from \"./Layout\";\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 Login from \"./Login\";\nimport LoggedIn from \"./player/LoggedIn\";\nimport Logout from \"./player/Logout\";\nimport PasswordReset from \"./player/PasswordReset\";\nimport PasswordSet from \"./player/PasswordSet\";\nimport Register from \"./player/Register\";\nimport Prizes from \"./Prizes\";\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\";\nimport TransfersHistory from \"./TransfersHistory\";\n\nconst Help = lazy(() => import(\"./help/Help\"));\nconst Rules = lazy(() => import(\"./help/Rules\"));\nconst Terms = lazy(() => import(\"./help/Terms\"));\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 \n \n
    \n \n {transfersHistory.length || latestTransfers.length ? (\n <>\n \n \n \n ) : (\n \n )}\n
    \n \n {t(\"transfersHistory.title\", \"Transfers\")}\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(elementsById[t.element_in].id)\n }\n >\n {elementsById[t.element_in].web_name}\n \n \n \n showElementDialog(elementsById[t.element_out].id)\n }\n >\n {elementsById[t.element_out].web_name}\n \n {`RD${t.event}`}\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 {t(\n \"transfersHistory.p2\",\n \"No transfers have been made yet for this team.\"\n )}\n \n \n {\n componentDidMount() {\n // Upon initial page load...\n loadFathomTrackingId();\n Fathom.trackPageview();\n }\n componentDidUpdate(prevProps: RouteChangeProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n Fathom.trackPageview();\n this.props.action();\n }\n }\n\n render() {\n return null;\n }\n}\n\nconst OnRouteChange: React.FC = ({ action }) => (\n \n);\n\ninterface IProtectedRouteProps extends RouteComponentProps {\n as: React.ComponentType | ConnectedComponent\n {({ location }) => (\n \n )}\n ;\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 player && !player.entry ? (\n \n ) : (\n \n );\n\nconst EntryRoute: React.FC\n \n
    \n
    \n = ({\n as: Component,\n player,\n ...rest\n}) =>\n player && player.entry ? (\n \n ) : (\n \n );\n\nexport const NotFound: React.FC\n \n
    \n
    \n = () => {\n const { t } = useTranslation();\n return (\n \n );\n};\n\nconst Routes: React.FC\n \n
    \n \n
    \n \n \n

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

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

    = ({ 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 \n \n {/* Note the trailing slash */}\n \n \n \n window.scrollTo(0, 0)} />\n
    \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n player: getPlayerData(state),\n});\n\nexport default connect(mapStateToProps)(Routes);\n","import * as React from \"react\";\nimport { IServerError } from \"../core/store/global/types\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Copy from \"./Copy\";\nimport { useTranslation, Trans } from \"react-i18next\";\nimport { TFunction } from \"i18next\";\n\ninterface IProps {\n error: IServerError;\n}\n\nconst HomeOrHelp = () => (\n \n);\n\nconst renderError = (e: IServerError, t: TFunction) => {\n switch (e.code) {\n case 401:\n case 403:\n return (\n \n );\n case 404:\n return (\n \n );\n case 502:\n case 503:\n case 504:\n return e.details.match(/being updated/) ? (\n \n ) : (\n \n );\n default:\n return (\n \n );\n }\n};\n\nconst ServerError: React.FC

    \n \n

    \n You can return to the and try again or{\" \"}\n for further help.\n home pagecontact us\n \n \n

    \n {t(\"serverError.permissionDenied.title\", \"Permission denied\")}\n

    \n {t(\n \"serverError.permissionDenied.text\",\n \"Sorry, but you don't have permission to perform the request action.\"\n )}\n

    \n \n \n \n

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

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

    \n \n \n \n

    \n {t(\"serverError.updating.title\", \"The game is being updated.\")}\n

    \n {t(\n \"serverError.updating.text\",\n \"Please try again later when the updated scores / teams will be available.\"\n )}\n

    \n \n \n \n

    {t(\"serverError.unavailable.title\", \"Unavailable\")}

    \n {t(\n \"serverError.unavailable.text1\",\n \"Sorry, but we are unable to load the requested page at this time.\"\n )}\n

    \n {t(\n \"serverError.unavailable.text2\",\n \"Please try again in a few minutes.\"\n )}\n

    \n \n \n

    {t(\"serverError.default.title\", \"Error\")}

    \n {t(\n \"serverError.default.text\",\n \"Sorry, but there has been an unexpected error processing your request.\"\n )}\n

    \n = ({ error }) => {\n const { t } = useTranslation();\n return (\n \n );\n};\n\nexport default ServerError;\n","import * as Sentry from \"@sentry/browser\";\nimport React, { Suspense } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { css, ThemeProvider } from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport { getBootstrapped } from \"../core/store/bootstrap/reducers\";\nimport { bootstrap } from \"../core/store/bootstrap/thunks\";\nimport { getServerError } from \"../core/store/global/reducers\";\nimport { IServerError } from \"../core/store/global/types\";\nimport \"../fonts.css\";\nimport GlobalStyle from \"../GlobalStyle\";\nimport theme from \"../theme\";\nimport { getSite, SITE_IDS } from \"../utils/sites\";\nimport BadgeBanner from \"./BadgeHeader\";\nimport { AuthContextProvider } from \"./auth/AuthContext\";\nimport ElementDialog from \"./ElementDialog\";\nimport GameHeader from \"./GameHeader\";\nimport { Main, Wrapper } from \"./Layout\";\nimport LeaderboardAd from \"./LeaderboardAd\";\nimport AutoJoinDialog from \"./leagues/AutoJoinDialog\";\nimport Routes from \"./Routes\";\nimport ServerError from \"./ServerError\";\nconst TV2Header = React.lazy(() => import(\"./sites/TV2Header\"));\n\ninterface IPropsHeaderWrapper {\n site: string;\n}\n\nconst headerStyles = {\n euro: css`\n padding-top: 53px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding-top: 70px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n padding-top: 163px;\n }\n `,\n};\n\nconst StyledHeaderWrapper = styled.div\n \n
    {renderError(error, t)}
    `\n ${({ site }) => site === \"euro\" && headerStyles.euro};\n`;\n\ninterface IProps {\n bootstrapped: boolean;\n serverError: IServerError | null;\n}\n\nexport const Loading: React.FC = () => {\n const { t } = useTranslation();\n return (\n \n );\n};\n\nconst App: React.FC\n \n
    \n \n
    {t(\"loading\", \"Loading\")} ... = ({ bootstrapped, serverError }) => {\n const site = getSite();\n const siteHeaders: Record = {\n main_nb: null,\n main_en: null,\n tv2: ,\n };\n return (\n \n );\n};\n\ninterface IContainerPropsFromState {\n bootstrapped: boolean;\n serverError: IServerError | null;\n}\n\ninterface IState {\n eventId: string | null;\n error: Error | null;\n}\n\ninterface IContainerPropsFromDispatch {\n bootstrapApp: () => Promise\n \n \n \n {/* For the translations / site headers */}\n \n }>\n \n \n \n
    \n \n
    \n {siteHeaders[site]}\n \n \n {serverError ? (\n \n ) : bootstrapped ? (\n <>\n \n \n \n ) : (\n \n )}\n \n \n ;\n}\ntype ContainerProps = IContainerPropsFromState & IContainerPropsFromDispatch;\nclass AppContainer extends React.Component {\n public state: IState = { error: null, eventId: null };\n\n public componentDidMount() {\n this.props.bootstrapApp();\n }\n\n public componentDidCatch(error: Error | null, errorInfo: {}) {\n this.setState({ error });\n if (process.env.REACT_APP_SENTRY_ENVIRONMENT) {\n Sentry.withScope((scope) => {\n scope.setExtras(errorInfo);\n const eventId = Sentry.captureException(error);\n this.setState({ eventId });\n });\n }\n }\n\n public render() {\n // JS Error\n if (this.state.error) {\n // Can't reliably use any of our components, eg Button. This should\n //probably be in Norwegian can't use react to do it though ...\n return (\n <>\n \n \n {process.env.REACT_APP_SENTRY_ENVIRONMENT && (\n <>\n \n

    Error

    We're sorry - something's gone wrong.

    \n Our team has been notified, but click here to fill out a report.\n

    \n Sentry.showReportDialog({\n eventId: this.state.eventId as string,\n })\n }\n >\n Report feedback\n \n \n )}\n \n );\n }\n // All OK - Render App\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state: RootState): IContainerPropsFromState => ({\n bootstrapped: getBootstrapped(state),\n serverError: getServerError(state),\n});\n\nconst mapDispatchToProps = (\n dispatch: ThunkDispatch\n): IContainerPropsFromDispatch => ({\n bootstrapApp: () => dispatch(bootstrap()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AppContainer);\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { ICupDetailData } from \"./types\";\n\nexport const fetchEntryCupDetail = createAsyncAction(\n \"FETCH_ENTRY_CUP_DETAIL_START\",\n \"FETCH_ENTRY_CUP_DETAIL_SUCCESS\",\n \"FETCH_ENTRY_CUP_DETAIL_FAILURE\"\n)();\n","import sortBy from \"lodash/sortBy\";\nimport { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport { fetchEntrySummary } from \"../entries/actions\";\nimport * as actions from \"./actions\";\nimport { IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byEntryId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(fetchEntrySummary.success): {\n // If we aready have some data, we make sure we keep the matches which\n // aren't in the summary\n const entryId = action.payload.id;\n const cupDetail = action.payload.data.leagues.cup;\n const newState = { ...state };\n newState[entryId] = cupDetail;\n if (!state[entryId]) {\n return newState;\n }\n const idsFromSummary = newState[entryId].matches.map((m) => m.id);\n state[entryId].matches.forEach((m) => {\n if (idsFromSummary.indexOf(m.id) === -1) {\n newState[entryId].matches.push(m);\n }\n });\n return newState;\n }\n\n case getType(actions.fetchEntryCupDetail.success): {\n const newState = { ...state };\n newState[action.payload.id] = {\n matches: action.payload.data.cup_matches,\n status: action.payload.data.cup_status,\n };\n return newState;\n }\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getCupDetailForEntry = (state: RootState, entryId: number) => {\n const detail = state.cup.byEntryId[entryId];\n if (!detail) {\n return null;\n }\n return {\n ...detail,\n matches: sortBy(detail.matches, \"event\"),\n };\n};\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { IBestLeague, IMostValuableTeam } from \"./types\";\n\nexport const fetchBestClassicPrivateLeagues = createAsyncAction(\n \"FETCH_BEST_CLASSIC_PRIVATE_LEAGUES_START\",\n \"FETCH_BEST_CLASSIC_PRIVATE_LEAGUES_SUCCESS\",\n \"FETCH_BEST_CLASSIC_PRIVATE_LEAGUES_FAILURE\"\n)();\n\nexport const fetchMostValuableTeams = createAsyncAction(\n \"FETCH_MOST_VALUABLE_TEAMS_START\",\n \"FETCH_MOST_VALUABLE_TEAMS_SUCCESS\",\n \"FETCH_MOST_VALUABLE_TEAMS_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 bestClassicPrivateLeagues: (state = [], action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchBestClassicPrivateLeagues.success):\n return action.payload;\n default:\n return state;\n }\n },\n mostValuableTeams: (state = [], action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchMostValuableTeams.success):\n return action.payload;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getBestClassicPrivateLeagues = (state: RootState) =>\n state.stats.bestClassicPrivateLeagues;\n\nexport const getMostValuableTeams = (state: RootState) =>\n state.stats.mostValuableTeams;\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IWinner } from \"./types\";\nimport { IError } from \"..\";\n\nexport const fetchEventWinners = createAsyncAction(\n \"FETCH_EVENT_WINNERS_START\",\n \"FETCH_EVENT_WINNERS_SUCCESS\",\n \"FETCH_EVENT_WINNERS_FAILURE\"\n)();\n\nexport const fetchPhaseWinners = createAsyncAction(\n \"FETCH_PHASE_WINNERS_START\",\n \"FETCH_PHASE_WINNERS_SUCCESS\",\n \"FETCH_PHASE_WINNERS_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 byEvent: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEventWinners.success):\n return {\n ...state,\n [action.payload.event]: action.payload.data,\n };\n default:\n return state;\n }\n },\n byPhase: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchPhaseWinners.success):\n return {\n ...state,\n [action.payload.phase]: action.payload.data,\n };\n\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getWinnersByEvent = (state: RootState) => state.winners.byEvent;\n\nexport const getEventWinners = (state: RootState, eventId: number) =>\n getWinnersByEvent(state)[eventId] || [];\n\nexport const getWinnersByPhase = (state: RootState) => state.winners.byPhase;\n\nexport const getPhaseWinners = (state: RootState, phaseId: number) =>\n getWinnersByPhase(state)[phaseId] || [];\n","import { enableAllPlugins } from \"immer\";\nimport { combineReducers } from \"redux\";\nimport { ThunkAction, ThunkDispatch as BaseThunkDispatch } from \"redux-thunk\";\nimport { ActionType, deprecated, StateType } from \"typesafe-actions\";\nimport * as bootstrapActions from \"./bootstrap/actions\";\nimport bootstrap from \"./bootstrap/reducers\";\nimport * as chipActions from \"./chips/actions\";\nimport chips from \"./chips/reducers\";\nimport * as cupActions from \"./cup/actions\";\nimport cup from \"./cup/reducers\";\nimport * as dreamTeamActions from \"./dream-teams/actions\";\nimport dreamTeams from \"./dream-teams/reducers\";\nimport elementStats from \"./element-stats/reducers\";\nimport elementTypes from \"./element-types/reducers\";\nimport * as elementActions from \"./elements/actions\";\nimport elements from \"./elements/reducers\";\nimport * as entryActions from \"./entries/actions\";\nimport entries from \"./entries/reducers\";\nimport * as eventsActions from \"./events/actions\";\nimport events from \"./events/reducers\";\nimport * as fixtureActions from \"./fixtures/actions\";\nimport fixtures from \"./fixtures/reducers\";\nimport game from \"./game/reducers\";\nimport * as globalActions from \"./global/actions\";\nimport global from \"./global/reducers\";\nimport * as leagueActions from \"./leagues/actions\";\nimport leagues from \"./leagues/reducers\";\nimport * as myTeamActions from \"./my-team/actions\";\nimport myTeam from \"./my-team/reducers\";\nimport phases from \"./phases/reducers\";\nimport * as playerActions from \"./player/actions\";\nimport player from \"./player/reducers\";\nimport * as regionActions from \"./regions/actions\";\nimport regions from \"./regions/reducers\";\nimport * as squadActions from \"./squad/actions\";\nimport squad from \"./squad/reducers\";\nimport * as statsActions from \"./stats/actions\";\nimport stats from \"./stats/reducers\";\nimport teams from \"./teams/reducers\";\nimport * as urlActions from \"./urls/actions\";\nimport urls from \"./urls/reducers\";\nimport * as winnersActions from \"./winners/actions\";\nimport winners from \"./winners/reducers\";\n\nenableAllPlugins();\n\nconst createAction = deprecated.createAction;\n\n// This is an action which does nothing! Useful for setting initial state in\n// tests\nexport const noAction = createAction(\"NoActionRequired\");\n\nconst actions = {\n bootstrapActions,\n chipActions,\n cupActions,\n dreamTeamActions,\n elementActions,\n entryActions,\n eventsActions,\n fixtureActions,\n globalActions,\n leagueActions,\n myTeamActions,\n noAction,\n playerActions,\n regionActions,\n squadActions,\n statsActions,\n urlActions,\n winnersActions,\n};\n\nexport type RootAction = ActionType;\n\nconst rootReducer = combineReducers({\n bootstrap,\n chips,\n cup,\n dreamTeams,\n elementStats,\n elementTypes,\n elements,\n entries,\n events,\n fixtures,\n game,\n global,\n leagues,\n myTeam,\n phases,\n player,\n regions,\n squad,\n stats,\n teams,\n urls,\n winners,\n});\n\nexport type RootState = StateType;\n\nexport type ThunkDispatch = BaseThunkDispatch;\n\nexport type ThunkResult = ThunkAction;\n\nexport interface ISelectOption {\n label: string;\n value: string;\n}\n\nexport interface IError {\n errorText?: string;\n statusText?: string;\n badRequest?: {\n [key: string]: Array<{ code: string; message: string }>;\n };\n url?: string;\n}\n\nexport type SavingState = \"\" | \"saving\" | \"saved\";\n\nexport default rootReducer;\n","import { applyMiddleware, createStore } from \"redux\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\nimport thunkMiddleware from \"redux-thunk\";\nimport rootReducer from \"./store\";\n\nconst configureStore = (initialState?: object) => {\n const middlewares = [thunkMiddleware];\n const enhancer = composeWithDevTools(applyMiddleware(...middlewares));\n const store = createStore(rootReducer, initialState!, enhancer);\n return store;\n};\n\nexport default configureStore;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ninterface IConfig {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n}\n\nexport function register(config?: IConfig) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n // console.log(\n // \"This web app is being served cache-first by a service \" +\n // \"worker. To learn more, visit http://bit.ly/CRA-PWA\"\n // );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: IConfig) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n // console.log(\n // \"New content is available and will be used when all \" +\n // \"tabs for this page are closed. See http://bit.ly/CRA-PWA.\"\n // );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n // console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n // console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: IConfig) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n // console.log(\n // \"No internet connection found. App is running in offline mode.\"\n // );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","import * as Sentry from \"@sentry/browser\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport App from \"./components/App\";\nimport configureStore from \"./core/configureStore\";\nimport \"./i18n\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nif (process.env.REACT_APP_SENTRY_ENVIRONMENT) {\n Sentry.init({\n dsn: \"https://f138bb7f42474ff7a5032f7d338b4135@sentry.io/2243032\",\n environment: process.env.REACT_APP_SENTRY_ENVIRONMENT,\n whitelistUrls: [/eliteserien\\.no/, /ismgames\\.com/],\n ignoreErrors: [],\n });\n}\n\nReactDOM.render(\n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","import styled from \"styled-components/macro\";\n\nexport const Wrapper = styled.div`\n max-width: 1220px;\n min-height: 0;\n min-width: 0;\n margin: 0 auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: flex;\n justify-content: center;\n }\n`;\n\ninterface IMainProps {\n isWide?: boolean;\n}\n\nexport const Main = styled.div\n \n `\n padding-top: 2rem;\n padding-bottom: 2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: ${(props) => (props.isWide ? \"100%\" : \"calc(100% / 3 * 2)\")};\n padding-right: 1rem;\n padding-left: 1rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: ${(props) => (props.isWide ? \"100%\" : \"calc(100% / 4 * 3)\")};\n }\n`;\n\nexport const Secondary = styled.div`\n padding-top: 2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\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: calc(100% / 4 * 1);\n }\n`;\n","import { merge } from \"lodash\";\nimport { RootState } from \"..\";\nimport { IOverrides } from \"../bootstrap/types\";\n\n// Selectors\nexport const getOverridesByChipId = (state: RootState, chipId: number) => {\n const chip = state.chips.byId[chipId];\n return chip.overrides;\n};\n\nexport const getOverridesByEventId = (state: RootState, eventId: number) => {\n const event = state.events.byId[eventId];\n return event.overrides;\n};\n\nexport const getOverrides = (\n state: RootState,\n eventId?: number,\n chipId?: number\n) => {\n let chipOverrides = {};\n let eventOverrides = {};\n\n if (!chipId && !eventId) {\n return null;\n }\n\n if (chipId) {\n chipOverrides = getOverridesByChipId(state, chipId);\n }\n\n if (eventId) {\n eventOverrides = getOverridesByEventId(state, eventId);\n }\n\n return merge(eventOverrides, chipOverrides) as IOverrides;\n};\n"],"sourceRoot":""}