{"version":3,"file":"js/react/mls-player-stats-app.js?_t=8652c2c56b98d1e59f49","mappings":";;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AAGA;AAEA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAGA;AAEA;AACA;AAEA;AAEA;AACA;AAAA;AAEA;AAAA;AAEA;AAAA;AAMA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAIA;AACA;AAIA;AAEA;;;;;;;;;;;;;;;;AC5HA;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAEA;AACA;AACA;AAAA;AAEA;AAAA;AAGA;AACA;AACA;AAAA;AAIA;AAAA;AACA;AAGA;AAEA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAsBA;AAEA;;;;;;;;;;;;;;;;AC7GA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AAEA;AAGA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAAA;AAGA;AAAA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AAAA;AAGA;AACA;AACA;AAAA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AAGA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAAA;AAKA;AAEA;AAAA;AAGA;AACA;AAAA;AAGA;AACA;AACA;AAAA;AAGA;AACA;AAAA;AACA;AACA;AAGA;AAAA;AACA;AAGA;AACA;AACA;AAAA;AAGA;AAEA;AACA;AAEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AAkBA;AAAA;AAAA;AACA;AAGA;AAAA;AACA;AACA;AAEA;AACA;AACA;AAAA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AAyBA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AAIA;AAQA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AAIA;AAGA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAEA;AAAA;AAAA;AAAA;AAAA;AACA;AAAA;AACA;AACA;AAIA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAKA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAGA;AAAA;AAAA;AACA;AAEA;AAAA;AAAA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAEA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAIA;AAGA;AAEA;;;;;;;;;;;;;;;;;;;AChdA;AACA;AACA;AACA;AAEA;AACA;AAEA;AAEA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAOA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAAA;AACA;AAIA;AAAA;AAGA;AAEA;;;;;;;;;;;;;;;;ACpCA;;;;;;;;;;;;;;;;ACAA","sources":["webpack://@mlssoccer/netcore/./scripts/react/mls-player-stats/app.js","webpack://@mlssoccer/netcore/./scripts/react/mls-player-stats/components/PlayerStatsData/PlayerStatsData.js","webpack://@mlssoccer/netcore/./scripts/react/mls-player-stats/components/PlayerStatsData/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-player-stats/components/PlayerStatsTable/PlayerStatsTable.js","webpack://@mlssoccer/netcore/./scripts/react/mls-player-stats/components/PlayerStatsTable/index.js","webpack://@mlssoccer/netcore/./scripts/react/mls-player-stats/main.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/Pagination/Pagination.js","webpack://@mlssoccer/netcore/./scripts/react/shared/components/Pagination/index.js","webpack://@mlssoccer/netcore/./scripts/react/shared/svg/index.js"],"sourcesContent":["export { default } from './main';\n","import React from 'react';\nimport { useQueries } from \"react-query\";\nimport { StatsContext } from \"../../utils\";\nimport { fetchClient } from \"../../../shared/api/fetching\";\nimport {\n apiURL,\n forgePlayerDAPI\n} from \"../../../shared/api/variables\";\nimport { formatPlayerStats } from \"../../../shared/utils\";\nimport { useReactAppState } from \"../../../shared/containers/utils\";\n\nconst PlayerStatsData = ({ children,\n clubs,\n clubsData,\n clubOptaId,\n seasons,\n season,\n competitions,\n currentQueryType,\n updateFilter,\n resetFilters,\n statType,\n position,\n appearances,\n weather,\n dateRange,\n versus,\n desc,\n page,\n isOpen,\n competitionSlug,\n competitionOptaId,\n statsData,\n preSelectedClub,\n mlsPhaseType\n}) => {\n const { urlList, isLeague, clubOptaId: currentClubOptaId } = useReactAppState();\n const { baseUrl } = urlList || {};\n\n const playerOptaIdList = React.useMemo(() => {\n const mappedStatsData = season === \"all\" && statsData ? statsData?.map((player) => {\n return {\n player,\n postseason_statistics: player?.postseason_statistics,\n regular_season_statistics: player?.regular_season_statistics,\n statistics: player?.statistics\n };\n }) : statsData;\n\n return mappedStatsData ? mappedStatsData.map(item => {\n const { player } = item || {};\n const { opta_id } = player || {};\n const playerEndpoint = forgePlayerDAPI({ optaId: opta_id });\n\n return {\n queryKey: [`forge-player-${opta_id}`],\n queryFn: () => fetchClient({ endpoint: playerEndpoint, apiURL: apiURL.forgeDAPI }),\n select: playerArray => formatPlayerStats(item, playerArray?.items?.[0], null, mlsPhaseType)\n };\n }) : [{\n queryKey: ['forge-player-none'],\n queryFn: () => { },\n enabled: false\n }];\n }, [statsData, clubsData]);\n\n const data = useQueries(playerOptaIdList);\n\n const isCurrentClub = clubOptaId == currentClubOptaId;\n const linkRulePath = (isLeague || isCurrentClub) && baseUrl ? `${baseUrl}/players/{slug}` : null;\n\n const playersData = data && data.length > 0 && data.every(player => player.data)\n ? data.map(player => {\n if (player?.data?.player?.slug && linkRulePath) {\n player.data.player.playerUrl = linkRulePath.replace(\"{slug}\", player.data.player.slug);\n } else {\n player.data.player.playerUrl = null;\n }\n return player.data;\n })\n : data && data.length === 0\n ? []\n : null;\n\n return (\n \n {\n React.Children.map(children, child => {\n return !child\n ? null\n : typeof child.type === 'string'\n ? child\n : React.cloneElement(child);\n })\n }\n \n );\n};\n\nexport default PlayerStatsData;\n","export { default } from './PlayerStatsData';\n","import React, { useEffect } from 'react';\nimport { useSortBy, useTable, usePagination } from \"react-table\";\nimport { useColumns } from \"../../../shared/components/Table/utils\";\nimport Table from \"../../../shared/components/Table\";\nimport { getEmptyStatTableValues, checkNextPage } from \"../../../shared/utils\";\nimport Pagination from \"../../../shared/components/Pagination\";\nimport { NoResults } from \"../../../shared/svg/Svg\";\nimport { useStatsData } from \"../../utils\";\nimport { actionTypes } from \"../../../shared/hooks/useFilters\";\nimport { useReactAppState } from \"../../../shared/containers/utils\";\n\nconst PlayerStatsTable = ({ baseClass, emptyResultsComponent }) => {\n const { t } = useReactAppState();\n\n const {\n statType,\n currentQueryType,\n page,\n updateFilter,\n playersData,\n preSelectedClub,\n season\n } = useStatsData();\n\n const columns = useColumns(season === \"all\" ? `${currentQueryType}_ALL_YEARS` : currentQueryType, playersData);\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n setSortBy,\n state: { sortBy },\n } = useTable(\n {\n columns,\n data: playersData && playersData.length > 0\n ? playersData\n : playersData && playersData.length === 0\n ? []\n : getEmptyStatTableValues(30).items,\n manualPagination: true,\n manualSortBy: true,\n autoResetPage: true,\n autoResetSortBy: false,\n disableMultiSort: true,\n initialState: {\n sortBy: [{ id: statType, desc: true }]\n }\n },\n useSortBy,\n usePagination,\n );\n\n const { desc: descending, id } = sortBy[0] || {};\n\n useEffect(() => {\n if (!statType) {\n return;\n }\n setSortBy([{ id: statType, desc: true }]);\n }, [statType]);\n\n useEffect(() => {\n if (!id) {\n updateFilter(actionTypes.statType)(null);\n }\n\n else {\n updateFilter(actionTypes.desc)({ desc: descending, statType: id });\n }\n }, [descending, id]);\n\n const canNextPage = checkNextPage(playersData, 30);\n\n return (\n <>\n \n {\n rows.length < 1\n ? (\n
\n \n
{t(\"no_players_found\")}
\n {\n emptyResultsComponent ? emptyResultsComponent : null\n }\n
\n )\n : preSelectedClub\n ? null\n : (\n
\n \n
\n )\n }\n \n );\n};\n\nexport default PlayerStatsTable;\n","export { default } from './PlayerStatsTable';\n","import React, { useEffect, useState } from 'react';\nimport { useQuery } from 'react-query';\nimport { fetchClient } from '../shared/api/fetching';\nimport Dropdown from \"../shared/components/Dropdown\";\nimport ButtonGroup from \"../shared/components/ButtonGroup\";\nimport ToggleButton from \"../shared/components/ToggleButton\";\nimport PlayerStatsTable from \"./components/PlayerStatsTable\";\nimport StatsSidebar from \"../shared/components/StatsSidebar\";\nimport ErrorDisplay from \"../shared/components/ErrorDisplay\";\nimport { Filters } from \"../shared/svg/Svg\";\nimport {\n getClubsData,\n getForgeCompetitionsOptaId,\n getSeasonsData,\n filterTypes, queryStatusTypes, mlsPhaseTypes,\n playerStatsPositionTypes\n} from \"../shared/utils\";\nimport { actionTypes, useFilters } from \"../shared/hooks/useFilters\";\nimport {\n d3ClubsAPI, mlsPlayerStatsAPI,\n mlsSeasonsAPI\n} from \"../shared/api/variables\";\nimport { statTypes } from \"../shared/components/Table/utils\";\nimport PlayerStatsData from \"./components/PlayerStatsData\";\nimport { useReactAppState } from \"../shared/containers/utils\";\nimport { useHash, getHashQueryObject, getStatTypeQuery, getStatTypeFromQuery } from './utils';\n\nfunction PlayerStats({ options }) {\n const { mediaQueries, t, queryParams, apiList } = useReactAppState();\n const {\n d3SportsAPI,\n statsAPI,\n } = apiList || {};\n const { isMediumLargeMin, isXLargeMin, isMediumMin, isLargeMin } = mediaQueries || {};\n\n const [hashQuery, setHashQuery] = useHash();\n const [hashes, setHashes] = useState([]);\n\n const { queryType,\n \"stat-type\": queryStatType,\n weather: queryWeather,\n season: querySeason,\n competitionOptaId: queryCompetitionOptaId,\n competitionSlug: queryCompetitionSlug,\n versus: queryVersus,\n dateRange: queryDateRange,\n position: queryPosition,\n appearances: queryAppearances,\n clubAbbreviation: queryClubAbbreviation,\n clubOptaId: queryClubOptaId,\n } = queryParams || {};\n\n const activeClubs = options.activeClubs;\n const [hideClubsDropdown] = useState(options.hideClubsDropdown);\n const [hideCompetitionsDropdown] = useState(options.hideCompetitionsDropdown);\n const [hideSeasonsDropdown] = useState(options.hideSeasonsDropdown);\n const [hideFiltersCTA] = useState(options.hideFiltersCTA);\n const [isOpen, setIsOpen] = useState(false);\n const [forgeCompetitions] = useState(getForgeCompetitionsOptaId(options.competitions, false));\n const [currentQueryType, setCurrentQueryType] = useState(queryType?.[0] || options?.queryType || statTypes.statsGeneral);\n const [initialStatType] = useState(currentQueryType === statTypes.statsGeneral || currentQueryType === statTypes.statsAttacking\n ? \"goals\"\n : currentQueryType === statTypes.statsPassing\n ? \"accurate_pass\"\n : \"goals_conceded\");\n\n const [statTypesArray] = useState([\n {\n statType: statTypes.statsGeneral,\n name: t(\"stats_general\")\n },\n {\n statType: statTypes.statsPassing,\n name: t(\"stats_passing\")\n },\n {\n statType: statTypes.statsAttacking,\n name: t(\"stats_attacking\")\n },\n {\n statType: statTypes.statsDefending,\n name: t(\"stats_defending\")\n },\n {\n statType: statTypes.statsGoalKeeping,\n name: t(\"stats_goalkeeping\")\n }]);\n\n const initialDesc = queryStatType && queryStatType.length > 0 ? !!(queryStatType?.[0]) : true;\n\n const { state, initialStateRef, badgeCount, reset: resetFilters, updateFilter } = useFilters({\n initialState: {\n appearances: queryAppearances?.[0] || filterTypes.all,\n badgeCount: 0,\n club: queryClubAbbreviation?.[0] || options?.clubAbbreviation || filterTypes.allClubs,\n clubOptaId: queryClubOptaId?.[0] || options?.clubOptaId || filterTypes.allClubs,\n clubs: [],\n competitionSlug: queryCompetitionSlug?.[0] || options.competitionSlug || forgeCompetitions?.[0]?.slug,\n competitionOptaId: queryCompetitionOptaId?.[0] || options.competitionOptaId || forgeCompetitions?.[0]?.fields?.optaId || forgeCompetitions?.[0]?.optaId || \"98\",\n competitions: forgeCompetitions,\n currentQueryType,\n dateRange: queryDateRange?.[0] || options.dateRange || filterTypes.all,\n desc: initialDesc,\n mlsPhaseType: forgeCompetitions?.[0]?.fields?.mlsPhaseType || forgeCompetitions?.[0]?.mlsPhaseType || mlsPhaseTypes.regular,\n page: 0,\n position: queryPosition?.[0] || options.position || filterTypes.all,\n preSelectedClub: !!(options.clubOptaId),\n route: \"seasons\",\n season: querySeason?.[0] || options.season,\n sortId: null,\n statType: queryStatType?.[0] || options.statType || initialStatType,\n versus: queryVersus?.[0] || options.versus || filterTypes.all,\n weather: queryWeather?.[0] || options.weather || filterTypes.all,\n }\n });\n\n const handleAlignment = (event, newAlignment) => {\n if (newAlignment) {\n const resetPosition = newAlignment !== state?.currentQueryType && state?.currentQueryType === statTypes.statsGoalKeeping;\n setCurrentQueryType(newAlignment);\n if (newAlignment === statTypes.statsGoalKeeping) {\n updateFilter(actionTypes.position)(playerStatsPositionTypes.goalkeeper);\n } else if (resetPosition) {\n updateFilter(actionTypes.position)(filterTypes.all);\n }\n\n updateFilter(actionTypes.currentQueryType)(newAlignment);\n }\n };\n\n const {\n clubs,\n competitions,\n competitionSlug,\n clubOptaId,\n statType,\n desc,\n page,\n position,\n appearances,\n weather,\n dateRange,\n versus,\n competitionOptaId,\n season,\n route,\n preSelectedClub,\n mlsPhaseType\n } = state || {};\n\n const seasonsEndpoint = mlsSeasonsAPI({ competitionOptaId });\n const playerStatsEndpoint = mlsPlayerStatsAPI({ ...state, pageSize: preSelectedClub ? null : 30 });\n\n const {\n isLoading: isLoadingSeasons,\n isError: isErrorSeasons,\n data: seasons,\n error: seasonsError\n } = useQuery({\n queryKey: [`mls-seasons`, { competitionOptaId }],\n queryFn: () => fetchClient({ endpoint: seasonsEndpoint, apiURL: statsAPI }),\n select: seasonData => getSeasonsData(seasonData),\n notifyOnChangeProps: ['data', 'error'],\n enabled: !!competitionOptaId\n });\n\n const currentSeason = seasons?.length ? seasons[0] : null;\n const d3ClubsEndpoint = d3ClubsAPI({ competitionOptaId, season: season === \"all\" ? currentSeason : season });\n\n const {\n status: clubsStatus,\n data: clubsData,\n error: clubsError,\n } = useQuery({\n queryKey: [`d3-clubs-season`, { season, competitionOptaId }],\n queryFn: () => fetchClient({ endpoint: d3ClubsEndpoint, apiURL: d3SportsAPI }),\n select: clubsData => getClubsData(clubsData, activeClubs),\n enabled: !preSelectedClub,\n notifyOnChangeProps: ['data', 'error'],\n });\n\n const { data: statsData } = useQuery({\n queryKey: [`mls-player-stats`, {\n currentQueryType: currentQueryType ? currentQueryType : null,\n route,\n statType: statType ? statType : null,\n page: page || page === 0 ? page : null,\n clubOptaId: clubOptaId ? clubOptaId : null,\n competitionSlug,\n competitionOptaId: competitionOptaId ? competitionOptaId : null,\n season: season ? season : null,\n desc: desc !== undefined ? desc : undefined,\n appearances: appearances ? appearances : null,\n position: position ? position : null,\n dateRange: dateRange ? dateRange : null,\n versus: versus ? versus : null,\n weather: weather ? weather : null,\n mlsPhaseType: mlsPhaseType ? mlsPhaseType : null\n }],\n queryFn: () => fetchClient({ endpoint: playerStatsEndpoint, apiURL: statsAPI }),\n });\n\n const mappedSeasons = seasons?.map((s) => {\n return { label: s, value: s };\n });\n\n useEffect(() => {\n if (clubsData != null) {\n updateFilter(actionTypes.clubs)(clubsData);\n }\n }, [clubsData]);\n\n useEffect(() => {\n if (!options?.disableDeeplinking) {\n const competitionSlugHash = state?.competitionSlug === \"all-competitions\" ? \"all\" : state?.competitionSlug;\n const clubOptaIdHash = state?.clubOptaId === filterTypes.allClubs ? \"all\" : state?.clubOptaId;\n const clubQuery = `club=${clubOptaIdHash}&`;\n const seasonQuery = !hideSeasonsDropdown ? `season=${state?.season}&` : \"\";\n const competitionQuery = !hideCompetitionsDropdown ? `competition=${competitionSlugHash}&` : \"\";\n const statTypeQuery = `statType=${getStatTypeQuery(state?.currentQueryType)}&`;\n const positionQuery = `position=${state?.position?.toLowerCase()}&`;\n const fullQuery = `${seasonQuery}${competitionQuery}${clubQuery}${statTypeQuery}${positionQuery}`;\n\n if (fullQuery) {\n setHashQuery(fullQuery.slice(0, fullQuery.length - 1));\n }\n }\n }, [state]);\n\n useEffect(() => {\n if (hashQuery && !options?.disableDeeplinking) {\n if (hashes?.includes(hashQuery) || !hashes.length) {\n const hashQueryObject = getHashQueryObject(hashQuery);\n\n Object.entries(hashQueryObject).forEach(([key, value]) => {\n if (key === \"competition\" &&\n (state?.competitions?.filter(c => c?.slug === value).length > 0)) {\n updateFilter(actionTypes[\"competitionSlug\"])(value === \"all\" ? \"all-competitions\" : value);\n }\n\n // Adding here a check for clubs.length === 0 in state\n // This is because sometimes the clubs have not yet loaded\n if (key === \"club\" &&\n (state?.clubs?.filter(c => c?.optaId.toString() === value).length > 0 || state?.clubs?.length === 0 || value === \"all\")) {\n updateFilter(actionTypes[\"clubOptaId\"])(value === \"all\" ? filterTypes.allClubs : value);\n }\n\n if (key === \"season\") {\n updateFilter(actionTypes.season)(value);\n }\n\n if (key === \"statType\" && value) {\n value = getStatTypeFromQuery(value);\n handleAlignment(null, value);\n }\n\n if (key === \"position\" && playerStatsPositionTypes[value]) {\n updateFilter(actionTypes.position)(playerStatsPositionTypes[value]);\n }\n });\n }\n\n setHashes([...hashes, hashQuery]);\n }\n }, [hashQuery]);\n\n const updateCompetitionSlug = (competition) => {\n if (state.competitionSlug === competition) {\n return updateFilter(actionTypes.competitionSlug);\n }\n\n const matchCompetition = state?.competitions.find(c => c.slug === competition);\n\n const { optaId, mlsPhaseType } = matchCompetition || {};\n const competitionOptaId = optaId + \"\";\n\n return updateFilter(actionTypes.apply)(\n {\n page: 0,\n competitionSlug: competition,\n competitionOptaId,\n mlsPhaseType,\n clubOptaId: preSelectedClub ? (state?.clubOptaId ? state?.clubOptaId : filterTypes.allClubs) : filterTypes.allClubs \n }\n );\n };\n\n return (\n
\n
\n
\n {\n hideSeasonsDropdown\n ? null\n : (\n isLoadingSeasons\n ? \n : isErrorSeasons\n ? \n : isMediumMin && seasons\n ? \n : null\n )\n }\n {\n !hideCompetitionsDropdown && isMediumLargeMin && competitions\n ? \n : null\n }\n {\n hideClubsDropdown\n ? null\n : (\n clubsStatus === queryStatusTypes.loading || clubsStatus === queryStatusTypes.idle\n ? \n : clubsStatus === queryStatusTypes.error\n ? \n : isXLargeMin && clubs\n ? \n : null\n )\n }\n {\n !hideFiltersCTA\n ? (\n setIsOpen(!isOpen)}\n className=\"mls-o-buttons__icon mls-o-buttons__icon--right\" value=\"filters\"\n aria-label=\"all filters\">\n {t(\"all_filters\")}\n \n {\n badgeCount && badgeCount > 0\n ? {badgeCount}\n : null\n }\n \n ) : null}\n
\n {\n isLargeMin\n ? (\n \n \n {t(\"stats_general\")}\n \n \n {t(\"stats_passing\")}\n \n\n \n {t(\"stats_attacking\")}\n \n\n \n {t(\"stats_defending\")}\n \n\n \n {t(\"stats_goalkeeping\")}\n \n \n )\n : (\n handleAlignment(null, val)}\n displayKey={\"name\"}\n valueKey={\"statType\"}\n items={statTypesArray}\n currentValue={currentQueryType}\n />\n )\n }\n
\n \n
\n setIsOpen(!isOpen)}\n className=\"mls-o-buttons__icon mls-o-buttons__icon--right\" value=\"filters\"\n aria-label=\"update filters\">\n {t(\"update_filters\")}\n \n \n } />\n
\n \n \n
\n );\n}\n\n// eslint-disable-next-line no-func-assign\nPlayerStats = React.memo(PlayerStats);\n\nexport default PlayerStats;\n","import React from \"react\";\nimport ToggleButton from \"../../../shared/components/ToggleButton\";\nimport { Chevron } from \"../../../shared/svg\";\nimport { chevronDirection } from \"../../svg/Svg\";\n\nfunction Pagination({ page, updateFilter, canNextPage }) {\n const isHidden = page === 0 && !canNextPage;\n\n return (\n
\n updateFilter(page - 1)}\n disabled={page === 0}\n aria-label=\"Previous results\">\n \n \n\n \n {`Page ${page + 1}`}\n \n\n updateFilter(page + 1)}\n disabled={!canNextPage}\n aria-label=\"Next results\">\n \n \n
\n );\n};\n\n// eslint-disable-next-line no-func-assign\nPagination = React.memo(Pagination);\n\nexport default Pagination;\n","export { default } from './Pagination';\n","export { Chevron } from './Svg';\n"],"names":[],"sourceRoot":""}