{"version":3,"sources":["components/help/HelpNav.tsx","components/Collapsible.tsx","components/help/Rules.tsx"],"names":["NavList","styled","ul","theme","space","props","radii","breakpoints","NavItem","li","NavLink","isCurrent","rest","css","colors","yellow","HelpNav","t","useTranslation","links","href","text","map","l","to","window","location","pathname","StyledCollapsible","div","BoxWrapStyles","Button","button","CollapseIcon","isRTL","i18n","language","CollapsibleContent","Title","h3","lastId","Collapsible","state","open","id","toggle","setState","this","newId","children","headingText","type","onClick","xmlns","viewBox","fillRule","d","React","Component","Rules","createPageViewData","elementTypes","events","eventsById","phases","settings","Squad","Managing","Transfers","Chips","Deadlines","Scoring","Leagues","withTranslation","connect","getSettings","getElementTypes","getEvents","getEventsById","getPhases","squadSize","squad_squadsize","et","elSelect","squad_squadplay","elType","singular_name","teamBudget","squad_total_spend","teamLimit","squad_team_limit","squadPlay","config","transfersLimit","transfersCost","until1","name","from2","until2","from3","event","formatRawAsLocalI18n","deadline_time","dateLocales","scoring","point_scored","rebound","assist","block","steal","turnover","my"],"mappings":"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","file":"static/js/4.304f95c2.chunk.js","sourcesContent":["import React from \"react\";\nimport { Link } from \"@reach/router\";\nimport styled, { css } from \"styled-components/macro\";\nimport { useTranslation } from \"react-i18next\";\n\nconst NavList = styled.ul`\n display: flex;\n align-items: center;\n margin-left: 3%;\n margin-top: ${({ theme }) => theme.space[2]};\n margin-right: 3%;\n margin-bottom: ${({ theme }) => theme.space[5]};\n padding: 0;\n border-radius: ${(props) => props.theme.radii[0]};\n background-color: #ddd;\n list-style-type: none;\n\n @media (min-width: ${({ theme }) => theme.breakpoints[2]}) {\n margin-right: 20%;\n margin-left: 20%;\n }\n\n @media (min-width: ${({ theme }) => theme.breakpoints[5]}) {\n margin-right: 30%;\n margin-left: 30%;\n }\n`;\n\nconst NavItem = styled.li`\n flex: 1;\n list-style-type: none;\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 border-radius: ${({ theme }) => theme.radii[0]};\n background-color: transparent;\n color: inherit;\n text-align: center;\n text-decoration: none;\n\n ${(props) =>\n props.isCurrent &&\n css`\n background-color: ${({ theme }) => theme.colors.yellow};\n `}\n`;\n\nconst HelpNav: React.FC = () => {\n const { t } = useTranslation();\n\n const links = [\n { href: \"/help/rules\", text: t(\"helpNav.item2\", \"Rules\") },\n { href: \"/help/terms\", text: t(\"helpNav.item3\", \"T&C's\") },\n { href: \"/help\", text: t(\"helpNav.item1\", \"Help\") },\n { href: \"/help/updates\", text: t(\"helpNav.item4\", \"Updates\") },\n ];\n\n return (\n \n );\n};\n\nexport default HelpNav;\n","import React from \"react\";\nimport styled, { css } from \"styled-components/macro\";\nimport i18n from \"../i18n\";\nimport { isRTL } from \"../utils/locale\";\nimport Copy from \"./Copy\";\nimport { BoxWrapStyles } from \"./Utils\";\n\nconst StyledCollapsible = styled.div`\n ${BoxWrapStyles}\n margin-bottom: ${({ theme }) => theme.space[2]};\n border: 1px solid ${({ theme }) => theme.colors.yellow};\n border-radius: ${(props) => props.theme.radii[0]};\n`;\n\nconst Button = styled.button`\n display: flex;\n align-items: flex-start;\n width: 100%;\n padding: ${({ theme }) => theme.space[2]};\n border: 0;\n border-radius: ${(props) => props.theme.radii[0]};\n background-color: white;\n font-size: 1.4rem;\n text-align: start;\n\n :hover {\n background-color: ${({ theme }) => theme.colors.yellow};\n }\n\n svg {\n fill: black;\n }\n\n &[aria-expanded=\"true\"] {\n background-color: ${({ theme }) => theme.colors.yellow};\n\n svg {\n transform: rotate(180deg);\n }\n }\n`;\n\nconst CollapseIcon = styled.div`\n width: 14px;\n flex-shrink: 0;\n ${isRTL(i18n.language)\n ? css`\n margin-left: 10px;\n `\n : css`\n margin-right: 10px;\n `}\n`;\n\nconst CollapsibleContent = styled.div`\n padding: ${({ theme }) => theme.space[2]};\n background-color: white;\n\n &[aria-hidden] {\n display: none;\n }\n\n &[aria-hidden=\"false\"] {\n display: block;\n }\n`;\n\nconst Title = styled.h3`\n margin: 0;\n`;\n\n// Used to generate unique ids for collapsible content / aria controls\nlet lastId = 0;\nconst newId = (prefix = \"ism-id\") => `${prefix}${++lastId}`;\n\ninterface IProps {\n headingText: string;\n}\n\ninterface IState {\n open: boolean;\n}\n\nclass Collapsible extends React.Component {\n public state = { open: false };\n public id = \"\";\n public toggle = () => this.setState({ open: !this.state.open });\n\n componentDidMount() {\n this.id = newId(\"ism-collapsible-\");\n }\n\n render() {\n const { children, headingText } = this.props;\n return (\n \n \n <Button\n type=\"button\"\n onClick={this.toggle}\n aria-expanded={this.state.open}\n aria-controls={this.id}\n >\n <CollapseIcon>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 8\">\n <path\n fillRule=\"nonzero\"\n d=\"M7 5.172L2.05.222.636 1.636 7 8l6.364-6.364L11.95.222z\"\n />\n </svg>\n </CollapseIcon>\n {headingText}\n </Button>\n \n \n {children}\n \n \n );\n }\n}\n\nexport default Collapsible;\n","import { RouteComponentProps } from \"@reach/router\";\nimport React from \"react\";\nimport {\n useTranslation,\n WithTranslation,\n withTranslation,\n} from \"react-i18next\";\nimport { connect } from \"react-redux\";\nimport { Box } from \"rebass/styled-components\";\nimport { RootState } from \"../../core/store\";\nimport { getElementTypes } from \"../../core/store/element-types/reducers\";\nimport { IElementType } from \"../../core/store/element-types/types\";\nimport { getEvents, getEventsById } from \"../../core/store/events/reducers\";\nimport { IEvent, IEventsById } from \"../../core/store/events/types\";\nimport { getSettings } from \"../../core/store/game/reducers\";\nimport { ISettings } from \"../../core/store/game/types\";\nimport { getPhases } from \"../../core/store/phases/reducers\";\nimport { IPhase } from \"../../core/store/phases/types\";\nimport { formatRawAsLocalI18n } from \"../../core/utils/datetime\";\nimport i18n, { dateLocales } from \"../../i18n\";\nimport { isRTL } from \"../../utils/locale\";\nimport { createPageViewData } from \"../../utils/tealium\";\nimport Collapsible from \"../Collapsible\";\nimport Copy from \"../Copy\";\nimport { Main, Wrapper } from \"../Layout\";\nimport Table from \"../Table\";\nimport { VisuallyHidden } from \"../Utils\";\nimport HelpNav from \"./HelpNav\";\n\ninterface IPropsFromState {\n elementTypes: IElementType[];\n events: IEvent[];\n eventsById: IEventsById;\n phases: IPhase[];\n settings: ISettings | null;\n}\ntype Props = RouteComponentProps & IPropsFromState & WithTranslation;\n\nclass Rules extends React.Component {\n public componentDidMount() {\n createPageViewData(\"rules\");\n }\n public render() {\n const { elementTypes, events, eventsById, phases, settings, t } =\n this.props;\n return (\n settings && (\n \n
\n \n \n \n

{t(\"rules:title.sub\", \"Rules\")}

\n
\n \n \n \n \n \n \n \n
\n
\n
\n )\n );\n }\n}\n\nexport { Rules as RulesTest };\n\nconst mapStateToProps = (state: RootState) => ({\n settings: getSettings(state),\n elementTypes: getElementTypes(state),\n events: getEvents(state),\n eventsById: getEventsById(state),\n phases: getPhases(state),\n});\n\nexport default withTranslation(\"rules\")(connect(mapStateToProps)(Rules));\n\ninterface ISquadProps {\n elementTypes: IElementType[];\n settings: ISettings;\n}\nconst Squad: React.FC = ({ elementTypes, settings }) => {\n const { t } = useTranslation(\"rules\");\n return (\n \n
{t(\"squad.squadSize.titlen\", \"Roster Size\")}
\n

\n {t(\n \"squad.squadSize.p1n\",\n \"To join the game select a fantasy basketball roster of {{ squadSize }} players, consisting of:\",\n { squadSize: settings.squad_squadsize }\n )}\n

\n\n
    \n {elementTypes.map((et) => (\n
  • \n {t(\"squad.squadSize.et\", \"{{ elSelect }} {{ elType }} players\", {\n elSelect: settings.squad_squadplay,\n elType: et.singular_name,\n })}\n
  • \n ))}\n
\n\n
{t(\"squad.budget.titlen\", \"Salary Cap\")}
\n\n

\n {t(\n \"squad.budget.p1n\",\n \"The total value of your initial roster must not exceed the salary cap of $ {{teamBudget}} million.\",\n { teamBudget: settings.squad_total_spend / 10 }\n )}\n

\n\n
{t(\"squad.teamLimit.title\", \"Players Per Team\")}
\n\n

\n {t(\n \"squad.teamLimit.p1n\",\n \"You can select up to {{ teamLimit }} players from a single NBA team.\",\n { teamLimit: settings.squad_team_limit }\n )}\n

\n \n );\n};\n\ninterface IManagingProps {\n settings: ISettings;\n}\nconst Managing: React.FC = ({ settings }) => {\n const { t } = useTranslation(\"rules\");\n return (\n \n
{t(\"managing.starting.titlen\", \"Choosing Your Line-up\")}
\n\n

\n {t(\n \"managing.starting.p1n\",\n \"From your {{ squadSize }} player roster, select {{ squadPlay }} players by the Gameday deadline to form your starting line-up.\",\n {\n squadSize: settings.squad_squadsize,\n squadPlay: settings.squad_squadplay,\n }\n )}\n

\n\n

\n {t(\n \"managing.starting.p2\",\n \"All your points for the Gameday will be scored by these {{ squadPlay }} players, however if one or more doesn't play they may be automatically substituted.\",\n { squadPlay: settings.squad_squadplay }\n )}\n

\n\n

\n {t(\n \"managing.starting.p3\",\n \"Your team can play in one of two formations:\"\n )}\n

\n\n
    \n
  • \n {t(\"managing.starting.formation1n\", \"2 Back Court and 3 Front Court\")}\n
  • \n
  • \n {t(\"managing.starting.formation2n\", \"3 Back Court and 2 Front Court\")}\n
  • \n
\n\n
\n {t(\n \"managing.autoSubs.title\",\n \"Prioritising Your Bench For Automatic Substitutions\"\n )}\n
\n\n

\n {t(\n \"managing.autoSubs.p1n\",\n \"Your bench provides cover for unforeseen events like injuries and postponements by automatically replacing starting players who don't play in a Gameday.\"\n )}\n

\n\n

\n {t(\n \"managing.autoSubs.p2\",\n \"Playing in a Gameday means playing at least 1 minute. Based on the priorities you assign, automatic substitutions are processed at 8 AM UTC, after the last game of the Gameday has finished.\"\n )}\n

\n\n

\n {t(\n \"managing.autoSubs.p3n\",\n \"If any of your players don't play in the Gameday, they will be substituted by the highest priority bench player who played in the Gameday and doesn't break the formation rules (e.g., If your starting team has 2 Back Court players, a Back Court player can only be replaced by another Back Court player).\"\n )}\n

\n
\n );\n};\n\n// TODO: Should expose transfers rules on event API so don't have to hardcode\ninterface ITransfersProps {\n settings: ISettings;\n}\nconst Transfers: React.FC = ({ settings }) => {\n const { t } = useTranslation(\"rules\");\n const config = {\n transfers_limit: 2,\n };\n return (\n \n

\n {t(\n \"transfers.p1n\",\n \"After selecting your roster, you can sign and waive players in the transactions tab. Unlimited transactions can be made at no cost until your first deadline.\"\n )}\n

\n\n

\n {t(\n \"transfers.p2n\",\n \"After your first deadline you will receive {{transfersLimit}} free transactions each Gameweek.\",\n {\n transfersLimit: config.transfers_limit,\n }\n )}\n

\n\n

\n {t(\n \"transfers.p3n\",\n \"Users can only make {{transfersLimit}} free transactions every game week. If the user decides not to use both free transactions in a game week then they will not be given any additional free transactions to use in the next game week. For example, if a user has {{transfersLimit}} free transactions and does not use any then they will still have {{transfersLimit}} free transactions available in the next game week.\",\n {\n transfersLimit: config.transfers_limit,\n }\n )}\n

\n\n

\n {t(\n \"transfers.p4n\",\n \"Each additional transaction you make in the same Gameweek will deduct {{transfersCost}} points from your total score at the next deadline.\",\n {\n transfersCost: settings.squad_total_spend / 10,\n }\n )}\n

\n\n
{t(\"transfers.wildcards.title\", \"Wildcards\")}
\n\n

\n {t(\n \"transfers.wildcards.p1\",\n \"A wildcard allows a user to make unlimited transactions in a Gameday, free of charge. Any transactions already made that Gameday will also be free. The Wildcard chip is played when confirming transactions that cost points and can't be cancelled once played.\"\n )}\n

\n\n
{t(\"transfers.prices.titlen\", \"Player Salaries\")}
\n\n

\n {t(\n \"transfers.prices.p1n\",\n \"Player salaries change during the season depending on the popularity of the player in the transactions tab. Player salaries do not change until the season starts.\"\n )}\n

\n\n

\n {t(\n \"transfers.prices.p2n\",\n \"The salary shown on your transactions page is a player's selling salary. \"\n )}\n

\n\n

\n {t(\n \"transfers.prices.p3n\",\n \"This selling salary may be less than the player's current purchase salary as a sell-on fee of 50% (Rounded up to the nearest $0.1m) will be applied on any profits made on that player.\"\n )}\n

\n\n

\n {t(\n \"transfers.prices.p4n\",\n \"The player salaries featured in the game are not reflective of real NBA salaries and are for gameplay purposes only.\"\n )}\n

\n
\n );\n};\n\ninterface IChipsProps {\n eventsById: IEventsById;\n}\nconst Chips: React.FC = ({ eventsById }) => {\n const { t } = useTranslation(\"rules\");\n return (\n \n

\n {t(\n \"chips.p1\",\n \"Chips can be used to potentially enhance your team's performance during the season.\"\n )}\n

\n

\n {t(\n \"chips.p2\",\n \"Only one chip can be played in a single Gameday. The chips available are as follows:\"\n )}\n

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{t(\"chips.name\", \"Name\")}{t(\"chips.effect\", \"Effect\")}
{t(\"chips.gdCaptain.name\", \"Gameday Captain\")}\n {t(\n \"chips.gdCaptain.effect\",\n \"Pick a captain to double their score.\"\n )}\n
{t(\"chips.allStar.name\", \"All-Star\")}\n {t(\n \"chips.allStar.effect\",\n \"Make unlimited free transactions with an unlimited budget for a single Gameday. At the next deadline your squad is returned to how it was at the start of the Gameday.\"\n )}\n
{t(\"chips.wildcard.name\", \"Wildcard\")}\n {t(\n \"chips.wildcard.effect\",\n \"All transactions (including those already made in that Gameday) are free for the next Gameday.\"\n )}\n
\n

\n {t(\n \"chips.p4b\",\n \"The Gameday Captain chip can only be used on one Gameday each Gameweek. If your captain does not play in the Gameday, the bonus will be lost. No other player will take over the captaincy in his place.\"\n )}\n

\n

{t(\"chips.p4c\", \"The All-Star chip can be used once a season.\")}

\n

\n {t(\n \"chips.p4\",\n \"The Wildcard chip can be used three times in a season.\"\n )}\n

\n\n

\n {t(\n \"chips.p5n\",\n \"The first wildcard will be available from the start of the season until {{until1}}. The second wildcard will be available after {{from2}} up until {{until2}}. The final wildcard can be used between {{from3}} and the end of the season.\",\n {\n until1: eventsById[39].name,\n from2: eventsById[40].name,\n until2: eventsById[106].name,\n from3: eventsById[107].name,\n }\n )}\n

\n\n

\n {t(\n \"chips.p6n\",\n \"The wildcard and All-Star chips are played when confirming transactions that cost points and cannot be cancelled once played.\"\n )}\n

\n\n

\n {t(\n \"chips.p6a\",\n \"Any transfers made before the All-Star chip was activated will not be transferred to the next Gameday.\"\n )}\n

\n\n
\n {t(\n \"chips.same.title\",\n \"Can I use more than one chip in the same Gameday?\"\n )}\n
\n

\n {t(\n \"chips.p10n\",\n \"No, only one chip may be active in a Gameday. For example, it is not possible to make transactions with your Wildcard chip and then use your All-Star or Gameday Captain chip in the same Gameday.\"\n )}\n

\n
\n );\n};\n\ninterface IDeadlinesProps {\n events: IEvent[];\n}\nconst Deadlines: React.FC = ({ events }) => {\n const { i18n, t } = useTranslation(\"rules\");\n return (\n \n

\n {t(\"deadlines.p1n\", \"The game is split into Gameweeks and Gamedays.\")}\n

\n

\n {t(\n \"deadlines.p2\",\n \"You must set your starting line-up for each Gameday prior to each Gameday deadline.\"\n )}\n

\n

\n {t(\n \"deadlines.p3\",\n \"Deadlines are subject to change and will be 30 minutes before the tip off time in the first game of the Gameday.\"\n )}\n

\n

\n {t(\n \"deadlines.p4\",\n \"The Gameweek deadline is the first Gameday deadline of that week and is used to determine the number of free transactions you can use in the Gameweek.\"\n )}\n

\n \n \n \n \n \n \n \n \n {events.map((event) => (\n \n \n \n \n ))}\n \n
{t(\"deadlines.Gameday\", \"Gameweek\")}{t(\"deadlines.deadline\", \"Deadline\")}
{event.name}\n {formatRawAsLocalI18n(\n event.deadline_time,\n dateLocales[i18n.language]\n )}\n
\n
\n );\n};\n\n// TODO: Populate from backend settings\ninterface IScoringProps {}\nconst Scoring: React.FC = () => {\n const config = {\n scoring: {\n point_scored: 1,\n rebound: 1.2,\n assist: 1.5,\n block: 3,\n steal: 3,\n turnover: isRTL(i18n.language) ? \"1-\" : \"-1\",\n },\n };\n const { t } = useTranslation(\"rules\");\n return (\n \n \n {t(\n \"scoring.p1n\",\n \"During the season, your NBA fantasy players will be allocated points based on their performance in the league.\"\n )}\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{t(\"scoring.action\", \"Action\")}{t(\"scoring.points\", \"Points\")}
\n {t(\"scoring.actions.pointScored\", \"For each point scored\", {})}\n {config.scoring.point_scored}
{t(\"scoring.actions.rebound\", \"For each rebound\", {})}{config.scoring.rebound}
{t(\"scoring.actions.assist\", \"For each assist\", {})}{config.scoring.assist}
{t(\"scoring.actions.block\", \"For each block\", {})}{config.scoring.block}
{t(\"scoring.actions.steal\", \"For each steal\", {})}{config.scoring.steal}
{t(\"scoring.actions.turnover\", \"For each turnover\", {})}{config.scoring.turnover}
\n \n {t(\n \"scoring.p2n\",\n \"Once data has been marked as final, it will not be changed. We will not enter into discussion around any of the statistics used to calculate fantasy scores for any individual game.\"\n )}\n \n
\n );\n};\n\n// TODO: Populate from backend settings\ninterface ILeaguesProps {\n eventsById: IEventsById;\n phases: IPhase[];\n settings: ISettings;\n}\nconst Leagues: React.FC = ({ eventsById, phases, settings }) => {\n const { t } = useTranslation(\"rules\");\n return (\n \n

\n {t(\n \"leagues.p1n\",\n \"After entering your roster, you can join and create leagues to compete with friends and other game players.\"\n )}\n

\n\n

{t(\"leagueTypes.title\", \"League Types\")}

\n\n
{t(\"leagueTypes.privateLeagues.title\", \"Private Leagues\")}
\n\n

\n {t(\n \"leagueTypes.privateLeagues.p1n\",\n \"Private leagues allow you to compete against your friends. Just create a league and then send out the unique code to allow your friends to join!\"\n )}\n

\n\n

\n {t(\n \"leagueTypes.privateLeagues.p2\",\n \"You can compete in up to 25 private leagues. There's no limit on the number of teams in a single league.\"\n )}\n

\n\n
{t(\"leagueTypes.publicLeagues.title\", \"Public Leagues\")}
\n\n

\n {t(\n \"leagueTypes.publicLeagues.p1\",\n \"Need an extra challenge? Then join a public league of randomly assigned teams. You can compete in up to 5 public leagues.\"\n )}\n

\n\n
{t(\"leagueTypes.globalLeagues.title\", \"Global Leagues\")}
\n\n

\n {t(\n \"leagueTypes.globalLeagues.p1\",\n \"You are automatically entered into the following global leagues:\"\n )}\n

\n\n
    \n
  • \n {t(\n \"leagueTypes.globalLeagues.overalln\",\n \"The overall league featuring all registered teams.\"\n )}\n
  • \n
  • \n {t(\n \"leagueTypes.globalLeagues.countryn\",\n \"A league for general managers from your country.\"\n )}\n
  • \n
  • \n {t(\n \"leagueTypes.globalLeagues.faveTeamn\",\n \"A league for fans of your favorite NBA team.\"\n )}\n
  • \n
  • \n {t(\n \"leagueTypes.globalLeagues.startGamedayn\",\n \"A league for general managers starting in the same Gameday as you.\"\n )}\n
  • \n
\n\n

\n {t(\n \"leagueTypes.globalLeagues.raceToPlayoffs\",\n \"All existing teams in the game will be entered into the 'Race to the Playoffs' league without having to register for a new account. The league starts in Gameweek 18 Day 1 and will conclude at the end of the regular season. There is no prizing for the winner of this league.\"\n )}\n

\n\n
{t(\"leagueTypes.leagueScoring.title\", \"League Scoring\")}
\n\n

\n {t(\n \"leagueTypes.leagueScoring.p1n\",\n \"All leagues score on a Classic basis. In a league with classic scoring, teams are ranked based on their total points in the game.\"\n )}\n

\n\n

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

\n\n

\n {t(\n \"leagueTypes.leagueScoring.p3\",\n \"In the event of a tie between teams, the team who has made the fewest transactions will be positioned higher.\"\n )}\n

\n\n

\n {t(\n \"leagueTypes.leagueScoring.p4\",\n \"Any transactions made using a wildcard will not count towards total transactions made.\"\n )}\n

\n
\n );\n};\n"],"sourceRoot":""}