{"version":3,"file":"static/chunks/app/[locale]/page-939801c964343b10.js","mappings":"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","sources":["webpack://_N_E/?f4a1","webpack://_N_E/./src/app/[locale]/trends/TrendDescription.tsx","webpack://_N_E/./src/components/organisms/Table/Table.tsx","webpack://_N_E/./src/components/organisms/TopLeaguesSection/topLeaguesSection.tsx","webpack://_N_E/./src/hooks/useWindowSize.ts","webpack://_N_E/./src/utils/debounce.ts","webpack://_N_E/./src/app/[locale]/_home.scss","webpack://_N_E/./src/components/molecules/LeaguesPlaying/_leaguesPlaying.scss","webpack://_N_E/./src/components/organisms/Table/table.scss"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/codebuild/output/src2851773393/src/football-trends-face/node_modules/next/dist/client/image-component.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src2851773393/src/football-trends-face/node_modules/next/dist/client/link.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src2851773393/src/football-trends-face/src/app/[locale]/_home.scss\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src2851773393/src/football-trends-face/src/app/[locale]/trends/TrendDescription.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/codebuild/output/src2851773393/src/football-trends-face/src/components/molecules/LeaguesPlaying/_leaguesPlaying.scss\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src2851773393/src/football-trends-face/src/components/organisms/Table/Table.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/codebuild/output/src2851773393/src/football-trends-face/src/components/organisms/TopLeaguesSection/topLeaguesSection.tsx\");\n","'use client'\nimport React from 'react';\nimport { useTranslations } from 'next-intl';\nimport { useParams } from 'next/navigation';\n\n\ninterface TrendProps {\n type: string;\n threshold: number;\n teamRole: string;\n scope: string;\n half: number;\n trend: { \n percentage: number;\n matchedFixtures: number;\n totalFixtures: number;\n }\n}\n\ninterface TrendDescriptionProps {\n trend: TrendProps;\n}\n\nconst TrendDescription: React.FC = ({ trend }) => {\n const { type, threshold, teamRole, scope, half, trend: trendDetails } = trend;\n const { locale } = useParams(); \n\n const tCommon = useTranslations('common');\n const tFilter = useTranslations('filter');\n\n let direction = '';\n let stat = '';\n let halfDescription = '';\n let scopeDescription;\n\n if (type.toLowerCase() === \"btts\") {\n stat = \"btts\";\n } else if (['draw', 'win', 'loss'].includes(type.toLowerCase())) {\n // direction = type.charAt(0).toUpperCase() + type.slice(1);\n stat = type\n } else {\n const typeParts = type.match(/(under|over)(Team|Opponent|Combined)?(TotalShots|OnShots|Goals|Corners|Cards)/i);\n if (typeParts) {\n direction = typeParts[1].charAt(0).toUpperCase() + typeParts[1].slice(1);\n stat = typeParts[3].charAt(0).toLowerCase() + typeParts[3].slice(1);\n }\n }\n\n halfDescription =\n half === 1\n ? tFilter('firstHalf')\n : half === 2\n ? tFilter('secondHalf')\n : tFilter('wholeMatch');\n\n scopeDescription = (\n <>\n {scope === 'team'\n ? `${tCommon('forThe')} `\n : scope === 'opponent'\n ? `${tCommon('from')} `\n : scope === 'combined'\n ? `${tCommon('forBoth')} `\n : ''}\n \n {scope === 'team'\n ? tFilter('team')\n : scope === 'opponent'\n ? tFilter('opponents')\n : scope === 'combined'\n ? tCommon('bothTeams')\n : ''}\n \n \n );\n\n const roleDescription = () => {\n switch(locale) {\n case \"es\":\n return `${tCommon('matches')} ${teamRole !== \"all\" ? tCommon('as') + \" \" + tFilter(teamRole) : ''}`;\n default:\n return `${teamRole !== 'all' ? tFilter(teamRole) + ' ' + tCommon('matches') : tCommon('matches')}`;\n }\n }\n\n return (\n \n \n {direction} {threshold > 0 ? threshold : ''} {tFilter(stat)}{' '}\n {' '}\n {scopeDescription} {tCommon('at')} {halfDescription}{' '}\n {tCommon('inTheLast')}{' '}\n {trendDetails.percentage !== 100 && (\n <>\n {trendDetails.matchedFixtures} {tCommon('of')}{' '}\n \n )}\n {trendDetails.totalFixtures}{' '}{roleDescription()}\n \n );\n};\n\nexport default TrendDescription;\n","'use client'\nimport React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport './table.scss'\nimport { Header, TableKeys } from '@/types/types';\nimport useWindowSize from '@/hooks/useWindowSize';\nimport { useTranslations } from 'next-intl';\nimport { debounce } from '@/utils/debounce';\n\ninterface TableProps {\n headers: Header[];\n rows: React.ReactNode[];\n mockedRows?: React.ReactNode[];\n subRows?: React.ReactNode[];\n totalPages?: number;\n currentPage?: number;\n sortBy: TableKeys;\n sortDirection: 'asc' | 'desc';\n onSortChange?: (value: TableKeys, direction: 'asc' | 'desc') => void;\n onPageChange?: (page: number) => void;\n observeLastRow?: any\n loading: boolean;\n}\n\nconst Table: React.FC = ({ \n headers,\n rows,\n mockedRows,\n subRows = [],\n totalPages = 1,\n currentPage = 1,\n sortBy,\n sortDirection,\n onSortChange = () => {},\n onPageChange = () => {},\n loading = true,\n observeLastRow\n}) => {\n const [requestedPage, setRequestedPage] = useState(currentPage); // Estado temporal para la página solicitada\n const [expandedRows, setExpandedRows] = useState>(new Set());\n const { width } = useWindowSize();\n const t = useTranslations('table');\n\n useEffect(() => {\n setRequestedPage(currentPage)\n }, [currentPage]);\n\n const handlePageChange = (page: number) => {\n setRequestedPage(page);\n debouncedOnPageChange(page);\n };\n\n const handlePrevPage = () => {\n if (requestedPage > 1) {\n handlePageChange(requestedPage - 1);\n }\n };\n\n const handleNextPage = () => {\n if (requestedPage < totalPages) {\n handlePageChange(requestedPage + 1);\n }\n };\n\n const handlePageInput = (event: React.ChangeEvent) => {\n const page = Number(event.target.value);\n if (page >= 1 && page <= totalPages) {\n handlePageChange(page);\n }\n };\n\n const handleRowClick = (trendId: number) => {\n const newExpandedRows = new Set(expandedRows);\n if (newExpandedRows.has(trendId)) {\n newExpandedRows.delete(trendId);\n } else {\n newExpandedRows.add(trendId);\n }\n setExpandedRows(newExpandedRows);\n };\n\n const handleSort = (sortKey: TableKeys) => {\n let direction: 'asc' | 'desc' = sortKey === \"date\" ? \"asc\" : \"desc\";\n\n if (sortBy === sortKey) {\n direction = sortDirection === 'asc' ? 'desc' : 'asc';\n }\n onSortChange(sortKey, direction);\n };\n\n const debouncedOnPageChange = useCallback(\n debounce((page: number) => {\n onPageChange(page);\n }, 500),\n [onPageChange]\n );\n\n return (\n
\n \n \n \n {headers.map((header, index) => (\n \n ))}\n \n \n \n {!loading && rows?.map((row, i) => {\n const trendId = (row as React.ReactElement).key as string;\n return (\n \n handleRowClick(Number(trendId))}>\n {row}\n \n {subRows.length > 0 && expandedRows.has(Number(trendId)) && (\n \n \n \n )}\n \n )\n })}\n {loading && mockedRows?.map((row, i) => {\n const trendId = (row as React.ReactElement).key as string;\n return (\n \n \n {row}\n \n \n )\n })}\n \n
header.sortKey && handleSort(header.sortKey as TableKeys)}>\n {header?.label}\n {/* {header?.sortKey === sortBy && (sortDirection === 'asc' ? '▲' : '▼')} */}\n
\n \n \n \n {subRows[i]}\n \n \n
\n
\n {totalPages > 1 &&\n
\n \n \n {t('ofPages')} {totalPages}\n \n
\n }\n
\n );\n};\n\nexport default Table;","'use client'\nimport React, { useEffect, useState } from 'react';\nimport { useRouter } from 'next/navigation';\nimport { useTranslations } from 'next-intl';\nimport Image from 'next/image';\n\nimport Table from '../Table/Table';\n\nimport { Header, StatType, Type } from '@/types/types';\n\nconst TopLeaguesSection = () => {\n const [topLeagues, setTopLeagues] = useState([]);\n const [loading, setLoading] = useState(true);\n const router = useRouter()\n\n const t = useTranslations('topLeaguesSection');\n const tFilter = useTranslations('filter');\n\n useEffect(() => {\n const fetchTopLeagues = async () => {\n try {\n const res = await fetch(`${process.env.NEXT_PUBLIC_SITE_URL}/api/leagues/top`, {\n next: { revalidate: 3600 },\n });\n if (!res.ok) throw new Error('Failed to fetch top leagues');\n\n const data = await res.json();\n setTopLeagues(data);\n setLoading(false)\n } catch (error) {\n console.error('Error fetching top leagues:', error);\n }\n };\n\n fetchTopLeagues();\n }, []);\n\n \n\n const handleRowClick = (leagueId: number, statType: StatType, type: Type, threshold: number) => {\n router.push(`/league/${leagueId}/${statType}?type=${type}&threshold=${threshold}`);\n };\n\n const headers: Header[] = [\n { label: },\n { label: },\n { label: League, sortKey: 'name' },\n {\n label: \n
\n \n
,\n sortKey: \"matchedFixtures\",\n },\n { label: (\n
\n \n \n
\n ), sortKey: \"totalFixtures\" },\n { label: (\n
\n \n \n
\n ), sortKey: \"percentage\" }\n ]\n\n const generateRows = (leagues: any[], statType: StatType, type: Type, threshold: number) =>\n leagues.map((league, index) => (\n \n handleRowClick(league.id, statType, type, threshold)}>\n \n \n handleRowClick(league.id, statType, type, threshold)}>\n \n \n handleRowClick(league.id, statType, type, threshold)}>{league.name}\n handleRowClick(league.id, statType, type, threshold)}>{league.matchedFixtures}\n handleRowClick(league.id, statType, type, threshold)}>{league.totalFixtures}\n handleRowClick(league.id, statType, type, threshold)}>{league.percentage}\n \n ));\n\n const overGoalsRows = generateRows(topLeagues.goalsOver2 || [], \"goals\", \"over\", 2.5);\n const underGoalsRows = generateRows(topLeagues.goalsUnder3 || [], \"goals\", \"under\", 2.5);\n const cardsOverRows = generateRows(topLeagues.cardsOver4 || [], \"cards\", \"over\", 4.5);\n const cardsUnderRows = generateRows(topLeagues.cardsUnder5 || [], \"cards\", \"under\", 4.5);\n const cornersOverRows = generateRows(topLeagues.cornersOver9 || [], \"corners\", \"over\", 9.5);\n const cornersUnderRows = generateRows(topLeagues.cornersUnder10 || [], \"corners\", \"under\", 9.5);\n\n return (\n
\n

\n {t('leagueCallToAction')}\n

\n

{t('topLeagues')}

\n
\n {topLeagues.goalsOver2 &&
\n
{tFilter('over')} 2.5 {tFilter('goals')}
\n
\n \n
\n
}\n {topLeagues.goalsUnder3 &&
\n
{tFilter('under')} 2.5 {tFilter('goals')}
\n
\n \n
\n
}\n {topLeagues.cardsOver4 &&
\n
{tFilter('over')} 9.5 {tFilter('corners')}
\n
\n \n
\n
}\n {topLeagues.cardsUnder5 &&
\n
{tFilter('under')} 9.5 {tFilter('corners')}
\n
\n \n
\n
}\n {topLeagues.cornersOver9 &&
\n
{tFilter('over')} 4.5 {tFilter('cards')}
\n
\n \n
\n
}\n {topLeagues.cornersUnder10 &&
\n
{tFilter('under')} 4.5 {tFilter('cards')}
\n
\n \n
\n
}\n
\n

*{t('leagueCriteria')}

\n
\n )\n};\n\nexport default TopLeaguesSection;","'use client';\n\nimport { useState, useEffect } from 'react';\n\nfunction useWindowSize() {\n // Estado para almacenar el tamaño de la ventana\n const [windowSize, setWindowSize] = useState({\n width: 1200,\n height: 0,\n });\n\n useEffect(() => {\n // Función para actualizar el estado con el tamaño actual de la ventana\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n\n if (typeof window !== 'undefined') {\n // Añade el event listener\n window.addEventListener('resize', handleResize);\n\n // Llama a la función inmediatamente para establecer el tamaño inicial\n handleResize();\n\n // Limpia el event listener cuando el componente se desmonta\n return () => window.removeEventListener('resize', handleResize);\n }\n }, []); // El array vacío asegura que el efecto solo se ejecute una vez\n\n return windowSize;\n}\n\nexport default useWindowSize;\n","export function debounce void>(fn: T, delay: number): (...args: Parameters) => void {\n let timeoutId: NodeJS.Timeout;\n return function (...args: Parameters) {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n}","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin"],"names":["Promise","resolve","then","__webpack_require__","t","bind","__webpack_exports__","scopeDescription","trend","param","type","threshold","teamRole","scope","half","trendDetails","locale","useParams","tCommon","useTranslations","tFilter","direction","stat","halfDescription","toLowerCase","includes","typeParts","match","charAt","toUpperCase","slice","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsxs","Fragment","concat","jsx","strong","span","percentage","matchedFixtures","totalFixtures","headers","rows","mockedRows","subRows","totalPages","currentPage","sortBy","sortDirection","onSortChange","onPageChange","loading","observeLastRow","requestedPage","setRequestedPage","useState","expandedRows","setExpandedRows","Set","width","useWindowSize","useEffect","handlePageChange","page","debouncedOnPageChange","handleRowClick","newExpandedRows","has","trendId","delete","add","handleSort","sortKey","useCallback","debounce","div","className","table","thead","tr","map","header","index","th","style","cursor","onClick","label","tbody","row","i","key","React","ref","length","Number","td","colSpan","button","disabled","input","value","onChange","event","target","max","topLeagues","setTopLeagues","setLoading","router","useRouter","fetchTopLeagues","res","fetch","process","next","revalidate","ok","data","json","error","console","leagueId","statType","push","Image","src","alt","height","generateRows","leagues","league","id","countryFlag","countryName","logo","name","overGoalsRows","goalsOver2","underGoalsRows","goalsUnder3","cardsOverRows","cardsOver4","cardsUnderRows","cardsUnder5","cornersOverRows","cornersOver9","cornersUnderRows","cornersUnder10","p","fontSize","color","h2","h5","Table","Z","windowSize","setWindowSize","handleResize","window","innerWidth","innerHeight","addEventListener","removeEventListener","fn","delay","timeoutId","_len","arguments","args","_key","clearTimeout","setTimeout"],"sourceRoot":""}