{"version":3,"sources":["core/store/elements/reducers.ts","core/store/phases/reducers.ts","core/store/global/actions.ts","core/store/overrides/reducers.ts","core/store/events/actions.ts","core/store/events/reducers.ts","img/icons/search.svg","img/icons/select.svg","components/FieldRenderers.tsx","components/Collapsible.tsx","core/store/teams/reducers.ts","img/icons/chevron-down.svg","core/store/player/reducers.ts","components/Button.tsx","core/utils/api.ts","components/Utils.tsx","img/icons/close.svg","components/Dialog.tsx","components/Title.tsx","core/store/leagues/actions.ts","core/store/entries/reducers.ts","components/Table.tsx","components/Copy.tsx","components/kit/Logos.tsx","components/kit/Shirt.tsx","components/kit/Socks.tsx","components/kit/Shorts.tsx","components/kit/Kit.tsx","components/Alert.tsx","core/store/element-types/reducers.ts","components/ButtonLink.tsx","components/Link.tsx","core/store/bootstrap/actions.ts","core/store/game/reducers.ts","components/HelmetHead.tsx","core/utils/datetime.ts","core/store/player/actions.ts","components/Badge.tsx","core/store/entries/thunks.ts","components/TabHeading.tsx","core/store/elements/actions.ts","core/store/element-stats/reducers.ts","theme.ts","core/store/entries/actions.ts","img/pitches lazy /^/.//pitch/-.*/.svg$/ groupOptions: {} namespace object","GlobalStyle.ts","contexts/SaveContext.tsx","core/store/global/reducers.ts","img/headline-logo.svg","img/player-comps/player-comp-1-1x.png","img/player-comps/player-comp-1-2x.png","img/player-comps/player-comp-2-1x.png","img/player-comps/player-comp-2-2x.png","img/player-comps/player-comp-3-1x.png","img/player-comps/player-comp-3-2x.png","img/player-comps/player-comp-4-1x.png","img/player-comps/player-comp-4-2x.png","img/player-comps/player-comp-5-1x.png","img/player-comps/player-comp-5-2x.png","utils/player-comps.ts","img/pattern/pattern-2-d.png","img/pattern/pattern-2-d@2x.png","img/pattern/pattern-2-m.png","img/pattern/pattern-2-m@2x.png","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","core/utils/number.ts","utils/element-stats.ts","utils/events.ts","utils/fixtures.ts","utils/stats.ts","img/icons/badge-blank.svg","components/FixtureDifficulty.tsx","components/ElementMatchGroup.tsx","components/ElementPhoto/styles.ts","components/ElementPhoto/ElementPhoto.tsx","img/icons/chevron-left-small.svg","img/icons/chevron-right-small.svg","img/pattern/pattern-1-1236.png","img/pattern/pattern-1-437.png","img/pattern/pattern-1-618.png","img/pattern/pattern-1-874.png","components/ElementDialog/styles.ts","components/styles.ts","components/SubHeading.tsx","components/tabs/TabPanel.tsx","components/tabs/Tab.tsx","components/tabs/Tabs.tsx","components/Tooltip.tsx","components/ElementTable.tsx","components/Result.tsx","components/ElementDialog/HistoryRow/HistoryRow.tsx","components/ElementDialog/HistoryRow/index.ts","components/ElementDialog/EventHistoryTable/EventHistoryTable.tsx","components/ElementDialog/EventHistoryTable/index.ts","components/ElementDialog/FixtureOpponent/styles.ts","components/ElementDialog/FixtureOpponent/FixtureOpponent.tsx","components/ElementDialog/FixtureOpponent/index.ts","components/ElementDialog/StatItem/styles.ts","components/ElementDialog/StatItem/StatItem.tsx","components/ElementDialog/StatItem/index.ts","components/ElementDialog/ElementDialog.tsx","core/store/player/thunks.ts","components/ElementDialog/index.ts","core/store/fixtures/actions.ts","core/store/fixtures/reducers.ts","utils/pulse.ts","components/FixtureBroadcasters.tsx","utils/chips.ts","core/store/my-team/reducers.ts","core/store/my-team/thunks.ts","img/icons/arrow-left.svg","img/icons/arrow-right.svg","components/icons/Arrows.tsx","components/BoldLink.tsx","core/hooks/useFormHook.ts","components/kit/ColorPicker.tsx","components/kit/SponsorText.tsx","components/EntryUpdate.tsx","components/Flag.tsx","components/Footnote.tsx","img/icons/movement.svg","img/icons/new.svg","components/icons/Movement.tsx","components/leagues/Movement.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/GraphicPatterns.ts","components/Panel.tsx","components/ReportNameButton.tsx","components/tabs/EntryTab.tsx","components/tabs/EntryTabs.tsx","components/Entry.tsx","components/EntryHistory.tsx","core/hooks/useDimensions.ts","core/store/fixtures/thunks.ts","components/Explain.ts","components/FixturesNav.tsx","img/icons/chevron-double-left.svg","img/icons/chevron-double-right.svg","webpack:///./src/img/icons/chevron-left.svg?f562","webpack:///./src/img/icons/chevron-right.svg?5cf5","img/icons/next.svg","img/icons/previous.svg","components/icons/Chevrons.tsx","components/fdr/FDRHeader.tsx","components/fdr/FDRCell.tsx","img/icons/sort.svg","components/fdr/FDRHeadingCell.tsx","components/fdr/useTableColumns.tsx","components/fdr/FDRTable.tsx","components/fdr/FDRContainer.tsx","components/fdr/helpers.tsx","core/store/elements/thunks.ts","img/pl-logo-lion.svg","img/tv.png","components/Fixture/FixtureTime/styles.ts","components/Fixture/FixtureTime/FixtureTime.tsx","img/icons/external.svg","components/Fixture/styles.ts","components/Fixture/Fixture.tsx","components/pillList.ts","components/pillRadioButton.ts","components/TeamPillRadio/TeamPillRadio.tsx","img/icons/info.svg","components/TeamPillRadio/index.ts","img/icons/status.svg","components/ElementStatus.tsx","components/ElementDialogButton.tsx","components/Shirt.tsx","img/shirt-shadow.png","components/ElementShirt.tsx","components/Media.tsx","components/ElementInTable.tsx","components/FixtureDetailedStats/FixtureStatsRow/FixtureStatsRow.tsx","components/FixtureDetailedStats/FixtureStatsRow/index.ts","components/FixtureDetailedStats/FixtureStatsTable/FixtureStatsTable.tsx","components/FixtureDetailedStats/FixtureStatsTable/index.ts","components/FixtureDetailedStats/FixtureDetailedStats.tsx","img/icons/add-to-calendar.svg","components/FixtureDetailedStats/index.ts","components/icons/AddToCalendar.tsx","components/Pager.tsx","components/Fixtures.tsx","components/FixturesWrapper.tsx","components/help/PlayerList.tsx","img/headline-logo-light.svg","img/home-step-1-1-342.png","img/home-step-1-1-684.png","img/home-step-1-2-342.png","img/home-step-1-2-684.png","img/home-step-1-3-342.png","img/home-step-1-3-684.png","img/home-step-1-4-342.png","img/home-step-1-4-684.png","img/home-step-1-5-342.png","img/home-step-1-5-684.png","img/home-step-1-6-342.png","img/home-step-1-6-684.png","img/home-step-1-7-342.png","img/home-step-1-7-684.png","img/home-step-2-342.png","img/home-step-2-684.png","img/social/apple.svg","img/social/facebook.svg","img/social/google.svg","img/social/twitter.svg","components/TextDivider.tsx","components/Login.tsx","img/icons/news.svg","img/icons/play.svg","components/news/styles.ts","components/news/NewsThumb.tsx","components/scout/ScoutErrorBoundary.tsx","img/pattern/scout-bg.png","components/scout/styles.ts","components/scout/ScoutLeader.tsx","components/AdWrap.tsx","components/LeaderboardAd.tsx","core/store/events/thunks.ts","components/status/EventStatus.tsx","core/store/stats/actions.ts","core/store/stats/reducers.ts","components/status/BestLeagues.tsx","core/store/stats/thunks.ts","core/store/dream-teams/actions.ts","core/store/dream-teams/reducers.ts","core/store/dream-teams/thunks.ts","img/icons/dreamteam.svg","components/status/DreamTeamPanel.tsx","components/status/EventInfo.tsx","components/status/PlayerAvailability.tsx","img/icons/add-person.svg","img/icons/chevron-left.svg","img/icons/chevron-right.svg","components/ElementFixtureBar/styles.ts","components/PitchCard/styles.ts","components/PlaceholderShirt.tsx","components/status/EventTopElement.tsx","components/status/TopElementCarousel.tsx","img/icons/transfer-arrow-right.svg","components/status/TransfersPanel.tsx","components/status/ValuableTeams.tsx","components/status/Status.tsx","components/Home.tsx","core/store/leagues/autoJoinPersistentStorage.ts","core/store/leagues/reducers.ts","core/store/leagues/thunks.ts","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/HelmetHeadLeagues.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/errors.ts","components/leagues/JoinPrivate.tsx","components/leagues/JoinPublic.tsx","components/leagues/CupArticleErrorBoundary.tsx","components/leagues/H2HEntryFilter.tsx","components/leagues/H2HEventFilter.tsx","components/leagues/LineHeading.ts","img/icons/cup.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/leagues/LeaguesNav.tsx","components/leagues/MyCups.tsx","img/icons/cog.svg","img/icons/plus.svg","img/icons/renew.svg","components/LinkButton.tsx","components/leagues/MyLeagues.tsx","components/leagues/NewEntriesH2H.tsx","components/leagues/Renew.tsx","components/leagues/StandingsRow.tsx","components/leagues/StandingsClassic.tsx","components/leagues/StandingsH2H.tsx","components/prizes/PrizesNav.tsx","components/Prizes.tsx","img/icons/audio-description.svg","img/icons/closed-caption.svg","img/partner-badge-44.png","img/partner-badge-88.png","components/scout/ExternalHeadline.tsx","components/scout/ScoutCard.tsx","components/scout/ScoutNav.tsx","components/scout/Scout.tsx","components/SetPieceTakers/helpers.ts","components/SetPieceTakers/styles.ts","components/SetPieceTakers/SetPieceTakers.tsx","components/SetPieceTakers/index.ts","components/squad/helpers.ts","components/squad/CreateEntryDialog.tsx","components/BoldLinkButton.tsx","components/DeadlineBar.tsx","components/NewsTicker/helpers.tsx","components/NewsTicker/styles.tsx","components/NewsTicker/NewsTicker.tsx","components/NewsTicker/index.tsx","components/PageHeader.tsx","utils/element-type.ts","utils/money.ts","components/Pitch.tsx","components/squad/SaveBar.tsx","core/store/chips/thunks.ts","components/Chips/ChipButton/styles.ts","components/Chips/ChipButton/ChipButton.tsx","components/Chips/ChipBadge/styles.ts","components/Chips/ChipBadge/ChipBadge.tsx","img/icons/closeChipDialog.svg","components/Chips/ChipDialog/styles.ts","components/Chips/ChipDialog/ChipDialog.tsx","components/Chips/ChipCard/styles.ts","components/Chips/ChipCard/ChipCard.tsx","components/Chips/ChipList/styles.ts","components/Chips/ChipList/ChipList.tsx","components/Scoreboard.tsx","components/squad/Scoreboard.tsx","components/ElementTypeLabel/styles.ts","components/ElementTypeLabel/ElementTypeLabel.tsx","components/squad/PitchPlaceholder.tsx","img/icons/remove.svg","components/FixturesForElement/FixtureForElement/FixtureForElement.tsx","components/ElementPoints/styles.ts","components/ElementPoints/ElementPoints.tsx","components/FixturesForElement/styles.ts","components/FixturesForElement/FixturesForElement.tsx","components/ElementFixtureBar/ElementFixtureBar.tsx","components/squad/SquadPitchElement.tsx","components/squad/SquadPitchUnit.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/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/SectionHeading.ts","components/news/NewsItem.tsx","components/news/NewsList.tsx","components/scout/NewsContentList.tsx","components/stats/Statistics.tsx","components/team/DreamTeamTable.tsx","components/team/ElementExplainDialog.tsx","img/icons/captain.svg","img/icons/sub.svg","img/icons/vice-captain.svg","components/team/TeamPitchElement.tsx","components/team/PitchFormation.tsx","components/team/valueForPlayedElement.tsx","components/team/DreamTeam.tsx","img/icons/reload.svg","components/icons/DreamTeam.tsx","components/team/Bench.tsx","components/team/BenchUnit.tsx","components/team/TableCaptains.tsx","components/team/EntryEventTable.tsx","components/team/ManagerUnit/styles.ts","components/team/ManagerUnit/ManagerUnit.tsx","components/team/EntryEvent.tsx","components/Keyline.tsx","components/team/MyTeamTable.tsx","img/fpl-challenge-logo.svg","components/team/TeamSavedModal.tsx","components/team/MyTeam.tsx","components/TransfersHistory.tsx","core/store/winners/actions.ts","core/store/winners/reducers.ts","components/Winners.tsx","core/store/winners/thunks.ts","components/Routes.tsx","components/news/UpdatingErrorBoundary.tsx","components/news/UpdatingContent.tsx","components/ServerError.tsx","components/leagues/AutoJoinDialog.tsx","core/hooks/useWindowSize.ts","core/hooks/usePriorityNav.ts","core/hooks/useDocumentEventHandler.ts","img/icons/more.svg","components/nav/Dropdown.tsx","components/nav/ListItem.tsx","components/nav/Navigation.tsx","components/App.tsx","core/store/cup/actions.ts","core/store/cup/reducers.ts","core/store/regions/actions.ts","core/store/regions/reducers.ts","core/store/urls/actions.ts","core/store/urls/reducers.ts","core/store/index.ts","core/configureStore.ts","serviceWorker.ts","index.tsx","core/store/bootstrap/thunks.ts","img/pattern/pattern-2-crop-184.png","components/SubNav.tsx","components/DialogManager.tsx","components/LatestAlert.tsx","img/pattern/pattern-2-crop-90.png","components/Layout.tsx","core/store/bootstrap/reducers.ts"],"names":["formatNameForSearching","name","search","toLowerCase","replace","c","index","indexOf","combineReducers","byId","state","arguments","length","undefined","action","type","getType","bootstrapActions","newState","payload","forEach","element","id","search_name","web_name","controls","filter","sort","maxCost","getUnavailable","elementActions","dialog","fixturesById","success","data","fixtures","eventDataById","elements","reduce","memo","explain","stats","historyById","history","seasonHistoryById","history_past","getElementsById","eventId","chipId","_overrides$elements","overrides","getOverrides","getElement","createSelector","_","elementId","elementsById","getElements","Object","keys","map","e","getElementControls","getElementTypeFilterOptions","getElementTypes","types","et","label","plural_name","value","getTeamFilterOptions","getTeams","teams","t","filterElements","filterString","watched","watchedElements","filters","element_type","team","matches","match","key","parseInt","getFilter","code","maxCostFromElements","max","now_cost","minCostFromElements","min","reduceElements","searchRegexp","safeValue","RegExp","getSafeSearchRegexp","ascendingSort","stringSort","sortElements","a","b","aSort","bSort","parseFloat","getElementsFromControls","getWatched","filteredElements","status","minCost","getAverageCostByType","elCosts","total","count","getElementDialog","getFixturesWithBlanks","getFixtures","getFixturesById","nxt","getNextEvent","lst","getLastEvent","fixturesWithBlanks","expectedNextEventId","f","event","range","i","push","getHistory","getHistoryById","getHistoryTotals","statNames","getElementStats","s","totals","n","h","Number","isInteger","toFixed","getSeasonHistory","getSeasonHistoryById","getElementsEventDataById","getTotalsByType","sortBy","getFormation","join","actions","getPhases","phases","p","getFinishedPhases","getFinishedEvents","events","lastFinishedEvent","stop_event","getStartedPhases","getCurrentEvent","now","start_event","addServerError","createAction","deprecated","resolve","error","chipOverrides","eventOverrides","getOverridesByChipId","chips","getOverridesByEventId","merge","fetchEventStatus","createAsyncAction","currentEventStatus","getEventsById","getEvents","previousEvent","is_previous","currentEvent","is_current","nextEvent","is_next","getFutureEvents","next","finished","eventsById","ids","Math","getCurrentEventStatus","_path","_extends","assign","bind","r","hasOwnProperty","call","apply","SvgSearch","_ref","svgRef","title","titleId","props","xmlns","width","height","viewBox","ref","fill","d","transform","ForwardRef","FieldWrap","styled","div","withConfig","displayName","componentId","theme","space","InputWrap","colors","lightBlue","_ref2","lightPurple","fieldStyles","css","_ref3","_ref4","fonts","regular","FieldLabel","span","InlineFieldLabel","_ref5","Hint","darkGrey","Input","input","SelectWrap","zIndex","select","wrap","_ref6","lightGrey","selectIcon","size","InlineSelectWrap","Select","_ref7","bold","Option","option","_ref8","InlineSelect","_ref9","_ref10","SearchWrap","rgba","SearchInput","_ref11","SearchIconWrap","_ref12","primary","FieldCols","_ref13","breakpoints","FieldCol","_ref14","_ref15","_ref16","Textarea","textarea","LabelHint","_ref17","hint","_jsx","htmlFor","children","_jsxs","InlineLabel","_ref18","InputField","_ref19","maxLength","onChange","disabled","readonly","_Fragment","readOnly","SearchField","_ref20","placeholder","rest","VisuallyHidden","SearchIcon","Checkbox","hideVisually","darkPink","CheckboxText","CheckboxField","_ref22","checked","role","defaultProps","fieldset","SelectField","_ref25","InlineSelectField","_ref26","TextareaField","_ref27","rows","StyledCollapsible","BadgeWrapper","IconWrap","Button","button","fantasy","HeadingText","CollapsibleContent","lastId","Collapsible","React","Component","constructor","open","toggle","this","setState","componentDidMount","newId","initialOpen","render","headingText","onClick","ChevronDown","Badge","alt","sizes","Copy","getTeamsById","localeCompare","SvgChevronDown","addPlayer","loginError","failure","passwordChangeError","passwordResetError","passwordSetError","playerUpdateError","registerError","addWatched","recoveryError","recoveryStatus","getPlayerData","player","StyledButton","Base","radii","fontSizes","fullwidth","variant","getCookie","cookieValue","document","cookie","split","trim","substring","decodeURIComponent","responseIsEmpty","response","contentLength","headers","get","responseIsJSON","contentType","async","_api","url","dispatch","asyncActions","fetchArgs","successPayloadFormat","request","fetch","credentials","errorText","message","ok","statusText","badRequest","json","details","text","Error","apiGet","_apiDeletePostPut","method","body","JSON","stringify","apiPost","apiPut","apiDelete","Ellipsis","ellipsis","UnstyledButton","textGradient","blue","gradientBorder","MatchValueBase","NewTabCopy","_polygon","SvgClose","fillRule","points","CloseButtonWrap","CloseButton","CloseLabel","CloseIcon","Close","StyledDialog","pattern2Crop90","darkBlue","hiDPI","pattern2Crop184","isElementDialog","Overlay","overlay","StyledHeader","DialogHeading","h2","DialogButtonItem","li","isVisible","elem","offsetWidth","offsetHeight","getClientRects","StyledDialogBody","isPadded","DialogBody","className","Dialog","docref","focusReturn","activeElement","handleKeydown","closeDialog","handleTab","handleOutsideMouseClick","target","currentTarget","stopPropagation","addEventListener","docRef","current","focusElement","querySelector","focusable","focus","componentWillUnmount","removeEventListener","focusedItem","focusableItems","Array","prototype","slice","querySelectorAll","numFocusableItems","focusedIndex","shiftKey","preventDefault","ReactDOM","createPortal","getElementById","Header","Body","Title","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","entry","leagues","some","league","updatedEntry","concat","classic","le","h2h","eventHistoryById","past","chipHistoryById","eventPicksById","transfersById","phaseStandingsById","phase","getEntry","entryId","entries","getEntryEventHistory","getEntrySeasonHistory","getEntryChipHistory","getEntryEventPicks","getEntryEventPoints","elementsEventDataById","picks","total_points","multiplier","getEntryEventFormation","settings","getSettings","squad_squadplay","getPrivateClassicLeaguesForEntry","l","league_type","getPrivateClassicCupLeaguesForEntry","has_cup","getPrivateH2HLeaguesForEntry","getPublicClassicLeaguesForEntry","getPublicClassicCupLeaguesForEntry","getPublicH2HLeaguesForEntry","getSystemClassicLeaguesForEntry","getSystemClassicCupLeaguesForEntry","getLeagueForEntry","leagueId","getCupMatchesByLeagueId","cupMatches","cup_matches","getTransfersForEntry","ScrollTable","em","Table","table","LinkStyles","StyledButtonLink","Logos","sponsorLogo","display","xlinkHref","mask","style8","Shirt","shirtStyle","shirtColor","sleeveColor","shirtStyleColor","stripesDisplay","hoopsDisplay","opacity","style","stroke","strokeLinecap","strokeLinejoin","strokeWidth","Socks","sockColor","sockStyle","sockStyleColor","color","cx","cy","rx","ry","shorts","shortColor","SVGWrapper","Kit","Shorts","AlertWrap","StyledAlert","textAlign","isInline","copnr","elementStatus","bg","AlertText","AlertItem","AlertGroup","Alert","getElementTypesById","elementTypes","element_types","elementTypesById","getElementTypesBySquadPosition","squad_select","lastType","nextType","thisType","ButtonLinkStyles","ButtonHyperlink","Link","ButtonLink","to","Hyperlink","RouterLink","addChips","addElementStats","elementStats","addElementTypes","addElements","addEvents","addGameSettings","addPhases","addTeams","addTotalPlayers","bootstrap","bootstrapMe","bootstrapStatic","total_players","game","rules","getTotalPlayers","HelmetHead","description","Helmet","content","localTimeZone","Intl","DateTimeFormat","resolvedOptions","timeZone","formatDateAsLocal","dt","format","formatInTimeZone","formatRawAsDate","raw","formatDateObjAsDate","Date","formatRawAsISO","formatDateAsISO","utcToZonedTime","toISOString","formatRawAsLocal","login","logout","recover","register","playerUpdate","passwordChange","passwordReset","passwordSet","addToWatched","elementCode","removeFromWatched","addToWatchlist","removeFromWatchlist","StyledBadge","img","path","imgProps","src","srcSet","fetchEntrySummary","fetchEntryHistory","fetchEntryEventPicks","updateEntry","fetchEntryTransfers","TabHeadingOuter","isCentered","hasBorder","TabHeadingInner","isBlock","TabHeadingTitle","h3","TabHeading","updateElementControls","elementDialogShow","elementDialogHide","fetchElementSummary","fetchElementEventData","reducer","getElementStatsByIdentifier","stat","offblack","purple","yellow","red","breakpointsArray","borders","bp","black","bud","darkGreen","difficulties","green","grey","movement","down","same","up","pink","pinkToOrange","purple10","purple70","purpleDark","result","w","social","facebook","x","google","apple","white","offWhite","boldItalic","italic","light","fetchEntryPhaseStandings","unsubscribeEntry","webpackAsyncContext","req","__webpack_require__","o","Promise","then","module","exports","SaveContext","createContext","saveState","setSaveState","SaveProvider","useState","Provider","serverError","getServerError","global","SvgHeadlineLogo","choice","getPlayerComp","playerImages","x1","playerComp1","x2","playerComp1x2","playerComp2","playerComp2x2","playerComp3","playerComp3x2","playerComp4","playerComp4x2","playerComp5","playerComp5x2","floor","random","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","getChipsById","getPotentialChips","getActiveChip","getActiveChipName","getProposedChip","getProposedChipName","teamChipsHaveChanged","Boolean","getActiveOrProposedTeamChipName","getActiveOrProposedTransferChipName","getActiveOrProposedChip","proposeElementInPosition","position","removeElementInPosition","resetLastChange","resetProposed","createSquad","makeTransfers","fetchTransfersLatest","defaultLastType","lastChange","proposed","myTeamActions","picksInSquadOrder","saved","transferState","chipActions","transfers","latestTransfers","getProposedPicks","squad","getSavedPicks","getLastChange","getTransferState","getSquadError","getSquadMode","getProposedElements","squad_squadsize","getProposedElementsById","obj","pos","getTransferPositionStatus","from","Set","getToSpend","mode","posStatus","proposedChip","activeChip","values","toSpend","squad_total_spend","_saved$pos","selling_price","_saved$pos2","_proposed$pos","_proposed$pos2","bank","getTeamLimit","squad_team_limit","getTypesNeeded","needed","getCountByTeam","countByTeam","elementsByTeam","groupBy","teamId","getProposedTransfers","pickKeys","includes","element_in","element_out","purchase_price","getErrors","teamLimit","errors","budgetExceeded","selected","needElements","overTeamLimit","noTransfersMade","toCreateEntryAPI","getNumberOfTransferChanges","positionStatus","getFreeTransfers","limit","made","getFreeTransfersRemaining","free","changes","getTransferCostsWithoutChip","overLimit","cost","getTransferCosts","freeChips","canAutocomplete","canReset","orderBy","proposeElement","getState","elementTypesByPosition","freePosition","find","savedPositions","savedPosition","proposedId","removeElement","restoreElement","isMoneyStat","integerToMoney","int","divisor","formatNumberToLocaleString","toLocaleString","starts","shortName","per90Stat","minutes","goals_scored","assists","expected_goals","expected_assists","expected_goal_involvements","clean_sheets","goals_conceded","expected_goals_conceded","own_goals","penalties_saved","penalties_missed","yellow_cards","red_cards","saves","bonus","bps","influence","creativity","threat","ict_index","mng_win","mng_draw","mng_loss","mng_underdog_win","mng_underdog_draw","mng_clean_sheets","mng_goals_scored","getElementStat","getElementStatNames","getRelevantStatNames","elementType","isManagerElement","startsWith","getStatAbbr","statsByName","_getElementStat","abbr","toUpperCase","getShortNameFromId","isBlankWeek","getSuffixFromId","isHome","isElementFixtureHome","elementTeam","fixtureTeamH","statDetails","event_points","selected_by_percent","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","getStatDetails","getStatDescription","statName","SvgBadgeBlank","StyledFixtureDifficulty","rating","isLarge","FixtureDifficulty","MatchListTitle","MatchList","ul","MatchBox","MatchBoxEvent","MatchBoxBadge","MatchBoxValue","MatchEvent","h4","BadgeBlank","BadgeBlankBase","HistoryPts","isBlank","BlankMatchBox","Box","mb","ElementHistoryBox","opponentTeam","useSelector","opponent_team","round","ElementFixtureBox","fixture","teamsById","team_h","team_a","difficulty","ElementMatchGroup","StyledElementPhoto","photoWidth","isPitchUnit","ElementPhoto","srcDimensions","elementPhotoDir","missingPhotoFilename","elementPhotoFilename","has_temporary_code","opta_code","onError","BadgeWrap","ElementDialogHeader","Summary","BaseHeadlineLogo","pattern1_437","pattern1_618","pattern1_874","pattern1_1236","ElementTypeLabel","ElementHeading","Club","ElementPhotoWrap","Glass","StatsOuter","leftArrow","rightArrow","StatsWrap","StatDivider","StatList","RankTitle","_ref21","TableWrap","_ref23","_ref24","HistoryTableWrap","HistoryTotalsHeading","th","HistoryTable","HistoryTotalsRow","tr","HistoryPer90Row","FixturesTable","DateCol","EventCol","_ref28","OppCol","_ref29","_ref30","FDRCol","_ref31","_ref32","FixtureStatsTableWrap","StyledFixtureStatsTable","GradBorderBox","BenchHeader","SubHeading","TabPanel","Item","TabLink","Tab","link","href","TabListShared","TabList","Tabs","getSelectedFromLocationHash","handleClick","locationHash","child","panel","StyledTooltip","Tippy","TooltipLabel","Tooltip","arrow","placement","ElementTable","PrimaryCell","td","PrimaryCellLined","ElementRow","BorderedCell","StyledResult","resultChar","Result","HistoryRow","getResult","teamAScore","teamBScore","oppTeam","scope","short_name","was_home","team_h_score","team_a_score","transfers_balance","EventHistoryTable","historyTotals","reverse","elementStat","TeamName","FixtureOpponent","opponent","suffix","StyledStatItem","StatHeading","StatValue","StatRank","StatItem","rankType","element_count","ElementDialog","added","addElement","renderWatchlistButton","seasonHistory","lastThreeHistory","getHistoryWithoutFixtures","fixtureIds","has","nextThreeFixtures","news","chance_of_playing_next_round","Flex","alignItems","singular_name","first_name","second_name","now_cost_rank_type","points_per_game_rank_type","ict_index_rank_type","selected_rank_type","flex","m","season_name","start_cost","end_cost","kickoff_time","dateTime","mx","my","ConnectedDialog","connect","mapStateToProps","ownProps","ElementDialogContainer","addFixturesForEvent","addFixtures","addAllStatsForFixture","byEvent","eventSlice","allStatsById","getFixturesByEvent","getGroupedFixturesByEvent","fixturesByEvent","groupedFixturesByEvent","groups","currentGroup","kickoffDate","fixtureDate","startOfDay","isEqual","date","getFixturesForEvent","getFixturesForEventById","getFixturesForEventByTeam","getFixturesForNextEventByTeam","getElementFixtureOpponent","__","getElementEventOpponents","baseUrl","process","_fetch","fetchNews","number","tag","fetchNewsArticle","fetchPlaylist","pageSize","fetchVideos","getPulseTeamIdFromRefs","refs","clubRefs","FixtureBroadcastersContext","FixtureBroadcasters","broadcasterInfo","setBroadcasterInfo","useEffect","fetchesInProgress","optaMap","optaMapFromFixtures","broadcasterData","startDate","endDate","fetchBroadcastersForFixtures","moment","catch","eventBroadcasterInfo","altIds","broadcasters","fixtureId","opta","bData","test","abbreviation","getChipName","bboost","freehit","wildcard","manager","managerplaceholder","picksLastUpdated","picks_last_updated","picksProposed","subStatus","newPick","instigator","attrs","newPicks","subStart","newCaptain","attrMake","attrOther","oldCaptain","picksSaved","savingState","getMyPicksLastUpdated","myTeam","getMyPicksSaved","getMyPicksProposed","getMyTeamSavingState","getMyStartersProposed","getMyStartingTotalsByType","getMyFormation","isSub","getMyPossibleReplacementsForPick","pick1","possibles","pick2","isLegalSwap","p1","p2","p1Type","p2Type","p1Sub","p2Sub","validSwap","squad_max_play","squad_min_play","sub_positions_locked","isMyTeamValid","every","hasMyTeamChanged","is_captain","is_vice_captain","toUpdateMyTeamAPI","toUpdateChipAPI","checkGame","actionSubstitution","SvgArrowLeft","SvgArrowRight","ArrowLeft","ArrowLeftIcon","ArrowRight","ArrowRightIcon","ControlArrowRight","ControlArrowLeft","BoldLinkWrap","align","BoldLinkStyles","StyledBoldHyperlink","StyledBoldLink","BoldHyperlink","BoldLink","useFormHook","initialStateObject","formState","updateFormState","newFormState","updateColorState","hex","ColorPickerWrapper","Wrapper","ColorPickerBox","Preview","DropDownArrow","SyledSketch","SketchPicker","ColorLabel","ColorPicker","setOpen","disableAlpha","Paragraph","TwitterLink","SponsorComponents","none","ukraine","SponsorText","selectedSponsor","lazy","Fieldset","KitController","KitControllerChildren","KitWrapper","SectionHeader","TwoColumns","shirtOptions","sockOptions","sponsorOptions","kitFromEntry","defaultHexColor","kit","defaultKit","parse","kit_shirt_type","kit_shirt_logo","kit_socks_type","kit_shirt_base","kit_shirt_sleeves","kit_shorts","kit_socks_base","kit_shirt_secondary","kit_socks_secondary","EntryUpdate","updateState","updateCheckboxState","updateSelectState","favourite_team","initState","Main","onSubmit","fave","email","name_change_blocked","Suspense","fallback","deadline_time","tm","EntryUpdateFetcher","fetchEntry","navigate","Flag","entryLongCode","player_region_iso_code_long","gbPrefix","flagCode","customFlagPath","player_region_name","CountryFlag","player_region_iso_code_short","Footnote","_g","SvgMovement","_rect","SvgNew","y","NewIcon","BaseNewIcon","MovementIcon","BaseMovementIcon","Movement","lastRank","rank","CupSummaryScore","iAmOne","entry_1_entry","is_bye","entry_1_points","entry_2_points","EventCell","StatusCell","CupSummaryData","winner","mr","getLeagueUrl","defaultEntry","getBroadcasterLeagues","systemClassicLeagues","broadcasterLeagueMatch","getFilteredSystemClassicLeagues","broadcasterLeagues","getCupUrl","cup_league","linkUrl","CupTypeRow","cupMatch","cup_qualified","LeagueSummaryHeading","SummaryCupCol","SummaryRoundCol","SummaryStatusCol","LeagueSummaryTable","SelectBox","MyLeagueCupSummary","pb","PatternWrapMain","showDeepGradient","PatternWrap","StyledPanelHeader","PanelHeading","PanelBody","PanelFooter","Panel","icon","Footer","ReportNameButton","EntryTab","EntryTabs","selectedTab","setSelectedTab","Children","EntryName","DataList","DataListItem","DataListHeading","h5","DataListValue","MovementHead","RankHead","NameHead","Name","LeagueSummary","LeagueSummaryRow","leagueEntry","entry_last_rank","entry_rank","Entry","mine","transfersState","componentDidUpdate","prevProps","lastIndexOf","_entry$summary_overal","privateClassicLeagues","privateClassicCupLeagues","publicClassicLeagues","publicClassicCupLeagues","privateH2HLeagues","publicH2HLeagues","systemClassicCupLeagues","totalPlayers","fanLeagueData","fanLeagueMatch","fanLeagues","filteredSystemClassicLeagues","hasCupLeagues","broadcasterCupLeagues","filteredSystemCupLeagues","getBadgePath","player_first_name","player_last_name","summary_overall_points","summary_overall_rank","summary_event_points","last_deadline_total_transfers","last_deadline_value","last_deadline_bank","mt","px","window","location","origin","EntryHistory","movementFromIndex","thisRank","eventHistory","overall_rank","eh","points_on_bench","event_transfers","event_transfers_cost","chipHistory","ch","time","sh","Secondary","blankRectObj","top","left","right","bottom","useDimensions","liveMeasure","dimensions","setDimensions","node","setNode","useCallback","useLayoutEffect","measure","requestAnimationFrame","rect","getBoundingClientRect","getDimensionObject","fetchFixtures","Explain","links","FixturesNav","SubNav","SvgChevronDoubleLeft","SvgChevronDoubleRight","SvgChevronLeft","SvgChevronRight","SvgNext","SvgPrevious","ChevronLeft","ChevronLeftIcon","ChevronRight","ChevronRightIcon","ChevronDoubleLeft","ChevronDoubleLeftIcon","ChevronDoubleRight","ChevronDoubleRightIcon","PrevIcon","BasePrevIcon","NextIcon","BaseNextIcon","TableHeader","header","TableTitleRow","TableNavRow","nav","TableNavButtonWrap","KeyWrapper","KeyHeading","KeyItem","KeyLabels","KeyLabel","KeyHide","FDRHeader","showPrevBtn","showNextBtn","onHandlePrevClick","onHandleNextClick","debounce","StyledFDRCell","Teamname","FDRCell","teamName","SvgSort","StyledFDRHeadingCell","StyledHeading","EventName","EventTime","StyledSortIcon","SortIcon","StyledSortIconWrapper","isActive","isRotated","FDRHeadingCell","eventName","eventDeadline","onHandleClick","activeEventId","active","setActive","sortOrderAsc","setOrderA","activeClickIndex","incrementIndex","useTableColumns","windowWidthInner","tableWidth","firstColWidth","secondColWidth","colsCanFit","CellWrapper","StyledFDRTable","ColTh","TeamCell","TeamCellName","FDRTable","teamFixtures","currentEventIndex","onHeadingSort","activeHeadingIndex","eventsToShow","first","FDRContainer","reduxDispatch","useDispatch","tableRef","tableDimensions","visibleColumns","nextEventIndex","findIndex","setEventIndex","setTeamFixtures","sortedTeams","setSortedTeams","setActiveEventId","ha","myTeamKey","toString","team_h_difficulty","team_a_difficulty","eventDifficulty","totalFixtures","totalEventDifficulty","acc","formatFixturesByEventAndTeam","pt","handlePrevClick","handleNextClick","sortType","sortTeamsByEventDiff","aTeamDifficulty","bTeamDifficulty","updateElementControlsAndMaxCost","updateElementTypeControl","elementTypeId","showElementSummary","getElementSummary","fetchEventLive","FixtureKOTime","FixtureTime","provisional_start_time","as","SvgExternal","StyledFixture","isStarted","Teams","Team","TeamH","FixtureBadge","FixtureScore","$finished","FixtureScoreTeam","Broadcaster","BroadcasterBox","BroadcasterList","BroadcasterItem","StyledLogo","ButtonWrap","TVButton","TVLogo","ButtonText","TVLink","ExternalIcon","BaseExternalIcon","MultipleBroadcastersDialog","handleHide","broadcaster","Logo","rel","fb","started","finished_provisional","DialogManager","showDialog","handleShow","tvIcon","PillList","PillItem","PillRadioLabel","PillRadioInput","TeamPillRadio","handleChange","defaultChecked","SvgInfo","_path2","SvgStatus","InfoIcon","StyledStatus","Status","StatusInfo","copnrMessage","ElementStatus","Info","StyledElementDialogButton","showElementDialog","StyledShirt","hasShadow","getElementShirtPath","teamCode","shirtMode","ElementShirt","ui_use_special_shirts","ui_special_shirt_exclusions","StyledMedia","centred","Img","Media","MenuButton","renderElementMenu","singular_name_short","FixtureStatsRow","ElementDialogButton","ElementInTable","FixtureStatsTable","fixtureStats","filteredStats","setFilteredStats","teamH","teamA","py","FixtureDetailedStats","allStatsForFixture","getAllStatsForFixture","SvgAddToCalendar","AddToCalendar","BaseAddToCalendar","Pager","EventPager","PagerItem","PagerItemNext","PagerStyles","PagerButton","PagerLink","ButtonLabel","PagerHeading","PreviousButton","NextButton","PreviousLink","NextLink","StyledFixtures","section","FixturesHeader","Heading","FixtureLogo","EventHeading","Deadline","Note","FixtureDay","FixtureList","FixtureItem","FixtureButton","isOpen","FixtureStatsWrap","FixtureSummaryStats","_ref33","_ref34","FixtureStat","_ref35","_ref36","FixtureStatHeading","_ref37","_ref38","_ref39","_ref40","_ref41","FixtureStatBody","_ref42","_ref43","FixtureStatList","_ref44","_ref45","FixtureStatItem","_ref46","_ref47","_ref48","ElementButton","_ref49","_ref50","_ref51","FixtureStatsForTeam","_ref52","fs","FixtureStats","_ref53","statsByIdentifier","renderStats","identifier","Fixtures","super","changeEvent","fetchFixturesForEvent","useLinks","eventFixtureGroups","logo","group","Fixture","FixturesWrapper","isWide","ElementListElement","ElementListTable","ElementListPosition","halfElements","ceil","firstHalfElements","secondHalfElements","SvgHeadlineLogoLight","SvgApple","SvgFacebook","SvgGoogle","SvgTwitter","TextDivider","LoginForm","LoginTitle","Username","Password","LoginButtonWrap","LoginLinks","LoginLink","SocialLogin","SocialButtonWrap","StyledSocialButton","network","SocialButtonText","Promo","PromoHead","PromoBody","PromoFoot","LogoLight","BaseLogoLight","PromoHeading","PromoText","SocialButton","usersError","isSubmitting","setIsSubmitting","last_name","app","plusers","redirect","protocol","host","passLook","makeSocialLogin","net","FacebookLogo","TwitterLogo","GoogleLogo","AppleLogo","SvgNews","SvgPlay","NewsLink","Figure","figure","Thumb","NewsImg","NewsSubtitle","NewsTitle","StyledRelatedArticles","RelatedLink","PlayIcon","BasePlayIcon","RelatedHeadline","NewsIcon","BaseNewsIcon","NewsThumb","imgSizes","newsType","thumbSrc","leadMedia","lm","thumbnail","onDemandUrl","defaultSize","ScoutErrorBoundary","componentDidCatch","errorInfo","Sentry","setExtras","ScoutPattern","promoBg","ScoutBody","figcaption","ScoutTitle","ScoutList","ScoutItem","ScoutLink","ScoutContent","ScoutImgWrap","ScoutSummary","ScoutDate","NewsLeader","summary","ScoutNewsLeader","newsData","ScoutLeader","AdWrap","LeaderboardAd","slot","targetValue","_googletag$cmd","googletag","cmd","mapping","sizeMapping","addSize","build","defineSlot","defineSizeMapping","addService","pubads","collapseEmptyDivs","enableServices","pubadsReady","destroySlots","_googletag$cmd2","setTargeting","EventStatusHead","thead","EventStatusBody","tbody","EventStatusInfo","EventStatusLeagues","EventStatusLeagueInfo","EventStatus","pointsLabels","statusData","bonus_added","colSpan","fetchBestClassicPrivateLeagues","fetchMostValuableTeams","bestClassicPrivateLeagues","mostValuableTeams","getBestClassicPrivateLeagues","getMostValuableTeams","BestLeaguesTable","PosCell","AverageCell","BestLeagues","average_score","fetchOverallDreamTeam","fetchEventDreamTeam","byEventId","overall","getOverallDreamTeam","dreamTeams","getEventDreamTeam","getOverallDreamTeamFormation","getEventDreamTeamFormation","_defs","SvgDreamteam","y1","y2","offset","stopColor","DTTable","DTStatus","DTPos","DTShirt","DTName","DTClub","DTPts","DreamTeamRow","DreamTeamPanel","DreamTeamIcon","StyledEventInfo","pattern2Desktop","pattern2Desktop2x","images","PrizesLink","InfoList","InfoItem","ItemHeading","ItemValue","ItemLink","ItemLinkHeading","chip_plays","cp","chip_name","wildcards","num_played","highest_scoring_entry","highest_score","average_entry_score","transfers_made","most_transferred_in","most_selected","most_captained","most_vice_captained","AvailabilityTable","StatusCol","ShirtCol","PlayerCol","PosCol","ClubCol","ShirtCell","PlayerAvailability","updateControlsAndMaxCost","SvgAddPerson","clipPath","StyledElementFixtureBar","$isLive","$isFinished","PitchElementWrap","StyledPitchElement","ElementName","PitchCardButton","PitchCard","AddPerson","AddPersonBase","ElementCost","PitchElementData","RemovedElement","sharedControlStyles","PitchElementIconsWrap","InfoControl","ImgWrap","PlaceholderShirt","useBlank","StyledTopElement","TopElementName","TopElementValue","TopElementValueInner","Gameweek","Points","shirtProps","StyledSlider","Slider","darken","getInitialSlide","slidesToShow","infinite","initialSlide","responsive","breakpoint","slidesToScroll","topElementFromEvent","top_element_info","topElementPointsFromEvent","EventTopElement","SvgTransferArrowRight","ArrowWrap","isOut","isSmall","TransfersTable","ArrowCol","TransfersCol","TransferArrow","ArrowIcon","MVTTable","ValuableTeams","value_with_bank","StatusWrapper","StatusMain","StatusHead","StatusBlock","StatusUnit","StatusPrimary","StatusSecondary","LatestAlert","EventInfo","TransfersPanel","TopElementCarousel","HomeSteps","HomeStep","HomeStepHeading","HomeStepImg","HomeStepBody","Home","query","qs","ignoreQueryPrefix","started_event","setTimeout","homeStep1Images","homeStep1_1_342","homeStep1_1_684","homeStep1_2_342","homeStep1_2_684","homeStep1_3_342","homeStep1_3_684","homeStep1_4_342","homeStep1_4_684","homeStep1_5_342","homeStep1_5_684","homeStep1_6_342","homeStep1_6_684","homeStep1_7_342","homeStep1_7_684","homeStep1Image","Login","homeStep2_342","homeStep2_684","localStorageKey","getInitialState","_window$localStorage2","localStorage","getItem","getValue","classicStandingsById","produce","draft","_draft$data$league$id","_draft$data$league$id2","phaseId","newData","newEntriesByPage","standingsByPhaseAndPage","new_entries","page","standings","lastUpdatedData","last_updated_data","getH2HMatchesKey","h2hMatchesById","_draft$leagueId","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","joined_time","ne","getActiveEntryInLeague","activeToClassicStanding","event_total","last_rank","player_name","rank_sort","activeToH2HStanding","division","matches_drawn","matches_lost","matches_played","matches_won","points_for","getClassicNewEntries","activeEntry","results","getClassicStandings","cs","getH2HLeague","getH2HNewEntries","getH2HStandings","getH2HMatches","_state$leagues$h2hMat","getLeagueEntries","getLeagueEntriesError","getLeagueCupStatus","pageNewEntries","pageStandings","setCode","setValue","_window$localStorage","setItem","clearCode","_window$localStorage3","removeItem","clearValue","EntrySelector","searchChange","Downshift","selection","onInputValueChange","itemToString","item","getInputProps","getItemProps","getLabelProps","getMenuProps","highlightedIndex","selectedItem","backgroundColor","fontWeight","EntrySelectorWrapper","lastSearch","excluded","searchMatches","encodeURIComponent","AddBan","handleEntryChange","handleSubmit","apiDataFromState","admin_entry","ChangeAdmin","updateAdmin","ClassicDetails","requiredFields","privacyOptions","closed","hasCup","code_privacy","codePrivacy","startEvent","handleNameChange","handleCodePrivacyChange","handleStartEventChange","handleClosedChange","updateLeague","getDerivedStateFromProps","Code","fetchCode","regenerateCode","Delete","remove","confirm","RemoveBan","bans","unban","HelmetHeadLeagues","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","CreateClassic","non_field_errors","league_join_private_max","CreateH2H","CreateJoin","CupNotStarted","cupStatus","qualification_event","has_byes","qualification_numbers","LeagueInvite","LeagueInviteCode","strong","Hr","hr","codeToCopy","leagueName","inviteMessage","emailText","emailBody","joinUrl","isCopied","setCopied","useClipboard","successDuration","isCopiedUrl","setCopiedUrl","isCopiedEmail","setCopiedEmail","onDoubleClick","line","league_join_public_max","getErrorType","formatErrorMsg","JoinPrivate","handleCodeChange","hasJoinedPrivate","joinPublicLeagueClassic","joinPublicLeagueH2H","league_max_size_public_classic","league_max_size_public_h2h","UpdatingErrorBoundary","H2HEntryFilter","handleFilterChange","leagueEntries","H2HEventFilter","LineHeading","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","StyledMatchesTable","MatchesRoundColRound","MatchesRoundColEntry","MatchesRoundColEntry1","MatchesRoundColScore","MatchesTable","ButtonWrapper","entryInLeague","isAdmin","entry_can_admin","isEntryInLeague","showInviteBtn","showJoinBtn","justifyContent","StyledCupArticle","MatchesCup","entryNumber","eventNumber","pageMatches","page_matches","buildMatchesUrl","myLeagueEntry","didNotQualify","notStarted","largeCupEvent","cupArticle","setCupArticle","fetchMatches","is_large","pulse_article_id","article","cupStartText","StandingsHeading","CupArticleErrorBoundary","dangerouslySetInnerHTML","__html","has_next","NavList","NavItem","NavLink","isCurrent","H2HNav","defaultEntryParam","pathname","MatchesH2H","handleEntryFilterChange","handleEventFilterChange","defaultEntryNumber","fetchEntries","fetchStandings","isPlayerInLeague","leagueEntriesError","showEntry","isLargeLeague","_this$props$now","_this$props$leagueEnt","_this$props$leagueEnt2","_this$props$leagueEnt3","default_entry","CupCol","RoundCol","MyCupsTable","CupTypeTable","LeaguesNav","MyCups","SvgCog","SvgPlus","SvgRenew","LinkButton","ActionBar","ActionBarItem","ActionList","Icons","Plus","BasePlus","Renew","BaseRenew","MyLeaguesTable","LeagueCol","MovementCol","RankCol","OptionsCol","Cog","BaseCog","Label","MyLeagues","leave","LeagueTypeTable","LeagueMenuDialog","entry_can_leave","entry_can_invite","NewEntriesH2H","setPage","destroy","renew","StandingsRow","StandingsClassic","buildLink","fetchLeagueStandings","ls","page_new_entries","page_standings","StandingsH2H","PrizesNav","SvgAudioDescription","SvgClosedCaption","ExternalHeadlineContent","ExternalHeadline","teamsByPulseId","curr","pulse_id","getTeamsByPulseId","hotlinkUrl","references","pulseId","ScoutCard","externalNews","newsItem","related","subtitle","Fragment","ScoutNav","Widget","WidgetHeader","ScoutFooter","VideoFigure","Image","ThumbPlayIcon","RunTime","PlayIconSmall","PlayTime","MainVideoWrap","MainVideoCaption","MainVideoTitle","VideoText","CCIcon","BaseCCIcon","ADIcon","BaseADIcon","ScoutVideo","VideoSection","VideoList","VideoItem","SocialBody","SocialLinks","SocialLink","SocialLinkItem","SocialLinkText","TwitterWrap","SocialIcons","hasCC","hasAD","Video","video","duration","closedCaptioned","Scout","videos","showTwitter","all","videosData","newsRequests","cur","articles","externalNewsData","tags","externalNewsById","twttr","widgets","load","mainVideo","v","partnerBadge44","partnerBadge88","StyledSetPieceTakers","NotesWrapper","NoteLink","SetPieceTakersContent","TeamContentInner","SetPieceTitle","Element","Group","StyledInfo","SetPieceTakers","notes","setNotes","setPieceTakersByTeamId","useMemo","reduceElementsBySetPieceTakers","byTeamId","penalties","direct_freekicks","corners_and_indirect_freekicks","penalties_order","order","direct_freekicks_order","corners_and_indirect_freekicks_order","teamsArr","res","last_updated","teamNotes","fetchData","renderElements","setPieceTypes","note","info_message","source_link","external_link","getCodeFromError","errorCode","CreateEntryDialog","useContext","terms_agreed","isValid","reload","StyledBoldLinkButton","BoldLinkButton","StyledDeadlineBar","DeadlineBarInner","DeadlineBar","deadlineISO","deadlineLocal","heading","altDeadline","transformNewsArticles","newsArticles","pulseFixtureFromArticle","pulseClubFromArticle","ismTeam","findTeamByKey","filteredTeams","idx","articleWithTeam","lastItem","SLIDER_X_PADDING","StyledNewsTickerHeader","StyledNewsTickerSlider","SliderArticles","SliderArticle","StyledArticleTitle","StyledArticleTitleAnchor","StyledSlide","StyledSlideInner","SliderHeader","Hashtag","LogoWrapper","SLICK_SETTINGS","dots","speed","variableWidth","arrows","NewsTicker","localEventId","setNewsData","enoughFixtures","enoughNews","referenceExpression","rawNewsArticles","params","URLSearchParams","set","fetchNewsArticles","transformedNewsArticles","console","fetchNewsData","homeTeamObj","awayTeamObj","homeTeamArticle","awayTeamArticle","StyledPageHeader","PageHeader","getElementRole","integerToMoneyWithCurrency","StyledPitch","pitch","PitchRow","PitchUnit","BenchRow","InnerBenchRow","BenchContentWrap","Pitch","sponsor","pitchSrc","setPitchSrc","default","SaveBar","chipActivationHandle","potentialChips","pendingChip","is_pending","StyledChipButton","ChipButton","StyledChipBadge","ChipBadge","SvgCloseChipDialog","fillOpacity","clipRule","DialogTitle","$showWarning","DialogCopy","StyledDialogWarning","ChipDialogBody","chipAction","showWarning","warningValue","DialogWarning","ChipDialogHeader","ChipDialog","useRef","ChipCardTitle","CardButton","chipStatus","ChipLabel","$fullWidth","Card","ChipLabelWrap","ChipCard","chipLabelText","eventsPlayed","played_by_entry","ChipLabelStyles","StyledChipList","$chipsShown","ChipButtonWrap","ChipCardLink","ChipList","chipsShown","showModalConfirmation","setShowModalConfirmation","chipInPlayName","allChips","activateChip","deactivateChip","renderTransferChipAction","handlePlayClick","askConfirmation","managerChip","isBeforeManagerChipAvailable","managerDescription","chipDescriptions","getSortedChips","chipsByName","renderChipAction","StyledScoreboardPanel","Value","isError","isSuccess","ScoreboardPanel","ScoreboardPanelsWrap","ChipListWrap","ScoreboardPanels","ScoreboardWrap","ScoreboardPanelWrap","Basic","currencyDivisor","isBudgetExceeded","isNeedElements","proposedElements","UnlimitedTransfers","Cost","activeChipName","freeTransfersRemaining","transferCosts","freeTranfersRemainingValue","budgetValue","transferCoststValue","playersSelectedValue","Scoreboard","scoreboard","ElementType","ElementTypeShort","StyledPitchPlaceholder","PitchPlaceholder","SvgRemove","FixtureForElement","ElementMultiPoints","ElementPoints","fixturesForEventByTeam","elementEventData","explainList","totalPoints","ElementFixtures","allFixturesStarted","fragments","unshift","MultiPoints","$allStarted","ElementSingleFixture","ElementMultiFixtures","FixturesForElement","elementEventOpponents","ElementFixtureBar","elementFixtures","isLive","isFinished","RemoveIcon","Cross","Remove","SquadPitchElement","actionMe","elementValue","isRemoved","SquadPitchUnit","showSidebar","savedPicks","showElementType","CreateSquad","listTable","submitDialog","positionForMenu","setPositionForMenu","canUserAutocomplete","canUserReset","autoPick","typesByPosition","averageCostByType","elementsOwned","failures","typesNeeded","avgToSpend","weightingFactor","invalidTeams","shuffle","log","handleShowMenuForElement","handleHideMenuForElement","handleReset","renderElementValueForPosition","latestAction","canEnter","sharedPitchElementProps","submitButtonText","positionsByElementType","getPositionsByElementType","defaultPositionsByElementType","positions","renderElementDialog","sharedSquadListTableProps","renderMenu","handleRemoveElement","handleRestoreElement","handleShowElementType","connector","elementTypeFilterOptions","teamFilterOptions","ElementFilter","ElementSort","getSortOptions","handleSortChange","sortOptions","HiddenLabel","PaginatorButton","Paginator","totalPages","StyledElementListRow","isProposed","ElementListRow","Form","ElementsShown","ElementTypeButtonWrap","ElementTypeButton","ElementListStatus","ElementListPrice","ElementListStat","ElementList","elementForMenu","updateControls","handleSearchChange","handleMaxCostChange","paginateAndGroup","start","_this$props$activeChi","proposedElement","proposedElementsById","roomInSquad","alert","hideRef","hideSidebar","mapDispatchToProps","PusherWrap","Pusher","isSidebarVisible","PusherSecondary","SquadBase","headTags","setIsSidebarVisible","showRef","createRef","handleShowSidebar","onTransitionEnd","ml","handleHideSidebar","FilterElTypeButton","SquadListStatus","SquadListElement","SquadListCost","SquadListSelected","SquadListPoints","SquadListFixture","SquadListRow","fixturesForNextEventByTeam","opp","SquadSelection","listTableProps","SquadListTable","StatusIcon","freeTransfers","transferChipName","showTransferChipWarning","transfer","SquadListPrice","SquadListForm","TransfersListRow","elementState","Transfers","TransfersListTable","ConfirmTransfersDialog","NewsStatus","NewsElement","NewsNews","NewsCell","News","SectionHeading","StyledNewsItem","NewsItemImg","NewsItemBody","NewsItem","StyledNewsList","NewsList","NewsContentList","setNews","StatsStatus","StatsElement","StatsCost","StatsSel","StatsForm","StatsPts","StatsExtra","Statistics","defaultStats","paginate","extraStat","statDetail","String","StatsTable","dataById","ExplainHeading","ExplainScore","ElementExplainDialog","renderExplainFixture","elementsDataById","elementData","_circle","SvgCaptain","_path3","SvgSub","SvgViceCaptain","StyledSub","Sub","sharedCaptainStyles","$chipName","StyledCaptain","Captain","StyledViceCaptain","ViceCaptain","TeamPitchElement","renderDreamTeam","renderPickValue","FiveFourOne","generateProps","FiveThreeTwo","FiveTwoThree","FourFiveOne","FourThreeThree","FourFourTwo","ThreeFourThree","ThreeFiveTwo","substitute","formation","sharedTeamPitchElementProps","formations","valueForPlayerElement","initProps","DTScoreboard","DTScoreboardPanel","DTScoreboardHeading","DTScoreboardValue","TopPlayer","TopPlayerData","DreamTeam","NotFound","topPlayer","top_player","valueForPlayedElement","PitchFormation","DreamTeamTable","SvgReload","BaseDreamTeam","StyledBench","BenchInner","Bench","BenchUnitHeading","BenchUnit","EntryEventRow","StyledManagerUnit","TechnicalArea","ManagerUnit","PointsScoreboard","ScoreboardPrimary","PrimaryPanel","chipPlayed","PrimaryHeading","PrimaryValue","ReloadButton","Reload","BaseReload","ReloadButtonText","ScoreboardSecondary","SecondaryPanel","SecondaryItem","SecondaryHeading","SecondaryLinkHeading","SecondaryValue","TransfersValue","TransfersCost","DreamTeamLinkIcon","DreamTeamWrap","ChipStatus","EntryEvent","pickForMenu","handleShowMenuForPickElement","entryData","handleHideMenuForPick","in_dreamteam","fetchDataAndFixtures","active_chip","managerPick","entry_history","EntryEventTable","automatic_subs","Divider","MyTeamStatus","MyTeamCpt","MyTeamElement","MyTeamPos","MyTeamForm","MyTeamGW","MyTeamPts","MyTeamFix","MyTeamRow","SvgFplChallengeLogo","ChallengeLink","ModalContent","LinkWrap","Background","pattern2Mobile","pattern2Mobile2x","Content","ModalCopy","ChallengeLogo","FPLChallengeLogo","PlayChallengePanel","TeamSavedModal","DreamTeamLink","StyledGlass","MyTeam","changed","chipsChanged","valid","save","setPickForMenu","makeCaptain","makeViceCaptain","_renderPickValue","nextEventId","getBenchPickIndexes","MyTeamTable","handleSave","handleHideSaveModal","startMax","DialogButton","TransfersHistory","fetchLatestTransfers","transfersHistory","getLatestTransfers","fetchEventWinners","fetchPhaseWinners","byPhase","getWinnersByEvent","winners","getWinnersByPhase","WinnersWrap","Winners","handlePrizeEventChange","prizeEvent","handlePrizePhaseChange","prizePhase","finishedEvents","finishedPhases","refreshEventPrizes","refreshPhasePrizes","prevState","eventWinners","phaseWinners","entry_id","team_name","Help","Rules","Terms","PatchNotes","ReportName","WinnerDetails","OnRouteChangeWorker","OnRouteChange","Location","PlayerRoute","EntryRoute","Loading","Router","Create","Join","JoinPublic","AdminH2H","Invite","PlayerList","Prizes","Redirect","scrollTo","ArticleHeading","UpdatingArticle","UpdatingContent","updatingArticle","setUpdatingArticle","updatingPlaylist","setUpdatingPlaylist","setExternalNews","updatingArticleData","updatingPlaylistData","items","getOptaCodeFromTags","_article$tags","OptaCodeTagsArray","OptaCodeTagLabel","buildTeamsArray","relatedArticles","externalArticle","unavailable","UpdatingWrapper","HomeOrHelp","renderError","ServerError","ConfirmBtnWrapper","AutoJoinDialog","getAutoJoinCode","joinedPrivateLeagueSuccess","getLeagueFromCode","confirmJoinLeague","getSize","innerHeight","innerWidth","outerHeight","outerWidth","useWindowSize","windowSize","setWindowSize","handleResize","arraysEqual","usePriorityNav","isRTL","childrenWidths","setWidths","visibleLinks","setVisibleLinks","nonVisibleLinks","setNonVisibleLinks","oldLinks","setLinks","measuredRef","screen","filteredIndexedElements","newVisibleLinks","newNonVisibleLinks","useDocumentEventHandler","handler","eventHandler","SvgMore","MoreButton","MoreIcon","BaseMoreIcon","Dropdown","nativeEvent","stopImmediatePropagation","useRouter","indicateExternal","LIStyled","ListItem","forwardRef","isDraft","getProps","isPartiallyCurrent","StyledNav","StyledUL","logoutNavLink","fplChallengeLink","podcastNavLink","_createElement","GameHeader","StyledPlayerComp","HeadlineLogo","App","bootstrapped","GlobalStyle","_ThemeProvider","Theme","Navigation","Routes","AppContainer","bootstrapApp","getBootstrapped","fetchEntryCupDetail","byEntryId","cupDetail","cup","idsFromSummary","cup_status","addRegions","fetchURL","byURL","last_fetched","getTime","enableAllPlugins","rootReducer","regions","urls","configureStore","initialState","middlewares","thunkMiddleware","enhancer","composeWithDevTools","applyMiddleware","createStore","hostname","dsn","environment","whitelistUrls","ignoreErrors","store","navigator","serviceWorker","ready","registration","unregister","staticRequest","dynamicRequest","staticData","meData","fromEntries","element_stats","game_settings","lastBootstrap","getBootstrapTime","timeNow","REFRESH_MINUTES","loading","times","browser","server"],"mappings":"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","file":"static/js/main.6ae4dae6.chunk.js","sourcesContent":["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 { 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 { 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 { 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","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 { 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","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSearch(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 14,\n height: 15,\n viewBox: \"0 0 14 15\",\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 fill: \"#FFF\",\n d: \"M23,21.426892 L19.2716455,17.6969948 C19.8584878,16.8106243 20.1997648,15.7497557 20.1997648,14.6072129 C20.1997648,11.5125286 17.6927267,9.00445324 14.5998824,9.00445324 C11.5070381,9.00445324 9,11.5130889 9,14.6077732 C9,17.701337 11.5070381,20.2105329 14.5998824,20.2105329 C15.7412946,20.2105329 16.8028164,19.8680222 17.6883864,19.2814833 L21.4161809,23.0113805 L23,21.426892 Z M10.5866193,14.6083335 C10.5866193,12.3907612 12.3838013,10.5939562 14.5998964,10.5939562 C16.8165515,10.5939562 18.6137335,12.3907612 18.6137335,14.6083335 C18.6137335,16.8259058 16.8165515,18.6238314 14.5998964,18.6238314 C12.3838013,18.6238314 10.5866193,16.8259058 10.5866193,14.6083335 Z\",\n transform: \"translate(-9 -8.85)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearch);\nexport default __webpack_public_path__ + \"static/media/search.2e8788b1.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/select.c194fea2.svg\";","import { hideVisually, rgba, size } from \"polished\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport theme from \"../theme\";\nimport selectIcon from \"../img/icons/select.svg\";\nimport { ReactComponent as SearchIcon } from \"../img/icons/search.svg\";\nimport { VisuallyHidden } from \"./Utils\";\n\nexport const FieldWrap = styled.div`\n margin-bottom: ${theme.space[4]};\n`;\n\nconst InputWrap = styled.div`\n position: relative;\n\n ::after {\n content: \"\";\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n display: block;\n height: 1px;\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.lightPurple}\n );\n }\n`;\n\nconst fieldStyles = css`\n display: block;\n width: 100%;\n padding: 1.4rem ${({ theme }) => theme.space[2]};\n border: 0;\n border-radius: 2px 2px 0 0;\n background-color: #efefef;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 16px;\n`;\n\nconst FieldLabel = styled.span`\n display: inline-block;\n margin: 0 0.4rem 0.8rem 0;\n cursor: pointer;\n`;\n\nconst InlineFieldLabel = styled(FieldLabel)`\n display: inline-block;\n margin-right: ${({ theme }) => theme.space[2]};\n`;\n\nconst Hint = styled.span`\n display: inline-block;\n margin-bottom: ${theme.space[1]};\n color: #${theme.colors.darkGrey};\n font-size: 1.1rem;\n`;\n\nexport const Input = styled.input`\n ${fieldStyles}\n`;\n\nexport const SelectWrap = styled.div`\n position: relative;\n z-index: ${theme.zIndex.select.wrap};\n padding-bottom: ${({ theme }) => theme.space[2]};\n border-bottom: 1px solid ${theme.colors.lightGrey};\n\n :focus-within {\n outline: -webkit-focus-ring-color auto 5px;\n }\n\n ::after {\n content: \"\";\n background: url(${selectIcon}) no-repeat;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n width: 20px;\n ${size(12, 8)};\n background-size: contain;\n }\n`;\n\n// Unable to extend SelectWrap for some reason\nconst InlineSelectWrap = styled.div`\n position: relative;\n display: inline-block;\n z-index: ${theme.zIndex.select.wrap};\n\n :focus-within {\n outline: -webkit-focus-ring-color auto 5px;\n }\n\n ::after {\n content: \"\";\n background: url(${selectIcon}) no-repeat;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: 10px;\n width: 20px;\n ${size(12, 8)};\n background-size: contain;\n }\n`;\n\nexport const Select = styled.select`\n ${fieldStyles}\n position: relative;\n z-index: ${theme.zIndex.select.select};\n margin-top: -20px;\n padding: 20px 0 0;\n border: 0;\n border-radius: 0;\n background: none;\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.bold};\n appearance: none;\n cursor: pointer;\n\n :focus {\n outline: 0;\n }\n\n ::-ms-expand {\n display: none; /* [1] */\n }\n`;\n\nexport const Option = styled.option`\n font-family: ${({ theme }) => theme.fonts.regular};\n`;\n\nconst InlineSelect = styled.select`\n padding: ${({ theme }) =>\n `${theme.space[2]} 4rem ${theme.space[2]} ${theme.space[2]}`};\n border: 1px solid ${theme.colors.darkGrey};\n background: none;\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.bold};\n appearance: none;\n cursor: pointer;\n`;\n\nconst SearchWrap = styled.div`\n position: relative;\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.06)};\n`;\n\nconst SearchInput = styled.input`\n width: 100%;\n border: 0;\n border-radius: 4px;\n padding: ${({ theme }) =>\n `${theme.space[4]} 5.2rem ${theme.space[4]} ${theme.space[4]}`};\n background-color: white;\n font-size: inherit;\n /* stylelint-disable property-no-vendor-prefix */\n -webkit-appearance: textfield;\n\n ::placeholder {\n color: ${theme.colors.darkGrey};\n }\n`;\n\nconst SearchIconWrap = styled.span`\n ${size(32)}\n position: absolute;\n top: 50%;\n right: ${(props) => props.theme.space[2]};\n padding: 0.9rem;\n border-radius: 50%;\n background-color: ${({ theme }) => theme.colors.primary};\n transform: translateY(-50%);\n box-shadow: 0 2px 4px 0 ${rgba(\"black\", 0.25)};\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\nconst Textarea = styled.textarea`\n width: 100%;\n`;\n\ninterface ILabelHintProps {\n hint?: React.ReactNode;\n id: string;\n label: React.ReactNode;\n}\n\ninterface IFieldProps extends ILabelHintProps {\n name?: string;\n placeholder?: string;\n value?: string | number;\n}\n\ninterface IInputProps extends IFieldProps {\n maxLength?: number;\n onChange?: (e: React.ChangeEvent) => void;\n type?: string;\n disabled?: boolean;\n readonly?: boolean;\n}\n\nexport const LabelHint: React.FC = ({ id, label, hint }) => (\n \n);\n\nconst InlineLabel: React.FC = ({ id, label }) => (\n \n);\n\nexport const InputField: React.FC = ({\n hint,\n id,\n label,\n maxLength,\n name,\n onChange,\n type,\n value,\n disabled = false,\n readonly = false,\n}) => (\n <>\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 placeholder,\n value,\n ...rest\n}) => (\n <>\n \n \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}) => (\n <>\n \n \n \n);\n\nconst Checkbox = styled.input`\n ${hideVisually()};\n\n :hover + span::before {\n border-color: ${(props) => props.theme.colors.darkGrey};\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.darkPink};\n background-image: url('data:image/svg+xml;utf8,');\n }\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: 1px solid ${theme.colors.darkGrey};\n background-repeat: no-repeat;\n background-size: contain;\n vertical-align: middle;\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}\n\nexport const CheckboxField: React.SFC = ({\n id,\n onChange,\n label,\n checked,\n}) => (\n
\n \n
\n);\n\nCheckboxField.defaultProps = {\n checked: false,\n};\n\nconst 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.darkGrey};\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.darkPink};\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\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 onChange?: (e: React.ChangeEvent) => void;\n}\n\nexport const SelectField: React.FC = ({\n children,\n hint,\n id,\n label,\n onChange,\n value,\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 ITextareaProps extends IFieldProps {\n onChange?: (e: React.ChangeEvent) => void;\n rows: number;\n}\n\nexport const TextareaField: React.FC = ({\n hint,\n id,\n label,\n name,\n onChange,\n rows,\n value,\n}) => (\n <>\n \n \n \n);\n","import { rgba } from \"polished\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport { ReactComponent as ChevronDown } from \"../img/icons/chevron-down.svg\";\nimport Badge from \"./Badge\";\nimport Copy from \"./Copy\";\n\nconst StyledCollapsible = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n box-shadow: 0 1px 4px 0 ${rgba(\"black\", 0.08)};\n\n > h5 {\n margin-bottom: 0;\n }\n`;\n\nconst BadgeWrapper = styled.div`\n display: inline-block;\n`;\n\nconst IconWrap = styled.div`\n align-self: stretch;\n padding: ${({ theme }) => theme.space[3]} 2.5rem;\n background-color: #f8f8f8;\n`;\n\ninterface IButtonProps {\n team?: boolean;\n}\n\nconst Button = styled.button`\n display: flex;\n align-items: center;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: white;\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.4rem;\n text-align: left;\n cursor: pointer;\n\n svg {\n fill: ${({ theme }) => theme.colors.primary};\n }\n\n &[aria-expanded=\"true\"] {\n border-bottom: 1px solid ${({ theme }) => theme.colors.primary};\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\n ${IconWrap} {\n background-color: ${({ theme }) => theme.colors.primary};\n }\n\n svg {\n transform: rotate(180deg);\n fill: white;\n }\n }\n\n ${({ team }) =>\n team === true &&\n css`\n display: flex;\n justify-content: space-between;\n flex-direction: row-reverse;\n `}\n`;\n\nconst HeadingText = styled.span`\n padding: ${({ theme }) => `${theme.space[2]} ${theme.space[3]}`};\n`;\n\nconst CollapsibleContent = styled.div`\n padding: ${({ theme }) => theme.space[2]};\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 initialOpen?: boolean;\n team?: ITeam;\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 if (this.props.initialOpen) {\n this.setState({ open: true });\n }\n }\n\n render() {\n const { children, headingText, team } = this.props;\n return (\n \n
\n \n \n \n \n {team ? (\n
\n \n \n \n {headingText}\n
\n ) : (\n {headingText}\n )}\n \n
\n \n {children}\n \n
\n );\n }\n}\n\nexport default Collapsible;\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","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronDown(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 7,\n viewBox: \"0 0 10 7\",\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: \"M19.869639,30.8026715 L17.4536484,28.5030237 L22.2917217,23.8979291 L22.8726851,24.450916 C23.1922545,24.7550965 23.4536484,25.0096557 23.4536484,25.0164854 C23.4536484,25.0233168 22.6324398,25.810731 21.6287942,26.7660734 L19.80394,28.5030513 L21.6287942,30.2400291 C22.6324592,31.1953624 23.4536484,31.9828058 23.4536484,31.9896172 C23.4536484,32.0018416 22.3041575,33.1020709 22.2912962,33.1020709 C22.2878966,33.1020709 21.1976988,32.067303 19.8688267,30.802423 L19.869639,30.8026715 Z\",\n transform: \"rotate(-90 .454 23.5)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronDown);\nexport default __webpack_public_path__ + \"static/media/chevron-down.84725f6c.svg\";\nexport { ForwardRef as ReactComponent };","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 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 getRecoveryError = (state: RootState) =>\n state.player.recoveryError;\n\nexport const getRecoveryStatus = (state: RootState) =>\n state.player.recoveryStatus;\n","import { rgba } from \"polished\";\nimport * as React from \"react\";\nimport { Button as Base } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\n\nexport const StyledButton = styled(Base)`\n display: block;\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n border: 0;\n border-radius: ${({ theme }) => theme.radii[0]};\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\n color: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n box-shadow: 1px 1px 10px -4px ${rgba(\"black\", 0.5)};\n cursor: pointer;\n\n ${(props) =>\n props.fullwidth &&\n css`\n width: 100%;\n `}\n\n ${(props) =>\n props.variant === \"secondary\" &&\n css`\n background: ${({ theme }) => theme.colors.lightPurple};\n color: white;\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.06)};\n `}\n\n ${(props) =>\n props.variant === \"tertiary\" &&\n css`\n background: ${({ theme }) => theme.colors.lightGrey};\n color: black;\n font-family: ${({ theme }) => theme.fonts.regular};\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.06)};\n `}\n\n ${(props) =>\n props.variant === \"light\" &&\n css`\n background: ${({ theme }) => theme.colors.lightGrey};\n color: black;\n font-family: ${({ theme }) => theme.fonts.regular};\n `}\n\n ${({ disabled, theme }) =>\n disabled &&\n css`\n background-color: #edf1f9;\n background-image: none;\n color: ${theme.colors.darkGrey};\n cursor: auto;\n `}\n`;\n\nexport interface IButtonStyledProps {\n variant?: \"primary\" | \"secondary\" | \"tertiary\" | \"light\";\n disabled?: boolean;\n fullwidth?: string;\n}\n\ninterface IProps {\n onClick?: () => void;\n type?: \"button\" | \"submit\" | \"reset\";\n width?: number;\n}\n\ntype Props = IButtonStyledProps & IProps;\n\nconst Button: React.FC = ({\n children,\n variant = \"primary\",\n type = \"button\",\n fullwidth,\n ...rest\n}) => (\n \n {children}\n \n);\n\nexport default Button;\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 { ellipsis, hideVisually, rgba } from \"polished\";\nimport React from \"react\";\nimport styled, { css } 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 font-family: ${({ theme }) => theme.fonts.bold};\n line-height: 1;\n cursor: pointer;\n`;\n\nexport const VisuallyHidden = styled.span`\n ${hideVisually}\n`;\n\nexport const textGradient = css`\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.blue},\n ${({ theme }) => theme.colors.fantasy}\n );\n background-clip: text;\n -webkit-background-clip: text;\n -moz-background-clip: text;\n -webkit-text-fill-color: transparent;\n -moz-text-fill-color: transparent;\n`;\n\nexport const gradientBorder = css`\n position: relative;\n\n ::before {\n content: \"\";\n position: absolute;\n height: 1px;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n background-image: linear-gradient(\n to right,\n ${rgba(\"white\", 0)} 0%,\n ${rgba(\"white\", 0.5)} 50%,\n ${rgba(\"white\", 0)} 100%\n );\n }\n`;\n\nexport const MatchValueBase = css`\n padding: ${(props) => props.theme.space[1]};\n border-radius: 2px;\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: ${(props) => props.theme.fontSizes[0]};\n text-align: center;\n line-height: 1;\n`;\n\nexport const NewTabCopy: React.FC = () => (\n Opens in new tab\n);\n","var _polygon;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgClose(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\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 fillRule: \"evenodd\",\n points: \"16 13.56 10.441 8 16 2.44 13.56 0 8.001 5.56 2.441 0 .001 2.44 5.561 8 0 13.56 2.44 16 8.001 10.44 13.56 16\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClose);\nexport default __webpack_public_path__ + \"static/media/close.2cb37195.svg\";\nexport { ForwardRef as ReactComponent };","import { hideVisually, hiDPI, rgba, size } 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 pattern2Crop184 from \"../img/pattern/pattern-2-crop-184.png\";\nimport pattern2Crop90 from \"../img/pattern/pattern-2-crop-90.png\";\nimport \"./OverflowScrolling.css\";\n\nexport const CloseButtonWrap = styled.div`\n position: absolute;\n right: ${(props) => props.theme.space[2]};\n top: ${(props) => props.theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n right: ${(props) => props.theme.space[4]};\n top: ${(props) => props.theme.space[3]};\n }\n`;\n\nexport const CloseButton = styled.button`\n padding: ${(props) => `${props.theme.space[2]} ${props.theme.space[3]}`};\n border: 0;\n border-radius: ${(props) => props.theme.radii[2]};\n background-color: ${rgba(\"white\", 0.3)};\n line-height: 0;\n cursor: pointer;\n`;\n\nconst CloseLabel = styled.span`\n ${hideVisually}\n`;\n\nexport const CloseIcon = styled(Close)`\n ${size(12)}\n fill: ${({ theme }) => theme.colors.primary};\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<{ isElementDialog: boolean }>`\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: ${({ theme }) => theme.radii[1]};\n /* Ugly hack to deal with sub-pixel rounding in chrome bug causing blurry content with transform */\n width: 640px;\n color: currentColor;\n box-shadow: 0 12px 24px 0 ${rgba(\"black\", 0.25)};\n\n background-repeat: no-repeat;\n\n background-position: right top, 0, 0;\n background-image: url(${pattern2Crop90}),\n linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 10px,\n rgba(255, 255, 255, 0.2) 30px,\n white 60px\n ),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n\n ${hiDPI(2)} {\n background-image: url(${pattern2Crop184}),\n linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 20px,\n rgba(255, 255, 255, 0.2) 45px,\n white 70px\n ),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-size: 90px 60px, auto, auto;\n }\n\n ${(props) =>\n props.isElementDialog &&\n css`\n width: 1008px;\n background-image: none;\n\n ${hiDPI(2)} {\n background-image: none;\n }\n `}\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\n background-image: linear-gradient(\n ${rgba(\"white\", 0.3)},\n ${rgba(\"white\", 0.8)}\n );\n border-radius: 6px;\n`;\n\nconst StyledHeader = styled.div`\n position: relative;\n\n ${(props) =>\n props.variant === \"light\" &&\n css`\n background-color: transparent;\n color: ${({ theme }) => theme.colors.primary};\n `};\n`;\n\nconst DialogHeading = styled.h2`\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding-top: 2.4rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[4]};\n text-align: center;\n`;\n\nexport const DialogButtonItem = styled.li`\n margin-bottom: ${({ theme }) => theme.space[2]};\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 close\n \n \n \n \n);\n\nconst isVisible = (elem: HTMLElement) =>\n !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n\ninterface IDialogBodyProps {\n isPadded?: boolean;\n}\n\nconst StyledDialogBody = styled.div`\n max-height: calc(90vh - 61px);\n overflow-y: auto;\n ${(props) =>\n props.isPadded &&\n css`\n margin: ${props.theme.space[4]} ${props.theme.space[3]};\n `};\n`;\n\nconst DialogBody: React.FC = ({ 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 isElementDialog?: boolean;\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 === \"Tab\") {\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 const { isElementDialog = false } = this.props;\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 { rgba } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nconst Title = styled.h2`\n /* Consider moving margins to Copy component */\n margin: ${({ theme }) => theme.space[3]} 0;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[4]};\n\n @media (max-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: relative;\n padding-bottom: ${({ theme }) => theme.space[3]};\n margin-bottom: ${({ theme }) => theme.space[4]};\n\n ::before {\n content: \"\";\n position: absolute;\n height: 1px;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n background-image: linear-gradient(\n to right,\n ${rgba(\"white\", 0)} 0%,\n #efefef 50%,\n ${rgba(\"white\", 0)} 100%\n );\n }\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 2.5rem;\n }\n`;\n\nexport default Title;\n","import { createAsyncAction, deprecated } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport { ILeagueEntry } from \"../entries/types\";\nimport {\n IClassicStandingsAPIData,\n IEntryInLeague,\n IH2HMatchesData,\n IH2HStandingsAPIData,\n ILeague,\n ILeagueAdmin,\n ILeagueCode,\n ILeagueCupStatus,\n IRenewableLeague,\n} from \"./types\";\n\nconst createAction = deprecated.createAction;\n\n// Action Creators\nexport const createClassicLeague = createAsyncAction(\n \"CREATE_CLASSIC_LEAGUE_START\",\n \"CREATE_CLASSIC_LEAGUE_SUCCESS\",\n \"CREATE_CLASSIC_LEAGUE_FAILURE\"\n)();\n\nexport const createH2HLeague = createAsyncAction(\n \"CREATE_H2H_LEAGUE_START\",\n \"CREATE_H2H_LEAGUE_SUCCESS\",\n \"CREATE_H2H_LEAGUE_FAILURE\"\n)();\n\nexport const joinPrivateLeague = createAsyncAction(\n \"JOIN_PRIVATE_LEAGUE_START\",\n \"JOIN_PRIVATE_LEAGUE_SUCCESS\",\n \"JOIN_PRIVATE_LEAGUE_FAILURE\"\n)();\n\nexport const joinPublicLeague = createAsyncAction(\n \"JOIN_PUBLIC_LEAGUE_START\",\n \"JOIN_PUBLIC_LEAGUE_SUCCESS\",\n \"JOIN_PUBLIC_LEAGUE_FAILURE\"\n)();\n\nexport const fetchClassicLeagueStandings = createAsyncAction(\n \"FETCH_CLASSIC_LEAGUE_STANDINGS_START\",\n \"FETCH_CLASSIC_LEAGUE_STANDINGS_SUCCESS\",\n \"FETCH_CLASSIC_LEAGUE_STANDINGS_FAILURE\"\n)();\n\nexport const fetchH2HLeagueStandings = createAsyncAction(\n \"FETCH_H2H_LEAGUE_STANDINGS_START\",\n \"FETCH_H2H_LEAGUE_STANDINGS_SUCCESS\",\n \"FETCH_H2H_LEAGUE_STANDINGS_FAILURE\"\n)();\n\nexport const fetchH2HLeagueMatches = createAsyncAction(\n \"FETCH_H2H_LEAGUE_MATCHES_START\",\n \"FETCH_H2H_LEAGUE_MATCHES_SUCCESS\",\n \"FETCH_H2H_LEAGUE_MATCHES_FAILURE\"\n)<\n void,\n { entryId: number; eventId: number; leagueId: number; data: IH2HMatchesData },\n IError\n>();\n\nexport const fetchClassicLeagueForAdmin = createAsyncAction(\n \"FETCH_CLASSIC_LEAGUE_FOR_ADMIN_START\",\n \"FETCH_CLASSIC_LEAGUE_FOR_ADMIN_SUCCESS\",\n \"FETCH_CLASSIC_LEAGUE_FOR_ADMIN_FAILURE\"\n)();\n\nexport const fetchH2HLeagueForAdmin = createAsyncAction(\n \"FETCH_H2H_LEAGUE_FOR_ADMIN_START\",\n \"FETCH_H2H_LEAGUE_FOR_ADMIN_SUCCESS\",\n \"FETCH_H2H_LEAGUE_FOR_ADMIN_FAILURE\"\n)();\n\nexport const updateClassicLeague = createAsyncAction(\n \"UPDATE_CLASSIC_LEAGUE_START\",\n \"UPDATE_CLASSIC_LEAGUE_SUCCESS\",\n \"UPDATE_CLASSIC_LEAGUE_FAILURE\"\n)();\n\nexport const updateH2HLeague = createAsyncAction(\n \"UPDATE_H2H_LEAGUE_START\",\n \"UPDATE_H2H_LEAGUE_SUCCESS\",\n \"UPDATE_H2H_LEAGUE_FAILURE\"\n)();\n\nexport const deleteLeague = createAsyncAction(\n \"DELETE_LEAGUE_START\",\n \"DELETE_LEAGUE_SUCCESS\",\n \"DELETE_LEAGUE_FAILURE\"\n)();\n\nexport const banLeagueEntry = createAsyncAction(\n \"BAN_LEAGUE_ENTRY_START\",\n \"BAN_LEAGUE_ENTRY_SUCCESS\",\n \"BAN_LEAGUE_ENTRY_FAILURE\"\n)();\n\nexport const unbanLeagueEntry = createAsyncAction(\n \"UNBAN_LEAGUE_ENTRY_START\",\n \"UNBAN_LEAGUE_ENTRY_SUCCESS\",\n \"UNBAN_LEAGUE_ENTRY_FAILURE\"\n)();\n\nexport const fetchLeagueCode = createAsyncAction(\n \"FETCH_LEAGUE_CODE_START\",\n \"FETCH_LEAGUE_CODE_SUCCESS\",\n \"FETCH_LEAGUE_CODE_FAILURE\"\n)();\n\nexport const regenerateLeagueCode = createAsyncAction(\n \"REGENERATE_LEAGUE_CODE_START\",\n \"REGENERATE_LEAGUE_CODE_SUCCESS\",\n \"REGENERATE_LEAGUE_CODE_FAILURE\"\n)();\n\nexport const leaveLeague = createAsyncAction(\n \"LEAVE_LEAGUE_START\",\n \"LEAVE_LEAGUE_SUCCESS\",\n \"LEAVE_LEAGUE_FAILURE\"\n)();\n\nexport const fetchRenewableLeagues = createAsyncAction(\n \"FETCH_RENEWABLE_LEAGUES_START\",\n \"FETCH_RENEWABLE_LEAGUES_SUCCESS\",\n \"FETCH_RENEWABLE_LEAGUES_FAILURE\"\n)();\n\nexport const renewRenewableLeague = createAsyncAction(\n \"RENEW_RENEWABLE_LEAGUE_START\",\n \"RENEW_RENEWABLE_LEAGUE_SUCCESS\",\n \"RENEW_RENEWABLE_LEAGUE_FAILURE\"\n)();\n\nexport const deleteRenewableLeague = createAsyncAction(\n \"DELETE_RENEWABLE_LEAGUE_START\",\n \"DELETE_RENEWABLE_LEAGUE_SUCCESS\",\n \"DELETE_RENEWABLE_LEAGUE_FAILURE\"\n)();\n\nexport const checkLeagueCode = createAsyncAction(\n \"CHECK_LEAGUE_CODE_START\",\n \"CHECK_LEAGUE_CODE_SUCCESS\",\n \"CHECK_LEAGUE_CODE_FAILURE\"\n)();\n\nexport const setAutoJoinCode = createAction(\n \"SET_AUTO_JOIN_CODE\",\n (resolve) => (code: string) => resolve(code)\n);\n\nexport const clearAutoJoinCode = createAction(\n \"CLEAR_AUTO_JOIN_CODE\",\n (resolve) => () => resolve()\n);\n\nexport const fetchLeagueEntries = createAsyncAction(\n \"FETCH_LEAGUE_ENTRIES_START\",\n \"FETCH_LEAGUE_ENTRIES_SUCCESS\",\n \"FETCH_LEAGUE_ENTRIES_FAILURE\"\n)();\n\nexport const fetchLeagueCupStatus = createAsyncAction(\n \"FETCH_LEAGUE_CUP_STATUS_START\",\n \"FETCH_LEAGUE_CUP_STATUS_SUCCESS\",\n \"FETCH_LEAGUE_CUP_STATUS_FAILURE\"\n)();\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport {\n getElementsById,\n getElementsEventDataById,\n getFormation,\n} from \"../elements/reducers\";\nimport { getSettings } from \"../game/reducers\";\nimport {\n deleteLeague,\n joinPrivateLeague,\n leaveLeague,\n} from \"../leagues/actions\";\nimport { getTeamsById } from \"../teams/reducers\";\nimport * as actions from \"./actions\";\nimport { IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntrySummary.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data,\n };\n case getType(joinPrivateLeague.success): {\n const newLeague = action.payload.data;\n const leaguesKey = newLeague.scoring === \"c\" ? \"classic\" : \"h2h\";\n const entry = state[action.payload.entry];\n\n if (entry) {\n const isAlreadyInLeague = entry.leagues[leaguesKey].some(\n (league) => league.id === newLeague.id\n );\n\n if (!isAlreadyInLeague) {\n const updatedEntry = {\n ...entry,\n leagues: {\n ...entry.leagues,\n [leaguesKey]: entry.leagues[leaguesKey].concat([newLeague]),\n },\n };\n\n return {\n ...state,\n [action.payload.entry]: updatedEntry,\n };\n }\n }\n return state;\n }\n case getType(deleteLeague.success):\n case getType(leaveLeague.success): {\n const newState = { ...state };\n const entry = newState[action.payload.entry];\n if (entry) {\n entry.leagues.classic = entry.leagues.classic.filter(\n (le) => le.id !== action.payload.league\n );\n entry.leagues.h2h = entry.leagues.h2h.filter(\n (le) => le.id !== action.payload.league\n );\n }\n return newState;\n }\n default:\n return state;\n }\n },\n eventHistoryById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryHistory.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.current,\n };\n default:\n return state;\n }\n },\n seasonHistoryById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryHistory.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.past,\n };\n default:\n return state;\n }\n },\n chipHistoryById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryHistory.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data.chips,\n };\n default:\n return state;\n }\n },\n eventPicksById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryEventPicks.success):\n return {\n ...state,\n [action.payload.entry]: {\n ...state[action.payload.entry],\n [action.payload.event]: action.payload.data,\n },\n };\n default:\n return state;\n }\n },\n transfersById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryTransfers.success):\n return {\n ...state,\n [action.payload.id]: action.payload.data,\n };\n default:\n return state;\n }\n },\n phaseStandingsById: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.fetchEntryPhaseStandings.success):\n return {\n ...state,\n [action.payload.entry]: {\n ...state[action.payload.entry],\n [action.payload.phase]: action.payload.data,\n },\n };\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getEntry = (state: RootState, entryId: number) =>\n state.entries.byId[entryId] || null;\n\nexport const getEntryEventHistory = (state: RootState, entryId: number) =>\n state.entries.eventHistoryById[entryId] || [];\n\nexport const getEntrySeasonHistory = (state: RootState, entryId: number) =>\n state.entries.seasonHistoryById[entryId] || [];\n\nexport const getEntryChipHistory = (state: RootState, entryId: number) =>\n state.entries.chipHistoryById[entryId] || [];\n\nexport const getEntryEventPicks = (\n state: RootState,\n entryId: number,\n eventId: number\n) => {\n if (\n !state.entries.eventPicksById[entryId] ||\n !state.entries.eventPicksById[entryId][eventId]\n ) {\n return null;\n }\n return state.entries.eventPicksById[entryId][eventId];\n};\n\nexport const getEntryEventPoints = (\n state: RootState,\n entryId: number,\n eventId: number\n) => {\n const data = getEntryEventPicks(state, entryId, eventId);\n const elementsEventDataById = getElementsEventDataById(state, eventId);\n if (!data || !elementsEventDataById) {\n return 0;\n }\n return data.picks.reduce(\n (total, p) =>\n total +\n elementsEventDataById[p.element].stats.total_points * p.multiplier,\n 0\n );\n};\n\nexport const getEntryEventFormation = (\n state: RootState,\n entryId: number,\n eventId: number\n) => {\n const data = getEntryEventPicks(state, entryId, eventId);\n const elementsById = getElementsById(state);\n const settings = getSettings(state);\n if (!data || !elementsById || !settings) {\n return \"\";\n }\n return getFormation(\n data.picks\n .slice(0, settings.squad_squadplay)\n .map((p) => elementsById[p.element])\n );\n};\n\nexport const getPrivateClassicLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter((l) => l.league_type === \"x\")\n : [];\n};\n\nexport const getPrivateClassicCupLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter(\n (l) => l.league_type === \"x\" && l.has_cup === true\n )\n : [];\n};\n\nexport const getPrivateH2HLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry ? entry.leagues.h2h.filter((l) => l.league_type === \"x\") : [];\n};\n\nexport const getPublicClassicLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter((l) => l.league_type === \"c\")\n : [];\n};\n\nexport const getPublicClassicCupLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter(\n (l) => l.league_type === \"c\" && l.has_cup === true\n )\n : [];\n};\n\nexport const getPublicH2HLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry ? entry.leagues.h2h.filter((l) => l.league_type === \"c\") : [];\n};\n\nexport const getSystemClassicLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter((l) => l.league_type === \"s\")\n : [];\n};\n\nexport const getSystemClassicCupLeaguesForEntry = (\n state: RootState,\n entryId: number\n) => {\n const entry = getEntry(state, entryId);\n return entry\n ? entry.leagues.classic.filter(\n (l) => l.league_type === \"s\" && l.has_cup === true\n )\n : [];\n};\n\nexport const getLeagueForEntry = (\n state: RootState,\n entryId: number,\n leagueId: number\n) => {\n const entry = getEntry(state, entryId);\n if (entry) {\n const classic = entry.leagues.classic.filter((l) => l.id === leagueId);\n if (classic.length) {\n return classic[0];\n }\n const h2h = entry.leagues.h2h.filter((l) => l.id === leagueId);\n if (h2h.length) {\n return h2h[0];\n }\n }\n return null;\n};\n\nexport const getCupMatchesByLeagueId = (state: RootState, entryId: number) => {\n const entry = getEntry(state, entryId);\n if (entry) {\n const cupMatches = entry.leagues.cup_matches;\n if (cupMatches.length > 0) {\n return cupMatches.reduce(\n (memo, match) => ({ ...memo, [match.league]: match }),\n {}\n );\n }\n return null;\n }\n return null;\n};\n\nexport const getTransfersForEntry = (state: RootState, entryId: number) =>\n state.entries.transfersById[entryId] || [];\n\nexport const getFanLeagueDetails = (state: RootState, entryId: number) => {\n const fanLeagueMatch = /^team-(\\d+)$/;\n const teamsById = getTeamsById(state);\n const systemClassicLeagues = getSystemClassicLeaguesForEntry(state, entryId);\n\n // Please note the \"!\" non-null assertion operator on the filter\n const fanLeagues = systemClassicLeagues.filter((l) =>\n l.short_name!.match(fanLeagueMatch)\n );\n\n if (fanLeagues.length) {\n return {\n league: fanLeagues[0],\n team: teamsById[fanLeagues[0].short_name!.match(fanLeagueMatch)![1]],\n };\n }\n\n return null;\n};\n\nexport const getPhaseStandingsForEntry = (state: RootState, entryId: number) =>\n state.entries.phaseStandingsById[entryId];\n\nexport const getPhaseStandingsForEntryPhase = (\n state: RootState,\n entryId: number,\n phaseId: number\n) => state.entries.phaseStandingsById[entryId]?.[phaseId];\n\nexport const getPhaseStandingsForEntryPhaseLeague = (\n state: RootState,\n entryId: number,\n phaseId: number,\n leagueId: number\n) =>\n state.entries.phaseStandingsById[entryId]?.[phaseId]?.find(\n (ps) => ps.league_id === leagueId\n );\n","import { 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\n th,\n td {\n padding: 1rem;\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGrey};\n font-size: 1.1rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n font-size: 1.3rem;\n }\n }\n\n thead th {\n padding: 0.6rem 1rem;\n color: ${({ theme }) => theme.colors.darkGrey};\n font-size: 1rem;\n }\n\n thead,\n tbody,\n tfoot {\n th {\n text-align: start;\n }\n }\n\n tfoot td {\n font-weight: ${({ theme }) => theme.fonts.bold};\n }\n`;\n\nexport default Table;\n","import styled from \"styled-components/macro\";\nimport { StyledButtonLink } from \"./ButtonLink\";\nimport { LinkStyles } from \"./Link\";\n\nconst Copy = styled.div`\n margin: 0 ${({ theme }) => theme.space[2]};\n h3,\n h4,\n h5,\n p,\n ul,\n ol,\n table {\n margin-bottom: ${({ theme }) => theme.space[2]};\n }\n\n h6 {\n margin-bottom: ${({ theme }) => theme.space[1]};\n }\n\n ul,\n ol {\n padding-left: 4rem;\n }\n\n ul li {\n list-style-type: disc;\n }\n\n ol li {\n list-style-type: decimal;\n }\n\n li {\n line-height: 1.6;\n }\n\n a {\n ${LinkStyles}\n }\n\n /* Turn off underline on ButtonLinks */\n ${StyledButtonLink}:hover::after {\n height: 0;\n }\n`;\n\nexport default Copy;\n","import React from \"react\";\nimport { SponsorValues } from \"../EntryUpdate\";\n\ntype Props = {\n sponsorLogo: SponsorValues;\n};\n\nconst Logos: React.FunctionComponent = ({ sponsorLogo }) => {\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Logos;\n","import React from \"react\";\nimport { ShirtValues } from \"../EntryUpdate\";\n\nconst style8 = {\n fill: \"#94948d\",\n};\n\ntype Props = {\n shirtStyle: ShirtValues;\n shirtColor: string;\n shirtStyleColor: string;\n sleeveColor: string;\n};\n\nconst Shirt: React.FunctionComponent = ({\n shirtStyle,\n shirtColor,\n sleeveColor,\n shirtStyleColor,\n}) => {\n const stripesDisplay = shirtStyle === \"stripes\" ? \"inline\" : \"none\";\n const hoopsDisplay = shirtStyle === \"hoops\" ? \"inline\" : \"none\";\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\nexport default Shirt;\n","import React from \"react\";\nimport { SockValues } from \"../EntryUpdate\";\n\ntype Props = {\n sockColor: string;\n sockStyle: SockValues;\n sockStyleColor: string;\n};\n\nconst Socks: React.FunctionComponent = ({\n sockColor,\n sockStyle,\n sockStyleColor,\n}) => {\n const hoopsDisplay = sockStyle === \"hoops\" ? \"inline\" : \"none\";\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Socks;\n","import React from \"react\";\n\ntype Props = {\n shortColor: string;\n};\n\nconst shorts: React.FunctionComponent = ({ shortColor }) => (\n <>\n \n \n \n \n \n);\n\nexport default shorts;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\n\nimport Logos from \"./Logos\";\nimport Shirt from \"./Shirt\";\nimport Socks from \"./Socks\";\nimport Shorts from \"./Shorts\";\nimport { ShirtValues, SponsorValues, SockValues } from \"../EntryUpdate\";\n\ntype Props = {\n shirtColor: string;\n shirtStyle: ShirtValues;\n shirtStyleColor: string;\n shortColor: string;\n sleeveColor: string;\n sockColor: string;\n sockStyle: SockValues;\n sockStyleColor: string;\n sponsorLogo: SponsorValues;\n};\n\nconst SVGWrapper = styled.div`\n padding: 1rem;\n margin-bottom: 1rem;\n`;\n\nconst Kit: React.FunctionComponent = (props) => (\n \n \n Team Shirt, shorts and socks\n My team kit design\n \n \n \n \n \n \n);\n\nexport default Kit;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst AlertWrap = styled.div`\n margin: ${(props) => props.theme.space[2]};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-right: 0;\n margin-left: 0;\n }\n`;\n\nconst StyledAlert = styled.div`\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[4]}`};\n border-radius: 4px;\n background-color: ${({ theme }) => theme.colors.primary};\n color: ${({ theme }) => theme.colors.fantasy};\n text-align: ${(props) => props.textAlign};\n\n ${(props) =>\n props.isInline &&\n css`\n display: inline-block;\n `}\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 === \"info\" &&\n css`\n color: 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\nconst AlertText = styled.div`\n color: currentColor;\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 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 isInline?: boolean;\n type?: \"default\" | \"error\" | \"news\" | \"info\";\n textAlign?: \"left\" | \"center\";\n}\n\ninterface IProps extends IStyleProps {\n children: React.ReactNode;\n}\n\nconst Alert: React.FC = ({\n children,\n copnr = null,\n isInline = false,\n textAlign = \"center\",\n type = \"default\",\n}) => (\n \n \n {children}\n \n \n);\n\nexport default Alert;\n","import range from \"lodash/range\";\nimport { combineReducers } from \"redux\";\nimport { createSelector } from \"reselect\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"..\";\nimport * as actions from \"../bootstrap/actions\";\nimport { getOverrides } from \"../overrides/reducers\";\nimport { IElementType, IElementTypesBySquadPosition, IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addElementTypes):\n const newState: { [key: string]: IElementType } = {};\n action.payload.forEach((et) => {\n newState[et.id] = et;\n });\n return newState;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getElementTypesById = (\n state: RootState,\n eventId?: number,\n chipId?: number\n) => {\n const overrides = getOverrides(state, eventId, chipId);\n if (!overrides) {\n return state.elementTypes.byId;\n }\n return {\n ...state.elementTypes.byId,\n ...overrides.element_types.byId,\n };\n};\n\nexport const getElementTypes = createSelector(\n [\n (state: RootState, eventId?: number, chipId?: number) =>\n getElementTypesById(state, eventId, chipId),\n ],\n (elementTypesById) =>\n Object.keys(elementTypesById).map((et) => elementTypesById[et])\n);\n\nexport const getElementTypesBySquadPosition = createSelector(\n [\n (state: RootState, eventId?: number, chipId?: number) =>\n getElementTypes(state, eventId, chipId),\n ],\n (types) => {\n const data: IElementTypesBySquadPosition = {};\n\n // First pass to set types by position\n let count = 1;\n types.forEach((et) => {\n range(et.squad_select).forEach(() => {\n data[count] = { lastType: null, nextType: null, thisType: et };\n count++;\n });\n });\n\n // Second pass to set last and next types which help with rendering\n count = 1;\n types.forEach((et) => {\n range(et.squad_select).forEach(() => {\n if (data[count - 1]) {\n data[count].lastType = data[count - 1].thisType;\n }\n if (data[count + 1]) {\n data[count].nextType = data[count + 1].thisType;\n }\n count++;\n });\n });\n\n return data;\n }\n);\n","import { Link } from \"@reach/router\";\nimport { rgba } from \"polished\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { IButtonStyledProps } from \"./Button\";\n\nconst ButtonLinkStyles = css`\n display: inline-block;\n padding: ${({ theme }) => theme.space[3]};\n border: 0;\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.12)};\n border-radius: ${({ theme }) => theme.radii[0]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\n color: inherit;\n text-decoration: none;\n text-align: center;\n\n ${(props) =>\n props.fullwidth &&\n css`\n width: 100%;\n `}\n\n ${(props) =>\n props.variant === \"secondary\" &&\n css`\n background: ${({ theme }) => theme.colors.lightPurple};\n color: white;\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.06)};\n `}\n\n ${(props) =>\n props.variant === \"tertiary\" &&\n css`\n background: ${({ theme }) => theme.colors.lightGrey};\n color: black;\n font-family: ${({ theme }) => theme.fonts.regular};\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.06)};\n `}\n\n\t${(props) =>\n props.variant === \"light\" &&\n css`\n background: ${rgba(\"white\", 0.6)};\n color: ${({ theme }) => theme.colors.primary};\n `}\n`;\n\nexport const ButtonHyperlink = styled.a`\n ${ButtonLinkStyles}\n`;\n\nexport const StyledButtonLink = styled(Link)`\n ${ButtonLinkStyles}\n`;\n\ninterface IProps {\n onClick?: () => void;\n to: string;\n children: React.ReactNode;\n}\n\ntype Props = IProps & IButtonStyledProps;\n\nconst ButtonLink: React.FC = ({\n children,\n fullwidth,\n onClick,\n to,\n variant = \"primary\",\n}) => (\n \n {children}\n \n);\n\nexport default ButtonLink;\n","import styled, { css } from \"styled-components/macro\";\nimport { Link as RouterLink } from \"@reach/router\";\n\nexport const LinkStyles = css`\n position: relative;\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.bold};\n text-decoration: none;\n z-index: 1;\n\n :hover {\n text-decoration: none;\n\n ::after {\n content: \"\";\n position: absolute;\n bottom: 1px;\n right: 0;\n left: 0;\n height: 1px;\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightPurple},\n ${({ theme }) => theme.colors.lightBlue}\n );\n z-index: -1;\n }\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 { 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 React from \"react\";\nimport { Helmet } from \"react-helmet\";\n\ninterface IProps {\n description: string;\n title: string;\n}\n\nconst HelmetHead: React.FC = ({ description, title }) => {\n return (\n \n {title}\n \n \n );\n};\n\nexport default HelmetHead;\n","import { 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 { 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 * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { ITeam } from \"../core/store/teams/types\";\n\nconst StyledBadge = styled.img`\n display: inline-block;\n vertical-align: middle;\n`;\n\nconst badgePath = \"https://resources.premierleague.com/premierleague/badges/70\";\nconst prefix = \"t\";\n\ninterface IProps {\n alt: string;\n sizes: string;\n team: ITeam;\n}\n\nconst Badge: React.FC = ({ alt, sizes, team }) => {\n const code = team.code || 0;\n\n if (!code) {\n return null;\n }\n\n const path = `${badgePath}/${prefix}${code}`;\n\n const imgProps = {\n alt,\n role: alt === \"\" ? \"presentation\" : undefined,\n sizes,\n src: `${path}.png`,\n srcSet: `${path}.png 70w, ${path}@x2.png 140w`,\n };\n\n return ;\n};\n\nexport default Badge;\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 React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { textGradient } from \"./Utils\";\n\nconst TabHeadingOuter = styled.div`\n ${(props) =>\n props.isCentered &&\n css`\n text-align: center;\n `}\n\n ${(props) =>\n props.hasBorder &&\n css`\n border-top: 1px solid ${({ theme }) => theme.colors.lightGrey};\n `}\n`;\n\nconst TabHeadingInner = styled.div`\n display: inline-block;\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[3]}`};\n border-radius: 0 0 1rem 1rem;\n background-color: ${({ theme }) => theme.colors.primary};\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 ${textGradient}\n font-size: ${({ theme }) => theme.fontSizes[2]};\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 { 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 { 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 { em } from \"polished\";\n\nconst blue = \"#05f0ff\";\nconst darkPink = \"#e90052\";\nconst fantasy = \"#00ff87\";\nconst darkGrey = \"#7a7a7a\";\nconst lightGrey = \"#efefef\";\nconst offblack = \"#2f2f2f\";\nconst purple = \"#37003c\";\nconst purple10 = \"#ebe5eb\";\nconst yellow = \"#ebff00\";\nconst purpleDark = \"#250029\";\nconst purple70 = \"#734c76\";\nconst green = \"#07db77\";\nconst red = \"#ff1751;\";\nconst breakpointsArray = [400, 610, 700, 900, 1024, 1220];\n\nconst theme = {\n borders: [`2px solid ${lightGrey}`],\n breakpointsArray,\n breakpoints: breakpointsArray.map((bp) => em(`${bp}px`)),\n colors: {\n black: offblack,\n blue,\n bud: \"#c7102d\",\n darkBlue: \"#627bff\",\n darkGreen: \"#029f4f\",\n darkGrey,\n darkPink,\n difficulties: {\n 1: {\n bg: \"#375523\",\n color: \"white\",\n },\n 2: {\n bg: \"#01FC7A\",\n color: \"black\",\n },\n 3: {\n bg: \"#E7E7E7\",\n color: \"black\",\n },\n 4: {\n bg: red,\n color: \"white\",\n },\n 5: {\n bg: \"#80072D\",\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: offblack,\n },\n 75: {\n bg: \"#ffe65b\",\n color: offblack,\n },\n },\n elementTypes: {\n 1: {\n bg: yellow,\n color: purple,\n },\n 2: {\n bg: fantasy,\n color: purple,\n },\n 3: {\n bg: blue,\n color: purple,\n },\n 4: {\n bg: darkPink,\n color: \"white\",\n },\n },\n error: \"#fb251b\",\n fantasy,\n green,\n grey: \"#ebebe6\",\n lightBlue: \"#02efff\",\n lightGrey,\n lightPurple: \"#963cff\",\n movement: {\n down: {\n bg: \"#fc2c80\",\n color: \"white\",\n },\n same: {\n bg: darkGrey,\n color: darkGrey,\n },\n up: {\n bg: \"#05fa87\",\n color: purple,\n },\n },\n pink: \"#ff2882\",\n red,\n pinkToOrange:\n \"linear-gradient(30deg, #963cff, #c710e6 5%, #e900ca, #ff00ad, #ff0090, #ff0075, #ff005a, #ff2e41, #ff5028, #ff6900 87.5%);\",\n primary: purple,\n purple10,\n purple70,\n purpleDark,\n result: {\n w: \"#13cf00\",\n d: \"#76766f\",\n l: \"#d8191f\",\n },\n social: {\n facebook: {\n bg: \"#1877f2\",\n color: \"white\",\n },\n x: {\n bg: \"black\",\n color: \"white\",\n },\n google: {\n bg: \"white\",\n color: purple,\n },\n apple: {\n bg: \"black\",\n color: \"white\",\n },\n },\n success: \"#28A96C\",\n text: offblack,\n white: \"#ffffff\",\n offWhite: \"#fbfbfb\",\n yellow,\n },\n fontSizes: [\"1.2rem\", \"1.3rem\", \"1.4rem\", \"1.6rem\", \"1.8rem\"],\n fonts: {\n bold: '\"PremierSans-Bold\", Arial, \"Helvetica Neue\", Helvetica, \"sans-seriff\"',\n boldItalic:\n '\"PremierSans-Bold-Italic\", Arial, \"Helvetica Neue\", Helvetica, \"sans-seriff\"',\n italic:\n '\"PremierSans-Italic\", Arial, \"Helvetica Neue\", Helvetica, \"sans-seriff\"',\n light:\n '\"PremierSans-Light\", Arial, \"Helvetica Neue\", Helvetica, \"sans-serif\"',\n regular:\n '\"PremierSans-Regular\", Arial, \"Helvetica Neue\", Helvetica, \"sans-serif\"',\n bud: '\"BudBold\", Arial, \"Helvetica Neue\", Helvetica, sans-serif;',\n },\n radii: [\"3px\", \"6px\", \"8px\", \"14px\", \"16px\"],\n space: [\"0\", \"0.4rem\", \"0.8rem\", \"1.2rem\", \"1.6rem\", \"2rem\", \"2.4rem\"],\n zIndex: {\n dialog: 120,\n overlay: 110,\n select: {\n select: 90,\n wrap: 80,\n },\n },\n};\n\nexport default theme;\n","import { createAsyncAction } from \"typesafe-actions\";\nimport { IError } from \"..\";\nimport {\n IEntry,\n IEntryChipHistory,\n IEntryEvent,\n IEntryEventHistory,\n IEntryPhaseStanding,\n IEntrySeasonHistory,\n ITransfer,\n} from \"./types\";\n\nexport const fetchEntrySummary = createAsyncAction(\n \"FETCH_ENTRY_SUMMARY_START\",\n \"FETCH_ENTRY_SUMMARY_SUCCESS\",\n \"FETCH_ENTRY_SUMMARY_FAILURE\"\n)();\n\nexport const fetchEntryHistory = createAsyncAction(\n \"FETCH_ENTRY_HISTORY_START\",\n \"FETCH_ENTRY_HISTORY_SUCCESS\",\n \"FETCH_ENTRY_HISTORY_FAILURE\"\n)<\n void,\n {\n id: number;\n data: {\n current: IEntryEventHistory[];\n past: IEntrySeasonHistory[];\n chips: IEntryChipHistory[];\n };\n },\n IError\n>();\n\nexport const fetchEntryEventPicks = createAsyncAction(\n \"FETCH_ENTRY_EVENT_PICKS_START\",\n \"FETCH_ENTRY_EVENT_PICKS_SUCCESS\",\n \"FETCH_ENTRY_EVENT_PICKS_FAILURE\"\n)();\n\nexport const updateEntry = createAsyncAction(\n \"UPDATE_ENTRY_START\",\n \"UPDATE_ENTRY_SUCCESS\",\n \"UPDATE_ENTRY_FAILURE\"\n)();\n\nexport const fetchEntryTransfers = createAsyncAction(\n \"FETCH_ENTRY_TRANSFERS_START\",\n \"FETCH_ENTRY_TRANSFERS_SUCCESS\",\n \"FETCH_ENTRY_TRANSFERS_FAILURE\"\n)();\n\nexport const fetchEntryPhaseStandings = createAsyncAction(\n \"FETCH_ENTRY_PHASE_STANDINGS_START\",\n \"FETCH_ENTRY_PHASE_STANDINGS_SUCCESS\",\n \"FETCH_ENTRY_PHASE_STANDINGS_FAILURE\"\n)<\n void,\n { entry: number; phase: number; data: IEntryPhaseStanding[] },\n IError\n>();\n\nexport const unsubscribeEntry = createAsyncAction(\n \"UNSUBSCRIBE_ENTRY_START\",\n \"UNSUBSCRIBE_ENTRY_SUCCESS\",\n \"UNSUBSCRIBE_ENTRY_FAILURE\"\n)();\n","var map = {\n\t\"./pitch-bud.svg\": [\n\t\t552,\n\t\t9\n\t],\n\t\"./pitch-default.svg\": [\n\t\t553,\n\t\t10\n\t],\n\t\"./pitch-epl.svg\": [\n\t\t554,\n\t\t11\n\t],\n\t\"./pitch-fst.svg\": [\n\t\t555,\n\t\t12\n\t],\n\t\"./pitch-heads-up.svg\": [\n\t\t556,\n\t\t13\n\t],\n\t\"./pitch-nrfr.svg\": [\n\t\t557,\n\t\t14\n\t],\n\t\"./pitch-one-team-green.svg\": [\n\t\t558,\n\t\t15\n\t],\n\t\"./pitch-one-team-lilac.svg\": [\n\t\t559,\n\t\t16\n\t],\n\t\"./pitch-one-team-orange.svg\": [\n\t\t560,\n\t\t17\n\t],\n\t\"./pitch-one-team-pink.svg\": [\n\t\t561,\n\t\t18\n\t],\n\t\"./pitch-one-team-yellow.svg\": [\n\t\t562,\n\t\t19\n\t],\n\t\"./pitch-queen-memorial.svg\": [\n\t\t563,\n\t\t20\n\t],\n\t\"./pitch-rainbow-laces.svg\": [\n\t\t564,\n\t\t21\n\t],\n\t\"./pitch-standard.svg\": [\n\t\t565,\n\t\t22\n\t],\n\t\"./pitch-stay-home.svg\": [\n\t\t566,\n\t\t23\n\t],\n\t\"./pitch-youtube.svg\": [\n\t\t567,\n\t\t24\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 546;\nmodule.exports = webpackAsyncContext;","import * as styled from \"styled-components\";\nimport theme from \"./theme\";\n\nexport default styled.createGlobalStyle`\n html {\n box-sizing: border-box;\n font-family: ${theme.fonts.regular};\n font-size: 62.5%;\n }\n\n body {\n margin: 0;\n color: ${theme.colors.primary};\n font-size: ${theme.fontSizes[2]};\n }\n\n p {\n color: inherit;\n line-height: 1.6;\n }\n\n .ism {\n *,\n *::before,\n *::after {\n box-sizing: inherit;\n }\n\n strong {\n font-family: ${theme.fonts.bold};\n }\n\n input[type=\"search\"] {\n box-sizing: inherit;\n }\n }\n`;\n","import { createContext, useState } from \"react\";\n\nexport type ISaveState = \"initial\" | null;\ninterface ISaveContext {\n saveState: ISaveState;\n setSaveState: (value: ISaveState) => void;\n}\n\nconst SaveContext = createContext({\n saveState: null,\n setSaveState: (value: ISaveState) => {},\n});\n\nexport default SaveContext;\n\ninterface ISaveProviderProps {\n children: React.ReactNode;\n}\n\nexport const SaveProvider: React.FC = ({ children }) => {\n const [saveState, setSaveState] = useState(null);\n\n return (\n \n {children}\n \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","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHeadlineLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 453,\n height: 104,\n viewBox: \"0 0 453 104\",\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 fill: \"#37003C\",\n d: \"M14.616562 7.93010475C17.2559993 9.1695844 19.7212401 10.755045 21.9482465 12.6453022 21.7227217 11.5736664 20.9057261 6.34837034 20.4248901 3.09917067 22.854601 4.81378791 28.5097425 8.74454794 30.3479826 10.0262243 31.1096608 7.6771987 33.730855 0 33.730855 0 33.730855 0 38.4626212 7.71577759 39.2711065 9.00174052 40.2583095 7.96011055 45.9177061 1.62031329 47.3814899 0 47.6282907 3.64784818 47.9644503 8.86885769 48.0410437 9.65329507 49.7771569 7.29275354 51.8259026 5.18275834 54.130214 3.38208251 52.5557954 6.50697243 51.8068828 10.8192348 51.4664679 14.2827616 40.7926673 11.2796783 29.3710353 12.6833891 19.7270397 18.1835159 18.6249467 14.8400122 16.9015966 10.6777789 14.616562 7.93010475ZM71.7126403 73.7671203 68.4276371 70.102126C67.4872411 80.0083271 62.6746264 88.4228112 53.8238407 94.2868022L52.4792021 88.9414829C44.9687998 94.4111119 32.0798431 97.9432234 21.0121057 91.6462916 22.3822754 84.5820686 23.6035137 77.4235416 20.9823194 68.8504554 14.8548524 78.413733 9.42523576 82.138739 9.42523576 82.138739 5.28919551 75.1345276 5.65939664 61.0746662 6.89340042 56.9381521L0 59.1114294C0 54.396232 3.37861724 44.3657211 8.26357013 38.7417766L3.95732246 38.0473566 3.95732246 38.0473566C6.87650719 32.0407286 11.2164296 26.8489079 16.5952232 22.9287191L16.5952232 22.9287191C14.9910183 25.5006449 14.9654872 31.7847171 19.6717223 34.1808947 17.6717851 30.6573563 17.4334948 26.3022285 19.5142804 24.0432203 21.5950661 21.7842121 25.1055941 22.5472167 27.352332 24.3132725 26.6842679 22.3457492 24.7311378 19.8681273 21.820591 19.7009521L21.820591 19.7009521C27.5187347 16.7503825 33.8344371 15.2145669 40.2412887 15.2214911 41.4838029 15.2214911 42.7107147 15.2772396 43.9220241 15.3886898L43.9220241 15.3886898C45.8538783 16.1688406 48.6878318 18.9122282 50.0111945 20.6139858 49.9988376 19.0793195 49.6516434 17.5661629 48.9942052 16.1817002 56.1854686 17.9391829 59.6321688 20.8968976 61.0491456 22.3157434 61.3427534 25.4406333 62.274639 27.3181392 63.5043876 30.2972867 61.1768011 27.6653492 55.321666 23.4388177 52.5302643 22.4100474 52.5302643 22.4100474 52.3004843 25.1234291 51.3430676 26.4308248 45.7815402 22.3843281 43.0454559 21.3727039 43.0454559 21.3727039 36.9350097 22.2300125 33.0117287 24.6261901 30.8798808 26.4908364L32.7351416 28.0811439C29.0544062 29.2256509 26.662992 32.414839 26.662992 32.414839 26.662992 32.414839 29.9522503 32.9377972 29.9522503 32.9377972 29.9522503 32.9377972 29.6203459 36.795686 34.4201951 39.2218694 38.526449 41.2922697 44.4411568 38.7203439 50.0069393 40.970779 46.3432247 36.7142417 43.8284101 34.8110166 43.8284101 34.8110166 43.0113529 34.641457 42.1814123 34.5425069 41.347637 34.5152451 40.0710813 34.5152451 38.1690134 34.7767242 36.0754622 33.9579945 35.0034307 33.495767 33.9739446 32.9392191 32.9989631 32.2948158 34.7481651 30.6161306 36.9457916 29.4883629 39.3221687 29.0499026 41.4855465 29.7075734 43.5320452 30.7058121 45.3858079 32.0076174 46.340026 30.9887833 47.644438 30.3754696 49.0325019 30.2930001 49.0325019 30.2930001 47.1900066 32.0076174 47.7559462 34.1508889 49.7290487 35.9907912 51.5945353 37.9444501 53.3430047 40.0020203 56.3216345 38.3645608 62.7384542 38.7417766 64.0575617 40.2849321 62.3852738 38.0987951 59.9683285 36.2727278 58.100302 34.7124261 57.8747772 33.8936963 55.8365434 31.0345721 55.4918734 30.773093 56.8415406 31.2398001 58.0875806 31.9678874 59.1598432 32.9163645 59.8253594 32.0296705 60.7785346 31.4062235 61.8533756 31.1545953 62.7464878 31.9337793 63.2883539 33.0440541 63.3554561 34.2323332 63.0311711 34.6324129 62.635798 34.9681948 62.1895353 35.2225247L65.3213517 38.6517592 65.6362355 36.1998565C72.8402644 46.5947236 76.7805661 58.6313366 71.7126403 73.7671203ZM58.0960469 51.3827922 58.0960469 46.0117537C56.3197297 45.3581775 54.6568118 44.4265618 53.1685421 43.2512199 48.0623196 44.0313708 41.87528 49.2095149 41.87528 49.2095149 41.87528 49.2095149 43.9688312 53.204573 46.2496106 57.5125489 50.2622505 58.0697995 56.1684479 52.9645266 58.0917917 51.3827922L58.0960469 51.3827922ZM63.2320557 61.1218181C62.8600416 59.5410305 62.120622 58.0718616 61.0746767 56.835275L57.0918231 56.9338655C57.0918231 56.9338655 51.7175239 61.5890513 48.4367759 61.6962149 48.4367759 61.6962149 50.2452297 65.082584 51.1515842 66.8400667 52.960038 66.4457047 56.1344064 65.0097127 57.410962 63.5137092 57.9518869 65.4652173 58.1831034 67.4906114 58.0960469 69.5148696 59.8832247 68.4432338 62.3639979 65.6055422 63.2278005 61.1218181L63.2320557 61.1218181ZM64.8703021 43.4698336C63.7119048 44.4613453 62.468813 45.3478196 61.1555252 46.1189173L61.1555252 51.5113885C62.5980331 53.1274153 64.0150098 54.4691032 65.0788062 56.9038597 67.1042744 53.2560115 66.7213078 47.8806865 64.8660469 43.4698336L64.8703021 43.4698336ZM247.753734 53.4622366 247.753734 82.7965634 235.200236 82.7965634 235.200236 54.8190351C235.200236 46.6868315 231.341578 42.5262691 224.854747 42.5262691 217.510436 42.5262691 212.386996 47.7516607 212.386996 58.6919219L212.386996 82.7965634 199.807774 82.7965634 199.807774 31.5130156 211.019317 31.5130156 212.275524 37.7044821C215.951252 33.0587354 220.977511 30.7358229 227.354299 30.7358229 239.826337 30.7143937 247.753734 39.5249965 247.753734 53.4622366ZM273.070813 16.6783992 273.070813 31.5130156 291.339411 31.5130156 291.339411 42.6207298 273.070813 42.6207298 273.070813 64.5957128C273.070813 69.3187455 275.291684 71.7575478 280.029258 71.7575478 283.038885 71.673238 285.985935 70.8772834 288.629776 69.4346745L292.788551 79.9885057C288.423751 82.3476345 283.540021 83.5784693 278.580118 83.5694728 267.364287 83.5694728 260.504452 77.0816938 260.504452 66.4376956L260.504452 42.6207298 252.2898 42.6207298 252.2898 31.5130156 260.495878 31.5130156 260.495878 16.6783992 273.070813 16.6783992ZM348.554723 31.5130156 348.554723 82.7965634 337.34318 82.7965634 336.086973 76.8884788C332.228316 81.0533349 326.418893 83.5694232 319.751991 83.5694232 305.350624 83.5694232 295.103746 72.6291621 295.103746 57.1419085 295.103746 41.5559006 305.350624 30.7143937 319.751991 30.7143937 326.418893 30.7143937 332.219741 33.230482 336.086973 37.3953381L337.34318 31.5130156 348.554723 31.5130156ZM335.988363 57.6485611 335.988363 56.6781925C335.988363 47.4854534 329.128528 42.3545225 321.779929 42.3545225 313.565277 42.3545225 307.670106 48.7434976 307.670106 57.1633768 307.670106 65.583256 313.565277 71.9722311 321.779929 71.9722311 329.12424 71.9507628 335.988363 66.8241255 335.988363 57.6270927L335.988363 57.6485611ZM360.503698 68.296853C364.215522 71.2585526 368.808872 72.8936617 373.554535 72.9425997 378.270671 72.9425997 381.091779 71.3925862 381.091779 68.5845286 381.091779 60.4566187 356.156278 64.0375362 356.156278 46.2231156 356.156278 37.0303765 363.792132 30.735862 375.196608 30.735862 381.657137 30.6840068 387.961902 32.7214076 393.173663 36.5451922L386.974087 45.9139716C383.299788 43.0114534 379.141013 41.3626856 374.969376 41.3626856 370.797739 41.3626856 368.688339 43.0114534 368.688339 45.3343267 368.688339 52.8825917 393.62384 49.3016742 393.62384 67.5969854 393.62384 77.0816938 385.50351 83.5694232 373.228693 83.5694232 366.368857 83.5694232 359.791991 81.7317342 354.865771 78.5372466L360.503698 68.296853ZM453 31.5130156 431.640188 85.6990816C426.225206 99.4388131 418.589352 103.994393 407.279199 103.994393 405.482973 104.039635 403.69033 103.810883 401.962827 103.315994L403.6049 90.8300126C404.688705 91.0360107 405.790244 91.1338128 406.893333 91.1219819 412.895689 91.1219819 416.557126 89.3787535 418.975218 83.4706689L395.977621 31.5130156 409.993121 31.5130156 425.749305 68.0091773 439.28033 31.5130156 453 31.5130156ZM102.055124 28.1983054 102.055124 43.6855589 131.535265 43.6855589 131.535265 55.8838643 102.055124 55.8838643 102.055124 82.7965634 89 82.7965634 89 16 135.110954 16 135.110954 28.1983054 102.055124 28.1983054ZM190.881413 31.5130156 190.881413 82.7965634 179.665583 82.7965634 178.409376 76.8884788C174.550718 81.0533349 168.745583 83.5694232 162.074393 83.5694232 147.673027 83.5694232 137.426148 72.6291621 137.426148 57.1419085 137.426148 41.5559006 147.673027 30.7143937 162.074393 30.7143937 168.745583 30.7143937 174.542144 33.230482 178.409376 37.3953381L179.665583 31.5130156 190.881413 31.5130156ZM178.315053 57.6485611 178.315053 56.6781925C178.315053 47.4854534 171.455218 42.3545225 164.102332 42.3545225 155.88768 42.3545225 149.992509 48.7434976 149.992509 57.1633768 149.992509 65.583256 155.88768 71.9722311 164.102332 71.9722311 171.450931 71.9507628 178.315053 66.8241255 178.315053 57.6270927L178.315053 57.6485611Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHeadlineLogo);\nexport default __webpack_public_path__ + \"static/media/headline-logo.3da016b5.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/player-comp-1-1x.83b3963d.png\";","export default __webpack_public_path__ + \"static/media/player-comp-1-2x.525ae79d.png\";","export default __webpack_public_path__ + \"static/media/player-comp-2-1x.55cfdac8.png\";","export default __webpack_public_path__ + \"static/media/player-comp-2-2x.409572fe.png\";","export default __webpack_public_path__ + \"static/media/player-comp-3-1x.60201890.png\";","export default __webpack_public_path__ + \"static/media/player-comp-3-2x.4190fe7b.png\";","export default __webpack_public_path__ + \"static/media/player-comp-4-1x.966f0e57.png\";","export default __webpack_public_path__ + \"static/media/player-comp-4-2x.e429974d.png\";","export default __webpack_public_path__ + \"static/media/player-comp-5-1x.c05172fa.png\";","export default __webpack_public_path__ + \"static/media/player-comp-5-2x.d02a3f06.png\";","import playerComp1 from \"../img/player-comps/player-comp-1-1x.png\";\nimport playerComp1x2 from \"../img/player-comps/player-comp-1-2x.png\";\nimport playerComp2 from \"../img/player-comps/player-comp-2-1x.png\";\nimport playerComp2x2 from \"../img/player-comps/player-comp-2-2x.png\";\nimport playerComp3 from \"../img/player-comps/player-comp-3-1x.png\";\nimport playerComp3x2 from \"../img/player-comps/player-comp-3-2x.png\";\nimport playerComp4 from \"../img/player-comps/player-comp-4-1x.png\";\nimport playerComp4x2 from \"../img/player-comps/player-comp-4-2x.png\";\nimport playerComp5 from \"../img/player-comps/player-comp-5-1x.png\";\nimport playerComp5x2 from \"../img/player-comps/player-comp-5-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 },\n {\n x1: playerComp2,\n x2: playerComp2x2,\n },\n {\n x1: playerComp3,\n x2: playerComp3x2,\n },\n {\n x1: playerComp4,\n x2: playerComp4x2,\n },\n {\n x1: playerComp5,\n x2: playerComp5x2,\n },\n ];\n if (choice < 0) {\n choice = Math.floor(Math.random() * playerImages.length);\n }\n return playerImages[choice];\n};\n","export default __webpack_public_path__ + \"static/media/pattern-2-d.0a64c7c7.png\";","export default __webpack_public_path__ + \"static/media/pattern-2-d@2x.1441f96e.png\";","export default __webpack_public_path__ + \"static/media/pattern-2-m.fbe26d0a.png\";","export default __webpack_public_path__ + \"static/media/pattern-2-m@2x.c6d78857.png\";","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 const formatNumberToLocaleString = (value: number | string) =>\n typeof value === \"number\" ? value.toLocaleString() : value;\n","import { IElementStat } from \"../core/store/element-stats/types\";\n\ninterface IElementStatInfo {\n per90Stat: string;\n shortName: string;\n}\n\nconst elementStats: Record = {\n starts: {\n shortName: \"ST\",\n per90Stat: \"starts_per_90\",\n },\n minutes: {\n shortName: \"MP\",\n per90Stat: \"\",\n },\n goals_scored: {\n shortName: \"GS\",\n per90Stat: \"\",\n },\n assists: {\n shortName: \"A\",\n per90Stat: \"\",\n },\n expected_goals: {\n shortName: \"xG\",\n per90Stat: \"expected_goals_per_90\",\n },\n expected_assists: {\n shortName: \"xA\",\n per90Stat: \"expected_assists_per_90\",\n },\n expected_goal_involvements: {\n shortName: \"xGI\",\n per90Stat: \"expected_goal_involvements_per_90\",\n },\n clean_sheets: {\n shortName: \"\",\n per90Stat: \"clean_sheets_per_90\",\n },\n goals_conceded: {\n shortName: \"\",\n per90Stat: \"goals_conceded_per_90\",\n },\n expected_goals_conceded: {\n shortName: \"xGC\",\n per90Stat: \"expected_goals_conceded_per_90\",\n },\n own_goals: {\n shortName: \"\",\n per90Stat: \"\",\n },\n penalties_saved: {\n shortName: \"\",\n per90Stat: \"\",\n },\n penalties_missed: {\n shortName: \"\",\n per90Stat: \"\",\n },\n yellow_cards: {\n shortName: \"\",\n per90Stat: \"\",\n },\n red_cards: {\n shortName: \"\",\n per90Stat: \"\",\n },\n saves: {\n shortName: \"\",\n per90Stat: \"saves_per_90\",\n },\n bonus: {\n shortName: \"BP\",\n per90Stat: \"\",\n },\n bps: {\n shortName: \"\",\n per90Stat: \"\",\n },\n influence: {\n shortName: \"\",\n per90Stat: \"\",\n },\n creativity: {\n shortName: \"\",\n per90Stat: \"\",\n },\n threat: {\n shortName: \"\",\n per90Stat: \"\",\n },\n ict_index: {\n shortName: \"\",\n per90Stat: \"\",\n },\n mng_win: {\n shortName: \"\",\n per90Stat: \"\",\n },\n mng_draw: {\n shortName: \"\",\n per90Stat: \"\",\n },\n mng_loss: {\n shortName: \"\",\n per90Stat: \"\",\n },\n mng_underdog_win: {\n shortName: \"MTB(W)\",\n per90Stat: \"\",\n },\n mng_underdog_draw: {\n shortName: \"MTB(D)\",\n per90Stat: \"\",\n },\n mng_clean_sheets: {\n shortName: \"\",\n per90Stat: \"\",\n },\n mng_goals_scored: {\n shortName: \"\",\n per90Stat: \"\",\n },\n};\n\nexport const getElementStat = (name: string) => elementStats[name] || null;\n\nexport const getElementStatNames = () => Object.keys(elementStats);\n\nexport const getRelevantStatNames = (elementType: number) => {\n const statNames = getElementStatNames();\n const isManagerElement = elementType === 5;\n return statNames.filter((name) =>\n isManagerElement ? name.startsWith(\"mng\") : !name.startsWith(\"mng\")\n );\n};\n\nexport const getStatAbbr = (\n name: string,\n statsByName: Record\n) => {\n const abbr = getElementStat(name)?.shortName;\n return abbr\n ? abbr\n : statsByName[name].label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase();\n};\n","export const getShortNameFromId = (event: number, idOnly = false) => {\n const prefix = idOnly ? \"\" : \"GW\";\n return `${prefix}${event}`;\n};\n\nexport const isBlankWeek = (eventId: number) => (eventId === 0 ? true : false);\n","export const getSuffixFromId = (id: number, isHome: boolean) => {\n const neutralIds: number[] = [];\n return neutralIds.indexOf(id) > -1 ? \"(N)\" : isHome ? \"(H)\" : \"(A)\";\n};\n\nexport const isElementFixtureHome = (\n elementTeam: number,\n fixtureTeamH: number\n) => elementTeam === fixtureTeamH;\n","interface IStatDetails {\n description: string;\n label: string;\n}\n\nconst statDetails: Record = {\n total_points: {\n description: \"Total points earned this season.\",\n label: \"Total points\",\n },\n event_points: {\n description: \"Total points earned in the latest Gameweek.\",\n label: \"Round points\",\n },\n now_cost: {\n description: \"Current buying price in the transfer market.\",\n label: \"Price\",\n },\n selected_by_percent: {\n description:\n \"The percentage of overall Fantasy managers who currently own the player.\",\n label: \"Team selected by %\",\n },\n minutes: {\n description: \"Total minutes played this season.\",\n label: \"Minutes played\",\n },\n goals_scored: {\n description: \"Total goals scored this season.\",\n label: \"Goals scored\",\n },\n assists: {\n 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 label: \"Assists\",\n },\n clean_sheets: {\n description:\n \"Total clean sheets - awarded to players who do not concede a goal and have played at least 60 minutes.\",\n label: \"Clean sheets\",\n },\n goals_conceded: {\n description:\n \"Total number of goals conceded by a team while the player has been on the pitch.\",\n label: \"Goals conceded\",\n },\n own_goals: {\n description:\n \"Awarded to a player who puts the ball into his own team's goal.\",\n label: \"Own goals\",\n },\n penalties_saved: {\n description:\n \"Awarded to a goalkeeper who touches the ball when saving a penalty.\",\n label: \"Penalties saved\",\n },\n penalties_missed: {\n description:\n \"Awarded to a player who takes a penalty but does not score from the penalty spot.\",\n label: \"Penalties missed\",\n },\n yellow_cards: {\n description: \"Total yellow cards this season.\",\n label: \"Yellow cards\",\n },\n red_cards: {\n description: \"Total red cards this season.\",\n label: \"Red cards\",\n },\n saves: {\n description: \"Total times a goalkeeper has saved a shot on goal.\",\n label: \"Saves\",\n },\n bonus: {\n description:\n \"The three best performing players in each match according to the BPS 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.\",\n label: \"Bonus\",\n },\n bps: {\n description:\n \"The Bonus Points System (BPS) uses a range of stats to create a BPS score for each player. The three best performing players in each match will be awarded bonus points.\",\n label: \"Bonus Points System\",\n },\n influence: {\n description:\n \"Influence evaluates a player's impact on a match, taking into account actions that could directly or indirectly affect the match outcome. Part of the ICT index.\",\n label: \"Influence\",\n },\n creativity: {\n description:\n \"Creativity assesses player performance in terms of producing goalscoring opportunities for other players. Part of the ICT index.\",\n label: \"Creativity\",\n },\n threat: {\n description:\n \"Threat gauges players who are most likely to score goals. Part of the ICT index.\",\n label: \"Threat\",\n },\n ict_index: {\n description:\n \"Statistical index developed specifically to assess a player as an FPL asset, combining Influence, Creativity and Threat scores.\",\n label: \"ICT Index\",\n },\n form: {\n 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 label: \"Form\",\n },\n dreamteam_count: {\n description:\n \"The number of times a player has been selected in a Gameweek Dream Team. Players with the most points in a Gameweek in a valid formation earn a place in the Dream Team.\",\n label: \"Times in Dream Team\",\n },\n value_form: {\n description: \"Player's form divided by player's value.\",\n label: \"Value (form)\",\n },\n value_season: {\n description: \"Player's total points divided by player's value.\",\n label: \"Value (season)\",\n },\n points_per_game: {\n description: \"Player's total points divided by player's number of matches.\",\n label: \"Points per match\",\n },\n transfers_in: {\n description:\n \"Total number of times a player has been transferred in to a team this season.\",\n label: \"Transfers in\",\n },\n transfers_out: {\n description:\n \"Total number of times a player has been transferred out of a team this season.\",\n label: \"Transfers out\",\n },\n transfers_in_event: {\n description:\n \"Total number of times a player has been transferred in to a team this Gameweek.\",\n label: \"Transfers in (round)\",\n },\n transfers_out_event: {\n description:\n \"Total number of times a player has been transferred out of a team this Gameweek.\",\n label: \"Transfers out (round)\",\n },\n cost_change_start: {\n description:\n \"How much a player's price has increased since the start of the season.\",\n label: \"Price rise\",\n },\n cost_change_start_fall: {\n description:\n \"How much a player price has fallen since the start of the season.\",\n label: \"Price fall\",\n },\n cost_change_event: {\n description: \"How much a player's price has increased this Gameweek.\",\n label: \"Price rise (round)\",\n },\n cost_change_event_fall: {\n description: \"How much a player's price has fallen this Gameweek.\",\n label: \"Price fall (round)\",\n },\n expected_assists: {\n description: \"Expected assists since the start of the season\",\n label: \"xA (Total)\",\n },\n expected_goals: {\n description: \"Expected goals since the start of the season\",\n label: \"xG (Total)\",\n },\n expected_goal_involvements: {\n description: \"Expected goal involvements since the start of the season\",\n label: \"xGI (Total)\",\n },\n expected_goals_conceded: {\n description: \"Expected goals conceded since the start of the season\",\n label: \"xGC (Total)\",\n },\n starts: {\n description: \"Total games started this season\",\n label: \"Starts\",\n },\n mng_win: {\n description: \"Total games won this season\",\n label: \"Manager Wins\",\n },\n mng_draw: {\n description: \"Total games drawn this season\",\n label: \"Manager Draws\",\n },\n mng_loss: {\n description: \"Total games lost this season\",\n label: \"Manager Losses\",\n },\n mng_underdog_win: {\n description: \"Total of games won with a table bonus\",\n label: \"Manager Table Bonus (Wins)\",\n },\n mng_underdog_draw: {\n description: \"Total of games drawn with a table bonus\",\n label: \"Manager Table Bonus (Draws)\",\n },\n mng_clean_sheets: {\n description:\n \"Total clean sheets - awarded to players who do not concede a goal and have played at least 60 minutes.\",\n label: \"Manager Clean sheets\",\n },\n mng_goals_scored: {\n description: \"Total goals scored this season.\",\n label: \"Manager Goals scored\",\n },\n};\n\nexport const getStatDetails = (name: string) => statDetails[name] || null;\n\nexport const getStatNames = () => Object.keys(statDetails);\n\nexport const getStatDescription = (statName: string) => {\n const stat = getStatDetails(statName);\n return stat ? stat.description : \"No description available\";\n};\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgBadgeBlank(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 19,\n height: 25,\n viewBox: \"0 0 19 25\",\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 fill: \"#E7E7E7\",\n fillRule: \"evenodd\",\n d: \"M51.5,8.88496094 C60.5515625,6.37167969 60.758428,6.37167969 69.6183594,8.88496094 C69.6183594,19.5192165 66.7891774,26.8812211 61.1308135,30.9709746 L61.1306789,30.9707868 C60.7811485,31.221157 60.3107038,31.220082 59.9623212,30.9681171 C54.3215782,26.8737895 51.5,19.5138498 51.5,8.88496094 Z\",\n transform: \"translate(-51.5 -7)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgBadgeBlank);\nexport default __webpack_public_path__ + \"static/media/badge-blank.13a6ab5d.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { MatchValueBase } from \"./Utils\";\n\ninterface IStyledProps extends IProps {\n rating: number;\n}\n\nconst StyledFixtureDifficulty = styled.div`\n ${MatchValueBase}\n background-color: ${(props) =>\n props.theme.colors.difficulties[props.rating].bg};\n color: ${(props) => props.theme.colors.difficulties[props.rating].color};\n\n ${(props) =>\n props.isLarge &&\n css`\n @media (min-width: ${props.theme.breakpoints[2]}) {\n padding: ${(props) => `0.8rem ${props.theme.space[1]}`};\n font-size: ${(props) => props.theme.fontSizes[2]};\n }\n `}\n`;\n\ninterface IProps {\n rating: number | undefined;\n isLarge?: boolean;\n}\n\nconst FixtureDifficulty: React.FC = ({ isLarge = false, rating }) => {\n if (!rating) {\n return null;\n }\n return (\n \n {rating}\n \n );\n};\n\nexport default FixtureDifficulty;\n","import { rgba } from \"polished\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport {\n IElement,\n IElementFixture,\n IElementHistory,\n} from \"../core/store/elements/types\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport { ReactComponent as BadgeBlankBase } from \"../img/icons/badge-blank.svg\";\nimport { isElementFixtureHome } from \"../utils/fixtures\";\nimport Badge from \"./Badge\";\nimport FixtureDifficulty from \"./FixtureDifficulty\";\nimport { MatchValueBase } from \"./Utils\";\n\nconst MatchListTitle = styled.h3`\n display: flex;\n align-items: center;\n margin: ${(props) => `0 ${props.theme.space[1]} ${props.theme.space[2]}`};\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: ${(props) => props.theme.fontSizes[0]};\n color: ${(props) => props.theme.colors.primary};\n text-align: center;\n\n ::before,\n ::after {\n content: \"\";\n flex: 1;\n height: 1px;\n background-color: ${(props) => rgba(props.theme.colors.primary, 0.2)};\n }\n\n :not(:empty)::before {\n margin-right: 0.25rem;\n }\n\n :not(:empty)::after {\n margin-left: 0.25rem;\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[2]}) {\n margin-right: 0.8rem;\n margin-left: 0.8rem;\n\n :not(:empty)::before {\n margin-right: 0.35rem;\n }\n\n :not(:empty)::after {\n margin-left: 0.35rem;\n }\n }\n`;\n\nconst MatchList = styled.ul`\n display: flex;\n`;\n\nexport const MatchBox = styled.li`\n flex: 0 0 calc(100% / 3 - ${(props) => props.theme.space[1]});\n text-align: center;\n padding: ${(props) => props.theme.space[1]};\n background-color: ${rgba(\"white\", 0.5)};\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.08)};\n\n :not(:first-child) {\n margin-left: ${(props) => props.theme.space[1]};\n }\n\n :first-child {\n border-radius: ${({ theme }) => `${theme.radii[1]} 0 0 ${theme.radii[1]}`};\n }\n\n :last-child {\n border-radius: ${({ theme }) => `0 ${theme.radii[1]} ${theme.radii[1]} 0`};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: ${(props) => `0.6rem ${props.theme.space[2]}`};\n }\n`;\n\nconst MatchBoxEvent = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 30%;\n }\n`;\nconst MatchBoxBadge = styled.div`\n margin-bottom: ${(props) => props.theme.space[1]};\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 24%;\n margin-bottom: 0;\n }\n`;\nconst MatchBoxValue = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 40%;\n }\n`;\n\nconst MatchEvent = styled.h4`\n margin-bottom: 0.2rem;\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: 1rem;\n color: ${(props) => props.theme.colors.darkGrey};\n text-align: center;\n`;\n\nconst BadgeBlank = styled(BadgeBlankBase)`\n display: inline-block;\n vertical-align: middle;\n`;\n\nconst HistoryPts = styled.div`\n ${MatchValueBase}\n ${(props) =>\n props.isBlank\n ? css`\n background-color: transparent;\n color: ${props.theme.colors.darkGrey};\n `\n : css`\n background-color: #f8f8f8;\n color: ${props.theme.colors.primary};\n `}\n`;\n\ninterface IMatchPts {\n isBlank?: boolean;\n}\n\nexport const BlankMatchBox: React.FC = () => (\n \n \n \n \n -\n \n);\n\ninterface IElementHistoryBox {\n history: IElementHistory;\n}\n\nexport const ElementHistoryBox: React.FC = ({\n history,\n}) => {\n const teamsById = useSelector(getTeamsById);\n const opponentTeam = teamsById[history.opponent_team];\n return (\n \n \n {`GW${history.round}`}\n \n \n \n \n \n {`${history.total_points}pts`}\n \n \n );\n};\n\ninterface IElementFixtureBox {\n element: IElement;\n fixture: IElementFixture;\n}\n\nexport const ElementFixtureBox: React.FC = ({\n element,\n fixture,\n}) => {\n const teamsById = useSelector(getTeamsById);\n const opponentTeam = isElementFixtureHome(element.team, fixture.team_h)\n ? teamsById[fixture.team_a]\n : teamsById[fixture.team_h];\n return (\n \n \n {fixture.event && {`GW${fixture.event}`}}\n \n \n \n \n \n \n \n \n );\n};\n\ninterface IElementFixtureGroup {\n title: string;\n}\n\nconst ElementMatchGroup: React.FC = ({\n children,\n title,\n}) => (\n
\n {title}\n {children}\n
\n);\n\nexport default ElementMatchGroup;\n","import styled from \"styled-components/macro\";\n\nexport const StyledElementPhoto = styled.img<{\n isPitchUnit?: boolean;\n photoWidth?: string;\n}>`\n display: inline-block;\n margin: auto;\n vertical-align: middle;\n width: ${(props) => props.photoWidth || \"auto\"};\n max-width: 100%;\n\n ${(props) =>\n props.isPitchUnit &&\n `\n width:36px;\n\n @media screen and (min-width: 610px) {\n width:52px;\n }\n\n @media screen and (min-width: 1024px) {\n width:68px;\n }\n\n `};\n`;\n","import { useSelector } from \"react-redux\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { StyledElementPhoto } from \"./styles\";\nimport { IElementPhotoProps } from \"./types\";\n\nconst ElementPhoto = ({\n alt,\n elementId,\n srcDimensions,\n photoWidth,\n isPitchUnit = false,\n}: IElementPhotoProps) => {\n const elementsById = useSelector(getElementsById);\n const element = elementsById[elementId];\n\n const elementPhotoDir = `//resources.premierleague.com/premierleague/photos/players/${srcDimensions}`;\n const missingPhotoFilename = \"Photo-Missing\";\n const elementPhotoFilename = element.has_temporary_code\n ? missingPhotoFilename\n : `${element.opta_code}`;\n\n return (\n {\n e.currentTarget.src = `${elementPhotoDir}/${missingPhotoFilename}.png`;\n }}\n />\n );\n};\n\nexport default ElementPhoto;\n","export default __webpack_public_path__ + \"static/media/chevron-left-small.9ad9bfde.svg\";","export default __webpack_public_path__ + \"static/media/chevron-right-small.4a7daf66.svg\";","export default __webpack_public_path__ + \"static/media/pattern-1-1236.e63cad04.png\";","export default __webpack_public_path__ + \"static/media/pattern-1-437.2c3d86db.png\";","export default __webpack_public_path__ + \"static/media/pattern-1-618.51b22a89.png\";","export default __webpack_public_path__ + \"static/media/pattern-1-874.c38b92af.png\";","import { hiDPI, rgba, size } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as BaseHeadlineLogo } from \"../../img/headline-logo.svg\";\nimport leftArrow from \"../../img/icons/chevron-left-small.svg\";\nimport rightArrow from \"../../img/icons/chevron-right-small.svg\";\nimport pattern1_1236 from \"../../img/pattern/pattern-1-1236.png\";\nimport pattern1_437 from \"../../img/pattern/pattern-1-437.png\";\nimport pattern1_618 from \"../../img/pattern/pattern-1-618.png\";\nimport pattern1_874 from \"../../img/pattern/pattern-1-874.png\";\nimport Table from \"../Table\";\n\nexport const BadgeWrap = styled.span`\n margin-right: ${(props) => props.theme.space[1]};\n`;\n\nexport const ElementDialogHeader = styled.div`\n position: relative;\n z-index: 3;\n`;\n\nexport const HeadlineLogo = styled(BaseHeadlineLogo)`\n ${size(18, 79)}\n display: inline-block;\n margin: ${(props) => props.theme.space[3]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n ${size(24, 105)}\n display: block;\n margin: 1.8rem auto;\n }\n`;\n\nexport const Summary = styled.div`\n padding: ${(props) => `4rem ${props.theme.space[2]} 0`};\n border-radius: ${({ theme }) => theme.radii[1]};\n\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 160px,\n white 260px\n ),\n url(${pattern1_437}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-repeat: no-repeat;\n background-position: 0 0, right -25px top -185px, 0 0;\n background-size: auto, 273px 387px, auto;\n\n ${hiDPI(2)} {\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 160px,\n white 260px\n ),\n url(${pattern1_618}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-size: auto, 273px 387px, auto;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 180px,\n white 320px\n ),\n url(${pattern1_874}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-position: 0 0, right -84px top -493px, 0 0;\n background-size: auto, 653px 925px, auto;\n\n ${hiDPI(2)} {\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 180px,\n white 320px\n ),\n url(${pattern1_1236}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-size: auto, 653px 925px, auto;\n }\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-right: 8%;\n padding-left: 8%;\n }\n`;\n\nexport const ElementTypeLabel = styled.span`\n display: inline-block;\n padding: ${({ theme }) => `${theme.space[1]} ${theme.space[2]}`};\n border-radius: ${({ theme }) => `0 0 ${theme.radii[1]} ${theme.radii[1]}`};\n background-color: ${({ theme }) => theme.colors.primary};\n color: #05f0ff;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1rem;\n line-height: 1;\n`;\n\nexport const ElementHeading = styled.h2`\n margin: ${(props) => props.theme.space[1]} 0;\n font-size: 1.8rem;\n\n @media (min-width: ${(props) => props.theme.breakpoints[3]}) {\n margin-top: ${(props) => props.theme.space[2]};\n margin-bottom: ${(props) => props.theme.space[2]};\n font-size: 2.8rem;\n }\n`;\n\nexport const Club = styled.div`\n font-size: ${(props) => props.theme.fontSizes[0]};\n`;\n\nexport const Img = styled.img`\n display: block;\n max-width: 100%;\n`;\n\nexport const ElementPhotoWrap = styled.div`\n flex: 0 0 130px;\n margin: 0 1.4rem 0 0.3rem;\n\n @media (min-width: ${(props) => props.theme.breakpoints[3]}) {\n flex: 0 0 200px;\n margin: 0 4rem;\n }\n`;\n\nexport const Glass = css`\n background-color: ${rgba(\"white\", 0.6)};\n box-shadow: 0 4px 12px 0 ${rgba(\"black\", 0.08)};\n`;\n\nexport const StatsOuter = styled.div`\n ${Glass}\n position: relative;\n padding-top: ${({ theme }) => theme.space[3]};\n margin: 0 0 ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[1]};\n\n ::before {\n left: 0;\n background-image: linear-gradient(\n to left,\n ${rgba(\"black\", 0)} 0%,\n ${rgba(\"black\", 0.08)} 100%\n ),\n url(${leftArrow});\n }\n\n ::after {\n right: 0;\n background-image: linear-gradient(\n to right,\n ${rgba(\"black\", 0)} 0%,\n ${rgba(\"black\", 0.08)} 100%\n ),\n url(${rightArrow});\n }\n\n ::before,\n ::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n width: 10px;\n background-repeat: no-repeat, no-repeat;\n background-position: 0 0, 50% 50%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n background-image: none;\n }\n }\n`;\n\nexport const StatsWrap = styled.div`\n overflow: auto;\n`;\n\nexport const StatDivider = css`\n :not(:first-child) {\n position: relative;\n\n ::before {\n content: \"\";\n position: absolute;\n top: 6px;\n bottom: 6px;\n left: 0;\n width: 1px;\n background-color: ${rgba(\"black\", 0.1)};\n }\n }\n`;\n\nexport const StatList = styled.ul`\n display: flex;\n`;\n\nexport const RankTitle = styled.div`\n margin: 0.8rem 0;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1rem;\n text-align: center;\n`;\n\nexport const 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\nexport const TableWrap = styled.div`\n overflow: auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n }\n`;\n\nexport const HistoryTableWrap = styled.div`\n overflow-x: scroll;\n position: relative;\n`;\n\nexport const HistoryTotalsHeading = styled.th`\n font-family: ${(props) => props.theme.fonts.regular};\n`;\n\nexport const HistoryTable = styled(Table)`\n white-space: nowrap;\n background-color: #fff;\n\n th {\n font-weight: normal;\n }\n\n thead th {\n position: sticky;\n top: 0;\n z-index: 1;\n background-color: #fff;\n\n :nth-of-type(2) {\n position: sticky;\n left: 0;\n z-index: 2;\n }\n }\n\n tbody,\n tfoot {\n th {\n position: sticky;\n left: 0;\n z-index: 1;\n background-color: #fff;\n }\n\n ${HistoryTotalsHeading} {\n font-size: ${(props) => props.theme.fontSizes[2]};\n }\n }\n\n tfoot {\n th {\n font-weight: normal;\n text-align: right;\n }\n }\n`;\n\nexport const HistoryTotalsRow = styled.tr`\n tfoot {\n th,\n td {\n background-color: ${(props) => props.theme.colors.offWhite};\n }\n }\n`;\n\nexport const HistoryPer90Row = styled.tr`\n th,\n td {\n font-family: ${(props) => props.theme.fonts.italic};\n font-size: ${(props) => props.theme.fontSizes[0]};\n }\n`;\n\nexport const FixturesTable = styled(Table)`\n table-layout: fixed;\n white-space: nowrap;\n\n td {\n @media (min-width: ${(props) => props.theme.breakpoints[2]}) {\n padding-top: ${(props) => props.theme.space[1]};\n padding-bottom: ${(props) => props.theme.space[1]};\n }\n }\n`;\n\nexport const DateCol = styled.th`\n width: 33%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 24%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 16%;\n }\n`;\n\nexport const EventCol = styled.th`\n width: 13%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 8%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 6%;\n }\n`;\n\nexport const OppCol = styled.th`\n width: 37%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 58%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 67%;\n }\n`;\n\nexport const FDRCol = styled.th`\n width: 17%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: 14%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 15%;\n }\n`;\n","import { rgba } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { HistoryTotalsHeading } from \"./ElementDialog/styles\";\nimport Table from \"./Table\";\n\nexport const FixtureStatsTableWrap = styled.div`\n overflow-x: scroll;\n`;\n\nexport const StyledFixtureStatsTable = styled(Table)`\n white-space: nowrap;\n background-color: #fff;\n\n td {\n padding-top: 0.8rem;\n padding-bottom: 0.8rem;\n }\n\n thead th {\n position: sticky;\n top: 0;\n z-index: 1;\n background-color: #fff;\n\n :nth-of-type(2) {\n position: sticky;\n left: 0;\n z-index: 2;\n }\n }\n\n tbody,\n tfoot {\n th {\n position: sticky;\n left: 0;\n z-index: 1;\n background-color: #fff;\n }\n\n ${HistoryTotalsHeading} {\n font-size: ${(props) => props.theme.fontSizes[2]};\n }\n }\n\n tfoot {\n th {\n font-weight: normal;\n text-align: right;\n }\n }\n`;\n\nexport const GradBorderBox = styled.div`\n margin-top: ${(props) => props.theme.space[2]};\n position: relative;\n\n ::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 1px;\n background-image: linear-gradient(\n to right,\n ${rgba(\"white\", 0)} 0%,\n ${({ theme }) => theme.colors.lightGrey} 15%,\n ${({ theme }) => theme.colors.lightGrey} 49%,\n ${({ theme }) => theme.colors.lightGrey} 85%,\n ${rgba(\"white\", 0)} 100%\n );\n }\n`;\n\nexport const BenchHeader = styled.h3`\n text-align: center;\n font-size: ${(props) => props.theme.fontSizes[1]};\n white-space: normal;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: ${(props) => props.theme.fontSizes[3]};\n }\n`;\n","import styled from \"styled-components/macro\";\n\nconst SubHeading = styled.h3`\n margin-top: ${({ theme }) => theme.space[3]};\n margin-bottom: ${({ theme }) => theme.space[3]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.7rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 2rem;\n }\n`;\n\nexport default SubHeading;\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.bold};\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[0]};\n `}\n`;\n\ninterface IStyleProps {\n selected: boolean;\n}\n\ninterface IProps {\n key: number;\n index: number;\n label: React.ReactNode;\n link: string;\n onClick: (index: number) => void;\n}\n\ntype Props = IStyleProps & IProps;\n\nclass Tab extends React.Component {\n public onClick = (e: React.SyntheticEvent) => {\n e.preventDefault();\n this.props.onClick(this.props.index);\n };\n\n public render() {\n const { label, link, selected } = this.props;\n return (\n \n \n {label}\n \n \n );\n }\n}\n\nexport default Tab;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport Tab from \"./Tab\";\nimport { ITabPanel } from \"./TabPanel\";\n\nexport const TabListShared = css`\n display: flex;\n align-items: center;\n padding: 0;\n border-radius: 8px;\n list-style-type: none;\n background-color: #edf1f9;\n`;\n\nconst TabList = styled.ul`\n ${TabListShared}\n margin: 0 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n margin: 0 15%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin: 0 25%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin: 0 30%;\n }\n`;\n\ninterface IProps {\n children: Array>;\n locationHash: string;\n selected: number;\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 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","import * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport Tippy from \"@tippyjs/react\";\n// Some webpack reason can't do import \"tippy.js/dist/tippy.css\";\n// import \"@tippyjs/react/node_modules/tippy.js/dist/tippy.css\";\nimport \"tippy.js/dist/tippy.css\";\n\nconst StyledTooltip = styled(Tippy)`\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 &[data-placement^=\"top\"] > .tippy-arrow::before {\n border-top-color: white;\n }\n\n &[data-placement^=\"bottom\"] > .tippy-arrow::before {\n border-bottom-color: white;\n }\n`;\n\nexport const TooltipLabel = styled.span`\n text-decoration: underline dotted;\n`;\n\ninterface IProps {\n content: React.ReactChild | React.ReactChild[];\n children: React.ReactElement;\n}\n\nconst Tooltip: React.FC = ({ children, content }) => {\n // We wrap in a span to stop issues with google translate\n return (\n {content}}\n arrow={true}\n placement=\"top\"\n >\n {children}\n \n );\n};\n\nexport default Tooltip;\n","import styled, { css } from \"styled-components/macro\";\nimport Table from \"./Table\";\nimport { SubStatus } from \"../core/store/my-team/types\";\nimport { rgba } from \"polished\";\n\nexport const ElementTable = styled(Table)`\n white-space: nowrap;\n table-layout: fixed;\n margin-bottom: ${({ theme }) => theme.space[3]};\n\n th,\n td {\n padding-top: 0.6rem;\n padding-bottom: 0.6rem;\n }\n\n thead th {\n font-family: ${({ theme }) => theme.fonts.bold};\n }\n`;\n\nexport const PrimaryCell = styled.td`\n position: relative;\n font-family: ${({ theme }) => theme.fonts.bold};\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.lightGrey};\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\nexport const BorderedCell = styled.td`\n position: relative;\n\n ::after {\n content: \"\";\n position: absolute;\n top: 1rem;\n right: 0;\n bottom: 1rem;\n display: block;\n width: 1px;\n border-radius: 1px;\n background: ${({ theme }) => theme.colors.lightGrey};\n }\n`;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\n\nconst StyledResult = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n display: inline-block;\n width: 2rem;\n height: 2rem;\n border-radius: 100%;\n background-color: ${(props) => props.theme.colors.result[props.resultChar]};\n color: white;\n font-size: 1.1rem;\n line-height: 2rem;\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 { integerToMoney } from \"../../../core/utils/money\";\nimport { getSuffixFromId } from \"../../../utils/fixtures\";\nimport Badge from \"../../Badge\";\nimport { BorderedCell } from \"../../ElementTable\";\nimport Result from \"../../Result\";\nimport { BadgeWrap } from \"../styles\";\nimport { IHistoryRow } from \"./types\";\n\nconst HistoryRow: React.FC = ({\n history,\n teamsById,\n statsByName,\n statNames,\n}) => {\n const getResult = (teamAScore: number, teamBScore: number) => {\n if (teamAScore > teamBScore) {\n return \"W\";\n }\n if (teamAScore < teamBScore) {\n return \"L\";\n }\n return \"D\";\n };\n\n const getElementResult = () =>\n history.was_home\n ? getResult(history.team_h_score, history.team_a_score)\n : getResult(history.team_a_score, history.team_h_score);\n\n const oppTeam = teamsById[history.opponent_team];\n return (\n \n {history.round}\n \n \n \n \n {oppTeam.short_name}{\" \"}\n {getSuffixFromId(history.fixture, history.was_home)}{\" \"}\n {history.team_h_score !== null &&\n `${history.team_h_score} - ${history.team_a_score}`}\n \n \n \n \n {history.total_points}\n {statNames.map((n) => (\n {history[statsByName[n].name]}\n ))}\n {history.transfers_balance}\n {history.selected}\n £{integerToMoney(history.value, 10)}\n \n );\n};\n\nexport default HistoryRow;\n","import HistoryRow from \"./HistoryRow\";\n\nexport default HistoryRow;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { RootState } from \"../../../core/store\";\nimport { getElementStatsByIdentifier } from \"../../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../../core/store/element-stats/types\";\nimport {\n getElement,\n getHistory,\n getHistoryTotals,\n} from \"../../../core/store/elements/reducers\";\nimport { getTeamsById } from \"../../../core/store/teams/reducers\";\nimport { formatNumberToLocaleString } from \"../../../core/utils/number\";\nimport {\n getElementStat,\n getRelevantStatNames,\n getStatAbbr,\n} from \"../../../utils/element-stats\";\nimport { BorderedCell } from \"../../ElementTable\";\nimport Tooltip, { TooltipLabel } from \"../../Tooltip\";\nimport { VisuallyHidden } from \"../../Utils\";\nimport HistoryRow from \"../HistoryRow\";\nimport {\n HistoryPer90Row,\n HistoryTable,\n HistoryTableWrap,\n HistoryTotalsHeading,\n HistoryTotalsRow,\n} from \"../styles\";\nimport { IEventHistoryTable } from \"./types\";\n\nconst EventHistoryTable: React.FC = ({ elementId }) => {\n const statsByName: Record = useSelector(\n getElementStatsByIdentifier\n );\n const teamsById = useSelector(getTeamsById);\n const history = useSelector((state: RootState) =>\n getHistory(state, elementId)\n );\n const historyTotals = useSelector((state: RootState) =>\n getHistoryTotals(state, elementId)\n );\n const element = useSelector((state: RootState) =>\n getElement(state, elementId)\n );\n\n if (!element) {\n return null;\n }\n\n const statNames = getRelevantStatNames(element.element_type);\n\n return (\n \n \n \n \n GW\n OPP\n \n Result\n \n Pts\n {statNames.map((n) => (\n \n \n {getStatAbbr(n, statsByName)}\n \n \n ))}\n \n \n NT\n \n \n \n \n TSB\n \n \n £\n \n \n \n {[...history].reverse().map((h) => (\n \n ))}\n \n \n \n  \n Totals\n  \n {historyTotals.total_points}\n {statNames.map((n) => (\n \n {formatNumberToLocaleString(historyTotals[statsByName[n].name])}\n \n ))}\n -\n -\n -\n \n \n  \n Per 90\n  \n -\n {statNames.map((n) => {\n const elementStat = getElementStat(n);\n return (\n \n {elementStat?.per90Stat &&\n elementStat.per90Stat !== \"starts_per_90\"\n ? element[elementStat.per90Stat]\n : \"-\"}\n \n );\n })}\n -\n -\n -\n \n \n \n \n );\n};\n\nexport default EventHistoryTable;\n","import EventHistoryTable from \"./EventHistoryTable\";\n\nexport default EventHistoryTable;\n","import styled from \"styled-components/macro\";\n\nexport const TeamName = styled.abbr`\n vertical-align: middle;\n text-decoration: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n &:after {\n content: attr(title);\n }\n span {\n display: none;\n }\n }\n`;\n","import { getSuffixFromId, isElementFixtureHome } from \"../../../utils/fixtures\";\nimport { TeamName } from \"./styles\";\nimport { IFixtureOpponent } from \"./types\";\n\nconst FixtureOpponent: React.FC = ({\n fixture,\n element,\n teamsById,\n}) => {\n const isHome = isElementFixtureHome(element.team, fixture.team_h);\n const opponent = isHome\n ? teamsById[fixture.team_a]\n : teamsById[fixture.team_h];\n const suffix = getSuffixFromId(fixture.id, isHome);\n return (\n \n \n {opponent.short_name}\n {\" \"}\n {suffix}\n \n );\n};\n\nexport default FixtureOpponent;\n","import FixtureOpponent from \"./FixtureOpponent\";\n\nexport default FixtureOpponent;\n","import styled from \"styled-components/macro\";\nimport { StatDivider } from \"../styles\";\n\nexport const StyledStatItem = styled.li`\n ${StatDivider}\n flex: 1 0 25%;\n min-height: 4.6rem;\n padding: 0 ${({ theme }) => theme.space[1]};\n list-style-type: none;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: 12.5%;\n }\n`;\n\nexport const StatHeading = styled.h3`\n margin-bottom: 0.2rem;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n`;\n\nexport const StatValue = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.8rem;\n`;\n\nexport const StatRank = styled.div`\n font-size: 1rem;\n`;\n","import { useSelector } from \"react-redux\";\nimport { getElementTypesById } from \"../../../core/store/element-types/reducers\";\nimport { StatHeading, StatRank, StatValue, StyledStatItem } from \"./styles\";\nimport { IStatItem } from \"./types\";\n\nconst StatItem: React.FC = ({ element, rankType, value, title }) => {\n const elementTypesById = useSelector(getElementTypesById);\n return (\n \n {title}\n {value}\n {rankType && (\n \n {rankType} of{\" \"}\n {elementTypesById[element.element_type].element_count}\n \n )}\n \n );\n};\n\nexport default StatItem;\n","import StatItem from \"./StatItem\";\n\nexport default StatItem;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getElementStatsByIdentifier } 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 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 {\n getCurrentEvent,\n getNextEvent,\n} 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 } from \"../../core/utils/datetime\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport { formatNumberToLocaleString } from \"../../core/utils/number\";\nimport {\n getElementStat,\n getRelevantStatNames,\n} from \"../../utils/element-stats\";\nimport { getShortNameFromId } from \"../../utils/events\";\nimport { isElementFixtureHome } from \"../../utils/fixtures\";\nimport { getStatDescription } from \"../../utils/stats\";\nimport Alert from \"../Alert\";\nimport Badge from \"../Badge\";\nimport Button from \"../Button\";\nimport Dialog, { CloseButton, CloseButtonWrap, CloseIcon } from \"../Dialog\";\nimport ElementMatchGroup, {\n BlankMatchBox,\n ElementFixtureBox,\n ElementHistoryBox,\n} from \"../ElementMatchGroup\";\nimport ElementPhoto from \"../ElementPhoto\";\nimport FixtureDifficulty from \"../FixtureDifficulty\";\nimport \"../OverflowScrolling.css\";\nimport { GradBorderBox, StyledFixtureStatsTable } from \"../styles\";\nimport SubHeading from \"../SubHeading\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport { VisuallyHidden } from \"../Utils\";\nimport EventHistoryTable from \"./EventHistoryTable\";\nimport FixtureOpponent from \"./FixtureOpponent\";\nimport StatItem from \"./StatItem\";\nimport {\n BadgeWrap,\n Club,\n DateCol,\n ElementDialogHeader,\n ElementHeading,\n ElementPhotoWrap,\n ElementTypeLabel,\n EventCol,\n FDRCol,\n FixturesTable,\n HistoryTableWrap,\n OppCol,\n RankTitle,\n StatList,\n StatsOuter,\n StatsWrap,\n Summary,\n TableWrap,\n} from \"./styles\";\n\ninterface IOwnProps {\n element: IElement;\n}\n\ninterface IPropsFromDispatch {\n addToWatched: (elementCode: number) => void;\n closeDialog: () => void;\n proposeElement: (elementId: number) => boolean;\n removeFromWatched: (elementCode: number) => void;\n}\n\ninterface IPropsFromState {\n currentEvent: IEvent | null;\n elementTypesById: IElementTypesById;\n fixtures: Array;\n history: IElementHistory[];\n nextEvent: IEvent | null;\n player: IPlayer | null;\n seasonHistory: IElementSeasonHistory[];\n statsByName: Record;\n teamsById: ITeamsById;\n watched: number[];\n}\n\ntype Props = IOwnProps & IPropsFromDispatch & IPropsFromState;\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, 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

View your watchlist on the transfers page

\n ) : (\n {\n removeFromWatched(element.code);\n }}\n width={1}\n >\n Remove from Watchlist\n \n );\n }\n return (\n {\n this.added = true;\n addToWatched(element.code);\n }}\n width={1}\n >\n Add to Watchlist\n \n );\n }\n\n public render() {\n const {\n closeDialog,\n currentEvent,\n element,\n elementTypesById,\n fixtures,\n history,\n nextEvent,\n seasonHistory,\n statsByName,\n teamsById,\n } = this.props;\n\n // Remove any fixtures from history. This can happen when a fixture in the current event is yet to start.\n const getHistoryWithoutFixtures = () => {\n const fixtureIds = new Set(\n fixtures.filter((f): f is IElementFixture => \"id\" in f).map((f) => f.id)\n );\n return history.filter((h) => !fixtureIds.has(h.fixture));\n };\n\n // Only get the last three in the history\n const lastThreeHistory = getHistoryWithoutFixtures().slice(-3);\n const nextThreeFixtures = fixtures.slice(0, 3);\n\n const getStatAbbr = (name: string) => {\n const abbr = getElementStat(name)?.shortName;\n return abbr\n ? abbr\n : statsByName[name].label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase();\n };\n\n const getEventId = () => {\n if (currentEvent) {\n return currentEvent.id;\n }\n if (nextEvent) {\n return nextEvent.id;\n }\n return null;\n };\n\n const eventId = getEventId();\n\n const elementType = elementTypesById[element.element_type];\n\n const statNames = getRelevantStatNames(element.element_type);\n\n return (\n \n \n \n \n close\n \n \n \n \n \n \n {element.news && (\n \n {element.news}\n \n )}\n \n \n \n \n
\n {elementType.singular_name}\n \n {element.first_name} {element.second_name}\n \n {teamsById[element.team].name}\n
\n
\n \n \n \n \n \n \n Form\n \n \n }\n value={element.form}\n element={element}\n />\n \n \n \n {element.element_type !== 5 && (\n <>\n \n \n \n ICT Index\n \n \n }\n value={element.ict_index}\n rankType={element.ict_index_rank_type}\n element={element}\n />\n \n )}\n \n \n TSB%\n \n \n }\n value={`${element.selected_by_percent}%`}\n rankType={element.selected_rank_type}\n element={element}\n />\n \n \n Rankings for {elementType.plural_name}\n \n \n \n \n \n \n {lastThreeHistory.map((h) => (\n \n ))}\n \n \n \n \n {nextThreeFixtures.map((f) =>\n f.code ? (\n \n ) : (\n \n )\n )}\n \n \n \n
\n \n \n \n \n \n This Season\n \n {history.length ? (\n \n ) : (\n

Data will appear here once the season is underway.

\n )}\n
\n {seasonHistory && seasonHistory.length > 0 && (\n \n \n Previous Seasons\n \n \n \n \n \n Season\n Pts\n {statNames.map((n) => (\n \n \n {getStatAbbr(n)}\n \n \n ))}\n \n \n £S\n \n \n \n \n £E\n \n \n \n \n \n {seasonHistory.map((h) => (\n \n {h.season_name}\n {h.total_points}\n {statNames.map((n) => (\n \n {formatNumberToLocaleString(\n h[statsByName[n].name]\n )}\n \n ))}\n £{integerToMoney(h.start_cost, 10)}\n £{integerToMoney(h.end_cost, 10)}\n \n ))}\n \n \n \n \n )}\n
\n
\n \n \n \n \n This Season\n \n \n \n \n Date\n GW\n Opponent\n \n \n FDR\n \n \n \n \n \n {fixtures.map((f) =>\n f.code ? (\n \n \n {f.kickoff_time ? (\n \n ) : (\n \n \n TBC\n \n \n )}\n \n \n {f.event ? getShortNameFromId(f.event, true) : \"\"}\n \n \n \n \n \n \n \n \n \n \n \n ) : (\n \n  \n \n {f.event ? getShortNameFromId(f.event, true) : \"\"}\n \n None\n  \n \n )\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 IElementFixture | IElementFixtureBlank\n >,\n history: getHistory(state, ownProps.element.id),\n nextEvent: getNextEvent(state),\n player: getPlayerData(state),\n seasonHistory: getSeasonHistory(state, ownProps.element.id).slice().reverse(),\n statsByName: getElementStatsByIdentifier(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 = connect(\n mapStateToProps,\n mapDispatchToProps\n)(ElementDialog);\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","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 ElementDialog from \"./ElementDialog\";\n\nexport default ElementDialog;\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 { ITeam } from \"../core/store/teams/types\";\n\n// Set from .env files in root of plfpl\nexport const baseUrl = process.env.REACT_APP_PULSE_API_BASE || \"\";\n\nexport interface IPulseResponse {\n pageInfo: any;\n content: Array;\n}\n\nexport interface IPulseRelatedArticle {\n id: number;\n label: string | null;\n type: string;\n}\n\nexport interface IPulseTag {\n id: number;\n label: string;\n}\n\ninterface ITeamsByPulseId {\n [key: string]: ITeam;\n}\n\nexport interface IPulseTeams {\n name: string;\n club: { name: string; shortName: string; abbr: string; id: number };\n teamType: string;\n shortName: string;\n id: number;\n altIds: { opta: string };\n}\n\nexport interface IPulseGoals {\n personId: number;\n assistId: number;\n clock: { secs: number; label: string };\n phase: string;\n type: string;\n description: string;\n}\n\nexport interface IPulseFixture {\n gameweek: {\n id: number;\n };\n kickoff: {\n completeness: number;\n millis: number;\n label: string;\n gmtOffset: number;\n };\n provisionalKickoff: {\n completeness: number;\n millis: number;\n label: string;\n gmtOffset: number;\n };\n teams: IPulseTeams[];\n replay: boolean;\n ground: { name: string; city: string; source: string; id: number };\n status: string;\n phase: string;\n outcome: string;\n attendance: number;\n clock: { secs: number; label: string };\n fixtureType: string;\n extraTime: boolean;\n shootout: boolean;\n goals: IPulseGoals[];\n penaltyShootouts: [];\n id: number;\n altIds: { opta: string };\n}\n\nexport interface IPulseNewsArticleRefs {\n label: string | null;\n id: number;\n type: string;\n}\n\nexport interface IPulseNewsArticle {\n id: number;\n accountId: number;\n type: string;\n title: string;\n description: string | null;\n date: string;\n location: string | null;\n coordinates: Array | null;\n commentsOn: boolean;\n copyright: null;\n publishFrom: number;\n publishTo: number;\n tags: Array<{ id: number; label: string }>;\n platform: string;\n language: string;\n additionalInfo: any;\n canonicalUrl: string;\n references: IPulseNewsArticleRefs[];\n related: Array;\n metadata: any;\n titleTranslations: null;\n lastModified: number;\n titleUrlSegment: string;\n body: null;\n author: null;\n subtitle: string | null;\n summary: string | null;\n hotlinkUrl: string | null;\n duration: number;\n leadMedia: null;\n imageUrl: null;\n onDemandUrl: null;\n}\n\nexport interface IPulseNewsResponse {\n pageInfo: {\n page: number;\n numPages: number;\n pageSize: number;\n numEntries: number;\n };\n content: IPulseNewsArticle[];\n}\n\nasync function _fetch(url: string) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return await response.json();\n}\n\n// Scout\nexport async function fetchNews(\n number: number,\n tag: string\n): Promise {\n const textUrl = [\n `${baseUrl}/content/PremierLeague/text/EN/?pageSize=${number}`,\n `&page=0&tagNames=${tag}`,\n ];\n return _fetch(textUrl.join(\"\"));\n}\n\nexport async function fetchNewsText(id: number): Promise {\n const detailUrl = `${baseUrl}/content/PremierLeague/TEXT/EN/${id}`;\n return _fetch(detailUrl);\n}\n\nexport async function fetchNewsArticle(id: number): Promise {\n return _fetch(`${baseUrl}/content/PremierLeague/news/en/${id}`);\n}\n\nexport async function fetchPlaylist(\n id: number,\n pageSize: number\n): Promise {\n return _fetch(\n `${baseUrl}/content/PremierLeague/playlist/en/${id}?pageSize=${pageSize}&page=0&fullObjectResponse=true`\n );\n}\n\nexport async function fetchNewsArticles(\n referenceExpression: string\n): Promise {\n const params = new URLSearchParams();\n params.set(\"pageSize\", \"50\");\n params.set(\"tagExpression\", `\"ClubTeamNews\"`);\n params.set(\"referenceExpression\", referenceExpression);\n\n const { content } = await _fetch(\n `${baseUrl}/content/PremierLeague/news/EN/?${params.toString()}`\n );\n return Promise.resolve(content as IPulseNewsArticle[]);\n}\n\nexport async function fetchVideos(number: number): Promise {\n const videoUrl = [\n `${baseUrl}/content/PremierLeague/video/EN/?pageSize=${number}`,\n `&page=0&tagNames=Fantasy`,\n ];\n return _fetch(videoUrl.join(\"\"));\n}\n\nexport const imageFromNews = (news: any, id: number) => {\n if (!news.leadMedia) {\n return null;\n }\n const lm = news.leadMedia;\n const variants =\n lm.type === \"video\" && lm.thumbnail ? lm.thumbnail.variants : lm.variants;\n const filteredVariants = variants.filter(\n (v: any) => v.tag && v.tag.id === id\n );\n return filteredVariants.length ? filteredVariants[0] : null;\n};\n\n// Broadcasters\nexport async function fetchBroadcastersForFixtures(\n startDate: string,\n endDate: string\n): Promise {\n const url = [\n `${baseUrl}/football/broadcasting-schedule/fixtures`,\n `?comps=1&pageSize=100&page=0&altIds=true`,\n `&startDate=${startDate}&endDate=${endDate}`,\n // `&countryCodes=ES`\n ];\n return _fetch(url.join(\"\"));\n}\n\nexport async function fetchFixtures(\n eventDeadlineTime: string\n): Promise {\n const params = new URLSearchParams();\n params.set(\"sort\", \"asc\");\n params.set(\"comps\", \"1\");\n params.set(\"altIds\", \"true\");\n params.set(\"detail\", \"1\");\n params.set(\"startDate\", eventDeadlineTime);\n\n const { content } = await _fetch(\n `${baseUrl}/football/fixtures?${params.toString()}`\n );\n return Promise.resolve(content as IPulseFixture[]);\n}\n\nexport const getPulseTeamIdFromRefs = (refs: IPulseNewsArticleRefs[]) => {\n const clubRefs = refs.filter((r) => r.type === \"FOOTBALL_CLUB\");\n return clubRefs.length && clubRefs[0].id ? clubRefs[0].id : 0;\n};\n\nexport const getTeamsByPulseId = (teams: ITeam[]): ITeamsByPulseId =>\n teams.reduce((acc, curr) => {\n if (!curr.pulse_id) {\n return acc;\n }\n return { ...acc, [curr.pulse_id]: curr };\n }, {});\n","import moment from \"moment\";\nimport React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getFixturesByEvent } from \"../core/store/fixtures/reducers\";\nimport { IFixture } from \"../core/store/fixtures/types\";\nimport { fetchBroadcastersForFixtures } from \"../utils/pulse\";\n\nexport interface IBroadcasterInfo {\n abbreviation: string;\n name: string;\n url: string;\n}\n\ntype BroadcasterInfo = Record>;\n\nexport const FixtureBroadcastersContext = React.createContext(\n {} as BroadcasterInfo\n);\n\nconst FixtureBroadcasters: React.FC = ({ children }) => {\n const [broadcasterInfo, setBroadcasterInfo] = useState({});\n const fixturesByEvent = useSelector(getFixturesByEvent);\n\n const optaMapFromFixtures = (fixtures: IFixture[]): Record =>\n fixtures.reduce(\n (memo, f) => ({\n ...memo,\n [`g${f.code}`]: f.id,\n }),\n {}\n );\n\n useEffect(() => {\n // Limit fetches caused by loading all fixtures for FDR\n let fetchesInProgress = 0;\n Object.keys(fixturesByEvent).forEach(async (event) => {\n // We already have a fetch in progress\n if (fetchesInProgress) return;\n\n const fixtures = fixturesByEvent[event];\n // There are no fixtures in the event so no broadasters ...\n if (!fixtures.length) return;\n\n // We have fixtures but no broadcaster info so fetch it\n if (!broadcasterInfo[event]) {\n fetchesInProgress++;\n const optaMap = optaMapFromFixtures(fixtures);\n const broadcasterData = await fetchBroadcastersForFixtures(\n moment(fixtures[0].kickoff_time!).format(\"YYYY-MM-DD\"),\n moment(fixtures[fixtures.length - 1].kickoff_time!).format(\n \"YYYY-MM-DD\"\n )\n ).catch((error) => {});\n if (broadcasterData && broadcasterData.content) {\n const eventBroadcasterInfo: Record = {};\n broadcasterData.content.forEach((data) => {\n if (data.fixture && data.fixture.altIds && data.broadcasters) {\n const fixtureId = optaMap[data.fixture.altIds.opta];\n const bData = data.broadcasters\n .filter(\n (broadcasterData: IBroadcasterInfo) =>\n !/^UK Radio -/.test(broadcasterData.name)\n )\n .map((broadcasterData: IBroadcasterInfo) => ({\n abbreviation: broadcasterData.abbreviation,\n name: broadcasterData.name,\n url: broadcasterData.url,\n }));\n if (bData && bData.length) {\n eventBroadcasterInfo[fixtureId] = bData;\n }\n }\n });\n setBroadcasterInfo((state) => ({\n ...state,\n [event]: eventBroadcasterInfo,\n }));\n }\n }\n });\n // We only want to run this effect when fixturesByEvent changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fixturesByEvent]);\n\n return (\n \n {children}\n \n );\n};\n\nexport default FixtureBroadcasters;\n","export const getChipName = (name: string) => {\n const chipNames: Record = {\n bboost: \"Bench Boost\",\n \"3xc\": \"Triple Captain\",\n freehit: \"Free Hit\",\n wildcard: \"Wildcard\",\n manager: \"Assistant Manager\",\n managerplaceholder: \"Assistant Manager\",\n };\n return chipNames[name] || \"\";\n};\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","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrowLeft(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 15,\n viewBox: \"0 0 24 15\",\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: \"M23.9996,7.4946 C23.9786,7.0416 23.8296,6.5696 23.4816,6.2506 C23.4816,6.2506 23.4806,6.2496 23.4806,6.2496 L18.4596,1.2256 L17.7526,0.5176 C17.4346,0.1986 16.9586,0.0016 16.5096,-0.0004 C16.0766,-0.0004 15.5616,0.1906 15.2656,0.5176 C14.9596,0.8526 14.7296,1.2916 14.7486,1.7616 C14.7686,2.2296 14.9276,2.6676 15.2656,3.0056 L17.9916,5.7336 C17.9916,5.7336 2.6226,5.7246 1.7966,5.7346 L1.7616,5.7346 C1.3076,5.7346 0.8386,5.9316 0.5186,6.2526 C0.2116,6.5586 -0.0164,7.0556 0.0006,7.4966 C0.0216,7.9496 0.1696,8.4226 0.5176,8.7406 C0.8656,9.0596 1.2886,9.2576 1.7616,9.2566 L17.9986,9.2566 L15.2646,11.9936 C14.9456,12.3116 14.7496,12.7866 14.7476,13.2376 C14.7476,13.6686 14.9376,14.1846 15.2646,14.4816 C15.5996,14.7866 16.0376,15.0166 16.5076,14.9986 C16.9736,14.9746 17.4136,14.8186 17.7506,14.4816 L22.7766,9.4516 L23.4856,8.7436 C23.6656,8.5626 23.7936,8.3486 23.8776,8.1186 C23.9576,7.9146 24.0076,7.6996 23.9996,7.4946\",\n transform: \"matrix(-1 0 0 1 24 0)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowLeft);\nexport default __webpack_public_path__ + \"static/media/arrow-left.f8c333ee.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgArrowRight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 20,\n viewBox: \"0 0 32 20\",\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: \"M53.6485838,32.0017628 L50.0028805,32.002243 L44.1795487,32.002243 L42.8449352,32.002243 C42.2448392,32.002243 41.6106577,32.2648846 41.1853096,32.6869358 C40.7782045,33.0941023 40.4723956,33.7595891 40.5007201,34.3468117 C40.5285646,34.9508394 40.7258761,35.5807952 41.1853096,36.0066875 C41.6447432,36.4287387 42.2069131,36.6913803 42.8449352,36.6913803 L46.4978397,36.6913803 L47.9851176,36.6913803 L45.4666347,39.209763 C43.6044167,41.0722619 41.7383581,42.9386019 39.8780605,44.7991802 C38.2707633,46.4067198 36.6673068,48.0104182 35.0585694,49.6193983 C34.2803649,50.3977202 33.4867979,51.1722009 32.7181949,51.9601258 L32.6845895,51.9937362 C32.2568411,52.4215492 32,53.0481439 32,53.6536121 C32,54.2317118 32.2530005,54.9140038 32.6845895,55.313488 C33.1305809,55.7206545 33.7157945,56.0265096 34.3442151,55.9981808 C34.9721555,55.9703321 35.5592895,55.7600268 36.0038406,55.313488 L37.931349,53.3856888 L42.5261642,48.7906607 L48.1147384,43.2007634 C49.1805089,42.1348321 50.2462794,41.0689008 51.3115699,40.0034497 L51.3115699,43.8239971 L51.3115699,45.1597723 C51.3115699,45.7599588 51.5741719,46.3937558 51.9961594,46.8196481 C52.4032645,47.2263345 53.068651,47.5321896 53.6557849,47.5038608 C54.2597216,47.4760121 54.8895823,47.279151 55.3154105,46.8196481 C55.7316371,46.3582247 56,45.7954898 56,45.1597723 L56,41.5058366 L56,35.6821067 L56,34.3468117 C56,34.0073461 55.9183869,33.6846859 55.781085,33.3893941 C55.6649064,33.1209907 55.5084013,32.8717932 55.3082093,32.6864556 C54.8617379,32.2792891 54.2770043,31.9739142 53.6485838,32.0017628 Z\",\n transform: \"rotate(45 71.042 -6.799)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgArrowRight);\nexport default __webpack_public_path__ + \"static/media/arrow-right.c709f2fa.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\";\n\ninterface IArrow {\n color?: \"primary\" | \"darkPink\" | \"white\";\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 ControlArrowRight = styled(ArrowRight)`\n ${size(\"10px\")};\n margin-left: 0.5rem;\n`;\n\nexport const ControlArrowLeft = styled(ArrowLeft)`\n ${size(\"10px\")};\n margin-right: 0.5rem;\n`;\n","import { Link } from \"@reach/router\";\nimport * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ControlArrowRight } from \"./icons/Arrows\";\nimport { LinkStyles } from \"./Link\";\n\ninterface IBoldLinkStyles {\n color?: \"white\";\n}\n\ninterface IBoldLinkWrapProps {\n align?: \"left\" | \"center\" | \"right\";\n}\n\nexport const BoldLinkWrap = styled.div`\n margin: ${({ theme }) => `${theme.space[3]} ${theme.space[2]}`};\n text-align: ${(props) => (props.align ? props.align : \"left\")};\n`;\n\nconst BoldLinkStyles = css`\n ${LinkStyles}\n\n display: inline-flex;\n align-items: center;\n font-size: ${({ theme }) => theme.fontSizes[1]};\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 color?: \"white\";\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, color, to }) => (\n \n {children}\n \n \n);\n\nexport default BoldLink;\n","import { useState } from \"react\";\n\nexport function useFormHook(initialStateObject: T) {\n const [formState, updateFormState] = useState(initialStateObject);\n\n // event handler\n const updateState = (event: React.FormEvent) => {\n const { id, value } = event.currentTarget;\n const newFormState = {\n ...formState,\n [id]: value,\n };\n updateFormState(newFormState);\n };\n\n const updateCheckboxState = (event: React.FormEvent) => {\n const { id, checked } = event.currentTarget;\n const newFormState = {\n ...formState,\n [id]: checked,\n };\n updateFormState(newFormState);\n };\n\n // color change handler\n const updateColorState = (name: string, hex: string) => {\n const newFormState = {\n ...formState,\n [name]: hex,\n };\n updateFormState(newFormState);\n };\n\n const updateSelectState = (event: React.ChangeEvent) => {\n const { id, value } = event.currentTarget;\n const newFormState = {\n ...formState,\n [id]: value,\n };\n updateFormState(newFormState);\n };\n\n return [\n formState,\n updateState,\n updateCheckboxState,\n updateColorState,\n updateSelectState,\n ] as [\n typeof formState,\n typeof updateState,\n typeof updateCheckboxState,\n typeof updateColorState,\n typeof updateSelectState\n ];\n}\n\nexport default useFormHook;\n","import React from \"react\";\nimport { SketchPicker } from \"react-color\";\nimport styled from \"styled-components/macro\";\n\ntype Props = {\n name: string;\n color: string;\n label: string;\n onChange: (name: string, color: any) => void;\n};\n\nconst ColorPickerWrapper = styled.div`\n position: relative;\n display: inline;\n`;\n\nconst Wrapper = styled.div`\n display: flex;\n flex: 1;\n align-items: center;\n margin-bottom: ;\n`;\n\nconst ColorPickerBox = styled.div`\n display: inline-block;\n padding: 4px;\n margin: 0;\n cursor: pointer;\n background: #eee;\n vertical-align: middle;\n`;\n\nconst Preview = styled.div`\n position: relative;\n width: 25px;\n height: 20px;\n border: solid 1px #222;\n margin-right: 5px;\n float: left;\n background-color: ${({ color }) => color};\n`;\n\nconst DropDownArrow = styled.div`\n padding: 2px 0;\n height: 16px;\n line-height: 16px;\n float: left;\n font-size: 10px;\n`;\n\nconst SyledSketch = styled(SketchPicker)`\n position: absolute;\n z-index: ${({ theme }) => theme.zIndex.dialog};\n left: 0;\n`;\n\nconst ColorLabel = styled.div`\n padding-left: 0.5rem;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.4rem;\n`;\n\nconst Overlay = styled.div`\n position: fixed;\n z-index: ${({ theme }) => theme.zIndex.overlay};\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n`;\n\nconst ColorPicker: React.FunctionComponent = ({\n name,\n label,\n color,\n onChange,\n}) => {\n const [open, setOpen] = React.useState(false);\n return (\n \n \n setOpen((open) => !open)}>\n \n â–¼\n \n {open && (\n <>\n {\n setOpen(false);\n }}\n />\n {/* Can supply custom swatch */}\n onChange(name, color.hex)}\n disableAlpha\n />\n \n )}\n \n {label}\n \n );\n};\n\nexport default ColorPicker;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { SponsorValues } from \"../EntryUpdate\";\n\nconst Paragraph = styled.p`\n margin: ${({ theme }) => theme.space[2]} 0;\n font-size: ${({ theme }) => theme.fontSizes[2]};\n font-family: ${({ theme }) => theme.fonts.regular};\n line-height: 1.6;\n`;\n\ntype Props = {\n selectedSponsor: SponsorValues;\n};\n\nconst TwitterLink = styled.a`\n text-decoration: none;\n color: #e90052;\n font-family: ${({ theme }) => theme.fonts.regular};\n :hover {\n text-decoration: underline;\n }\n`;\n\nconst SponsorComponents: Record = {\n none:
,\n \"pl-inspires\": (\n \n Inspiring children and young people to develop their personal skills and\n positive attitudes to succeed in life.\n \n ),\n \"pl-kicks\": (\n \n Inspiring children and young people to achieve their potential and improve\n their wellbeing; working together to build stronger, safer and more\n inclusive communities.\n \n ),\n \"pl-primary-stars\": (\n \n Inspiring primary school children in everything from Maths and English to\n teamwork and sport.\n \n ),\n \"rainbow-laces\": (\n \n The Premier League and clubs are committed to supporting LGBTQ+ inclusion\n and making it clear that football is for everyone.{\" \"}\n \n #RainbowLaces\n \n \n ),\n \"no-racism\": (\n \n There’s no room for racism. Anywhere. And we won’t stop until it is kicked\n out.{\" \"}\n \n #NoRoomForRacism\n \n \n ),\n ukraine: (\n \n Join the Premier League and clubs in showing support for the people of\n Ukraine suffering from Russia's actions.\n \n ),\n};\n\nconst SponsorText: React.FunctionComponent = ({ selectedSponsor }) => {\n return (\n
{SponsorComponents[selectedSponsor]}
\n );\n};\n\nexport default SponsorText;\n","import { navigate } from \"@reach/router\";\nimport React, { Suspense } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\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 } from \"../core/store/player/types\";\nimport { getTeams } from \"../core/store/teams/reducers\";\nimport { ITeam } from \"../core/store/teams/types\";\nimport { formatRawAsLocal } from \"../core/utils/datetime\";\nimport Button from \"./Button\";\nimport { FieldWrap, InputField, SelectField } from \"./FieldRenderers\";\nimport HelmetHead from \"./HelmetHead\";\nimport ColorPicker from \"./kit/ColorPicker\";\nimport SponsorText from \"./kit/SponsorText\";\nimport { Main, Wrapper } from \"./Layout\";\nimport SubHeading from \"./SubHeading\";\nimport Title from \"./Title\";\nconst Kit = React.lazy(() => import(\"./kit/Kit\"));\n\nconst Fieldset = styled.fieldset`\n padding: 2rem 0;\n margin: 0;\n border: 0;\n border-bottom: 1px solid #e8e8e8;\n :first-of-type {\n padding-top: 0;\n }\n :last-of-type {\n border-bottom: 0;\n }\n`;\n\nconst KitController = styled.div`\n display: flex;\n flex-direction: column;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-direction: row-reverse;\n }\n`;\n\nconst KitControllerChildren = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 1 50%;\n }\n`;\n\nconst KitWrapper = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-top: 10rem;\n }\n`;\n\nconst SectionHeader = styled.h3`\n margin-bottom: 2rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.5rem;\n`;\n\nconst TwoColumns = styled.div`\n display: flex;\n flex-direction: row;\n margin-bottom: 2rem;\n`;\n\nexport type ShirtValues = \"plain\" | \"stripes\" | \"hoops\";\n\nconst shirtOptions: { label: string; value: ShirtValues }[] = [\n { label: \"Plain\", value: \"plain\" },\n { label: \"Stripes\", value: \"stripes\" },\n { label: \"Hoops\", value: \"hoops\" },\n];\n\nexport type SockValues = \"plain\" | \"hoops\";\n\nconst sockOptions: { label: string; value: SockValues }[] = [\n { label: \"Plain\", value: \"plain\" },\n { label: \"Hoops\", value: \"hoops\" },\n];\n\nexport type SponsorValues =\n | \"none\"\n | \"pl-inspires\"\n | \"pl-kicks\"\n | \"pl-primary-stars\"\n | \"rainbow-laces\"\n | \"no-racism\"\n | \"ukraine\";\n\nconst sponsorOptions: { label: string; value: SponsorValues }[] = [\n { label: \"None\", value: \"none\" },\n { label: \"Premier League Inspires\", value: \"pl-inspires\" },\n { label: \"Premier League Kicks\", value: \"pl-kicks\" },\n { label: \"Premier League Primary Stars\", value: \"pl-primary-stars\" },\n { label: \"Rainbow Laces\", value: \"rainbow-laces\" },\n { label: \"No Room For Racism\", value: \"no-racism\" },\n { label: \"Football Stands Together\", value: \"ukraine\" },\n];\n\ntype KitData = {\n kit_shirt_type: ShirtValues;\n kit_shirt_base: string;\n kit_shirt_sleeves: string;\n kit_shirt_secondary: string;\n kit_shirt_logo: SponsorValues;\n kit_shorts: string;\n kit_socks_type: SockValues;\n kit_socks_base: string;\n kit_socks_secondary: string;\n};\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};\n\nexport const kitFromEntry = (entry: IEntry): KitState => {\n const defaultHexColor = \"#E1E1E1\";\n let kit: KitData;\n const defaultKit: KitState = {\n \"ism-shirt-style\": \"plain\",\n \"ism-sponsor-logo\": \"none\",\n \"ism-sock-style\": \"plain\",\n \"ism-shirt-color\": defaultHexColor,\n \"ism-sleeve-color\": defaultHexColor,\n \"ism-short-color\": defaultHexColor,\n \"ism-sock-color\": defaultHexColor,\n \"ism-shirt-style-color\": defaultHexColor,\n \"ism-sock-style-color\": defaultHexColor,\n };\n if (!entry.kit) {\n return defaultKit;\n }\n try {\n kit = JSON.parse(entry.kit);\n } catch (error) {\n return defaultKit;\n }\n return {\n \"ism-shirt-style\": kit.kit_shirt_type,\n \"ism-sponsor-logo\": kit.kit_shirt_logo,\n \"ism-sock-style\": kit.kit_socks_type,\n \"ism-shirt-color\": kit.kit_shirt_base,\n \"ism-sleeve-color\": kit.kit_shirt_sleeves,\n \"ism-short-color\": kit.kit_shorts,\n \"ism-sock-color\": kit.kit_socks_base,\n \"ism-shirt-style-color\": kit.kit_shirt_secondary,\n \"ism-sock-style-color\": kit.kit_socks_secondary,\n };\n};\n\nexport const initState = (entry: IEntry): FormState => ({\n ...kitFromEntry(entry),\n \"ism-team-name\": entry.name,\n \"ism-fav-club\": entry.favourite_team || -1,\n \"ism-email\": false,\n});\n\ntype Props = {\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 teams,\n updateEntry,\n}) => {\n const [\n formState,\n updateState,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateCheckboxState,\n updateColorState,\n updateSelectState,\n ] = useFormHook(initState(entry));\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: JSON.stringify({\n kit_shirt_type: formState[\"ism-shirt-style\"],\n kit_shirt_base: formState[\"ism-shirt-color\"],\n kit_shirt_sleeves: formState[\"ism-sleeve-color\"],\n kit_shirt_secondary: formState[\"ism-shirt-style-color\"],\n kit_shirt_logo: formState[\"ism-sponsor-logo\"],\n kit_shorts: formState[\"ism-short-color\"],\n kit_socks_type: formState[\"ism-sock-style\"],\n kit_socks_base: formState[\"ism-sock-color\"],\n kit_socks_secondary: formState[\"ism-sock-style-color\"],\n }),\n favourite_team: fave === -1 ? null : fave,\n email: formState[\"ism-email\"],\n });\n };\n return (\n \n \n
\n \n
\n My Details\n Team Details\n \n \n \n \n

\n {entry.name_change_blocked\n ? \"Your requested team name is currently pending moderation and can't be edited at this time.\"\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 Team Kit\n \n \n Kit to go here

}>\n \n \n \n
\n
\n \n
\n Shirt\n \n \n \n \n \n \n {shirtOptions.map((o) => (\n \n ))}\n \n {formState[\"ism-shirt-style\"] !== \"plain\" && (\n \n \n \n )}\n \n \n {sponsorOptions.map((o) => (\n \n ))}\n \n \n
\n
\n Shorts/Socks\n \n \n\n \n \n \n {sockOptions.map((o) => (\n \n ))}\n \n {formState[\"ism-sock-style\"] !== \"plain\" && (\n \n \n \n )}\n
\n
\n
\n Favourite Club\n \n

\n Choose your favourite Premier League club if you would like to\n be entered into a supporters league. If you do not select an\n option before {formatRawAsLocal(events[0].deadline_time)}, you\n will not be entered into a supporters league.\n

\n
\n \n \n {teams.map((tm) => (\n \n {tm.name}\n \n ))}\n \n None\n \n \n \n {/*

Subscribe To Email Newsletters

\n\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\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 * as React from \"react\";\nimport { default as CountryFlag } from \"react-world-flags\";\nimport { IEntry } from \"../core/store/entries/types\";\n\ninterface IProps {\n entry: IEntry;\n}\n\nconst Flag: React.FC = ({ entry }) => {\n const exclusionList = [\"RUS\", \"BLR\"];\n const entryLongCode = entry.player_region_iso_code_long;\n const gbPrefix = \"GB_\";\n\n if (exclusionList.includes(entryLongCode)) {\n return null;\n }\n\n const getFlagCode = () => {\n // Work around where GB countries need a prefix and we store the wrong ISO code for Wales and Scotland\n if (entryLongCode === \"WAL\") {\n return `${gbPrefix}WLS`;\n }\n if (entryLongCode === \"SCO\") {\n return `${gbPrefix}SCT`;\n }\n if (entryLongCode === \"ENG\") {\n return `${gbPrefix}ENG`;\n }\n\n return entryLongCode;\n };\n\n const flagCode = getFlagCode();\n const customFlagPath = `${process.env.PUBLIC_URL}/img/flags`;\n\n if (entryLongCode === \"NIR\") {\n return (\n \n );\n }\n\n return (\n \n }\n />\n );\n};\n\nexport default Flag;\n","import styled from \"styled-components/macro\";\n\nconst Footnote = styled.p`\n font-size: 1.2rem;\n`;\n\nexport default Footnote;\n","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMovement(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\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 fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8,16 C8.85354691,16 9.67587305,15.866328 10.4471863,15.618776 C13.6684789,14.5849062 16,11.5647311 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n fillRule: \"nonzero\",\n d: \"M4.5,6.27851588 L5.1004646,5.63925794 C5.43077928,5.2876031 5.70475818,5 5.70967916,5 C5.71460014,5 6.23194007,5.54639596 6.85921456,6.2144865 L8,7.428973 L9.14078544,6.2144865 C9.76831893,5.5467015 10.2856309,5 10.2903208,5 C10.2952427,5 10.5695007,5.28761055 10.8995354,5.63925794 L11.5,6.27851588 L9.75217699,8.13925794 C8.79080084,9.16274432 8.00246399,10 8.000014,10 C7.99756401,10 7.20894716,9.16281884 6.24785101,8.13925794 L4.5,6.27851588 Z\",\n transform: \"matrix(1 0 0 -1 0 15)\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMovement);\nexport default __webpack_public_path__ + \"static/media/movement.03239210.svg\";\nexport { ForwardRef as ReactComponent };","var _rect;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNew(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\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: 8,\n height: 2,\n x: 4,\n y: 7,\n fillRule: \"evenodd\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNew);\nexport default __webpack_public_path__ + \"static/media/new.e061b115.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as BaseMovementIcon } from \"../../img/icons/movement.svg\";\nimport { ReactComponent as BaseNewIcon } from \"../../img/icons/new.svg\";\n\nexport const NewIcon = styled(BaseNewIcon)`\n fill: ${({ theme }) => theme.colors.darkGrey};\n`;\n\nexport const MovementIcon = styled(BaseMovementIcon)<{ status: string }>`\n ${(props) =>\n props.status &&\n css`\n fill: ${props.theme.colors.movement[props.status].bg};\n color: ${props.theme.colors.movement[props.status].color};\n `}\n\n ${(props) =>\n props.status === \"down\" &&\n css`\n transform: rotate(180deg);\n `}\n`;\n","import * as React from \"react\";\nimport { NewIcon, MovementIcon } from \"../icons/Movement\";\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 let status = \"\";\n if (rank === lastRank) {\n status = \"same\";\n }\n if (rank > lastRank) {\n status = \"down\";\n }\n if (rank < lastRank) {\n status = \"up\";\n }\n\n return ;\n};\n\nexport default Movement;\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 { Box } from \"rebass/styled-components\";\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 );\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 { 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 return (\n \n \n \n {league.name} cup\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 padding: ${({ theme }) => `${theme.space[4]} ${theme.space[2]}`};\n border-bottom: 2px solid ${({ theme }) => theme.colors.lightGrey};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.7rem;\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 margin-bottom: ${({ theme }) => theme.space[3]};\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 { 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\n return (\n \n {title}\n \n \n \n \n Cup\n \n \n Round\n \n \n Status\n \n \n \n \n {leagues.map((l) => (\n \n ))}\n \n \n \n );\n};\n\nexport default MyLeagueCupSummary;\n","import { hiDPI, rgba } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport pattern2Crop184 from \"../img/pattern/pattern-2-crop-184.png\";\nimport pattern2Crop90 from \"../img/pattern/pattern-2-crop-90.png\";\n\ninterface IStyledProps {\n showDeepGradient?: boolean;\n}\n\nexport const PatternWrapMain = styled.div`\n margin: ${(props) => props.theme.space[2]};\n padding-top: ${({ theme }) => theme.space[3]};\n border-radius: ${({ theme }) => theme.radii[1]};\n background-repeat: no-repeat;\n background-position: 0, right top, 0;\n box-shadow: 0 8px 12px 0 ${rgba(\"black\", 0.08)};\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 30px,\n rgba(255, 255, 255, 0.5) 75px,\n white 120px\n ),\n url(${pattern2Crop90}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n\n overflow: auto;\n\n ${hiDPI(2)} {\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 30px,\n rgba(255, 255, 255, 0.5) 75px,\n white 120px\n ),\n url(${pattern2Crop184}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-size: auto, 90px 60px, auto;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin: 0 0 ${({ theme }) => theme.space[3]};\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 30px,\n rgba(255, 255, 255, 0.5) 75px,\n white 120px\n ),\n url(${pattern2Crop184}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-size: auto, auto, auto;\n }\n\n ${({ showDeepGradient }) =>\n showDeepGradient &&\n css`\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 200px,\n white 320px\n ),\n url(${pattern2Crop90}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n ${hiDPI(2)} {\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 200px,\n white 320px\n ),\n url(${pattern2Crop184}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n }\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 200px,\n white 320px\n ),\n url(${pattern2Crop184}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n }\n `}\n`;\n\nexport const PatternWrap = styled.div`\n border-radius: ${({ theme }) => theme.radii[1]};\n background-repeat: no-repeat;\n background-position: 0, right top, 0;\n background-image: linear-gradient(\n to bottom,\n ${rgba(\"white\", 0)} 10px,\n rgba(255, 255, 255, 0.2) 30px,\n white 60px\n ),\n url(${pattern2Crop90}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n box-shadow: 0 8px 12px 0 rgba(107, 107, 107, 0.08);\n overflow: auto;\n`;\n\nexport const Glass = styled.div`\n margin: 0 ${({ theme }) => theme.space[2]} 1.2rem;\n padding: 0 0.8rem;\n border-radius: ${({ theme }) => theme.radii[1]};\n background: ${rgba(\"white\", 0.6)};\n box-shadow: 0 8px 12px 0 ${rgba(\"#6b6b6b\", 0.32)};\n text-align: center;\n`;\n","import { rgba } from \"polished\";\nimport * as React from \"react\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { PatternWrap } from \"./GraphicPatterns\";\n\ninterface IStyledProps {\n hasBorder?: boolean;\n isPadded?: boolean;\n}\n\nconst StyledPanelHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n`;\n\nconst PanelHeading = styled.h3`\n flex: 1;\n margin: ${({ theme }) => theme.space[3]} 0;\n padding: 0 ${({ theme }) => theme.space[2]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.7rem;\n`;\n\nconst PanelBody = styled.div`\n padding-top: ${({ theme }) => theme.space[2]};\n\n ${(props) =>\n props.isPadded &&\n css`\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n `}\n\n ${(props) =>\n props.hasBorder &&\n css`\n position: relative;\n width: 100%;\n\n &::after {\n content: \"\";\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 1px;\n background-image: linear-gradient(\n to right,\n ${({ theme }) => rgba(theme.colors.lightGrey, 0)},\n ${({ theme }) => theme.colors.lightGrey},\n ${({ theme }) => rgba(theme.colors.lightGrey, 0)}\n );\n }\n `}\n`;\n\nconst PanelFooter = styled.div`\n margin: ${({ theme }) => theme.space[3]} ${({ theme }) => theme.space[2]} 0;\n padding-bottom: ${({ theme }) => theme.space[3]};\n`;\n\ninterface IPanelHeaderProps {\n icon?: React.ReactNode;\n title: React.ReactNode;\n}\n\nconst PanelHeader: React.FC = ({\n children,\n icon = null,\n title,\n}) => (\n \n \n {icon ? (\n \n {icon}\n {title}\n \n ) : (\n <>{title}\n )}\n \n {children}\n \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 return {this.props.children};\n }\n}\n\nexport default Panel;\n","import React from \"react\";\nimport { ILeague } from \"../core/store/leagues/types\";\nimport ButtonLink from \"./ButtonLink\";\n\ninterface IProps {\n entryId?: number;\n league?: ILeague;\n}\n\nconst ReportNameButton: React.FC = ({ entryId, league }) => {\n // We only want one or the other so return nothing if both or neither.\n if ((entryId && league) || (!entryId && !league)) {\n return null;\n }\n return (\n \n Report Offensive Name\n \n );\n};\nexport default ReportNameButton;\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: 0 ${({ theme }) => `0 ${theme.space[2]} ${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 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 getEntry,\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 { IEntry, ILeagueEntry } 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 { ITeam, ITeamsById } from \"../core/store/teams/types\";\nimport { integerToMoney } from \"../core/utils/money\";\nimport BoldLink, { BoldHyperlink, BoldLinkWrap } from \"./BoldLink\";\nimport { kitFromEntry } from \"./EntryUpdate\";\nimport Flag from \"./Flag\";\nimport Footnote from \"./Footnote\";\nimport Kit from \"./kit/Kit\";\nimport Movement from \"./leagues/Movement\";\nimport MyLeagueCupSummary from \"./leagues/MyLeagueCupSummary\";\nimport { LeagueSummaryTable } from \"./leagues/Styles\";\nimport {\n getBroadcasterLeagues,\n getFilteredSystemClassicLeagues,\n getLeagueUrl,\n} from \"./leagues/utils\";\nimport Link from \"./Link\";\nimport Panel from \"./Panel\";\nimport ReportNameButton from \"./ReportNameButton\";\nimport TabHeading from \"./TabHeading\";\nimport EntryTabs from \"./tabs/EntryTabs\";\nimport TabPanel from \"./tabs/TabPanel\";\nimport { VisuallyHidden } from \"./Utils\";\n\nconst EntryName = styled.div`\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: ${({ theme }) => theme.fontSizes[1]};\n`;\n\nconst TeamName = styled.div`\n font-size: 2rem;\n`;\n\nconst DataList = styled.ul`\n border-top: 1px solid ${({ theme }) => theme.colors.lightGrey};\n`;\n\nconst DataListItem = styled.li`\n display: flex;\n align-items: center;\n margin: 0;\n padding: ${({ theme }) => theme.space[2]} 0;\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGrey};\n`;\n\nconst DataListHeading = styled.h5`\n flex: 1 0 65%;\n font-family: ${({ theme }) => theme.fonts.regular};\n`;\n\nconst DataListValue = styled.div`\n flex: 1 0 35%;\n text-align: right;\n`;\n\nconst Badge = styled.img`\n display: block;\n margin: 0 auto;\n padding: 3.5rem 0 ${({ theme }) => theme.space[3]};\n width: 100px;\n min-height: 100px;\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 Name = styled.td`\n overflow-wrap: break-word;\n hyphens: auto;\n`;\n\ninterface ILeagueSummaryProps {\n title: React.ReactNode;\n leagues: ILeagueEntry[];\n}\n\ninterface IRowProps {\n entry?: IEntry;\n leagueEntry: ILeagueEntry;\n}\n\nconst LeagueSummary: React.FC = ({ leagues, title }) => (\n
\n \n \n \n \n \n \n \n Movement\n \n Rank\n League\n \n \n \n {leagues.map((l) => (\n \n ))}\n \n \n
\n);\n\nconst LeagueSummaryRow: React.FC = ({ entry, leagueEntry }) => (\n \n \n \n \n \n {leagueEntry.entry_rank ? leagueEntry.entry_rank.toLocaleString() : null}\n \n \n \n {leagueEntry.name}\n \n \n \n);\n\ninterface IFanLeagueData {\n league: ILeagueEntry | null;\n team: ITeam | null;\n}\n\ninterface IPropsFromState {\n entry: IEntry | null;\n mine: Boolean;\n now: IEvent | null;\n privateClassicLeagues: ILeagueEntry[];\n privateClassicCupLeagues: ILeagueEntry[];\n privateH2HLeagues: ILeagueEntry[];\n publicClassicLeagues: ILeagueEntry[];\n publicClassicCupLeagues: ILeagueEntry[];\n publicH2HLeagues: ILeagueEntry[];\n systemClassicLeagues: ILeagueEntry[];\n systemClassicCupLeagues: ILeagueEntry[];\n teamsById: ITeamsById;\n totalPlayers: number;\n transfersState: ITransferState | null;\n}\n\ninterface IPropsFromDispatch {\n fetchEntrySummary: (entryId: number) => void;\n fetchMyTeam: () => void;\n}\n\ninterface IOwnProps {\n entryId: number;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & IOwnProps;\n\nclass Entry extends React.Component {\n public componentDidMount() {\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 public componentDidUpdate(prevProps: Props) {\n if (\n this.props.systemClassicLeagues.lastIndexOf &&\n !prevProps.systemClassicLeagues.lastIndexOf\n ) {\n }\n }\n\n public render() {\n const {\n entry,\n privateClassicLeagues,\n privateClassicCupLeagues,\n publicClassicLeagues,\n publicClassicCupLeagues,\n privateH2HLeagues,\n publicH2HLeagues,\n systemClassicLeagues,\n systemClassicCupLeagues,\n teamsById,\n totalPlayers,\n transfersState,\n mine = false,\n } = this.props;\n if (!entry) {\n return null;\n }\n const kit = kitFromEntry(entry);\n\n // Extract any fan league\n const fanLeagueData: IFanLeagueData = {\n league: null,\n team: null,\n };\n const fanLeagueMatch = /^team-(\\d+)$/;\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 if (fanLeagues.length) {\n fanLeagueData.league = fanLeagues[0];\n fanLeagueData.team =\n teamsById[fanLeagues[0].short_name!.match(fanLeagueMatch)![1]];\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\n const getBadgePath = (code: number, density = 1) =>\n `//resources.premierleague.com/premierleague/badges/100/t${code}${\n density === 2 ? \"@x2\" : \"\"\n }.png`;\n\n return (\n <>\n \n \n \n \n {entry.player_first_name} {entry.player_last_name}\n \n {entry.name}\n \n }\n >\n \n \n \n {!mine && (\n \n \n \n )}\n \n \n \n \n \n \n \n Overall points\n \n {entry.summary_overall_points?.toLocaleString()}\n \n \n \n Overall rank\n \n {entry.summary_overall_rank &&\n entry.summary_overall_rank.toLocaleString()}\n \n \n \n Total players\n {totalPlayers.toLocaleString()}\n \n \n Gameweek points\n {entry.summary_event_points}\n \n \n \n \n \n Gameweek History\n \n \n \n \n \n \n \n \n \n \n {mine && (\n \n Design Your Kit\n \n )}\n \n \n {fanLeagueData.league && fanLeagueData.team && (\n \n \n \n \n \n \n \n {`View My Fan League`}\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

None of your leagues have a cup yet.

\n
\n )}\n
\n
\n
\n \n \n Create & Join Leagues\n \n \n
\n
\n\n {mine && transfersState && (\n \n \n \n \n \n \n \n \n \n Gameweek transfers\n {transfersState.made}\n \n \n Total transfers\n \n {entry.last_deadline_total_transfers +\n transfersState.made}\n \n \n \n \n \n \n Transfer History\n \n \n \n \n \n \n \n \n Squad value\n \n £{integerToMoney(transfersState.value, 10)}\n \n \n \n In the bank\n \n £{integerToMoney(transfersState.bank, 10)}\n \n \n \n \n \n \n )}\n {!mine && (\n \n \n \n \n \n \n \n \n \n Total transfers\n \n {entry.last_deadline_total_transfers}\n \n \n \n \n \n \n Transfer History\n \n \n \n \n \n \n \n \n Squad value\n \n {entry.last_deadline_value !== null &&\n entry.last_deadline_bank !== null\n ? `£${integerToMoney(\n entry.last_deadline_value -\n entry.last_deadline_bank,\n 10\n )}`\n : \"-\"}\n \n \n \n In the bank\n \n {entry.last_deadline_bank !== null\n ? `£${integerToMoney(entry.last_deadline_bank, 10)}`\n : \"-\"}\n \n \n \n \n * Values at the last deadline\n \n \n \n \n )}\n {mine && (\n \n \n \n Team Details\n \n \n \n User Profile\n \n \n \n )}\n \n );\n }\n}\n\nexport { Entry as EntryTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: IOwnProps\n): IPropsFromState => {\n const player = getPlayerData(state);\n const entryId = ownProps.entryId;\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 publicClassicCupLeagues: getPublicClassicCupLeaguesForEntry(state, entryId),\n publicH2HLeagues: getPublicH2HLeaguesForEntry(state, entryId),\n systemClassicLeagues: getSystemClassicLeaguesForEntry(state, entryId),\n systemClassicCupLeagues: getSystemClassicCupLeaguesForEntry(state, entryId),\n teamsById: getTeamsById(state),\n transfersState: getTransferState(state),\n totalPlayers: getTotalPlayers(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n fetchMyTeam: () => dispatch(fetchMyTeam()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Entry);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\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 { formatRawAsLocal } from \"../core/utils/datetime\";\nimport { integerToMoney } from \"../core/utils/money\";\nimport { getChipName } from \"../utils/chips\";\nimport Entry from \"./Entry\";\nimport HelmetHead from \"./HelmetHead\";\nimport { Main, Secondary, Wrapper } from \"./Layout\";\nimport Movement from \"./leagues/Movement\";\nimport Link from \"./Link\";\nimport SubHeading from \"./SubHeading\";\nimport Table, { ScrollTable } from \"./Table\";\nimport Title from \"./Title\";\nimport { getShortNameFromId } from \"../utils/events\";\nimport Tooltip, { TooltipLabel } from \"./Tooltip\";\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 & 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 === this.props.eventHistory.length - 1\n ? null\n : this.props.eventHistory[index + 1].overall_rank;\n return ;\n }\n\n public render() {\n const { entry } = this.props;\n if (!entry) {\n return null;\n }\n return (\n \n \n
\n \n Entry History\n \n\n \n \n This Season\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
\n \n GW\n \n \n \n OR\n \n \n \n #\n \n \n \n OP\n \n \n \n GWR\n \n \n \n GWP\n \n \n \n PB\n \n \n \n TM\n \n \n \n TC\n \n \n \n £\n \n
\n \n {getShortNameFromId(eh.event)}\n \n \n {eh.overall_rank\n ? eh.overall_rank.toLocaleString()\n : \"-\"}\n {this.movementFromIndex(i)}{eh.total_points}{eh.rank ? eh.rank.toLocaleString() : \"-\"}{eh.points.toLocaleString()}{eh.points_on_bench}{eh.event_transfers}{eh.event_transfers_cost}{integerToMoney(eh.value, 10)}
\n
\n
\n\n \n \n 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
DateNameActive
{formatRawAsLocal(ch.time)}{getChipName(ch.name)}\n \n {getShortNameFromId(ch.event)}\n \n
\n
\n\n \n \n Previous Seasons\n \n \n \n \n \n \n \n \n \n \n {this.props.seasonHistory.reverse().map((sh) => (\n \n \n \n \n \n ))}\n \n
SeasonPointsRank
{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)].reverse(),\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 connect(mapStateToProps, mapDispatchToProps)(EntryHistory);\n","import { useState, useCallback, useLayoutEffect } from \"react\";\n\nexport interface DimensionObject {\n width: number;\n height: number;\n top: number;\n left: number;\n x: number;\n y: number;\n right: number;\n bottom: number;\n}\n\nconst blankRectObj: DimensionObject = {\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n x: 0,\n y: 0,\n right: 0,\n bottom: 0,\n};\n\nexport type UseDimensionsHook = [\n (node: HTMLElement | null) => void,\n DimensionObject,\n HTMLElement | null\n];\n\nexport interface UseDimensionsArgs {\n liveMeasure?: boolean;\n}\n\nfunction getDimensionObject(node: HTMLElement | null): DimensionObject {\n if (node === null) {\n return blankRectObj;\n }\n\n const rect: DimensionObject = node.getBoundingClientRect();\n\n return {\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n x: rect.x,\n y: rect.y,\n right: rect.right,\n bottom: rect.bottom,\n };\n}\n\n// https://github.com/Swizec/useDimensions/blob/master/src/index.ts\nfunction useDimensions({\n liveMeasure = true,\n}: UseDimensionsArgs = {}): UseDimensionsHook {\n const [dimensions, setDimensions] = useState(blankRectObj);\n const [node, setNode] = useState(null);\n\n const ref = useCallback((node) => {\n setNode(node);\n }, []);\n\n useLayoutEffect(() => {\n if (node) {\n const measure = () =>\n window.requestAnimationFrame(() =>\n setDimensions(getDimensionObject(node))\n );\n measure();\n\n if (liveMeasure) {\n window.addEventListener(\"resize\", measure);\n\n return () => {\n window.removeEventListener(\"resize\", measure);\n };\n }\n }\n }, [node, liveMeasure]);\n\n return [ref, dimensions, node];\n}\n\nexport default useDimensions;\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport * as actions from \"./actions\";\nimport { IFixture, IFixtureAllStats } from \"./types\";\n\nexport const fetchFixtures =\n (eventId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `fixtures/?event=${eventId}`,\n dispatch,\n actions.addFixturesForEvent,\n { event: eventId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchFixturesFuture =\n (): ThunkResult> => async (dispatch) => {\n try {\n await apiGet(\n `fixtures/?future=1`,\n dispatch,\n actions.addFixtures\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchFixtureAllStats =\n (fixtureId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `fixture/${fixtureId}/stats/`,\n dispatch,\n actions.addAllStatsForFixture,\n { fixture: fixtureId }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchFixturesPhase =\n (phaseId: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `fixtures/?phase=${phaseId}`,\n dispatch,\n actions.addFixtures\n );\n } catch (e) {\n return;\n }\n };\n","import styled from \"styled-components/macro\";\n\nconst Explain = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-right: 30%;\n }\n`;\n\nexport default Explain;\n","import React from \"react\";\nimport SubNav from \"./SubNav\";\n\nconst links = [\n { href: \"/fixtures\", text: \"Fixtures\" },\n { href: \"/fixtures/fdr\", text: \"FDR\" },\n];\n\nconst FixturesNav: React.FC = () => ;\n\nexport default FixturesNav;\n","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronDoubleLeft(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.0001875,24 C11.7016922,24 11.4061968,23.8875018 11.1782003,23.6595053 L0.340869674,12.8206747 C-0.113623225,12.3676818 -0.113623225,11.6326932 0.340869674,11.1797003 L11.1782003,0.340869674 C11.6326932,-0.113623225 12.3661818,-0.113623225 12.8206747,0.340869674 C13.2751676,0.793862596 13.2751676,1.52885111 12.8206747,1.98334401 L2.80233121,12.0001875 L12.8206747,22.018531 C13.2751676,22.4700239 13.2751676,23.2065124 12.8206747,23.6595053 C12.5941782,23.8875018 12.2971829,24 12.0001875,24\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.0001875,24 C22.7016922,24 22.4061968,23.8875018 22.1782003,23.6595053 L11.3408697,12.8206747 C10.8863768,12.3676818 10.8863768,11.6326932 11.3408697,11.1797003 L22.1782003,0.340869674 C22.6326932,-0.113623225 23.3661818,-0.113623225 23.8206747,0.340869674 C24.2751676,0.793862596 24.2751676,1.52885111 23.8206747,1.98334401 L13.8023312,12.0001875 L23.8206747,22.018531 C24.2751676,22.4700239 24.2751676,23.2065124 23.8206747,23.6595053 C23.5941782,23.8875018 23.2971829,24 23.0001875,24\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronDoubleLeft);\nexport default __webpack_public_path__ + \"static/media/chevron-double-left.98cfb741.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronDoubleRight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"currentColor\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.0001875,24 C22.7016922,24 22.4061968,23.8875018 22.1782003,23.6595053 L11.3408697,12.8206747 C10.8863768,12.3676818 10.8863768,11.6326932 11.3408697,11.1797003 L22.1782003,0.340869674 C22.6326932,-0.113623225 23.3661818,-0.113623225 23.8206747,0.340869674 C24.2751676,0.793862596 24.2751676,1.52885111 23.8206747,1.98334401 L13.8023312,12.0001875 L23.8206747,22.018531 C24.2751676,22.4700239 24.2751676,23.2065124 23.8206747,23.6595053 C23.5941782,23.8875018 23.2971829,24 23.0001875,24\",\n transform: \"rotate(-180 17.58 12)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.0001875,24 C11.7016922,24 11.4061968,23.8875018 11.1782003,23.6595053 L0.340869674,12.8206747 C-0.113623225,12.3676818 -0.113623225,11.6326932 0.340869674,11.1797003 L11.1782003,0.340869674 C11.6326932,-0.113623225 12.3661818,-0.113623225 12.8206747,0.340869674 C13.2751676,0.793862596 13.2751676,1.52885111 12.8206747,1.98334401 L2.80233121,12.0001875 L12.8206747,22.018531 C13.2751676,22.4700239 13.2751676,23.2065124 12.8206747,23.6595053 C12.5941782,23.8875018 12.2971829,24 12.0001875,24\",\n transform: \"rotate(-180 6.58 12)\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronDoubleRight);\nexport default __webpack_public_path__ + \"static/media/chevron-double-right.491d0bc6.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronLeft(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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: \"M17.0003375,23.99975 C16.7018422,23.99975 16.4063468,23.8872518 16.1783503,23.6592553 L5.34101967,12.8204247 C4.88652678,12.3674318 4.88652678,11.6324432 5.34101967,11.1794503 L16.1783503,0.340619674 C16.6328432,-0.113873225 17.3663318,-0.113873225 17.8208247,0.340619674 C18.2753176,0.793612596 18.2753176,1.52860111 17.8208247,1.98309401 L7.80248121,11.9999375 L17.8208247,22.018281 C18.2753176,22.4697739 18.2753176,23.2062624 17.8208247,23.6592553 C17.5943282,23.8872518 17.2973329,23.99975 17.0003375,23.99975\",\n fill: \"currentColor\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronLeft);\nexport default __webpack_public_path__ + \"static/media/chevron-left.f728ce42.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgChevronRight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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: \"M17.0003375,23.99975 C16.7018422,23.99975 16.4063468,23.8872518 16.1783503,23.6592553 L5.34101967,12.8204247 C4.88652678,12.3674318 4.88652678,11.6324432 5.34101967,11.1794503 L16.1783503,0.340619674 C16.6328432,-0.113873225 17.3663318,-0.113873225 17.8208247,0.340619674 C18.2753176,0.793612596 18.2753176,1.52860111 17.8208247,1.98309401 L7.80248121,11.9999375 L17.8208247,22.018281 C18.2753176,22.4697739 18.2753176,23.2062624 17.8208247,23.6592553 C17.5943282,23.8872518 17.2973329,23.99975 17.0003375,23.99975\",\n transform: \"rotate(-180 11.58 12)\",\n fill: \"currentColor\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgChevronRight);\nexport default __webpack_public_path__ + \"static/media/chevron-right.4d0b42c1.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNext(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 8,\n height: 12,\n viewBox: \"0 0 8 12\",\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: \"M71.2213207,17.0021331 L68,14.0039421 L74.4507644,8 L75.2253822,8.72096268 C75.6514749,9.11754135 76,9.44942563 76,9.45832996 C76,9.46723645 74.9050552,10.4938363 73.566861,11.7393744 L71.1337221,14.0039781 L73.566861,16.2685819 C74.905081,17.514108 76,18.540746 76,18.5496263 C76,18.5655641 74.4673455,20 74.4501971,20 C74.4456643,20 72.9920673,18.6509101 71.2202377,17.0018091 L71.2213207,17.0021331 Z\",\n transform: \"matrix(-1 0 0 1 76 -8)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNext);\nexport default __webpack_public_path__ + \"static/media/next.97359bd9.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPrevious(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 8,\n height: 12,\n viewBox: \"0 0 8 12\",\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: \"M21.2213207,17.0021331 L18,14.0039421 L24.4507644,8 L25.2253822,8.72096268 C25.6514749,9.11754135 26,9.44942563 26,9.45832996 C26,9.46723645 24.9050552,10.4938363 23.566861,11.7393744 L21.1337221,14.0039781 L23.566861,16.2685819 C24.905081,17.514108 26,18.540746 26,18.5496263 C26,18.5655641 24.4673455,20 24.4501971,20 C24.4456643,20 22.9920673,18.6509101 21.2202377,17.0018091 L21.2213207,17.0021331 Z\",\n transform: \"translate(-18 -8)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPrevious);\nexport default __webpack_public_path__ + \"static/media/previous.7d52be93.svg\";\nexport { ForwardRef as ReactComponent };","import styled from \"styled-components/macro\";\nimport { ReactComponent as ChevronDoubleLeftIcon } from \"../../img/icons/chevron-double-left.svg\";\nimport { ReactComponent as ChevronDoubleRightIcon } from \"../../img/icons/chevron-double-right.svg\";\nimport { ReactComponent as ChevronLeftIcon } from \"../../img/icons/chevron-left.svg\";\nimport { ReactComponent as ChevronRightIcon } from \"../../img/icons/chevron-right.svg\";\nimport { ReactComponent as BaseNextIcon } from \"../../img/icons/next.svg\";\nimport { ReactComponent as BasePrevIcon } from \"../../img/icons/previous.svg\";\n\nexport const ChevronLeft = styled(ChevronLeftIcon)`\n color: ${(props) => props.theme.colors.primary};\n`;\n\nexport const ChevronRight = styled(ChevronRightIcon)`\n color: ${(props) => props.theme.colors.primary};\n`;\n\nexport const ChevronDoubleLeft = styled(ChevronDoubleLeftIcon)`\n color: ${(props) => props.theme.colors.primary};\n`;\n\nexport const ChevronDoubleRight = styled(ChevronDoubleRightIcon)`\n color: ${(props) => props.theme.colors.primary};\n`;\n\nexport const PrevIcon = styled(BasePrevIcon)`\n margin-right: 0.6rem;\n fill: currentColor;\n vertical-align: middle;\n`;\n\nexport const NextIcon = styled(BaseNextIcon)`\n margin-left: 0.6rem;\n fill: currentColor;\n vertical-align: middle;\n`;\n","import debounce from \"lodash/debounce\";\nimport { hideVisually } from \"polished\";\nimport React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport Button from \"../Button\";\nimport { NextIcon, PrevIcon } from \"../icons/Chevrons\";\n\nconst TableHeader = styled.header`\n max-width: 1180px;\n margin: 0 auto;\n padding-left: 10px;\n padding-right: 10px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n padding-left: 0;\n padding-right: 0;\n }\n`;\n\nconst TableTitleRow = styled.div`\n margin: 30px 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst TableNavRow = styled.nav`\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-width: 1180px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin-left: 240px;\n }\n`;\n\nconst TableNavButtonWrap = styled.div`\n width: 48%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 25%;\n }\n`;\n\nconst KeyWrapper = styled.div`\n display: flex;\n`;\n\nconst KeyHeading = styled.h3`\n margin-top: 1rem;\n margin-right: 0.4rem;\n font-family: ${(props) => props.theme.fonts.regular};\n font-size: 1.2rem;\n`;\n\ninterface IKeyItem {\n difficulty: number;\n}\n\nconst KeyItem = styled.span`\n display: inline-block;\n padding: 10px;\n background-color: ${({ theme, difficulty }) =>\n theme.colors.difficulties[difficulty].bg};\n color: ${({ theme, difficulty }) =>\n theme.colors.difficulties[difficulty].color};\n`;\n\nconst KeyLabels = styled.div`\n display: flex;\n justify-content: space-between;\n margin-top: 0.2rem;\n`;\n\nconst KeyLabel = styled.div`\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: 1.2rem;\n`;\n\nconst KeyHide = styled.span`\n ${hideVisually}\n`;\n\ntype Props = {\n title: string;\n showPrevBtn: boolean;\n showNextBtn: boolean;\n onHandlePrevClick: () => void;\n onHandleNextClick: () => void;\n};\n\nconst FDRHeader: React.FC = ({\n title,\n showPrevBtn,\n showNextBtn,\n onHandlePrevClick,\n onHandleNextClick,\n}) => {\n return (\n \n \n \n

{title}

\n
\n \n
\n FDR Key: \n
\n
\n
\n 1\n 2\n 3\n 4\n 5\n
\n \n 1 = \n Easy\n 5 = \n Hard\n \n
\n
\n
\n \n \n {showPrevBtn && (\n \n \n Previous GW\n \n )}\n \n \n {showNextBtn && (\n \n Next GW\n \n \n )}\n \n \n
\n );\n};\n\nexport default FDRHeader;\n","import * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\n\ninterface StyledProps {\n difficulty: number;\n}\n\nconst StyledFDRCell = styled.div`\n width: 100%;\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n font-size: 1.4rem;\n background-color: ${({ theme, difficulty }) =>\n theme.colors.difficulties[difficulty].bg};\n color: ${({ theme, difficulty }) =>\n theme.colors.difficulties[difficulty].color};\n margin-top: 0.2rem;\n padding-left: 5px;\n padding-right: 5px;\n\n :first-child {\n margin-top: 0;\n }\n`;\n\nconst Teamname = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n margin-right: 3px;\n`;\n\ninterface IProps {\n difficulty: number;\n teamName: string;\n isHome?: boolean | undefined;\n}\n\nconst FDRCell: React.FC = ({ difficulty = 1, teamName, isHome }) => {\n if (!teamName) {\n return (\n \n -\n \n );\n }\n\n return (\n \n \n \n {teamName}\n \n \n {isHome !== undefined && ({isHome ? \"H\" : \"A\"})}\n \n );\n};\n\nexport default FDRCell;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSort(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 11,\n viewBox: \"0 0 10 11\",\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.62955224,0.229701493 C1.81146269,0.0477910448 2.10704478,0.0477910448 2.28895522,0.229701493 L2.28895522,0.229701493 L3.68820896,1.62953731 C3.8701194,1.81144776 3.8701194,2.10702985 3.68820896,2.2889403 C3.59726866,2.37989104 3.47773134,2.42536716 3.35822388,2.42536716 C3.23871642,2.42536716 3.11919104,2.37989104 3.02823881,2.2889403 L3.02823881,2.2889403 L2.42538806,1.68608955 L2.42538806,9.88802985 C2.42538806,10.1457313 2.21667164,10.3544478 1.95897015,10.3544478 C1.70126866,10.3544478 1.49255224,10.1457313 1.49255224,9.88802985 L1.49255224,9.88802985 L1.49255224,1.68608955 L0.889701493,2.28835821 C0.707791045,2.47026866 0.412208955,2.47026866 0.230298507,2.28835821 C0.0483880597,2.10644776 0.0483880597,1.81086567 0.230298507,1.62895522 L0.230298507,1.62895522 Z M9.42164179,8.48880597 C9.67934328,8.48880597 9.8880597,8.69752239 9.8880597,8.95522388 C9.8880597,9.21292537 9.67934328,9.42164179 9.42164179,9.42164179 L9.42164179,9.42164179 L4.75746269,9.42164179 C4.49976119,9.42164179 4.29104478,9.21292537 4.29104478,8.95522388 C4.29104478,8.69752239 4.49976119,8.48880597 4.75746269,8.48880597 L4.75746269,8.48880597 Z M8.02238806,6.15671642 C8.28008955,6.15671642 8.48880597,6.36543284 8.48880597,6.62313433 C8.48880597,6.88083582 8.28008955,7.08955224 8.02238806,7.08955224 L8.02238806,7.08955224 L4.75746269,7.08955224 C4.49976119,7.08955224 4.29104478,6.88083582 4.29104478,6.62313433 C4.29104478,6.36543284 4.49976119,6.15671642 4.75746269,6.15671642 L4.75746269,6.15671642 Z M7.08955224,3.82462687 C7.34725373,3.82462687 7.55597015,4.03334328 7.55597015,4.29104478 C7.55597015,4.54874627 7.34725373,4.75746269 7.08955224,4.75746269 L7.08955224,4.75746269 L4.75746269,4.75746269 C4.49976119,4.75746269 4.29104478,4.54874627 4.29104478,4.29104478 C4.29104478,4.03334328 4.49976119,3.82462687 4.75746269,3.82462687 L4.75746269,3.82462687 Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSort);\nexport default __webpack_public_path__ + \"static/media/sort.2ffe1f8f.svg\";\nexport { ForwardRef as ReactComponent };","import styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as SortIcon } from \"../../img/icons/sort.svg\";\nimport React, { useState, useEffect } from \"react\";\nimport { formatRawAsDate, formatRawAsISO } from \"../../core/utils/datetime\";\n\nconst StyledFDRHeadingCell = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst StyledHeading = styled.header`\n display: flex;\n align-items: center;\n justify-content: center;\n\n flex-direction: column;\n padding-top: 15px;\n padding-bottom: 15px;\n min-height: 63px;\n`;\n\nconst EventName = styled.h3`\n margin: 0;\n font-size: 1.6rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst EventTime = styled.time`\n font-size: 1.2rem;\n`;\n\ninterface IIconWrapperProps {\n isActive: boolean;\n isRotated: boolean;\n}\n\nconst StyledSortIcon = styled(SortIcon)`\n fill: #000;\n`;\n\nconst StyledSortIconWrapper = styled.div`\n padding-top: 2px;\n padding-bottom: 2px;\n color: ${({ theme }) => theme.colors.primary};\n background-color: ${({ theme }) => theme.colors.white};\n\n ${({ isActive }) =>\n isActive === true &&\n css`\n color: ${({ theme }) => theme.colors.white};\n background-color: ${({ theme }) => theme.colors.primary};\n\n ${StyledSortIcon} {\n fill: ${({ theme }) => theme.colors.white};\n }\n `}\n\n ${({ isRotated }) =>\n isRotated === true &&\n css`\n transform: rotate(180deg) scaleX(-1);\n `}\n`;\n\ntype Props = {\n id: number;\n eventName: string;\n activeEventId: any;\n eventDeadline?: string;\n onHandleClick: (eventId: number, sortType: string) => void;\n};\n\nconst FDRHeadingCell: React.FC = ({\n id,\n eventName = \"Heading\",\n eventDeadline,\n onHandleClick,\n activeEventId,\n}) => {\n const [active, setActive] = useState(false);\n const [sortOrderAsc, setOrderA] = useState(false);\n const [activeClickIndex, handleClick] = useState(0);\n\n useEffect(() => {\n if (activeEventId !== id) {\n setActive(false);\n setOrderA(false);\n handleClick(0);\n }\n }, [id, activeEventId]);\n\n function handleHeadingClick() {\n const incrementIndex = activeClickIndex + 1;\n if (incrementIndex === 1) {\n setActive(true);\n setOrderA(true);\n handleClick(incrementIndex);\n // sort by team difficulty\n onHandleClick(id, \"asc\");\n }\n\n if (incrementIndex === 2) {\n setOrderA(false);\n handleClick(incrementIndex);\n // sort by team difficulty\n onHandleClick(id, \"dsc\");\n }\n\n if (incrementIndex === 3) {\n setActive(false);\n setOrderA(false);\n handleClick(0);\n // Sort by team title\n onHandleClick(id, \"a-z\");\n }\n }\n\n return (\n \n \n {eventName}\n {eventDeadline && (\n \n {formatRawAsDate(eventDeadline)}\n \n )}\n \n \n \n \n \n );\n};\n\nexport default FDRHeadingCell;\n","export const MAX_COLS = 7;\nexport const WRAPPER_PADDING = 10;\nexport const FIRST_COL_WIDTH_SM = 140;\nexport const FIRST_COL_WIDTH_LG = 220;\nexport const COL_WIDTH_SM = 100;\nexport const COL_WIDTH_LG = 127;\n\nconst useTableColumns = (windowWidthInner: number) => {\n let tableWidth = windowWidthInner;\n let firstColWidth = FIRST_COL_WIDTH_SM;\n let secondColWidth = COL_WIDTH_SM;\n\n if (windowWidthInner > 1180) {\n tableWidth = 1180;\n }\n\n if (windowWidthInner > 700) {\n firstColWidth = FIRST_COL_WIDTH_LG;\n secondColWidth = COL_WIDTH_LG;\n }\n\n const colsCanFit =\n (tableWidth + WRAPPER_PADDING - (firstColWidth + WRAPPER_PADDING)) /\n (secondColWidth + WRAPPER_PADDING);\n const visibleColumns = colsCanFit > 7 ? 7 : colsCanFit;\n return [parseFloat(visibleColumns.toFixed(1))];\n};\n\nexport default useTableColumns;\n","import React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { ITeam, ITeamsById } from \"../../core/store/teams/types\";\nimport Badge from \"../Badge\";\nimport FDRCell from \"./FDRCell\";\nimport FDRHeadingCell from \"./FDRHeadingCell\";\nimport { IFixturesWithDifficultyByEventAndTeam } from \"./types\";\nimport {\n COL_WIDTH_LG,\n COL_WIDTH_SM,\n FIRST_COL_WIDTH_LG,\n FIRST_COL_WIDTH_SM,\n WRAPPER_PADDING,\n} from \"./useTableColumns\";\n\nconst CellWrapper = styled.div`\n height: 51px;\n display: flex;\n flex-direction: column;\n`;\n\nconst StyledFDRTable = styled.table`\n max-width: 1180px;\n margin: 0 auto;\n\n table-layout: fixed;\n width: 100%;\n white-space: nowrap;\n\n th,\n td {\n overflow: hidden;\n display: inline-block;\n white-space: nowrap;\n }\n\n th,\n td {\n :first-child {\n margin-left: 0;\n width: ${FIRST_COL_WIDTH_SM}px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: ${FIRST_COL_WIDTH_LG}px;\n }\n }\n\n margin-left: ${WRAPPER_PADDING}px;\n width: ${COL_WIDTH_SM}px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n width: ${COL_WIDTH_LG}px;\n }\n }\n\n td {\n padding-top: 0.1rem;\n padding-bottom: 0.4rem;\n\n :first-child {\n position: relative;\n\n ::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n width: 100%;\n height: 1px;\n background-color: ${({ theme }) => theme.colors.lightGrey};\n }\n }\n }\n`;\n\ninterface IColTh {\n first?: boolean;\n}\n\nconst ColTh = styled.th``;\n\nconst TeamCell = styled.div`\n display: flex;\n align-items: center;\n padding: 1.3rem 1.5rem;\n`;\n\nconst TeamCellName = styled.div`\n margin-left: 5px;\n font-size: 11px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 14px;\n }\n`;\n\ntype Props = {\n teamFixtures: IFixturesWithDifficultyByEventAndTeam;\n currentEventIndex: number;\n events: IEvent[];\n teamsById: ITeamsById;\n teams: ITeam[];\n activeHeadingIndex: number;\n onHeadingSort: (eventId: number, sortType: string) => void;\n};\n\nconst FDRTable: React.FC = ({\n teamFixtures,\n events,\n currentEventIndex,\n onHeadingSort,\n activeHeadingIndex,\n teams,\n teamsById,\n}) => {\n const upcomingGameweeksToShow = 6;\n\n const eventsToShow = events.slice(\n currentEventIndex - 1,\n currentEventIndex + upcomingGameweeksToShow\n );\n\n if (teamFixtures === {} || eventsToShow.length === 0) {\n return
No teams or events to show
;\n }\n\n return (\n \n \n \n \n \n \n {eventsToShow.map((event) => {\n return (\n \n
\n \n
\n
\n );\n })}\n \n \n \n {teams.map((team) => (\n \n \n \n \n {team.name}\n \n \n {eventsToShow.map((event) => (\n \n \n {teamFixtures[event.id] &&\n teamFixtures[event.id][team.id] &&\n teamFixtures[event.id][team.id].fixtures.length ? (\n <>\n {teamFixtures[event.id][team.id].fixtures.map(\n (fixture) => (\n \n )\n )}\n \n ) : (\n \n )}\n \n \n ))}\n \n ))}\n \n
\n );\n};\n\nexport default FDRTable;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport useDimensions from \"../../core/hooks/useDimensions\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { getEvents } from \"../../core/store/events/reducers\";\nimport { getFixturesByEvent } from \"../../core/store/fixtures/reducers\";\nimport { fetchFixturesFuture } from \"../../core/store/fixtures/thunks\";\nimport { getTeams, getTeamsById } from \"../../core/store/teams/reducers\";\nimport Copy from \"../Copy\";\nimport Explain from \"../Explain\";\nimport FixturesNav from \"../FixturesNav\";\nimport HelmetHead from \"../HelmetHead\";\nimport { Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport FDRHeader from \"./FDRHeader\";\nimport FDRTable from \"./FDRTable\";\nimport { formatFixturesByEventAndTeam, sortTeamsByEventDiff } from \"./helpers\";\nimport useTableColumns from \"./useTableColumns\";\n\ntype Props = RouteComponentProps;\n\nconst FDRContainer: React.FC = () => {\n // Redux/Selectors\n const reduxDispatch = useDispatch();\n const teams = useSelector(getTeams);\n const teamsById = useSelector(getTeamsById);\n const events = useSelector(getEvents);\n const fixturesByEvent = useSelector(getFixturesByEvent);\n // Custom hooks\n const [tableRef, tableDimensions] = useDimensions();\n const [visibleColumns] = useTableColumns(tableDimensions.width);\n // Variables\n const nextEventIndex = events.findIndex((event) => event.is_next) + 1 || 0;\n const [currentEventIndex, setEventIndex] = useState(nextEventIndex);\n const [teamFixtures, setTeamFixtures] = useState({});\n const [sortedTeams, setSortedTeams] = useState(teams);\n const [activeHeadingIndex, setActiveEventId] = useState(0);\n\n useEffect(() => {\n reduxDispatch(fetchFixturesFuture());\n }, [reduxDispatch]);\n\n useEffect(() => {\n if (Object.keys(fixturesByEvent).length) {\n setTeamFixtures(formatFixturesByEventAndTeam(fixturesByEvent));\n }\n }, [fixturesByEvent]);\n\n const handlePrevClick = () => setEventIndex(currentEventIndex - 1);\n\n const handleNextClick = () => setEventIndex(currentEventIndex + 1);\n\n function handleHeadingSort(eventId: number, sortType: string) {\n setActiveEventId(eventId);\n setSortedTeams(\n sortTeamsByEventDiff(teamFixtures, eventId, sortType, sortedTeams)\n );\n }\n\n const showPrevBtn = currentEventIndex > nextEventIndex;\n const showNextBtn = currentEventIndex + visibleColumns - 1 <= events.length;\n\n return (\n <>\n \n \n Fixtures & Results\n \n \n \n
\n \n {nextEventIndex ? (\n <>\n \n \n \n ) : (\n \n \n \n Fixture Difficulty Rating (FDR)\n

\n The FDR table will display here when next season's Fantasy\n Premier League game is live.\n

\n
\n
\n
\n )}\n
\n \n \n \n \n FDR Explained\n

\n The FDR is based on a complex algorithm developed by FPL\n experts.\n

\n

\n A set of formulas process key Opta data variables, along with\n each team's home and away form for the past six matches, to\n generate a rank for the perceived difficulty of each Gameweek\n opponent.\n

\n

\n The FDR is designed to help FPL managers plan their transfer and\n team selection strategy. It is reviewed on a weekly basis and\n updated as the season progresses.\n

\n
\n
\n
\n
\n \n );\n};\n\nexport default FDRContainer;\n","import { FixturesByEvent } from \"../../core/store/fixtures/types\";\nimport { IFixturesWithDifficultyByEventAndTeam } from \"./types\";\nimport { ITeam } from \"../../core/store/teams/types\";\n\nexport const formatFixturesByEventAndTeam = (\n fixturesByEvent: FixturesByEvent\n) => {\n const data: IFixturesWithDifficultyByEventAndTeam = {};\n for (const eventId in fixturesByEvent) {\n if (data[eventId] === undefined) {\n data[eventId] = {};\n }\n fixturesByEvent[eventId].forEach((fixture) => {\n [\"h\", \"a\"].forEach((ha) => {\n // Set constants dependent on if we are dealing with home or away\n const myTeamKey =\n ha === \"h\" ? fixture.team_h.toString() : fixture.team_a.toString();\n const opponent = ha === \"h\" ? fixture.team_a : fixture.team_h;\n const difficulty =\n ha === \"h\" ? fixture.team_h_difficulty : fixture.team_a_difficulty;\n\n // Add correct fixture data, initialise if is first time we've seen team\n if (!data[eventId][myTeamKey]) {\n data[eventId][myTeamKey] = { eventDifficulty: 0, fixtures: [] };\n }\n data[eventId][myTeamKey].fixtures.push({\n ...fixture,\n difficulty: difficulty || 0,\n isHome: ha === \"h\",\n opponent,\n });\n });\n });\n // Now we've processed the event update eventDifficulty for all teams with\n // fixtures\n for (const teamId in data[eventId]) {\n const totalFixtures = data[eventId][teamId].fixtures.length;\n if (totalFixtures) {\n const totalEventDifficulty = data[eventId][teamId].fixtures.reduce(\n (acc, f) => acc + f.difficulty,\n 0\n );\n data[eventId][teamId].eventDifficulty =\n totalEventDifficulty / totalFixtures;\n }\n }\n }\n return data;\n};\n\nexport const sortTeamsByEventDiff = (\n teamFixtures: IFixturesWithDifficultyByEventAndTeam,\n activeEventId: number,\n sortType: string,\n teams: ITeam[]\n) => {\n return teams.slice().sort((a, b) => {\n if (sortType === \"a-z\") {\n return a.name.localeCompare(b.name);\n }\n // If it's the title\n if (activeEventId === 0) {\n if (sortType === \"asc\") {\n return a.name.localeCompare(b.name);\n } else if (sortType === \"dsc\") {\n return b.name.localeCompare(a.name);\n }\n }\n if (activeEventId > 0) {\n const aTeamDifficulty =\n teamFixtures[activeEventId] && teamFixtures[activeEventId][a.id]\n ? teamFixtures[activeEventId][a.id].eventDifficulty\n : 0;\n const bTeamDifficulty =\n teamFixtures[activeEventId] && teamFixtures[activeEventId][b.id]\n ? teamFixtures[activeEventId][b.id].eventDifficulty\n : 0;\n\n if (aTeamDifficulty !== bTeamDifficulty) {\n // Difficulty of 0 (no fixtures) always last\n if (aTeamDifficulty === 0) return 1;\n if (bTeamDifficulty === 0) return -1;\n\n return sortType === \"asc\"\n ? aTeamDifficulty - bTeamDifficulty\n : bTeamDifficulty - aTeamDifficulty;\n }\n }\n\n // The default sort is ascending name\n return a.name.localeCompare(b.name);\n });\n};\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","export default __webpack_public_path__ + \"static/media/pl-logo-lion.ad772272.svg\";","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAShJREFUOBGtkr1KQ0EQRm/8QQt/UDBBG0ExnY2CjfgA4gv4GIEU2lrZ+y4+hFiEgKCVFhYWEQQLC6PGc8LdMDcxegs/OGF35pvZ3ZvJslHNE6qOhrMaMXN/qonjHvaC0/UDNEJs7HKDzA08wm6O6xasQ0EVdpPgCcvQgw/YhnN4Bj1LcAK3MAXGXuAKsi3QaHHCJjJub9yaut1mYQ7O4BImIEmj8sSkLxZHcAozNkimO9bXUEabuakXT7NZWQ28sUHZ4oLvXxu8F1r/vhl4fYtf2JscQz3f+2E/Icp50WtuB6yp2MCBaMM+HEAXjK9AVIeNszEN/pXWWNvXIr9rsAqHcAHewNPSbYyZ06N3AX6UI/wGr0MYM1dQnLCU8ASv7zWjfLPPeIrBbyaIQf8SlQcAAAAAAElFTkSuQmCC\"","import styled from \"styled-components\";\n\nexport const FixtureKOTime = styled.span`\n flex: 1 0 4.4rem;\n display: inline-block;\n padding: 0.9rem ${({ theme }) => theme.space[2]};\n border: 1px solid #efebf0;\n border-radius: ${({ theme }) => theme.radii[0]};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n line-height: 1.1;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: 6.6rem;\n padding: 0.8rem 1.6rem;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n }\n`;\n","import { formatInTimeZone } from \"date-fns-tz\";\nimport { formatRawAsISO } from \"../../../core/utils/datetime\";\nimport { FixtureKOTime } from \"./styles\";\nimport { IFixtureTime } from \"./types\";\n\nconst FixtureTime = ({ fixture }: IFixtureTime) => {\n if (fixture.provisional_start_time) {\n return TBC;\n }\n\n if (fixture.kickoff_time && fixture.kickoffDate) {\n return (\n \n {formatInTimeZone(\n fixture.kickoffDate,\n Intl.DateTimeFormat().resolvedOptions().timeZone,\n \"HH:mm\"\n )}\n \n );\n }\n\n return -;\n};\n\nexport default FixtureTime;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgExternal(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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: \"M17.9234129,6.06857251 C18.0283287,6.16568859 18.1103491,6.29626694 18.1712355,6.43690914 C18.2431921,6.59164072 18.2859636,6.76071327 18.2859636,6.93859169 L18.2859636,7.63828034 L18.2859636,10.689889 L18.2859636,12.604535 C18.2859636,12.9376482 18.1453211,13.2325188 17.9271868,13.4743026 C17.7040207,13.71508 17.373926,13.8182344 17.0574175,13.832827 C16.7497149,13.8476712 16.401002,13.6874045 16.1876481,13.4743026 C15.9664947,13.2511369 15.8288714,12.9190301 15.8288714,12.604535 L15.8288714,11.9045948 L15.8288714,9.9026449 C15.2705786,10.4609366 14.7120342,11.0194798 14.1534898,11.5780231 L11.2246541,14.5071044 L8.81662328,16.9148788 L7.80646303,17.925037 C7.57348461,18.1590213 7.265782,18.2692204 6.93669368,18.2838129 C6.60735376,18.2986571 6.30065754,18.1383904 6.06692432,17.925037 C5.840739,17.715709 5.7081476,17.358191 5.7081476,17.0552694 C5.7081476,16.7380067 5.84275177,16.4096739 6.06692432,16.1855018 L6.08453608,16.1678901 C6.48734219,15.7550209 6.90323133,15.3491965 7.31106938,14.9413592 C8.1541695,14.0982608 8.99450206,13.25793 9.83684739,12.4155864 C10.8117841,11.4406516 11.78974,10.4626977 12.7656831,9.48675661 L14.0855587,8.16713526 L13.3061126,8.16713526 L11.3917142,8.16713526 C11.0573424,8.16713526 10.7627228,8.02951222 10.5219449,7.80835928 C10.2811669,7.58519357 10.1777607,7.25509954 10.1631681,6.93859169 C10.1483239,6.63088971 10.308591,6.28217756 10.5219449,6.0688241 C10.7448594,5.84767116 11.0772185,5.71004812 11.3917142,5.71004812 L12.0911527,5.71004812 L15.1430191,5.71004812 L17.0523856,5.71004812 C17.0528887,5.71004812 17.0533919,5.71004812 17.0536435,5.70979652 C17.3829834,5.69520395 17.6894281,5.85521905 17.9234129,6.06857251 Z M16.8569705,21.5401453 L18.6898515,21.5401453 L19.9261971,21.5401453 L20.3833481,21.5401453 C20.4316546,21.5391389 20.4802128,21.5336038 20.5290225,21.5305846 C20.6286547,21.5099538 20.7265258,21.4832846 20.8226357,21.4508287 C20.9127073,21.4050382 20.9997597,21.3542158 21.0840445,21.2983615 C21.1605299,21.2304305 21.2327381,21.1582225 21.3004176,21.0817373 C21.3557688,20.9987106 21.4060882,20.9126647 21.4508723,20.8241029 C21.4835799,20.7279932 21.5102491,20.6306255 21.5311317,20.5309935 C21.5344024,20.4779067 21.5409439,20.4250715 21.5409439,20.3714816 L21.5409439,19.7721798 L21.5409439,18.4040004 L21.5409439,16.4757682 L21.5409439,14.1779413 L21.5409439,11.6934302 L21.5409439,9.24640689 L21.5409439,7.00745353 L21.5409439,5.19923263 L21.5409439,4.0001258 C21.5409439,3.82023461 21.5409439,3.63984024 21.5301253,3.46045224 C21.5094943,3.36308457 21.4833283,3.26747806 21.4516271,3.17338114 C21.4058366,3.08330975 21.355014,2.99625751 21.2991596,2.91197283 C21.2312285,2.83548762 21.1590203,2.76353115 21.082535,2.69560021 C20.9995081,2.64024908 20.9137137,2.58992987 20.8249001,2.54514577 C20.7290418,2.51268988 20.6311707,2.48602069 20.5317901,2.46513822 C20.4789548,2.46161588 20.4258679,2.45532548 20.3725294,2.45532548 L19.7729748,2.45532548 L18.4047926,2.45532548 L16.4765565,2.45532548 L14.178725,2.45532548 L11.6942088,2.45532548 L9.2469289,2.45532548 L7.00822258,2.45532548 L5.199998,2.45532548 L4.00088873,2.45532548 C3.82099718,2.45532548 3.64060243,2.45507438 3.46121408,2.46589301 C3.3638462,2.48652389 3.2682395,2.51268988 3.17414238,2.54439098 C3.08407081,2.59018146 2.9970184,2.64100387 2.91273354,2.69685819 C2.83624818,2.76504073 2.76403997,2.8369972 2.69636049,2.9134824 C2.64100924,2.9965091 2.59068993,3.08255496 2.54590574,3.17136837 C2.51344978,3.26722647 2.48678054,3.36484574 2.46589803,3.46422618 C2.46237567,3.51731295 2.45608526,3.57014813 2.45608526,3.62373809 L2.45608526,4.22329151 L2.45608526,5.5912193 L2.45608526,7.51945152 L2.45608526,9.81727836 L2.45608526,12.3017895 L2.45608526,14.7490644 L2.45608526,16.9877661 L2.45608526,18.7962386 L2.45608526,19.9950939 C2.45608526,20.1749851 2.45583416,20.355631 2.46665282,20.5347674 C2.48728374,20.6321351 2.51344978,20.7277416 2.54515095,20.8220901 C2.59094152,20.9119099 2.64176403,20.9989622 2.69787007,21.0832468 C2.76580114,21.1597321 2.83775776,21.2319401 2.91424312,21.2996195 C2.99752159,21.3549706 3.08331602,21.4052898 3.17187801,21.4503255 C3.26798791,21.4825298 3.36560738,21.509199 3.46498802,21.5300815 C3.5180749,21.5336038 3.57091018,21.5401453 3.62450025,21.5401453 L4.21424262,21.5401453 L5.56078749,21.5401453 L7.45933524,21.5401453 L9.73754222,21.5401453 L12.1946344,21.5401453 L14.6240509,21.5401453 L16.8569705,21.5401453 Z M23.9970297,19.9037645 C23.9970297,20.1523414 24.0098611,20.407963 23.9821855,20.6555335 C23.9233119,21.1745762 23.8053131,21.620656 23.5645352,22.0906375 C23.4495555,22.3087713 23.2991008,22.4974683 23.1468849,22.6919521 C23.0535425,22.8129698 22.9551683,22.9239236 22.8422014,23.0240589 C22.1799992,23.6221027 21.3494789,23.9677957 20.4555563,23.9932069 C20.4334158,23.9944649 20.4112753,24 20.3893864,24 L19.8685815,24 L18.4060506,24 L16.2637058,24 L13.6868537,24 L10.9595468,24 L8.33338174,24 L6.05517476,24 L4.40897837,24 L3.64035084,24 C3.0556404,24 2.52502322,23.8575966 1.99616722,23.6117873 C1.8585439,23.5478819 1.72796527,23.4713967 1.60493455,23.3828349 C1.40843762,23.2434506 1.20892154,23.093751 1.03984864,22.9188917 C0.766614762,22.6408781 0.523069278,22.3095261 0.363808647,21.9507501 C0.149448365,21.4722144 0.023650078,21.0200962 0.0020127726,20.4914929 C-2.84217094e-14,20.447212 -2.84217094e-14,20.4029311 -2.84217094e-14,20.3586502 L-2.84217094e-14,20.0914552 L-2.84217094e-14,18.8334749 L-2.84217094e-14,16.8305186 L-2.84217094e-14,14.3321697 L-2.84217094e-14,11.6197126 L-2.84217094e-14,8.93166022 L-2.84217094e-14,6.55332264 L-2.84217094e-14,4.72522565 L-2.84217094e-14,3.72487971 C-2.84217094e-14,3.61291946 -2.84217094e-14,3.501714 0.010063863,3.38874737 C0.059125195,2.86794352 0.17410483,2.43544989 0.403057712,1.9616945 C0.467969629,1.82709061 0.548480532,1.69927981 0.637042527,1.57650093 C0.780452574,1.3800044 0.929900939,1.18149511 1.10677333,1.01418373 C1.76721434,0.385193572 2.63195177,0.0246564141 3.54122179,4.26325641e-14 L3.7455182,4.26325641e-14 L4.78234769,4.26325641e-14 L6.62705377,4.26325641e-14 L9.03005265,4.26325641e-14 L11.7110658,4.26325641e-14 L14.4313279,4.26325641e-14 L16.9060318,4.26325641e-14 L18.8943996,4.26325641e-14 L20.1148945,4.26325641e-14 L20.3607044,4.26325641e-14 C20.9620202,0.00301915275 21.5253449,0.150454445 22.060994,0.417649464 C22.1966046,0.483567632 22.3234093,0.565084756 22.4441756,0.655659339 C22.6406725,0.803094632 22.8354083,0.950529924 23.0024684,1.12941472 C23.3504265,1.50856999 23.5793794,1.90382741 23.7708444,2.37557002 C23.9331241,2.77359499 23.9970297,3.2206812 23.9970297,3.64814291 L23.9970297,4.45224392 L23.9970297,6.13466679 L23.9970297,8.41966223 L23.9970297,11.0556342 L23.9970297,13.7927477 L23.9970297,16.3459446 L23.9970297,18.4767116 L23.9970297,19.9037645 Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgExternal);\nexport default __webpack_public_path__ + \"static/media/external.e963489f.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as BaseExternalIcon } from \"../../img/icons/external.svg\";\nimport { IFixtureScoreProps, IStyledFixture } from \"./types\";\n\nexport const StyledFixture = styled.div`\n overflow: auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n position: relative;\n }\n\n ${(props) =>\n props.isStarted &&\n css`\n flex: 1;\n `}\n\n /* Pad left side by width of IconWrap on started fixture button */\n ${(props) =>\n !props.isStarted &&\n css`\n padding-left: 3rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-left: 4rem;\n }\n `}\n`;\n\nexport const Teams = styled.div`\n display: flex;\n margin: 0.7rem 0;\n align-items: center;\n`;\n\nexport const Team = styled.div`\n flex: 1 1 calc(50% - (4.4rem / 2));\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: calc(50% - (6.6rem / 2));\n }\n`;\n\nexport const TeamH = styled(Team)`\n text-align: right;\n`;\n\nexport const TeamName = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n vertical-align: middle;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 1.7rem;\n }\n`;\n\nexport const FixtureBadge = styled.div`\n display: inline-block;\n margin-right: 0.8rem;\n margin-left: 0.8rem;\n`;\n\nexport const FixtureScore = styled.div`\n flex: 1 0 4.4rem;\n display: flex;\n padding: 0.8rem 0;\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme, $finished }) =>\n $finished ? `${theme.colors.primary}` : theme.colors.pinkToOrange};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: 6.6rem;\n padding: 0.7rem 0;\n }\n`;\n\nexport const FixtureScoreTeam = styled.span`\n flex: 1;\n padding: 0;\n line-height: 1;\n text-align: center;\n color: white;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n\n :first-child {\n border-right: 1px solid rgba(255, 255, 255, 0.5);\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: ${({ theme }) => theme.fontSizes[4]};\n }\n`;\n\nexport const Broadcaster = styled.div`\n margin: 0.7rem 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 24%;\n margin: 0;\n text-align: right;\n }\n`;\n\nexport const BroadcasterBox = styled.div`\n padding: 0 ${({ theme }) => theme.space[1]};\n text-align: center;\n`;\n\nexport const BroadcasterList = styled.ul`\n display: flex;\n justify-content: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n display: block;\n }\n`;\n\nexport const BroadcasterItem = styled.li`\n padding-right: ${({ theme }) => theme.space[1]};\n padding-left: ${({ theme }) => theme.space[1]};\n flex: 1;\n\n :not(:last-child) {\n border-right: 1px solid ${({ theme }) => theme.colors.grey};\n text-align: right;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n display: inline-block;\n :not(:last-child) {\n text-align: left;\n }\n }\n`;\n\nexport const StyledLogo = styled.img`\n vertical-align: middle;\n`;\n\nexport const ButtonWrap = styled.div`\n text-align: center;\n`;\n\nexport const TVButton = styled.button`\n padding: ${({ theme }) => theme.space[1]};\n border: 0;\n border-radius: 2px;\n background-color: ${({ theme }) => theme.colors.lightGrey};\n color: black;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: inherit;\n cursor: pointer;\n`;\n\nexport const TVLogo = styled.img`\n margin-right: ${({ theme }) => theme.space[1]};\n vertical-align: middle;\n`;\n\nexport const ButtonText = styled.span`\n vertical-align: middle;\n`;\n\nexport const TVLink = styled.a`\n display: inline-block;\n margin: ${({ theme }) => theme.space[1]} 0;\n padding: ${({ theme }) => theme.space[1]} 0.4rem;\n border: 0;\n border-radius: 2px;\n background-color: ${({ theme }) => theme.colors.lightGrey};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1rem;\n color: #333;\n text-decoration: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n padding: ${({ theme }) => theme.space[1]} ${({ theme }) => theme.space[2]};\n font-size: inherit;\n }\n`;\n\nexport const ExternalIcon = styled(BaseExternalIcon)`\n ${size(10)}\n margin-left: ${({ theme }) => theme.space[1]};\n fill: black;\n vertical-align: middle;\n`;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\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 tvIcon from \"../../img/tv.png\";\nimport tvIcon2x from \"../../img/tv@2x.png\";\nimport Badge from \"../Badge\";\nimport Dialog from \"../Dialog\";\nimport DialogManager from \"../DialogManager\";\nimport { FixtureBroadcastersContext } from \"../FixtureBroadcasters\";\nimport SubHeading from \"../SubHeading\";\nimport Table from \"../Table\";\nimport { NewTabCopy } from \"../Utils\";\nimport FixtureTime from \"./FixtureTime\";\nimport {\n Broadcaster,\n BroadcasterBox,\n BroadcasterItem,\n BroadcasterList,\n ButtonText,\n ButtonWrap,\n ExternalIcon,\n FixtureBadge,\n FixtureScore,\n FixtureScoreTeam,\n StyledFixture,\n StyledLogo,\n Team,\n TeamH,\n TeamName,\n Teams,\n TVButton,\n TVLink,\n TVLogo,\n} from \"./styles\";\nimport { IMultipleBroadcastersDialog } from \"./types\";\n\nconst MultipleBroadcastersDialog: React.FC = ({\n broadcasters,\n handleHide,\n}) => (\n \n TV Info\n \n Broadcasters\n \n \n \n \n \n \n \n \n \n \n {broadcasters.map((broadcaster) => (\n \n \n \n \n \n ))}\n \n
BroadcasterMore info
\n {broadcaster.name.substring(\n broadcaster.name.indexOf(\" - \") + 3\n )}\n \n \n \n \n Visit site\n \n \n \n
\n
\n
\n
\n);\n\ninterface ILogoProps {\n abbreviation: string;\n name: string;\n}\n\nconst Logo: React.FC = ({ abbreviation, name }) => {\n const path =\n \"https://resources.premierleague.com/premierleague/broadcasters/global\";\n const abbr = abbreviation.toLowerCase();\n return (\n \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 fb = React.useContext(FixtureBroadcastersContext);\n const broadcasterInfo =\n fixture.event && fb[fixture.event] && fb[fixture.event][fixture.id]\n ? fb[fixture.event][fixture.id]\n : null;\n return (\n \n \n \n {teamsById[fixture.team_h].name}\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 ) : (\n \n )}\n \n \n \n \n {teamsById[fixture.team_a].name}\n \n \n {broadcasterInfo && broadcasterInfo.length > 0 && (\n \n {broadcasterInfo.length > 2 ? (\n (\n <>\n \n {\n e.stopPropagation();\n handleShow();\n }}\n >\n \n Multiple Broadcasters\n \n \n {showDialog && (\n \n )}\n \n )}\n />\n ) : broadcasterInfo.length === 2 ? (\n \n {broadcasterInfo.map((b) => (\n \n e.stopPropagation()}\n >\n \n \n \n \n \n ))}\n \n ) : (\n \n e.stopPropagation()}\n >\n \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 PillList = styled.ul`\n display: flex;\n`;\n\nexport const PillItem = styled.li`\n :not(:first-child) {\n padding-left: ${(props) => props.theme.space[1]};\n }\n`;\n","import styled from \"styled-components/macro\";\nimport { textGradient } from \"./Utils\";\n\nexport const PillRadioLabel = styled.label`\n display: inline-block;\n cursor: pointer;\n`;\n\n// https://moderncss.dev/pure-css-custom-styled-radio-buttons/#step-1-hide-the-native-radio-input\nexport const PillRadioInput = styled.input`\n appearance: none;\n background-color: #fff;\n margin: 0;\n\n + span {\n display: inline-block;\n padding: ${(props) => `${props.theme.space[1]} ${props.theme.space[3]}`};\n border: 1px solid #e8e7e8;\n border-radius: 16px;\n color: ${(props) => props.theme.colors.primary};\n font-family: ${(props) => props.theme.fonts.bold};\n font-weight: bold;\n font-size: ${(props) => props.theme.fontSizes[0]};\n }\n\n :checked + span {\n background-color: ${(props) => props.theme.colors.primary};\n span {\n ${textGradient}\n }\n }\n`;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { PillRadioLabel, PillRadioInput } from \"../pillRadioButton\";\nimport { ITeamPillRadio } from \"./types\";\n\nconst TeamPillRadio: React.FC = ({\n handleChange,\n teamId = 0,\n}) => {\n const teamsById = useSelector(getTeamsById);\n const team = teamId ? teamsById[teamId] : null;\n return (\n
\n \n \n \n {team ? team.name : \"All\"}\n \n \n
\n );\n};\n\nexport default TeamPillRadio;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgInfo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 6,\n height: 13,\n viewBox: \"0 0 6 13\",\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: \"M2.22454008,4.81004082 C2.04454008,5.29122857 1.86734808,5.7178898 1.72391208,6.156 C1.26547608,7.55608163 0.79016808,8.95126531 0.37907208,10.3661633 C0.14141208,11.1840857 0.47704128,11.7369796 1.18250808,11.838 C1.43938008,11.8748302 1.71688008,11.8733951 1.96813608,11.8150408 C3.51877608,11.4548694 4.20733608,10.1739796 4.91521608,8.91887755 C4.76334408,9.03175959 4.64147208,9.17573878 4.51255608,9.31301633 C4.11552408,9.7358449 3.67396008,10.0969714 3.12319608,10.2887878 C3.03319608,10.3198788 2.89960008,10.305529 2.82272808,10.2548278 C2.78194728,10.228042 2.80397808,10.0725869 2.8269468,9.98313796 C2.8569468,9.86451551 2.9160096,9.75306857 2.9624148,9.63827265 C3.5652228,8.14782367 4.1759748,6.66080327 4.7638548,5.16410939 C4.865574,4.90486041 4.9325988,4.59873796 4.9058868,4.32609306 C4.8566676,3.82768898 4.3424508,3.47564816 3.7124508,3.48904408 C2.0769708,3.52348286 0.8985708,4.35097469 0.0595308,5.74002367 C0.0285936,5.79120367 0.0285936,5.86151633 0,5.98253388 C0.698436,5.45686041 1.27548,4.82070122 2.22468,4.81018286 L2.22454008,4.81004082 Z M5.82634008,1.5717551 C5.82634008,2.43941633 5.13680808,3.14302041 4.28602008,3.14302041 C3.43571208,3.14302041 2.74618008,2.43941633 2.74618008,1.5717551 C2.74618008,0.703616327 3.43571208,0 4.28602008,0 C5.13679608,0 5.82634008,0.703604082 5.82634008,1.5717551\",\n transform: \"translate(0 .5)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgInfo);\nexport default __webpack_public_path__ + \"static/media/info.7c1d8a41.svg\";\nexport { ForwardRef as ReactComponent };","import TeamPillRadio from \"./TeamPillRadio\";\n\nexport default TeamPillRadio;\n","var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgStatus(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 21,\n height: 19,\n viewBox: \"0 0 21 19\",\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: \"M20.7588154,16.1639512 L12.2281283,0.988998469 C11.879948,0.378360845 11.2183513,0 10.4998191,0 C9.78128692,0 9.11969017,0.378360845 8.77150994,0.988998469 L0.240822794,16.1639512 C-0.0919261004,16.7567989 -0.0793835139,17.4770055 0.275542057,18.0585846 C0.629499774,18.6401876 1.27376405,18.9979533 1.9691369,18.9999129 L19.0053273,18.9999129 C19.7055147,19.0063793 20.357507,18.6523673 20.7182051,18.0688941 C21.0789032,17.485421 21.0943345,16.7605391 20.7587117,16.1639512 L20.7588154,16.1639512 Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"currentColor\",\n d: \"M10.4998191,17.0817658 C10.1005303,17.0817658 9.73983219,16.8485635 9.5874447,16.4898532 C9.43409676,16.1311524 9.51896909,15.7190817 9.80155504,15.4446556 C10.084141,15.1702295 10.5085076,15.087825 10.8778966,15.2367406 C11.2472857,15.3847163 11.4874466,15.73498 11.4874466,16.1227154 C11.4874466,16.3774574 11.3832838,16.6209548 11.1981029,16.8007727 C11.012922,16.9805906 10.762174,17.0817442 10.4998413,17.0817442 L10.4998191,17.0817658 Z M12.3390363,6.77220598 L11.5964066,13.2456505 C11.5308247,13.7860393 11.0601616,14.1934347 10.4998191,14.1934347 C9.93947659,14.1934347 9.46880862,13.7860393 9.40323163,13.2456505 L8.66060187,6.77220598 C8.62298893,6.4678342 8.72136182,6.16156835 8.93162544,5.93305576 C9.14187672,5.70360092 9.44278522,5.5724849 9.75913987,5.57341497 L11.2405477,5.57341497 C11.5568777,5.57248346 11.857801,5.70360092 12.0680622,5.93305576 C12.2783134,6.16157315 12.3766888,6.4678342 12.3390857,6.77220598 L12.3390363,6.77220598 Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgStatus);\nexport default __webpack_public_path__ + \"static/media/status.a4a4028f.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\";\nimport { VisuallyHidden } from \"./Utils\";\n\nexport const InfoIcon = styled.div`\n display: inline-block;\n padding: 2px;\n border-radius: 50%;\n background-color: white;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding: 2px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 2px;\n }\n\n svg {\n ${size(10)}\n display: block;\n fill: ${(props) => props.theme.colors.primary};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(12)}\n }\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 IStatusLabel {\n copnr: number;\n}\n\nconst StatusInfo: React.FC = ({ copnr }) => {\n const copnrMessage = copnr\n ? `${copnr}% chance of playing`\n : \"Unlikely to play\";\n return (\n <>\n \n {copnrMessage}\n \n );\n};\n\ninterface IProps {\n element: IElement;\n}\n\nconst ElementStatus: React.FC = ({ element }) => {\n const copnr = element.chance_of_playing_next_round as number;\n return element.news ? (\n \n ) : (\n \n \n \n );\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 { VisuallyHidden } from \"./Utils\";\n\nconst StyledElementDialogButton = styled.button`\n display: block;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n font-family: ${({ theme }) => theme.fonts.bold};\n line-height: 1;\n cursor: pointer;\n\n ${(props) =>\n props.variant === \"list\" &&\n css`\n padding: 0.7rem ${props.theme.space[1]};\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 showElementDialog(elementId)}\n variant={variant}\n >\n \n View player information\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 * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport shadow from \"../img/shirt-shadow.png\";\n\nconst StyledShirt = styled.img`\n display: inline-block;\n margin: auto;\n vertical-align: middle;\n\n ${(props) =>\n props.hasShadow &&\n css`\n padding-bottom: 20%;\n background: url(${shadow}) no-repeat center bottom;\n background-size: contain;\n `}\n`;\n\ninterface IProps {\n alt: string;\n path: string;\n sizes: string;\n}\n\ninterface IStyledProps {\n hasShadow?: boolean;\n}\n\ntype Props = IProps & IStyledProps;\n\nconst Shirt: React.FC = ({ alt, hasShadow, path, sizes }) => (\n \n \n \n \n);\n\nexport default Shirt;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKcAAAAfCAYAAACCj930AAAE1UlEQVR4nO2c63LUMAyFlaXADAzv/7a7/AAX7ek5ujhOm+2imYxt2ZHt+Itkpyzbrx8/7b/cyWZmt79pR8Y93XtvzX6eRl4+egALpAvRUTY3SI/sC8W/GAb5h5VHgHPWk417j2y/WjpAMU/tx6/mgs/ytBCfBc4MispDn63r9L1SIigyYBSQFZs4Hza/UwD7HnCu8F4VXVSerYt0WZsKYNXybJ0vVyBWAEdtD5Oj4JxZTKZjEFV0URuVKl2lnAlbSAXYbTLttNmI3ozvVRWE6mVctt9dBWc3nCrPlUGV6aI2mZ0ojfKZVLxelCqdaqPaKXtoG8FVsDGwfX43oLNwdmBU5SjNwMIrqsvasT5ZyuaidEO6YGaQKR27onZZf5gibOyAqmCdhrQKJ54K2QC6IbgL3SVotzXbYZ9sPGr8qhxJJYRXPaS6rpN1kX0cz0g7sKrnlEKbwVldnE207XrADDYELytXAe3MdYUoj1rxph1Ar8U6r4v68nUIKM6l4jmVDTOL4VQLohYu8og+3wGQ5THtQMnGG831KMn6q4T/KqRXkSrdjKcNIRPz8utA70U4o4emFjMD0ewPPCNlUGYQRmAqONmYHkWiF6fiVRlsClKWXoQNBqQfBxsnmxfWUf0LVDKpeMqRKkAYPBF0l6Q+85Zq7J9B8LkzSC92D5QvMxg9kAO6Ddp5GK/GAcu8pw/5KbwvFi9gxVuOtHJlXpGVI48Zhe1nkTF35s1YeUDoYdxE3qcezAvYRe/p+45AVDBvZnbbs+f8KDARUIP8s4qHwZf9QQfBvIANDwu2GzbUNgPrGKAV7/pqCwfXlSoQCmjMqzoWsrtjeAZR0SOLNFm5arszRmbrTvbCWX0LsD3bJym7eFrdO4ZnlSgEZ2Wz+Dl31qDaNgzrkfHItat7MM8AxfDj8yoU+VDx7F5UneDVN83ud1Clx/4QaAV4yM2X71+/mdUPRaPMdBWJoM7ylTd4ZkyPLuz5KKDwhJ6d4BHG7Pvnqoj3elr3Crag6JVwA8w6Gbbwutm/Aw2eJkcevaQ/IF1dOTq9m719iT4LrCoERx4O8xGMCuYMyGirVvWYd/oXUCpAsY51tgV5BNSf4MfkEbbstF79vFTZ0J9VsggSXZ2P7hnQHSjVuFVZ6eifL9FTKiO418MBRSfzcV2JTn2wZ3XZR/mxP63AquD1shfkNJTZ2+cYeccISgbY7J8rjwAyrYsORBGkyijzmgjqSKNPGOyKPGTnH3yoPnF8FuhQshdZ6ZQ39Pmup+zWVSBUIM4AGYF6J5XTOhqrLsTQ4/7S26h4V6arQHdJ7ke9Gheb84wHZQu5Es4MrtUQVl4+Jhhlpcx+SvIdZfU4GQapz1fAVfmsnOWjFPOszKTiLVVazXfKzAZLozybD9NvSZtQ9v5MI/Oq6u3CQePbVA2vM5B1QngHRj+nyDtki78n7Xi8DoQduCpAl2T1D9yiwfiFjfYnCtRKOcureysQzoRyJdH8K3UVsLI9YLRWs3VL5T1/t64mlXlb3AIwO1WYFGB79pRZ28pidrxVBbIVcL0bhErO8J8qzHrbyEZl010FcKXHHDIbJvfawvvKh5OPkDPAGUn1wVX2uqtsr5KjoOhAd1owzc4PZ1X2PmS2mLtOmg2Jtil7vOLDy2+kvEzFwgQiDAAAAABJRU5ErkJggg==\"","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { getElementsById } from \"../core/store/elements/reducers\";\nimport { getSettings } from \"../core/store/game/reducers\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport Shirt from \"./Shirt\";\n\ninterface IProps {\n alt: string;\n elementId: number;\n hasShadow?: boolean;\n sizes: string;\n}\n\nexport const getElementShirtPath = (\n elementType: number,\n teamCode: number,\n shirtMode: string\n) => {\n const suffix = elementType === 1 ? `_${elementType}` : \"\";\n return `${process.env.PUBLIC_URL}/dist/img/shirts/${shirtMode}/shirt_${teamCode}${suffix}`;\n};\n\nconst ElementShirt: React.FC = ({\n alt,\n elementId,\n hasShadow,\n sizes,\n}) => {\n const element = useSelector(getElementsById)[elementId];\n const settings = useSelector(getSettings);\n const team = useSelector(getTeamsById)[element.team];\n\n let shirtMode = \"standard\";\n if (settings && settings.ui_use_special_shirts) {\n if (settings.ui_special_shirt_exclusions.indexOf(element.code) === -1) {\n shirtMode = \"special\";\n }\n }\n\n return (\n \n );\n};\n\nexport default ElementShirt;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst StyledMedia = styled.div`\n display: flex;\n ${(props) =>\n props.centred &&\n css`\n align-items: center;\n `}\n`;\n\nconst Img = styled.div`\n margin-right: ${({ theme }) => theme.space[2]};\n`;\n\nconst Body = styled.div`\n flex: 1;\n /* For ElementInTable webname ellipsis */\n max-width: 100%;\n overflow: hidden;\n`;\n\ninterface IStyledMediaProps {\n centred: boolean | undefined;\n}\n\ninterface IMediaProps {\n img: React.ReactNode;\n centred?: boolean;\n children: React.ReactNode;\n}\n\nconst Media: React.FC = ({ img, centred, children }) => (\n \n {img}\n {children}\n \n);\n\nMedia.defaultProps = {\n centred: false,\n};\n\nexport default Media;\n","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 ElementPhoto from \"./ElementPhoto\";\nimport ElementShirt from \"./ElementShirt\";\nimport Media from \"./Media\";\n\nconst MenuButton = styled.button`\n ${ellipsis()};\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n color: inherit;\n font-family: ${(props) => props.theme.fonts.regular};\n text-align: left;\n cursor: pointer;\n`;\n\nconst Name = styled.div`\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n ${ellipsis()};\n`;\n\nconst Info = styled.div`\n font-size: ${({ theme }) => theme.fontSizes[0]};\n`;\n\nconst Team = styled.span`\n margin-right: ${({ theme }) => theme.space[2]};\n`;\n\ninterface IPropsFromState {\n elementTypesById: IElementTypesById;\n}\n\ninterface IOwnProps {\n element: IElement;\n renderElementMenu: () => void;\n team: ITeam;\n}\n\ntype Props = IPropsFromState & IOwnProps;\n\nconst ElementInTable: React.FC = ({\n element,\n elementTypesById,\n renderElementMenu,\n team,\n}) => {\n return (\n \n \n ) : (\n \n )\n }\n centred={true}\n >\n {element.web_name}\n \n {team.short_name}\n \n {elementTypesById[element.element_type].singular_name_short}\n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementTypesById: getElementTypesById(state),\n});\n\nexport default connect(mapStateToProps)(ElementInTable);\n","import React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../../core/store\";\nimport { getElementStatsByIdentifier } from \"../../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../../core/store/element-stats/types\";\nimport { getElement } from \"../../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../../core/store/elements/thunks\";\nimport { getTeamsById } from \"../../../core/store/teams/reducers\";\nimport { getElementStatNames } from \"../../../utils/element-stats\";\nimport ElementDialogButton from \"../../ElementDialogButton\";\nimport ElementInTable from \"../../ElementInTable\";\nimport { IFixtureStatsRow } from \"./types\";\n\nconst FixtureStatsRow: React.FC = ({ stat }) => {\n const element = useSelector((state: RootState) =>\n getElement(state, stat.element)\n );\n const teamsById = useSelector(getTeamsById);\n const statsByName: Record = useSelector(\n getElementStatsByIdentifier\n );\n\n const reduxDispatch = useDispatch();\n\n const statNames = getElementStatNames();\n\n if (!element) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n reduxDispatch(showElementSummary(element.id))\n }\n element={element}\n team={teamsById[element.team]}\n />\n \n {stat.total_points}\n {statNames.map((n) => (\n {stat[statsByName[n].name]}\n ))}\n \n );\n};\n\nexport default FixtureStatsRow;\n","import FixtureStatsRow from \"./FixtureStatsRow\";\n\nexport default FixtureStatsRow;\n","import React, { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"rebass\";\nimport { getElementStatsByIdentifier } from \"../../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../../core/store/element-stats/types\";\nimport { getElementsById } from \"../../../core/store/elements/reducers\";\nimport { getTeamsById } from \"../../../core/store/teams/reducers\";\nimport { getElementStatNames, getStatAbbr } from \"../../../utils/element-stats\";\nimport { PillItem, PillList } from \"../../pillList\";\nimport { FixtureStatsTableWrap, StyledFixtureStatsTable } from \"../../styles\";\nimport TeamPillRadio from \"../../TeamPillRadio\";\nimport Tooltip, { TooltipLabel } from \"../../Tooltip\";\nimport { VisuallyHidden } from \"../../Utils\";\nimport FixtureStatsRow from \"../FixtureStatsRow\";\nimport { IFixtureStatsTable } from \"./types\";\n\nconst FixtureStatsTable: React.FC = ({\n fixture,\n fixtureStats,\n}) => {\n const teamsById = useSelector(getTeamsById);\n const elementsById = useSelector(getElementsById);\n const statsByName: Record = useSelector(\n getElementStatsByIdentifier\n );\n const [filteredStats, setFilteredStats] = useState(fixtureStats);\n\n const teamH = teamsById[fixture.team_h];\n const teamA = teamsById[fixture.team_a];\n\n const statNames = getElementStatNames();\n\n const handleChange = (e: React.ChangeEvent) => {\n const teamId = Number(e.target.value);\n\n return teamId\n ? setFilteredStats(\n fixtureStats.filter((s) => elementsById[s.element].team === teamId)\n )\n : setFilteredStats(fixtureStats);\n };\n return (\n <>\n \n \n {[0, teamH.id, teamA.id].map((teamId) => (\n \n \n \n ))}\n \n \n \n \n \n \n \n Info\n \n Player\n Pts\n {statNames.map((n) => (\n \n \n {getStatAbbr(n, statsByName)}\n \n \n ))}\n \n \n \n {filteredStats.map((s) => (\n \n ))}\n \n \n \n \n );\n};\n\nexport default FixtureStatsTable;\n","import FixtureStatsTable from \"./FixtureStatsTable\";\n\nexport default FixtureStatsTable;\n","import React, { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getAllStatsForFixture } from \"../../core/store/fixtures/reducers\";\nimport { fetchFixtureAllStats } from \"../../core/store/fixtures/thunks\";\nimport FixtureStatsTable from \"./FixtureStatsTable\";\nimport { IFixtureDetailedStats } from \"./types\";\n\nconst FixtureDetailedStats: React.FC = ({ fixture }) => {\n const allStatsForFixture = useSelector((state: RootState) =>\n getAllStatsForFixture(state, fixture.id)\n );\n\n const reduxDispatch = useDispatch();\n\n useEffect(() => {\n !allStatsForFixture && reduxDispatch(fetchFixtureAllStats(fixture.id));\n }, [fixture, reduxDispatch, allStatsForFixture]);\n\n if (!allStatsForFixture) {\n return null;\n }\n\n return (\n b.total_points - a.total_points)}\n />\n );\n};\n\nexport default FixtureDetailedStats;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddToCalendar(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\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: \"M13.1216612,8.76312896 C14.8893581,8.76312896 16.3255349,10.2060042 16.3255349,11.9805497 C16.3255349,13.7557209 14.8894086,15.1979707 13.1216612,15.1979707 C11.3539644,15.1979707 9.91778756,13.7557209 9.91778756,11.9805497 C9.91778756,10.2053784 11.3539139,8.76312896 13.1216612,8.76312896 Z M13.1216612,9.68270613 C11.8591433,9.68270613 10.8328191,10.7133869 10.8328191,11.9812262 C10.8328191,13.2490825 11.8591602,14.2797463 13.1216612,14.2797463 C14.3841791,14.2797463 15.4105033,13.2490655 15.4105033,11.9812262 C15.4105033,10.71337 14.3841623,9.68270613 13.1216612,9.68270613 Z M13.1216949,10.6175391 C13.3743265,10.6175391 13.5795981,10.8236786 13.5795981,11.0773784 L13.5795981,11.0773784 L13.5795981,11.5213531 L14.0217033,11.5213531 C14.2736781,11.5213531 14.478948,11.7274926 14.4796065,11.9811924 C14.4796065,12.2348922 14.2743349,12.4410317 14.0217033,12.4410317 L14.0217033,12.4410317 L13.5795981,12.4410317 L13.5795981,12.8850063 C13.5795981,13.1387061 13.3743265,13.3448457 13.1216949,13.3448457 C12.8690633,13.3448457 12.6637918,13.1387061 12.6637918,12.8850063 L12.6637918,12.8850063 L12.6637918,12.4410317 L12.2216865,12.4410317 C11.9690549,12.4410317 11.7637833,12.2348922 11.7637833,11.9811924 C11.7637833,11.7274926 11.9690549,11.5213531 12.2216865,11.5213531 L12.2216865,11.5213531 L12.6637918,11.5213531 L12.6637918,11.0773784 C12.6637918,10.8243383 12.8690633,10.6182004 13.1216949,10.6175391 Z M11.8592276,0.821784355 C12.805956,0.821784355 13.5796486,1.59810571 13.5796486,2.54947992 L13.5796486,2.54947992 L13.5796486,7.87582241 C13.421737,7.85996617 13.279657,7.84410994 13.1217455,7.84410994 C12.9638339,7.84410994 12.821737,7.85996617 12.6638423,7.87582241 L12.6638423,7.87582241 L12.6638423,5.02237632 L1.42561156,5.02237632 L1.42495371,10.6969641 C1.42495371,11.1409387 1.78810318,11.5056237 2.23020861,11.5056237 L2.23020861,11.5056237 L9.03362756,11.5056592 C9.01783809,11.6642216 9.00204861,11.8227839 9.00204861,11.9813463 C9.00204861,12.1240609 9.01783809,12.2826148 9.03362756,12.4253209 L9.03362756,12.4253209 L2.23025914,12.4246596 C1.28353139,12.4246596 0.509838692,11.6483383 0.509838692,10.6969641 L0.509838692,10.6969641 L0.509838692,2.54947992 C0.509838692,1.59874841 1.28356491,0.821784355 2.23093282,0.821784355 L2.23093282,0.821784355 Z M4.7085244,9.58765328 C4.96115598,9.58765328 5.16642756,9.79379281 5.16642756,10.0474926 C5.16642756,10.3011924 4.96115598,10.5073319 4.7085244,10.5073319 L4.7085244,10.5073319 L3.33550545,10.5073319 C3.08287388,10.5073319 2.8776023,10.3011924 2.8776023,10.0474926 C2.8776023,9.79379281 3.08287388,9.58765328 3.33550545,9.58765328 L3.33550545,9.58765328 Z M7.9597244,9.58765328 C8.21235598,9.58765328 8.41762756,9.79379281 8.41762756,10.0474926 C8.41762756,10.3011924 8.21235598,10.5073319 7.9597244,10.5073319 L7.9597244,10.5073319 L6.58670545,10.5073319 C6.33407388,10.5073319 6.1288023,10.3011924 6.1288023,10.0474926 C6.1288023,9.79379281 6.33407388,9.58765328 6.58670545,9.58765328 L6.58670545,9.58765328 Z M4.02961914,5.70418605 C4.91382967,5.70418605 5.64014714,6.43357294 5.63948906,7.30499789 C5.63948906,8.17642283 4.91382967,8.90580973 4.02961914,8.90580973 C3.14606545,8.90580973 2.41974967,8.17708245 2.41974967,7.30499789 C2.41974967,6.43357294 3.14540861,5.70418605 4.02961914,5.70418605 Z M4.02961914,6.60735729 C3.66646967,6.60735729 3.35068019,6.92448203 3.35068019,7.30503171 C3.35068019,7.6855814 3.65067177,8.00270613 4.02961914,8.00270613 C4.40856651,8.00270613 4.70855809,7.6855814 4.70855809,7.30503171 C4.70855809,6.92448203 4.39276861,6.60735729 4.02961914,6.60735729 Z M7.9597244,6.84515856 C8.21235598,6.84515856 8.41762756,7.0512981 8.41762756,7.30499789 C8.41762756,7.55869767 8.21235598,7.76483721 7.9597244,7.76483721 L7.9597244,7.76483721 L6.58670545,7.76483721 C6.33407388,7.76483721 6.1288023,7.55869767 6.1288023,7.30499789 C6.1288023,7.0512981 6.33407388,6.84515856 6.58670545,6.84515856 L6.58670545,6.84515856 Z M11.2117665,6.84515856 C11.4643981,6.84515856 11.6538718,7.0512981 11.6538718,7.30499789 C11.6538718,7.55869767 11.4486002,7.76483721 11.1959686,7.76483721 L11.1959686,7.76483721 L9.82294967,7.76483721 C9.57031809,7.76483721 9.36504651,7.55869767 9.36504651,7.30499789 C9.36504651,7.0512981 9.57031809,6.84515856 9.82294967,6.84515856 L9.82294967,6.84515856 Z M11.8592107,1.74085412 L2.23091598,1.74085412 C1.78881055,1.74085412 1.42566108,2.10553911 1.42566108,2.54951374 L1.42566108,2.54951374 L1.42566108,4.08756195 L12.6644655,4.08690063 L12.6644655,2.54951374 C12.6644655,2.10553911 12.301316,1.74085412 11.8592107,1.74085412 L11.8592107,1.74085412 Z M4.15593493,2.9141649 C4.15593493,3.84439746 2.76711809,3.84439746 2.76711809,2.9141649 C2.76711809,1.98459197 4.15593493,1.98459197 4.15593493,2.9141649 Z M11.3222507,2.9141649 C11.3222507,3.84439746 9.93277703,3.84439746 9.93277703,2.9141649 C9.93277703,1.98459197 11.3222507,1.98459197 11.3222507,2.9141649 Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddToCalendar);\nexport default __webpack_public_path__ + \"static/media/add-to-calendar.8205de6a.svg\";\nexport { ForwardRef as ReactComponent };","import FixtureDetailedStats from \"./FixtureDetailedStats\";\n\nexport default FixtureDetailedStats;\n","import styled from \"styled-components/macro\";\nimport { ReactComponent as BaseAddToCalendar } from \"../../img/icons/add-to-calendar.svg\";\n\nconst AddToCalendar = styled(BaseAddToCalendar)`\n margin-bottom: -4px;\n fill: ${({ theme }) => theme.colors.primary};\n`;\n\nexport default AddToCalendar;\n","import { Link } from \"@reach/router\";\nimport { hideVisually, rgba } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport { NextIcon, PrevIcon } from \"./icons/Chevrons\";\nimport { gradientBorder } from \"./Utils\";\n\nexport const Pager = styled.div`\n display: flex;\n`;\n\nexport const EventPager = styled.div`\n ${gradientBorder}\n display: flex;\n margin-top: -4rem;\n padding: ${({ theme }) => theme.space[1]};\n`;\n\nexport const PagerItem = styled.div``;\n\nexport const PagerItemNext = styled(PagerItem)`\n margin-left: auto;\n text-align: right;\n`;\n\nconst PagerStyles = css`\n display: flex;\n align-items: center;\n padding: 0.8rem ${({ theme }) => theme.space[3]};\n border: 0;\n border-radius: 8px;\n background: ${rgba(\"white\", 0.6)};\n color: inherit;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst PagerButton = styled.button`\n ${PagerStyles}\n`;\n\nconst PagerLink = styled(Link)`\n ${PagerStyles}\n text-decoration: none;\n`;\n\nconst ButtonLabel = styled.span`\n @media (max-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${hideVisually}\n }\n`;\n\nexport const PagerHeading = styled.h3`\n margin: ${({ theme }) => theme.space[2]};\n padding: 0 6rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.4rem;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin: 0 33%;\n padding: 0.9rem 1rem;\n font-size: 2rem;\n }\n`;\n\ninterface IPagerButtonProps {\n onClick: () => void;\n label?: string;\n}\n\nexport const PreviousButton: React.FC = ({\n onClick,\n label = \"Previous\",\n}) => (\n \n \n {label}\n \n);\n\nexport const NextButton: React.FC = ({\n onClick,\n label = \"Next\",\n}) => (\n \n {label}\n \n \n);\n\ninterface IPagerLinkProps {\n onClick?: () => void;\n label?: string;\n to: string;\n}\n\nexport const PreviousLink: React.FC = ({\n onClick,\n label = \"Previous\",\n to,\n}) => (\n \n \n {label}\n \n);\n\nexport const NextLink: React.FC = ({\n onClick,\n label = \"Next\",\n to,\n}) => (\n \n {label}\n \n \n);\n","import { format } from \"date-fns\";\nimport { hideVisually, hiDPI, rgba, size } from \"polished\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../core/store\";\nimport { getElementStatsByIdentifier } from \"../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../core/store/element-stats/types\";\nimport { getElementsById } from \"../core/store/elements/reducers\";\nimport { showElementSummary } from \"../core/store/elements/thunks\";\nimport { IElementsById } from \"../core/store/elements/types\";\nimport {\n getCurrentEvent,\n getEventsById,\n getNextEvent,\n} from \"../core/store/events/reducers\";\nimport { IEvent, IEventsById } from \"../core/store/events/types\";\nimport { getGroupedFixturesByEvent } from \"../core/store/fixtures/reducers\";\nimport { fetchFixtures } from \"../core/store/fixtures/thunks\";\nimport {\n IFixtureStat,\n IGroupedFixturesByEvent,\n IGroupFixture,\n} from \"../core/store/fixtures/types\";\nimport { formatRawAsISO, formatRawAsLocal } from \"../core/utils/datetime\";\nimport { ReactComponent as ChevronDown } from \"../img/icons/chevron-down.svg\";\nimport logo from \"../img/pl-logo-lion.svg\";\nimport pattern2Crop184 from \"./../img/pattern/pattern-2-crop-184.png\";\nimport pattern2Crop90 from \"./../img/pattern/pattern-2-crop-90.png\";\nimport { ButtonHyperlink } from \"./ButtonLink\";\nimport Fixture from \"./Fixture\";\nimport FixtureDetailedStats from \"./FixtureDetailedStats\";\nimport AddToCalendar from \"./icons/AddToCalendar\";\nimport {\n EventPager,\n NextButton,\n NextLink,\n PagerItem,\n PagerItemNext,\n PreviousButton,\n PreviousLink,\n} from \"./Pager\";\nimport { GradBorderBox } from \"./styles\";\nimport TabHeading from \"./TabHeading\";\nimport TabPanel from \"./tabs/TabPanel\";\nimport Tabs from \"./tabs/Tabs\";\nimport { gradientBorder, NewTabCopy } from \"./Utils\";\n\nconst StyledFixtures = styled.section`\n margin: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[1]};\n background-repeat: no-repeat;\n background-position: right top, 0, 0;\n box-shadow: 0 8px 12px 0 ${rgba(\"#6B6B6B\", 0.08)};\n background-image: url(${pattern2Crop90}),\n linear-gradient(to bottom, ${rgba(\"white\", 0)} 80px, white 160px),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n\n ${hiDPI(2)} {\n background-image: url(${pattern2Crop184}),\n linear-gradient(to bottom, ${rgba(\"white\", 0)} 80px, white 160px),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-size: 90px 60px, auto, auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n`;\n\nconst FixturesHeader = styled.div`\n ${gradientBorder}\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${({ theme }) =>\n `${theme.space[3]} ${theme.space[2]} ${theme.space[2]}`};\n`;\n\nconst Heading = styled.h2`\n margin: 0;\n display: flex;\n align-items: center;\n font-size: 1.6rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 2.4rem;\n }\n`;\n\nconst FixtureLogo = styled.img`\n ${size(32)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(52)}\n }\n`;\n\nconst EventHeading = styled.h3`\n margin: 1.2rem ${({ theme }) => theme.space[2]};\n font-size: ${({ theme }) => theme.fontSizes[2]};\n text-align: center;\n line-height: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: ${({ theme }) => theme.fontSizes[4]};\n }\n`;\n\nconst Deadline = styled.time`\n @media (max-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${hideVisually}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-left: 0.6rem;\n font-family: ${({ theme }) => theme.fonts.regular};\n }\n`;\n\nconst Note = styled.p`\n padding: ${({ theme }) => theme.space[2]};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-top: 1.7rem;\n padding-bottom: 1.7rem;\n }\n`;\n\nconst FixtureDay = styled.div`\n position: relative;\n\n ::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 1px;\n background-image: linear-gradient(\n to right,\n ${rgba(\"white\", 0)} 0%,\n ${({ theme }) => theme.colors.lightGrey} 15%,\n ${({ theme }) => theme.colors.lightGrey} 49%,\n ${({ theme }) => theme.colors.lightGrey} 85%,\n ${rgba(\"white\", 0)} 100%\n );\n }\n`;\n\nconst FixtureList = styled.ul`\n margin: 0 0 ${({ theme }) => theme.space[4]};\n padding: 0;\n font-size: 1rem;\n list-style: none;\n`;\n\nconst FixtureItem = styled.li`\n border-bottom: 1px solid ${({ theme }) => rgba(theme.colors.primary, 0.08)};\n`;\n\nconst FixtureButton = styled.button`\n display: flex;\n width: 100%;\n padding: 0;\n border: 0;\n background-color: transparent;\n text-align: left;\n cursor: pointer;\n\n ${(props) =>\n props.isOpen &&\n css`\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\n\n ${IconWrap} {\n background-color: ${({ theme }) => theme.colors.primary};\n }\n\n svg {\n transform: rotate(180deg);\n fill: white;\n }\n `}\n`;\n\nconst IconWrap = styled.span`\n align-self: stretch;\n background-color: #f8f8f8;\n padding: 1.7rem ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 2.1rem ${({ theme }) => theme.space[3]};\n }\n`;\n\nconst FixtureStatsWrap = styled.div`\n display: ${(props) => (props.isOpen ? \"block\" : \"none\")};\n padding-top: ${(props) => props.theme.space[3]};\n border-width: 1px 0;\n border-style: solid;\n border-color: ${({ theme }) => theme.colors.primary};\n`;\n\nconst FixtureSummaryStats = styled.ul`\n padding: ${({ theme }) => `${theme.space[3]} 5%`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n padding-right: 15%;\n padding-left: 15%;\n }\n`;\n\nconst FixtureStat = styled.li`\n margin-bottom: ${({ theme }) => theme.space[4]};\n box-shadow: 0 8px 12px 0 rgba(135, 135, 135, 0.08);\n border-radius: ${({ theme }) => theme.radii[0]};\n`;\n\nconst FixtureStatHeading = styled.h5`\n padding: 0.3rem ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => `${theme.radii[0]} ${theme.radii[0]} 0 0`};\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\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 solid #e2e2e2;\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\n :last-child {\n border-bottom: 0;\n }\n`;\n\nconst ElementButton = styled.button`\n background-color: transparent;\n padding: 0;\n border: 0;\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.regular};\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 {\" \"}\n ({fs.value})\n showElementDialog(fs.element)}>\n {elementsById[fs.element].web_name}\n \n ))}\n \n);\n\ninterface IFixtureStatsProps {\n elementsById: IElementsById;\n fixture: IGroupFixture;\n id: string;\n showElementDialog: (elementId: number) => void;\n statsByIdentifier: Record;\n}\n\ninterface IStyledFixtureStatsProps {\n isOpen?: boolean;\n}\n\ntype FixtureStatProps = IFixtureStatsProps & IStyledFixtureStatsProps;\n\nconst FixtureStats: React.FC = ({\n elementsById,\n fixture,\n id,\n isOpen = false,\n showElementDialog,\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 = fixture.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};\n\n// Used to generate unique ids for collapsible content / aria controls\nlet lastId = 0;\nconst newId = (prefix = \"ism-id\") => `${prefix}${++lastId}`;\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 \n \n \n \n \n \n \n \n {renderStats.map((stat) => (\n \n ))}\n \n \n \n \n {statsByIdentifier[stat.identifier].label}\n \n \n \n \n \n \n \n ;\n}\n\ntype Props = IOwnProps & IPropsFromDispatch & IPropsFromState;\n\ninterface IState {\n eventId: number;\n isOpen: Record;\n}\n\nclass Fixtures extends React.Component {\n public id = \"\";\n public constructor(props: Props) {\n super(props);\n let eventId = 0;\n if (props.eventId) {\n eventId = props.eventId;\n } else if (props.currentEvent && !props.currentEvent.finished) {\n // Current gw not finished\n eventId = props.currentEvent.id;\n } else if (props.nextEvent) {\n // Next gw\n eventId = props.nextEvent.id;\n } else if (props.currentEvent) {\n // Current gw. This will only happen one the last gw of the season\n // has finished\n eventId = props.currentEvent.id;\n }\n this.state = { eventId, isOpen: {} };\n }\n\n public componentDidMount() {\n this.id = newId(\"ism-collapsible-\");\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 showElementDialog,\n statsByIdentifier,\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\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 connect(mapStateToProps, mapDispatchToProps)(Fixtures);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport Fixtures from \"./Fixtures\";\nimport FixturesNav from \"./FixturesNav\";\nimport HelmetHead from \"./HelmetHead\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Title from \"./Title\";\n\nconst FixturesWrapper: React.FC\n \n \n {eventFixtureGroups.map((group) => (\n \n ))}\n
\n \n \n \n
\n \n \n {\" \"}\n \n Fixtures\n \n \n \n \n Sync to Calendar\n \n \n \n \n \n \n {event.name}:\n {formatRawAsLocal(event.deadline_time)}\n \n {eventsById[eventId - 1] && (\n \n )}\n {eventsById[eventId + 1] && (\n \n )}\n \n {useLinks ? (\n this.changeEvent(eventId - 1)}\n />\n ) : (\n this.changeEvent(eventId - 1)}\n />\n )}\n \n {useLinks ? (\n this.changeEvent(eventId + 1)}\n />\n ) : (\n this.changeEvent(eventId + 1)} />\n )}\n \n All times are shown in your \n local time\n \n \n \n \n {format(group.date, \"EEEE d MMMM yyyy\")}\n \n }\n isCentered={true}\n />\n \n {group.fixtures.map((f) => (\n \n ))}\n \n {f.started && f.team_h_score !== null ? (\n \n ) : (\n \n )}\n \n this.toggle(f.id)}\n isOpen={this.state.isOpen[f.id]}\n aria-expanded={this.state.isOpen[f.id] ? true : false}\n aria-controls={this.id}\n >\n \n \n \n \n \n \n \n \n > = ({\n eventId = 0,\n}) => (\n <>\n \n \n \n);\n\nexport default FixturesWrapper;\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 \n \n \n Fixtures & Results\n \n \n \n
\n
\n = ({\n element,\n team,\n}) => (\n \n {element.web_name}\n {team.name}\n {element.total_points}\n £{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\ninterface IElementListPositionProps {\n elements: IElement[];\n elementType: IElementType;\n teamsById: ITeamsById;\n}\nconst ElementListPosition: React.FC\n \n \n \n \n \n \n \n \n \n {elements.map((element) => (\n \n ))}\n \n
\n Player\n \n Team\n \n Points\n \n Cost\n = ({\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};\n\ninterface IPropsFromState {\n elements: IElement[];\n elementTypes: IElementType[];\n teamsById: ITeamsById;\n}\n\ntype Props = RouteComponentProps & IPropsFromState;\n\nconst PlayerList: React.FC\n \n
\n \n \n
{elementType.plural_name}
\n
\n \n = ({ elements, elementTypes, teamsById }) => (\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","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgHeadlineLogoLight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 139,\n height: 32,\n viewBox: \"0 0 139 32\",\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 fill: \"#FFF\",\n d: \"M5.02515842 2.43822076C6.31028879 3.02998353 7.13513267 3.77726524 7.28462743 3.89060956 7.21643684 3.55584843 6.96334484 1.95189456 6.81778415.952883031 7.5665693 1.47611203 9.30542938 2.68863262 9.8758699 3.08270181 10.1092915 2.36046129 10.9170878.0039538715 10.9170878.0039538715 10.9170878.0039538715 12.3753173 2.37759473 12.6244753 2.76375618 12.9287102 2.44349259 14.6728157.494233937 15.1239227 0 15.1999815 1.12158155 15.3035787 2.72685338 15.3271831 2.96803954 15.4163554 2.84810544 16.0838364 1.90840198 17.2024244 1.04118616 16.7172221 2.00065898 16.4864232 3.32652389 16.3828259 4.39143328 15.282597 4.08171334 14.1220456 3.91565074 12.9234648 3.91565074 10.624655 3.91565074 8.46616056 4.52454695 6.6000988 5.58945634 6.2604572 4.56276771 5.72935741 3.2830313 5.02515842 2.43822076L5.02515842 2.43822076ZM18.4232983 15.7970346 18.4206755 14.1456343C18.4206755 14.1456343 17.6876267 13.908402 16.9021235 13.2968699 15.3284945 13.5367381 13.4204693 15.1275124 13.4204693 15.1275124 13.4204693 15.1275124 14.0656572 16.3558484 14.7685448 17.6803954 16.0077777 17.8517298 17.831876 16.2820428 18.4206755 15.7957166L18.4232983 15.7970346ZM20.0074181 18.7927512C20.0074181 18.7927512 19.8815278 18.1100494 19.3425599 17.4708402L18.1151292 17.5011532C18.1151292 17.5011532 16.4588847 18.9324547 15.447828 18.9654036 15.447828 18.9654036 16.005155 20.0065898 16.2844741 20.5495881 16.8418011 20.4283361 17.8200738 19.9855025 18.213481 19.5268534 18.213481 19.5268534 18.4744412 20.3716639 18.4246096 21.3667216 18.9780025 21.0425041 19.7412126 20.1700165 20.0087295 18.7914333L20.0074181 18.7927512ZM20.5122908 13.3640857C19.89333 13.8886326 19.3674757 14.1785832 19.3674757 14.1785832L19.3727211 15.8378913C19.8172713 16.3347611 20.2539534 16.7459638 20.5817927 17.4958814 21.2020648 16.3742998 21.0840427 14.7215815 20.5122908 13.3640857L20.5122908 13.3640857ZM20.6473606 11.8853377 20.7444011 11.1314662C20.777185 10.7163097 20.6709651 10.0283361 20.0926564 9.31400329 19.3753438 8.50477759 17.5709159 7.20263591 16.7106653 6.89028007 16.7106653 6.89028007 16.639852 7.72454695 16.3434852 8.12652389 14.6295409 6.88237232 13.7876494 6.57133443 13.7876494 6.57133443 11.90454 6.84151565 10.6954684 7.57166392 10.0384782 8.14497529L10.6115415 8.63525535C9.47721721 8.98583196 8.74023428 9.96639209 8.74023428 9.96639209 8.74810243 9.98352554 9.75391365 10.1271829 9.75391365 10.1271829 9.75391365 10.1271829 9.65162776 11.3146623 11.1308391 12.0593081 12.3962991 12.6958814 14.219086 11.906425 15.9343417 12.5970346 14.8052628 11.2883031 14.0289392 10.7031301 14.0289392 10.7031301 14.0289392 10.7031301 13.5804549 10.6095552 13.2644177 10.6108731 12.8710105 10.6135091 12.2848337 10.6925865 11.6396458 10.4395387 11.3327881 10.3196046 10.9734762 10.1060956 10.6928456 9.92817133 10.6928456 9.92817133 11.4849056 9.11103789 12.6402116 8.93047776 12.6402116 8.93047776 13.6827408 9.22570016 14.5102074 9.8398682 15.0596662 9.30214168 15.6327294 9.31927512 15.6327294 9.31927512 15.6327294 9.31927512 15.0649116 9.85304778 15.2366995 10.4988468 16.0628547 11.2395387 16.9585119 12.2978583 16.9585119 12.2978583 17.8712167 11.7943987 19.8539893 11.9103789 20.2618215 12.3848435 19.7451466 11.7126853 19.0016069 11.1512356 18.425921 10.6701812 18.356419 10.4184514 17.7282788 9.53805601 17.6220588 9.45766063 17.6220588 9.45766063 18.2200378 9.64349259 18.752449 10.123229 18.9071892 9.90444811 19.1930651 9.68039539 19.5838497 9.5815486 19.9864364 9.92026359 20.0559384 10.4395387 20.0454475 10.5265239 19.8631688 10.7426689 19.6874469 10.83229 19.6874469 10.83229L20.652606 11.8827018 20.7497449 11.1288303M21.6151425 12.4981878C23.087797 15.2329489 23.4457976 18.5093904 22.4229387 21.7739703 22.3613049 21.7041186 21.5823585 20.8289951 21.2597646 20.4705107 21.0551928 23.662603 20.1201949 26.1416804 17.3925712 28.2359143 17.3925712 28.2359143 17.1329224 27.2329489 16.980805 26.6056013 12.4828487 29.9189456 8.61565532 28.4032949 7.52853993 27.8589786 8.37043146 23.9789127 7.71868677 21.7515651 7.15480304 20.0527183 5.95753362 22.029654 4.73141433 23.5650741 3.50791776 24.6023064 2.67127166 22.6385502 2.60701514 18.9891269 3.28367562 16.8329489 3.05943348 16.893575 1.7375851 17.3126853 1.00453624 17.5367381 1.29959169 15.5571664 2.60045835 12.9067545 3.97476104 11.5861614 3.73478261 11.5439868 3.03058362 11.4438221 2.47194531 11.3502471 2.81552098 10.6477759 3.8121527 9.34299835 5.33988422 8.11861614 5.29529807 8.98056013 5.61395794 10.0112026 6.58436251 10.5041186 5.96933583 9.41943987 5.89458845 8.08039539 6.53584228 7.38583196 7.17971883 6.68731466 8.26027743 6.92718287 8.95005149 7.47018122 8.82284981 7.09324547 8.54484201 6.65700165 8.13438711 6.36968699 10.0384782 5.47874794 12.3490902 4.96342669 14.9691825 5.3693575 15.3730806 5.72388797 15.8045173 6.22207578 16.0431843 6.53047776 16.0536752 6.30906096 16.0222026 5.88467875 15.9527007 5.56177924 17.0240798 5.81746293 18.1426677 6.22866557 19.3019078 6.83097199 17.237831 4.76177924 13.0546005 4.13970346 9.56376681 5.14398682 8.74547971 5.37990115 7.96915606 5.69093904 7.23872992 6.05864909 6.46896305 6.06787479 5.97326991 6.54102142 5.69001668 6.9601318 3.45677481 8.44942339 1.81888927 10.4092257 1.02945204 12.0514003 1.20517394 12.0896211 1.73365103 12.1555189 2.22278738 12.2398682 1.22353295 13.6751236-.0812677887 16.3835255.00397045042 18.8151565.230835302 18.7466227 1.4503978 18.3710049 2.04837683 18.1759473 1.7284056 20.3215815 1.82151198 23.9261944 3.20630553 25.9874794 4.95041104 24.7459638 5.96146769 23.4411862 6.80204786 22.2642504 7.01842185 23.323888 7.22955042 25.2072488 6.4860107 28.3281713 7.08923516 28.7960461 11.4613012 31.1037891 16.4064304 28.0883031L16.819508 29.7265239 17.3545419 29.3772652C20.3641074 27.4121911 21.5194134 24.7578254 21.9233115 22.5963756 22.0623154 22.7505766 22.6091515 23.352883 22.8058551 23.5532125 23.561197 21.4827018 25.0705695 16.5034596 21.609897 12.5008237L21.6151425 12.4981878ZM76.2226925 16.4902801 76.2226925 25.4932455 72.3791036 25.4932455 72.3791036 16.9054366C72.3791036 14.4092257 71.1962591 13.1321252 69.2161093 13.1321252 66.9697538 13.1321252 65.4026816 14.7360791 65.4026816 18.0942339L65.4026816 25.4932455 61.5590927 25.4932455 61.5590927 9.74629325 64.9882926 9.74629325 65.3725204 11.6481054C66.4963538 10.2220758 68.0332648 9.50906096 69.9845648 9.50906096 73.7979925 9.50906096 76.2226925 12.2135091 76.2226925 16.491598L76.2226925 16.4902801ZM83.9662587 5.19934102 83.9662587 9.74497529 89.5539531 9.74497529 89.5539531 13.1624382 83.9662587 13.1624382 83.9662587 19.907743C83.9662587 21.3640857 84.6455419 22.1060956 86.094592 22.1060956 86.9220586 22.1060956 87.8977086 21.8385502 88.7251752 21.3930807L89.997192 24.6313015C88.7553364 25.3153213 87.2472753 25.7304778 85.6513532 25.7304778 82.2221532 25.7304778 80.1226698 23.7390445 80.1226698 20.4718287L80.1226698 13.1624382 77.6101088 13.1624382 77.6101088 9.74497529 80.1226698 9.74497529 80.1226698 5.19934102 83.9662587 5.19934102ZM107.054019 9.74497529 107.054019 25.4932455 103.624819 25.4932455 103.240592 23.6810544C102.057747 24.9581549 100.284792 25.7317957 98.2443195 25.7317957 93.8394695 25.7317957 90.7053251 22.3736409 90.7053251 17.6197694 90.7053251 12.8658979 93.8394695 9.507743 98.2443195 9.507743 100.284792 9.507743 102.057747 10.2800659 103.240592 11.5584843L103.624819 9.74629325 107.054019 9.74629325 107.054019 9.74497529ZM103.21043 17.7673806 103.21043 17.4708402C103.21043 14.6477759 101.110947 13.0728171 98.8645916 13.0728171 96.3520306 13.0728171 94.548914 15.0339374 94.548914 17.6184514 94.548914 20.2029654 96.3520306 22.1640857 98.8645916 22.1640857 101.110947 22.1640857 103.21043 20.5891269 103.21043 17.7660626L103.21043 17.7673806ZM110.708773 21.0359143C111.832606 21.9268534 113.251495 22.461944 114.700545 22.461944 116.149595 22.461944 117.005912 21.9861614 117.005912 21.1242175 117.005912 18.6280066 109.377745 19.7271829 109.377745 14.2602965 109.377745 11.4372323 111.713273 9.50642504 115.201484 9.50642504 117.241956 9.50642504 119.132933 10.1311367 120.700006 11.2896211L118.807717 14.1719934C117.683883 13.2810544 116.413178 12.7749588 115.141161 12.7749588 113.869144 12.7749588 113.220022 13.2797364 113.220022 13.9927512 113.220022 16.3097199 120.848189 15.2105437 120.848189 20.8263591 120.848189 23.7377265 118.364478 25.7291598 114.610061 25.7291598 112.510578 25.7291598 110.500267 25.1650741 108.993517 24.184514L110.707461 21.0345964 110.708773 21.0359143ZM139 9.74497529 132.466817 26.3841845C130.810572 30.6029654 128.475045 32 125.016995 32 124.425572 32 123.83415 31.9406919 123.390911 31.7917628L123.893161 27.9591433C124.189528 28.0184514 124.514745 28.0487644 124.898973 28.0487644 126.73225 28.0487644 127.854772 27.5136738 128.594378 25.7014827L121.557634 9.74497529 125.844461 9.74497529 130.6637 20.9476112 134.802345 9.74497529 139 9.74497529 139 9.74497529ZM31.6588298 8.73410214 31.6588298 13.4879736 40.6757241 13.4879736 40.6757241 17.23229 31.6588298 17.23229 31.6588298 25.4932455 27.6670574 25.4932455 27.6670574 4.99110379 41.7693963 4.99110379 41.7693963 8.7354201 31.6588298 8.7354201 31.6588298 8.73410214ZM58.827535 9.74497529 58.827535 25.4932455 55.398335 25.4932455 55.0141073 23.6810544C53.8312628 24.9581549 52.0569961 25.7317957 50.0178351 25.7317957 45.6129852 25.7317957 42.4788407 22.3736409 42.4788407 17.6197694 42.4788407 12.8658979 45.6129852 9.507743 50.0178351 9.507743 52.0583074 9.507743 53.8312628 10.2800659 55.0141073 11.5584843L55.398335 9.74629325 58.827535 9.74629325 58.827535 9.74497529ZM54.9839461 17.7673806 54.9839461 17.4708402C54.9839461 14.6477759 52.8844627 13.0728171 50.6381072 13.0728171 48.1255462 13.0728171 46.3224296 15.0339374 46.3224296 17.6184514 46.3224296 20.2029654 48.1255462 22.1640857 50.6381072 22.1640857 52.8844627 22.1640857 54.9839461 20.5891269 54.9839461 17.7660626L54.9839461 17.7673806Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgHeadlineLogoLight);\nexport default __webpack_public_path__ + \"static/media/headline-logo-light.57c2bcda.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/home-step-1-1-342.d1e84bc6.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-1-684.fda0fde0.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-2-342.9d7d3108.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-2-684.8d1aee37.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-3-342.89aa31e3.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-3-684.03134b7e.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-4-342.ee3dc449.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-4-684.2d011c5c.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-5-342.31cb6d2c.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-5-684.5adfd5c9.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-6-342.ca07356b.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-6-684.da29c92d.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-7-342.85176e2f.png\";","export default __webpack_public_path__ + \"static/media/home-step-1-7-684.d6f80ee7.png\";","export default __webpack_public_path__ + \"static/media/home-step-2-342.60873868.png\";","export default __webpack_public_path__ + \"static/media/home-step-2-684.e76c9c8c.png\";","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgApple(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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 fill: \"#ffffff\",\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.272 5.93c1.018 0 2.294-.689 3.054-1.606.688-.832 1.19-1.993 1.19-3.154 0-.158-.015-.315-.044-.444-1.132.043-2.494.76-3.31 1.72-.646.73-1.234 1.878-1.234 3.053 0 .172.029.344.043.402.072.014.187.028.301.028zM8.69 23.273c1.39 0 2.007-.931 3.741-.931 1.763 0 2.15.903 3.698.903 1.52 0 2.538-1.405 3.498-2.781 1.075-1.577 1.52-3.125 1.548-3.197-.1-.029-3.01-1.218-3.01-4.558 0-2.896 2.294-4.2 2.423-4.3-1.52-2.18-3.828-2.237-4.459-2.237-1.705 0-3.096 1.032-3.97 1.032-.946 0-2.194-.975-3.67-.975-2.81 0-5.662 2.322-5.662 6.709 0 2.724 1.06 5.605 2.365 7.468 1.118 1.577 2.093 2.867 3.498 2.867z\",\n fill: \"#fff\",\n fillRule: \"nonzero\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgApple);\nexport default __webpack_public_path__ + \"static/media/apple.275f33de.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFacebook(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 22,\n height: 22,\n viewBox: \"0 0 22 22\",\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 fill: \"#FFF\",\n d: \"M87,22.0672385 C87,15.954953 82.0751851,11 76.0000458,11 C69.9248699,11 65,15.954953 65,22.0672385 C65,27.5912193 69.022551,32.1697104 74.2812514,33 L74.2812514,25.2663715 L71.4882953,25.2663715 L71.4882953,22.0672385 L74.2812514,22.0672385 L74.2812514,19.6289707 C74.2812514,16.8552481 75.9234981,15.3231323 78.436097,15.3231323 C79.6395923,15.3231323 80.8984586,15.5392824 80.8984586,15.5392824 L80.8984586,18.2628574 L79.5114322,18.2628574 C78.1449406,18.2628574 77.7187486,19.1159657 77.7187486,19.9911824 L77.7187486,22.0672385 L80.7695651,22.0672385 L80.2818598,25.2663715 L77.7187486,25.2663715 L77.7187486,33 C82.9775316,32.1697104 87,27.5912193 87,22.0672385 Z\",\n transform: \"translate(-65 -11)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFacebook);\nexport default __webpack_public_path__ + \"static/media/facebook.2bd50ebb.svg\";\nexport { ForwardRef as ReactComponent };","var _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgGoogle(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 18,\n height: 19,\n viewBox: \"0 0 18 19\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#4285F4\",\n d: \"M17.64,9.20454545 C17.64,8.56636364 17.5827273,7.95272727 17.4763636,7.36363636 L9,7.36363636 L9,10.845 L13.8436364,10.845 C13.635,11.97 13.0009091,12.9231818 12.0477273,13.5613636 L12.0477273,15.8195455 L14.9563636,15.8195455 C16.6581818,14.2527273 17.64,11.9454545 17.64,9.20454545 L17.64,9.20454545 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#34A853\",\n d: \"M9,18 C11.43,18 13.4672727,17.1940909 14.9563636,15.8195455 L12.0477273,13.5613636 C11.2418182,14.1013636 10.2109091,14.4204545 9,14.4204545 C6.65590909,14.4204545 4.67181818,12.8372727 3.96409091,10.71 L0.957272727,10.71 L0.957272727,13.0418182 C2.43818182,15.9831818 5.48181818,18 9,18 L9,18 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#FBBC05\",\n d: \"M3.96409091,10.71 C3.78409091,10.17 3.68181818,9.59318182 3.68181818,9 C3.68181818,8.40681818 3.78409091,7.83 3.96409091,7.29 L3.96409091,4.95818182 L0.957272727,4.95818182 C0.347727273,6.17318182 0,7.54772727 0,9 C0,10.4522727 0.347727273,11.8268182 0.957272727,13.0418182 L3.96409091,10.71 L3.96409091,10.71 Z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#EA4335\",\n d: \"M9,3.57954545 C10.3213636,3.57954545 11.5077273,4.03363636 12.4404545,4.92545455 L15.0218182,2.34409091 C13.4631818,0.891818182 11.4259091,0 9,0 C5.48181818,0 2.43818182,2.01681818 0.957272727,4.95818182 L3.96409091,7.29 C4.67181818,5.16272727 6.65590909,3.57954545 9,3.57954545 L9,3.57954545 Z\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"0 0 18 0 18 18 0 18\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgGoogle);\nexport default __webpack_public_path__ + \"static/media/google.d5387bce.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTwitter(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTwitter);\nexport default __webpack_public_path__ + \"static/media/twitter.435b9f1d.svg\";\nexport { ForwardRef as ReactComponent };","import { rgba } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nconst TextDivider = styled.div`\n margin: ${({ theme }) => theme.space[4]} 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 { hiDPI, rgba, size } from \"polished\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../core/store\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { IPlayer } from \"../core/store/player/types\";\nimport { ReactComponent as BaseLogoLight } from \"../img/headline-logo-light.svg\";\nimport { ReactComponent as AppleLogo } from \"../img/social/apple.svg\";\nimport { ReactComponent as FacebookLogo } from \"../img/social/facebook.svg\";\nimport { ReactComponent as GoogleLogo } from \"../img/social/google.svg\";\nimport { ReactComponent as TwitterLogo } from \"../img/social/twitter.svg\";\nimport pattern1_437 from \"./../img/pattern/pattern-1-437.png\";\nimport pattern1_874 from \"./../img/pattern/pattern-1-874.png\";\nimport Alert from \"./Alert\";\nimport { BoldHyperlink } from \"./BoldLink\";\nimport Button from \"./Button\";\nimport { ButtonHyperlink } from \"./ButtonLink\";\nimport Copy from \"./Copy\";\nimport { FieldWrap, InputField } from \"./FieldRenderers\";\nimport TextDivider from \"./TextDivider\";\n\nconst LoginForm = styled.form`\n margin: 0 ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n align-items: center;\n margin: 0;\n padding-top: 3rem;\n }\n`;\n\nconst LoginTitle = styled.h2`\n margin-bottom: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 10%;\n margin-top: 2.3rem;\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding-right: ${({ theme }) => theme.space[3]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex-basis: 10%;\n }\n`;\n\nconst Username = styled(FieldWrap)`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 30%;\n padding-right: ${({ theme }) => theme.space[3]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex-basis: 28%;\n }\n`;\n\nconst Password = styled(FieldWrap)`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 23%;\n padding-right: ${({ theme }) => theme.space[3]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex-basis: 28%;\n }\n`;\n\nconst LoginButtonWrap = styled.div`\n margin-bottom: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 20%;\n margin-top: 2.3rem;\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding-right: ${({ theme }) => theme.space[3]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex-basis: 20%;\n }\n`;\n\nconst LoginLinks = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 17%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex-basis: 14%;\n }\n`;\n\nconst LoginLink = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 0;\n text-align: left;\n }\n`;\n\nconst SocialLogin = styled.div`\n display: flex;\n flex-direction: column;\n margin: ${({ theme }) => `0 ${theme.space[1]} ${theme.space[4]}`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n flex-direction: row;\n flex-wrap: wrap;\n margin-right: 2%;\n margin-left: 2%;\n }\n`;\n\nconst SocialButtonWrap = styled.div`\n flex: 0 0 50%;\n margin: ${({ theme }) => theme.space[1]} 0;\n padding: 0 ${({ theme }) => theme.space[1]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n flex-basis: 25%;\n }\n`;\n\nconst StyledSocialButton = styled.a
\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 display: block;\n padding: 0 ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[0]};\n box-shadow: 0 1px 8px 0 ${rgba(\"black\", 0.12)};\n background-color: ${(props) => props.theme.colors.social[props.network].bg};\n color: ${(props) => props.theme.colors.social[props.network].color};\n font-family: ${({ theme }) => theme.fonts.bold};\n text-align: center;\n text-decoration: none;\n line-height: 4.4rem;\n\n > svg {\n vertical-align: middle;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n`;\n\nconst SocialButtonText = styled.span`\n margin-left: ${({ theme }) => theme.space[2]};\n text-transform: capitalize;\n`;\n\nconst Promo = styled.div`\n margin: ${({ theme }) => `0 ${theme.space[2]} ${theme.space[4]}`};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[0]};\n background-color: ${({ theme }) => theme.colors.primary};\n background-repeat: no-repeat;\n background-image: url(${pattern1_437}), url(${pattern1_437});\n background-position: left -78px bottom -260px, right -220px top -152px;\n background-size: 366px 415px;\n text-align: center;\n\n ${hiDPI(2)} {\n background-image: url(${pattern1_874}), url(${pattern1_874});\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n align-items: center;\n margin: 0 0 4rem;\n padding: 2.2rem 8rem;\n text-align: left;\n }\n`;\n\nconst PromoHead = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 19%;\n }\n`;\n\nconst PromoBody = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 62%;\n }\n`;\n\nconst PromoFoot = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 19%;\n }\n`;\n\nconst LogoLight = styled(BaseLogoLight)`\n ${size(32, 139)}\n margin: ${({ theme }) => theme.space[4]} 0;\n`;\n\nconst PromoHeading = styled.h3`\n margin-bottom: ${({ theme }) => theme.space[2]};\n font-size: 2.1rem;\n color: ${({ theme }) => theme.colors.fantasy};\n`;\n\nconst PromoText = styled.p`\n margin-bottom: ${({ theme }) => theme.space[4]};\n color: white;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-bottom: 0;\n padding-right: 6rem;\n }\n`;\n\ninterface ISocialButtonStyleProps {\n network: string;\n}\n\ninterface ISocialButtonProps {\n link: string;\n logo: React.ReactNode;\n}\n\ntype SocialButtonPros = ISocialButtonProps & ISocialButtonStyleProps;\n\nconst SocialButton: React.FC = ({ link, logo, network }) => (\n \n);\n\ninterface IOwnProps {\n usersError?: string;\n}\n\ninterface IPropsFromState {\n player: IPlayer | null;\n}\n\ntype Props = IOwnProps & IPropsFromState;\n\nconst Login: React.FC\n {logo}\n \n login with {network} = ({ player, usersError = \"\" }) => {\n const [isSubmitting, setIsSubmitting] = React.useState(false);\n if (player && player.id) {\n return (\n \n );\n }\n // Constants to help build urls\n const app = \"plfpl-web\";\n const plusers = process.env.REACT_APP_PLUSERS_BASE || \"\";\n const redirect = `${window.location.protocol}//${window.location.host}/`;\n const register = `${plusers}/users/register/personal?app=${app}&redirect_uri=${redirect}`;\n const passLook = `${plusers}/accounts/password-reset/`;\n const makeSocialLogin = (net: string) =>\n `${plusers}/accounts/${net}/login/?app=${app}&redirect_uri=${redirect}`;\n\n return (\n <>\n {usersError && (\n \n )}\n \n \n

\n You are logged in as {player.first_name} {player.last_name}.\n

\n {usersError && (\n \n )}\n
\n \n {usersError} setIsSubmitting(true)}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n player: getPlayerData(state),\n});\n\nexport default connect(mapStateToProps)(Login);\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgNews(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 52,\n height: 32,\n viewBox: \"0 0 52 32\",\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: \"M50.1436976,-4.61852778e-14 C51.282078,-4.61852778e-14 52.2614048,0.784558831 51.9370789,2.04052425 L51.9370789,2.04052425 L51.9370789,27.1353651 C51.9370789,29.8067109 49.4951109,32 46.5634468,32 L46.5634468,32 L4.88393611,32 C2.27656542,32 1.27897692e-13,29.9597894 1.27897692e-13,27.6071481 L1.27897692e-13,27.6071481 L1.27897692e-13,5.96127944 C1.27897692e-13,4.86457216 0.979359427,3.92106888 2.1176747,3.92106888 L2.1176747,3.92106888 L7.65019752,3.92106888 L7.65019752,2.04021056 C7.65019752,0.943503279 8.62955694,-4.61852778e-14 9.76787221,-4.61852778e-14 L9.76787221,-4.61852778e-14 Z M48.1885277,3.92051993 L11.7250608,3.92051993 L11.7250608,27.9186849 L46.8861448,27.9248174 C47.5411457,27.9248174 48.1897976,27.4530658 48.1897976,26.9813141 L48.1897976,26.9813141 L48.1885277,3.92051993 Z M7.65643267,7.68843187 L4.23507263,7.68843187 L4.24143803,27.2937763 C4.24143803,27.4530658 4.40042643,27.7655279 4.89008986,27.7655279 L4.89008986,27.7655279 L6.84239448,27.7655279 C7.33205792,27.7655279 7.65638383,27.4530658 7.65638383,27.2937763 L7.65638383,27.2937763 L7.65643267,7.68843187 Z M40.6994675,18.3496613 C41.8378154,18.3496613 42.8171422,19.293196 42.8171422,20.3898719 C42.8171422,21.4865792 41.8377828,22.4300981 40.6994675,22.4300981 L40.6994675,22.4300981 L19.2117767,22.4300981 C18.0734288,22.4300981 17.094102,21.4926803 17.094102,20.3960044 C17.094102,19.2992971 18.0734614,18.3557939 19.2117767,18.3557939 L19.2117767,18.3557939 Z M40.6994675,9.09907561 C41.8378154,9.09907561 42.8171422,10.0425789 42.8171422,11.1392862 C42.8171422,12.2359935 41.8377828,13.1794967 40.6994675,13.1794967 L40.6994675,13.1794967 L19.2117767,13.1794967 C18.0734288,13.1794967 17.094102,12.2359935 17.094102,11.1392862 C17.094102,10.0425789 18.0734614,9.09907561 19.2117767,9.09907561 L19.2117767,9.09907561 Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgNews);\nexport default __webpack_public_path__ + \"static/media/news.e7b197dd.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPlay(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 35,\n height: 40,\n viewBox: \"0 0 35 40\",\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: \"M0,3.29080136 C0,0.742483724 2.8053262,-0.836144346 5.01727931,0.467013752 L33.3780565,17.1761676 C35.5406478,18.4503264 35.5406478,21.5496304 33.3780565,22.8219796 L5.01727931,39.5329894 C2.80523245,40.8361475 0,39.2574963 0,36.7092018 L0,3.29080136 Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlay);\nexport default __webpack_public_path__ + \"static/media/play.557ebd16.svg\";\nexport { ForwardRef as ReactComponent };","import { size } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as BaseNewsIcon } from \"../../img/icons/news.svg\";\nimport { ReactComponent as BasePlayIcon } from \"../../img/icons/play.svg\";\nimport { ReactComponent as BaseExternalIcon } from \"../../img/icons/external.svg\";\n\nexport const NewsLink = styled.a`\n display: block;\n color: ${({ theme }) => theme.colors.primary};\n text-decoration: none;\n\n :hover img {\n transform: scale(1.1);\n }\n`;\n\nexport const Figure = styled.figure`\n display: flex;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: block;\n }\n`;\n\nexport const Thumb = styled.div`\n position: relative;\n width: 40%;\n overflow: hidden;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: auto;\n }\n`;\n\nexport const NewsImg = styled.img`\n display: block;\n width: 100%;\n transition: opacity 0.4s ease-in-out, transform 0.4s;\n`;\n\nexport const NewsSubtitle = styled.div`\n color: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n font-size: 1.1rem;\n`;\n\nexport const NewsTitle = styled.div`\n font-size: 1.2rem;\n line-height: 1.33;\n\n ${NewsLink}:hover & {\n text-decoration: underline;\n }\n`;\n\nexport const StyledRelatedArticles = styled.div`\n display: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: block;\n margin: ${({ theme }) => `0 ${theme.space[2]} ${theme.space[3]}`};\n padding-top: 0.8rem;\n border-top: 1px solid ${({ theme }) => theme.colors.lightGrey};\n color: #6c6c6c;\n }\n`;\n\nexport const RelatedLink = styled.a`\n display: flex;\n align-items: center;\n padding-bottom: ${({ theme }) => theme.space[1]};\n font-size: 1.1rem;\n text-decoration: none;\n transition: all 0.2s;\n`;\n\nexport const IconWrap = styled.div`\n flex: 0 0 18%;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex-basis: 15%;\n }\n`;\n\nexport const PlayIcon = styled(BasePlayIcon)`\n ${size(14, 12)};\n fill: ${({ theme }) => theme.colors.darkPink};\n`;\n\nexport const RelatedHeadline = styled.p`\n color: #6c6c6c;\n line-height: 1.36;\n\n :hover {\n color: ${({ theme }) => theme.colors.darkPink};\n text-decoration: underline;\n }\n`;\n\nexport const NewsIcon = styled(BaseNewsIcon)`\n ${size(14, 20)};\n fill: ${({ theme }) => theme.colors.darkPink};\n`;\n\nexport const ExternalIcon = styled(BaseExternalIcon)`\n ${size(10)};\n margin-left: ${(props) => props.theme.space[1]};\n fill: #6c6c6c;\n`;\n","import React from \"react\";\nimport { NewsImg } from \"./styles\";\n\ninterface IImgSize {\n width: number;\n height: number;\n}\n\ninterface IImgSizes {\n x1: IImgSize;\n x2: IImgSize;\n}\n\ninterface IProps {\n news: any;\n imgSizes: IImgSizes;\n}\n\nconst NewsThumb: React.FCSign In\n \n \n \n \n \n \n \n \n \n Forgot your password?or login with\n \n \n \n \n \n }\n />\n \n }\n />\n \n }\n />\n \n }\n />\n \n \n \n \n \n \n \n \n \n Register to Play Fantasy Premier League\n With over 11 million players, Fantasy Premier League is the biggest\n Fantasy Football game in the world.{\" \"}\n \n It’s FREE to play and you can win great prizes!\n \n \n Sign Up Now\n = ({ news, imgSizes }) => {\n const newsType = news.type;\n const allowedNewsTypes = [\"text\", \"video\"];\n if (allowedNewsTypes.indexOf(newsType) === -1) {\n return null;\n }\n let thumbSrc = \"\";\n if (newsType === \"text\") {\n if (!news.leadMedia) {\n return null;\n }\n const lm = news.leadMedia;\n thumbSrc =\n lm.type === \"video\" && lm.thumbnail\n ? lm.thumbnail.onDemandUrl\n : lm.onDemandUrl;\n }\n if (newsType === \"video\") {\n if (!news.thumbnail) {\n return null;\n }\n thumbSrc = news.thumbnail.onDemandUrl;\n }\n if (!thumbSrc) {\n return null;\n }\n const defaultSize = `${thumbSrc}?width=${imgSizes.x1.width}&height=${imgSizes.x1.height}`;\n return (\n \n );\n};\n\nexport default NewsThumb;\n","import * as Sentry from \"@sentry/browser\";\nimport * as React from \"react\";\nimport { Wrapper, Main } from \"../Layout\";\nimport Copy from \"../Copy\";\n\ninterface IState {\n eventId: string | null;\n error: Error | null;\n}\n\nclass ScoutErrorBoundary extends React.Component {\n public state: IState = { error: null, eventId: null };\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 return this.state.error ? (\n \n ) : (\n this.props.children\n );\n }\n}\n\nexport default ScoutErrorBoundary;\n","export default __webpack_public_path__ + \"static/media/scout-bg.c87ceeb4.png\";","import styled, { css } from \"styled-components/macro\";\nimport promoBg from \"../../img/pattern/scout-bg.png\";\nimport { NewsLink } from \"../news/styles\";\n\nexport const ScoutPattern = css`\n overflow: auto;\n background-image: url(${promoBg}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.fantasy}\n );\n background-position: right -75px bottom -230px, 0;\n background-repeat: no-repeat;\n`;\n\nexport const ScoutBody = styled.figcaption`\n width: 60%;\n padding: ${({ theme }) => theme.space[2]};\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n position: relative;\n width: auto;\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n width: 90%;\n height: 0.4rem;\n background: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.fantasy}\n );\n margin: auto;\n transition: 0.4s;\n }\n }\n`;\n\nexport const ScoutTitle = styled.span`\n display: inline-block;\n font-size: 1.5rem;\n line-height: 1.4;\n\n ${NewsLink}:hover & {\n text-decoration: underline;\n }\n`;\n\nexport const ScoutList = styled.ul`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -0.4rem;\n margin-left: -0.4rem;\n }\n`;\n\nexport const ScoutItem = styled.li`\n margin-bottom: ${({ theme }) => theme.space[2]};\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 33.33%;\n padding-right: 0.4rem;\n padding-left: 0.4rem;\n }\n`;\n","import moment from \"moment\";\nimport React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { fetchNews, IPulseResponse } from \"../../utils/pulse\";\nimport NewsThumb from \"../news/NewsThumb\";\nimport ScoutErrorBoundary from \"./ScoutErrorBoundary\";\nimport { ScoutPattern } from \"./styles\";\n\nconst ScoutLink = styled.a`\n display: block;\n color: inherit;\n text-decoration: none;\n\n :hover img {\n transform: scale(1.1);\n }\n`;\n\nconst ScoutContent = styled.figure`\n ${ScoutPattern}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n }\n`;\n\nconst ScoutImgWrap = styled.div`\n margin: 1rem;\n overflow: hidden;\n position: relative;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1;\n }\n`;\n\nconst ScoutBody = styled.figcaption`\n padding: ${({ theme }) => `${theme.space[4]} ${theme.space[2]}`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1;\n padding: 3rem;\n }\n`;\n\nconst ScoutTitle = styled.h4`\n margin-bottom: ${({ theme }) => theme.space[2]};\n color: ${({ theme }) => theme.colors.primary};\n font-size: 2.6rem;\n\n ${ScoutLink}:hover & {\n text-decoration: underline;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-top: 0.7rem;\n font-size: 3rem;\n }\n`;\n\nconst ScoutSummary = styled.p`\n font-size: 1.3rem;\n margin-bottom: ${({ theme }) => theme.space[2]};\n`;\n\nconst ScoutDate = styled.time`\n color: ${({ theme }) => theme.colors.black};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.1rem;\n`;\n\ntype NewsLeaderProps = {\n news: any;\n};\n\nexport const NewsLeader: React.FunctionComponent\n \n
\n \n
Problem showing scout content. = ({\n news,\n}) => {\n return (\n \n );\n};\n\ninterface IState {\n news: IPulseResponse | null;\n}\n\nclass ScoutNewsLeader extends React.Component {\n public state: IState = { news: null };\n\n public async componentDidMount() {\n // TODO - Should set an error state then can throw in render and use the\n // error boundary\n const newsData = await fetchNews(1, \"Fantasy%20Football%20Scout\").catch(\n (e) => {}\n );\n if (newsData) {\n this.setState({\n news: newsData,\n });\n }\n }\n\n public render() {\n const { news } = this.state;\n return news?.content.length ?
\n \n
\n \n \n \n \n \n \n \n \n \n \n {news.title}{news.summary}\n {moment(news.date).format(\"DD/MM/YYYY\")}\n : null;\n }\n}\n\nconst ScoutLeader: React.FC = () => (\n \n);\n\nexport default ScoutLeader;\n","import styled from \"styled-components/macro\";\n\nconst AdWrap = styled.div`\n margin-top: ${({ theme }) => theme.space[2]};\n text-align: center;\n`;\n\nexport default AdWrap;\n","import React, { useEffect } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { RootState } from \"../core/store\";\nimport { getEntry } from \"../core/store/entries/reducers\";\nimport { getPlayerData } from \"../core/store/player/reducers\";\nimport { ILoggedInPlayer } from \"../core/store/player/types\";\nimport { getTeamsById } from \"../core/store/teams/reducers\";\nimport AdWrap from \"./AdWrap\";\n\ninterface IProps {\n id: string;\n slot: string;\n targetValue?: string;\n}\n\nconst LeaderboardAd: React.FC\n \n = ({ id, slot, targetValue = \"\" }) => {\n const player = useSelector(getPlayerData) as ILoggedInPlayer;\n const entry = useSelector((state: RootState) =>\n player && player.entry ? getEntry(state, player.entry) : null\n );\n const teamsById = useSelector(getTeamsById);\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\n googletag?.cmd?.push(() => {\n const mapping = googletag\n .sizeMapping()\n .addSize([0, 0], [])\n .addSize(\n [200, 300],\n [\n [320, 50],\n [320, 480],\n ]\n )\n .addSize(\n [450, 300],\n [\n [320, 50],\n [1600, 900],\n ]\n )\n .addSize(\n [750, 300],\n [\n [728, 90],\n [1600, 900],\n ]\n )\n .addSize(\n [990, 300],\n [\n [1600, 900],\n [970, 250],\n [728, 90],\n ]\n )\n .build();\n googletag\n .defineSlot(\n `/131332370/${slot}`,\n [\n [320, 100],\n [728, 90],\n [970, 250],\n [320, 50],\n ],\n id\n )\n .defineSizeMapping(mapping)\n .addService(googletag.pubads());\n googletag.pubads().collapseEmptyDivs();\n googletag.enableServices();\n });\n // cleanup\n return () => {\n googletag && googletag.pubadsReady && googletag.destroySlots();\n };\n }, [slot, id]);\n\n if (!targetValue) {\n // targetValue will remain unset if entry is still being fetched so we can\n // delay showing the ad until it is ready\n if (!player || !player.entry) {\n targetValue = \"general\";\n } else if (entry) {\n targetValue = entry.favourite_team\n ? teamsById[entry.favourite_team].short_name\n : \"general\";\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 if (targetValue) {\n const googletag = (window as any).googletag;\n googletag?.cmd?.push(() => {\n googletag.pubads().setTargeting(\"section\", targetValue);\n googletag.display(id);\n });\n }\n }, [id, targetValue]);\n\n return (\n \n
\n \n );\n};\n\nexport default LeaderboardAd;\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport { IEventStatusData } from \"./types\";\nimport * as actions from \"./actions\";\n\nexport const fetchEventStatus =\n (): ThunkResult
> => async (dispatch) => {\n try {\n await apiGet(\n \"event-status/\",\n dispatch,\n actions.fetchEventStatus\n );\n } catch (e) {\n return;\n }\n };\n","import moment from \"moment\";\nimport * as React from \"react\";\nimport Table from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport styled from \"styled-components/macro\";\nimport { getCurrentEventStatus } from \"../../core/store/events/reducers\";\nimport { IEventStatusData } from \"../../core/store/events/types\";\nimport { connect } from \"react-redux\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { fetchEventStatus } from \"../../core/store/events/thunks\";\nimport { textGradient } from \"../Utils\";\n\nconst EventStatusHead = styled.thead`\n th:nth-child(n + 2) {\n text-align: center;\n }\n`;\n\nconst EventStatusBody = styled.tbody`\n th {\n background-color: transparent;\n font-family: ${({ theme }) => theme.fonts.regular};\n }\n\n td {\n text-align: center;\n }\n`;\n\nconst EventStatusInfo = styled.span`\n padding: 0.4rem 1.6rem;\n border-radius: ${({ theme }) => theme.radii[0]};\n background-color: ${({ theme }) => theme.colors.fantasy};\n font-family: ${({ theme }) => theme.fonts.bold};\n text-transform: uppercase;\n`;\n\nconst EventStatusLeagues = styled.tr`\n background-color: ${(props) => props.theme.colors.fantasy};\n`;\n\nconst EventStatusLeagueInfo = styled(EventStatusInfo)`\n background-color: ${({ theme }) => theme.colors.primary};\n > span {\n ${textGradient}\n }\n`;\n\ninterface IPropsFromState {\n statusData: IEventStatusData | null;\n}\n\ninterface IPropsFromDispatch {\n fetchEventStatus: () => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch;\n\nclass EventStatus extends React.Component {\n public componentDidMount() {\n this.props.fetchEventStatus();\n }\n\n pointsLabels = {\n l: \"Live\",\n p: \"Provisional\",\n r: \"Confirmed\",\n };\n\n public render() {\n const { statusData } = this.props;\n if (!statusData) {\n return null;\n }\n return (\n \n );\n }\n}\n\nexport { EventStatus as EventStatusTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n statusData: getCurrentEventStatus(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEventStatus: () => dispatch(fetchEventStatus()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EventStatus);\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 \n \n \n \n \n \n \n \n {statusData.status.map((s) => (\n \n \n \n \n \n ))}\n \n \n \n \n \n
Day\n \n \n \n Match Points\n \n \n \n Bonus Points{moment(s.date).format(\"dddd D MMM\")}\n {s.points ? (\n \n ) : (\n \n )}\n \n {this.pointsLabels[s.points]}\n  \n {s.bonus_added ? (\n \n ) : (\n \n )}\n Added League Tables\n {statusData.leagues ? (\n \n ) : (\n \n )}\n \n \n {statusData.leagues} ();\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 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 { getBestClassicPrivateLeagues } from \"../../core/store/stats/reducers\";\nimport { fetchBestClassicPrivateLeagues } from \"../../core/store/stats/thunks\";\nimport { IBestLeague } from \"../../core/store/stats/types\";\n// import { PrimaryCell, PrimaryCellLined } from \"../ElementTable\";\nimport { PrimaryCell, PrimaryCellLined } from \"../ElementTable\";\nimport Footnote from \"../Footnote\";\nimport Link, { Hyperlink } from \"../Link\";\nimport Panel from \"../Panel\";\nimport Table from \"../Table\";\n\nconst BestLeaguesTable = styled(Table)`\n white-space: nowrap;\n table-layout: fixed;\n\n th:not(:nth-child(2)),\n td:not(:nth-child(2)) {\n text-align: center;\n }\n`;\n\nconst PosCell = styled.th`\n width: 15%;\n`;\n\nconst TeamCell = styled.th`\n width: 50%;\n`;\n\nconst AverageCell = styled.th`\n width: 25%;\n`;\n\ninterface IPropsFromState {\n leagues: IBestLeague[];\n}\n\ninterface IPropsFromDispatch {\n fetchBestClassicPrivateLeagues: () => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch;\n\nclass BestLeagues extends React.Component {\n public componentDidMount() {\n this.props.fetchBestClassicPrivateLeagues();\n }\n\n public render() {\n const { leagues } = this.props;\n return (\n \n );\n }\n}\n\nexport { BestLeagues as BestLeaguesTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n return {\n leagues: getBestClassicPrivateLeagues(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchBestClassicPrivateLeagues: () =>\n dispatch(fetchBestClassicPrivateLeagues()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(BestLeagues);\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport { IMostValuableTeam, IBestLeague } from \"./types\";\nimport * as actions from \"./actions\";\n\nexport const fetchBestClassicPrivateLeagues =\n (): ThunkResult\n \n \n \n \n \n {!leagues.length && (\n \n )}\n \n \n \n \n \n \n \n \n \n {leagues.slice(0, 5).map((l, i) => (\n \n \n \n \n {l.name}\n \n \n \n \n ))}\n \n PosLeague\n Average\n \n \n \n *{i + 1}{l.average_score}\n \n \n *Average score of the top 5 teams in the league\n \n \n

The Best Leagues will appear here when available.

> => async (dispatch) => {\n try {\n await apiGet(\n `stats/best-classic-private-leagues/`,\n dispatch,\n actions.fetchBestClassicPrivateLeagues\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchMostValuableTeams =\n (): ThunkResult> => async (dispatch) => {\n try {\n await apiGet(\n `stats/most-valuable-teams/`,\n dispatch,\n actions.fetchMostValuableTeams\n );\n } catch (e) {\n return;\n }\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","var _defs, _g;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgDreamteam(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\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, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a\",\n x1: \"100%\",\n x2: \"0%\",\n y1: \"50%\",\n y2: \"50%\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"0%\",\n stopColor: \"#05F0FF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: \"100%\",\n stopColor: \"#00FF87\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: 16,\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n fill: \"url(#a)\",\n points: \"16 20.5 10.71 23.281 11.72 17.391 7.44 13.219 13.355 12.359 16 7 18.645 12.359 24.56 13.219 20.28 17.391 21.29 23.281\"\n }))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgDreamteam);\nexport default __webpack_public_path__ + \"static/media/dreamteam.9d8aae9c.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getEventDreamTeam,\n getOverallDreamTeam,\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 { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport {\n IElementType,\n IElementTypesById,\n} from \"../../core/store/element-types/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElement, IElementsById } from \"../../core/store/elements/types\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeam, ITeamsById } from \"../../core/store/teams/types\";\nimport { ReactComponent as DreamTeamIcon } from \"../../img/icons/dreamteam.svg\";\nimport { isBlankWeek } from \"../../utils/events\";\nimport BoldLink, { BoldLinkWrap } from \"../BoldLink\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementShirt from \"../ElementShirt\";\nimport {\n BorderedCell,\n ElementRow,\n ElementTable,\n PrimaryCell,\n} from \"../ElementTable\";\nimport Panel from \"../Panel\";\nimport { Ellipsis } from \"../Utils\";\n\nconst DTTable = styled(ElementTable)`\n th:not(:nth-child(4)),\n td:not(:nth-child(4)) {\n text-align: center;\n }\n`;\n\nconst DTStatus = styled.th`\n width: 12%;\n`;\n\nconst DTPos = styled.th`\n width: 14%;\n text-align: center;\n`;\n\nconst DTShirt = styled.th`\n width: 10%;\n`;\n\nconst DTName = styled.th`\n width: 32%;\n`;\n\nconst DTClub = styled.th`\n width: 16%;\n text-align: center;\n`;\n\nconst DTPts = styled.th`\n width: 16%;\n text-align: center;\n`;\n\ninterface IDreamTeamRowProps {\n element: IElement;\n elementType: IElementType;\n team: ITeam;\n points: number;\n}\n\nconst DreamTeamRow: React.FC = ({\n element,\n elementType,\n team,\n points,\n}) => (\n \n);\n\ninterface IPropsFromState {\n data: IDreamTeamData | null;\n elementsById: IElementsById;\n elementTypesById: IElementTypesById;\n now: IEvent | null;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n fetchEventDreamTeam: (eventId: number) => void;\n fetchOverallDreamTeam: () => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch;\n\nclass DreamTeamPanel extends React.Component\n \n {elementType.singular_name_short}\n \n \n \n \n \n \n \n {points}\n \n \n {element.web_name}{team.short_name} {\n public componentDidMount() {\n if (this.props.now) {\n if (isBlankWeek(this.props.now.id)) {\n this.props.fetchOverallDreamTeam();\n } else {\n this.props.fetchEventDreamTeam(this.props.now.id);\n }\n }\n }\n\n public render() {\n const { data, elementsById, elementTypesById, now, teamsById } = this.props;\n if (!data || !now) {\n return null;\n }\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const now = getCurrentEvent(state);\n return {\n data: now\n ? isBlankWeek(now.id)\n ? getOverallDreamTeam(state)\n : getEventDreamTeam(state, now.id)\n : null,\n elementsById: getElementsById(state),\n elementTypesById: getElementTypesById(state),\n now,\n teamsById: getTeamsById(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEventDreamTeam: (eventId) => dispatch(fetchEventDreamTeam(eventId)),\n fetchOverallDreamTeam: () => dispatch(fetchOverallDreamTeam()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(DreamTeamPanel);\n","import { Link } from \"@reach/router\";\nimport { ellipsis, hiDPI, rgba } from \"polished\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getPlayerComp, IPlayerCompProps } from \"../../utils/player-comps\";\nimport BoldLink from \"../BoldLink\";\nimport ButtonLink from \"../ButtonLink\";\nimport pattern2Desktop from \"../../img/pattern/pattern-2-d.png\";\nimport pattern2Desktop2x from \"../../img/pattern/pattern-2-d@2x.png\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\n\nconst StyledEventInfo = styled.div`\n overflow: auto;\n margin: ${({ theme }) => `0 ${theme.space[2]} ${theme.space[4]}`};\n border-radius: ${({ theme }) => theme.radii[0]};\n box-shadow: 0 8px 12px 0 ${rgba(\"black\", 0.08)};\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n background-image: url(${pattern2Desktop}), url(${pattern2Desktop}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-position: right -60px top -650px, right 225px top -500px, 0 0;\n background-repeat: no-repeat;\n\n ${hiDPI(2)} {\n background-image: url(${pattern2Desktop}), url(${pattern2Desktop2x}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-size: 618px 849px, 618px 849px, auto;\n }\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin-right: 0;\n margin-left: 0;\n }\n`;\n\nconst Header = styled.div\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {data.team.map((dt) => (\n  Pos PlayerClubPts\n ))}\n \n \n \n {data.team.reduce((total, e) => total + e.points, 0)} pts\n \n `\n position: relative;\n margin: ${({ theme }) => `${theme.space[2]} ${theme.space[2]} 0`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin: 0;\n padding: ${({ theme }) => `${theme.space[4]} 65% 0 ${theme.space[4]}`};\n background-image: url(${(props) => props.images.x1});\n background-repeat: no-repeat;\n background-position: right 35px top;\n\n ${hiDPI(2)} {\n background-image: url(${(props) => props.images.x2});\n background-size: 288px 192px;\n }\n }\n`;\n\nconst Heading = styled.h3`\n margin-bottom: ${({ theme }) => theme.space[3]};\n color: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.6rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n font-size: 2.5rem;\n }\n`;\n\nconst PrizesLink = styled.div`\n position: absolute;\n top: 0;\n right: 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n position: static;\n padding: ${({ theme }) => theme.space[3]} 0;\n }\n`;\n\nconst InfoList = styled.ul`\n display: flex;\n flex-wrap: wrap;\n text-align: center;\n margin-top: ${({ theme }) => theme.space[3]};\n border-radius: ${({ theme }) => `0 0 ${theme.radii[0]} ${theme.radii[0]}`};\n background-color: ${rgba(\"white\", 0.8)};\n box-shadow: 0 4px 12px 0 ${rgba(\"black\", 0.08)};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin-top: 0;\n }\n`;\n\nconst InfoItem = styled.li`\n flex: 1 0 50%;\n padding: ${({ theme }) => `${theme.space[3]} 0.2rem`};\n border-width: 1px 1px 0 0;\n border-style: solid;\n border-color: #14c6ec;\n ${ellipsis()};\n\n &:nth-child(even) {\n border-right-width: 0;\n }\n\n &:nth-child(-n + 2) {\n border-top-width: 0;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex-basis: 33.33333%;\n\n &:nth-child(even) {\n border-right-width: 1px;\n }\n\n &:nth-child(-n + 2) {\n border-top-width: 1px;\n }\n\n &:nth-child(-n + 3) {\n border-top-width: 0;\n }\n\n &:nth-child(3n) {\n border-right-width: 0;\n }\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex-basis: 16.66666%;\n margin-top: ${({ theme }) => theme.space[3]};\n margin-bottom: ${({ theme }) => theme.space[3]};\n padding-top: 0;\n padding-bottom: 0;\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n border-top-width: 0;\n\n &:not(:last-child) {\n border-right-width: 1px;\n }\n\n &:nth-child(-n + 3) {\n border-top-width: 0;\n }\n }\n`;\n\nconst ItemHeading = styled.h4`\n padding-bottom: 0.3rem;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1rem;\n`;\n\nconst ItemValue = styled.div`\n ${ellipsis()};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n`;\n\nconst ItemLink = styled(Link)`\n color: currentColor;\n text-decoration: none;\n`;\n\nconst ItemLinkHeading = styled(ItemHeading)`\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n now: IEvent | null;\n}\n\nconst EventInfo: React.FC = ({ elementsById, now }) => {\n if (!now) {\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\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementsById: getElementsById(state),\n now: getCurrentEvent(state),\n});\n\nexport default connect(mapStateToProps)(EventInfo);\n","import React from \"react\";\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, { BoldLinkWrap } from \"../BoldLink\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementShirt from \"../ElementShirt\";\nimport {\n BorderedCell,\n ElementRow,\n ElementTable,\n PrimaryCell,\n} from \"../ElementTable\";\nimport Panel from \"../Panel\";\nimport { Ellipsis } from \"../Utils\";\n\nconst AvailabilityTable = styled(ElementTable)`\n th:not(:nth-child(3)),\n td: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;\n\nclass PlayerAvailability extends React.Component\n \n \n
\n \n \n \n
{now.name}\n My Team\n \n \n Prizes\n \n \n {now.id > 1 && (\n \n )}\n {now.id > 1 && (\n \n )}\n {now.id === 1 && (\n \n )}\n \n \n {now.id === 1 && (\n \n )}\n \n {now.highest_scoring_entry ? (\n \n \n \n \n ) : (\n <>\n \n \n \n )}\n \n \n Highest Points\n {now.highest_score}Highest Points-\n \n \n Average Points{now.average_entry_score || \"-\"}\n \n \n Transfers Made\n {now.transfers_made ? now.transfers_made.toLocaleString() : \"-\"}\n \n \n \n Most Transferred In\n {now.most_transferred_in\n ? elementsById[now.most_transferred_in].web_name\n : \"-\"}\n \n \n \n Most Selected Player\n {now.most_selected\n ? elementsById[now.most_selected].web_name\n : \"-\"}\n \n \n \n Wildcards Played\n {wildcards === null ? \"-\" : wildcards.toLocaleString()}\n \n \n \n Most Captained\n {now.most_captained\n ? elementsById[now.most_captained].web_name\n : \"-\"}\n \n \n \n Most Vice Captained\n {now.most_vice_captained\n ? elementsById[now.most_vice_captained].web_name\n : \"-\"}\n {\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, teamsById } = this.props;\n return (\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 connect(mapStateToProps, mapDispatchToProps)(PlayerAvailability);\n","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAddPerson(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n fill: \"none\",\n viewBox: \"0 0 16 16\",\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(#a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10 8a2.666 2.666 0 1 0 .001-5.332A2.666 2.666 0 0 0 10 8ZM4 6.667v-2H2.667v2h-2V8h2v2H4V8h2V6.667H4Zm6 2.666c-1.78 0-5.333.894-5.333 2.667v1.333h10.666V12c0-1.773-3.553-2.667-5.333-2.667Z\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0h16v16H0z\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAddPerson);\nexport default __webpack_public_path__ + \"static/media/add-person.af579356.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/chevron-left.f728ce42.svg\";","export default __webpack_public_path__ + \"static/media/chevron-right.4d0b42c1.svg\";","import styled from \"styled-components/macro\";\nimport { IStyledElementFixtureBar } from \"./types\";\n\nexport const StyledElementFixtureBar = styled.div\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {elements.data.slice(0, 16).map((e) => (\n \n ))}\n \n   PlayerPosClub\n \n \n \n \n {elementTypesById[e.element_type].singular_name_short}\n \n {teamsById[e.team].short_name}\n \n \n \n \n \n \n {e.web_name}\n \n More`\n padding-top: 0.2rem;\n padding-bottom: 0.2rem;\n border-radius: 0 0 0.3rem 0.3rem;\n background: ${({ $isLive, $isFinished, theme }) =>\n $isLive\n ? theme.colors.pinkToOrange\n : $isFinished\n ? theme.colors.primary\n : theme.colors.purple10};\n color: ${({ $isLive, $isFinished }) =>\n $isLive || $isFinished ? \"white\" : \"inherit\"};\n font-size: 1rem;\n text-align: center;\n line-height: 1;\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n`;\n\nexport const PointsWrap = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 2px;\n padding-top: 0.1rem;\n padding-bottom: 0.1rem;\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n padding: 0;\n }\n`;\n","import { rgba } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as AddPersonBase } from \"../../img/icons/add-person.svg\";\nimport { StyledElementFixtureBar } from \"../ElementFixtureBar/styles\";\nimport { InfoIcon } from \"../ElementStatus\";\nimport { IElementName, IElementStyles } from \"./types\";\n\nexport const PitchElementWrap = styled.div`\n position: relative;\n width: 6.8rem;\n margin: auto;\n\n ${(props) =>\n (props.variant === \"instigator\" || props.variant === \"target\") &&\n css`\n ${StyledPitchElement} {\n transition: all 0.15s;\n }\n\n ${StyledElementFixtureBar} {\n border-radius: ${({ theme }) =>\n `0 0 ${theme.radii[0]} ${theme.radii[0]}`};\n transition: all 0.15s;\n }\n\n ${ElementName} {\n margin-right: 0.1rem;\n margin-left: 0.1rem;\n transition: all 0.15s;\n }\n `}\n\n ${(props) =>\n props.variant === \"instigator\" &&\n css`\n ${StyledPitchElement} {\n box-shadow: inset 0 0 0 0.2rem ${(props) => props.theme.colors.darkPink};\n }\n\n ${StyledElementFixtureBar} {\n background-color: ${(props) => props.theme.colors.darkPink};\n color: ${(props) => props.theme.colors.white};\n }\n `}\n\n ${(props) =>\n props.variant === \"target\" &&\n css`\n ${StyledPitchElement} {\n box-shadow: inset 0 0 0 0.2rem ${(props) => props.theme.colors.green};\n }\n\n ${StyledElementFixtureBar} {\n background-color: ${(props) => props.theme.colors.green};\n }\n `}\n\n ${(props) =>\n props.variant === \"invalid\" &&\n css`\n opacity: 0.4;\n transition: all 0.15s;\n box-shadow: 0 0 0.6rem 0 rgba(0, 0, 0, 0.4);\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 10rem;\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n width: 11.4rem;\n }\n`;\n\nexport const PitchCardButton = styled.button`\n display: block;\n width: 100%;\n padding: 4px;\n border: 0;\n border-radius: 1rem;\n background-color: transparent;\n /* TODO Make this global */\n letter-spacing: -0.4px;\n\n &:hover,\n &:focus {\n border-style: solid;\n border-color: ${(props) => props.theme.colors.white};\n }\n\n &:hover {\n border-width: 2px;\n padding: 2px;\n }\n\n &:focus {\n padding: 0;\n border-width: 4px;\n outline: 0;\n }\n`;\n\nexport const PitchCard = styled.span`\n display: block;\n padding: 0.1rem;\n box-shadow: inset 0 0 0 0.1rem rgb(255, 255, 255, 0.2);\n min-height: 7.8rem;\n border-radius: ${(props) => props.theme.radii[1]};\n background-color: ${(props) => props.theme.colors.darkGreen};\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: 1rem;\n text-align: center;\n\n @media (min-width: ${(props) => props.theme.breakpoints[1]}) {\n min-height: 9.6rem;\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n min-height: 13.2rem;\n }\n`;\n\nexport const AddPerson = styled(AddPersonBase)`\n display: block;\n fill: ${(props) => props.theme.colors.white};\n`;\n\nexport const StyledPitchPlaceholder = styled(PitchCard)`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: ${(props) => props.theme.space[1]};\n margin: auto;\n padding: ${(props) => props.theme.space[1]};\n border-color: ${(props) => rgba(props.theme.colors.white, 0.3)};\n color: ${(props) => props.theme.colors.white};\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n padding: ${(props) => props.theme.space[3]};\n }\n`;\n\nexport const StyledPitchElement = styled(PitchCard)`\n position: relative;\n background-image: linear-gradient(to bottom right, #0d9356, #10c773);\n color: ${(props) => props.theme.colors.primary};\n font-family: ${(props) => props.theme.fonts.bold};\n`;\n\nexport const ElementCost = styled.span`\n display: block;\n color: ${(props) => props.theme.colors.white};\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: 1rem;\n line-height: 1.4;\n\n @media (min-width: ${(props) => props.theme.breakpoints[1]}) {\n margin-top: 0.2rem;\n margin-bottom: 0.2rem;\n font-size: ${(props) => props.theme.fontSizes[0]};\n line-height: 1;\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n margin-top: 0.3rem;\n margin-bottom: 0.3rem;\n font-size: ${(props) => props.theme.fontSizes[3]};\n line-height: 1;\n }\n`;\n\nexport const PitchElementData = styled.span`\n display: block;\n position: absolute;\n right: 0.1rem;\n bottom: 0.1rem;\n left: 0.1rem;\n border-radius: 0 0 0.3rem 0.3rem;\n`;\n\nexport const RemovedElement = styled(PitchCard)`\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${(props) => props.theme.space[1]};\n padding-bottom: 3rem;\n justify-content: center;\n color: ${(props) => props.theme.colors.primary};\n\n ${PitchElementData} {\n opacity: 40%;\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n padding-bottom: 4rem;\n }\n`;\n\nexport const ElementName = styled.span`\n display: block;\n padding: 0.3rem;\n background-color: ${({ copnr, theme }) =>\n copnr !== null ? theme.colors.elementStatus[copnr].bg : theme.colors.white};\n color: ${({ copnr, theme }) =>\n copnr !== null ? theme.colors.elementStatus[copnr].color : \"inherit\"};\n font-family: ${(props) => props.theme.fonts.bold};\n line-height: 1;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n padding: ${(props) => props.theme.space[1]};\n font-size: ${(props) => props.theme.fontSizes[0]};\n }\n`;\n\nconst sharedControlStyles = css`\n position: absolute;\n top: 8px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n top: 10px;\n }\n`;\n\nexport const PitchElementIconsWrap = styled.div`\n ${sharedControlStyles}\n left: 8px;\n display: flex;\n flex-direction: column;\n gap: 2px;\n\n @media (min-width: ${(props) => props.theme.breakpoints[1]}) {\n left: 10px;\n gap: 4px;\n }\n`;\n\nexport const InfoControl = styled.span`\n display: none;\n\n ${InfoIcon} {\n box-shadow: 1px 1px 10px -4px ${rgba(\"black\", 0.5)};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${sharedControlStyles}\n display: block;\n right: 10px;\n }\n`;\n\nexport const ImgWrap = styled.span`\n display: block;\n padding-top: 0.7rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-top: 1.2rem;\n }\n`;\n\nexport const BadgeWrap = styled.div`\n position: absolute;\n top: 6px;\n right: 6px;\n line-height: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n top: 10px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n top: 30px;\n right: 10px;\n }\n`;\n","import React from \"react\";\nimport Shirt from \"./Shirt\";\n\ninterface IProps {\n elementType?: number;\n hasShadow?: boolean;\n sizes: string;\n useBlank?: boolean;\n}\n\nconst PlaceholderShirt: React.FC = ({\n elementType,\n hasShadow,\n sizes,\n useBlank,\n}) => {\n const suffix = useBlank\n ? \"_blank\"\n : elementType === 1\n ? `_${elementType}`\n : \"\";\n return (\n \n );\n};\n\nexport default PlaceholderShirt;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { getShortNameFromId, isBlankWeek } from \"../../utils/events\";\nimport ElementShirt from \"../ElementShirt\";\nimport { StyledPitchElement } from \"../PitchCard\";\nimport PlaceholderShirt from \"../PlaceholderShirt\";\nimport { UnstyledButton } from \"../Utils\";\n\n// TODO Fix this - it won't work\nconst StyledTopElement = styled(StyledPitchElement)`\n width: 9rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 11rem;\n padding: 0;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n width: 12rem;\n }\n`;\n\nexport const TopElementName = styled.div`\n padding: 0.3rem 0.2rem;\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n font-size: 1rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-top: 0.2rem;\n padding-bottom: 0.2rem;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-top: 0.4em;\n padding-bottom: 0.4em;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n }\n`;\n\nexport const TopElementValue = styled.div`\n padding: 0.2rem;\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\n border-radius: 0 0 3px 3px;\n font-size: 1rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-top: 0.1rem;\n padding-bottom: 0.1rem;\n font-size: ${({ theme }) => theme.fontSizes[0]};\n }\n`;\n\nexport const TopElementValueInner = styled.div`\n display: flex;\n justify-content: space-between;\n padding: 0 0.4rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-right: 0.8rem;\n padding-left: 0.8rem;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n }\n`;\n\nconst Gameweek = styled.span`\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst Points = styled.span`\n margin-left: 1rem;\n`;\n\ninterface IPropsFromState {\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n}\n\ninterface IOwnProps {\n element: IElement | null;\n event: IEvent;\n points: number | null;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & IOwnProps;\n\nconst EventTopElement: React.FC = ({\n element,\n showElementDialog,\n teamsById,\n event,\n points,\n}) => {\n const shirtProps = {\n hasShadow: true,\n sizes: \"(min-width: 1024px) 55px, (min-width: 610px) 44px, 37px\",\n };\n return (\n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n teamsById: getTeamsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EventTopElement);\n","import { darken, size } from \"polished\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport \"slick-carousel/slick/slick.css\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { IElementsById } from \"../../core/store/elements/types\";\nimport { getCurrentEvent, getEvents } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport leftArrow from \"../../img/icons/chevron-left.svg\";\nimport rightArrow from \"../../img/icons/chevron-right.svg\";\nimport { ReactComponent as DreamTeamIcon } from \"../../img/icons/dreamteam.svg\";\nimport Panel from \"../Panel\";\nimport EventTopElement from \"./EventTopElement\";\n\nconst StyledSlider = styled(Slider)`\n min-height: 0px;\n min-width: 0px;\n padding: 2rem 2.2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-right: 3.2rem;\n padding-left: 3.2rem;\n }\n\n .slick-prev {\n left: 0;\n border-radius: ${({ theme }) => `0 ${theme.radii[1]} ${theme.radii[1]} 0`};\n\n ::before {\n background: url(${leftArrow});\n }\n }\n\n .slick-next {\n right: 0;\n border-radius: ${({ theme }) => `${theme.radii[1]} 0 0 ${theme.radii[1]}`};\n\n ::before {\n background: url(${rightArrow});\n }\n }\n\n .slick-prev,\n .slick-next {\n top: 40%;\n bottom: auto;\n width: auto;\n height: auto;\n transition: all 0.2s;\n padding: 0.8rem 1.2rem;\n background-color: #edf1f9;\n\n :hover,\n :focus {\n background-color: ${darken(0.05, \"#edf1f9\")};\n }\n\n ::before {\n ${size(15, 9)};\n content: \"\";\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 14px 24px;\n }\n\n .slick-disabled {\n cursor: default;\n\n :hover,\n :focus {\n border-color: #ebebeb;\n background-color: #f6f6f5;\n }\n }\n\n .slick-list,\n .slick-track {\n min-height: 0px;\n min-width: 0px;\n }\n }\n`;\n\ninterface IPropsFromState {\n now: IEvent | null;\n elementsById: IElementsById;\n events: IEvent[];\n}\n\nconst TopElementCarousel: React.FC\n {element && !isBlankWeek(event.id) ? (\n showElementDialog(element.id)}\n >\n \n \n \n ) : (\n \n )}\n
\n \n \n
{element.web_name}\n \n \n \n \n {getShortNameFromId(event.id)}{`${points} pts`}
\n
\n \n
\n \n \n
-\n \n {getShortNameFromId(event.id)} = ({\n events,\n now,\n elementsById,\n}) => {\n const getInitialSlide = (slidesToShow: number) =>\n now && now.id > slidesToShow ? now.id - slidesToShow : 0;\n\n const settings = {\n className: \"ism-top-element-carousel\",\n infinite: true,\n initialSlide: getInitialSlide(6),\n responsive: [\n {\n breakpoint: 400,\n settings: {\n initialSlide: getInitialSlide(3),\n slidesToShow: 3,\n },\n },\n {\n breakpoint: 700,\n settings: {\n initialSlide: getInitialSlide(4),\n slidesToShow: 4,\n },\n },\n {\n breakpoint: 900,\n settings: {\n initialSlide: getInitialSlide(5),\n slidesToShow: 5,\n },\n },\n {\n breakpoint: 1024,\n settings: {\n initialSlide: getInitialSlide(4),\n slidesToShow: 4,\n },\n },\n {\n breakpoint: 1220,\n settings: {\n initialSlide: getInitialSlide(5),\n slidesToShow: 7,\n },\n },\n ],\n slidesToShow: 9,\n slidesToScroll: 1,\n };\n\n // These 2 functions are here to handle an API change. Once released can\n // be deleted as format is null or object\n const topElementFromEvent = (event: IEvent) => {\n if (\n typeof event.top_element_info === \"undefined\" ||\n event.top_element_info === null\n ) {\n return null;\n }\n return elementsById[event.top_element_info.id];\n };\n\n const topElementPointsFromEvent = (event: IEvent) => {\n if (\n typeof event.top_element_info === \"undefined\" ||\n event.top_element_info === null\n ) {\n return null;\n }\n return event.top_element_info.points;\n };\n\n return (\n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n return {\n elementsById: getElementsById(state),\n events: getEvents(state),\n now: getCurrentEvent(state),\n };\n};\n\nexport default connect(mapStateToProps)(TopElementCarousel);\n","var _polygon;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgTransferArrowRight(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 19,\n viewBox: \"0 0 24 19\",\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 fillRule: \"evenodd\",\n points: \"12.82 0 12.82 4.75 0 4.75 0 14.25 12.82 14.25 12.82 19 24 9.5\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgTransferArrowRight);\nexport default __webpack_public_path__ + \"static/media/transfer-arrow-right.33929ecf.svg\";\nexport { ForwardRef as ReactComponent };","import orderBy from \"lodash/orderBy\";\nimport { size } from \"polished\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { 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 ArrowIcon } from \"../../img/icons/transfer-arrow-right.svg\";\nimport BoldLink, { BoldLinkWrap } from \"../BoldLink\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport {\n BorderedCell,\n ElementRow,\n ElementTable,\n PrimaryCell,\n} from \"../ElementTable\";\nimport Panel from \"../Panel\";\nimport { Ellipsis } from \"../Utils\";\n\nconst ArrowWrap = styled.div\n }\n />\n \n \n {events.map((event) => (\n \n ))}\n
\n
\n `\n ${size(32)};\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #05fa87;\n border-radius: 50%;\n\n > svg {\n ${size(15, 12)};\n fill: ${({ theme }) => theme.colors.primary};\n }\n\n ${(props) =>\n props.isOut &&\n css`\n background-color: #fc2c80;\n\n > svg {\n fill: white;\n transform: rotate(180deg);\n }\n `}\n\n ${(props) =>\n props.isSmall &&\n css`\n transform: scale(0.75);\n `}\n`;\n\nconst TransfersTable = styled(ElementTable)`\n th:not(:nth-child(4)),\n td: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`;\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\ninterface ITransferArrowProps {\n isOut?: boolean;\n isSmall?: boolean;\n}\n\nconst TransferArrow: React.FC = ({\n isOut = false,\n isSmall = false,\n}) => (\n \n);\n\nconst TransfersPanel: React.FC\n \n = ({\n elements,\n elementTypesById,\n isOut,\n teamsById,\n}) => {\n const stat = isOut ? \"transfers_out_event\" : \"transfers_in_event\";\n return (\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 { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getMostValuableTeams } from \"../../core/store/stats/reducers\";\nimport { fetchMostValuableTeams } from \"../../core/store/stats/thunks\";\nimport { IMostValuableTeam } from \"../../core/store/stats/types\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport { BorderedCell } from \"../ElementTable\";\nimport Link from \"../Link\";\nimport Panel from \"../Panel\";\nimport Table from \"../Table\";\n\nconst MVTTable = styled(Table)`\n white-space: nowrap;\n table-layout: fixed;\n\n th:not(:nth-child(2)),\n td:not(:nth-child(2)) {\n text-align: center;\n }\n`;\n\nconst PosCell = styled.th`\n width: 15%;\n`;\n\nconst TeamCell = styled.th`\n width: 50%;\n`;\n\nconst AverageCell = styled.th`\n width: 25%;\n`;\n\ninterface IPropsFromState {\n teams: IMostValuableTeam[];\n}\n\ninterface IPropsFromDispatch {\n fetchMostValuableTeams: () => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch;\n\nclass ValuableTeams extends React.Component\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {orderBy(elements, [stat], [\"desc\"])\n .slice(0, 5)\n .map((e) => (\n \n ))}\n \n   PosPlayerClub \n \n \n \n \n \n \n \n {elementTypesById[e.element_type].singular_name_short}\n \n \n \n {e[stat]}\n \n \n {e.web_name}{teamsById[e.team].short_name}\n \n More {\n public componentDidMount() {\n this.props.fetchMostValuableTeams();\n }\n\n public render() {\n const { teams } = this.props;\n return (\n \n );\n }\n}\n\nexport { ValuableTeams as ValuableTeamsTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n return {\n teams: getMostValuableTeams(state),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchMostValuableTeams: () => dispatch(fetchMostValuableTeams()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ValuableTeams);\n","import React from \"react\";\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 LatestAlert from \"../LatestAlert\";\nimport LeaderboardAd from \"../LeaderboardAd\";\nimport ScoutLeader from \"../scout/ScoutLeader\";\nimport EventStatus from \"../status/EventStatus\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport BestLeagues from \"./BestLeagues\";\nimport DreamTeamPanel from \"./DreamTeamPanel\";\nimport EventInfo from \"./EventInfo\";\nimport PlayerAvailability from \"./PlayerAvailability\";\nimport TopElementCarousel from \"./TopElementCarousel\";\nimport TransfersPanel from \"./TransfersPanel\";\nimport ValuableTeams from \"./ValuableTeams\";\n\nconst StatusWrapper = styled.div`\n max-width: 1220px;\n margin: 0 auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst StatusMain = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding-right: ${({ theme }) => theme.space[2]};\n padding-left: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst StatusHead = styled.div`\n margin: 0 ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin: 0;\n }\n`;\n\nconst StatusBlock = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nconst StatusUnit = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1;\n padding: 0 ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst StatusPrimary = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 0 calc(100% / 3 * 2);\n padding-right: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst StatusSecondary = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 0 calc(100% / 3);\n }\n`;\n\ninterface IPropsFromState {\n now: IEvent | null;\n player: IPlayer | null;\n}\n\nconst Status: React.FC\n \n \n \n \n {!teams.length && (\n \n )}\n \n \n \n \n \n \n \n \n \n {teams.slice(0, 5).map((t, i) => (\n \n {i + 1}\n \n £{integerToMoney(t.value_with_bank, 10)}m\n \n ))}\n \n PosTeamValue\n {t.name}\n \n \n

The Most Valuable Teams will appear here when available.

= ({ now, player }) => {\n if (!now || !player) {\n return null;\n }\n return (\n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n now: getCurrentEvent(state),\n player: getPlayerData(state),\n});\n\nexport default connect(mapStateToProps)(Status);\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport qs from \"qs\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../core/store\";\nimport { getEntry } from \"../core/store/entries/reducers\";\nimport { IEntry } from \"../core/store/entries/types\";\nimport { getCurrentEvent, getNextEvent } 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 homeStep1_1_342 from \"../img/home-step-1-1-342.png\";\nimport homeStep1_1_684 from \"../img/home-step-1-1-684.png\";\nimport homeStep1_2_342 from \"../img/home-step-1-2-342.png\";\nimport homeStep1_2_684 from \"../img/home-step-1-2-684.png\";\nimport homeStep1_3_342 from \"../img/home-step-1-3-342.png\";\nimport homeStep1_3_684 from \"../img/home-step-1-3-684.png\";\nimport homeStep1_4_342 from \"../img/home-step-1-4-342.png\";\nimport homeStep1_4_684 from \"../img/home-step-1-4-684.png\";\nimport homeStep1_5_342 from \"../img/home-step-1-5-342.png\";\nimport homeStep1_5_684 from \"../img/home-step-1-5-684.png\";\nimport homeStep1_6_342 from \"../img/home-step-1-6-342.png\";\nimport homeStep1_6_684 from \"../img/home-step-1-6-684.png\";\nimport homeStep1_7_342 from \"../img/home-step-1-7-342.png\";\nimport homeStep1_7_684 from \"../img/home-step-1-7-684.png\";\nimport homeStep2_342 from \"../img/home-step-2-342.png\";\nimport homeStep2_684 from \"../img/home-step-2-684.png\";\nimport pattern1_437 from \"../img/pattern/pattern-1-437.png\";\nimport LatestAlert from \"./LatestAlert\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Login from \"./Login\";\nimport ScoutLeader from \"./scout/ScoutLeader\";\nimport Status from \"./status/Status\";\nimport SubHeading from \"./SubHeading\";\n\nconst HomeSteps = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n justify-content: space-between;\n }\n`;\n\nconst HomeStep = styled.div`\n margin-bottom: ${({ theme }) => theme.space[4]};\n background-color: ${({ theme }) => theme.colors.grey};\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 0 0 calc(50% - 1rem);\n display: flex;\n align-items: center;\n text-align: left;\n }\n`;\n\nconst HomeStepHeading = styled.h3`\n margin-bottom: ${({ theme }) => theme.space[2]};\n font-size: 2.1rem;\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-top: 3rem;\n }\n`;\n\nconst HomeStepImg = styled.img`\n display: block;\n margin: auto;\n max-width: 342px;\n`;\n\nconst HomeStepBody = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n background-repeat: no-repeat;\n background-image: url(${pattern1_437}),\n linear-gradient(to right, ${({ theme }) => theme.colors.lightBlue}, #43a0ff);\n background-position: left -57px bottom -225px, 0 0;\n background-size: 313px 355px, auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n height: 100%;\n padding: 0 ${({ theme }) => theme.space[3]};\n }\n`;\n\ninterface IPropsFromState {\n entry: IEntry | null;\n now: IEvent | null;\n nxt: IEvent | null;\n player: IPlayer | null;\n}\n\ntype Props = RouteComponentProps & IPropsFromState;\n\nclass Home extends React.Component\n \n \n \n \n \n \n \n \n \n \n \n \n \n

\n You are logged in as{\" \"}\n \n .\n

\n {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 Latest from The Scout\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n public render() {\n const { entry, now, nxt, player } = this.props;\n\n // Delay rendering until entry is available\n if (player && player.entry && !entry) {\n return null;\n }\n\n // Look for a login error from the users server\n const query = qs.parse(window.location.search, { ignoreQueryPrefix: true });\n let usersError = \"\";\n if (query.state) {\n switch (query.state) {\n case \"fail\":\n usersError = \"Incorrect email or password\";\n break;\n case \"success\":\n let url = \"/\";\n if (player && player.entry && entry) {\n // Season start\n if (!now) {\n url = \"/my-team\";\n }\n // Season over\n else if (!nxt) {\n url = `/entry/${player.entry}/event/${now.id}/`;\n } else {\n url =\n entry.started_event <= now.id\n ? `/entry/${player.entry}/event/${now.id}/`\n : \"/my-team\";\n }\n } else if (player && player.id) {\n url = \"/squad-selection\";\n }\n // Need this to make sure LocationProvider is ready\n setTimeout(() => {\n navigate(url, {\n replace: true,\n });\n }, 0);\n return null;\n default:\n break;\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 const homeStep1Images = [\n {\n x1: homeStep1_1_342,\n x2: homeStep1_1_684,\n },\n {\n x1: homeStep1_2_342,\n x2: homeStep1_2_684,\n },\n {\n x1: homeStep1_3_342,\n x2: homeStep1_3_684,\n },\n {\n x1: homeStep1_4_342,\n x2: homeStep1_4_684,\n },\n {\n x1: homeStep1_5_342,\n x2: homeStep1_5_684,\n },\n {\n x1: homeStep1_6_342,\n x2: homeStep1_6_684,\n },\n {\n x1: homeStep1_7_342,\n x2: homeStep1_7_684,\n },\n ];\n const homeStep1Image =\n homeStep1Images[Math.floor(Math.random() * homeStep1Images.length)];\n\n return (\n \n );\n }\n}\n\nexport { Home as HomeTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const player = getPlayerData(state);\n return {\n entry: player && player.entry ? getEntry(state, player.entry) : null,\n now: getCurrentEvent(state),\n nxt: getNextEvent(state),\n player,\n };\n};\n\nexport default connect(mapStateToProps)(Home);\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 \n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n Pick Your Squad

\n Use your budget of £100m to pick a squad of 15 players from\n the Premier League.\n

\n \n \n
\n
\n \n \n \n Create and Join Leagues

\n Play against friends and family, colleagues or a web community\n in invitational leagues and cups.\n

\n \n Latest from The Scout\n ({\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 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);\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
\n \n
    \n {isOpen\n ? entries.map((item, index) => (\n
\n {item.player_name} ({item.entry_name})\n \n ))\n : null}\n {\n public state: IState = {\n entries: [],\n };\n\n public lastSearch = \"\";\n\n public searchChange = async (value: string) => {\n const { excluded = [], handleChange, leagueId } = this.props;\n\n // If the search term has been cleared, clear any state\n if (!value.length) {\n handleChange(0);\n this.setState({ entries: [] });\n this.lastSearch = \"\";\n }\n\n // We are only interested in first name searches\n const searchMatches = value.match(/^(.*?) /);\n if (searchMatches && searchMatches[1] !== this.lastSearch) {\n const response = await fetch(\n `/api/league/${leagueId}/search-entries/?search=${encodeURIComponent(\n searchMatches[1]\n )}`\n );\n this.lastSearch = searchMatches[1];\n if (response.ok) {\n const entries: IEntry[] = await response.json();\n this.setState({\n entries: entries.filter((e) => excluded.indexOf(e.entry) === -1),\n });\n }\n }\n };\n\n public render() {\n return (\n \n );\n }\n}\n\nexport default EntrySelectorWrapper;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { ThunkDispatch } from \"../../../core/store\";\nimport { banLeagueEntry } from \"../../../core/store/leagues/thunks\";\nimport {\n IBanEntryData,\n IPrivateLeagueAdmin,\n} from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport { FieldWrap } from \"../../FieldRenderers\";\nimport SubHeading from \"../../SubHeading\";\nimport EntrySelector from \"./EntrySelector\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n}\n\ninterface IPropsFromDispatch {\n banLeagueEntry: (leagueId: number, data: IBanEntryData) => void;\n}\n\ntype Props = IOwnProps & IPropsFromDispatch;\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 } = this.props;\n return (\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 connect(null, mapDispatchToProps)(AddBan);\n","import React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport { IPrivateLeagueAdmin } from \"../../../core/store/leagues/types\";\nimport Button from \"../../Button\";\nimport { FieldWrap } from \"../../FieldRenderers\";\nimport SubHeading from \"../../SubHeading\";\nimport EntrySelector from \"./EntrySelector\";\n\ninterface IProps {\n updateAdmin: (entryId: number) => void;\n league: IPrivateLeagueAdmin;\n}\n\ninterface IState {\n entry: number;\n}\n\nclass ChangeAdmin extends React.ComponentAdd League suspensions

\n Search for the player you wish to suspend from this league. Once the\n player has been suspended they will be unable to rejoin the league\n again.\n

\n \n \n
\n \n \n \n {\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 } = this.props;\n return (\n <>\n \n \n \n );\n }\n}\n\nexport default ChangeAdmin;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\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;\n\ninterface IState {\n codePrivacy: LeagueCodePrivacy;\n closed: boolean;\n hasCup: boolean | undefined;\n league: IPrivateLeagueAdmin;\n name: string;\n startEvent: number;\n}\n\nclass ClassicDetails extends React.Component\n \n Change League Administrator
\n \n \n
\n \n \n \n {\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 hasCup: props.league.has_cup,\n league: props.league,\n name: props.league.name,\n startEvent: props.league.start_event,\n };\n }\n\n static getDerivedStateFromProps(props: IOwnProps, state: IState) {\n if (props.league === state.league) {\n return null;\n }\n return {\n closed: props.league.closed,\n codePrivacy: props.league.code_privacy,\n hasCup: props.league.has_cup,\n name: props.league.name,\n startEvent: props.league.start_event,\n league: props.league,\n };\n }\n\n public apiDataFromState = (): IUpdateClassicLeagueData => ({\n admin_entry: this.props.league.admin_entry,\n closed: this.state.closed,\n has_cup: this.state.hasCup,\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 { events } = this.props;\n const disabled = this.requiredFields.some((e) => !this.state[e]);\n return (\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 connect(mapStateToProps, mapDispatchToProps)(ClassicDetails);\n","import React from \"react\";\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;\n\nclass Code extends React.ComponentLeague Details
\n \n \n \n \n \n \n
\n \n \n \n

\n {this.props.league.name_change_blocked\n ? \"Your requested league name is currently pending moderation and can't be edited at this time.\"\n : \"Please think carefully before entering your league name. Leagues 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 {Object.keys(this.privacyOptions).map((p) => (\n \n {this.privacyOptions[p]}\n \n ))}\n \n \n \n {events.map((e) => (\n \n {e.name}\n \n ))}\n \n \n \n \n \n {\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 } = this.props;\n if (league.closed) {\n return null;\n }\n return (\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 connect(mapStateToProps, mapDispatchToProps)(Code);\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\";\n\ninterface IOwnProps {\n league: IPrivateLeagueAdmin;\n}\n\ninterface IPropsFromDispatch {\n remove: (leagueId: number) => void;\n}\n\ntype Props = IOwnProps & IPropsFromDispatch;\n\nclass Delete extends React.Component\n \n \n

League code: {code}

{\n public render() {\n const { league, remove } = this.props;\n return (\n <>\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 connect(null, mapDispatchToProps)(Delete);\n","import React from \"react\";\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;\n\nclass RemoveBan extends React.ComponentDelete League

\n To delete the league, click on the button below. The players entered\n in the league will still exist and can enter other leagues if desired.\n

{\n public render() {\n if (!this.props.league.bans.length) {\n return null;\n }\n const { league, unban } = this.props;\n return (\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 connect(null, mapDispatchToProps)(RemoveBan);\n","import React from \"react\";\nimport HelmetHead from \"../HelmetHead\";\n\nconst HelmetHeadLeagues: React.FC = () => (\n Remove League Suspensions

\n If a player has a suspension removed, they will need to join the\n league again.\n

    \n {league.bans.map((b) => (\n \n ))}\n
  • \n {b.player_name}\n \n
  • \n);\n\nexport default HelmetHeadLeagues;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\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\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\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;\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, updateLeague } = this.props;\n if (!league) {\n return null;\n }\n return (\n \n \n
    \n
    \n \n League Administration\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 has_cup: league.has_cup,\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 connect(mapStateToProps, mapDispatchToProps)(AdminClassic);\n","import range from \"lodash/range\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\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\";\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;\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 } = this.props;\n const disabled = this.requiredFields.some((e) => !this.state[e]);\n return (\n <>\n \n League details
    \n \n \n {!started && (\n <>\n \n \n \n {this.maximumKoRounds() > 0 && (\n
    \n \n \n \n

    \n {this.props.league.name_change_blocked\n ? \"Your requested league name is currently pending moderation and can't be edited at this time.\"\n : \"Please think carefully before entering your league name. Leagues 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 {Object.keys(this.privacyOptions).map((p) => (\n \n {this.privacyOptions[p]}\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 {range(1, this.maximumKoRounds() + 1).map((num) => (\n \n {num}\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 connect(mapStateToProps, mapDispatchToProps)(H2HDetails);\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 HelmetHeadLeagues from \"./HelmetHeadLeagues\";\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;\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, 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
    \n \n {!started && League Administration}\n \n {!started && }\n {!started && }\n {!started && (\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 {!started && }\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 connect(mapStateToProps, mapDispatchToProps)(AdminClassic);\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 React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\n\ninterface IPropsFromState {\n nxt: IEvent | null;\n}\n\nconst Create: React.FC
    = ({ nxt }) => (\n \n);\n\nexport { Create as CreateTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n nxt: getNextEvent(state),\n});\n\nexport default connect(mapStateToProps)(Create);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\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\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\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 = IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n name: string;\n startEvent: number;\n hasCup: boolean;\n isSubmitting: boolean;\n}\n\nclass CreateClassic extends React.Component\n \n \n
    \n \n
    \n \n \n \n {nxt ? (\n \n ) : (\n \n )}\n Choose a League Type to Create\n \n \n \n Classic Scoring

    \n In a league with classic scoring, teams are ranked based on their\n total points in the game. You can join or leave a league with\n classic scoring at any point during the season.\n

    Create a League & Cup\n \n \n \n \n \n Head-to-Head Scoring

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

    \n The Head-to-Head schedule is generated at the start of the league's\n first Round. Once the schedule has been generated the league is\n locked and teams will not be able to join or leave.\n

    Create Head-to-Head League

    \n It is no longer possible to create head-to-head leagues as the last\n deadline has passed.\n

    {\n public state: IState = {\n name: \"\",\n startEvent: 1,\n hasCup: true,\n isSubmitting: false,\n };\n\n public requiredFields: Array = [\"name\", \"startEvent\"];\n\n public apiDataFromState = (): ICreateClassicLeagueData => ({\n name: this.state.name,\n has_cup: this.state.hasCup,\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.setState({ isSubmitting: true });\n this.props.createClassicLeague(this.apiDataFromState());\n };\n\n public render() {\n const { error, events, settings } = this.props;\n const { isSubmitting, name, startEvent } = this.state;\n const disabled =\n this.requiredFields.some((e) => !this.state[e]) || isSubmitting;\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 connect(mapStateToProps, mapDispatchToProps)(CreateClassic);\n","import range from \"lodash/range\";\nimport React from \"react\";\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\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\nimport { navigate } from \"@reach/router\";\nimport { Box } from \"rebass/styled-components\";\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 = IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n isSubmitting: boolean;\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
    Create Invitational League and Cup\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 You may only enter{\" \"}\n {settings && settings.league_join_private_max} invitational\n leagues\n

    {JSON.stringify(error)}

    \n \n \n \n \n\n \n \n\n \n \n
    \n \n \n \n

    \n Please think carefully before entering your league name.\n Leagues with names that are deemed inappropriate or offensive\n may result in your account being deleted. Please refer to the\n Terms & Conditions of entry for more information.\n

    \n \n {events.map((e) => (\n \n {e.name}\n \n ))}\n \n

    \n In a league with classic scoring, teams are ranked based on\n their total points in the game. You can join or league a league\n with classic scoring at any point during the season.\n

    The Cup

    \n A League Cup will also be created for those who join your\n Invitational Classic Leagues. The League Cups will start in the\n second half of the season dependent on the size of your league\n and will conclude in Gameweek 38.\n

    \n \n \n \n

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

    \n If a cup match is drawn, then the following tie-breaks will be\n applied until a winner is found:\n

      \n \n \n \n
  • Most goals scored in the Gameweek
  • Fewest goals conceded in the Gameweek
  • Virtual coin toss
  • \n \n {\n public requiredFields: Array = [\"name\", \"startEvent\"];\n\n public constructor(props: Props) {\n super(props);\n this.state = {\n isSubmitting: false,\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.setState({ isSubmitting: true });\n this.props.createH2HLeague(this.apiDataFromState());\n };\n\n public render() {\n const { error, events, settings } = this.props;\n const { isSubmitting, koRounds, maxEntries, name, startEvent } = this.state;\n if (!events.length) {\n setTimeout(() => navigate(\"/\", { replace: true }), 0);\n return null;\n }\n const disabled =\n this.requiredFields.some((e) => !this.state[e]) || isSubmitting;\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 connect(mapStateToProps, mapDispatchToProps)(CreateH2H);\n","import React from \"react\";\nimport ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport TextDivider from \"../TextDivider\";\nimport Title from \"../Title\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\n\nconst CreateJoin: React.FC = () => (\n \n);\n\nexport default CreateJoin;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\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\ntype OwnProps = RouteComponentProps<{ leagueId: string }>;\n\nconst CupNotStarted: React.FC\n \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 Create a new head-to-head league

    \n You may only enter{\" \"}\n {settings && settings.league_join_private_max} invitational\n leagues\n

    {JSON.stringify(error)}

    \n \n \n \n \n {this.maximumKoRounds() > 0 && (\n \n )}\n \n
    \n \n \n \n

    \n Please think carefully before entering your league name.\n Leagues with names that are deemed inappropriate or offensive\n may result in your account being deleted. Please refer to the\n Terms & Conditions of entry for more information.\n

    \n \n {this.validStartingEvents(koRounds).map((e) => (\n \n {e.name}\n \n ))}\n \n \n \n \n {range(\n this.minimumSize(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 \n Create or Join Leagues & CupsJoin an Existing League & cup

    \n Join invitational or public leagues & cups to compete against\n friends and other game players\n

    Join a League & CuporCreate a New League & Cup

    Create an invitational league and cup to compete against friends.

    Create a League & Cup = ({ leagueId }) => {\n const leagueNumber = Number(leagueId!) || 0;\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 React, { useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport useClipboard from \"react-use-clipboard\";\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\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\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.fantasy};\n font-size: ${({ theme }) => theme.space[3]};\n text-align: center;\n`;\n\nconst LeagueInviteCode = styled.strong`\n margin-left: ${({ theme }) => theme.space[1]};\n color: white;\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.darkGrey};\n`;\n\nconst inviteMessage = (code: string, leagueName: string) => [\n \"Hello,\",\n `For the 2024/25 Fantasy Premier League why don't you join my mini-league \"${leagueName}\"?`,\n `Joining the league couldn't be easier. Simply use the link below and you'll be added automatically after you've entered the game.`,\n `${window.location.origin}/leagues/auto-join/${code}`,\n `League Code: ${code}`,\n \"Looking forward to playing against you this season!\",\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 )}\n {cupStatus.name}\n \n \n View league standings\n {`The Cup is scheduled to start in GW${\n cupStatus.qualification_event + 1\n }`}

    \n Fixtures will be determined at the end of Gameweek{\" \"}\n {cupStatus.qualification_event}.{\" \"}\n {cupStatus.qualification_numbers > 2 && (\n <>\n If there are {cupStatus.qualification_numbers} teams in\n the associated league, then each team will have an\n opponent in Gameweek {cupStatus.qualification_event + 1}\n . If there are{\" \"}\n {cupStatus.qualification_numbers === 4\n ? \"3 teams in the league, 1 team \"\n : `between\n ${cupStatus.qualification_numbers / 2 + 1} and ${\n cupStatus.qualification_numbers - 1\n } teams in the league, some teams `}\n will receive a bye in Gameweek{\" \"}\n {cupStatus.qualification_event + 1} based on their score\n in Gameweek {cupStatus.qualification_event}.\n \n )}\n

    \n The starting round of the cup is determined by the number of\n teams in the associated league and the final will be\n contested in Gameweek 38.\n

    \n You will not be entered into the cup if you have joined the\n league after the Gameweek prior to the cup starting.\n

    How the cup works

    \n Each team will be randomly drawn against another unless they\n have received a bye. The winner (the team with the highest\n Gameweek score minus any transfer points), will progress to\n the next round and another random draw, the losers are out!\n This process continues until the final round when the two\n remaining teams contest the cup final. If a cup match is\n drawn, then the following tie-breaks will be applied until a\n winner is found:\n

      \n \n \n \n
  • Most goals scored in the Gameweek
  • Fewest goals conceded in the Gameweek
  • Virtual coin toss
  • \n The top {cupStatus.qualification_numbers} ranked managers in\n Gameweek {cupStatus.qualification_event} will be entered\n into the first round of the cup in Gameweek{\" \"}\n {cupStatus.qualification_event + 1}. The final will be\n contested in Gameweek 38.\n

    How the cup works

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

      \n \n \n \n
  • Most goals scored in the Gameweek
  • Fewest goals conceded in the Gameweek
  • Virtual coin toss
  • There is no information available for this cup yet.

    = ({\n code,\n league,\n leagueNumber,\n entryId,\n fetchCode,\n fetchEntrySummary,\n}) => {\n const codeToCopy = code ? code : \"\";\n const leagueName = league ? league.name : \"\";\n const message = inviteMessage(codeToCopy, leagueName);\n const emailText = message ? message.join(\"\\n\\n\") : \"\";\n const emailBody = encodeURIComponent(emailText);\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 React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\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 ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\n\ninterface IPropsFromState {\n nxt: IEvent | null;\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 Invite players to join {leagueName}\n Code to join this league:{\" \"}\n \n \n {isCopied ? \"Copied!\" : codeToCopy}\n

    \n When you click the link below, the link will attempt to open your\n default email program and start a new email. If you do not have a\n default email program, like Outlook or Mail, enabled on your\n computer, clicking the link may not result in any action or you may\n be prompted to set up an email program.\n

    \n (window.location.href = `mailto:?to=&subject=Play%20Fantasy%20Premier%20League&body=${emailBody}`)\n }\n >\n Share league code by email \n \n\n \n\n \n\n \n\n \n

    \n If you use a browser based webmail application, like Gmail or\n Yahoo!, you can copy and paste the text below:\n

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

    {line}

    = ({ nxt, settings }) => {\n if (!settings) {\n return null;\n }\n return (\n \n );\n};\n\nexport { Join as JoinTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n nxt: getNextEvent(state),\n settings: getSettings(state),\n});\n\nexport default connect(mapStateToProps)(Join);\n","import { IError } from \"../../core/store\";\nimport { ISettings } from \"../../core/store/game/types\";\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\nexport const formatErrorMsg = (error: string, settings: ISettings) => {\n switch (error) {\n case \"max_length\": {\n return `Invalid code entered. Please check the code.`;\n }\n case \"invalid\": {\n return `Invalid code entered. Please check the code and confirm with the league administrator if you are still having problems.`;\n }\n case \"league_closed\": {\n return `This league is closed to new entries.`;\n }\n case \"already_joined\": {\n return `You are already entered in this league.`;\n }\n case \"entry_banned\": {\n return `The creator of this league has banned you from entering.`;\n }\n case \"max_private_entries\": {\n return `You are in the maximum number of ${settings.league_join_private_max} invitational leagues & cups. Before you can join a new league you will need to leave one of these leagues.`;\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","import { navigate } from \"@reach/router\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass\";\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 { formatErrorMsg, getErrorType } from \"./errors\";\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 HelmetHeadLeagues from \"./HelmetHeadLeagues\";\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 = IPropsFromState & IPropsFromDispatch;\n\nclass JoinPrivate extends React.Component\n \n \n
    \n \n
    \n \n \n \n \n \n {nxt ? (\n \n ) : (\n \n )}\n Choose a League Type to Join

    \n You can join up to {settings.league_join_private_max} invitational\n leagues and {settings.league_join_public_max} public leagues.\n

    \n \n \n \n Invitational Leagues & Cups

    \n Join an invitational league and cup if somebody has given you a\n league code to enter.\n

    \n Join Invitational League & Cup\n Public Leagues

    \n Join a public league to play against a small, randomly selected\n group of other game players.\n

    Join Public League

    \n It is no longer possible to join public leagues as the last\n deadline has passed.\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, 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 connect(mapStateToProps, mapDispatchToProps)(JoinPrivate);\n","import { navigate } from \"@reach/router\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { IError, RootState, ThunkDispatch } from \"../../core/store\";\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 { 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\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\n\ninterface IPropsFromState {\n error: IError | null;\n nxt: IEvent | 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 \n {error && (\n \n )}\n \n Join Invitational League & Cup\n \n \n {settings && formatErrorMsg(error, settings)}\n
    \n \n \n
    \n \n \n \n = ({\n error,\n joinPublicLeagueClassic,\n joinPublicLeagueH2H,\n nxt,\n settings,\n}) => {\n if (!nxt) {\n setTimeout(() => navigate(\"/\", { replace: true }), 0);\n return null;\n }\n return (\n \n );\n};\n\nexport { JoinPublic as JoinPublicTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n error: getJoinPublicLeagueError(state),\n nxt: getNextEvent(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 * as Sentry from \"@sentry/browser\";\nimport * as React from \"react\";\n\ninterface IState {\n eventId: string | null;\n error: Error | null;\n}\n\nclass UpdatingErrorBoundary extends React.Component {\n public state: IState = { error: null, eventId: null };\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 return this.state.error ? null : this.props.children;\n }\n}\n\nexport default UpdatingErrorBoundary;\n","import React from \"react\";\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\n \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 Join Public League\n \n \n You may only enter {settings.league_join_public_max} public\n leagues\n

    {JSON.stringify(error)}

    \n \n \n

    \n Public leagues allow you to compete against{\" \"}\n {settings.league_max_size_public_classic} randomly assigned game\n players in a classic league and up to{\" \"}\n {settings.league_max_size_public_h2h} in head-to-head leagues. You\n can join up to {settings.league_join_public_max} public leagues.\n

    \n \n

    \n Note, you can't remove your team from a public league after the\n league has started, once the challenge is on there's no\n quitting.\n \n \n \n \n Classic Scoring

    \n In a league with classic scoring, teams are ranked based on their\n total points in the game. You can join or leave a league with\n classic scoring at any point during the season\n

    Head-to-Head Scoring

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

    ) => void;\n leagueEntries: IEntryInLeague[];\n}\n\nconst H2HEntryFilter: React.FC = ({\n entryId,\n handleFilterChange,\n leagueEntries,\n}) => {\n return (\n \n );\n};\n\nexport default H2HEntryFilter;\n","import React from \"react\";\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 events = useSelector(getEvents);\n\n if (!startEvent) {\n return null;\n }\n return (\n \n );\n};\n\nexport default H2HEventFilter;\n","import styled from \"styled-components/macro\";\n\nconst LineHeading = styled.h3`\n color: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: inherit;\n text-align: center;\n\n ::before,\n ::after {\n content: \"\";\n display: inline-block;\n width: 24%;\n height: 0.3rem;\n vertical-align: middle;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 33%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 36%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n width: 38%;\n }\n }\n ::before {\n margin-right: 1%;\n background: linear-gradient(\n to left,\n ${({ theme }) => theme.colors.primary},\n transparent\n );\n }\n ::after {\n margin-left: 1%;\n background: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.primary},\n transparent\n );\n }\n`;\n\nexport default LineHeading;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCup(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCup);\nexport default __webpack_public_path__ + \"static/media/cup.57c1dacc.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\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 #efebf0;\n border-radius: ${({ theme }) => theme.radii[0]};\n background-color: white;\n color: ${({ theme }) => theme.colors.primary};\n\n ${(props) =>\n props.inProgress &&\n css`\n border: 0;\n background-color: ${({ theme }) => theme.colors.lightPurple};\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.bold};\n font-size: 1.3rem;\n line-height: 1;\n text-align: center;\n\n :first-child {\n border-right: 1px solid #e2e2e2;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding: ${({ theme }) => theme.space[1]};\n font-size: 1.8rem;\n }\n`;\n\nconst StyledStatusRow = styled.tr`\n td {\n padding-top: 0;\n border-top: 0 !important;\n }\n`;\n\nconst StyledMatchRow = styled.tr`\n ~ ${StyledStatusRow} td {\n border-top: 0;\n }\n\n ${(props) =>\n props.mine &&\n css`\n td {\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n > a {\n color: inherit;\n }\n }\n `}\n`;\n\nconst MatchesEntryStyles = css`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst MatchesEntry1 = styled.td`\n ${MatchesEntryStyles}\n text-align: right;\n`;\n\nconst MatchesEntry2 = styled.td`\n ${MatchesEntryStyles}\n`;\n\nconst StatusCell = styled.td`\n white-space: normal;\n text-align: center;\n`;\n\nconst MatchesScoreWrap = styled.td`\n text-align: center;\n white-space: nowrap;\n`;\n\nconst ByeScore = styled.div`\n display: inline-block;\n padding: 0.3rem;\n background-color: ${({ theme }) => theme.colors.darkGrey};\n color: white;\n font-family: ${({ theme }) => theme.fonts.bold};\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.bold};\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 if (!match.winner) {\n return null;\n }\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 === 38 && (\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 Tie-break - {winnerName} progressed{\" \"}\n {match.tiebreak === \"goals_scored\" && \"on most goals scored\"}\n {match.tiebreak === \"goals_conceded\" && \"on fewest goals conceded\"}\n {match.tiebreak === \"default\" && \"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 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 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 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 {match.entry_1_name} progressed with a bye due to their GW\n {match.event - 1} score\n }\n \n );\n};\n\nexport default H2HMatch;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { getCurrentEvent } from \"../../core/store/events/reducers\";\nimport { IH2HMatch } from \"../../core/store/leagues/types\";\nimport Table from \"../Table\";\nimport H2HMatch from \"./H2HMatch\";\n\nconst StyledMatchesTable = styled(Table)`\n table-layout: fixed;\n white-space: nowrap;\n\n /* Have to override Table td border to include tiebrake inside match border-bottom */\n td {\n border-top: 1px solid ${({ theme }) => theme.colors.lightGrey};\n border-bottom: 0;\n }\n\n tr:last-child td {\n border-bottom: 1px solid ${({ theme }) => theme.colors.lightGrey};\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 now = useSelector(getCurrentEvent);\n\n if (!matches) {\n return null;\n }\n\n return (\n \n );\n};\n\nexport default MatchesTable;\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\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 {matches.map((m) => (\n GWTeam Team\n ))}\n \n = ({\n code,\n player,\n fetchCode,\n league,\n leagueNumber,\n entryInLeague,\n}) => {\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, 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 { 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 { fetchNewsArticle } from \"../../utils/pulse\";\nimport Alert from \"../Alert\";\nimport BoldLink from \"../BoldLink\";\nimport ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport { NextIcon, PrevIcon } from \"../icons/Chevrons\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport ReportNameButton from \"../ReportNameButton\";\nimport SubHeading from \"../SubHeading\";\nimport CupArticleErrorBoundary from \"./CupArticleErrorBoundary\";\nimport H2HEntryFilter from \"./H2HEntryFilter\";\nimport H2HEventFilter from \"./H2HEventFilter\";\nimport LineHeading from \"./LineHeading\";\nimport MatchesTable from \"./MatchesTable\";\nimport StandingsHeading from \"./StandingsHeading\";\nimport { SelectWrap } from \"./Styles\";\nimport { getLeagueUrl } from \"./utils\";\n\nconst StyledCupArticle = styled.div`\n div {\n padding: 0;\n }\n\n h1 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n font-size: 1.7rem;\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 )}\n\n {code && showJoinBtn && (\n \n Invite people to join this league\n \n player && player.entry\n ? reduxDispatch(setCode(code))\n : navigate(`/leagues/auto-join/${code}`)\n }\n >\n Join this league\n \n )}\n = ({ location, leagueId }) => {\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 = 32;\n\n const reduxDispatch = useDispatch();\n const [cupArticle, setCupArticle] = useState(null);\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 // If ever we want to test this, here is a test article id that you can\n // insert into your dev DB game_cup table, pulse_article_id column - 10509429\n useEffect(() => {\n cupStatus?.pulse_article_id &&\n fetchNewsArticle(cupStatus.pulse_article_id).then((article) =>\n setCupArticle(article)\n );\n }, [cupStatus]);\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 ? \"will start\" : \"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 `Cup matches for Gameweek ${eventNumber} will be available at the\n end of Gameweek ${eventNumber - 1}`;\n }\n if (cupStatus.is_large && now.id < largeCupEvent) {\n return `Cup matches will be available after Gameweek ${largeCupEvent}`;\n }\n if (notStarted || cupStatus.qualification_event === now.id) {\n return \"The draw for the first round is yet to be made\";\n }\n if (entryNumber && eventNumber) {\n return \"This team has been eliminated\";\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 React from \"react\";\nimport { Link } from \"@reach/router\";\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 View league standings\n \n \n \n This team did not qualify for the cup.{\" \"}\n \n \n 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 \n \n The cup {cupStartText} in GW{cupStatus.qualification_event + 1}\n \n \n {cupArticle && (\n \n )}\n \n \n \n \n \n How the cup works

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

    \n If a cup match is drawn, then the following tie-breaks will be\n applied until a winner is found:\n

      \n \n \n \n
  • Most goals scored in the Gameweek
  • Fewest goals conceded in the Gameweek
  • Virtual coin toss
  • \n \n \n \n \n \n \n \n {pageMatches > 1 && (\n \n \n \n \n )}\n Previous\n {matches.has_next && (\n \n \n Next\n \n )}\n \n {league && (\n \n )}\n \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 { 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 { NextIcon, PrevIcon } from \"../icons/Chevrons\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport ReportNameButton from \"../ReportNameButton\";\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 = 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 } = 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 connect(mapStateToProps, mapDispatchToProps)(MatchesH2H);\n","import React from \"react\";\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 Matches are currently being generated, please check back later.\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 In head-to-head leagues with more than 512 teams only\n matches for a single team can be viewed.\n \n )}\n \n \n \n \n \n \n \n \n {pageMatches > 1 && (\n \n \n \n \n )}\n Previous\n {matches.has_next && (\n \n \n Next\n \n )}\n \n {league && (\n \n )}\n \n \n = ({ leagues, title }) => {\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 React from \"react\";\nimport SubNav from \"../SubNav\";\n\nconst links = [\n { href: \"/leagues\", text: \"Leagues\" },\n { href: \"/leagues/cups\", text: \"Cups\" },\n];\n\nconst LeaguesNav: React.FC = () => \n \n \n \n \n \n \n \n \n \n \n \n \n \n {leagues.map((l) => (\n Cup\n \n Round\n \n Status\n ))}\n \n ;\n\nexport default LeaguesNav;\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\nimport {\n getEntry,\n getPrivateClassicCupLeaguesForEntry,\n getPublicClassicCupLeaguesForEntry,\n getSystemClassicCupLeaguesForEntry,\n} from \"../../core/store/entries/reducers\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport ButtonLink from \"../ButtonLink\";\nimport Copy from \"../Copy\";\nimport HelmetHead from \"../HelmetHead\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport LeaderboardAd from \"../LeaderboardAd\";\nimport Title from \"../Title\";\nimport CupTypeTable from \"./CupTypeTable\";\nimport LeaguesNav from \"./LeaguesNav\";\nimport {\n getBroadcasterLeagues,\n getFilteredSystemClassicLeagues,\n} from \"./utils\";\n\nconst MyCups: React.FC = () => {\n const player = useSelector(getPlayerData);\n const entry = useSelector((state: RootState) =>\n player?.entry ? getEntry(state, player.entry) : null\n );\n const privateClassicLeagues = useSelector((state: RootState) =>\n entry ? getPrivateClassicCupLeaguesForEntry(state, entry.id) : []\n );\n const publicClassicLeagues = useSelector((state: RootState) =>\n entry ? getPublicClassicCupLeaguesForEntry(state, entry.id) : []\n );\n const systemClassicLeagues = useSelector((state: RootState) =>\n entry ? getSystemClassicCupLeaguesForEntry(state, entry.id) : []\n );\n\n 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};\n\nexport default MyCups;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCog(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCog);\nexport default __webpack_public_path__ + \"static/media/cog.47b424f1.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgPlus(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\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: \"M24,13.9999446 C24,14.2527823 24.0896052,14.4679935 24.2688155,14.6455784 C24.4480259,14.8231632 24.6624244,14.9119557 24.9120111,14.9119557 L29.0902609,14.9119557 L29.0902609,19.0902055 C29.0902609,19.3383145 29.1786839,19.5519741 29.3555299,19.7311845 C29.5323759,19.9103948 29.7472177,20 30.0000554,20 C30.2528192,20 30.4688063,19.9103948 30.6480166,19.7311845 C30.827227,19.5519741 30.9168321,19.3383145 30.9168321,19.0902055 L30.9168321,14.9119557 L35.0902055,14.9119557 C35.3383145,14.9119557 35.5519741,14.8231632 35.7311845,14.6455784 C35.9103948,14.4679935 36,14.2527823 36,13.9999446 C36,13.7471069 35.9103948,13.5310829 35.7311845,13.3518725 C35.5519741,13.1726622 35.3383145,13.083057 35.0902055,13.083057 L30.9168321,13.083057 L30.9168321,8.91201108 C30.9168321,8.66242438 30.827227,8.44802586 30.6480166,8.26881552 C30.4688063,8.08960517 30.2528192,8 30.0000554,8 C29.7472177,8 29.5323759,8.08960517 29.3555299,8.26881552 C29.1786839,8.44802586 29.0902609,8.66242438 29.0902609,8.91201108 L29.0902609,13.083057 L24.9120111,13.083057 C24.6624244,13.083057 24.4480259,13.1726622 24.2688155,13.3518725 C24.0896052,13.5310829 24,13.7471069 24,13.9999446 Z\",\n transform: \"translate(-24 -8)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgPlus);\nexport default __webpack_public_path__ + \"static/media/plus.0299c7c3.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRenew(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 12,\n viewBox: \"0 0 16 12\",\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: \"M40,14.1141445 C40,14.2718171 39.9387384,14.4198163 39.8276468,14.5311548 L37.4616014,16.8181168 C37.3505097,16.929457 37.2028573,16.9910039 37.045361,16.9910039 C36.8878646,16.9910039 36.740214,16.9294552 36.6291206,16.8181168 L34.3039342,14.5311548 C34.0747275,14.3008653 34.0747275,13.9274237 34.3039342,13.6978424 L36.136292,13.6978424 C35.9816071,11.5477299 34.1907168,9.85136281 32.0041273,9.85136281 C30.76104,9.85136281 29.6458217,10.4004603 28.8865992,11.2690385 L27.3896818,10.1722421 C28.4893484,8.8451562 30.1479381,8 32.0042353,8 C35.2132013,8 37.8323208,10.5241913 37.9898172,13.6977538 L39.8270348,13.6977538 C39.9388284,13.8084019 40,13.956387 40,14.1140737 L40,14.1141445 Z M24.1721534,14.3022462 L26.009371,14.3022462 C26.1668674,17.4758087 28.7867069,20 31.9949529,20 C33.8510701,20 35.5104518,19.1549323 36.6095064,17.8277579 L35.112589,16.7309615 C34.3532225,17.5995397 33.2388322,18.1479467 31.9950609,18.1479467 C29.8084714,18.1479467 28.0182327,16.4515797 27.8628963,14.3014672 L29.695254,14.3014672 C29.9251627,14.0718681 29.9251627,13.6977361 29.695254,13.4681548 L27.3707876,11.1811928 C27.259696,11.0698525 27.1120436,11.0089961 26.9545472,11.0089961 C26.7970509,11.0089961 26.6494003,11.0705448 26.5383068,11.1811928 L24.1722614,13.4688629 C24.0611698,13.5802031 24,13.7281865 24,13.8858732 C24,14.0428553 24.0611698,14.1908546 24.1722614,14.302193 L24.1721534,14.3022462 Z\",\n transform: \"translate(-24 -8)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRenew);\nexport default __webpack_public_path__ + \"static/media/renew.fa37aa4a.svg\";\nexport { ForwardRef as ReactComponent };","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 font-size: inherit;\n text-align: left;\n cursor: pointer;\n`;\n\nexport default LinkButton;\n","import { hideVisually, size } from \"polished\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport styled, { css } 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 { ReactComponent as BasePlus } from \"../../img/icons/plus.svg\";\nimport { ReactComponent as BaseRenew } from \"../../img/icons/renew.svg\";\nimport Button from \"../Button\";\nimport ButtonLink from \"../ButtonLink\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport DialogManager from \"../DialogManager\";\nimport { PatternWrapMain } from \"../GraphicPatterns\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport LeaderboardAd from \"../LeaderboardAd\";\nimport Link, { LinkStyles } from \"../Link\";\nimport LinkButton from \"../LinkButton\";\nimport TabHeading from \"../TabHeading\";\nimport Table from \"../Table\";\nimport Title from \"../Title\";\nimport { Ellipsis, VisuallyHidden } from \"../Utils\";\nimport HelmetHeadLeagues from \"./HelmetHeadLeagues\";\nimport LeaguesNav from \"./LeaguesNav\";\nimport Movement from \"./Movement\";\nimport {\n getBroadcasterLeagues,\n getFilteredSystemClassicLeagues,\n getLeagueUrl,\n} from \"./utils\";\n\nconst ActionBar = styled.ul`\n margin-bottom: ${({ theme }) => theme.space[4]}; ;\n`;\n\nconst ActionBarItem = styled.li`\n display: inline-block;\n margin: ${({ theme }) => `${theme.space[1]} ${theme.space[2]}`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n margin: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst ActionList = styled.ul`\n margin: 0;\n padding: 0;\n list-style: none;\n text-align: center;\n`;\n\nconst Icons = css`\n margin-right: 0.4rem;\n fill: ${({ theme }) => theme.colors.primary};\n`;\n\nconst Plus = styled(BasePlus)`\n ${Icons}\n`;\n\nconst Renew = styled(BaseRenew)`\n ${Icons}\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 Cog = styled(BaseCog)`\n ${size(14)};\n margin-right: ${({ theme }) => theme.space[1]};\n`;\n\nconst Label = styled.span`\n ${LinkStyles}\n @media (max-width: ${({ theme }) => theme.breakpoints[2]}) {\n ${hideVisually}\n }\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 = IPropsFromState & IPropsFromDispatch;\n\nclass MyLeagues extends React.Component\n \n \n \n {`Leagues & Cups - ${entry.name}`}\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 {broadcasterLeagues.length > 0 && (\n \n )}\n \n ) : (\n \n )}\n
    \n \n \n \n \n \n \n \n \n \n \n

    None of your leagues have a cup yet.

    \n \n Create And Join New Leagues & Cups\n \n {\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 } = this.props;\n if (!entry) {\n return null;\n }\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 }\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 = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEntrySummary: (entryId) => dispatch(fetchEntrySummary(entryId)),\n leave: (leagueId: number) => {\n if (window.confirm(\"Are you sure you want to leave this league?\")) {\n dispatch(leaveLeague(leagueId));\n }\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(MyLeagues);\n\ninterface ILeagueTypeTableProps {\n leagues: ILeagueEntry[];\n leave: (leagueId: number) => void;\n title: string;\n}\n\nconst LeagueTypeTable: React.FC\n \n \n \n {`Leagues & Cups - ${entry.name}`}\n \n \n \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n Create & Join New Leagues & Cups\n \n \n \n \n \n \n Renew Your Leagues\n \n \n \n \n \n {broadcasterLeagues.length > 0 && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n = ({\n leagues,\n leave,\n title,\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 {leagues.length === 0 ? (\n \n ) : (\n \n )}\n \n \n

    \n No {title.toLowerCase()} joined yet.{\" \"}\n Create and join new leagues.\n

    \n \n \n \n \n \n \n \n \n \n \n {leagues.map((l) => (\n \n \n \n \n \n \n \n League\n \n MovementCurrent RankLast Rank {l.name}\n \n {l.entry_rank ? l.entry_rank.toLocaleString() : \"-\"}\n \n {l.entry_last_rank ? l.entry_last_rank.toLocaleString() : \"-\"}\n \n \n (\n <>\n \n {showDialog && (\n \n \n \n \n )}\n \n )}\n />\n \n \n ))}\n \n = ({\n handleHide,\n leagueEntry,\n leave,\n}) => (\n \n);\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect, useState } from \"react\";\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 ReportNameButton from \"../ReportNameButton\";\nimport SubHeading from \"../SubHeading\";\nimport Table from \"../Table\";\nimport StandingsHeading from \"./StandingsHeading\";\n\ntype OwnProps = RouteComponentProps<{\n leagueId: string;\n}>;\n\nconst NewEntriesH2H: React.FC\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 Standings\n \n \n {\n leave(leagueEntry.id);\n handleHide();\n }}\n fullwidth=\"true\"\n variant=\"tertiary\"\n >\n Leave league\n \n \n \n Administer\n \n \n \n Invite Friends\n \n = ({ leagueId }) => {\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 { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\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 HelmetHeadLeagues from \"./HelmetHeadLeagues\";\n\ninterface IPropsFromState {\n leagues: IRenewableLeague[];\n next: IEvent | null;\n}\n\ninterface IPropsFromDispatch {\n destroy: (id: number) => void;\n fetch: () => void;\n renew: (id: number) => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch;\n\nclass Renew extends React.Component\n \n \n
    \n
    \n \n \n \n \n \n New entries\n \n \n \n \n \n \n \n {newEntries.results.map((ne) => (\n \n \n \n \n ))}\n \n
    TeamManager{ne.entry_name}\n \n {ne.player_first_name} {ne.player_last_name}\n \n \n \n \n \n {page > 1 && (\n setPage(page - 1)}\n variant=\"secondary\"\n fullwidth=\"true\"\n >\n \n \n \n )}\n Previous\n {newEntries.has_next && (\n setPage(page + 1)}\n variant=\"secondary\"\n fullwidth=\"true\"\n >\n \n Next\n \n )}\n \n {league && (\n \n )}\n \n \n {\n public componentDidMount() {\n this.props.fetch();\n }\n\n public render() {\n const { destroy, leagues, next, renew } = this.props;\n return (\n \n );\n }\n}\n\nexport { Renew as RenewTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n leagues: getRenewableLeagues(state),\n next: getNextEvent(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 connect(mapStateToProps, mapDispatchToProps)(Renew);\n","import styled, { css } from \"styled-components/macro\";\n\ninterface IProps {\n mine: boolean;\n}\n\nconst StandingsRow = styled.tr\n \n \n
    \n \n
    \n \n \n \n\n {next && leagues.length ? (\n \n ) : (\n \n )}\n Renew your leagues

    \n Choose whether you wish to renew or delete last season's\n invitational leagues.\n

    \n All players from last season will automatically be entered into\n the renewed league(s) when they join the game.\n

      \n {leagues.map((l) => (\n \n ))}\n
  • \n \n \n
  • {l.name}\n \n \n \n \n \n \n You have no leagues to renew.`\n ${(props) =>\n props.mine &&\n css`\n td {\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n > a {\n color: ${({ theme }) => theme.colors.fantasy};\n }\n }\n `}\n`;\nexport default StandingsRow;\n","import { navigate, RouteComponentProps } from \"@reach/router\";\nimport qs from \"qs\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getCurrentEvent,\n getCurrentEventStatus,\n} from \"../../core/store/events/reducers\";\nimport { fetchEventStatus } from \"../../core/store/events/thunks\";\nimport { IEvent, IEventStatusData } 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 { formatRawAsLocal } from \"../../core/utils/datetime\";\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 { NextIcon, PrevIcon } from \"../icons/Chevrons\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport LeaderboardAd from \"../LeaderboardAd\";\nimport Link from \"../Link\";\nimport { Pager, PagerItem, PagerItemNext } from \"../Pager\";\nimport ReportNameButton from \"../ReportNameButton\";\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\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 statusData: IEventStatusData | null;\n}\n\ninterface IPropsFromDispatch {\n fetchEventStatus: () => void;\n fetchStandings: (\n leagueId: number,\n phaseId: number,\n pageNewEntries: number,\n pageStandings: number\n ) => void;\n}\n\ntype Props = 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 this.props.fetchEventStatus();\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 league,\n newEntries,\n now,\n pageNewEntries,\n pageStandings,\n phase,\n phases,\n player,\n standings,\n statusData,\n leagueNumber,\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}\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 statusData: getCurrentEventStatus(state),\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 fetchEventStatus: () => dispatch(fetchEventStatus()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(StandingsClassic);\n","import { RouteComponentProps } from \"@reach/router\";\nimport qs from \"qs\";\nimport React from \"react\";\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 { ControlArrowLeft, ControlArrowRight } from \"../icons/Arrows\";\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 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 = 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 {started && statusData && statusData.leagues === \"Updating\" && (\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 View cup {league.cup_league ? \"matches\" : \"info\"}\n \n \n \n {started\n ? `League scoring started in Gameweek ${getShortNameFromId(\n league.start_event,\n true\n )}`\n : `League scoring will start in Gameweek ${getShortNameFromId(\n league.start_event,\n true\n )}`}\n \n
    \n
    \n {phases.map((p) => (\n \n {p.name}\n \n ))}\n \n \n \n \n \n League tables are currently being re-calculated. The table\n below may still contain old data.\n \n Last updated: {formatRawAsLocal(standings.lastUpdatedData)}{\" \"}\n (local time)\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
    RankTeam & Manager\n \n \n \n GW\n \n \n \n TOT\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 )}\n Previous\n {standings.has_next && (\n \n \n Next\n \n )}\n New entries\n \n \n \n \n \n \n \n {newEntries.results.map((ne) => (\n \n \n \n \n ))}\n \n
    TeamManager{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 Previous\n {newEntries.has_next && (\n \n \n \n Next\n \n \n )}\n \n {league && (\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 } = 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 connect(mapStateToProps, mapDispatchToProps)(StandingsH2H);\n","import React from \"react\";\nimport SubNav from \"../SubNav\";\n\nconst links = [\n { href: \"/prizes\", text: \"Prizes\" },\n { href: \"/prizes/winners\", text: \"Winners\" },\n];\n\nconst PrizesNav: 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
    RankTeam & Manager\n \n \n \n W\n \n \n \n D\n \n \n \n LScore\n \n \n \n Pts\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 Previous\n {standings.has_next && (\n \n \n Next\n \n )}\n \n {league && (\n \n )}\n \n \n Report Offensive Name\n \n \n ;\n\nexport default PrizesNav;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../core/store\";\nimport { getCurrentEvent } from \"../core/store/events/reducers\";\nimport { IEvent } from \"../core/store/events/types\";\nimport Copy from \"./Copy\";\nimport Footnote from \"./Footnote\";\nimport HelmetHead from \"./HelmetHead\";\nimport { Main, Wrapper } from \"./Layout\";\nimport { Hyperlink } from \"./Link\";\nimport PrizesNav from \"./prizes/PrizesNav\";\nimport SubHeading from \"./SubHeading\";\nimport Title from \"./Title\";\n\ninterface IPropsFromState {\n currentEvent: IEvent | null;\n}\n\ntype PrizesTypes = IPropsFromState & RouteComponentProps;\n\nconst Prizes: React.FC = ({ currentEvent }) => (\n <>\n {currentEvent && (currentEvent.id > 1 || currentEvent.finished) && (\n \n )}\n \n \n);\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n currentEvent: getCurrentEvent(state),\n});\n\nexport default connect(mapStateToProps)(Prizes);\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgAudioDescription(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 88,\n height: 62,\n viewBox: \"0 0 88 62\",\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: \"M44.9446392,0.00030103299 C62.743935,0.0189904647 78.0031238,0.910279868 81.2671322,3.3328689 C82.2090249,4.01304622 83.3543212,4.55718809 83.9602793,5.50872037 C87.3260045,9.93058896 87.8653426,16.1882204 88,30.5399619 C87.8653426,44.8931355 87.3260045,51.1500509 83.9602793,55.5712035 C83.3543212,56.5921855 82.2090249,57.0675936 81.2671322,57.747771 C77.9680269,60.265143 62.4143935,61.0806399 44.369599,61.2173913 C26.3255132,61.0806399 10.0319731,60.265143 6.80019651,57.747771 C5.79026633,57.0675936 4.64497008,56.5921855 3.97239202,55.5712035 C0.67257806,51.1500509 0.201986035,44.8931355 0,30.5399619 C0.201986035,16.1882204 0.67257806,9.93058896 3.97239202,5.50872037 C4.64497008,4.55718809 5.79026633,4.01304622 6.80019651,3.3328689 C10.0319731,0.884230524 26.3255132,-7.10542736e-15 44.369599,-7.10542736e-15 Z M32.051,15.02 L24.953,15.02 L13.697,44 L19.829,44 L22.559,36.734 L34.487,36.734 L37.217,44 L43.349,44 L32.051,15.02 Z M57.461,15.02 L47.297,15.02 L47.297,44 L57.461,44 C67.289,44 72.749,37.952 72.749,29.51 C72.749,21.068 67.289,15.02 57.461,15.02 L57.461,15.02 Z M57.461,20.396 C63.845,20.396 67.079,24.176 67.079,29.51 C67.079,34.844 63.845,38.624 57.461,38.624 L57.461,38.624 L52.967,38.624 L52.967,20.396 Z M28.523,20.858 L32.555,31.526 L24.491,31.526 L28.523,20.858 Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgAudioDescription);\nexport default __webpack_public_path__ + \"static/media/audio-description.8a84e954.svg\";\nexport { ForwardRef as ReactComponent };","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgClosedCaption(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 88,\n height: 62,\n viewBox: \"0 0 88 62\",\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: \"M44.9446392,13.000301 C62.743935,13.0189905 78.0031238,13.9102799 81.2671322,16.3328689 C82.2090249,17.0130462 83.3543212,17.5571881 83.9602793,18.5087204 C87.3260045,22.930589 87.8653426,29.1882204 88,43.5399619 C87.8653426,57.8931355 87.3260045,64.1500509 83.9602793,68.5712035 C83.3543212,69.5921855 82.2090249,70.0675936 81.2671322,70.747771 C77.9680269,73.265143 62.4143935,74.0806399 44.369599,74.2173913 C26.3255132,74.0806399 10.0319731,73.265143 6.80019651,70.747771 C5.79026633,70.0675936 4.64497008,69.5921855 3.97239202,68.5712035 C0.67257806,64.1500509 0.201986035,57.8931355 0,43.5399619 C0.201986035,29.1882204 0.67257806,22.930589 3.97239202,18.5087204 C4.64497008,17.5571881 5.79026633,17.0130462 6.80019651,16.3328689 C10.0319731,13.8842305 26.3255132,13 44.369599,13 Z M32.24,27.558 C23.42,27.558 17.162,33.774 17.162,42.51 C17.162,51.246 23.42,57.462 32.24,57.462 C36.608,57.462 40.22,55.908 42.95,52.968 L42.95,52.968 L39.044,49.104 C37.154,51.162 34.844,52.002 32.198,52.002 C26.78,52.002 22.832,48.222 22.832,42.51 C22.832,36.798 26.78,33.018 32.198,33.018 C34.802,33.018 37.154,33.9 39.002,35.958 L39.002,35.958 L42.95,32.052 C40.22,29.112 36.608,27.558 32.24,27.558 Z M61.052,27.558 C52.232,27.558 45.974,33.774 45.974,42.51 C45.974,51.246 52.232,57.462 61.052,57.462 C65.42,57.462 69.032,55.908 71.762,52.968 L71.762,52.968 L67.856,49.104 C65.966,51.162 63.656,52.002 61.01,52.002 C55.592,52.002 51.644,48.222 51.644,42.51 C51.644,36.798 55.592,33.018 61.01,33.018 C63.614,33.018 65.966,33.9 67.814,35.958 L67.814,35.958 L71.762,32.052 C69.032,29.112 65.42,27.558 61.052,27.558 Z\",\n transform: \"translate(0 -13)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgClosedCaption);\nexport default __webpack_public_path__ + \"static/media/closed-caption.10b22503.svg\";\nexport { ForwardRef as ReactComponent };","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/partner-badge-88.fa0e07f1.png\";","import React from \"react\";\nimport { ITeam } from \"../../core/store/teams/types\";\nimport {\n getPulseTeamIdFromRefs,\n getTeamsByPulseId,\n IPulseNewsArticle,\n} from \"../../utils/pulse\";\nimport Badge from \"../Badge\";\nimport {\n ExternalIcon,\n IconWrap,\n RelatedHeadline,\n RelatedLink,\n} from \"../news/styles\";\nimport { NewTabCopy } from \"../Utils\";\n\ninterface IExternalHeadlineContent {\n team: ITeam | null;\n title: string;\n}\n\nconst ExternalHeadlineContent: React.FC\n \n \n \n \n \n \n
    \n \n
    \n \n \n\n \n\n \n\n \n Prizes\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n Overall Prizes

    1st Prize – 2024/25 Fantasy Premier League Champion

      \n \n \n \n \n \n \n \n \n \n
  • \n 7-night break in the UK inclusive of two VIP hospitality at two\n 2025/26 Premier League matches\n
  • \n A selection of experiences at popular UK tourist attractions\n
  • Includes travel and 7 nights’ accommodation
  • Hublot connected watch
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • Laptop computer OR SIM-free smartphone
  • Noise-cancelling headphones (in-ear OR on-ear)
  • \n Personalised FPL bundle consisting of a rucksack, T-shirt, mug,\n thermal bottle, stress ball, pen, pad and key ring\n
  • Runner-up

      \n \n \n \n \n \n \n \n
  • \n Two hospitality tickets at one 2025/26 Premier League match\n
  • Includes travel and 3 nights’ accommodation
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • Laptop computer OR SIM-free smartphone
  • Noise-cancelling headphones (in-ear OR on-ear)
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 3rd place

      \n \n \n \n \n \n \n
  • \n Two hospitality tickets at one 2025/26 Premier League match\n
  • Includes travel and 3 nights’ accommodation
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • Tablet computer
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 4th place

      \n \n \n \n \n \n
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • Tablet computer
  • Noise-cancelling headphones (in-ear OR on-ear)
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 5th place

      \n \n \n \n \n
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • Noise-cancelling headphones (in-ear OR on-ear)
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 6th-10th place

      \n \n \n \n
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 11th-20th place

      \n \n \n \n
  • Official Premier League Nike Club T-shirt
  • EA SPORTS FCâ„¢ game
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 2024/25 FPL Cup Winner

      \n \n \n \n \n \n \n \n
  • \n Two hospitality tickets at one 2025/26 Premier League match\n
  • Includes travel and 3 nights’ accommodation
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • Laptop computer OR SIM-free smartphone
  • Noise-cancelling headphones (in-ear OR on-ear)
  • \n Personalised FPL bundle consisting of a rucksack, T-shirt,mug,\n thermal bottle, stress ball, pen, pad and key ring\n
  • 2024/25 FPL Cup Runner-up

      \n \n \n \n \n \n
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • Tablet computer
  • Noise-cancelling headphones (in-ear OR on-ear)
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • \n \n \n \n \n \n \n \n \n \n \n \n Second Chance League

    1st Prize

      \n \n \n \n \n \n \n \n
  • \n Two hospitality tickets at one 2025/26 Premier League match\n
  • Includes travel and 3 nights’ accommodation
  • Nike jacket
  • EA SPORTS FCâ„¢ game
  • Laptop computer OR SIM-free smartphone
  • Bluetooth speaker
  • \n Personalised FPL bundle consisting of a rucksack, T-shirt, mug,\n thermal bottle, stress ball, pen, pad and key ring\n
  • Runner-up

      \n \n \n \n \n \n \n
  • Nike jacket
  • EA SPORTS FCâ„¢ game
  • Laptop computer OR SIM-free smartphone
  • Tablet computer
  • Bluetooth speaker
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 3rd place

      \n \n \n \n \n \n
  • Nike jacket
  • EA SPORTS FCâ„¢ game
  • Tablet computer
  • Bluetooth speaker
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 4th place

      \n \n \n \n \n
  • Nike jacket
  • EA SPORTS FCâ„¢ game
  • Bluetooth speaker
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • 5th place

      \n \n \n \n
  • Nike jacket
  • EA SPORTS FCâ„¢ game
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • \n \n \n \n \n \n \n \n Monthly

    Manager of the Month

      \n \n \n \n \n
  • Official Premier League Club T-shirt
  • Nike jacket
  • EA SPORTS FCâ„¢ game
  • Laptop computer OR SIM-free smartphone
  • Runner-up

      \n \n \n
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • \n Top 20 Managers each month (incl Manager of the Month and\n Runner-up) will receive:\n

      \n \n
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad and key ring\n
  • \n \n \n \n \n \n Weekly

    \n Manager of the Week\n \n

    \n \n *
      \n \n \n \n
  • Official Premier League Club T-shirt
  • EA SPORTS FCâ„¢ game
  • \n FPL bundle consisting of a rucksack, T-shirt, mug, thermal\n bottle, stress ball, pen, pad, and key ring\n

  • \n To be eligible to win a Manager of the week prize,\n you must have joined the game before the start of the 2024/25\n season or a minimum of two clear Gameweeks before the one in which\n you are top of the weekly leaderboard. Players who have played a\n chip (including Bench Boost, Free Hit, Triple Captain, Wildcard or\n Assistant Manager) will not be eligible to win a Manager of the\n Week prize for the Gameweek that such a chip has been used.\n * = ({\n team,\n title,\n}) => (\n <>\n \n \n \n);\n\ninterface IExternalHeadline {\n article: IPulseNewsArticle;\n teams: ITeam[];\n}\n\nconst ExternalHeadline: React.FC\n {team && }\n \n {title}\n \n = ({ article, teams }) => {\n const teamsByPulseId = getTeamsByPulseId(teams);\n const { hotlinkUrl, references, title } = article;\n const pulseId = references.length ? getPulseTeamIdFromRefs(references) : null;\n const team = pulseId ? teamsByPulseId[pulseId] : null;\n\n return (\n <>\n {hotlinkUrl ? (\n \n \n \n \n ) : (\n \n )}\n \n );\n};\n\nexport default ExternalHeadline;\n","import React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport { ITeam } from \"../../core/store/teams/types\";\nimport { IPulseNewsArticle, IPulseRelatedArticle } from \"../../utils/pulse\";\nimport NewsThumb from \"../news/NewsThumb\";\nimport {\n Figure,\n IconWrap,\n NewsIcon,\n NewsLink,\n NewsSubtitle,\n PlayIcon,\n RelatedHeadline,\n RelatedLink,\n StyledRelatedArticles,\n Thumb,\n} from \"../news/styles\";\nimport ExternalHeadline from \"./ExternalHeadline\";\nimport { ScoutBody, ScoutTitle } from \"./styles\";\n\ninterface IScoutCard {\n externalNews: Record\n \n \n | null;\n newsItem: any;\n teams: ITeam[] | null;\n}\n\nconst ScoutCard: React.FC = ({ externalNews, newsItem, teams }) => {\n const related = newsItem.related;\n\n return (\n \n );\n};\n\nexport default ScoutCard;\n","import React from \"react\";\nimport SubNav from \"../SubNav\";\n\nconst links = [\n { href: \"/the-scout\", text: \"News\" },\n { href: \"/the-scout/set-piece-takers\", text: \"Set-Pieces\" },\n { href: \"/the-scout/player-news\", text: \"Availability\" },\n];\n\nconst ScoutNav: React.FC = () =>
    \n \n {related && (\n \n )}\n
    \n \n
    \n \n \n
    \n \n \n \n \n \n \n {newsItem.subtitle}
    \n \n
    {newsItem.title}\n {related.slice(0, 2).map((r: IPulseRelatedArticle) => (\n \n ))}\n \n {externalNews && externalNews[r.id] && teams ? (\n \n ) : (\n <>\n {r.type === \"TEXT\" && (\n \n \n \n \n )}\n {r.type === \"VIDEO\" && (\n \n \n {r.label}\n \n \n \n )}\n \n )}\n \n \n {r.label};\n\nexport default ScoutNav;\n","import { RouteComponentProps } from \"@reach/router\";\nimport moment from \"moment\";\nimport { size } from \"polished\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box, Flex } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getTeams } from \"../../core/store/teams/reducers\";\nimport { ITeam } from \"../../core/store/teams/types\";\nimport { ReactComponent as BaseADIcon } from \"../../img/icons/audio-description.svg\";\nimport { ReactComponent as BaseCCIcon } from \"../../img/icons/closed-caption.svg\";\nimport { ReactComponent as BasePlayIcon } from \"../../img/icons/play.svg\";\nimport partnerBadge44 from \"../../img/partner-badge-44.png\";\nimport partnerBadge88 from \"../../img/partner-badge-88.png\";\nimport { ReactComponent as FacebookLogo } from \"../../img/social/facebook.svg\";\nimport { ReactComponent as TwitterLogo } from \"../../img/social/twitter.svg\";\nimport {\n fetchNews,\n fetchNewsArticle,\n fetchVideos,\n IPulseNewsArticle,\n IPulseRelatedArticle,\n IPulseResponse,\n IPulseTag,\n} from \"../../utils/pulse\";\nimport { BoldHyperlink } from \"../BoldLink\";\nimport HelmetHead from \"../HelmetHead\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport NewsThumb from \"../news/NewsThumb\";\nimport { Figure, NewsLink, Thumb } from \"../news/styles\";\nimport Panel from \"../Panel\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport { NewTabCopy } from \"../Utils\";\nimport ScoutCard from \"./ScoutCard\";\nimport ScoutErrorBoundary from \"./ScoutErrorBoundary\";\nimport { NewsLeader } from \"./ScoutLeader\";\nimport ScoutNav from \"./ScoutNav\";\nimport {\n ScoutBody,\n ScoutItem,\n ScoutList,\n ScoutPattern,\n ScoutTitle,\n} from \"./styles\";\n\nconst Widget = styled.section`\n position: relative;\n padding: ${({ theme }) => theme.space[2]};\n margin-bottom: ${({ theme }) => theme.space[4]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding: 0;\n border-bottom: 2px solid ${({ theme }) => theme.colors.lightGrey};\n }\n`;\n\nconst WidgetHeader = styled.header`\n border-bottom: ${({ theme }) => theme.borders[0]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n border-bottom: none;\n }\n`;\n\nconst ScoutFooter = styled.div`\n padding-top: ${({ theme }) => theme.space[2]};\n border-top: 1px solid ${({ theme }) => theme.colors.lightGrey};\n text-align: right;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n position: absolute;\n top: 0.3rem;\n right: 0;\n padding-top: 0;\n border-top: none;\n }\n`;\n\nconst VideoFigure = styled.figure`\n transition: all 0.1s;\n`;\n\nconst Image = styled.div`\n position: relative;\n overflow: hidden;\n`;\n\nconst ThumbPlayIcon = styled(BasePlayIcon)`\n display: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(\"auto\", \"12%\")};\n display: inline;\n fill: white;\n left: 50%;\n max-width: 6rem;\n min-width: 4rem;\n opacity: 0.8;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n z-index: 2;\n }\n`;\n\nconst RunTime = styled.span`\n position: absolute;\n bottom: 1rem;\n left: 1rem;\n background: ${({ theme }) => theme.colors.fantasy};\n color: #fff;\n font-size: 0.8rem;\n display: flex;\n align-items: center;\n line-height: 2.4rem;\n`;\n\nconst PlayIconSmall = styled(BasePlayIcon)`\n ${size(10)}\n margin: 0 0.4rem;\n fill: #2f1351;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin: 0 ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst PlayTime = styled.time`\n padding: 0 0.4rem;\n background: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n line-height: 1.84;\n`;\n\nconst MainVideoWrap = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-right: 0.4rem;\n }\n`;\n\nconst MainVideoCaption = styled.figcaption`\n ${ScoutPattern}\n padding: 2rem 2rem 3rem;\n background-repeat: no-repeat;\n`;\n\nconst MainVideoTitle = styled.div`\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.8rem;\n line-height: 1.2;\n\n ${NewsLink}:hover & {\n text-decoration: underline;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 2.5rem;\n }\n`;\n\nconst VideoText = styled.p`\n margin: 1rem 0;\n font-size: 1.2rem;\n color: inherit;\n line-height: 1.8;\n word-break: break-word;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 1.5rem;\n }\n`;\n\ninterface IVideoIcon {\n color?: string;\n}\n\nconst CCIcon = styled(BaseCCIcon)`\n ${size(12, 18)};\n fill: #6c6c6c;\n\n ${(props) =>\n props.color === \"primary\" &&\n css`\n fill: ${(props) => props.theme.colors.primary};\n `}\n`;\n\nconst ADIcon = styled(BaseADIcon)`\n ${size(12, 18)};\n fill: #6c6c6c;\n\n ${(props) =>\n props.color === \"primary\" &&\n css`\n fill: ${(props) => props.theme.colors.primary};\n `}\n`;\n\nconst ScoutVideo = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n }\n`;\n\nconst VideoSection = styled.div`\n margin-bottom: ${(props) => props.theme.space[2]};\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 0 50%;\n }\n`;\n\nconst VideoList = styled.ul`\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -0.4rem;\n }\n`;\n\nconst VideoItem = styled.li`\n margin-bottom: ${(props) => props.theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 0 50%;\n padding-right: 0.4rem;\n padding-left: 0.4rem;\n }\n`;\n\nconst SocialBody = styled.div`\n padding: ${({ theme }) => theme.space[1]};\n`;\n\nconst Logo = styled.img`\n margin: 5px;\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 :not(:last-child) {\n margin-bottom: ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst SocialLinkText = styled.span`\n margin-left: 1rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.2rem;\n`;\n\nconst TwitterWrap = styled.div`\n margin: 3rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n margin: 0;\n }\n`;\n\ninterface ISocialIcons {\n color?: string;\n hasCC?: boolean;\n hasAD?: boolean;\n}\n\nconst SocialIcons: React.FC = ({ color, hasCC, hasAD }) => (\n \n);\n\ninterface ISocialLinkStyleProps {\n network: string;\n}\n\ntype VideoProps = {\n video: any;\n};\n\nconst Video: React.FunctionComponent\n \n \n {hasCC && }{hasAD && } = ({ video }) => {\n return (\n \n );\n};\n\ninterface IPropsFromState {\n teams: ITeam[];\n}\n\ninterface IState {\n news: IPulseResponse | null;\n videos: IPulseResponse | null;\n externalNews: Record\n \n
    \n \n \n
    \n \n \n \n \n \n \n \n {moment(video.duration * 1000).format(\"mm:ss\")}\n \n \n {video.title}\n | null;\n}\n\ntype Props = RouteComponentProps & IPropsFromState;\n\nclass Scout extends React.Component {\n public state: IState = { news: null, videos: null, externalNews: null };\n\n public async componentDidMount() {\n this.showTwitter();\n\n // TODO - Should set an error state then can throw in render and use the\n // error boundary\n Promise.all([\n fetchNews(7, \"Fantasy%20Football%20Scout\"),\n fetchVideos(5),\n ]).then((data) => {\n const [newsData, videosData] = data;\n\n this.setState({\n news: newsData,\n videos: videosData,\n });\n\n const relatedTextContentIds = newsData.content\n .slice(1)\n .reduce((acc, cur) => [...acc, ...cur.related.slice(0, 2)], [])\n .filter((r: IPulseRelatedArticle) => r.type === \"TEXT\")\n .map((r: IPulseRelatedArticle) => r.id);\n\n const newsRequests: [Promise] =\n relatedTextContentIds.map((id: number) => fetchNewsArticle(id));\n\n Promise.all(newsRequests).then((articles) => {\n const externalNewsData = articles.filter((a) =>\n a ? a.tags.some((tag: IPulseTag) => tag.label === \"External\") : false\n );\n\n if (externalNewsData.length > 0) {\n const externalNewsById: Record =\n externalNewsData.reduce(\n (acc, curr) => ({\n ...acc,\n [curr.id]: curr,\n }),\n {}\n );\n this.setState({\n ...this.state,\n externalNews: externalNewsById,\n });\n }\n });\n });\n }\n\n public showTwitter() {\n const twttr = (window as any).twttr;\n if (twttr && twttr.widgets) {\n twttr.widgets.load();\n }\n }\n\n public render() {\n const { news, videos, externalNews } = this.state;\n\n const mainVideo = videos ? videos.content[0] : null;\n\n return (\n <>\n \n \n \n );\n }\n}\n\nconst ScoutWrapper: React.FC\n \n \n \n The Scout\n \n \n \n \n
    \n {news && videos && (\n <>\n {/* Promoted Content */}\n \n {/* News */}\n \n\n {/* Videos */}\n \n \n )}\n
    \n \n \n \n \n \n \n \n \n \n Latest FPL News\n {news.content.slice(1, 7).map((n) => (\n \n ))}\n \n \n \n \n \n More News\n \n \n \n \n \n \n \n \n Latest FPL Videos\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {moment(mainVideo.duration * 1000).format(\n \"mm:ss\"\n )}\n \n \n \n {mainVideo.title}{mainVideo.description}\n \n \n \n {videos.content.slice(1, 5).map((v) => (\n \n ))}\n \n \n \n \n More FPL Video\n \n \n \n \n }\n >\n \n \n \n \n \n \n \n \n \n \n \n FPL on Facebook\n \n \n \n \n \n FPL on X\n \n \n \n Tweets by OfficialFPL\n \n = ({ teams }) => (\n \n);\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n teams: getTeams(state),\n});\n\nexport default connect(mapStateToProps)(ScoutWrapper);\n","import { IElement } from \"../../core/store/elements/types\";\nimport { ITeam } from \"../../core/store/teams/types\";\nimport { INotesById, INotesItem, ISPTById } from \"./SetPieceTakers\";\n\nexport const reduceElementsBySetPieceTakers = (\n elements: IElement[],\n teams: ITeam[]\n): ISPTById => {\n const byTeamId = teams.reduce((acc: ISPTById, team: ITeam): ISPTById => {\n acc[team.id] = {\n team: team,\n penalties: [],\n direct_freekicks: [],\n corners_and_indirect_freekicks: [],\n };\n return acc;\n }, {});\n\n for (let i = 0; i < elements.length; i++) {\n const element: IElement = elements[i];\n if (element.penalties_order) {\n byTeamId[element.team].penalties.push({\n id: element.id,\n name: element.web_name,\n order: element.penalties_order,\n });\n }\n if (element.direct_freekicks_order) {\n byTeamId[element.team].direct_freekicks.push({\n id: element.id,\n name: element.web_name,\n order: element.direct_freekicks_order,\n });\n }\n if (element.corners_and_indirect_freekicks_order) {\n byTeamId[element.team].corners_and_indirect_freekicks.push({\n name: element.web_name,\n id: element.id,\n order: element.corners_and_indirect_freekicks_order,\n });\n }\n }\n\n return byTeamId;\n};\n\nexport const reduceNotesByTeamId = (teamNotes: INotesItem[]): INotesById => {\n return teamNotes.reduce(\n (acc: INotesById, item: INotesItem) => ({\n ...acc,\n [item.id]: item,\n }),\n {}\n );\n};\n","import { size } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as BaseExternalIcon } from \"../../img/icons/external.svg\";\nimport { ReactComponent as Info } from \"../../img/icons/info.svg\";\n\nexport const StyledSetPieceTakers = styled.section`\n width: 100%;\n margin-top: ${({ theme }) => theme.space[4]};\n margin-bottom: ${({ theme }) => theme.space[4]};\n padding: ${({ theme }) => theme.space[2]};\n`;\n\nexport const ExternalIcon = styled(BaseExternalIcon)`\n ${size(10)}\n margin-left: 0.4rem;\n fill: black;\n`;\n\nexport const NotesWrapper = styled.ul`\n margin-top: ${({ theme }) => theme.space[4]};\n`;\n\nexport const Note = styled.li`\n margin: 0 auto;\n margin-top: ${({ theme }) => theme.space[2]};\n`;\n\nexport const NoteLink = styled.a`\n display: flex;\n align-items: center;\n color: ${({ theme }) => theme.colors.primary};\n text-decoration: none;\n\n &:hover {\n color: ${({ theme }) => theme.colors.darkPink};\n text-decoration: underline;\n }\n`;\n\nexport const SetPieceTakersContent = styled.div`\n ul {\n padding-left: 2.4rem;\n }\n`;\n\nexport const TeamContentInner = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n margin-left: -10px;\n margin-right: 10px;\n }\n`;\n\nexport const SetPieceTitle = styled.h3`\n color: ${({ theme }) => theme.colors.black};\n font-size: ${({ theme }) => theme.fontSizes[1]};\n margin-bottom: ${({ theme }) => theme.space[1]};\n padding: ${({ theme }) => theme.space[1]};\n background-color: ${({ theme }) => theme.colors.offWhite};\n`;\n\nexport const Element = styled.div`\n display: flex;\n align-items: center;\n margin-top: ${({ theme }) => theme.space[2]};\n button {\n display: inline-block;\n width: auto;\n margin-right: ${({ theme }) => theme.space[1]};\n }\n`;\n\nexport const ElementName = styled.div``;\n\nexport const Group = styled.div`\n margin-bottom: 16px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n flex: 1;\n padding: 0 10px;\n }\n`;\n\nexport const StyledInfo = styled(Info)`\n ${size(22)}\n display: inline-block;\n margin-right: ${({ theme }) => theme.space[2]};\n color: ${({ theme }) => theme.colors.black};\n fill: ${({ theme }) => theme.colors.lightGrey};\n cursor: pointer;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(24)}\n }\n`;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { getElements } from \"../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport { getTeams } from \"../../core/store/teams/reducers\";\nimport { ITeam } from \"../../core/store/teams/types\";\nimport Collapsible from \"../Collapsible\";\nimport Copy from \"../Copy\";\nimport Explain from \"../Explain\";\nimport HelmetHead from \"../HelmetHead\";\nimport { Main, Wrapper } from \"../Layout\";\nimport ScoutNav from \"../scout/ScoutNav\";\nimport SubHeading from \"../SubHeading\";\nimport Title from \"../Title\";\nimport { NewTabCopy } from \"../Utils\";\nimport { reduceElementsBySetPieceTakers, reduceNotesByTeamId } from \"./helpers\";\nimport {\n Element,\n ElementName,\n ExternalIcon,\n Group,\n Note,\n NoteLink,\n NotesWrapper,\n SetPieceTakersContent,\n SetPieceTitle,\n StyledInfo,\n StyledSetPieceTakers,\n TeamContentInner,\n} from \"./styles\";\n\nexport interface INote {\n external_link: boolean;\n info_message: string;\n source_link: string;\n}\n\nexport interface INotesItem {\n id: number;\n notes: INote[];\n}\n\nexport interface IStateNotes {\n last_updated: string;\n byId: INotesById;\n}\n\nexport interface INotesById {\n [key: string]: INotesItem;\n}\n\nexport interface ISPTElement {\n id: number;\n name: string;\n order: number;\n}\n\nexport interface ISPTTeam {\n team: ITeam;\n penalties: ISPTElement[];\n direct_freekicks: ISPTElement[];\n corners_and_indirect_freekicks: ISPTElement[];\n}\n\nexport interface ISPTById {\n [key: string]: ISPTTeam;\n}\n\ntype Props = RouteComponentProps;\n\nconst SetPieceTakers: React.FC\n \n = () => {\n const reduxDispatch = useDispatch();\n const teams = useSelector(getTeams);\n const elements = useSelector(getElements);\n const [notes, setNotes] = useState({} as IStateNotes);\n\n const setPieceTakersByTeamId = useMemo(\n () => reduceElementsBySetPieceTakers(elements, teams),\n [elements, teams]\n );\n const teamsArr: ISPTTeam[] = Object.keys(setPieceTakersByTeamId)\n .map((key: string) => setPieceTakersByTeamId[key])\n .sort((a, b) => a.team.name.localeCompare(b.team.name));\n\n useEffect(() => {\n async function fetchData() {\n try {\n const res = await fetch(\"/api/team/set-piece-notes/\");\n const { last_updated, teams } = await res.json();\n setNotes({ last_updated, byId: reduceNotesByTeamId(teams) });\n } catch (error) {}\n }\n fetchData();\n }, []);\n\n const renderElements = (setPieceTypes: ISPTElement[]) => {\n if (setPieceTypes.length === 0) {\n return ;\n }\n\n return setPieceTypes\n .sort((a: ISPTElement, b: ISPTElement) => a.order - b.order)\n .map((element: ISPTElement) => (\n \n ));\n };\n\n return (\n <>\n \n \n \n );\n};\n\nexport default SetPieceTakers;\n","import SetPieceTakers from \"./SetPieceTakers\";\n\nexport default SetPieceTakers;\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 React, { useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport SaveContext from \"../../contexts/SaveContext\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\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 Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog from \"../Dialog\";\nimport {\n CheckboxField,\n FieldWrap,\n InputField,\n SelectField,\n} from \"../FieldRenderers\";\nimport { NewTabCopy } from \"../Utils\";\nimport { getCodeFromError } from \"./helpers\";\n\ninterface IProps {\n handleHide: () => void;\n}\ninterface IState extends ICreateEntryData {\n favourite_team: number;\n}\n\nconst CreateEntryDialog: React.FCNo Set-Piece Takers\n reduxDispatch(showElementSummary(element.id))}\n />\n \n {element.name}\n \n \n \n The Scout\n \n \n \n
    \n \n
    \n \n \n \n \n \n {teamsArr.map((t: ISPTTeam, index: number) => {\n return (\n \n );\n })}\n
    \n \n
    \n \n {notes.byId && notes.byId[t.team.id] && (\n \n )}\n \n \n \n \n \n \n {renderElements(t.penalties)}\n Penalties\n \n {renderElements(t.direct_freekicks)}\n Direct free-kicks\n \n {renderElements(t.corners_and_indirect_freekicks)}\n \n Corners & indirect free-kicks\n \n {notes.byId[t.team.id].notes.length > 0 &&\n notes.byId[t.team.id].notes.map(\n (note: INote, index: number) => (\n \n {note.info_message ? (\n note.source_link ? (\n \n \n \n ) : (\n \n )\n ) : null}\n \n )\n )}\n \n {note.info_message}\n \n {note.external_link && (\n \n )}\n {note.info_message}\n \n \n \n \n \n \n Set-Piece Takers Explained

    \n This table displays a list of expected set-piece takers for\n each Premier League club. It’s based on a mix of information\n gathered from last season’s matches, pre-season friendlies\n and, where appropriate, a player’s role at a previous club\n and predicted role at their new club. As the season\n progresses, the table is constantly reviewed and updated as\n new information becomes available on assigned set-piece\n takers.\n

    = ({ handleHide }) => {\n const { setSaveState } = React.useContext(SaveContext);\n const [state, setState] = useState({\n email: false,\n favourite_team: 0,\n name: \"\",\n terms_agreed: false,\n });\n\n const error = useSelector(getSquadError);\n const nextEvent = useSelector(getNextEvent);\n const teams = useSelector(getTeams);\n\n const requiredFields: Array = [\n \"favourite_team\",\n \"name\",\n \"terms_agreed\",\n ];\n\n const dispatch = useDispatch();\n\n const apiDataFromState = () => ({\n email: state.email,\n favourite_team: state.favourite_team > 0 ? state.favourite_team : null,\n name: state.name,\n terms_agreed: state.terms_agreed,\n });\n\n const handleFaveChange = (e: React.FormEvent) =>\n setState({ ...state, favourite_team: parseInt(e.currentTarget.value, 10) });\n\n const handleNameChange = (e: React.FormEvent) =>\n setState({ ...state, name: e.currentTarget.value });\n\n const handleTermsChange = (e: React.FormEvent) =>\n setState({\n ...state,\n terms_agreed: e.currentTarget.checked ? true : false,\n });\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (isValid()) {\n dispatch(createEntry(apiDataFromState()));\n setSaveState(\"initial\");\n }\n };\n\n const isValid = () => requiredFields.every((e) => Boolean(state[e]));\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\n return (\n \n );\n};\n\nexport { CreateEntryDialog as CreateEntryDialogTest };\nexport default CreateEntryDialog;\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 Game over\n \n

    \n This game has now finished. Thanks for your interest, come back soon\n to select your squad for next season's game.\n

    \n \n \n Enter squad\n \n
    \n \n \n \n {errorCode && (\n \n )}\n \n
    \n \n \n \n \n {teams.map((tm) => (\n \n {tm.name}\n \n ))}\n \n \n \n \n I agree to the{\" \"}\n \n terms and conditions\n \n \n .\n \n }\n onChange={handleTermsChange}\n checked={state.terms_agreed}\n />\n \n \n \n {errorCode === \"price_changed\" &&\n \"Unable to enter squad as player prices have changed. Please refresh the page and try again.\"}\n `\n display: inline-flex;\n align-items: center;\n padding: 0;\n border: 0;\n background-color: transparent;\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[1]};\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 { rgba } from \"polished\";\nimport React from \"react\";\nimport styled from \"styled-components/macro\";\nimport TabHeading from \"./TabHeading\";\n\nconst StyledDeadlineBar = styled.div`\n text-align: center;\n`;\n\nconst DeadlineBarInner = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${({ theme }) => theme.space[2]} 0;\n\n ::before {\n content: \"\";\n position: absolute;\n height: 1px;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n background-image: linear-gradient(\n to right,\n ${rgba(\"white\", 0)} 0%,\n ${rgba(\"white\", 0.5)} 50%,\n ${rgba(\"white\", 0)} 100%\n );\n }\n`;\n\nconst Label = styled.h4`\n margin-right: 0.4rem;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: inherit;\n }\n`;\n\nconst Deadline = styled.time`\n font-family: ${({ theme }) => theme.fonts.bold};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 1.8rem;\n }\n`;\n\ninterface IProps {\n deadlineISO: string;\n deadlineLocal: string;\n heading: string;\n label: string;\n altDeadline?: string;\n}\n\nconst DeadlineBar: React.FC\n {children}\n = ({\n deadlineISO,\n deadlineLocal,\n heading,\n label,\n altDeadline,\n}) => (\n \n);\n\nexport default DeadlineBar;\n","import { ITeamsById } from \"../../core/store/teams/types\";\nimport { INewsByFixtureId } from \"./types\";\nimport { IPulseNewsArticle, IPulseNewsArticleRefs } from \"../../utils/pulse\";\n\nexport const findTeamByKey = (\n teamsById: ITeamsById,\n key: \"id\" | \"code\" | \"short_name\" | \"name\" | \"pulse_id\",\n value: number | string\n) => {\n const filteredTeams = Object.keys(teamsById)\n .map((idx) => teamsById[idx])\n .filter((t: any) => t[key as string] === value);\n\n if (filteredTeams.length === 0) {\n return null;\n }\n\n return filteredTeams[0];\n};\n\nexport const transformNewsArticles = (\n newsArticles: IPulseNewsArticle[],\n teamsById: ITeamsById\n) => {\n return newsArticles.reduce(\n (acc: INewsByFixtureId, article: IPulseNewsArticle) => {\n if (article.references) {\n const pulseFixtureFromArticle = article.references.filter(\n (ref: IPulseNewsArticleRefs) => ref.type === \"FOOTBALL_FIXTURE\"\n )[0];\n\n const pulseClubFromArticle = article.references.filter(\n (ref: IPulseNewsArticleRefs) => ref.type === \"FOOTBALL_CLUB\"\n )[0];\n\n if (pulseClubFromArticle && pulseFixtureFromArticle) {\n const fixtureId = pulseFixtureFromArticle.id;\n if (!acc[fixtureId]) {\n acc[fixtureId] = {};\n }\n\n const ismTeam = findTeamByKey(\n teamsById,\n \"pulse_id\",\n pulseClubFromArticle.id\n );\n\n if (ismTeam) {\n const articleWithTeam = {\n ...article,\n ismTeam: {\n id: ismTeam.id,\n code: ismTeam.code,\n pulse_id: ismTeam.pulse_id,\n name: ismTeam.name,\n },\n };\n\n if (!acc[fixtureId][ismTeam.id]) {\n acc[fixtureId][ismTeam.id] = articleWithTeam;\n } else {\n const lastItem = acc[fixtureId][ismTeam.id];\n if (new Date(articleWithTeam.date) > new Date(lastItem.date)) {\n acc[fixtureId][ismTeam.id] = articleWithTeam;\n }\n }\n }\n }\n }\n\n return acc;\n },\n {}\n );\n};\n","import { darken, size } from \"polished\";\nimport Slider from \"react-slick\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as BaseExternalIcon } from \"../../img/icons/external.svg\";\nimport leftArrow from \"../../img/icons/chevron-left.svg\";\nimport rightArrow from \"../../img/icons/chevron-right.svg\";\nimport { Box } from \"rebass\";\n\nconst SLIDER_X_PADDING = \"4rem\";\n\nexport const StyledNewsTickerHeader = styled.header`\n max-width: 1220px;\n margin: 0 auto;\n`;\n\nexport const StyledNewsTickerSlider = styled.div`\n max-width: 1220px;\n margin: 0 auto;\n padding-left: ${(props) => props.theme.space[2]};\n padding-right: ${(props) => props.theme.space[2]};\n /* Same height as positioned dots */\n padding-bottom: 25px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n padding-left: 0;\n padding-right: 0;\n }\n`;\n\nexport const SliderArticles = styled.div`\n padding-left: 4px;\n padding-right: 4px;\n`;\n\nexport const SliderArticle = styled.div`\n display: flex;\n margin-bottom: 16px;\n\n &:last-child {\n margin-bottom: 0;\n }\n`;\n\nexport const StyledArticleTitle = styled.div`\n display: block;\n margin-left: 5px;\n color: #000;\n text-decoration: none;\n font-size: 11px;\n line-height: 1.4;\n`;\n\nexport const StyledArticleTitleAnchor = styled.a`\n display: block;\n margin-left: 5px;\n color: #000;\n font-size: 11px;\n cursor: pointer;\n line-height: 1.4;\n\n &:hover {\n color: ${({ theme }) => theme.colors.darkPink};\n text-decoration: underline;\n }\n`;\n\nexport const StyledSlider = styled(Slider)`\n min-height: 0px;\n min-width: 0px;\n margin-top: 5px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding: 0 ${SLIDER_X_PADDING};\n border: 1px solid #d8d8d8;\n }\n\n .slick-track {\n display: flex;\n\n .slick-slide {\n float: none;\n width: 80vw;\n height: auto;\n padding: 1rem 0 1rem;\n padding-right: 10px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-top: 1rem;\n padding-bottom: 1rem;\n padding-right: 0;\n border-right: 1px solid #efefef;\n }\n\n > div {\n height: 100%;\n border: 1px solid #d8d8d8;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n border: 0;\n }\n }\n }\n }\n\n .slick-dots {\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 100%;\n\n li {\n margin-left: 0;\n margin-right: 0;\n }\n\n li button:before {\n opacity: 1;\n font-size: 10px;\n width: 10px;\n height: 10px;\n border: 2px solid #efefef;\n border-radius: 50%;\n color: transparent;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n li.slick-active button:before {\n font-size: 10px;\n color: transparent;\n background: #efefef;\n border: none;\n }\n }\n\n .slick-prev {\n left: 0;\n\n &::before {\n background: url(${leftArrow});\n }\n }\n\n .slick-next {\n right: 0;\n\n &::before {\n background: url(${rightArrow});\n }\n }\n\n .slick-prev,\n .slick-next {\n top: 0;\n bottom: 0;\n width: ${SLIDER_X_PADDING};\n height: auto;\n transform: none;\n transition: all 0.2s;\n background-color: ${({ theme }) => theme.colors.grey};\n\n &:hover,\n &:focus {\n border-color: ${darken(0.05, \"#ebebeb\")};\n background-color: ${darken(0.05, \"#f6f6f5\")};\n }\n\n &::before {\n ${size(15, 9)};\n content: \"\";\n display: inline-block;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: 14px 24px;\n }\n\n .slick-disabled {\n cursor: default;\n\n &:hover,\n &:focus {\n border-color: #ebebeb;\n background-color: #f6f6f5;\n }\n }\n\n .slick-list,\n .slick-track {\n min-height: 0px;\n min-width: 0px;\n }\n }\n`;\n\nexport const StyledSlide = styled(Box)`\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-left: 8px;\n padding-right: 8px;\n outline: none;\n }\n`;\n\nexport const StyledSlideInner = styled.div`\n padding: 12px 8px;\n outline: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding: 0;\n border: none;\n }\n`;\n\nexport const SliderHeader = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n margin-bottom: ${({ theme }) => theme.space[2]};\n padding-bottom: ${({ theme }) => theme.space[2]};\n border-bottom: 1px solid ${({ theme }) => theme.colors.grey};\n`;\n\nexport const Hashtag = styled.h3`\n margin: 0;\n color: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.bold};\n margin: 0 ${({ theme }) => theme.space[2]};\n text-transform: uppercase;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n font-size: 1.4em;\n }\n`;\n\nexport const LogoWrapper = styled.div``;\n\nexport const ExternalIcon = styled(BaseExternalIcon)`\n ${size(8)}\n margin-left: 0.4rem;\n fill: ${({ theme }) => theme.colors.darkGrey};\n`;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\n// Components\nimport { Box } from \"rebass\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport \"slick-carousel/slick/slick.css\";\nimport {\n getCurrentEvent,\n getEventsById,\n getNextEvent,\n} from \"../../core/store/events/reducers\";\n// Types\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getFixturesByEvent } from \"../../core/store/fixtures/reducers\";\n// Actions\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { formatRawAsISO, formatRawAsLocal } from \"../../core/utils/datetime\";\nimport theme from \"../../theme\";\nimport { fetchNewsArticles } from \"../../utils/pulse\";\nimport Badge from \"../Badge\";\nimport DeadlineBar from \"../DeadlineBar\";\nimport { NewTabCopy } from \"../Utils\";\nimport { transformNewsArticles } from \"./helpers\";\nimport {\n ExternalIcon,\n Hashtag,\n LogoWrapper,\n SliderArticle,\n SliderArticles,\n SliderHeader,\n StyledArticleTitle,\n StyledArticleTitleAnchor,\n StyledNewsTickerHeader,\n StyledNewsTickerSlider,\n StyledSlide,\n StyledSlideInner,\n StyledSlider,\n} from \"./styles\";\nimport { INewsByFixtureId } from \"./types\";\n\nconst SLICK_SETTINGS = {\n className: \"ism-top-element-carousel\",\n infinite: true,\n dots: true,\n speed: 500,\n slidesToShow: 3,\n slidesToScroll: 3,\n responsive: [\n {\n breakpoint: theme.breakpointsArray[4],\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n },\n },\n {\n breakpoint: theme.breakpointsArray[1],\n settings: {\n variableWidth: true,\n arrows: false,\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n ],\n};\n\ntype Props = {\n eventId?: number;\n};\n\nconst NewsTicker: React.FunctionComponent\n \n \n \n \n {typeof altDeadline === \"string\" ? (\n \n ) : (\n \n )}\n {altDeadline}{deadlineLocal} = ({ eventId }) => {\n const teamsById = useSelector(getTeamsById);\n const eventsById = useSelector(getEventsById);\n const currentEvent = useSelector(getCurrentEvent);\n const nextEvent = useSelector(getNextEvent);\n const fixturesByEvent = useSelector(getFixturesByEvent);\n\n let localEventId = 0;\n if (eventId) {\n localEventId = eventId;\n } else if (nextEvent) {\n localEventId = nextEvent.id;\n } else if (currentEvent) {\n localEventId = currentEvent.id;\n }\n\n const fixtures = useMemo(\n () => fixturesByEvent[localEventId] || [],\n [fixturesByEvent, localEventId]\n );\n\n const event = eventsById[localEventId];\n\n const [news, setNewsData] = useState({});\n const enoughFixtures = Object.keys(fixtures).length >= 4;\n const fixturesWithNews = fixtures.reduce(\n (acc, f) =>\n f.pulse_id &&\n news[f.pulse_id] &&\n (news[f.pulse_id][f.team_h] || news[f.pulse_id][f.team_a])\n ? acc + 1\n : acc,\n 0\n );\n const enoughNews = fixturesWithNews >= 4;\n\n useEffect(() => {\n async function fetchNewsData(event: IEvent) {\n try {\n // Create the referenceExpression from pulse fixture ids\n const referenceExpression = fixtures.map(\n (fixture) => `\"FOOTBALL_FIXTURE:${fixture.pulse_id}\"`\n );\n\n // Fetch news articles for all fixtures\n const rawNewsArticles = await fetchNewsArticles(\n referenceExpression.join(\"or\")\n );\n\n // Transform them into an object we can easily use:\n // { [fixture.id] : { [team.id]...newsArticle } }\n const transformedNewsArticles = transformNewsArticles(\n rawNewsArticles,\n teamsById\n );\n\n setNewsData(transformedNewsArticles);\n } catch (error) {\n console.error(error);\n }\n }\n if (event && enoughFixtures) {\n fetchNewsData(event);\n }\n }, [event, teamsById, enoughFixtures, fixtures]);\n\n if (!event || !enoughFixtures || !enoughNews) {\n return null;\n }\n\n return (\n \n );\n};\n\nexport default NewsTicker;\n","import NewsTicker from \"./NewsTicker\";\n\nexport default NewsTicker;\n","import { rgba } from \"polished\";\nimport * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport Title from \"./Title\";\n\nconst StyledPageHeader = styled.div`\n padding: 0 ${({ theme }) => theme.space[2]};\n\n @media (max-width: ${({ theme }) => theme.breakpoints[3]}) {\n position: relative;\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: ${({ theme }) => theme.space[4]};\n\n ::before {\n content: \"\";\n position: absolute;\n height: 1px;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n background-image: linear-gradient(\n to right,\n ${rgba(\"white\", 0)} 0%,\n #efefef 50%,\n ${rgba(\"white\", 0)} 100%\n );\n }\n\n ${Title} {\n border-bottom: 0;\n margin-bottom: 0;\n }\n }\n`;\ninterface IProps {\n children: React.ReactNode;\n title: React.ReactNode;\n}\n\nconst PageHeader: React.FC
    \n \n \n
    \n \n \n {event && (\n \n )}\n \n \n \n {fixtures.map((fixture) => {\n const homeTeamObj = teamsById[fixture.team_h];\n const awayTeamObj = teamsById[fixture.team_a];\n\n // If there is no team found for that fixtureId\n if (!homeTeamObj || !awayTeamObj) {\n return false;\n }\n\n // If there is no news articles for a fixture\n if (\n !fixture.pulse_id ||\n !news[fixture.pulse_id] ||\n !(\n news[fixture.pulse_id][homeTeamObj.id] ||\n news[fixture.pulse_id][awayTeamObj.id]\n )\n ) {\n return false;\n }\n\n const homeTeamArticle = news[fixture.pulse_id][homeTeamObj.id];\n const awayTeamArticle = news[fixture.pulse_id][awayTeamObj.id];\n return (\n \n );\n })}\n \n \n \n \n \n \n \n \n \n \n \n {`#${homeTeamObj.short_name}${awayTeamObj.short_name}`}\n \n \n <>\n {homeTeamArticle && (\n \n )}\n {awayTeamArticle && (\n \n )}\n \n \n \n {homeTeamArticle.hotlinkUrl ? (\n <>\n
    \n
    \n \n {homeTeamArticle.title}\n \n \n \n \n ) : (\n \n )}\n \n {homeTeamArticle.title}\n \n \n {awayTeamArticle.hotlinkUrl ? (\n <>\n
    \n
    \n \n {awayTeamArticle.title}\n \n \n \n \n ) : (\n \n )}\n \n {awayTeamArticle.title}\n = ({ children, title }) => (\n \n);\n\nexport default PageHeader;\n","export const getElementRole = (elementType: number) =>\n elementType === 5 ? \"Manager\" : \"Player\";\n","import { integerToMoney } from \"../core/utils/money\";\n\nexport const integerToMoneyWithCurrency = (int: number, divisor: number) =>\n `£${integerToMoney(int, divisor)}m`;\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components/macro\";\n\ninterface IStyledPitch {\n pitch: string;\n}\n\nexport interface IElementName {\n copnr: number | null;\n}\n\nconst StyledPitch = styled.div\n \n {children}\n {title}`\n min-height: 330px;\n border-radius: 6px;\n background: url(${(props) => props.pitch}) no-repeat center top;\n background-size: 574px 460px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n min-height: 524px;\n padding-top: 5px;\n background-size: 860px 690px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n min-height: 690px;\n background-size: 1122px 900px;\n }\n`;\n\nexport const ElementRow = styled.div`\n display: flex;\n justify-content: center;\n margin: auto;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n max-width: 420px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n max-width: 620px;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n max-width: none;\n }\n`;\n\nexport const PitchRow = styled(ElementRow)`\n padding-bottom: 0.3rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n padding-bottom: 2.8rem;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-bottom: 4.5rem;\n\n &:last-child {\n padding-bottom: 1.5rem;\n }\n }\n`;\n\nexport const PitchUnit = styled.div`\n flex: 0 1 25%;\n min-height: 7.6rem;\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\n// BenchRow is independent of ElementRow because we want the gradient full width\nexport const BenchRow = styled.div`\n padding: ${({ theme }) => theme.space[2]} 0 ${({ theme }) => theme.space[2]};\n background: linear-gradient(\n to bottom,\n transparent 50%,\n ${({ theme }) => theme.colors.offWhite} 50%\n );\n`;\n\n// InnerBenchRow is constrained by max-width irrespective of manager or not\nexport const InnerBenchRow = styled.div`\n display: flex;\n margin: auto;\n max-width: fit-content;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n gap: ${({ theme }) => theme.space[1]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n gap: ${({ theme }) => theme.space[3]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n gap: ${({ theme }) => theme.space[3]};\n }\n`;\n\n// BenchContentWrap can be used for both Manager and Bench units\nexport const BenchContentWrap = styled.div`\n display: flex;\n flex-direction: column-reverse;\n justify-content: center;\n gap: ${({ theme }) => theme.space[2]};\n flex: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n gap: ${({ theme }) => theme.space[3]};\n }\n`;\n\ninterface IProps {\n sponsor: string;\n}\n\nconst Pitch: React.FC = ({ children, sponsor }) => {\n let [pitchSrc, setPitchSrc] = useState(\"\");\n\n useEffect(() => {\n import(`../img/pitches/pitch-${sponsor}.svg`).then((src) => {\n setPitchSrc(src.default);\n });\n }, [sponsor]);\n\n return (\n \n );\n};\n\nexport default Pitch;\n","import { rgba } from \"polished\";\nimport styled from \"styled-components/macro\";\n\nconst SaveBar = styled.div`\n display: flex;\n gap: 4px;\n padding: ${({ theme }) => `0 ${theme.space[2]} ${theme.space[4]}`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n gap: 12px;\n position: relative;\n padding-right: 20%;\n padding-left: 20%;\n\n ::after {\n content: \"\";\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 1px;\n background-image: linear-gradient(\n to right,\n ${({ theme }) => rgba(theme.colors.lightGrey, 0)},\n ${({ theme }) => theme.colors.lightGrey},\n ${({ theme }) => rgba(theme.colors.lightGrey, 0)}\n );\n }\n }\n`;\n\nexport default SaveBar;\n","import { ThunkResult } from \"..\";\nimport { apiGet, apiPost } from \"../../utils/api\";\nimport { getElementsById } from \"../elements/reducers\";\nimport { getNextEvent } from \"../events/reducers\";\nimport { getPlayerData } from \"../player/reducers\";\nimport { getPotentialChips } from \"./reducers\";\nimport * as actions from \"./actions\";\nimport { toUpdateChipAPI } from \"../my-team/reducers\";\nimport { IMyTeamData } from \"../my-team/types\";\n\nexport const chipActivationHandle =\n (chipName: string | null): ThunkResult\n {children}\n > =>\n // chip name should be provided that you wish to play\n // if null is passed, that would result in a chip being\n // cancelled\n async (dispatch, getState) => {\n const potentialChips = getPotentialChips(getState());\n const player = getPlayerData(getState());\n\n if (!player || !player.entry) {\n return;\n }\n\n const chip = potentialChips.find((chip) => chip.name === chipName);\n const pendingChip = potentialChips.find((chip) => chip.is_pending);\n\n if (\n (pendingChip && pendingChip.chip_type === \"transfer\" && !chip) ||\n (chip && chip.chip_type === \"transfer\")\n ) {\n const nextEvent = getNextEvent(getState());\n if (!nextEvent) {\n return;\n }\n try {\n await apiPost(\n \"transfers/\",\n {\n chip: chipName,\n entry: player.entry,\n event: nextEvent.id,\n transfers: [],\n },\n dispatch,\n actions.saveChipTransfer\n );\n await apiGet(\n `my-team/${player.entry}/`,\n dispatch,\n actions.fetchChipState,\n { elementsById: getElementsById(getState()) }\n );\n } catch (e) {\n // Handle error if needed\n return;\n }\n } else if (!chip || chip.chip_type === \"team\") {\n try {\n await apiPost(\n `my-team/${player.entry}/`,\n {\n chip: chipName,\n picks: toUpdateChipAPI(getState()),\n },\n dispatch,\n actions.saveChipTeam,\n { elementsById: getElementsById(getState()) }\n );\n } catch (e) {\n // Handle error if needed\n return;\n }\n }\n };\n","import styled, { css } from \"styled-components/macro\";\nimport { IChipButtonProps } from \"./types\";\n\nexport const StyledChipButton = styled.button`\n padding: ${({ theme }) => `1.3rem ${theme.space[5]}`};\n border: 0;\n border-radius: ${({ theme }) => theme.radii[2]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n cursor: pointer;\n\n ${(props) =>\n props.variant === \"play\" &&\n css`\n background: linear-gradient(to right, #0ae5ff, #42a2ff);\n color: ${({ theme }) => theme.colors.primary};\n `}\n\n ${(props) =>\n props.variant === \"cancel\" &&\n css`\n background: ${({ theme }) => theme.colors.red};\n color: ${({ theme }) => theme.colors.white};\n `}\n`;\n","import { StyledChipButton } from \"./styles\";\nimport { IChipButtonProps } from \"./types\";\n\nconst ChipButton: React.FC = ({\n children,\n variant = \"play\",\n onClick,\n handleHide,\n disabled,\n}) => (\n \n {children}\n \n);\n\nexport default ChipButton;\n","import styled from \"styled-components/macro\";\n\nexport const StyledChipBadge = styled.img`\n display: block;\n margin: 5px auto 2px;\n`;\n","import { IChipBadgeProps } from \"./types\";\nimport { StyledChipBadge } from \"./styles\";\n\nconst ChipBadge: React.FC = ({ path, sizes }) => (\n \n);\n\nexport default ChipBadge;\n","var _rect, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCloseChipDialog(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\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: 32,\n height: 32,\n rx: 16,\n fill: \"white\",\n fillOpacity: 0.24\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.7429 10.2571C21.4 9.91429 20.8857 9.91429 20.5429 10.2571L16 14.8L11.4571 10.2571C11.1143 9.91429 10.6 9.91429 10.2571 10.2571C9.91429 10.6 9.91429 11.1143 10.2571 11.4571L14.8 16L10.2571 20.5429C9.91429 20.8857 9.91429 21.4 10.2571 21.7429C10.4286 21.9143 10.6 22 10.8571 22C11.1143 22 11.2857 21.9143 11.4571 21.7429L16 17.2L20.5429 21.7429C20.7143 21.9143 20.9714 22 21.1429 22C21.3143 22 21.5714 21.9143 21.7429 21.7429C22.0857 21.4 22.0857 20.8857 21.7429 20.5429L17.2 16L21.7429 11.4571C22.0857 11.1143 22.0857 10.6 21.7429 10.2571Z\",\n fill: \"white\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCloseChipDialog);\nexport default __webpack_public_path__ + \"static/media/closeChipDialog.61238942.svg\";\nexport { ForwardRef as ReactComponent };","import { hideVisually, rgba } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ReactComponent as Close } from \"../../../img/icons/closeChipDialog.svg\";\nimport { IDialogBodyProps, IDialogWarningStyles } from \"./types\";\n\nexport const CloseIcon = styled(Close)`\n fill: ${({ theme }) => theme.colors.white};\n`;\n\nexport const CloseLabel = styled.span`\n ${hideVisually}\n`;\n\nexport const CloseButton = styled.button`\n padding: ${({ theme }) => theme.space[3]};\n border: 0;\n background-color: transparent;\n cursor: pointer;\n`;\n\nexport const CloseButtonWrap = styled.div`\n position: absolute;\n right: 0;\n top: 0;\n`;\n\nexport const StyledHeader = styled.div`\n position: relative;\n padding: 26px 0;\n @media (max-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: 16px 0;\n }\n`;\n\nexport const DialogTitle = styled.h2`\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 3rem;\n text-align: center;\n line-height: 45px;\n letter-spacing: -4%;\n\n ${(props) =>\n props.$showWarning &&\n css`\n margin-top: 4rem;\n `}\n\n @media (max-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 2rem;\n }\n`;\n\nexport const DialogCopy = styled.div`\n font-size: ${({ theme }) => theme.fontSizes[3]};\n text-align: center;\n line-height: 24px;\n letter-spacing: -4%;\n @media (max-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: ${({ theme }) => theme.fontSizes[2]};\n }\n`;\n\nexport const 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 border-radius: ${({ theme }) => theme.radii[1]};\n background-image: linear-gradient(\n ${({ theme }) => rgba(theme.colors.white, 0.3)},\n ${({ theme }) => rgba(theme.colors.white, 0.8)}\n );\n`;\n\nexport const StyledDialog = styled.dialog`\n z-index: ${(props) => props.theme.zIndex.dialog};\n max-width: 90%;\n max-height: 90%;\n padding: 0;\n border: 0;\n border-radius: ${({ theme }) => theme.space[4]};\n /* Ugly hack to deal with sub-pixel rounding in chrome bug causing blurry content with transform */\n width: 700px;\n background-color: ${({ theme }) => theme.colors.purpleDark};\n color: ${({ theme }) => theme.colors.white};\n box-shadow: ${({ theme }) =>\n `0 12px 24px 0 ${rgba(theme.colors.white, 0.25)}`};\n letter-spacing: -0.04em;\n`;\n\nexport const StyledDialogBody = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.space[5]};\n max-height: calc(90vh - 200px);\n margin: ${({ theme }) => `0 ${theme.space[3]} ${theme.space[3]}`};\n padding: ${({ theme }) => `${theme.space[5]} ${theme.space[3]}`};\n border-radius: ${({ theme }) => theme.space[3]};\n background-color: ${({ theme }) => rgba(theme.colors.white, 0.08)};\n text-align: center;\n overflow-y: auto;\n\n @media (max-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: ${({ theme }) =>\n `${theme.space[1]} ${theme.space[1]} ${theme.space[3]}`};\n gap: ${({ theme }) => theme.space[1]};\n }\n`;\n\nexport const ButtonWrap = styled.div`\n margin: auto;\n`;\n\nexport const StyledDialogWarning = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.red};\n border-top-left-radius: ${({ theme }) => theme.space[3]};\n border-top-right-radius: ${({ theme }) => theme.space[3]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 2rem;\n\n @media (max-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: ${({ theme }) => theme.fontSizes[2]};\n }\n`;\n","import React, { useEffect, useRef } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"../../OverflowScrolling.css\";\nimport ChipBadge from \"../ChipBadge\";\nimport {\n ButtonWrap,\n CloseButton,\n CloseButtonWrap,\n CloseIcon,\n CloseLabel,\n DialogCopy,\n DialogTitle,\n Overlay,\n StyledDialog,\n StyledDialogBody,\n StyledDialogWarning,\n StyledHeader,\n} from \"./styles\";\nimport {\n IChipDialogHeaderProps,\n IChipDialogWarningProps,\n IDialogBodyProps,\n IProps,\n} from \"./types\";\n\nexport const ChipDialogBody: React.FC = ({\n children,\n title,\n chip,\n chipId,\n chipAction,\n showWarning,\n warningValue,\n}) => {\n return (\n \n );\n};\n\nconst DialogWarning: React.FC\n {showWarning && }\n \n \n {chip && chipId && chipAction && (\n \n )}\n {warningValue}\n {title}\n {children}{chipAction(chip, chipId)} = ({ children }) => {\n return ;\n};\n\nexport const ChipDialogHeader: React.FC{children} = ({\n closeDialog,\n chip,\n}) => {\n return (\n \n );\n};\n\nconst ChipDialog = ({\n children,\n closeDialog,\n focusable = \"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}: IProps) => {\n const docref = useRef\n \n \n \n \n \n close\n \n (null);\n const focusReturn = document.activeElement as HTMLElement;\n\n const isVisible = (elem: HTMLElement) =>\n !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n\n const handleTab = (e: KeyboardEvent) => {\n const docRef = docref.current;\n const focusedItem = document.activeElement;\n if (docRef) {\n const focusableItems = Array.prototype.slice\n .call(docRef.querySelectorAll(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 const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n closeDialog(e);\n } else if (e.key === \"Tab\") {\n handleTab(e);\n }\n };\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeydown);\n const docRef = docref.current;\n if (docRef) {\n const focusElement = docRef.querySelector(focusable) as HTMLElement;\n if (focusElement) {\n focusElement.focus();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n if (focusReturn) {\n if (focusReturn.focus) {\n focusReturn.focus();\n }\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOutsideMouseClick = (e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n closeDialog(e);\n e.stopPropagation();\n }\n };\n\n return ReactDOM.createPortal(\n ) => {\n e.stopPropagation();\n handleOutsideMouseClick(e);\n }}\n role=\"presentation\"\n >\n \n \n \n ,\n document.getElementById(\"root-dialog\") as HTMLElement\n );\n};\n\nexport default ChipDialog;\n","import { rgba } from \"polished\";\nimport styled, { css } from \"styled-components/macro\";\nimport { ChevronRight } from \"../../icons/Chevrons\";\n\nexport interface IChipCardStyles {\n chipStatus:\n | \"available\"\n | \"proposed\"\n | \"active\"\n | \"cancelled\"\n | \"unavailable\"\n | \"played\"\n | \"info\";\n $fullWidth?: boolean;\n}\n\nexport interface IChipCardBadgeProps {\n blue1x?: string;\n purple1x?: string;\n}\n\nexport const ChipCardTitle = styled.span`\n margin: auto;\n padding: 0 ${({ theme }) => theme.space[2]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1rem;\n letter-spacing: -0.4px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: 0;\n }\n`;\n\nexport const CardButton = styled.button
    \n {children}\n
    `\n display: flex;\n flex-direction: column;\n flex: auto;\n gap: 0.4rem;\n padding: 2px;\n border: none;\n border-radius: 4px;\n background-color: ${({ theme }) => rgba(theme.colors.white, 0.5)};\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);\n cursor: pointer;\n\n ${({ chipStatus, theme }) =>\n (chipStatus === \"active\" || chipStatus === \"proposed\") &&\n css`\n background: ${theme.colors.primary};\n color: ${theme.colors.white};\n `}\n\n ${(props) =>\n props.chipStatus === \"unavailable\" &&\n css`\n opacity: 0.5;\n `};\n`;\n\nexport const ChipLabel = styled.span`\n display: block;\n padding: 3px 2px;\n border-radius: ${({ theme }) => theme.radii[0]};\n background: linear-gradient(to right, #0ae5ff, #42a2ff);\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1rem;\n color: ${({ theme }) => theme.colors.primary};\n letter-spacing: -0.4px;\n\n ${({ chipStatus, theme }) =>\n (chipStatus === \"active\" || chipStatus === \"proposed\") &&\n css`\n background: ${theme.colors.purple70};\n color: ${theme.colors.white};\n `}\n\n ${({ chipStatus, theme }) =>\n chipStatus === \"played\" &&\n css`\n background: ${rgba(theme.colors.white, 0)};\n color: ${theme.colors.primary};\n font-family: ${theme.fonts.regular};\n `};\n\n ${({ chipStatus, theme }) =>\n chipStatus === \"info\" &&\n css`\n background: ${rgba(theme.colors.white, 1)};\n color: ${theme.colors.primary};\n font-family: ${theme.fonts.bold};\n `};\n\n ${({ $fullWidth }) =>\n $fullWidth &&\n css`\n width: 100%;\n `};\n`;\n\nexport const Card = styled.li`\n display: inherit;\n flex: 0 1 100%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n flex: 1 0 100px;\n }\n`;\n\nexport const ChevronRightIcon = styled(ChevronRight)`\n width: 10px;\n height: 10px;\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n width: 8px;\n height: 8px;\n }\n`;\n\nexport const ChipLabelWrap = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n align-self: stretch;\n gap: ${({ theme }) => theme.space[0]};\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n gap: ${({ theme }) => theme.space[1]};\n }\n`;\n","import * as React from \"react\";\nimport { getShortNameFromId } from \"../../../utils/events\";\nimport ChipBadge from \"../ChipBadge\";\nimport {\n Card,\n CardButton,\n ChevronRightIcon,\n ChipCardTitle,\n ChipLabel,\n ChipLabelWrap,\n} from \"./styles\";\nimport { IChipCardProps } from \"./types\";\n\nconst ChipCard: React.FC = ({ chip, onClick, title }) => {\n const chipStatus = chip.status_for_entry !== \"active\" ? \"Inactive\" : \"\";\n const chipLabelText = () => {\n switch (chip.status_for_entry) {\n case \"unavailable\":\n return \"Unavailable\";\n case \"proposed\":\n return \"Pending\";\n case \"active\":\n if (chip.is_pending) {\n return \"Pending\";\n }\n return \"Active\";\n case \"cancelled\":\n case \"available\":\n return \"Play\";\n case \"played\":\n const eventsPlayed = chip.played_by_entry.map((id) =>\n getShortNameFromId(id, true)\n );\n return (\n <>\n {\"Played \"}\n {eventsPlayed.length > 1\n ? eventsPlayed.join(\", \")\n : `GW${eventsPlayed[0]}`}\n \n );\n default:\n return \"\";\n }\n };\n\n return (\n \n );\n};\n\nexport default ChipCard;\n","import styled, { css } from \"styled-components/macro\";\nimport Link from \"../../Link\";\nimport { IStyledChipList } from \"./types\";\n\nconst ChipLabelStyles = css`\n background: ${({ theme }) => theme.colors.purple70};\n border-radius: ${({ theme }) => theme.radii[2]};\n padding: ${({ theme }) => `13px ${theme.space[5]}`};\n font-family: ${({ theme }) => theme.fonts.regular};\n`;\n\nexport const StyledChipList = styled.ul\n \n \n \n \n \n {title}\n \n {chip.name === \"managerplaceholder\" ? \"Info\" : chipLabelText()}\n \n {chip.status_for_entry === \"played\" && }\n `\n display: flex;\n justify-content: center;\n gap: 0.3rem;\n padding: ${(props) =>\n props.$chipsShown === \"transfer\" ? \"0\" : `${props.theme.space[2]} 0`};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n gap: ${({ theme }) => theme.space[1]};\n padding: ${(props) =>\n props.$chipsShown === \"transfer\" ? \"0\" : `${props.theme.space[2]} 40%`};\n }\n`;\n\nexport const ChipLabel = styled.div`\n ${ChipLabelStyles}\n`;\n\nexport const ChipLink = styled(Link)`\n ${ChipLabelStyles}\n\n :hover::after {\n display: none;\n }\n`;\n\nexport const ChipButtonWrap = styled.div`\n display: flex;\n gap: 12px;\n`;\n\nexport const ChipCardLink = styled(Link)`\n display: inherit;\n flex: 0 1 100%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n flex: 1 0 100px;\n }\n\n :hover::after {\n display: none;\n }\n`;\n","import React, { Fragment, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState } from \"../../../core/store\";\nimport {\n getActiveOrProposedTeamChipName,\n getChipsById,\n getPotentialChips,\n} from \"../../../core/store/chips/reducers\";\nimport { chipActivationHandle } from \"../../../core/store/chips/thunks\";\nimport { IPotentialChip } from \"../../../core/store/chips/types\";\nimport { getEntry } from \"../../../core/store/entries/reducers\";\nimport {\n getCurrentEvent,\n getEventsById,\n} from \"../../../core/store/events/reducers\";\nimport { getMyPicksProposed } from \"../../../core/store/my-team/reducers\";\nimport { getPlayerData } from \"../../../core/store/player/reducers\";\nimport { ILoggedInPlayer } from \"../../../core/store/player/types\";\nimport { getTransferState } from \"../../../core/store/squad/reducers\";\nimport { formatRawAsLocal } from \"../../../core/utils/datetime\";\nimport { getChipName } from \"../../../utils/chips\";\nimport ChipButton from \"../../Chips/ChipButton\";\nimport ChipDialog, {\n ChipDialogBody,\n ChipDialogHeader,\n} from \"../../Chips/ChipDialog/ChipDialog\";\nimport Copy from \"../../Copy\";\nimport DialogManager from \"../../DialogManager\";\nimport ChipCard from \"../ChipCard\";\nimport {\n ChipButtonWrap,\n ChipCardLink,\n ChipLabel,\n StyledChipList,\n} from \"./styles\";\nimport { IChipList } from \"./types\";\n\nconst ChipList: React.FC = ({ chipsShown = \"all\" }) => {\n const [showModalConfirmation, setShowModalConfirmation] = useState(false);\n\n const player = useSelector(\n (state: RootState) => getPlayerData(state) as ILoggedInPlayer\n );\n const entry = useSelector((state: RootState) =>\n getEntry(state, player.entry)\n );\n const chipInPlayName = useSelector(getActiveOrProposedTeamChipName);\n const allChips = useSelector(getChipsById);\n const potentialChips = useSelector(getPotentialChips);\n const eventsById = useSelector(getEventsById);\n const picks = useSelector(getMyPicksProposed);\n const transferState = useSelector(getTransferState);\n const now = useSelector(getCurrentEvent);\n\n const dispatch = useDispatch();\n\n const activateChip = (name: string) => dispatch(chipActivationHandle(name));\n const deactivateChip = () => dispatch(chipActivationHandle(null));\n\n const handlePlayClick = (chipName: string, handleHide: () => void) => {\n let askConfirmation = false;\n if (chipName === \"freehit\") {\n askConfirmation = transferState ? transferState.made > 0 : false;\n } else if (chipName === \"wildcard\") {\n askConfirmation =\n transferState && transferState.limit ? transferState.made > 1 : false;\n }\n\n if (!askConfirmation) {\n activateChip(chipName);\n handleHide();\n setShowModalConfirmation(false);\n } else {\n setShowModalConfirmation(true);\n }\n };\n\n const handleConfirmClick = (chipName: string) => {\n setShowModalConfirmation(false);\n activateChip(chipName);\n };\n\n const handleCancelClick = () => {\n setShowModalConfirmation(false);\n deactivateChip();\n };\n\n if (!entry || !picks.length) {\n return null;\n }\n\n const getSortedChips = () => {\n const chipsByName = potentialChips.reduce>(\n (acc, c) => {\n acc[c.name] = c;\n return acc;\n },\n {}\n );\n const sortedChipNames = [\n ...(chipsShown === \"all\" ? [\"bboost\", \"3xc\"] : []),\n \"wildcard\",\n \"freehit\",\n \"manager\",\n ];\n\n // filter because transfers chips aren't returned pre-rollover\n return sortedChipNames\n .filter((name) => chipsByName[name])\n .map((name) => chipsByName[name]);\n };\n\n const renderTransferChipAction = (\n chip: IPotentialChip,\n id: string,\n handleHide: () => void\n ) => {\n if (!entry || chip.name === \"managerplaceholder\") {\n return null;\n }\n\n switch (chip.status_for_entry) {\n case \"available\":\n return (\n \n );\n case \"unavailable\":\n return ;\n case \"active\":\n if (chip.is_pending) {\n return (\n \n {showModalConfirmation ? (\n <>\n {\n handleConfirmClick(chip.name);\n handleHide();\n }}\n aria-describedby={id}\n >\n Confirm\n \n\n {\n handleCancelClick();\n handleHide();\n }}\n aria-describedby={id}\n >\n Cancel\n \n \n ) : (\n {\n handlePlayClick(chip.name, handleHide);\n }}\n aria-describedby={id}\n >\n Play Chip\n \n )}\n Unavailable {\n handleHide();\n deactivateChip();\n }}\n aria-describedby={id}\n >\n Cancel\n \n );\n }\n return ;\n default:\n return \"\";\n }\n };\n\n const renderChipAction = (\n c: IPotentialChip,\n id: string,\n handleHide: () => void\n ) => {\n if (!entry) {\n return null;\n }\n\n switch (c.status_for_entry) {\n case \"available\":\n return (\n Active {\n handleHide();\n activateChip(c.name);\n }}\n aria-describedby={id}\n >\n Play Chip\n \n );\n\n case \"unavailable\":\n return ;\n case \"proposed\":\n return (\n Unavailable {\n handleHide();\n deactivateChip();\n }}\n aria-describedby={id}\n >\n Cancel\n \n );\n case \"active\":\n return (\n {\n handleHide();\n deactivateChip();\n }}\n aria-describedby={id}\n >\n Cancel\n \n );\n case \"cancelled\":\n return (\n {\n handleHide();\n activateChip(c.name);\n }}\n disabled={Boolean(chipInPlayName)}\n aria-describedby={id}\n >\n Activate\n \n );\n default:\n return \"\";\n }\n };\n\n const managerChip = Object.values(allChips).find((c) => c.name === \"manager\");\n const isBeforeManagerChipAvailable =\n now && managerChip && now.id < managerChip.start_event - 1;\n\n const managerDescription = (\n \n );\n\n const chipDescriptions: { [key: string]: React.ReactNode } = {\n bboost: (\n \n ),\n \"3xc\": (\n \n ),\n freehit: (\n \n ),\n manager: managerDescription,\n managerplaceholder: managerDescription,\n wildcard: (\n \n ),\n };\n\n const managerChipPlaceholder: IPotentialChip = {\n status_for_entry: \"available\",\n played_by_entry: [],\n name: \"managerplaceholder\",\n number: 1,\n start_event: 1,\n stop_event: 38,\n chip_type: \"transfer\",\n is_pending: false,\n id: 5,\n };\n\n return (\n \n );\n};\n\nexport { ChipList as ChipListTest };\n\nexport default ChipList;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst StyledScoreboardPanel = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: end;\n align-items: center;\n flex: 1;\n align-content: center;\n margin: ${({ theme }) => `${theme.space[4]} ${theme.space[1]}`};\n padding: 0;\n text-align: center;\n cursor: default;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n justify-content: center;\n margin: ${({ theme }) => theme.space[4]} 0;\n padding: ${({ theme }) => `${theme.space[2]} 0`};\n\n :not(:last-child)::after {\n content: \"\";\n position: absolute;\n top: ${({ theme }) => theme.space[4]};\n right: 0;\n bottom: ${({ theme }) => theme.space[4]};\n width: 1px;\n background-color: #eaeaea;\n }\n }\n`;\n\nconst Heading = styled.h3`\n margin: 0 0 0.4rem;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n text-decoration: none;\n &[title] {\n cursor: default;\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 Value = styled.div\n \n \n \n {isBeforeManagerChipAvailable && (\n \n )}\n

    \n Add a manager to your team to score points for three consecutive\n gameweeks.\n

    \n The Assistant Manager chip can be used once a season. Your initial\n manager selection will not cost a transfer. Any further manager\n transfers will either cost a free transfer or -4 points if you do not\n have a free transfer available.\n

    \n This chip cannot be cancelled once you activate it and confirm a manager\n transfer.\n

    \n \n

    \n Available from {eventsById[managerChip!.start_event].name}.\n \n \n \n

    \n The points scored by your benched players in a Gameweek will be added\n to your total.\n

    It can be cancelled at anytime before the Gameweek deadline.

    \n \n \n

    \n The points scored by your captain will be tripled instead of doubled\n in a Gameweek.\n

    It can be cancelled at anytime before the Gameweek deadline.

    \n {showModalConfirmation ? (\n \n ) : (\n <>\n \n \n \n )}\n

    \n \n

    \n You have already made a transfer this Gameweek so you will not be\n able to cancel this chip once played.\n

    \n Make unlimited free transfers for a single Gameweek. In the next\n Gameweek, your squad will return to how it was at the start of the\n last Gameweek.\n

    \n This chip cannot be cancelled after you play it, unless you have\n not yet made a transfer this Gameweek.\n

    \n {showModalConfirmation ? (\n \n ) : (\n <>\n \n \n \n \n \n )}\n

    \n \n

    \n You have already made a transfer this Gameweek so you will not be\n able to cancel this chip once played.\n

    \n Make unlimited permanent transfers in a Gameweek without incurring\n the usual 4 point cost for each.\n

    \n {`You lose the first Wildcard after the Gameweek 19 deadline, ${formatRawAsLocal(\n eventsById[19].deadline_time\n )}.`}\n

    {`The second Wildcard will be available after ${formatRawAsLocal(\n eventsById[19].deadline_time\n )}.`}

    \n This chip cannot be cancelled if you have made 2 or more transfers\n this Gameweek. Once the chip status has changed from “Pending” to\n “Active”, the activation cannot be cancelled or reversed.\n

    \n {[\n ...getSortedChips(),\n ...(isBeforeManagerChipAvailable ? [managerChipPlaceholder] : []),\n ].map((c) => {\n const chipId = `ism-${c.name}`;\n return (\n \n );\n })}\n \n {c.status_for_entry === \"played\" ? (\n \n \n \n ) : (\n (\n <>\n \n {showDialog && (\n \n )}\n \n )}\n />\n )}\n \n \n \n c.chip_type === \"transfer\"\n ? renderTransferChipAction(c, chipId, handleHide)\n : renderChipAction(c, chipId, handleHide)\n }\n chip={c}\n chipId={chipId}\n >\n {chipDescriptions[c.name]}\n \n `\n display: inline-block;\n width: 100%;\n padding: 3px 2px;\n border-radius: ${({ theme }) => theme.radii[0]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[1]};\n\n ${(props) =>\n props.isError &&\n css`\n background-color: ${props.theme.colors.red};\n color: ${props.theme.colors.white};\n `}\n\n ${(props) =>\n props.isSuccess &&\n css`\n background-color: ${props.theme.colors.green};\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: fit-content;\n padding: ${({ theme }) => `0.3rem ${theme.space[4]}`};\n border-radius: ${({ theme }) => theme.radii[2]};\n font-size: 2rem;\n }\n`;\n\ninterface IScoreboardPanel {\n heading: string;\n value: string;\n onClick?: () => void;\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 onClick,\n}) => (\n \n);\n","import { rgba } from \"polished\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport {\n getActiveChip,\n getActiveChipName,\n} from \"../../core/store/chips/reducers\";\nimport { getElementTypesBySquadPosition } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesBySquadPosition } from \"../../core/store/element-types/types\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport {\n getErrors,\n getFreeTransfersRemaining,\n getProposedElements,\n getToSpend,\n getTransferCosts,\n} from \"../../core/store/squad/reducers\";\nimport { IProposedElements, ISquadErrors } from \"../../core/store/squad/types\";\nimport { formatRawAsISO, formatRawAsLocal } from \"../../core/utils/datetime\";\nimport { integerToMoney } from \"../../core/utils/money\";\nimport Alert from \"../Alert\";\nimport ChipList from \"../Chips/ChipList\";\nimport DeadlineBar from \"../DeadlineBar\";\nimport { ScoreboardPanel } from \"../Scoreboard\";\n\nconst ScoreboardPanelsWrap = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n display: flex;\n }\n`;\n\nconst ChipListWrap = styled.div`\n position: relative;\n margin: ${({ theme }) => `${theme.space[4]} 0 ${theme.space[2]} `};\n padding: 0;\n text-align: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex: 1 0 40%;\n margin: ${({ theme }) => theme.space[4]} 0;\n padding: 0 ${({ theme }) => theme.space[2]};\n }\n`;\n\nconst ScoreboardPanels = styled.div`\n display: flex;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n flex: 1 0 60%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n }\n`;\n\nconst ScoreboardWrap = styled.div`\n margin: 0 0.8rem 1.2rem;\n padding: 0 0.8rem;\n border-radius: ${({ theme }) => theme.radii[1]};\n background: ${rgba(\"white\", 0.6)};\n box-shadow: 0 8px 12px 0 ${rgba(\"#6b6b6b\", 0.32)};\n text-align: center;\n`;\n\nconst ScoreboardPanelWrap = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 1.5rem;\n padding: 0 ${({ theme }) => theme.space[1]};\n`;\n\ninterface IBasicProps {\n currencyDivisor: number;\n elementTypesByPosition: IElementTypesBySquadPosition;\n isBudgetExceeded: boolean;\n isNeedElements: boolean;\n nextEvent: IEvent | null;\n proposedElements: IProposedElements;\n toSpend: number;\n}\n\nconst Basic: React.FC\n \n \n {heading}\n {value}\n = ({\n currencyDivisor,\n elementTypesByPosition,\n isBudgetExceeded,\n isNeedElements,\n nextEvent,\n proposedElements,\n toSpend,\n}) => (\n \n);\n\nconst UnlimitedTransfers: React.FC\n {nextEvent && (\n \n )}\n \n \n \n \n = (props) => {\n if (!props.nextEvent) {\n return null;\n }\n return (\n <>\n \n \n \n );\n};\n\ninterface ICostProps {\n activeChipName: string;\n currencyDivisor: number;\n freeTransfersRemaining: number;\n isBudgetExceeded: boolean;\n nextEvent: IEvent | null;\n toSpend: number;\n transferCosts: number;\n isNeedElements: boolean;\n proposedElements: IProposedElements;\n elementTypesByPosition: IElementTypesBySquadPosition;\n}\n\nconst Cost: React.FC\n \n \n \n

    \n You can make unlimited free transfers before the{\" \"}\n {props.nextEvent.name} deadline\n

    = ({\n activeChipName,\n currencyDivisor,\n freeTransfersRemaining,\n isBudgetExceeded,\n nextEvent,\n toSpend,\n transferCosts,\n proposedElements,\n isNeedElements,\n elementTypesByPosition,\n}) => {\n const freeTranfersRemainingValue =\n activeChipName === \"wildcard\" || activeChipName === \"freehit\"\n ? \"Unlimited\"\n : `${freeTransfersRemaining}`;\n const budgetValue = `${integerToMoney(toSpend, currencyDivisor)}`;\n const transferCoststValue = `${transferCosts} pts`;\n const playersSelectedValue = `${Object.keys(proposedElements).length} / ${\n Object.keys(elementTypesByPosition).length\n }`;\n\n return (\n \n );\n};\ninterface IOwnProps {\n scoreboard: string;\n}\n\ninterface IPropsFromState {\n activeChipName: string;\n currencyDivisor: number;\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n errors: ISquadErrors;\n freeTransfersRemaining: number;\n nextEvent: IEvent | null;\n proposedElements: IProposedElements;\n toSpend: number;\n transferCosts: number;\n}\n\ntype Props = IOwnProps & IPropsFromState;\n\nclass Scoreboard extends React.Component\n {nextEvent && (\n \n )}\n\n \n \n \n \n \n \n \n \n \n \n 0}\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 \"unlimitedTransfers\":\n return (\n \n );\n case \"cost\":\n return (\n \n );\n default:\n return null;\n }\n }\n}\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const activeChip = getActiveChip(state);\n return {\n activeChipName: getActiveChipName(state),\n currencyDivisor: 10,\n elementTypesByPosition: getElementTypesBySquadPosition(\n state,\n undefined,\n activeChip?.id\n ),\n errors: getErrors(state, undefined, activeChip?.id),\n freeTransfersRemaining: getFreeTransfersRemaining(state),\n nextEvent: getNextEvent(state),\n proposedElements: getProposedElements(state, undefined, activeChip?.id),\n toSpend: getToSpend(state, undefined, activeChip?.id),\n transferCosts: getTransferCosts(state),\n };\n};\n\nexport default connect(mapStateToProps)(Scoreboard);\n","import styled from \"styled-components/macro\";\n\nexport const ElementType = styled.abbr`\n display: block;\n color: ${(props) => props.theme.colors.white};\n text-align: center;\n font-family: ${(props) => props.theme.fonts.bold};\n font-size: ${(props) => props.theme.fontSizes[0]};\n line-height: 1;\n text-decoration: none;\n\n /* Reset ism.css */\n &[title] {\n cursor: inherit;\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n font-family: ${(props) => props.theme.fonts.bold};\n\n &::after {\n content: attr(title);\n }\n }\n`;\n\nexport const ElementTypeShort = styled.span`\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n display: none;\n }\n`;\n","import { ElementType, ElementTypeShort } from \"./styles\";\nimport { IElementTypeLabel } from \"./types\";\n\nconst ElementTypeLabel = ({ elementType }: IElementTypeLabel) => (\n \n \n \n);\n\nexport default ElementTypeLabel;\n","import { rgba } from \"polished\";\nimport * as React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { IElementType } from \"../../core/store/element-types/types\";\nimport { ReactComponent as AddPersonBase } from \"../../img/icons/add-person.svg\";\nimport ElementTypeLabel from \"../ElementTypeLabel\";\nimport { PitchCard, PitchCardButton, PitchElementWrap } from \"../PitchCard\";\n\nexport const AddPerson = styled(AddPersonBase)`\n display: inline-block;\n vertical-align: middle;\n fill: ${(props) => props.theme.colors.white};\n`;\n\nconst StyledPitchPlaceholder = styled(PitchCard)`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: ${(props) => props.theme.space[1]};\n margin: auto;\n padding: ${(props) => props.theme.space[1]};\n border-color: ${(props) => rgba(props.theme.colors.white, 0.3)};\n color: ${(props) => props.theme.colors.white};\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n padding: ${(props) => props.theme.space[3]};\n }\n`;\n\ninterface IProps {\n elementType: IElementType;\n onClick: () => void;\n}\n\nconst PitchPlaceholder: React.FC{elementType.singular_name_short} = ({ elementType, onClick }) => (\n \n);\n\nexport default PitchPlaceholder;\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgRemove(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 10,\n height: 10,\n fill: \"currentColor\",\n viewBox: \"0 0 10 10\",\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: \"M1.167.562a1.105 1.105 0 0 0 0 1.562L3.77 4.728 1.167 7.333a1.105 1.105 0 0 0 1.562 1.562l2.604-2.604 2.605 2.604A1.105 1.105 0 0 0 9.5 7.333L6.896 4.728 9.5 2.124A1.105 1.105 0 0 0 7.937.562L5.333 3.166 2.73.562a1.105 1.105 0 0 0-1.562 0Z\",\n clipRule: \"evenodd\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgRemove);\nexport default __webpack_public_path__ + \"static/media/remove.c8d043a9.svg\";\nexport { ForwardRef as ReactComponent };","import { useSelector } from \"react-redux\";\nimport { getTeamsById } from \"../../../core/store/teams/reducers\";\nimport { getSuffixFromId } from \"../../../utils/fixtures\";\nimport { IFixtureForElement } from \"./types\";\n\nconst FixtureForElement = ({ fixture, element }: IFixtureForElement) => {\n const teamsById = useSelector(getTeamsById);\n const isHome = element.team === fixture.team_h;\n const suffix = getSuffixFromId(fixture.id, isHome);\n const team = isHome ? teamsById[fixture.team_a] : teamsById[fixture.team_h];\n return (\n \n );\n};\n\nexport default FixtureForElement;\n","import styled from \"styled-components/macro\";\nimport { IElementMultiPoints } from \"./types\";\n\nexport const ElementMultiPoints = styled.div\n \n \n \n \n \n \n \n {team.short_name} {suffix}\n `\n font-size: 1rem;\n`;\n","import { useSelector } from \"react-redux\";\nimport { RootState } from \"../../core/store\";\nimport {\n getElement,\n getElementsEventDataById,\n} from \"../../core/store/elements/reducers\";\nimport { getFixturesForEventByTeam } from \"../../core/store/fixtures/reducers\";\nimport FixtureForElement from \"../FixturesForElement/FixtureForElement\";\nimport { ElementMultiPoints } from \"./styles\";\nimport { IElementPoints } from \"./types\";\n\nexport const ElementPoints = ({ eventId, pick }: IElementPoints) => {\n const fixturesForEventByTeam = useSelector((state: RootState) =>\n getFixturesForEventByTeam(state, eventId)\n );\n const element = useSelector((state: RootState) =>\n getElement(state, pick.element)\n );\n const elementsEventDataById = useSelector((state: RootState) =>\n element ? getElementsEventDataById(state, eventId) : null\n );\n\n if (!element || !elementsEventDataById) {\n return null;\n }\n\n const elementEventData = elementsEventDataById[element.id];\n\n const explainList = elementEventData.explain;\n const totalPoints =\n elementEventData.stats.total_points * Math.max(pick.multiplier, 1);\n\n if (explainList.length === 1) {\n return <>{totalPoints};\n }\n\n const ElementFixtures = fixturesForEventByTeam[element.team];\n const allFixturesStarted = ElementFixtures.every((f) => f.started);\n let fragments: React.ReactNode[] = [];\n let started = 0;\n\n elementEventData.explain.forEach((e) => {\n const fixture = ElementFixtures.find((f) => f.id === e.fixture);\n if (fixture) {\n if (!fixture.started) {\n fragments.push(\n \n );\n } else {\n started++;\n }\n }\n });\n if (started) {\n fragments.unshift(totalPoints);\n }\n const MultiPoints = fragments.reduce((result, item) => (\n \n ));\n\n return <>{MultiPoints};\n};\n\nexport default ElementPoints;\n","import styled from \"styled-components/macro\";\n\nexport const ElementSingleFixture = styled.span`\n font-size: 0.9rem;\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n font-size: 1rem;\n }\n`;\n\nexport const ElementMultiFixtures = styled.span`\n display: block;\n padding-top: 0.2rem;\n padding-bottom: 0.1rem;\n font-size: 0.7rem;\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n padding: 0;\n font-size: 1rem;\n }\n`;\n","import { useSelector } from \"react-redux\";\nimport { RootState } from \"../../core/store\";\nimport { getElement } from \"../../core/store/elements/reducers\";\nimport {\n getElementEventOpponents,\n getFixturesForEventByTeam,\n} from \"../../core/store/fixtures/reducers\";\nimport { ElementMultiFixtures, ElementSingleFixture } from \"./styles\";\nimport { IMultiProps } from \"./types\";\n\nconst FixturesForElement = ({ elementId, eventId }: IMultiProps) => {\n const element = useSelector((state: RootState) =>\n getElement(state, elementId)\n );\n const fixturesForEventByTeam = useSelector((state: RootState) =>\n eventId ? getFixturesForEventByTeam(state, eventId) : null\n );\n\n const fixtures =\n element && fixturesForEventByTeam\n ? fixturesForEventByTeam[element.team]\n : [];\n\n const elementEventOpponents = useSelector((state: RootState) =>\n fixtures?.length && element\n ? getElementEventOpponents(state, element, fixtures)\n : []\n );\n\n if (!element || !fixturesForEventByTeam) {\n return null;\n }\n\n if (elementEventOpponents.length === 1) {\n return (\n \n );\n }\n\n if (elementEventOpponents.length > 1) {\n return (\n \n );\n }\n\n return ;\n};\nexport default FixturesForElement;\n","import { useSelector } from \"react-redux\";\nimport { RootState } from \"../../core/store\";\nimport { getElement } from \"../../core/store/elements/reducers\";\nimport ElementPoints from \"../ElementPoints\";\nimport FixturesForElement from \"../FixturesForElement\";\nimport { StyledElementFixtureBar } from \"./styles\";\nimport { IElementFixtureBar } from \"./types\";\n\nconst ElementFixtureBar = ({\n elementFixtures,\n eventId,\n isStarted,\n pick,\n}: IElementFixtureBar) => {\n const element = useSelector((state: RootState) =>\n getElement(state, pick.element)\n );\n\n if (!element) {\n return null;\n }\n\n if (!elementFixtures.length || !eventId) {\n return ;\n }\n\n const isLive = elementFixtures.some(\n (fixture) => !fixture.finished_provisional && fixture.started\n );\n\n const isFinished = elementFixtures.every(\n (fixture) => fixture.finished_provisional\n );\n\n if (isStarted) {\n return (\n \n );\n }\n\n return (\n \n );\n};\n\nexport default ElementFixtureBar;\n","import { size } from \"polished\";\nimport * as React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getActiveChip } from \"../../core/store/chips/reducers\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { getElement } from \"../../core/store/elements/reducers\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ReactComponent as Remove } from \"../../img/icons/remove.svg\";\nimport Badge from \"../Badge\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport { StyledElementFixtureBar } from \"../ElementFixtureBar\";\nimport ElementPhoto from \"../ElementPhoto\";\nimport ElementShirt from \"../ElementShirt\";\nimport ElementTypeLabel from \"../ElementTypeLabel\";\nimport FixturesForElement from \"../FixturesForElement\";\nimport {\n AddPerson,\n BadgeWrap,\n ElementCost,\n ElementName,\n InfoControl,\n PitchCardButton,\n PitchElementData,\n PitchElementIconsWrap,\n PitchElementWrap,\n RemovedElement,\n StyledPitchElement,\n} from \"../PitchCard\";\nimport { UnstyledButton, VisuallyHidden } from \"../Utils\";\n\nconst RemoveIcon = styled.span`\n display: block;\n padding: 2px;\n border-radius: 50%;\n background-color: ${(props) => props.theme.colors.primary};\n\n @media (min-width: ${(props) => props.theme.breakpoints[1]}) {\n padding: 3px;\n }\n`;\n\nconst Cross = styled(Remove)`\n ${size(6)}\n display: block;\n fill: ${(props) => props.theme.colors.white};\n\n @media (min-width: ${(props) => props.theme.breakpoints[1]}) {\n ${size(8)}\n }\n\n @media (min-width: ${(props) => props.theme.breakpoints[4]}) {\n ${size(10)}\n }\n`;\n\ninterface IProps {\n actionMe: () => void;\n elementId: number;\n elementValue: React.ReactNode;\n isRemoved?: boolean;\n renderElementMenu: () => void;\n}\n\nconst SquadPitchElement: React.FC\n {result}\n {\", \"}\n {item}\n {elementEventOpponents[0]}\n {elementEventOpponents.join(\", \")}\n
    -
    -\n \n \n \n = ({\n actionMe,\n elementId,\n elementValue,\n isRemoved,\n renderElementMenu,\n}) => {\n const chip = useSelector(getActiveChip);\n const element = useSelector((state: RootState) =>\n getElement(state, elementId)\n );\n const elementTypesById = useSelector((state: RootState) =>\n getElementTypesById(state, undefined, chip?.id)\n );\n const nextEvent = useSelector(getNextEvent);\n const teamsById = useSelector(getTeamsById);\n\n if (!element) {\n return null;\n }\n\n const elementType = elementTypesById[element.element_type];\n\n const copnr = element.chance_of_playing_next_round;\n const team = teamsById[element.team];\n\n return (\n \n );\n};\n\nexport default SquadPitchElement;\n","import * as React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState } from \"../../core/store\";\nimport { getActiveChip } from \"../../core/store/chips/reducers\";\nimport { getElementTypesBySquadPosition } from \"../../core/store/element-types/reducers\";\nimport { updateElementTypeControl } 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 PitchPlaceholder from \"./PitchPlaceholder\";\nimport SquadPitchElement from \"./SquadPitchElement\";\n\ninterface ISquadPitchUnit {\n pos: number;\n elementValue: React.ReactNode;\n renderElementMenu: (pos: number) => void;\n showSidebar: () => void;\n}\n\nconst SquadPitchUnit = ({\n elementValue,\n pos,\n renderElementMenu,\n showSidebar,\n}: ISquadPitchUnit) => {\n const chip = useSelector(getActiveChip);\n const elementTypesByPosition = useSelector((state: RootState) =>\n getElementTypesBySquadPosition(state, undefined, chip?.id)\n );\n const proposedElements = useSelector((state: RootState) =>\n getProposedElements(state, undefined, chip?.id)\n );\n const savedPicks = useSelector(getSavedPicks);\n\n const dispatch = useDispatch();\n\n const showElementType = (elementTypeId: number) => {\n dispatch(updateElementTypeControl(elementTypeId));\n showSidebar();\n };\n\n if (!elementTypesByPosition) {\n return null;\n }\n return (\n <>\n {proposedElements[pos] ? (\n \n {isRemoved ? (\n \n ) : (\n <>\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n {element.web_name}\n \n \n \n \n \n \n {element.element_type === 5 ? (\n {elementValue}\n ) : (\n \n )}\n \n \n \n \n \n {element.web_name}\n \n \n
    \n \n \n {element.element_type === 5 && (\n \n )}\n
    \n \n \n \n \n \n \n Remove player\n \n \n \n dispatch(removeElement(pos))}\n elementId={proposedElements[pos].id}\n elementValue={elementValue}\n renderElementMenu={() => renderElementMenu(pos)}\n />\n ) : savedPicks[pos] ? (\n dispatch(restoreElement(pos))}\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\nexport default SquadPitchUnit;\n","import * as React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\nimport {\n getActiveChip,\n getPotentialChips,\n} from \"../../core/store/chips/reducers\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport {\n showElementSummary,\n updateElementTypeControl,\n} from \"../../core/store/elements/thunks\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { IPick } from \"../../core/store/my-team/types\";\nimport { resetLastChange } from \"../../core/store/squad/actions\";\nimport {\n canAutocomplete,\n canReset,\n getErrors,\n getLastChange,\n getProposedElements,\n getSavedPicks,\n getSquadMode,\n} from \"../../core/store/squad/reducers\";\nimport {\n autoComplete,\n removeElement,\n reset,\n restoreElement,\n} from \"../../core/store/squad/thunks\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { getElementRole } from \"../../utils/element-type\";\nimport { integerToMoneyWithCurrency } from \"../../utils/money\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport DialogManager from \"../DialogManager\";\nimport { PatternWrapMain } from \"../GraphicPatterns\";\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\";\n// import ShirtSoonAlert from \"../ShirtSoonAlert\";\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\nconst CreateSquad: React.FC = ({\n listTable,\n scoreboard,\n showSidebar,\n submitDialog,\n}) => {\n const [positionForMenu, setPositionForMenu] = React.useState(0);\n\n const activeChip = useSelector(getActiveChip);\n const canUserAutocomplete = useSelector((state: RootState) =>\n canAutocomplete(state, undefined, activeChip?.id)\n );\n const canUserReset = useSelector(canReset);\n const currencyDivisor = 10;\n const elementsById = useSelector((state: RootState) =>\n getElementsById(state, undefined, activeChip?.id)\n );\n const errors = useSelector((state: RootState) =>\n getErrors(state, undefined, activeChip?.id)\n );\n const lastChange = useSelector(getLastChange);\n const mode = useSelector(getSquadMode);\n const proposedElements = useSelector((state: RootState) =>\n getProposedElements(state, undefined, activeChip?.id)\n );\n const savedPicks = useSelector(getSavedPicks);\n const settings = useSelector((state: RootState) =>\n getSettings(state, undefined, activeChip?.id)\n );\n const teamsById = useSelector(getTeamsById);\n const chips = useSelector(getPotentialChips);\n\n const dispatch = useDispatch();\n\n const autoPick = () => {\n if (!dispatch(autoComplete())) {\n // We should do something :-)\n window.console.log(\"Failed to autocomplete\");\n }\n };\n\n const handleShowMenuForElement = (position: number) =>\n setPositionForMenu(position);\n\n const handleHideMenuForElement = () => setPositionForMenu(0);\n\n const handleRemoveElement = (position: number) => {\n handleHideMenuForElement();\n dispatch(removeElement(position));\n };\n\n const handleReset = () => dispatch(reset());\n\n const handleRestoreElement = (position: number) => {\n handleHideMenuForElement();\n dispatch(restoreElement(position));\n };\n\n const handleShowElementType = (elementType: number) => {\n handleHideMenuForElement();\n dispatch(updateElementTypeControl(elementType));\n showSidebar();\n };\n\n const showDialog = (element: IElement) => {\n dispatch(showElementSummary(element.id));\n handleHideMenuForElement();\n };\n\n const renderMenu = () => {\n let element: IElement | undefined;\n let mode: \"remove\" | \"restore\" | undefined;\n if (proposedElements[positionForMenu]) {\n element = proposedElements[positionForMenu];\n mode = \"remove\";\n } else if (savedPicks[positionForMenu]) {\n element = elementsById[savedPicks[positionForMenu].element];\n mode = \"restore\";\n }\n if (!mode || !element) {\n return null;\n }\n\n return (\n \n );\n };\n\n const renderElementValueForPosition = (pos: number) => {\n const element: IElement = proposedElements[pos];\n const pick: IPick | undefined = savedPicks[pos];\n // Initial element selection (squad selection)\n if (!pick && element) {\n return integerToMoneyWithCurrency(element.now_cost, currencyDivisor);\n }\n // Removed element (transfers)\n if (pick && !element) {\n return integerToMoneyWithCurrency(pick.selling_price, currencyDivisor);\n }\n // Original element (transfers)\n if (pick && element && pick.element === element.id) {\n return integerToMoneyWithCurrency(pick.selling_price, currencyDivisor);\n }\n // Replaced element (transfers)\n if (pick && element && pick.element !== element.id) {\n return integerToMoneyWithCurrency(element.now_cost, currencyDivisor);\n }\n return null;\n };\n\n React.useEffect(() => {\n dispatch(resetLastChange());\n }, [dispatch]);\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: handleShowMenuForElement,\n elementValue: 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: showDialog,\n renderElementMenu: handleShowMenuForElement,\n });\n\n const submitButtonText = {\n selection: \"Enter Squad\",\n transfers: \"Make Transfers\",\n };\n\n const managerChip = chips.find((c) => c.name === \"manager\");\n\n const getPositionsByElementType = () => {\n const defaultPositionsByElementType: Record\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 handleRemoveElement(positionForMenu)}\n width={1}\n variant=\"secondary\"\n >\n Remove {getElementRole(element.element_type)}\n \n \n handleRestoreElement(positionForMenu)}\n width={1}\n variant=\"secondary\"\n >\n Restore {getElementRole(element.element_type)}\n \n \n handleShowElementType(element!.element_type)}\n width={1}\n >\n Select Replacement\n \n \n showDialog(element as IElement)}\n width={1}\n variant=\"tertiary\"\n >\n {getElementRole(element.element_type)} Information\n \n \n has been\n added to your squad\n {elementsById[lastChange.element].web_name}\n has been\n removed from your squad\n {elementsById[lastChange.element].web_name} = {\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 managerChip?.status_for_entry === \"active\"\n ? { ...defaultPositionsByElementType, \"5\": [16] }\n : defaultPositionsByElementType;\n };\n\n const positionsByElementType = getPositionsByElementType();\n\n return (\n \n );\n};\n\nexport default CreateSquad;\n","import React from \"react\";\nimport { connect, ConnectedProps } from \"react-redux\";\nimport { RootState } from \"../../core/store\";\nimport {\n getElementControls,\n getTeamFilterOptions,\n getElementTypeFilterOptions,\n} from \"../../core/store/elements/reducers\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport { FieldWrap, Option, SelectField } from \"../FieldRenderers\";\nimport { getActiveChip } from \"../../core/store/chips/reducers\";\n\nconst mapState = (state: RootState) => {\n const activeChip = getActiveChip(state);\n return {\n controls: getElementControls(state),\n elementTypeFilterOptions: getElementTypeFilterOptions(\n state,\n undefined,\n activeChip?.id\n ),\n teamFilterOptions: getTeamFilterOptions(state),\n player: getPlayerData(state),\n };\n};\n\nconst connector = connect(mapState, {});\n\ntype PropsFromRedux = ConnectedProps
    \n {settings && (\n \n )}\n \n {renderMenu()}\n
    \n \n

    \n Select a maximum of {settings.squad_team_limit} players from a\n single team or 'Auto Pick' if you're short of time.\n

    \n \n \n \n
    \n {latestAction && latestAction}\n {errors.overTeamLimit && (\n \n )}\n
    \n Too many players selected from{\" \"}\n \n \n {errors.overTeamLimit\n .map((team) => teamsById[team].name)\n .join(\", \")}\n \n \n \n \n \n \n \n \n {Object.keys(positionsByElementType).map((et) => (\n \n ))}\n \n {positionsByElementType[et].map((pos) => (\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 return (\n <>\n \n {showDialog && submitDialog(handleHide)}\n \n );\n }}\n />\n \n \n Auto Pick\n \n \n Reset\n \n \n {submitButtonText[mode]}\n \n ;\n\ntype Props = PropsFromRedux & {\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 teamFilterOptions,\n } = this.props;\n return (\n \n );\n }\n}\n\nexport { ElementFilter as ElementFilterTest };\n\nexport default connector(ElementFilter);\n","import React from \"react\";\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 { FieldWrap, Option, SelectField } from \"../FieldRenderers\";\nimport { getStatNames, getStatDetails } from \"../../utils/stats\";\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 {teamFilterOptions.map((o) => (\n \n {o.label}\n \n ))}\n ;\n\ninterface ISortOption {\n label: string;\n value: keyof IElement;\n}\n\ntype Props = PropsFromRedux & {\n handleSortChange: (e: React.ChangeEvent) => void;\n sortOptions?: ISortOption[];\n};\n\nclass ElementSort extends React.Component {\n public getSortOptions = (): ISortOption[] =>\n getStatNames().map((s) => ({\n label: getStatDetails(s)!.label,\n value: s,\n }));\n\n public render() {\n const {\n controls,\n handleSortChange,\n sortOptions = this.getSortOptions(),\n } = this.props;\n return (\n \n );\n }\n}\n\nexport { ElementSort as ElementSortTest };\n\nexport default connector(ElementSort);\n","import { hideVisually, size, rgba } 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 padding: 9px 10px;\n border: 0;\n border-radius: 50%;\n box-shadow: 0 2px 4px ${rgba(\"black\", 0.35)};\n background-color: white;\n color: ${({ theme }) => theme.colors.darkPink};\n cursor: pointer;\n\n ${(props) =>\n props.disabled &&\n css`\n background-color: #e2e2e2;\n color: ${props.theme.colors.darkGrey};\n `}\n\n ${(props) =>\n props.isSmall &&\n css`\n padding-top: 10px;\n padding-bottom: 10px;\n\n svg {\n ${size(8, 14)}\n }\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 { Flex } from \"rebass/styled-components\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport {\n ChevronDoubleLeft,\n ChevronDoubleRight,\n ChevronLeft,\n ChevronRight,\n} from \"../icons/Chevrons\";\nimport PaginatorButton from \"../paginator/PaginatorButton\";\n\nexport const paginate = (\n elements: IElement[],\n page: number,\n pageSize: number\n) => {\n const start = (page - 1) * pageSize;\n return {\n data: elements.slice(start, start + pageSize),\n totalPages: Math.ceil(elements.length / pageSize),\n };\n};\n\ninterface IProps {\n page: number;\n setPage: (page: number) => void;\n totalPages: number;\n}\n\nconst Paginator: React.FunctionComponent{label} = ({\n page,\n setPage,\n totalPages,\n}) => (\n \n);\n\nexport default Paginator;\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 { BorderedCell, ElementRow } from \"./ElementTable\";\n\nconst StyledElementListRow = styled(ElementRow)\n setPage(1)}\n label=\"First\"\n disabled={page === 1}\n isSmall={true}\n >\n \n \n setPage(page - 1)}\n label=\"Previous\"\n disabled={page === 1}\n >\n \n \n \n
    \n of {totalPages}\n
    {page} setPage(page + 1)}\n label=\"Next\"\n disabled={page === totalPages}\n >\n \n \n setPage(totalPages)}\n label=\"Last\"\n disabled={page === totalPages}\n isSmall={true}\n >\n \n \n `\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\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 { Box, Flex } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getActiveChip } from \"../../core/store/chips/reducers\";\nimport { IPotentialChip } from \"../../core/store/chips/types\";\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 { getElementRole } from \"../../utils/element-type\";\nimport Alert from \"../Alert\";\nimport BoldLinkButton from \"../BoldLinkButton\";\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, Option, SearchField, SelectField } from \"../FieldRenderers\";\nimport { PatternWrap } from \"../GraphicPatterns\";\nimport { ControlArrowLeft } from \"../icons/Arrows\";\nimport SubHeading from \"../SubHeading\";\nimport TabHeading from \"../TabHeading\";\n\nconst Form = styled.form`\n padding: 0 ${({ theme }) => theme.space[3]};\n`;\n\nconst ElementsShown = styled.p`\n margin: 3rem ${({ theme }) => theme.space[1]} 2.4rem;\n padding: 0.6rem;\n border-radius: 12px;\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\n font-size: ${({ theme }) => theme.fontSizes[0]};\n line-height: 1;\n text-align: center;\n\n strong {\n color: ${({ theme }) => theme.colors.primary};\n }\n`;\n\nconst ElementTypeButtonWrap = styled.div`\n margin: 0 ${({ theme }) => theme.space[2]};\n border-top: 1px solid ${({ theme }) => theme.colors.lightGrey};\n`;\n\nconst ElementTypeButton = styled.button`\n padding: 0;\n border: 0;\n background-color: transparent;\n font-family: ${({ theme }) => theme.fonts.bold};\n line-height: 1;\n cursor: pointer;\n`;\n\nconst ElementListStatus = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 14%;\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 ButtonWrap = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: none;\n }\n`;\n\ninterface IPropsFromState {\n activeChip: IPotentialChip | null;\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 {integerToMoney(element.now_cost, currencyDivisor)}\n \n {isMoneyStat(sort)\n ? integerToMoney(element[sort] as number, currencyDivisor)\n : element[sort]}\n \n \n \n \n \n ;\n hideSidebar: () => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch;\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 if (!element) {\n return null;\n }\n\n const proposedElement = this.props.proposedElementsById[element.id];\n const roomInSquad = this.props.typesNeeded[element.element_type];\n\n let alert = null;\n if (\n element.element_type === 5 &&\n this.props.activeChip?.name !== \"manager\"\n ) {\n alert = (\n \n );\n } else 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 } = this.props;\n const { data, totalPages } = this.paginateAndGroup(elements.data, 30);\n return (\n \n );\n }\n}\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const activeChip = getActiveChip(state);\n return {\n activeChip,\n controls: getElementControls(state),\n currencyDivisor: 10,\n elementTypes: getElementTypes(state, undefined, activeChip?.id), // Use activeChip here\n elementTypesById: getElementTypesById(state, undefined, activeChip?.id),\n elements: getElementsFromControls(state),\n proposedElementsById: getProposedElementsById(\n state,\n undefined,\n activeChip?.id\n ),\n teamsById: getTeamsById(state),\n typesNeeded: getTypesNeeded(state, undefined, activeChip?.id),\n };\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 connect(mapStateToProps, mapDispatchToProps)(ElementList);\n","import React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { css } from \"styled-components/macro\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport BoldLinkButton from \"../BoldLinkButton\";\nimport Fixtures from \"../Fixtures\";\nimport LatestAlert from \"../LatestAlert\";\nimport { Main, Wrapper } from \"../Layout\";\nimport NewsTicker from \"../NewsTicker\";\nimport PageHeader from \"../PageHeader\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport CreateSquad, { IListTableProps } from \"./CreateSquad\";\nimport ElementList from \"./ElementList\";\n\nconst PusherWrap = styled.div`\n overflow-x: hidden;\n`;\n\ninterface IPusher {\n isSidebarVisible: boolean;\n}\n\nconst Pusher = styled.div\n You must have the Assistant Manager chip active to transfer in a\n manager\n \n You already have the maximum number of{\" \"}\n {this.props.elementTypesById[element.element_type].plural_name}\n \n is already in your squad\n {element.web_name}\n \n {alert && alert}\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 variant=\"secondary\"\n >\n Remove {getElementRole(proposedElement.element_type)}\n \n ) : (\n this.addElement(element.id)}\n disabled={Boolean(!roomInSquad)}\n width={1}\n variant=\"secondary\"\n >\n Add {getElementRole(element.element_type)}\n \n )}\n \n this.showDialog(element)}\n width={1}\n variant=\"tertiary\"\n >\n {getElementRole(element.element_type)} Information\n \n \n \n \n \n \n Player Selection\n \n \n \n Back\n \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 {range(elements.maxCost, elements.minCost - 1, -5).map((cost) => (\n \n {integerToMoney(cost, 10)}\n \n ))}\n \n \n \n \n players shown\n {elements.data.length}
    \n \n \n
    \n \n showElementType(et.id)}>\n \n \n \n \n \n \n \n \n \n \n \n {data[et.id].map((e) => (\n  \n  \n £**\n this.handleShowMenuForElement(e)\n }\n renderElementDialog={() => this.showDialog(e)}\n team={teamsById[e.team]}\n currencyDivisor={currencyDivisor}\n sort={controls.sort}\n />\n ))}\n \n \n `\n 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: 2rem 0;\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 headTags: React.ReactNode;\n listTable: (listTableProps: IListTableProps) => void;\n nextEvent: IEvent | null;\n scoreboard: string;\n submitDialog: (handleHide: () => void) => React.ReactNode;\n title: React.ReactNode;\n}\n\nconst SquadBase: React.FC = ({\n headTags,\n listTable,\n nextEvent,\n scoreboard,\n submitDialog,\n title,\n}) => {\n const [isSidebarVisible, setIsSidebarVisible] =\n React.useState(false);\n\n const showRef = React.createRef();\n const hideRef = React.createRef();\n\n const handleShowSidebar = () => setIsSidebarVisible(true);\n const handleHideSidebar = () => setIsSidebarVisible(false);\n\n const handleTransitionEnd = (e: React.TransitionEvent) => {\n // Just handle the Pusher transition\n if (e.target === e.currentTarget) {\n isSidebarVisible ? hideRef.current!.focus() : showRef.current!.focus();\n }\n };\n\n return (\n <>\n \n \n );\n};\n\nexport default SquadBase;\n","import * as React from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\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 {\n getElementEventOpponents,\n getFixturesForNextEventByTeam,\n} 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 { BorderedCell, ElementRow, ElementTable } from \"../ElementTable\";\nimport TabHeading from \"../TabHeading\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\n\nconst FilterElTypeButton = styled.button`\n padding: 10px 0 9px;\n border: 0;\n background-color: transparent;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.3rem;\n white-space: normal;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\nconst SquadListStatus = styled.th`\n width: 10%;\n`;\n\nconst SquadListElement = styled.th`\n width: 34%;\n`;\n\nconst SquadListCost = styled.th`\n width: 13%;\n`;\n\nconst SquadListSelected = styled.th`\n width: 14%;\n`;\n\nconst SquadListPoints = styled.th`\n width: 10%;\n`;\n\nconst SquadListFixture = styled.th`\n width: 19%;\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 {headTags}\n \n \n \n \n \n
    \n
    \n \n \n \n \n \n \n Player List\n \n \n \n \n \n {nextEvent && \n \n }\n \n \n = ({\n elementTypesByPosition,\n proposedElements,\n pos,\n renderElementMenu,\n showElementType,\n teamsById,\n fixturesForNextEventByTeam,\n}) => {\n const element = proposedElements[pos];\n const fixtures = element ? fixturesForNextEventByTeam[element.team] : [];\n const elementEventOpponents = useSelector((state: RootState) =>\n fixtures.length && element\n ? getElementEventOpponents(state, element, fixtures)\n : []\n );\n\n if (!elementTypesByPosition) {\n return null;\n }\n\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 positions: number[];\n renderElementMenu: (pos: number) => void;\n}\n\ntype Props = IPropsFromState & IPropsFromDispatch & ISquadListTableProps;\n\nconst SquadListTable: React.FC\n {element ? (\n <>\n \n \n \n \n {integerToMoney(element.now_cost, 10)}\n {element.selected_by_percent}\n {element.total_points}\n \n {elementEventOpponents.length ? (\n elementEventOpponents.map((opp) => )\n ) : (\n <> \n )}\n \n \n ) : (\n <>\n  \n \n \n renderElementMenu(pos)}\n element={element}\n team={teamsById[element.team]}\n />\n
    {opp}
    \n showElementType(elementTypesByPosition[pos].thisType.id)\n }\n >\n Select {elementTypesByPosition[pos].thisType.singular_name}\n \n \n \n )}\n = ({\n elementTypesByPosition,\n positions,\n ...rest\n}) => {\n if (!elementTypesByPosition) {\n return null;\n }\n return (\n <>\n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n elementTypesByPosition: getElementTypesBySquadPosition(state),\n fixturesForNextEventByTeam: getFixturesForNextEventByTeam(state),\n proposedElements: getProposedElements(state),\n teamsById: getTeamsById(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n showElementType: (elementTypeId) =>\n dispatch(updateElementTypeControl(elementTypeId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SquadListTable);\n","import { useSelector } from \"react-redux\";\nimport { getNextEvent } from \"../../core/store/events/reducers\";\nimport HelmetHead from \"../HelmetHead\";\nimport CreateEntryDialog from \"./CreateEntryDialog\";\nimport SquadBase from \"./SquadBase\";\nimport SquadListTable from \"./SquadListTable\";\n\nconst SquadSelection = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {positions.map((p) => (\n   Â£\n \n \n \n SB\n \n \n \n TP\n \n \n \n Fix\n ))}\n \n }\n scoreboard=\"basic\"\n submitDialog={(handleHide) => }\n title=\"Squad Selection\"\n headTags={\n \n }\n nextEvent={useSelector(getNextEvent)}\n />\n);\n\nexport default SquadSelection;\n","import { size } from \"polished\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport {\n getActiveChip,\n getActiveChipName,\n} from \"../../core/store/chips/reducers\";\nimport { IPotentialChip } from \"../../core/store/chips/types\";\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 getSquadError,\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 { formatRawAsLocal } from \"../../core/utils/datetime\";\nimport { ReactComponent as Status } from \"../../img/icons/status.svg\";\nimport Alert, { AlertGroup, AlertItem } from \"../Alert\";\nimport Button from \"../Button\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport Table from \"../Table\";\nimport { getCodeFromError } from \"./helpers\";\n\nconst StatusIcon = styled(Status)`\n ${size(16)}\n fill: #fbe772;\n color: black;\n margin-right: 4px;\n vertical-align: text-bottom;\n`;\ninterface IOwnProps {\n handleHide: () => void;\n}\n\ninterface IPropsFromState {\n activeChip: IPotentialChip | null;\n activeChipName: string;\n elementsById: IElementsById;\n freeTransfers: number;\n nextEvent: IEvent | null;\n error: any;\n transferCosts: number;\n transfers: ITransfersData[];\n transferState: ITransferState | null;\n}\n\ninterface IPropsFromDispatch {\n makeTransfers: () => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch;\n\nconst ConfirmTransfersDialog = ({\n activeChip,\n activeChipName,\n error,\n freeTransfers,\n handleHide,\n elementsById,\n makeTransfers,\n nextEvent,\n transferCosts,\n transfers,\n transferState,\n}: Props) => {\n const errorCode = getCodeFromError(error);\n const transferChipName =\n activeChipName === \"wildcard\"\n ? \"Wildcard\"\n : activeChipName === \"manager\"\n ? \"Assistant Manager\"\n : \"Free Hit\";\n if (error) {\n const handledErrorCodes = [\n \"transfer_cap_exceeded\",\n \"transfer_element_in_price_mismatch\",\n \"transfer_element_out_price_mismatch\",\n ];\n if (handledErrorCodes.indexOf(errorCode) === -1) {\n window.location.reload();\n return null;\n }\n }\n if (!nextEvent || !transferState) {\n return (\n \n );\n }\n\n let showTransferChipWarning = false;\n\n if (activeChipName === \"freehit\" && activeChip?.is_pending) {\n showTransferChipWarning = transfers.length + transferState.made > 0;\n } else if (activeChipName === \"manager\" && activeChip?.is_pending) {\n showTransferChipWarning = transfers.some(\n (transfer) => elementsById[transfer.element_in].element_type === 5\n );\n } else if (activeChipName === \"wildcard\" && activeChip?.is_pending) {\n showTransferChipWarning = transferState.limit\n ? transfers.length + transferState.made > 1\n : false;\n }\n\n return (\n \n );\n};\n\nexport { ConfirmTransfersDialog as ConfirmTransfersDialogTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const activeChip = getActiveChip(state);\n return {\n activeChip: activeChip,\n activeChipName: getActiveChipName(state),\n elementsById: getElementsById(state, undefined, activeChip?.id),\n error: getSquadError(state),\n freeTransfers: getFreeTransfers(state),\n nextEvent: getNextEvent(state),\n transferCosts: getTransferCosts(state),\n transferState: getTransferState(state),\n transfers: getProposedTransfers(state, undefined, activeChip?.id),\n };\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n makeTransfers: () => dispatch(makeTransfers()),\n});\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ConfirmTransfersDialog);\n","import * as React from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\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 {\n getElementEventOpponents,\n getFixturesForNextEventByTeam,\n} 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 { BorderedCell, ElementRow, ElementTable } from \"../ElementTable\";\nimport TabHeading from \"../TabHeading\";\nimport { ScrollTable } from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport { getActiveChip } from \"../../core/store/chips/reducers\";\n\nconst SquadListStatus = styled.th`\n width: 7%;\n`;\n\nconst SquadListElement = styled.th`\n width: 28%;\n`;\n\nconst SquadListPrice = styled.th`\n width: 11%;\n`;\n\nconst SquadListForm = styled.th`\n width: 8%;\n`;\n\nconst SquadListPoints = styled.th`\n width: 9%;\n`;\n\nconst SquadListFixture = styled.th`\n width: 15%;\n`;\n\ninterface ISquadListRowProps {\n elementsById: IElementsById;\n elementTypesByPosition: IElementTypesBySquadPosition | null;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n proposedElements: IProposedElements;\n pos: number;\n renderElementMenu: (position: number) => void;\n savedPicks: ISavedPicks;\n teamsById: ITeamsById;\n}\n\nconst TransfersListRow: React.FC\n \n \n Game over\n \n

    \n This game has now finished. Thanks for your interest, come back soon\n to select your squad for next season's game.\n

    \n \n \n Confirm Transfers\n \n \n \n \n \n \n \n \n \n \n \n \n \n {transfers.map((t, index) => (\n \n \n \n \n \n ))}\n \n \n \n \n \n \n \n \n
    OutInCost\n {t.element_out ? elementsById[t.element_out].web_name : \"-\"}\n {elementsById[t.element_in].web_name}\n {transferCosts && index >= freeTransfers\n ? transferState.cost\n : 0}{\" \"}\n pts\n Total Cost{transferCosts} pts\n {transferCosts > 0 ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n These transfers will be active for {nextEvent.name} (\n {formatRawAsLocal(nextEvent.deadline_time)}) and{\" \"}\n \n \n will deduct {transferCosts}pts from your score!\n \n \n \n {showTransferChipWarning && (\n <>\n \n \n \n )}\n \n \n \n \n {`${transferChipName} Active`}\n {`Confirming this transfer locks in your ${transferChipName}.`}\n \n These transfers will be active for {nextEvent.name} (\n {formatRawAsLocal(nextEvent.deadline_time)}).\n \n {errorCode && (\n \n )}\n \n \n \n \n {errorCode === \"transfer_cap_exceeded\" &&\n \"Unable to confirm transfers as they will take you over the limit of 20 transfers in a single Gameweek.\"}\n {(errorCode === \"transfer_element_in_price_mismatch\" ||\n errorCode === \"transfer_element_out_price_mismatch\") &&\n \"Unable to confirm transfers as player prices have changed. Please refresh the page and try again.\"}\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 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 const fixtures = fixturesForNextEventByTeam[element.team];\n const elementEventOpponents = useSelector((state: RootState) =>\n fixtures?.length && element\n ? getElementEventOpponents(state, element, fixtures)\n : []\n );\n\n if (!elementTypesByPosition) {\n return null;\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;\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 {elementEventOpponents.length ? (\n elementEventOpponents.map((opp) => )\n ) : (\n <> \n )}\n \n \n renderElementMenu(pos)}\n element={element}\n team={teamsById[element.team]}\n />\n
    {opp}
    = ({\n elementType,\n elementTypesByPosition,\n positions,\n ...rest\n}) => {\n if (!elementTypesByPosition) {\n return null;\n }\n return (\n <>\n \n \n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const activeChip = getActiveChip(state);\n return {\n elementsById: getElementsById(state, undefined, activeChip?.id),\n elementTypesByPosition: getElementTypesBySquadPosition(\n state,\n undefined,\n activeChip?.id\n ),\n fixturesForNextEventByTeam: getFixturesForNextEventByTeam(state),\n proposedElements: getProposedElements(state, undefined, activeChip?.id),\n savedPicks: getSavedPicks(state),\n teamsById: getTeamsById(state),\n };\n};\n\nexport default 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 { getNextEvent } from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { fetchMyTeam } from \"../../core/store/my-team/thunks\";\nimport { ITransferState } from \"../../core/store/my-team/types\";\nimport { getTransferState } from \"../../core/store/squad/reducers\";\nimport HelmetHead from \"../HelmetHead\";\nimport LeaderboardAd from \"../LeaderboardAd\";\nimport ConfirmTransfersDialog from \"./ConfirmTransfersDialog\";\nimport SquadBase from \"./SquadBase\";\nimport TransfersListTable from \"./TransfersListTable\";\n\ninterface IPropsFromState {\n nextEvent: IEvent | null;\n transfersState: ITransferState | null;\n}\n\ninterface IPropsFromDispatch {\n fetchMyTeam: () => void;\n}\n\ntype Props = RouteComponentProps & IPropsFromState & IPropsFromDispatch;\n\nclass Transfers extends React.Component\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {positions.map((p) => (\n   \n \n \n \n CP\n \n \n \n SP\n \n \n \n PP\n \n \n \n F\n \n \n \n TP\n \n \n \n Fix\n ))}\n \n {\n public componentDidMount() {\n this.props.fetchMyTeam();\n }\n\n public render() {\n const { nextEvent, transfersState } = this.props;\n // Don't render until we know what transfers staate we need to render ...\n if (!transfersState) {\n return null;\n }\n const scoreboard = !nextEvent\n ? \"basic\"\n : transfersState.status === \"cost\"\n ? \"cost\"\n : \"unlimitedTransfers\";\n return (\n <>\n \n (\n \n )}\n scoreboard={scoreboard}\n submitDialog={(handleHide) => (\n \n )}\n title=\"Transfers\"\n headTags={\n \n }\n nextEvent={nextEvent}\n />\n \n );\n }\n}\n\nexport { Transfers as TransfersTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n nextEvent: getNextEvent(state),\n transfersState: getTransferState(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchMyTeam: () => dispatch(fetchMyTeam()),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Transfers);\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 HelmetHead from \"../HelmetHead\";\nimport { Main, Wrapper } from \"../Layout\";\nimport ScoutNav from \"../scout/ScoutNav\";\nimport Title from \"../Title\";\n\nconst NewsStatus = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 6%;\n }\n`;\n\nconst NewsElement = styled.th`\n width: 39%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 38%;\n }\n`;\n\nconst NewsNews = styled.th`\n width: 51%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 56%;\n }\n`;\n\nconst NewsCell = styled.td`\n white-space: normal;\n`;\n\ninterface IState {\n page: number;\n}\n\ninterface IPropsFromState {\n elements: IElementDataFromControls;\n controls: IElementControls;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n updateControls: (controls: IElementControls) => void;\n updateControlsAndMaxCost: (controls: IElementControls) => void;\n}\n\ntype Props = RouteComponentProps & IPropsFromState & IPropsFromDispatch;\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, 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 connect(mapStateToProps, mapDispatchToProps)(News);\n","import styled from \"styled-components/macro\";\n\nconst SectionHeading = styled.h3`\n padding: 1.9rem 0.8rem;\n margin: 0;\n border-bottom: ${({ theme }) => theme.borders[0]};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: 1.7rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-right: 0;\n padding-left: 0;\n }\n`;\n\nexport default SectionHeading;\n","import React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { NewsLink, NewsSubtitle, NewsTitle } from \"./styles\";\n\nconst StyledNewsItem = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst NewsItemImg = styled.div`\n flex: 0 0 104px;\n position: relative;\n overflow: hidden;\n`;\n\nconst NewsItemBody = styled.div`\n padding: 0 ${({ theme }) => theme.space[2]};\n`;\n\ninterface IProps {\n href: string;\n img: React.ReactNode;\n subtitle: string | null;\n title: string;\n}\n\nconst NewsItem: React.FC\n \n \n \n The Scout\n \n \n \n
    \n \n \n
    \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  PlayerNews\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} = ({ href, img, subtitle, title }) => (\n \n);\n\nexport default NewsItem;\n","import React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { IPulseNewsArticle } from \"../../utils/pulse\";\nimport SectionHeading from \"../SectionHeading\";\nimport NewsItem from \"./NewsItem\";\nimport NewsThumb from \"./NewsThumb\";\n\nexport const StyledNewsList = styled.div`\n padding: 0 ${({ theme }) => theme.space[2]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n padding-right: 0;\n padding-left: 0;\n }\n`;\n\ninterface IProps {\n news: IPulseNewsArticle[];\n title: string;\n}\n\nconst NewsList: React.FC\n \n \n \n \n {img}\n \n \n \n \n {subtitle}{title} = ({ news, title }) => {\n return (\n <>\n \n \n \n );\n};\n\nexport default NewsList;\n","import React, { useEffect, useState } from \"react\";\nimport { fetchNews, IPulseResponse } from \"../../utils/pulse\";\nimport NewsList from \"../news/NewsList\";\n\ninterface INewsContentList {\n number: number;\n tag: string;\n title: string;\n}\n\nconst NewsContentList: React.FC\n \n {title}\n {news.map((n: IPulseNewsArticle) => (\n \n ))}\n \n \n }\n subtitle={n.subtitle}\n title={n.title}\n />\n = ({\n number,\n tag,\n title,\n}) => {\n const [news, setNews] = useState(null);\n useEffect(() => {\n async function fetchData() {\n const newsData = await fetchNews(number, tag).catch((e) => {\n return null;\n });\n setNews(newsData);\n }\n fetchData();\n }, [number, tag]);\n\n if (!news) {\n return null;\n }\n return ;\n};\n\nexport default NewsContentList;\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 {\n showElementSummary,\n updateElementControlsAndMaxCost,\n} from \"../../core/store/elements/thunks\";\nimport {\n IElement,\n IElementControls,\n IElementDataFromControls,\n} from \"../../core/store/elements/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { integerToMoney, isMoneyStat } 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 HelmetHead from \"../HelmetHead\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport NewsContentList from \"../scout/NewsContentList\";\nimport Title from \"../Title\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\n\nconst StatsStatus = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 7%;\n }\n`;\n\nconst StatsElement = styled.th`\n width: 40%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 38%;\n }\n`;\n\nconst StatsCost = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsSel = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsForm = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsPts = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\nconst StatsExtra = styled.th`\n width: 10%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 11%;\n }\n`;\n\ninterface IState {\n page: number;\n}\n\ntype OwnProps = RouteComponentProps<{ statName?: string }>;\n\ninterface IPropsFromState {\n currencyDivisor: number;\n elements: IElementDataFromControls;\n controls: IElementControls;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n updateControls: (controls: IElementControls) => void;\n updateControlsAndMaxCost: (controls: IElementControls) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch;\n\nclass Statistics extends React.Component {\n public state: IState = { page: 1 };\n\n public handleFilterChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControls({\n ...this.props.controls,\n filter: e.target.value,\n });\n };\n\n public handleSortChange = (e: React.ChangeEvent) => {\n this.setPage(1);\n this.props.updateControls({\n ...this.props.controls,\n sort: e.target.value,\n });\n };\n\n public setPage = (page: number) => this.setState({ page });\n\n public defaultStats: Array = [\n \"now_cost\",\n \"selected_by_percent\",\n \"form\",\n \"total_points\",\n ];\n\n public componentDidMount() {\n this.props.updateControlsAndMaxCost({\n ...this.props.controls,\n filter: \"all\",\n sort: this.props.statName || \"total_points\",\n search: \"\",\n });\n }\n\n public render() {\n const {\n controls,\n currencyDivisor,\n elements,\n teamsById,\n showElementDialog,\n } = this.props;\n const { page } = this.state;\n const { data, totalPages } = paginate(elements.data, page, 30);\n const extraStat =\n this.defaultStats.indexOf(controls.sort) === -1 ? controls.sort : \"\";\n const statDetail = getStatDetails(String(controls.sort));\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 showElementDialog: (elementId) => dispatch(showElementSummary(elementId)),\n updateControls: (controls) => dispatch(updateElementControls(controls)),\n updateControlsAndMaxCost: (controls) =>\n dispatch(updateElementControlsAndMaxCost(controls)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Statistics);\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementStats } from \"../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../core/store/element-stats/types\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../../core/store/element-types/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport {\n IElement,\n IElementsById,\n IElementsEventDataById,\n} from \"../../core/store/elements/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport Table from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\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 \n \n \n
    \n \n \n \n \n
    \n \n 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 {extraStat ? : null}\n \n \n \n {data.map((e) => (\n \n ))}\n \n  PlayerCost\n \n \n \n Sel.Form\n \n \n \n Pts.**\n \n \n \n \n showElementDialog(e.id)}\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 ? (\n \n {isMoneyStat(extraStat)\n ? integerToMoney(\n e[extraStat] as number,\n currencyDivisor\n )\n : e[extraStat]}\n \n ) : null}\n \n \n \n \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 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","import * as React from \"react\";\nimport { connect } from \"react-redux\";\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 styled from \"styled-components/macro\";\nimport { Box } from \"rebass/styled-components\";\n\nconst ExplainHeading = styled.h3`\n font-size: ${({ theme }) => theme.fontSizes[3]};\n text-align: center;\n`;\n\nconst ExplainScore = styled.span`\n margin: 0 ${({ theme }) => theme.space[1]};\n padding: ${({ theme }) => theme.space[1]};\n background-color: ${({ theme }) => theme.colors.primary};\n color: white;\n`;\n\ninterface IOwnProps {\n closeDialog: () => void;\n elementId: number;\n eventId: number;\n}\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n elementsDataById: IElementsEventDataById | null;\n fixturesById: Record\n \n \n \n \n  \n Player\n Pts\n {stats.map((s) => (\n \n \n \n ))}\n \n \n \n {elements.map((e) => (\n \n \n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n ))}\n \n | null;\n statsByIdentifier: Record;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n showElementDialog: (elementId: number) => void;\n}\n\ntype Props = IOwnProps & IPropsFromState & IPropsFromDispatch;\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 } = 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 \n );\n }\n\n public render() {\n const { closeDialog, elementsById, elementsDataById, fixturesById } =\n this.props;\n const element = elementsById[this.props.elementId];\n if (!element || !fixturesById || !elementsDataById) {\n return null;\n }\n return (\n \n );\n }\n}\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 connect(\n mapStateToProps,\n mapDispatchToProps\n)(ElementExplainDialog);\n","var _circle, _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgCaptain(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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 role: \"img\",\n focusable: \"false\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Captain\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 12,\n \"aria-hidden\": \"true\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.0769667,14.370341 C14.4472145,15.2780796 13.4066319,15.8124328 12.3019667,15.795341 C10.4380057,15.795341 8.92696674,14.284302 8.92696674,12.420341 C8.92696674,10.55638 10.4380057,9.045341 12.3019667,9.045341 C13.3988206,9.06061696 14.42546,9.58781014 15.0769667,10.470341 L17.2519667,8.295341 C15.3643505,6.02401882 12.1615491,5.35094208 9.51934028,6.67031017 C6.87713147,7.98967826 5.49079334,10.954309 6.17225952,13.8279136 C6.8537257,16.7015182 9.42367333,18.7279285 12.3769667,18.720341 C14.2708124,18.7262708 16.0646133,17.8707658 17.2519667,16.395341 L15.0769667,14.370341 Z\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgCaptain);\nexport default __webpack_public_path__ + \"static/media/captain.f6918bb5.svg\";\nexport { ForwardRef as ReactComponent };","var _path, _path2, _path3;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgSub(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n fill: \"none\",\n viewBox: \"0 0 16 16\",\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 fill: \"#E9FF03\",\n d: \"M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16Z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#C0020D\",\n d: \"M6 8.444a.427.427 0 0 1-.32-.16L2.758 4.857a.606.606 0 0 1 .042-.7.408.408 0 0 1 .597-.05L6 7.16l2.603-3.052a.408.408 0 0 1 .597.05c.16.188.178.487.042.7L6.32 8.284c-.085.1-.2.158-.32.16Z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#009A4C\",\n d: \"M12.886 12.004a.425.425 0 0 1-.318-.159L9.98 8.825l-2.587 3.02a.407.407 0 0 1-.593-.049.597.597 0 0 1-.043-.692l2.906-3.392a.409.409 0 0 1 .635 0l2.905 3.392a.597.597 0 0 1 .096.572c-.07.196-.232.325-.413.328Z\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgSub);\nexport default __webpack_public_path__ + \"static/media/sub.760953ed.svg\";\nexport { ForwardRef as ReactComponent };","var _circle, _polygon;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgViceCaptain(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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 role: \"img\",\n focusable: \"false\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"Captain\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 12,\n \"aria-hidden\": \"true\"\n })), _polygon || (_polygon = /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"13.5 .375 8.925 12.375 4.65 12.375 0 .375 3.15 .375 6.75 10.05 10.35 .375\",\n transform: \"translate(5.25 6)\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgViceCaptain);\nexport default __webpack_public_path__ + \"static/media/vice-captain.bd20ba30.svg\";\nexport { ForwardRef as ReactComponent };","import { rgba, size } from \"polished\";\nimport * as React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled, { css } from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElement } from \"../../core/store/elements/reducers\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\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 Badge from \"../Badge\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementPhoto from \"../ElementPhoto\";\nimport ElementShirt from \"../ElementShirt\";\nimport {\n BadgeWrap,\n ElementName,\n ImgWrap,\n InfoControl,\n PitchCardButton,\n PitchElementData,\n PitchElementIconsWrap,\n PitchElementWrap,\n StyledPitchElement,\n} from \"../PitchCard\";\nimport { UnstyledButton, VisuallyHidden } from \"../Utils\";\n\nconst StyledSub = styled(Sub)`\n display: block;\n ${size(9)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(14)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(16)}\n }\n`;\n\nconst sharedCaptainStyles = css\n \n \n {teamsById[fixture.team_h].short_name}\n \n {teamsById[fixture.team_a].short_name}\n \n {fixture.team_h_score}-{fixture.team_a_score}\n \n \n \n \n \n \n \n \n \n \n \n {explain.stats.map((stat) => (\n \n \n \n \n \n ))}\n \n
    StatisticValuePoints{statsByIdentifier[stat.identifier].label}{stat.value}{stat.points}\n \n \n \n {`${element.first_name} ${element.second_name}`}\n \n {elementsDataById[element.id].explain.map((e) => (\n \n ))}\n \n \n {this.renderExplainFixture(e)}\n
      \n \n
    \n this.showElementDialog(element.id)}\n width={1}\n >\n View Information\n \n `\n display: block;\n ${size(9)}\n color: white;\n\n ${(props) =>\n props.$chipName === \"3xc\" &&\n css`\n color: black;\n fill: white;\n border-radius: 50%;\n box-shadow: 1px 1px 10px -4px ${rgba(\"black\", 0.5)};\n `}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(14)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(16)}\n }\n`;\n\nconst StyledCaptain = styled(Captain)`\n ${sharedCaptainStyles}\n`;\n\nconst StyledViceCaptain = styled(ViceCaptain)`\n ${sharedCaptainStyles}\n`;\n\ninterface IProps {\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 $chipName?: string | null;\n}\n\nconst TeamPitchElement: React.FC = ({\n actionMe,\n chipName,\n pick,\n renderDreamTeam,\n renderElementMenu,\n renderPickValue,\n}) => {\n const element = useSelector((state: RootState) =>\n getElement(state, pick.element)\n );\n const teamsById = useSelector(getTeamsById);\n\n if (!element) {\n return null;\n }\n const copnr = element.chance_of_playing_next_round;\n const team = teamsById[element.team];\n\n return (\n \n );\n};\n\nexport default TeamPitchElement;\n","import * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { ThunkDispatch } from \"../../core/store\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { actionSubstitution } from \"../../core/store/my-team/thunks\";\nimport { PitchRow, PitchUnit } from \"../Pitch\";\nimport TeamPitchElement from \"./TeamPitchElement\";\n\ninterface IFormationProps {\n generateProps: (i: number) => {\n actionMe: () => void;\n chipName: string | null;\n eventId?: number;\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 \n \n \n {element.element_type === 5 ? (\n \n ) : (\n \n )}\n \n \n <>{renderPickValue(pick)}\n \n {element.web_name}\n
    \n \n \n {element.element_type === 5 && (\n \n )}\n
    \n {actionMe && typeof pick.subStatus !== \"undefined\" && (\n \n )}\n {pick.is_captain && \n \n \n Switch player}\n {pick.is_vice_captain && }\n \n
    {renderDreamTeam && renderDreamTeam(pick)}
    \n \n \n \n = ({ 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 eventId?: number;\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 eventId,\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 eventId,\n pick: picks[i],\n renderDreamTeam,\n renderElementMenu: () => renderElementMenu(picks[i].element),\n renderPickValue,\n });\n const formations: IFormations = {\n \"1-5-4-1\": ,\n \"1-5-3-2\": ,\n \"1-5-2-3\": ,\n \"1-4-5-1\": ,\n \"1-4-4-2\": ,\n \"1-4-3-3\": ,\n \"1-3-5-2\": ,\n \"1-3-4-3\": ,\n };\n return <>{formations[formation]};\n};\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n substitute: (elementId) => dispatch(actionSubstitution(elementId)),\n});\n\nexport default connect(null, mapDispatchToProps)(PitchFormation);\n","import { IElementsById } from \"../../core/store/elements/types\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { IFixturesForEventByTeam } from \"../../core/store/fixtures/types\";\nimport ElementFixtureBar from \"../ElementFixtureBar\";\n\nconst valueForPlayerElement =\n (initProps: {\n elementsById: IElementsById;\n eventId: number;\n fixturesForEventByTeam: IFixturesForEventByTeam;\n }) =>\n (pick: IPickLight) => {\n const element = initProps.elementsById[pick.element];\n const elementFixtures = initProps.fixturesForEventByTeam[element.team];\n const isStarted = elementFixtures.some((fixture) => fixture.started);\n\n return (\n \n );\n };\n\nexport default valueForPlayerElement;\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 { getFixturesForEventByTeam } from \"../../core/store/fixtures/reducers\";\nimport { IFixturesForEventByTeam } from \"../../core/store/fixtures/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport { isBlankWeek } from \"../../utils/events\";\nimport BoldLink from \"../BoldLink\";\nimport BoldLinkButton from \"../BoldLinkButton\";\nimport { StyledElementFixtureBar } from \"../ElementFixtureBar\";\nimport ElementShirt from \"../ElementShirt\";\nimport Fixtures from \"../Fixtures\";\nimport { Glass, PatternWrapMain } from \"../GraphicPatterns\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport Media from \"../Media\";\nimport {\n EventPager,\n NextLink,\n PagerHeading,\n PagerItem,\n PagerItemNext,\n PreviousLink,\n} from \"../Pager\";\nimport Pitch from \"../Pitch\";\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 valueForPlayedElement from \"./valueForPlayedElement\";\n\nconst DTScoreboard = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: ${({ theme }) => theme.space[4]};\n`;\n\nconst DTScoreboardPanel = styled.div`\n position: relative;\n flex: 1 0 calc(50% - ${({ theme }) => theme.space[2]});\n margin: ${({ theme }) => theme.space[2]} 0;\n text-align: center;\n\n :not(:last-child)::after {\n content: \"\";\n position: absolute;\n top: ${({ theme }) => theme.space[1]};\n right: 0;\n bottom: ${({ theme }) => theme.space[1]};\n width: 1px;\n background-color: #eaeaea;\n }\n`;\n\nconst DTScoreboardHeading = styled.h3`\n margin-bottom: ${({ theme }) => theme.space[1]};\n padding-top: ${({ theme }) => theme.space[2]};\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: ${({ theme }) => theme.fontSizes[3]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n font-size: ${({ theme }) => theme.fontSizes[4]};\n }\n`;\n\nconst DTScoreboardValue = styled.div`\n position: relative;\n font-size: 4rem;\n font-family: ${({ theme }) => theme.fonts.bold};\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 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 fixturesForEventByTeam: IFixturesForEventByTeam;\n event: IEvent | undefined;\n formation: string;\n now: IEvent | null;\n teamsById: ITeamsById;\n}\n\ninterface IPropsFromDispatch {\n fetchEventLive: (entryId: number) => void;\n fetchEventDreamTeam: (eventId: number) => void;\n fetchOverallDreamTeam: () => void;\n showElementDialog: (elementId: number) => void;\n}\n\ntype Props = OwnProps & IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n elementForMenu: number;\n}\n\nclass DreamTeam extends React.Component {\n public state: IState = {\n elementForMenu: 0,\n };\n\n public handleShowMenuForElement = (element: number) => {\n this.setState({ elementForMenu: element });\n };\n\n public handleHideMenuForElement = () => {\n this.setState({ elementForMenu: 0 });\n };\n\n public fetchData() {\n if (this.props.event) {\n this.props.fetchEventDreamTeam(this.props.event.id);\n this.props.fetchEventLive(this.props.event.id);\n } else {\n this.props.fetchOverallDreamTeam();\n }\n }\n\n public componentDidMount() {\n this.fetchData();\n }\n\n public componentDidUpdate(prevProps: Props) {\n if (prevProps.event !== this.props.event) {\n this.fetchData();\n }\n }\n\n public render() {\n const {\n data,\n elementsById,\n elementsDataById,\n event,\n fixturesForEventByTeam,\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 ? valueForPlayedElement({\n elementsById,\n eventId: event.id,\n fixturesForEventByTeam,\n })\n : (pick: IPickLight) => {\n const elementData = data.team.filter(\n (e) => e.element === pick.element\n );\n return elementData.length ? (\n \n ) : 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 fixturesForEventByTeam: getFixturesForEventByTeam(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 connect(mapStateToProps, mapDispatchToProps)(DreamTeam);\n","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgReload(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\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: \"M64.3875265,105.687501 C63.7310308,106.269005 62.8780305,106.6 62.0000832,106.6 C60.0150698,106.6 58.4001024,104.985024 58.4001024,103 C58.4001024,101.014976 60.0150698,99.4 62.0000832,99.4 C62.6820764,99.4 63.342028,99.5939968 63.912521,99.9549952 L62.8670226,101 C62.5670178,101.282995 62.4000299,101.474995 62.4000299,101.8 C62.4000299,102.100006 62.6335262,102.6 63.2000256,102.6 L67.2000043,102.6 C67.6375059,102.6 68,102.262502 68,101.8 L68,97.8 C68,97.2329984 67.5,97 67.2000043,97 C66.8750012,97 66.6835014,97.1670016 66.4000085,97.4669952 L65.6345086,98.2324992 C64.591519,97.434496 63.321049,97 61.999968,97 C58.6914416,97 56,99.691456 56,103 C56,106.308544 58.6914416,109 61.999968,109 C63.4664562,109 64.8564008,108.480998 65.9818988,107.481024 C66.3368921,107.166528 66.3998933,106.78752 66.3998933,106.600026 C66.3998933,106.206528 66.0808934,105.400026 65.1998997,105.400026 C64.9189028,105.400026 64.7129007,105.399026 64.3873985,105.687526 L64.3875265,105.687501 Z\",\n transform: \"translate(-56 -97)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgReload);\nexport default __webpack_public_path__ + \"static/media/reload.2580ab9d.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(9)};\n display: block;\n color: white;\n fill: #005baa;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(14)}\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n ${size(16)}\n }\n`;\n\nexport default DreamTeam;\n","import styled, { css } from \"styled-components/macro\";\nimport { BenchContentWrap } from \"../Pitch\";\nimport { BenchHeader } from \"../styles\";\n\ninterface IOwnProps {\n variant?: string | null;\n}\n\nconst StyledBench = styled.div\n {elementData[0].points}\n \n \n \n
    \n \n \n {event &&
    \n \n {`Team of the ${event ? \"Week\" : \"Season\"}`}\n {event ? (\n \n ) : (\n \n )}\n {(!event || !isBlankWeek(event.id)) && (\n <>\n \n \n \n )}\n {event && this.state.elementForMenu ? (\n \n \n {(event.id > 1 || event.id < now.id) && (\n \n )}\n \n {event.name}\n \n {event.id > 1 && (\n \n )}\n {event.id < now.id && (\n \n )}\n \n \n \n \n \n \n Overall\n \n \n \n \n \n \n \n \n {`Player of the ${\n event ? \"Week\" : \"Season\"\n }`}\n showElementDialog(topPlayer.id)}\n >\n {topPlayer.web_name}\n \n \n \n \n \n \n }\n centred={true}\n >\n \n \n \n \n \n
    {teamsById[topPlayer.team].short_name}
    {data.top_player.points} Points
    \n \n \n {event ? (\n \n ) : (\n \n )}\n Total Points\n {data.team.reduce((total, e) => total + e.points, 0)}\n Overall\n Gameweek\n \n \n \n \n \n \n \n \n null}\n renderElementMenu={this.handleShowMenuForElement}\n renderPickValue={renderPickValue}\n />\n \n \n \n e.element)}\n renderElementMenu={this.handleShowMenuForElement}\n dataById={elementsDataById}\n />\n \n ) : null}\n }\n \n \n  `\n display: flex;\n flex: 1;\n\n background: linear-gradient(\n to bottom,\n rgba(114, 207, 159) 50%,\n ${({ theme }) => theme.colors.offWhite} 50%\n );\n border-radius: ${({ theme }) => `${theme.radii[4]} ${theme.radii[4]}`} 0 0;\n`;\n\nconst BenchInner = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n padding: 0 ${({ theme }) => theme.space[1]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[0]}) {\n gap: ${({ theme }) => theme.space[1]};\n padding: 0 ${({ theme }) => theme.space[2]};\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n gap: ${({ theme }) => theme.space[3]};\n padding: 0 ${({ theme }) => theme.space[3]};\n }\n\n ${(props) =>\n props.variant === \"bboost\" &&\n css`\n box-shadow: 0 0 0 2px white,\n 0 0 0 6px ${({ theme }) => theme.colors.lightBlue};\n border-radius: ${({ theme }) => `${theme.radii[4]} ${theme.radii[4]}`} 0 0;\n `}\n`;\n\nconst Bench: React.FC = ({ children, variant = null }) => (\n \n);\n\nexport default Bench;\n","import * as React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { RootState, ThunkDispatch } from \"../../core/store\";\nimport { getActiveChip } from \"../../core/store/chips/reducers\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { getElement } from \"../../core/store/elements/reducers\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { actionSubstitution } from \"../../core/store/my-team/thunks\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport TeamPitchElement from \"./TeamPitchElement\";\n\nconst BenchUnitHeading = styled.h4`\n margin: ${({ theme }) => theme.space[1]} 0;\n font-size: ${({ theme }) => theme.fontSizes[1]};\n text-align: center;\n letter-spacing: -0.1px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-top: ${({ theme }) => theme.space[2]};\n margin-bottom: ${({ theme }) => theme.space[2]};\n font-size: ${(props) => props.theme.fontSizes[3]};\n }\n`;\ninterface IProps {\n index: number;\n pick: IPickLight;\n chipName?: string | null;\n eventId?: number;\n renderDreamTeam: (pick: IPickLight) => React.ReactNode;\n renderElementMenu: (pick: IPickLight) => void;\n renderPickValue: (pick: IPickLight) => React.ReactNode;\n}\n\nconst BenchUnit = ({\n index,\n pick,\n renderDreamTeam,\n renderElementMenu,\n renderPickValue,\n}: IProps) => {\n const activeChip = useSelector(getActiveChip);\n const element = useSelector((state: RootState) =>\n getElement(state, pick.element)\n );\n const elementTypesById = useSelector((state: RootState) =>\n getElementTypesById(state, undefined, activeChip?.id)\n );\n const reduxDispatch = useDispatch\n \n \n \n \n Substitutes{children}();\n\n if (!element) {\n return null;\n }\n const elementType = elementTypesById[element.element_type];\n return (\n \n );\n};\n\nexport default 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
    \n {`${index ? `${index}. ` : \"\"}`}\n \n \n \n {elementType.singular_name_short} reduxDispatch(actionSubstitution(pick.element))}\n pick={pick}\n renderDreamTeam={renderDreamTeam}\n renderElementMenu={() => renderElementMenu(pick)}\n renderPickValue={renderPickValue}\n />\n `\n ${size(14)};\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\nexport const StyledViceCaptain = styled(ViceCaptain)`\n ${size(14)};\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 { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport { getElementStats } from \"../../core/store/element-stats/reducers\";\nimport { IElementStat } from \"../../core/store/element-stats/types\";\nimport { getElementTypesById } from \"../../core/store/element-types/reducers\";\nimport { IElementTypesById } from \"../../core/store/element-types/types\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport {\n IElement,\n IElementEventStats,\n IElementsById,\n IElementsEventDataById,\n} from \"../../core/store/elements/types\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport { getTeamsById } from \"../../core/store/teams/reducers\";\nimport { ITeamsById } from \"../../core/store/teams/types\";\nimport ElementDialogButton from \"../ElementDialogButton\";\nimport ElementInTable from \"../ElementInTable\";\nimport { ElementRow } from \"../ElementTable\";\nimport TabHeading from \"../TabHeading\";\nimport Table from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport { StyledCaptain, StyledViceCaptain } from \"./TableCaptains\";\nimport { getActiveChip } from \"../../core/store/chips/reducers\";\n\nconst ScrollTable = styled.div`\n overflow-x: auto;\n width: 100%;\n`;\n\nconst StatsTable = styled(Table)`\n white-space: nowrap;\n margin-bottom: ${({ theme }) => theme.space[3]};\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 return (\n \n );\n};\n\nexport { EntryEventTable as EntryEventTableTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const activeChip = getActiveChip(state);\n return {\n elementsById: getElementsById(state, undefined, activeChip?.id),\n elementTypesById: getElementTypesById(state, undefined, activeChip?.id),\n stats: getElementStats(state),\n teamsById: getTeamsById(state),\n };\n};\n\nexport default connect(mapStateToProps)(EntryEventTable);\n","import styled from \"styled-components/macro\";\nimport { BenchHeader } from \"../../styles\";\n\n// Handle the width of the flex child\nexport const StyledManagerUnit = styled.div`\n flex: 0 0 20%;\n`;\n\n// Handle the 'technical area' separately because flex-basis is better than width for sizing flex children\nexport const TechnicalArea = styled.div`\n position: relative;\n width: min-content;\n margin: auto;\n padding-top: 12px;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n margin-right: ${({ theme }) => theme.space[3]};\n }\n\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 12px;\n border: 3px solid white;\n border-bottom: none;\n border-radius: ${({ theme }) => theme.radii[2]}\n ${({ theme }) => theme.radii[2]} 0 0;\n margin: 0 5px;\n }\n`;\n\nexport const ManagerHeader = styled(BenchHeader)`\n margin-top: -${({ theme }) => theme.space[3]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n display: flex;\n justify-content: center;\n }\n`;\n","import { BenchContentWrap } from \"../../Pitch\";\nimport { BenchHeader } from \"../../styles\";\nimport TeamPitchElement from \"../TeamPitchElement\";\nimport { StyledManagerUnit, TechnicalArea } from \"./styles\";\nimport { IManagerUnit } from \"./types\";\n\nconst ManagerUnit = ({\n pick,\n renderElementMenu,\n renderPickValue,\n}: IManagerUnit) => {\n return (\n \n );\n};\n\nexport default ManagerUnit;\n","import { Link, RouteComponentProps } from \"@reach/router\";\nimport range from \"lodash/range\";\nimport { hideVisually, rgba, size } from \"polished\";\nimport * as React from \"react\";\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 getNextEvent,\n} from \"../../core/store/events/reducers\";\nimport { IEvent } from \"../../core/store/events/types\";\nimport { getFixturesForEventByTeam } from \"../../core/store/fixtures/reducers\";\nimport { fetchFixtures } from \"../../core/store/fixtures/thunks\";\nimport { IFixturesForEventByTeam } 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 { ReactComponent as BaseDreamTeam } from \"../../img/icons/dreamteam.svg\";\nimport { ReactComponent as BaseReload } from \"../../img/icons/reload.svg\";\nimport { getChipName } from \"../../utils/chips\";\nimport BoldLink from \"../BoldLink\";\nimport Entry from \"../Entry\";\nimport Fixtures from \"../Fixtures\";\nimport { PatternWrapMain } from \"../GraphicPatterns\";\nimport HelmetHead from \"../HelmetHead\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport LeaderboardAd from \"../LeaderboardAd\";\nimport {\n EventPager,\n NextLink,\n PagerHeading,\n PagerItem,\n PagerItemNext,\n PreviousLink,\n} from \"../Pager\";\nimport Pitch, { BenchRow, InnerBenchRow } from \"../Pitch\";\nimport { NotFound } from \"../Routes\";\nimport Table from \"../Table\";\nimport Title from \"../Title\";\nimport { textGradient } from \"../Utils\";\nimport { ControlArrowRight } from \"../icons/Arrows\";\nimport DreamTeam from \"../icons/DreamTeam\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport Bench from \"./Bench\";\nimport BenchUnit from \"./BenchUnit\";\nimport ElementExplainDialog from \"./ElementExplainDialog\";\nimport EntryEventTable from \"./EntryEventTable\";\nimport PitchFormation from \"./PitchFormation\";\nimport valueForPlayedElement from \"./valueForPlayedElement\";\nimport ManagerUnit from \"./ManagerUnit\";\n\nconst PointsScoreboard = styled.div`\n position: relative;\n margin-bottom: ${({ theme }) => theme.space[4]};\n\n ::before {\n content: \"\";\n position: absolute;\n height: 1px;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n background-image: linear-gradient(\n to right,\n ${({ theme }) => rgba(theme.colors.lightGrey, 0)} 0%,\n ${({ theme }) => theme.colors.lightGrey} 50%,\n ${({ theme }) => rgba(theme.colors.lightGrey, 0)} 100%\n );\n }\n display: flex;\n justify-content: space-around;\n align-items: stretch;\n text-align: center;\n padding: ${({ theme }) => theme.space[3]} 0;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n width: 90%;\n margin: 0 auto ${({ theme }) => theme.space[4]};\n }\n`;\n\nconst ScoreboardPrimary = styled.div`\n flex: 0 0 38%;\n border-radius: ${({ theme }) => theme.radii[1]};\n background-color: ${({ theme }) => theme.colors.primary};\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  \n  \n Pts\n {stats.map((s) => (\n \n \n \n ))}\n \n \n \n {picks.map((p) => (\n \n \n \n {s.label\n .split(\" \")\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()}\n \n ))}\n \n \n \n \n \n \n Assistant Manager\n renderElementMenu(pick)}\n renderPickValue={renderPickValue}\n />\n `\n position: relative;\n padding: ${({ theme }) => theme.space[2]} 0;\n\n ${(props) =>\n props.chipPlayed &&\n css`\n padding-top: 4rem;\n `}\n`;\n\nconst PrimaryHeading = styled.h4`\n margin-bottom: ${({ theme }) => theme.space[1]};\n color: white;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.1rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 1.2rem;\n }\n`;\n\nconst PrimaryValue = styled.div`\n ${textGradient}\n font-size: 6.2rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n line-height: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 7.2rem;\n }\n`;\n\nconst ReloadButton = styled.button`\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: #05fa87;\n`;\n\nconst ReloadButtonText = styled.span`\n ${hideVisually()}\n`;\n\nconst ScoreboardSecondary = styled.div`\n flex: 0 0 calc(31% - ${({ theme }) => theme.space[2]});\n display: flex;\n align-items: center;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex-basis: 36%;\n }\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 :not(:last-child) {\n border-bottom: 1px solid #d8d8d8;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n flex: 1 1 calc(50% - ${({ theme }) => theme.space[1]});\n\n :not(:last-child) {\n border-bottom: 0;\n }\n }\n`;\n\nconst ItemLink = styled(Link)`\n color: currentColor;\n text-decoration: none;\n`;\n\nconst SecondaryHeading = styled.h4`\n margin: ${({ theme }) => theme.space[1]} 0;\n font-family: ${({ theme }) => theme.fonts.regular};\n font-size: 1.1rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n font-size: 1.2rem;\n }\n`;\n\nconst SecondaryLinkHeading = styled(SecondaryHeading)`\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\nconst SecondaryValue = styled.div`\n margin: ${({ theme }) => theme.space[1]} 0;\n font-family: ${({ theme }) => theme.fonts.light};\n font-size: 2.2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n font-size: 3rem;\n }\n`;\n\nconst TransfersValue = styled(SecondaryValue)`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst TransfersCost = styled.span`\n margin-left: 0.5rem;\n font-size: 1.6rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n font-size: 2rem;\n }\n`;\n\nconst DreamTeamLinkIcon = styled(BaseDreamTeam)`\n ${size(16)}\n margin-right: ${({ theme }) => theme.space[1]};\n color: white;\n fill: #005baa;\n flex-shrink: 0;\n`;\n\nconst DreamTeamWrap = styled.div`\n margin-bottom: ${({ theme }) => theme.space[4]};\n text-align: center;\n`;\n\nconst ChipStatus = styled.div`\n position: absolute;\n top: 0;\n width: 100%;\n margin-bottom: ${({ theme }) => theme.space[1]};\n padding: ${({ theme }) => theme.space[2]};\n border-radius: ${({ theme }) => `${theme.radii[1]} ${theme.radii[1]} 0 0`};\n background-image: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.fantasy},\n ${({ theme }) => theme.colors.lightBlue}\n );\n color: ${({ theme }) => theme.colors.primary};\n font-size: 1rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n text-align: center;\n`;\n\ntype OwnProps = RouteComponentProps<{ entryId: string; eventId: string }>;\n\ninterface IPropsFromState {\n elementsById: IElementsById;\n elementsDataById: IElementsEventDataById;\n entry: IEntry | null;\n entryData: IEntryEvent | null;\n event: IEvent | null;\n fixturesForEventByTeam: IFixturesForEventByTeam;\n formation: string;\n mine: boolean;\n now: IEvent | null;\n nxt: IEvent | null;\n points: number;\n settings: ISettings;\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 fixturesForEventByTeam,\n formation,\n mine,\n now,\n nxt,\n points,\n settings,\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)\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 = valueForPlayedElement({\n elementsById,\n eventId: event.id,\n fixturesForEventByTeam,\n });\n\n const managerPick = entryData.picks.find(\n (pick) => elementsById[pick.element].element_type === 5\n );\n\n // Handle events before the entry started\n return (\n <>\n \n \n \n );\n }\n}\nexport { EntryEvent as EntryEventTest };\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: OwnProps\n): IPropsFromState => {\n const entryId = Number(ownProps.entryId);\n const eventId = Number(ownProps.eventId);\n const player = getPlayerData(state) as IPlayer;\n return {\n elementsById: getElementsById(state),\n elementsDataById: getElementsEventDataById(state, eventId),\n entry: getEntry(state, entryId),\n event: getEventsById(state)[eventId],\n now: getCurrentEvent(state),\n nxt: getNextEvent(state),\n entryData: getEntryEventPicks(state, entryId, eventId),\n fixturesForEventByTeam: getFixturesForEventByTeam(state, eventId),\n formation: getEntryEventFormation(state, entryId, eventId),\n points: getEntryEventPoints(state, entryId, eventId),\n settings: getSettings(state) as ISettings,\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\nexport default connect(mapStateToProps, mapDispatchToProps)(EntryEvent);\n","import styled from \"styled-components/macro\";\n\ninterface IProps {\n height: string;\n}\n\nexport const Divider = styled.hr`\n height: 2px;\n margin: 0;\n border: none;\n background-color: ${({ theme }) => theme.colors.lightGrey};\n color: ${({ theme }) => theme.colors.lightGrey};\n`;\n\nconst Keyline = styled.div\n \n \n \n
    \n \n \n\n \n\n {/* TEAM */}\n\n {entryData.automatic_subs.length > 0 && (\n \n )}\n {this.state.pickForMenu && (\n
    \n \n Points - {entry.name}\n \n {(event.id > entry.started_event || event.id < now.id) && (\n \n )}\n \n \n \n \n {event.name}\n \n {event.id > entry.started_event && (\n \n )}\n {event.id < now.id && (\n \n )}\n {mine && nxt && event.id === now.id && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Average Points\n {event.average_entry_score || \"-\"}\n \n {event.highest_scoring_entry ? (\n \n \n \n \n ) : (\n <>\n \n \n \n )}\n \n Highest Points \n \n {event.highest_score || \"-\"}\n Highest Points-\n \n \n {chipName && (\n \n )}\n \n {!event.finished && (\n \n )}\n {`${chipName} played`}
    \n \n \n
    \n {event.finished ? \"Final Points\" : \"Latest Points\"}\n {points}\n \n Reload Points\n \n \n \n \n \n \n \n \n GW Rank\n {entryData.entry_history.rank\n ? entryData.entry_history.rank.toLocaleString()\n : \"-\"}\n \n {event.highest_scoring_entry ? (\n \n ) : (\n <>\n \n \n \n )}\n \n \n \n \n Transfers \n \n \n {entryData.entry_history.event_transfers_cost ? (\n \n ) : (\n \"\"\n )}\n \n {entryData.entry_history.event_transfers}\n {`(-${entryData.entry_history.event_transfers_cost} pts)`}Highest Points-\n \n \n \n \n Team of the Week\n \n \n \n \n \n \n \n \n \n \n \n \n {entryData.active_chip === \"manager\" &&\n managerPick && (\n \n this.handleShowMenuForPickElement(\n managerPick.element\n )\n }\n renderPickValue={renderPickValue}\n />\n )}\n \n \n {range(\n settings.squad_squadplay,\n settings.squad_squadsize\n ).map((e, i) => (\n \n this.handleShowMenuForPickElement(\n entryData.picks[e].element\n )\n }\n renderPickValue={renderPickValue}\n />\n ))}\n \n \n \n \n \n \n \n \n \n \n Automatic Substitutions\n \n \n \n \n \n \n \n {entryData.automatic_subs.map((s) => (\n \n \n \n \n ))}\n \n
    Player outPlayer in{elementsById[s.element_out].web_name}{elementsById[s.element_in].web_name}\n )}\n \n \n \n `\n height: ${(props) => props.height};\n margin: 0 ${({ theme }) => theme.space[2]};\n background: linear-gradient(\n to right,\n ${({ theme }) => theme.colors.yellow},\n ${({ theme }) => theme.colors.fantasy}\n );\n`;\n\nexport default Keyline;\n","import * as React from \"react\";\nimport { connect, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport { RootState } from \"../../core/store\";\nimport {\n getActiveChip,\n getActiveOrProposedTeamChipName,\n} 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 {\n getElementEventOpponents,\n getFixturesForNextEventByTeam,\n} 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 { BorderedCell, ElementRow, ElementTable } from \"../ElementTable\";\nimport TabHeading from \"../TabHeading\";\nimport { ScrollTable } from \"../Table\";\nimport Tooltip, { TooltipLabel } from \"../Tooltip\";\nimport { StyledCaptain, StyledViceCaptain } from \"./TableCaptains\";\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 MyTeamGW = styled.th`\n width: 10%;\n`;\n\nconst MyTeamPts = styled.th`\n width: 12%;\n`;\n\nconst MyTeamFix = styled.th`\n width: 14%;\n`;\n\ninterface IMyTeamRowProps {\n chipInPlayName: string | null;\n pick: IPickProposed;\n element: IElement;\n elementTypesById: IElementTypesById;\n fixturesForNextEventByTeam: IFixturesForEventByTeam;\n renderElementMenu: (index: number) => void;\n teamsById: ITeamsById;\n}\n\nconst MyTeamRow: React.FC = ({\n chipInPlayName,\n pick,\n element,\n elementTypesById,\n fixturesForNextEventByTeam,\n renderElementMenu,\n teamsById,\n}) => {\n const fixtures = fixturesForNextEventByTeam[element.team];\n const elementEventOpponents = useSelector((state: RootState) =>\n fixtures?.length && element\n ? getElementEventOpponents(state, element, fixtures)\n : []\n );\n\n return (\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;\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 {elementEventOpponents.length ? (\n elementEventOpponents.map((opp) => )\n ) : (\n <> \n )}\n \n \n renderElementMenu(pick.element)}\n element={element}\n team={teamsById[element.team]}\n />\n
    {opp}
    = ({\n elementsById,\n picks,\n title,\n ...rest\n}) => {\n return (\n \n );\n};\n\nexport { MyTeamTable as MyTeamTableTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const activeChip = getActiveChip(state);\n return {\n chipInPlayName: getActiveOrProposedTeamChipName(state),\n elementsById: getElementsById(state, undefined, activeChip?.id),\n elementTypesById: getElementTypesById(state, undefined, activeChip?.id),\n fixturesForNextEventByTeam: getFixturesForNextEventByTeam(state),\n teamsById: getTeamsById(state),\n };\n};\n\nexport default connect(mapStateToProps)(MyTeamTable);\n","var _g, _defs;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgFplChallengeLogo(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 277,\n height: 32,\n viewBox: \"0 0 277 32\",\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_1969_11622)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.52312 2.43621C5.81365 3.02749 6.64197 3.77416 6.79209 3.88741C6.72361 3.55292 6.46945 1.95029 6.32328 0.952099C7.07522 1.4749 8.82139 2.68642 9.39423 3.08016C9.62731 2.35852 10.4385 0.00395062 10.4385 0.00395062C10.4385 0.00395062 11.9029 2.37564 12.1531 2.76148C12.4586 2.44148 14.21 0.493827 14.663 0C14.7394 1.12066 14.8434 2.72461 14.8672 2.9656C14.9567 2.84576 15.627 1.90683 16.7503 1.04033C16.263 1.99901 16.0313 3.32379 15.9272 4.38782C14.8224 4.07835 13.6569 3.91243 12.4533 3.91243C10.1448 3.91243 7.97727 4.52082 6.10336 5.58486C5.76229 4.55901 5.22896 3.28033 4.5218 2.43621H4.52312ZM22.1929 22.6621L21.1763 21.5348C20.8853 24.5794 19.3959 27.1631 16.6581 28.9646L16.2406 27.3225C13.9164 29.0028 9.92756 30.0905 6.50238 28.1547C6.92641 25.9832 7.30435 23.7854 6.49448 21.1516C4.59818 24.0895 2.91785 25.2405 2.91785 25.2405C1.63785 23.0887 1.75242 18.7707 2.13431 17.4986L0.000976562 18.1597C0.000976562 16.7098 1.04657 13.6296 2.55834 11.9019L1.22567 11.6886C2.13036 9.83704 3.48015 8.24231 5.13546 7.04395H5.13678C4.64032 7.82881 4.63373 9.76329 6.08888 10.4994C5.46995 9.41564 5.3962 8.0777 6.04015 7.3837C6.68674 6.68576 7.77184 6.92543 8.46452 7.46798C8.25908 6.86354 7.65464 6.1037 6.74863 6.05103C8.45925 5.17136 10.399 4.6749 12.4546 4.6749C12.8392 4.6749 13.2184 4.69202 13.5937 4.72626C14.1916 4.96724 15.0686 5.80872 15.4782 6.33152C15.4782 6.33152 15.5072 5.71391 15.1634 4.96856C17.389 5.50848 18.449 6.41449 18.8941 6.853C18.985 7.813 19.2734 8.39111 19.654 9.30502C18.9337 8.49646 17.1216 7.19539 16.2578 6.88329C16.2578 6.88329 16.1867 7.71687 15.889 8.11852C14.1679 6.87539 13.3225 6.56461 13.3225 6.56461C11.4314 6.83457 10.2173 7.56412 9.55752 8.13696L10.133 8.62683C8.9939 8.97712 8.25382 9.95687 8.25382 9.95687C8.26172 9.97399 9.27176 10.1175 9.27176 10.1175C9.27176 10.1175 9.16904 11.304 10.6545 12.0481C11.9253 12.6841 13.7557 11.8953 15.4782 12.5854C14.3444 11.2777 13.5648 10.693 13.5648 10.693C13.5648 10.693 13.1144 10.5995 12.797 10.6008C12.402 10.6035 11.8133 10.6825 11.1654 10.4296C10.8573 10.3098 10.4965 10.0965 10.2146 9.91868C10.2146 9.91868 11.01 9.10222 12.1702 8.92181C12.1702 8.92181 13.2171 9.21679 14.0481 9.83045C14.5998 9.29317 15.1753 9.31029 15.1753 9.31029C15.1753 9.31029 14.6051 9.84362 14.7776 10.4889C15.6072 11.229 16.5067 12.2864 16.5067 12.2864C17.4232 11.7834 19.4143 11.8993 19.8239 12.3733C19.305 11.7017 18.5583 11.1407 17.9802 10.6601C17.9104 10.4086 17.2797 9.52889 17.173 9.44856C17.173 9.44856 17.7735 9.63424 18.3081 10.1136C18.4635 9.89498 18.7506 9.67111 19.143 9.57235C19.5473 9.91078 19.6171 10.4296 19.6066 10.5165C19.4235 10.7325 19.2471 10.8221 19.2471 10.8221L20.2163 11.8716L20.3137 11.1184C22.5485 14.3091 23.7679 18.0069 22.1995 22.6568L22.1929 22.6621ZM17.9776 15.7854L17.975 14.1353C17.975 14.1353 17.2388 13.8983 16.45 13.2872C14.8698 13.5269 12.9537 15.1164 12.9537 15.1164C12.9537 15.1164 13.6016 16.3437 14.3075 17.6672C15.5519 17.8384 17.3837 16.27 17.975 15.784L17.9776 15.7854ZM19.5671 18.7773C19.5671 18.7773 19.4407 18.0951 18.8994 17.4565L17.6668 17.4867C17.6668 17.4867 16.0023 18.9169 14.9883 18.9498C14.9883 18.9498 15.548 19.9901 15.8285 20.5327C16.3881 20.4115 17.3705 19.9691 17.7656 19.5108C17.7656 19.5108 18.0276 20.3549 17.9776 21.3491C18.5333 21.0252 19.2997 20.1534 19.5684 18.776L19.5671 18.7773ZM20.0741 13.3544C19.4525 13.8785 18.9244 14.1682 18.9244 14.1682L18.9297 15.8262C19.3761 16.3226 19.8146 16.7335 20.1439 17.4828C20.7667 16.3621 20.6482 14.7108 20.0741 13.3544Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76.0196 16.4765V25.4721H72.1598V16.8913C72.1598 14.3972 70.972 13.1211 68.9836 13.1211C66.7277 13.1211 65.1541 14.7238 65.1541 18.0792V25.4721H61.2943V9.73678H64.738L65.1238 11.637C66.2524 10.2122 67.7957 9.49974 69.7552 9.49974C73.5847 9.49974 76.0196 12.202 76.0196 16.4765ZM83.7957 5.19488V9.73678H89.4069V13.1514H83.7957V19.8912C83.7957 21.3463 84.4779 22.0877 85.933 22.0877C86.764 22.0877 87.7437 21.8204 88.5747 21.3753L89.852 24.6108C88.605 25.2943 87.0905 25.7091 85.4879 25.7091C82.0443 25.7091 79.936 23.7193 79.936 20.4548V13.1514H77.4129V9.73678H79.936V5.19488H83.7957ZM106.981 9.73809V25.4734H103.537L103.151 23.6627C101.963 24.9388 100.183 25.7118 98.1339 25.7118C93.7105 25.7118 90.5631 22.3564 90.5631 17.6064C90.5631 12.8564 93.7105 9.50106 98.1339 9.50106C100.183 9.50106 101.963 10.2727 103.151 11.5501L103.537 9.73941H106.981V9.73809ZM103.121 17.7539V17.4576C103.121 14.6369 101.013 13.0632 98.7567 13.0632C96.2336 13.0632 94.4229 15.0227 94.4229 17.6051C94.4229 20.1875 96.2336 22.147 98.7567 22.147C101.013 22.147 103.121 20.5733 103.121 17.7526V17.7539ZM110.651 21.0197C111.779 21.9099 113.204 22.4446 114.659 22.4446C116.114 22.4446 116.974 21.9692 116.974 21.108C116.974 18.6138 109.314 19.7121 109.314 14.2497C109.314 11.429 111.659 9.49974 115.162 9.49974C117.211 9.49974 119.11 10.1239 120.684 11.2815L118.784 14.1615C117.655 13.2713 116.379 12.7656 115.102 12.7656C113.824 12.7656 113.173 13.2699 113.173 13.9824C113.173 16.2974 120.833 15.1992 120.833 20.8104C120.833 23.7193 118.339 25.7091 114.568 25.7091C112.46 25.7091 110.441 25.1455 108.928 24.1657L110.649 21.0184L110.651 21.0197ZM139.061 9.73809L132.5 26.3636C130.837 30.5789 128.492 31.9748 125.019 31.9748C124.425 31.9748 123.831 31.9155 123.386 31.7667L123.891 27.9373C124.188 27.9965 124.515 28.0268 124.901 28.0268C126.742 28.0268 127.869 27.4922 128.612 25.6815L121.545 9.73809H125.85L130.69 20.9315L134.846 9.73809H139.061ZM31.2683 8.72805V13.478H40.3231V17.2192H31.2683V25.4734H27.2598V4.98682H41.4214V8.72805H31.2683ZM58.5513 9.73809V25.4734H55.1077L54.7218 23.6627C53.534 24.9388 51.7523 25.7118 49.7045 25.7118C45.2812 25.7118 42.1338 22.3564 42.1338 17.6064C42.1338 12.8564 45.2812 9.50106 49.7045 9.50106C51.7536 9.50106 53.534 10.2727 54.7218 11.5501L55.1077 9.73941H58.5513V9.73809ZM54.6915 17.7539V17.4576C54.6915 14.6369 52.5832 13.0632 50.3274 13.0632C47.8043 13.0632 45.9936 15.0227 45.9936 17.6051C45.9936 20.1875 47.8043 22.147 50.3274 22.147C52.5832 22.147 54.6915 20.5733 54.6915 17.7526V17.7539Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144.233 15.2313C144.233 9.05651 148.657 4.66211 154.892 4.66211C157.831 4.66211 160.385 5.64186 162.373 7.75017L160.74 9.35281C159.048 7.63034 157.089 6.88894 154.892 6.88894C150.053 6.88894 146.55 10.2443 146.55 15.2313C146.55 20.2183 150.053 23.5737 154.892 23.5737C157.089 23.5737 159.078 22.8613 160.771 21.1388L162.373 22.7125C160.384 24.8208 157.831 25.8005 154.892 25.8005C148.658 25.8005 144.233 21.4061 144.233 15.2313Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M177.78 16.5375V25.4738H175.554V16.7456C175.554 13.747 174.07 12.2326 171.606 12.2326C168.903 12.2326 167.033 14.0144 167.033 17.6661V25.4738H164.807V10.3627H164.836V2.90918H167.062V12.2616C168.161 10.8368 169.705 10.1243 171.753 10.1243C175.435 10.1243 177.78 12.6185 177.78 16.5375Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M195.565 10.3614V25.4725H193.636L193.369 23.1272C192.091 24.7008 190.103 25.7095 187.788 25.7095C183.393 25.7095 180.307 22.474 180.307 17.9018C180.307 13.3296 183.395 10.123 187.788 10.123C190.104 10.123 192.093 11.1331 193.369 12.7054L193.636 10.3601H195.565V10.3614ZM193.338 18.1099V17.724C193.338 14.2212 190.755 12.2024 187.964 12.2024C184.758 12.2024 182.531 14.5477 182.531 17.9031C182.531 21.2585 184.758 23.6039 187.964 23.6039C190.755 23.6039 193.338 21.6154 193.338 18.1112V18.1099Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M199.543 25.4738V2.90918H201.77V25.4725H199.543V25.4738Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M205.748 25.4738V2.90918H207.975V25.4725H205.748V25.4738Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M225.254 18.7038H213.052C213.409 21.7616 215.634 23.7211 218.663 23.7211C220.325 23.7211 221.869 23.0679 223.086 21.9696L224.333 23.6315C222.819 24.9682 220.8 25.7095 218.663 25.7095C214.062 25.7095 210.796 22.474 210.796 17.9018C210.796 13.3296 213.854 10.123 218.13 10.123C222.405 10.123 225.314 13.2111 225.314 17.6042C225.314 17.9611 225.314 18.3469 225.255 18.7025L225.254 18.7038ZM213.05 16.8035H223.085C222.699 13.9828 220.799 12.1128 218.127 12.1128C215.455 12.1128 213.465 14.0131 213.05 16.8035Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M241.137 16.5377V25.474H238.91V16.7457C238.91 13.7472 237.426 12.2328 234.962 12.2328C232.26 12.2328 230.39 14.0146 230.39 17.6662V25.474H228.163V10.3629H230.092L230.329 12.3513C231.458 10.8672 233.032 10.1245 235.11 10.1245C238.792 10.1245 241.137 12.6187 241.137 16.5377Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M258.832 10.3615V24.2848C258.832 29.1243 255.923 31.9451 250.934 31.9451C249.034 31.9451 247.134 31.5592 245.205 30.5202L246.125 28.5318C247.936 29.4812 249.391 29.8381 250.934 29.8381C254.586 29.8381 256.605 27.8193 256.605 24.2862V22.9798C255.358 24.5535 253.369 25.5622 251.083 25.5622C246.719 25.5622 243.661 22.3556 243.661 17.8137C243.661 13.2718 246.719 10.1245 251.083 10.1245C253.398 10.1245 255.388 11.1346 256.635 12.7069L256.902 10.3615H258.832ZM256.605 18.0218V17.636C256.605 14.162 254.051 12.2025 251.32 12.2025C248.203 12.2025 245.887 14.6374 245.887 17.8137C245.887 20.99 248.202 23.4539 251.32 23.4539C254.051 23.4539 256.605 21.4944 256.605 18.0205V18.0218Z\",\n fill: \"#37003C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M276.11 18.7038H263.908C264.265 21.7616 266.491 23.7211 269.519 23.7211C271.181 23.7211 272.726 23.0679 273.943 21.9696L275.19 23.6315C273.675 24.9682 271.657 25.7095 269.519 25.7095C264.917 25.7095 261.652 22.474 261.652 17.9018C261.652 13.3296 264.71 10.123 268.986 10.123C273.262 10.123 276.171 13.2111 276.171 17.6042C276.171 17.9611 276.171 18.3469 276.112 18.7025L276.11 18.7038ZM263.908 16.8035H273.943C273.557 13.9828 271.657 12.1128 268.985 12.1128C266.313 12.1128 264.324 14.0131 263.908 16.8035Z\",\n fill: \"#37003C\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1969_11622\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 276.169,\n height: 31.975,\n fill: \"white\"\n })))));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgFplChallengeLogo);\nexport default __webpack_public_path__ + \"static/media/fpl-challenge-logo.0b91d3f8.svg\";\nexport { ForwardRef as ReactComponent };","import { hiDPI, size } from \"polished\";\nimport styled from \"styled-components/macro\";\nimport { ReactComponent as FPLChallengeLogo } from \"../../img/fpl-challenge-logo.svg\";\nimport pattern2Desktop from \"../../img/pattern/pattern-2-d.png\";\nimport pattern2Desktop2x from \"../../img/pattern/pattern-2-d@2x.png\";\nimport pattern2Mobile from \"../../img/pattern/pattern-2-m.png\";\nimport pattern2Mobile2x from \"../../img/pattern/pattern-2-m@2x.png\";\nimport ButtonLink from \"../ButtonLink\";\nimport Dialog from \"../Dialog\";\nimport { ArrowRight } from \"../icons/Arrows\";\n\nconst ChallengeLink = styled.a`\n display: inline-block;\n margin-top: ${({ theme }) => theme.space[4]};\n padding: 1.3rem 2.4rem;\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.primary};\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n color: ${({ theme }) => theme.colors.white};\n text-align: center;\n text-decoration: none;\n`;\n\nconst ArrowIcon = styled(ArrowRight)`\n ${size(12)}\n`;\n\nconst ModalContent = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.space[4]};\n padding: ${({ theme }) => theme.space[2]};\n`;\n\nconst LinkWrap = styled.div`\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.space[2]};\n`;\n\nconst Background = styled.div`\n position: relative;\n border-radius: 16px;\n padding: ${({ theme }) => theme.space[3]};\n background: linear-gradient(\n 90deg,\n ${({ theme }) => theme.colors.fantasy} 0%,\n ${({ theme }) => theme.colors.blue} 100%\n );\n z-index: 1;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n padding: 2.4rem;\n }\n\n &::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n border-radius: 16px;\n background-image: url(${pattern2Mobile});\n background-size: 240px;\n background-repeat: no-repeat;\n background-position: -40px 20px;\n z-index: -1;\n transform: scaleX(-1);\n -webkit-transform: scaleX(-1);\n\n ${hiDPI(2)} {\n background-image: url(${pattern2Mobile2x});\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n background-image: url(${pattern2Desktop});\n background-position: -50px -50px;\n\n ${hiDPI(2)} {\n background-image: url(${pattern2Desktop2x});\n }\n }\n }\n`;\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.space[2]};\n width: 90%;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n width: 80%;\n }\n`;\n\nconst ModalCopy = styled.p`\n padding-top: ${({ theme }) => theme.space[4]};\n`;\n\nconst ChallengeLogo = styled(FPLChallengeLogo)`\n ${size(\"auto\", 220)}\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${size(\"auto\", 280)}\n }\n`;\n\nconst PlayChallengePanel = () => {\n return (\n \n );\n};\n\ninterface IProps {\n closeDialog: () => void;\n}\n\nconst TeamSavedModal: React.FC\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {picks.map((p) => (\n    \n \n \n \n PosForm\n \n \n \n GW\n \n \n \n Pts\n \n \n \n Fix\n ))}\n \n \n \n \n \n \n \n

    \n Create a season-long mini-league and face a new challenge every week!\n Starting with the NEW \"5 a Side\" event!\n

    \n \n
    \n \n \n Play Fantasy Challenge\n \n = ({ closeDialog }) => {\n return (\n \n );\n};\n\nexport default TeamSavedModal;\n","import { Link, navigate } from \"@reach/router\";\nimport { range } from \"lodash\";\nimport { size } from \"polished\";\nimport * as React from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport SaveContext from \"../../contexts/SaveContext\";\nimport { RootState } from \"../../core/store\";\nimport {\n getActiveChip,\n getActiveOrProposedTeamChipName,\n teamChipsHaveChanged,\n} from \"../../core/store/chips/reducers\";\nimport { getElementsById } from \"../../core/store/elements/reducers\";\nimport { showElementSummary } from \"../../core/store/elements/thunks\";\nimport { IElement } from \"../../core/store/elements/types\";\nimport { getEntry } from \"../../core/store/entries/reducers\";\nimport { fetchEntrySummary } from \"../../core/store/entries/thunks\";\nimport { IPickLight } from \"../../core/store/entries/types\";\nimport {\n getCurrentEvent,\n getNextEvent,\n} from \"../../core/store/events/reducers\";\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 getMyPicksLastUpdated,\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 { formatRawAsISO, formatRawAsLocal } from \"../../core/utils/datetime\";\nimport { getChipName } from \"../../utils/chips\";\nimport Alert from \"../Alert\";\nimport Button from \"../Button\";\nimport ChipList from \"../Chips/ChipList\";\nimport DeadlineBar from \"../DeadlineBar\";\nimport Dialog, { DialogButtonItem } from \"../Dialog\";\nimport { StyledElementFixtureBar } from \"../ElementFixtureBar\";\nimport Entry from \"../Entry\";\nimport Fixtures from \"../Fixtures\";\nimport FixturesForElement from \"../FixturesForElement/FixturesForElement\";\nimport { Glass, PatternWrapMain } from \"../GraphicPatterns\";\nimport HelmetHead from \"../HelmetHead\";\nimport { Divider } from \"../Keyline\";\nimport LatestAlert from \"../LatestAlert\";\nimport { Main, Secondary, Wrapper } from \"../Layout\";\nimport LeaderboardAd from \"../LeaderboardAd\";\nimport NewsTicker from \"../NewsTicker\";\nimport Pitch, { BenchRow, InnerBenchRow } from \"../Pitch\";\nimport Title from \"../Title\";\nimport DreamTeam from \"../icons/DreamTeam\";\nimport SaveBar from \"../squad/SaveBar\";\nimport TabPanel from \"../tabs/TabPanel\";\nimport Tabs from \"../tabs/Tabs\";\nimport Bench from \"./Bench\";\nimport BenchUnit from \"./BenchUnit\";\nimport ManagerUnit from \"./ManagerUnit\";\nimport MyTeamTable from \"./MyTeamTable\";\nimport PitchFormation from \"./PitchFormation\";\nimport TeamSavedModal from \"./TeamSavedModal\";\n\nconst renderPickValue =\n (initProps: { nextEventId?: number }) => (pick: IPickLight) => {\n return (\n \n );\n };\n\nconst DreamTeamLink = styled(Link)`\n ${size(9)};\n display: block;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n ${size(16)}\n }\n`;\n\nconst StyledGlass = styled(Glass)`\n @media (max-width: ${({ theme }) => theme.breakpoints[1]}) {\n margin: 0 0 1.2rem;\n border-radius: 0;\n }\n`;\n\nconst MyTeam: React.FC = () => {\n const player = useSelector(getPlayerData) as ILoggedInPlayer; // enforced by EntryRoute\n const activeChip = useSelector(getActiveChip);\n const chipInPlayName = useSelector(getActiveOrProposedTeamChipName);\n const changed = useSelector(hasMyTeamChanged);\n const chipsChanged = useSelector(teamChipsHaveChanged);\n const currentEvent = useSelector(getCurrentEvent);\n const elementsById = useSelector((state: RootState) =>\n getElementsById(state, undefined, activeChip?.id)\n );\n const entry = useSelector((state: RootState) =>\n getEntry(state, player.entry)\n );\n const formation = useSelector((state: RootState) =>\n getMyFormation(state, undefined, activeChip?.id)\n );\n const nextEvent = useSelector(getNextEvent);\n const picks = useSelector(getMyPicksProposed);\n const picksLastUpdated = useSelector(getMyPicksLastUpdated);\n const savingState = useSelector(getMyTeamSavingState);\n const settings = useSelector(\n (state: RootState) =>\n getSettings(state, undefined, activeChip?.id) as ISettings\n );\n const valid = useSelector(isMyTeamValid);\n\n const dispatch = useDispatch();\n\n const { setSaveState, saveState } = React.useContext(SaveContext);\n\n const makeCaptain = (elementId: number) => dispatch(changeCaptain(elementId));\n const makeViceCaptain = (elementId: number) =>\n dispatch(changeViceCaptain(elementId));\n const save = () => dispatch(saveMyTeam());\n const showElementDialog = (elementId: number) =>\n dispatch(showElementSummary(elementId));\n const substitute = (elementId: number) =>\n dispatch(actionSubstitution(elementId));\n\n const [pickForMenu, setPickForMenu] =\n React.useState\n \n \n Team Saved\n \n \n \n \n \n Dive into your leagues to track your performance, compare and see\n how you measure up against other managers.\n
    \n \n
    \n \n \n View my Leagues\n \n \n \n \n (null);\n\n React.useEffect(() => {\n // No more changes to be made, shouldn't be here ...\n if (!nextEvent) {\n setTimeout(() => navigate(\"/\", { replace: true }), 0);\n }\n dispatch(fetchMyTeam());\n dispatch(fetchEntrySummary(player.entry));\n }, [dispatch, nextEvent, player.entry]);\n\n const handleShowMenuForPickElement = (element: number) => {\n const matches = picks.filter((p) => p.element === element);\n if (matches.length) {\n setPickForMenu(matches[0]);\n }\n };\n\n const handleHideMenuForPick = () => {\n setPickForMenu(null);\n };\n\n const handleHideSaveModal = () => {\n setSaveState(null);\n };\n\n const renderDreamTeam = (pick: IPickLight) =>\n elementsById[pick.element].in_dreamteam ? (\n \n ) : null;\n\n const action = (\n type: \"substitute\" | \"makeCaptain\" | \"makeViceCaptain\",\n element: number\n ) => {\n handleHideMenuForPick();\n switch (type) {\n case \"substitute\":\n substitute(element);\n break;\n case \"makeCaptain\":\n makeCaptain(element);\n break;\n case \"makeViceCaptain\":\n makeViceCaptain(element);\n break;\n }\n };\n\n const showDialog = (element: IElement) => {\n showElementDialog(element.id);\n handleHideMenuForPick();\n };\n\n const handleSave = () => {\n save();\n // If previous save was made before the deadline of the previous event we set the saveState to be\n // initial to indicate †he initial save within a GW\n if (currentEvent) {\n if (\n picksLastUpdated &&\n new Date(picksLastUpdated) <= new Date(currentEvent.deadline_time)\n ) {\n setSaveState(\"initial\");\n }\n } else {\n // If the game hasn't started yet\n setSaveState(\"initial\");\n }\n };\n\n const renderMenu = () => {\n const pick = pickForMenu;\n if (!pick) {\n return null;\n }\n const element = elementsById[pick.element];\n const status = pick.subStatus;\n const startMax = settings.squad_squadplay;\n return (\n \n );\n };\n\n if (!entry || !picks.length) {\n return null;\n }\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 nextEventId: nextEvent?.id,\n });\n\n const getPicksWithoutElementType = (elementType: number) =>\n picks.filter((pick) => pick.elementType !== elementType);\n\n const managerPick = picks.find((p) => p.elementType === 5);\n\n const getBenchPickIndexes = () =>\n managerPick\n ? range(\n settings.squad_squadplay,\n getPicksWithoutElementType(managerPick.elementType).length\n )\n : range(settings.squad_squadplay, settings.squad_squadsize);\n\n return (\n <>\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 action(\"substitute\", pick.element)}\n width={1}\n variant=\"secondary\"\n >\n Switch\n \n \n action(\"substitute\", pick.element)}\n width={1}\n variant=\"secondary\"\n >\n Cancel\n \n \n action(\"makeCaptain\", pick.element)}\n width={1}\n >\n Make Captain\n \n \n action(\"makeViceCaptain\", pick.element)}\n width={1}\n >\n Make Vice Captain\n \n \n showDialog(element)}\n width={1}\n variant=\"tertiary\"\n >\n View Information\n \n \n \n \n \n );\n};\n\nexport { MyTeam as MyTeamTest };\nexport default MyTeam;\n","import { RouteComponentProps } from \"@reach/router\";\nimport moment from \"moment\";\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 { 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 HelmetHead from \"./HelmetHead\";\nimport { Main, Secondary, Wrapper } from \"./Layout\";\nimport Table from \"./Table\";\nimport Title from \"./Title\";\nimport { getShortNameFromId } from \"../utils/events\";\n\nconst DialogButton = styled.button`\n padding: 0;\n border: 0;\n background-color: transparent;\n font-family: ${({ theme }) => theme.fonts.bold};\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 & IPropsFromState & IPropsFromDispatch;\n\nclass TransfersHistory extends React.Component\n \n \n
    \n
    \n \n \n {activeChip && activeChip.chip_type === \"transfer\" && (\n \n )}\n {savingState === \"saved\" ? (\n \n ) : (\n \n )}\n {saveState === \"initial\" && (\n \n \n Pick Team - {entry.name}\n {nextEvent && (\n \n )}\n \n \n \n \n \n \n \n \n To change your captain use the menu which appears when clicking\n on a player\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n {activeChip?.name === \"manager\" && managerPick && (\n \n handleShowMenuForPickElement(managerPick.element)\n }\n renderPickValue={_renderPickValue}\n />\n )}\n \n \n {getBenchPickIndexes().map(\n (e, i) =>\n picks[e] && (\n \n handleShowMenuForPickElement(\n picks[e].element\n )\n }\n renderDreamTeam={renderDreamTeam}\n renderPickValue={_renderPickValue}\n />\n )\n )}\n \n \n \n \n \n \n \n \n \n

    {getChipName(activeChip.name)} Active

    \n \n Your team has been saved.\n \n Save Your Team\n \n \n )}\n {renderMenu()}\n \n \n {nextEvent && \n \n \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 entry,\n entryId,\n latestTransfers,\n showElementDialog,\n transfersHistory,\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 connect(mapStateToProps, mapDispatchToProps)(TransfersHistory);\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 {entry && (\n \n )}\n \n \n
    \n \n {transfersHistory.length || latestTransfers.length ? (\n <>\n \n \n \n ) : (\n \n )}\n
    \n \n 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
    TimeInOutActive{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 {getShortNameFromId(t.event)}\n \n

    \n If you are not logged in or are viewing another player's team\n then you will only be able to view transfers up to the last\n deadline.\n

    \n \n

    No transfers have been made yet for this team.

    \n \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 { 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 { getFinishedEvents } from \"../core/store/events/reducers\";\nimport { IEvent } from \"../core/store/events/types\";\nimport { getFinishedPhases } from \"../core/store/phases/reducers\";\nimport { IPhase } from \"../core/store/phases/types\";\nimport {\n getWinnersByEvent,\n getWinnersByPhase,\n} from \"../core/store/winners/reducers\";\nimport {\n fetchEventWinners,\n fetchPhaseWinners,\n} from \"../core/store/winners/thunks\";\nimport { IWinner } from \"../core/store/winners/types\";\nimport { isBlankWeek } from \"../utils/events\";\nimport { SelectField } from \"./FieldRenderers\";\nimport Footnote from \"./Footnote\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Link from \"./Link\";\nimport PrizesNav from \"./prizes/PrizesNav\";\nimport Table from \"./Table\";\nimport Title from \"./Title\";\n\nconst WinnersWrap = styled.div`\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n display: flex;\n }\n`;\ninterface IPropsFromState {\n eventWinners: Record;\n finishedEvents: IEvent[];\n finishedPhases: IPhase[];\n phaseWinners: Record;\n}\n\ninterface IPropsFromDispatch {\n fetchEventWinners: (eventId: number) => void;\n fetchPhaseWinners: (phaseId: number) => void;\n}\n\ntype Props = RouteComponentProps & IPropsFromState & IPropsFromDispatch;\n\ninterface IState {\n prizeEvent: number;\n prizePhase: number;\n}\n\nclass Winners extends React.Component {\n constructor(props: Props) {\n super(props);\n this.state = {\n prizeEvent: props.finishedEvents.length\n ? props.finishedEvents[props.finishedEvents.length - 1].id\n : 0,\n prizePhase: props.finishedPhases.length\n ? props.finishedPhases[props.finishedPhases.length - 1].id\n : 0,\n };\n }\n\n public refreshEventPrizes() {\n this.props.fetchEventWinners(this.state.prizeEvent);\n }\n\n public refreshPhasePrizes() {\n this.props.fetchPhaseWinners(this.state.prizePhase);\n }\n\n public componentDidMount() {\n if (this.state.prizeEvent) {\n this.refreshEventPrizes();\n }\n if (this.state.prizePhase) {\n this.refreshPhasePrizes();\n }\n }\n\n public componentDidUpdate(prevProps: Props, prevState: IState) {\n if (\n this.state.prizeEvent &&\n this.state.prizeEvent !== prevState.prizeEvent\n ) {\n this.refreshEventPrizes();\n }\n if (\n this.state.prizePhase &&\n this.state.prizePhase !== prevState.prizePhase\n ) {\n this.refreshPhasePrizes();\n }\n }\n\n public handlePrizeEventChange = (e: React.FormEvent) =>\n this.setState({ prizeEvent: Number(e.currentTarget.value) });\n\n public handlePrizePhaseChange = (e: React.FormEvent) =>\n this.setState({ prizePhase: Number(e.currentTarget.value) });\n\n public render() {\n const { finishedEvents, finishedPhases } = this.props;\n const eventWinners = this.props.eventWinners[this.state.prizeEvent] || [];\n const phaseWinners = this.props.phaseWinners[this.state.prizePhase] || [];\n return (\n <>\n \n \n \n );\n }\n}\n\nexport { Winners as WinnersTest };\n\nconst mapStateToProps = (state: RootState) => ({\n eventWinners: getWinnersByEvent(state),\n finishedEvents: getFinishedEvents(state),\n // Don't show overall phase\n finishedPhases: getFinishedPhases(state).filter((p) => p.id !== 1),\n phaseWinners: getWinnersByPhase(state),\n});\n\nconst mapDispatchToProps = (dispatch: ThunkDispatch): IPropsFromDispatch => ({\n fetchEventWinners: (eventId: number) => dispatch(fetchEventWinners(eventId)),\n fetchPhaseWinners: (phaseId: number) => dispatch(fetchPhaseWinners(phaseId)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Winners);\n","import { ThunkResult } from \"..\";\nimport { apiGet } from \"../../utils/api\";\nimport { IWinner } from \"./types\";\nimport * as actions from \"./actions\";\n\nexport const fetchEventWinners =\n (event: number): ThunkResult\n \n \n \n \n \n
    \n \n \n
    \n \n Prize Winners\n \n \n \n \n \n \n \n \n {finishedEvents.length ? (\n finishedEvents.map((e) => (\n \n {e.name}\n \n ))\n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n \n {!isBlankWeek(this.state.prizeEvent) ? (\n eventWinners.map((w) => (\n \n \n \n \n \n ))\n ) : (\n \n \n \n )}\n \n
    RankTeam & ManagerGW Pts{w.rank_sort}\n \n \n \n {w.first_name} {w.last_name}\n \n {w.team_name}
    {w.points}No winners\n \n \n * To be eligible to win a weekly prize, you must have joined\n the game before the start of the season or a minimum of two\n clear Gameweeks before the one in which you are top of the\n weekly leaderboard. Players who have played a chip that\n affects a Gameweek result (including Bench Boost, Free Hit,\n Triple Captain, Wildcard or Assistant Manager) will not be\n eligible to win a weekly prize for the Gameweek that such a\n chip has been used.\n \n \n \n \n \n {finishedPhases.length ? (\n finishedPhases.map((e) => (\n \n {e.name}\n \n ))\n ) : (\n \n )}\n \n \n \n \n \n \n \n \n \n \n {phaseWinners.map((w) => (\n \n \n \n \n \n ))}\n \n
    RankTeam & ManagerPhase Pts{w.rank_sort}\n \n \n \n {w.first_name} {w.last_name}\n \n {w.team_name}
    {w.points}> =>\n async (dispatch) => {\n try {\n await apiGet(\n `winners/event/${event}/`,\n dispatch,\n actions.fetchEventWinners,\n { event }\n );\n } catch (e) {\n return;\n }\n };\n\nexport const fetchPhaseWinners =\n (phase: number): ThunkResult> =>\n async (dispatch) => {\n try {\n await apiGet(\n `winners/phase/${phase}/`,\n dispatch,\n actions.fetchPhaseWinners,\n { phase }\n );\n } catch (e) {\n return;\n }\n };\n","import {\n Location,\n Redirect,\n RouteComponentProps,\n Router,\n WindowLocation,\n} from \"@reach/router\";\nimport React, { lazy, Suspense } from \"react\";\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 { Loading } from \"./App\";\nimport Copy from \"./Copy\";\nimport EntryHistory from \"./EntryHistory\";\nimport EntryUpdate from \"./EntryUpdate\";\nimport FDRContainer from \"./fdr/FDRContainer\";\nimport FixturesWrapper from \"./FixturesWrapper\";\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 Prizes from \"./Prizes\";\nimport Scout from \"./scout/Scout\";\nimport SetPieceTakers from \"./SetPieceTakers\";\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\";\nimport Winners from \"./Winners\";\nconst Help = lazy(() => import(\"./help/Help\"));\nconst Rules = lazy(() => import(\"./help/Rules\"));\nconst Terms = lazy(() => import(\"./help/Terms\"));\nconst PatchNotes = lazy(() => import(\"./help/PatchNotes\"));\nconst ReportName = lazy(() => import(\"./help/ReportName\"));\nconst WinnerDetails = lazy(() => import(\"./WinnerDetails\"));\n\ninterface IRouteChangeProps {\n action: () => void;\n}\n\ninterface IRouteChangeWorkerProps {\n location: WindowLocation;\n}\n\ntype RouteChangeProps = IRouteChangeProps & IRouteChangeWorkerProps;\n\nclass OnRouteChangeWorker extends React.Component {\n componentDidUpdate(prevProps: RouteChangeProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n this.props.action();\n }\n }\n\n render() {\n return null;\n }\n}\n\nconst OnRouteChange: React.FC = ({ action }) => (\n \n);\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 \n);\n\nconst Routes: React.FC\n \n
    \n \n
    \n \n \n

    Page not found

    Sorry, but the page you were looking for can't be found.

    = ({ player }) => {\n return (\n \n );\n};\n\nconst mapStateToProps = (state: RootState): IPropsFromState => ({\n player: getPlayerData(state),\n});\n\nexport default connect(mapStateToProps)(Routes);\n","import * as Sentry from \"@sentry/browser\";\nimport * as React from \"react\";\nimport { Wrapper, Main } from \"../Layout\";\nimport Copy from \"../Copy\";\n\ninterface IState {\n eventId: string | null;\n error: Error | null;\n}\n\nclass UpdatingErrorBoundary extends React.Component {\n public state: IState = { error: null, eventId: null };\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 return this.state.error ? (\n \n ) : (\n this.props.children\n );\n }\n}\n\nexport default UpdatingErrorBoundary;\n","import React, { useEffect, useState } from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\nimport {\n fetchNewsArticle,\n fetchPlaylist,\n getPulseTeamIdFromRefs,\n IPulseNewsArticle,\n IPulseRelatedArticle,\n IPulseTag,\n} from \"../../utils/pulse\";\nimport ScoutCard from \"../scout/ScoutCard\";\nimport { ScoutItem, ScoutList } from \"../scout/styles\";\nimport SubHeading from \"../SubHeading\";\nimport UpdatingErrorBoundary from \"./UpdatingErrorBoundary\";\n\nconst ArticleHeading = styled.h3`\n color: ${({ theme }) => theme.colors.darkPink};\n font-family: ${({ theme }) => theme.fonts.boldItalic};\n`;\n\nconst UpdatingArticle = styled.div`\n ul {\n margin-left: ${({ theme }) => theme.space[1]};\n\n li {\n line-height: 2;\n list-style-type: disc;\n }\n }\n\n a {\n color: ${({ theme }) => theme.colors.darkPink};\n text-decoration: none;\n }\n`;\n\ninterface IPulsePlaylistItem {\n id: number;\n type: string;\n response: any;\n}\n\ninterface IPulsePlaylist {\n items: IPulsePlaylistItem[];\n title: string;\n}\n\nconst UpdatingContent: React.FC = () => {\n const [updatingArticle, setUpdatingArticle] = useState}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n window.scrollTo(0, 0)} />\n \n \n
    \n \n
    \n \n \n

    The game is updating and will be available soon.

    \n Please try again later when the updated scores / teams will be\n available.\n

    (null);\n const [updatingPlaylist, setUpdatingPlaylist] =\n useState(null);\n const [externalNews, setExternalNews] =\n useState | null>(null);\n useEffect(() => {\n Promise.all([fetchNewsArticle(2204115), fetchPlaylist(2204122, 10)]).then(\n (data) => {\n const [updatingArticleData, updatingPlaylistData] = data;\n setUpdatingArticle(updatingArticleData);\n setUpdatingPlaylist(updatingPlaylistData);\n\n const relatedTextContentIds = updatingPlaylistData.items\n .reduce(\n (acc: any, cur: any) => [\n ...acc,\n ...cur.response.related.slice(0, 2),\n ],\n []\n )\n .filter((r: IPulseRelatedArticle) => r.type === \"TEXT\")\n .map((r: IPulseRelatedArticle) => r.id);\n\n const newsRequests: [Promise] =\n relatedTextContentIds.map((id: number) => fetchNewsArticle(id));\n\n Promise.all(newsRequests).then((articles) => {\n const externalNewsData = articles.filter((a) =>\n a\n ? a.tags.some((tag: IPulseTag) => tag.label === \"External\")\n : false\n );\n if (externalNewsData.length > 0) {\n const externalNewsById: Record =\n externalNewsData.reduce(\n (acc, curr) => ({\n ...acc,\n [curr.id]: curr,\n }),\n {}\n );\n\n setExternalNews(externalNewsById);\n }\n });\n }\n );\n }, []);\n\n if (!updatingArticle || !updatingPlaylist) {\n return null;\n }\n\n const getOptaCodeFromTags = (article: IPulseNewsArticle) => {\n const OptaCodeTagsArray = article.tags?.filter(\n (x) => x.label.indexOf(\"OptaID_\") !== -1\n );\n\n const OptaCodeTagLabel =\n OptaCodeTagsArray && OptaCodeTagsArray.length > 0\n ? OptaCodeTagsArray[0].label\n : \"\";\n\n const OptaCode = OptaCodeTagLabel\n ? Number(OptaCodeTagLabel.split(\"_t\")[1])\n : 0;\n\n return OptaCode;\n };\n\n const buildTeamsArray = (\n relatedArticles: any[],\n externalNews: Record\n ) =>\n relatedArticles.map((r) => {\n const externalArticle = externalNews[r.id] || null;\n const refs = externalArticle ? externalArticle.references : null;\n return {\n code: externalArticle ? getOptaCodeFromTags(externalArticle) : 0,\n id: 0,\n name: \"\",\n short_name: \"\",\n unavailable: false,\n pulse_id: refs && refs.length > 0 ? getPulseTeamIdFromRefs(refs) : 0,\n };\n });\n\n return (\n \n );\n};\n\nconst UpdatingWrapper: React.FC = () => (\n \n);\n\nexport default UpdatingWrapper;\n","import * as React from \"react\";\nimport { IServerError } from \"../core/store/global/types\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Copy from \"./Copy\";\nimport UpdatingContent from \"./news/UpdatingContent\";\n\ninterface IProps {\n error: IServerError;\n}\n\nconst HomeOrHelp = () => (\n \n);\n\nconst renderError = (e: IServerError) => {\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 \n \n \n \n

    {updatingArticle.description}

    \n \n {updatingArticle.subtitle}\n \n {updatingPlaylist.title}\n {updatingPlaylist.items.slice(0, 3).map((i) => {\n return (\n \n );\n })}\n \n \n \n \n

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

    home pagecontact us\n \n \n

    Permission denied

    \n Sorry, but you don't have permission to perform the request action.\n

    \n \n \n \n

    Page not found

    Sorry, but the page you were looking for can't be found.

    \n \n ) : (\n \n );\n default:\n return (\n \n );\n }\n};\n\nconst ServerError: React.FC\n \n \n \n

    Unavailable

    \n Sorry, but we are unable to load the requested page at this time.\n

    Please try again in a few minutes.

    \n \n \n

    Error

    \n Sorry, but there has been an unexpected error processing your\n request.\n

    \n = ({ error }) => {\n return (\n \n );\n};\n\nexport default ServerError;\n","import { navigate } from \"@reach/router\";\nimport React, { useEffect } from \"react\";\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 { formatErrorMsg, getErrorType } from \"./errors\";\n\nconst ConfirmBtnWrapper = styled.div`\n display: inline-block;\n margin-right: ${({ theme }) => theme.space[3]};\n`;\n\nconst AutoJoinDialog: React.FC = () => {\n const reduxDispatch = useDispatch\n \n
    {renderError(error)}
    ();\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 ) : null;\n};\n\nexport default AutoJoinDialog;\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\n \n \n \n Join League{league && `: ${league.name}`}\n \n {isPlayerInLeague && (\n <>\n \n \n )}\n {!isPlayerInLeague && (\n <>\n {error ? (\n <>\n \n \n ) : (\n <>\n \n \n \n )}\n \n )}\n \n \n You are already in this league\n \n \n {settings && formatErrorMsg(error, settings)}\n \n \n

    Please press confirm to join league: {league.name}.

    \n {code && (\n \n )}\n \n \n \n (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","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;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nfunction SvgMore(_ref, svgRef) {\n let {\n title,\n titleId,\n ...props\n } = _ref;\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: \"M6,12 C6,13.656821 4.65660239,15 2.99951184,15 C1.34242128,15 0,13.656821 0,12 C0,10.343179 1.34244569,9 2.99951184,9 C4.65660239,9 6,10.343179 6,12 Z M15,12 C15,13.656821 13.656821,15 12,15 C10.343179,15 9,13.656821 9,12 C9,10.343179 10.343179,9 12,9 C13.656821,9 15,10.343179 15,12 Z M24,12 C24,13.656821 22.6575543,15 21.0004882,15 C19.3433976,15 18,13.656821 18,12 C18,10.343179 19.3433976,9 21.0004882,9 C22.6575787,9 24,10.343179 24,12 Z\",\n transform: \"rotate(90 12 12)\"\n })));\n}\nconst ForwardRef = /*#__PURE__*/React.forwardRef(SvgMore);\nexport default __webpack_public_path__ + \"static/media/more.ca74d94a.svg\";\nexport { ForwardRef as ReactComponent };","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { INavLink } from \"../../core/hooks/types\";\nimport useDocumentEventHandler from \"../../core/hooks/useDocumentEventHandler\";\nimport \"./Dropdown.css\";\nimport { ReactComponent as BaseExternalIcon } from \"../../img/icons/external.svg\";\nimport { ReactComponent as BaseMoreIcon } from \"../../img/icons/more.svg\";\nimport { size } from \"polished\";\n\nconst MoreButton = styled.button`\n display: flex;\n align-items: center;\n margin: 0;\n font-size: 1.1rem;\n font-family: ${({ theme }) => theme.fonts.bold};\n line-height: 4rem;\n cursor: pointer;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 1.3rem;\n line-height: 4.8rem;\n }\n`;\n\ntype Props = {\n text: string;\n links: INavLink[];\n};\n\nconst ExternalIcon = styled(BaseExternalIcon)`\n ${size(8)}\n margin-left: 0.4rem;\n fill: black;\n`;\n\nconst MoreIcon = styled(BaseMoreIcon)`\n ${size(14)}\n margin-left: 0.4rem;\n fill: ${({ theme }) => theme.colors.primary};\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};\n\nexport default Dropdown;\n","import { Link } from \"@reach/router\";\nimport React from \"react\";\nimport styled from \"styled-components/macro\";\nimport { INavLink } from \"../../core/hooks/types\";\nimport \"./ListItem.css\";\nimport { ReactComponent as BaseExternalIcon } from \"../../img/icons/external.svg\";\nimport { size } from \"polished\";\n\nconst LIStyled = styled.li`\n margin-right: ${({ theme }) => theme.space[1]};\n list-style-type: none;\n display: inline-block;\n font-family: ${({ theme }) => theme.fonts.bold};\n\n a {\n font-size: ${({ theme }) => theme.fontSizes[0]};\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n font-size: 1.3rem;\n line-height: 4.8rem;\n }\n }\n`;\n\nconst ExternalIcon = styled(BaseExternalIcon)`\n ${size(8)}\n margin-left: 0.4rem;\n fill: white;\n`;\n\nconst ListItem = React.forwardRef\n \n {text}\n \n \n \n
      \n {links.map((link) => (\n \n ))}\n
  • \n {link.useRouter ? (\n \n {link.text}\n \n ) : (\n
  • \n {link.text}\n {link.indicateExternal && }\n \n )}\n (\n ({ useRouter, text, href, rel, indicateExternal, isDraft, target }, ref) => {\n return (\n \n );\n }\n);\n\nexport default ListItem;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport styled from \"styled-components/macro\";\nimport { INavLink } from \"../../core/hooks/types\";\nimport usePriorityNav from \"../../core/hooks/usePriorityNav\";\nimport { RootState } from \"../../core/store\";\nimport { getPlayerData } from \"../../core/store/player/reducers\";\nimport Dropdown from \"./Dropdown\";\nimport ListItem from \"./ListItem\";\nimport {\n getCurrentEvent,\n getNextEvent,\n} from \"../../core/store/events/reducers\";\nimport { getServerError } from \"../../core/store/global/reducers\";\nimport { getEntry } from \"../../core/store/entries/reducers\";\n\ninterface IPropsFromState {\n links: INavLink[];\n}\n\nconst StyledNav = styled.nav`\n white-space: nowrap;\n`;\n\nconst StyledUL = styled.ul`\n display: inline-block;\n vertical-align: middle;\n font-size: 0;\n padding: 0;\n display: flex;\n`;\n\nconst Navigation: React.FC\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 \n {indicateExternal && {text}}\n \n )}\n = ({ links }) => {\n const [measuredRef, visibleLinks, nonVisibleLinks] = usePriorityNav({\n links,\n offset: 40,\n });\n return (\n \n \n \n );\n};\n\nexport { Navigation as NavigationTest };\n\nconst mapStateToProps = (state: RootState): IPropsFromState => {\n const player = getPlayerData(state);\n const currentEvent = getCurrentEvent(state);\n const nextEvent = getNextEvent(state);\n const serverError = getServerError(state);\n const entry = player && player.entry ? getEntry(state, player.entry) : null;\n\n const logoutNavLink = {\n useRouter: false,\n href: `${process.env.REACT_APP_PLUSERS_BASE}/accounts/logout/?app=plfpl-web&redirect_uri=${window.location.protocol}//${window.location.host}/`,\n text: \"Sign Out\",\n };\n\n const fplChallengeLink = {\n useRouter: false,\n href: \"//fplchallenge.premierleague.com\",\n text: \"FPL Challenge\",\n isDraft: true,\n };\n\n const podcastNavLink = {\n useRouter: false,\n href: \"//premierleague.com/official-fpl-podcast/\",\n text: \"Podcast\",\n };\n\n let links: INavLink[] = [];\n\n const useRouter = !serverError;\n\n if (player && player.entry) {\n // Logged in with entry\n links = [{ useRouter, href: \"/\", text: currentEvent ? \"Status\" : \"Home\" }];\n if (currentEvent && entry && entry.started_event <= currentEvent.id) {\n links.push({\n useRouter,\n href: `/entry/${player.entry}/event/${currentEvent.id}`,\n text: \"Points\",\n });\n }\n if (nextEvent) {\n links.push({ useRouter, href: \"/my-team\", text: \"Pick Team\" });\n }\n links.push(\n { useRouter, href: \"/transfers\", text: \"Transfers\" },\n { useRouter, href: \"/leagues\", text: \"Leagues & Cups\" },\n { useRouter, href: \"/fixtures\", text: \"Fixtures\" },\n { useRouter, href: \"/the-scout\", text: \"The Scout\" },\n podcastNavLink,\n { useRouter, href: \"/statistics\", text: \"Stats\" },\n { useRouter, href: \"/prizes\", text: \"Prizes\" },\n { useRouter, href: \"/help\", text: \"Help\" },\n fplChallengeLink,\n logoutNavLink\n );\n } else if (player) {\n // Logged in, no entry\n links = [\n { useRouter, href: \"/\", text: \"Home\" },\n { useRouter, href: \"/squad-selection\", text: \"Squad Selection\" },\n { useRouter, href: \"/help\", text: \"Help\" },\n logoutNavLink,\n ];\n } else {\n // Logged Out\n links = [\n { useRouter, href: \"/\", text: \"Home\" },\n { useRouter, href: \"/prizes\", text: \"Prizes\" },\n { useRouter, href: \"/the-scout\", text: \"Scout\" },\n podcastNavLink,\n { useRouter, href: \"/help\", text: \"Help\" },\n { useRouter, href: \"/statistics\", text: \"Statistics\" },\n fplChallengeLink,\n // rotoNavLink\n ];\n }\n return {\n links,\n };\n};\n\nexport default connect(mapStateToProps)(Navigation);\n","import * as Sentry from \"@sentry/browser\";\nimport { hiDPI, size } from \"polished\";\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport styled, { ThemeProvider } from \"styled-components/macro\";\nimport GlobalStyle from \"../GlobalStyle\";\nimport { SaveProvider } from \"../contexts/SaveContext\";\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 { ReactComponent as BaseHeadlineLogo } from \"../img/headline-logo.svg\";\nimport Theme from \"../theme\";\nimport { IPlayerCompProps, getPlayerComp } from \"../utils/player-comps\";\nimport pattern2Desktop from \"./../img/pattern/pattern-2-d.png\";\nimport pattern2Desktop2x from \"./../img/pattern/pattern-2-d@2x.png\";\nimport pattern2Mobile from \"./../img/pattern/pattern-2-m.png\";\nimport pattern2Mobile2x from \"./../img/pattern/pattern-2-m@2x.png\";\nimport ElementDialog from \"./ElementDialog\";\nimport FixtureBroadcasters from \"./FixtureBroadcasters\";\nimport HelmetHead from \"./HelmetHead\";\nimport { Main, Wrapper } from \"./Layout\";\nimport Routes from \"./Routes\";\nimport ServerError from \"./ServerError\";\nimport AutoJoinDialog from \"./leagues/AutoJoinDialog\";\nimport Navigation from \"./nav/Navigation\";\n\nconst GameHeader = styled.div`\n background-image: url(${pattern2Mobile}), url(${pattern2Mobile}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-repeat: no-repeat;\n background-position: right 140px bottom -15px, right -18px bottom 27px, 0;\n background-size: 220px 312px, 220px 312px, auto;\n\n ${hiDPI(2)} {\n background-image: url(${pattern2Mobile2x}), url(${pattern2Mobile2x}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n background-image: url(${pattern2Desktop}), url(${pattern2Desktop}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n background-position: 50% -460px, right -73px bottom -24px, 0;\n background-size: 618px 873px, 618px 873px, auto;\n\n ${hiDPI(2)} {\n background-image: url(${pattern2Desktop2x}), url(${pattern2Desktop2x}),\n linear-gradient(\n to right,\n ${({ theme }) => theme.colors.lightBlue},\n ${({ theme }) => theme.colors.darkBlue}\n );\n }\n }\n`;\n\nconst StyledPlayerComp = styled.div\n {visibleLinks.map((link) => (\n \n ))}\n {!!nonVisibleLinks.length && (\n \n )}\n `\n /* Until we come up with a wrapper without Flex */\n flex: 1;\n background-image: url(${(props) => props.images.x1});\n background-repeat: no-repeat;\n background-position: right 2rem bottom;\n background-size: 175px 117px;\n\n ${hiDPI(2)} {\n background-image: url(${(props) => props.images.x2});\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n background-size: 360px 240px;\n }\n`;\n\nconst HeadlineLogo = styled(BaseHeadlineLogo)`\n ${size(32, 139)}\n margin: 2.8rem 0 2rem;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[3]}) {\n ${size(104, 453)}\n margin: 5.6rem 0 3.5rem;\n }\n`;\n\ninterface IProps {\n bootstrapped: boolean;\n serverError: IServerError | null;\n}\n\nexport const Loading: React.FC = () => (\n \n);\n\nconst App: React.FC\n \n
    \n \n
    Loading ... = ({ bootstrapped, serverError }) => {\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 \n <>\n \n {serverError ? (\n \n \n \n \n \n \n \n \n \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\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 \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 { IRegion } from \"./types\";\n\n// Action Creators\nexport const addRegions = createAsyncAction(\n \"ADD_REGIONS_START\",\n \"ADD_REGIONS_SUCCESS\",\n \"ADD_REGIONS_FAILURE\"\n)();\n","import { combineReducers } from \"redux\";\nimport { getType } from \"typesafe-actions\";\nimport { RootAction, RootState } from \"../\";\nimport * as actions from \"./actions\";\nimport { IRegion, IState } from \"./types\";\n\n// State Reducer\nexport default combineReducers({\n byId: (state = {}, action: RootAction) => {\n switch (action.type) {\n case getType(actions.addRegions.success):\n const newState: { [key: string]: IRegion } = {};\n action.payload.forEach((team) => {\n newState[team.id] = team;\n });\n return newState;\n default:\n return state;\n }\n },\n});\n\n// State Selectors\nexport const getRegionsById = (state: RootState) => state.regions.byId;\n\nexport const getRegions = (state: RootState) =>\n Object.keys(state.regions.byId).map((r) => state.regions.byId[r]);\n","import { 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 { 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 https://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\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\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 https://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?: Config) {\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 https://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?: Config) {\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 \"react-app-polyfill/ie11\";\nimport \"react-app-polyfill/stable\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport App from \"./components/App\";\nimport configureStore from \"./core/configureStore\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nif (process.env.REACT_APP_SENTRY_ENVIRONMENT) {\n Sentry.init({\n dsn: \"https://81d88aa7bc0b46739acf531684529abf@sentry.io/1462585\",\n environment: process.env.REACT_APP_SENTRY_ENVIRONMENT,\n whitelistUrls: [/premierleague\\.com/, /ismgames\\.com/],\n ignoreErrors: [\n /Unexpected token/,\n /from accessing a cross-origin frame/,\n /NetworkError when attempting to fetch/,\n /Failed to fetch/,\n /Unexpected end of input/,\n /Service Unavailable/,\n /contextMenuMessageHandler/,\n /find variable: webkit/,\n /NPObject deleted/,\n /touchDownX/,\n /SecurityError/,\n /ntp is not defined/,\n /Permission denied to access property/,\n /NPMethod called on non-NPObject/,\n /\\[Immer\\] minified error nr: 18 'ES5'/,\n /NoModificationAllowedError/,\n /Trust Tokens/,\n /send-redemption-record/,\n /GVLError/,\n /token-redemption/,\n ],\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: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\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\n \n > => 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","export default __webpack_public_path__ + \"static/media/pattern-2-crop-184.d7588c45.png\";","import { Link } from \"@reach/router\";\nimport { rgba } from \"polished\";\nimport React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\n\nconst NavList = styled.ul`\n display: flex;\n margin: 0 20% 0 0;\n padding: 0;\n border-radius: ${({ theme }) => theme.radii[0]};\n list-style-type: none;\n background: #edf1f9;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[1]}) {\n margin-right: 33%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[4]}) {\n margin-right: 66%;\n }\n`;\n\nconst NavItem = styled.li`\n flex: 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 margin: 0.2rem;\n padding: 0.7rem ${({ theme }) => theme.space[2]};\n color: inherit;\n font-family: ${({ theme }) => theme.fonts.bold};\n font-size: ${({ theme }) => theme.fontSizes[0]};\n text-align: center;\n text-decoration: none;\n\n ${(props) =>\n props.isCurrent &&\n css`\n background: white;\n box-shadow: 0 1px 4px 0 ${rgba(\"black\", 0.16)};\n border-radius: 2px;\n `}\n`;\n\ninterface ILinks {\n href: string;\n text: string;\n}\n\ninterface ISubNav {\n links: ILinks[];\n}\n\nconst SubNav: React.FC = ({ links }) => (\n \n);\n\nexport default SubNav;\n","import * 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 {links.map((l) => (\n \n ))}\n \n \n \n {l.text}\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 * as React from \"react\";\nimport { Box } from \"rebass/styled-components\";\nimport styled from \"styled-components/macro\";\n\nconst StyledLatestAlert = styled.div`\n padding: ${(props) => props.theme.space[1]} ${(props) => props.theme.space[2]};\n border-radius: ${({ theme }) => theme.radii[0]};\n background: ${({ theme }) => theme.colors.lightPurple};\n color: ${({ theme }) => theme.colors.white};\n font-family: ${({ theme }) => theme.fonts.bold};\n`;\n\n// const StyledAnchor = styled.a`\n// color: ${({ theme }) => theme.colors.white};\n// text-decoration: underline;\n// font-family: ${({ theme }) => theme.fonts.bold};\n// `;\n\nconst LatestAlert: React.FC = () => {\n const showAlert = false;\n if (!showAlert) {\n return null;\n }\n return (\n \n );\n};\n\nexport default LatestAlert;\n","export default __webpack_public_path__ + \"static/media/pattern-2-crop-90.0e86ae39.png\";","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 }\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\ninterface IMainProps {\n isWide?: boolean;\n}\n\nexport const Main = styled.div\n \n \n \n

    \n Gameweek 17 will remain open after the conclusion of Sunday’s matches.\n More information will follow in due course.\n

    `\n padding-top: 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 { 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"],"sourceRoot":""}