{"version":3,"sources":["webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/ChevronRightIcon.js","webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/InformationCircleIcon.js","webpack://gatsby-tailwind/./src/components/alerts/infobox.jsx","webpack://gatsby-tailwind/./src/components/index/LinkList.jsx","webpack://gatsby-tailwind/./src/components/landingPage/landingHero.jsx","webpack://gatsby-tailwind/./src/hooks/useDriverConsturctors.js","webpack://gatsby-tailwind/./src/components/landingPage/lpDriverStandings.jsx","webpack://gatsby-tailwind/./src/components/landingPage/lpTeamStandings.jsx","webpack://gatsby-tailwind/./src/components/landingPage/lpNextRaceCountdown.jsx","webpack://gatsby-tailwind/./src/pages/index.jsx","webpack://gatsby-tailwind/./src/util/f1TeamColors.js"],"names":["ForwardRef","props","svgRef","Object","assign","xmlns","viewBox","fill","ref","fillRule","d","clipRule","Infobox","text","link","className","aria-hidden","href","defaultProps","LinkList","target","display","primary","Link","to","ChevronRightIcon","S","src","quality","alt","style","backdropFilter","getConstructor","data","driverid","year","yearData","find","parseInt","seasondrivermainconsByYearList","console","warn","driverData","constructor","constructorTeamByConstructorid","name","color","getTeamColor","getConstructorAndSeason","useStaticQuery","postgres","allSeasons","nodes","useCurrentData","driverStandings","getCurrentYear","useDriverConsturctors","title","length","scope","slice","map","i","position","points","driverByDriverid","key","background","driverDisplayName","constructorStandings","constructorid","getText","event","dateString","timeMs","Date","toDateString","timeDays","Math","floor","nextRace","useState","loaded","countdownState","setCountdownState","useEffect","state","fp1","fp1Date","quali","qualiDate","sprint","sprintDate","race","date","raceSlug","lastRace","currentSeason","email","setEmail","setTimeout","ascii","split","res","String","fromCharCode","atob","noMarginTop","noMarginSides","noMarginBottom","warnSet","Set","NO_COLOR_FOUND","colors","McLaren","AlphaTauri","Williams","Ferrari","Mercedes","Renault","Sauber","Virgin","HRT","Jordan","Minardi","Toyota","Jaguar","Arrows","Prost","Benetton","BAR","Maserati","Pawl","Alta","Simca","Deidt","ERA","OSCA","Veritas","BMW","Adams","Watson","Snowberger","Wetteroth","Olson","Rae","Ewing","Langley","Lesovsky","Stevens","Marchese","Nichels","Moore","Cooper","BRM","Trevis","Bromme","Schroeder","Hall","Kuzma","Sherman","HWM","Cisitalia","AFM","Connaught","Gordini","EMW","Klenk","Vanwall","Pankratz","Phillips","Epperly","Lancia","Porsche","Lotus","Fry","JBW","Christensen","Sutton","Turner","Emeryson","Dunn","Elder","Meskowski","Scarab","Ferguson","MBM","Gilby","ENB","Honda","Brabham","Spyker","Brawn","MF1","Tyrrell","Stewart","Ligier","Footwork","Forti","Pacific","Simtek","Lola","Larrousse","LDS","Stebro","Scirocco","ATS","Derrington","BRP","RE","Caterham","Marussia","Theodore","Life","Rial","Lambo","Fondmetal","Dallara","Bugatti","Parnelli","Penske","Apollon","Tecno","Bellasi","team","has","add","size"],"mappings":"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","file":"component---src-pages-index-jsx-425cc58e8b4707ee09b3.js","sourcesContent":["import * as React from \"react\";\n\nfunction ChevronRightIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\",\n clipRule: \"evenodd\"\n }));\n}\n\nvar ForwardRef = React.forwardRef(ChevronRightIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction InformationCircleIcon(props, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef\n }, props), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\",\n clipRule: \"evenodd\"\n }));\n}\n\nvar ForwardRef = React.forwardRef(InformationCircleIcon);\nexport default ForwardRef;","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { InformationCircleIcon } from '@heroicons/react/solid';\n\nconst Infobox = ({ text, link }) => (\n
\n
\n
\n \n
\n
\n

{text}

\n {link && (\n

\n \n Details \n \n

\n )}\n
\n
\n
\n);\n\nInfobox.propTypes = {\n text: PropTypes.string.isRequired,\n link: PropTypes.string,\n};\n\nInfobox.defaultProps = {\n link: null,\n};\n\nexport default Infobox;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { Link } from 'gatsby';\nimport { ChevronRightIcon } from '@heroicons/react/solid';\n\nconst primaryClasses =\n 'bg-gradient-to-tr from-[#fd3b3b] to-[#ff9d9d] text-white shadow-3d-red hover:opacity-75';\nconst defaultClasses =\n 'bg-zinc-100 text-zinc-600 hover:bg-zinc-200 shadow-3d-gray';\n\nconst chevronPrimary = 'text-[#ffe4e4]';\nconst chevronDefault = 'text-zinc-400';\n\nconst LinkList = ({ target, display, primary }) => (\n
\n \n {display}\n \n \n
\n);\n\nLinkList.propTypes = {\n target: PropTypes.string.isRequired,\n display: PropTypes.string.isRequired,\n primary: PropTypes.bool,\n};\n\nLinkList.defaultProps = {\n primary: false,\n};\n\nexport default LinkList;\n","import React from 'react';\nimport { StaticImage } from 'gatsby-plugin-image';\n\nconst LandingHero = () => (\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n

\n Welcome to F1 Report\n

\n

\n Get statistics and a detailed view of Formula 1 results. For\n each race, circuit, etc. you find historic facts and charts.\n

\n
\n
\n
\n
\n
\n
\n Photo by{' '}\n \n Abed Ismail\n {' '}\n on{' '}\n \n Unsplash\n \n
\n
\n);\n\nexport default LandingHero;\n","/* eslint-disable no-console */\nimport { graphql, useStaticQuery } from 'gatsby';\nimport getTeamColor from '../util/f1TeamColors';\n\nfunction getConstructorAndSeason(data) {\n return (driverid, year) => {\n const yearData = data.find(\n (d) => parseInt(d.year) === parseInt(year)\n ).seasondrivermainconsByYearList;\n\n if (!yearData) {\n console.warn(`useDriverConsturctors: cannot find year ${year}`);\n return null;\n }\n\n const driverData = yearData.find(\n (d) => parseInt(d.driverid) === parseInt(driverid)\n );\n\n if (!driverData) {\n console.warn(\n `useDriverConsturctors: cannot find driver ${driverid} (in year ${year})`\n );\n return null;\n }\n\n return {\n constructor: driverData.constructorTeamByConstructorid.name,\n color: getTeamColor(driverData.constructorTeamByConstructorid.name),\n };\n };\n}\n\nconst useDriverConsturctors = () => {\n const data = useStaticQuery(graphql`\n {\n postgres {\n allSeasons {\n nodes {\n year\n seasondrivermainconsByYearList {\n constructorTeamByConstructorid {\n name\n }\n driverid\n driverByDriverid {\n driverDisplayName\n }\n }\n }\n }\n }\n }\n `);\n\n const getConsturctor = getConstructorAndSeason(\n data.postgres.allSeasons.nodes\n );\n\n return {\n getConstructor: getConsturctor,\n };\n};\n\nexport default useDriverConsturctors;\n","import React from 'react';\nimport { Link } from 'gatsby';\nimport useCurrentData from '../../hooks/useCurrentData';\nimport useDriverConsturctors from '../../hooks/useDriverConsturctors';\n\nconst LpDriverStandings = () => {\n const { driverStandings, getCurrentYear } = useCurrentData();\n const { getConstructor } = useDriverConsturctors();\n\n const year = getCurrentYear();\n\n return (\n
\n
\n

\n Driver Standings\n

\n \n more\n Driver Standings Insights\n \n
\n {driverStandings && driverStandings.length && driverStandings.length > 0 && (\n
\n
\n
\n \n \n \n \n \n \n \n \n \n {driverStandings\n .slice(0, 10)\n .map(\n ({ position, points, driverByDriverid, driverid }, i) => {\n const { color, constructor } = getConstructor(\n driverid,\n year\n );\n\n return (\n \n \n \n \n \n );\n }\n )}\n \n
\n #\n \n Driver\n \n Points\n
\n {position}\n \n \n {driverByDriverid.driverDisplayName}\n \n {points}\n
\n
\n
\n
\n )}\n
\n );\n};\n\nLpDriverStandings.propTypes = {};\n\nexport default LpDriverStandings;\n","import React from 'react';\nimport { Link } from 'gatsby';\nimport useCurrentData from '../../hooks/useCurrentData';\nimport getTeamColor from '../../util/f1TeamColors';\n\nconst LpTeamStandings = () => {\n const { constructorStandings, getCurrentYear } = useCurrentData();\n\n const year = getCurrentYear();\n\n return (\n
\n
\n

\n Constructor Standings\n

\n \n more\n Constructor Standings Insights\n \n
\n {constructorStandings &&\n constructorStandings.length &&\n constructorStandings.length > 0 && (\n
\n
\n
\n \n \n \n \n \n \n \n \n \n {constructorStandings\n .slice(0, 10)\n .map(\n (\n {\n position,\n points,\n constructorTeamByConstructorid,\n constructorid,\n },\n i\n ) => {\n const color = getTeamColor(\n constructorTeamByConstructorid?.name\n );\n return (\n \n \n \n \n \n );\n }\n )}\n \n
\n #\n \n Driver\n \n Points\n
\n {position}\n \n \n \n {constructorTeamByConstructorid?.name}\n \n \n {points}\n
\n
\n
\n
\n )}\n
\n );\n};\n\nLpTeamStandings.propTypes = {};\n\nexport default LpTeamStandings;\n","import { Link } from 'gatsby';\nimport React, { useEffect, useState } from 'react';\nimport useCurrentData from '../../hooks/useCurrentData';\n\nfunction getText(event, dateString) {\n if (!dateString) {\n return null;\n }\n\n const timeMs = new Date(dateString) - new Date(new Date().toDateString());\n\n if (timeMs > 0) {\n const timeDays = Math.floor(timeMs / (1000 * 60 * 60 * 24));\n if (timeDays === 0) {\n return `${event} is today`;\n }\n return `${event} in ${timeDays} days`;\n }\n return `${event} ✅`;\n}\n\nconst LpNextRaceCountdown = () => {\n const { nextRace } = useCurrentData();\n const [countdownState, setCountdownState] = useState({ loaded: false });\n useEffect(() => {\n if (!nextRace) {\n return;\n }\n const state = {\n loaded: true,\n fp1: getText('FP1', nextRace.fp1Date),\n quali: getText('Qualifying', nextRace.qualiDate),\n sprint: getText('Sprint', nextRace.sprintDate),\n race: getText('Race', nextRace.date),\n };\n setCountdownState(state);\n }, [nextRace, setCountdownState]);\n\n if (!nextRace) {\n return (\n
No data on next race yet
\n );\n }\n return (\n
\n
\n

\n Next Race\n

\n \n more\n details on next race\n \n
\n\n
\n
\n

\n {nextRace.name} {nextRace.year}\n

\n {countdownState.loaded && (\n
    \n {countdownState.fp1 &&
  • {countdownState.fp1}
  • }\n {countdownState.quali &&
  • {countdownState.quali}
  • }\n {countdownState.sprint &&
  • {countdownState.sprint}
  • }\n {countdownState.race &&
  • {countdownState.race}
  • }\n
\n )}\n
\n
\n
\n );\n};\n\nLpNextRaceCountdown.propTypes = {};\n\nexport default LpNextRaceCountdown;\n","import React, { useState, useEffect } from 'react';\nimport Infobox from '../components/alerts/infobox';\nimport Layout from '../components/layout';\nimport SEO from '../components/seo';\nimport LinkList from '../components/index/LinkList';\nimport LandingHero from '../components/landingPage/landingHero';\nimport LpDriverStandings from '../components/landingPage/lpDriverStandings';\nimport useCurrentData from '../hooks/useCurrentData';\nimport LpTeamStandings from '../components/landingPage/lpTeamStandings';\nimport LpNextRaceCountdown from '../components/landingPage/lpNextRaceCountdown';\n\nconst IndexPage = () => {\n const { lastRace, currentSeason } = useCurrentData();\n const [email, setEmail] = useState('');\n\n useEffect(() => {\n setTimeout(() => {\n const encoded =\n '97-71-86-115-98-71-57-65-90-106-70-121-90-88-66-118-99-110-81-117-98-109-86-48';\n\n const ascii = encoded.split('-');\n const res = String.fromCharCode(...ascii);\n setEmail(atob(res));\n }, 2000);\n }, [setEmail]);\n\n return (\n \n \n
\n
\n
\n
\n \n
\n
\n {lastRace && (\n \n )}\n \n \n \n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n

\n Stats are generated after a race has happened. I do not\n have access to live data and training data.\n

\n

\n If you have any feedback or ideas feel free to contact me{' '}\n \n {email ? 'via email' : 'via email (loading...)'}\n {' '}\n or on{' '}\n \n twitter\n \n .\n

\n
\n
\n
\n
\n
\n );\n};\n\nexport default IndexPage;\n","/* \nI darkened some, to make them more readable\n\nsources: \nhttps://www.reddit.com/r/formula1/comments/lfpyfp/f1_2021_team_colors_hex_codes/\nhttps://www.reddit.com/r/formula1/comments/arxt0r/f1_2019_team_colors_hex_codes/\nhttps://www.reddit.com/r/formula1/comments/4v9t9f/f1_team_color_hex_codes/\n*/\n\nconst warnSet = new Set();\n\nconst NO_COLOR_FOUND = '#C9D1D2';\n\nconst colors = {\n McLaren: '#FF8700',\n AlphaTauri: '#2B4562',\n Williams: '#0ac9df',\n 'Alpine F1 Team': '#eb94c1',\n 'Red Bull': '#2e313a',\n Ferrari: '#DC0000',\n Mercedes: '#00D2BE',\n 'Alfa Romeo': '#900000',\n 'Haas F1 Team': '\t#000000',\n 'Aston Martin': '#006F62',\n Renault: '#e6c317',\n 'Racing Point': '#F596C8',\n 'Manor Marussia': '#323232',\n Sauber: '#03ed03',\n 'Force India': '#FF5F0F',\n 'Toro Rosso': '#0000FF',\n Virgin: '#cc0000',\n HRT: '#A6904F',\n Jordan: '#CCCC00',\n Minardi: '#E9C010',\n Toyota: '#E71837',\n Jaguar: '#004225',\n Arrows: '#CF6304',\n Prost: '#0B1740',\n Benetton: '#008860',\n BAR: '#B7082F',\n 'Talbot-Lago': '#4C60B7',\n 'Kurtis Kraft': '#D30027',\n Maserati: '#CE251A',\n Pawl: NO_COLOR_FOUND,\n Alta: '#184836',\n Simca: '#0260B8',\n Deidt: NO_COLOR_FOUND,\n ERA: NO_COLOR_FOUND,\n OSCA: '#AC2337',\n Veritas: '#ADA8B2',\n BMW: '#010053',\n Adams: NO_COLOR_FOUND,\n Watson: NO_COLOR_FOUND,\n Snowberger: '#38577A',\n Wetteroth: '#FF6D28',\n Olson: NO_COLOR_FOUND,\n Rae: NO_COLOR_FOUND,\n Ewing: NO_COLOR_FOUND,\n Langley: NO_COLOR_FOUND,\n Lesovsky: '#C24C1F',\n Stevens: NO_COLOR_FOUND,\n Marchese: NO_COLOR_FOUND,\n Nichels: '#575467',\n Moore: '#215AC1',\n Cooper: '#374C2F',\n BRM: '#8D2B1C',\n 'BRM-Ford': '#8D2B1C',\n Trevis: NO_COLOR_FOUND,\n Bromme: NO_COLOR_FOUND,\n Schroeder: NO_COLOR_FOUND,\n Hall: NO_COLOR_FOUND,\n Kuzma: NO_COLOR_FOUND,\n Sherman: NO_COLOR_FOUND,\n HWM: '#76BFB9',\n Cisitalia: '#F31141',\n AFM: NO_COLOR_FOUND,\n 'Aston Butterworth': '#2B2B2B',\n 'Frazer Nash': '#F31141',\n Connaught: '#21282C',\n Gordini: '#3C92E6',\n EMW: NO_COLOR_FOUND,\n Klenk: NO_COLOR_FOUND,\n Vanwall: '#16403A',\n Pankratz: NO_COLOR_FOUND,\n Phillips: NO_COLOR_FOUND,\n 'Arzani-Volpini': '#1A856A',\n Epperly: '#FFF389',\n Lancia: '#D24550',\n Porsche: '#D9D6DD',\n Lotus: '#FFB800',\n 'Team Lotus': '#FFB800',\n 'Lotus-Climax': '#FFB800',\n 'Lotus-Maserati': '#FFB800',\n 'Lotus-Borgward': '#FFB800',\n 'Lotus-BRM': '#FFB800',\n 'Lotus-Ford': '#FFB800',\n 'Lotus F1': '#FFB800',\n 'Cooper-Borgward': '#133131',\n 'Cooper-OSCA': '#133131',\n 'Cooper-Maserati': '#133131',\n 'Cooper-Climax': '#133131',\n 'Cooper-Castellotti': '#133131',\n 'Cooper-Alfa Romeo': '#133131',\n 'Cooper-Ford': '#133131',\n 'Cooper-BRM': '#133131',\n 'Cooper-ATS': '#133131',\n 'Cooper-Ferrari': '#133131',\n Fry: NO_COLOR_FOUND,\n JBW: '#333D3C',\n Christensen: NO_COLOR_FOUND,\n Sutton: NO_COLOR_FOUND,\n 'Behra-Porsche': '#016EA5',\n Turner: '#2F5953',\n Emeryson: '#F7D502',\n Dunn: NO_COLOR_FOUND,\n Elder: NO_COLOR_FOUND,\n Meskowski: NO_COLOR_FOUND,\n Scarab: '#0078C6',\n 'De Tomaso': '#E83801',\n 'De Tomaso-Osca': '#E83801',\n 'De Tomaso-Alfa Romeo': '#E83801',\n 'De Tomaso-Ferrari': '#E83801',\n Ferguson: '#133B6A',\n MBM: NO_COLOR_FOUND,\n Gilby: '#255B66',\n ENB: '#E0BE30',\n Honda: '#CD0000',\n Brabham: '#167018',\n 'Brabham-Repco': '#167018',\n 'Brabham-Climax': '#167018',\n 'Brabham-Ford': '#167018',\n 'Brabham-BRM': '#167018',\n 'BMW Sauber': '#0D1E60',\n Spyker: '#FF6D01',\n 'Spyker MF1': '#FF6D01',\n Brawn: '#E4F74E',\n 'Super Aguri': '#CD3A41',\n MF1: '#FF352E',\n Tyrrell: '#001DDC',\n Stewart: '#052554',\n Ligier: '#0168CB',\n Footwork: '#D72813',\n Forti: '#F9E545',\n Pacific: '#EA0E95',\n Simtek: '#48258C',\n Lola: '#FAAD0D',\n Larrousse: '#203D6F',\n LDS: '#024F30',\n 'LDS-Alfa Romeo': '#024F30',\n 'LDS-Climax': '#024F30',\n Stebro: '#000000',\n Scirocco: '#083F5B',\n ATS: '#EEDF00',\n Derrington: '#AE3325',\n BRP: '#CAFFCE',\n RE: NO_COLOR_FOUND,\n Caterham: '#1A984E',\n Marussia: '#FC2611',\n 'Tec-Mec': '#C41A25',\n Theodore: NO_COLOR_FOUND,\n Life: '#E22546',\n Rial: '#006DE2',\n Lambo: '#2F3275',\n Fondmetal: '#081C4C',\n Dallara: '#D0073B',\n Bugatti: '#267EEA',\n Parnelli: NO_COLOR_FOUND,\n Penske: '#17A6FF',\n Apollon: '#F1B643',\n Tecno: '#DA344A',\n Bellasi: '#BF403B',\n 'RB F1 Team': '#1a31ca',\n};\n\nfunction getTeamColor(team) {\n if (colors[team]) {\n return colors[team];\n }\n\n if (!warnSet.has(team)) {\n warnSet.add(team);\n // eslint-disable-next-line no-console\n console.warn(\n `Unknown team => \"${team}\". Using fallback color (${warnSet.size})`\n );\n }\n\n return '#374151'; // neutral gray\n}\n\nexport default getTeamColor;\n"],"sourceRoot":""}