{"version":3,"sources":["webpack://gatsby-tailwind/./src/hooks/useDriverIndex.js","webpack://gatsby-tailwind/./src/components/season-template/driverStandingsBar.jsx","webpack://gatsby-tailwind/./src/components/season-template/driverPositionBump.jsx","webpack://gatsby-tailwind/./node_modules/@nivo/stream/dist/nivo-stream.es.js","webpack://gatsby-tailwind/./src/components/season-template/driverProgressStream.jsx","webpack://gatsby-tailwind/./src/components/season-template/driverStandingTable.jsx","webpack://gatsby-tailwind/./src/components/season-template/teamStandingTable.jsx","webpack://gatsby-tailwind/./src/components/season-template/teamStandingsBar.jsx","webpack://gatsby-tailwind/./src/components/season-template/constructorProgressStream.jsx","webpack://gatsby-tailwind/./src/components/season-template/constructorPositionBump.jsx","webpack://gatsby-tailwind/./src/templates/season-template.jsx"],"names":["data","useStaticQuery","getDriver","desiredId","useMemo","postgres","allDriversList","find","d","parseInt","driverid","allDrivers","getColor","obj","getTeamColor","constructor","getAria","driver","points","standings","resultsByRaceidList","year","map","s","driverByDriverid","driverDisplayName","driverId","tooltip","i","constr","r","constructorTeamByConstructorid","name","length","className","style","height","background","color","layout","minValue","keys","indexBy","margin","top","right","padding","valueScale","type","indexScale","round","colors","borderColor","from","modifiers","axisBottom","tickSize","tickPadding","tickRotation","legend","legendPosition","legendOffset","axisRight","labelSkipWidth","labelSkipHeight","labelTextColor","animate","motionStiffness","motionDamping","role","ariaLabel","barAriaLabel","serie","id","racesByYearList","seasondrivermainconsByYearList","race","driverstandingsByRaceidList","pointsInRound","j","position","driverInfo","index","findIndex","drivers","team","push","x","y","bottom","left","lineWidth","activeLineWidth","inactiveLineWidth","inactiveOpacity","pointSize","activePointSize","inactivePointSize","pointColor","theme","pointBorderWidth","activePointBorderWidth","pointBorderColor","axisTop","axisLeft","_objectWithoutProperties","source","excluded","key","target","sourceKeys","Object","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call","_defineProperty","value","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","arguments","forEach","getOwnPropertyDescriptors","defineProperties","StreamLayer","_ref","layer","fillOpacity","borderWidth","getBorderColor","isInteractive","_useTooltip","showTooltipFromEvent","hideTooltip","handleMouseHover","useCallback","event","createElement","_useMotionConfig","springConfig","config","animatedPath","path","animatedProps","useSpring","immediate","jsx","fill","stroke","strokeWidth","onMouseMove","undefined","onMouseEnter","onMouseLeave","StreamLayers","layers","children","getDotY","datum","y2","y1","StreamDots","dotComponent","getSize","getBorderWidth","Fragment","size","_arrayLikeToArray","arr","len","arr2","Array","_slicedToArray","isArray","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","o","minLen","n","toString","slice","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","StreamSlicesItem","_useState2","useState","isHover","setIsHover","handleMouseLeave","jsxs","transform","concat","x1","x2","strokeOpacity","width","StreamSlices","slices","defaultProps","label","order","offsetType","curve","enableGridX","enableGridY","scheme","enableDots","dotPosition","radius","cx","cy","dotSize","dotColor","dotBorderWidth","dotBorderColor","enableChip","enableStackTooltip","stackTooltip","rows","stack","p","layerId","layerLabel","formattedValue","legends","legendLabel","svgDefaultProps","defs","motionConfig","isFocusable","InnerStream","valueFormat","_ref$layers","chartLayers","partialMargin","_ref$axisBottom","_ref$axisLeft","_ref$enableGridX","_ref$enableGridY","_ref$fillOpacity","_ref$borderWidth","_ref$defs","_ref$fill","_ref$enableDots","_ref$dotPosition","_ref$dotComponent","_ref$isInteractive","_ref$tooltip","_ref$enableStackToolt","_ref$stackTooltip","_ref$legends","ariaLabelledBy","ariaDescribedBy","_useDimensions","innerWidth","innerHeight","outerWidth","outerHeight","_useStream","_ref$label","_ref$offsetType","_ref$order","_ref$curve","_ref$colors","_ref$borderColor","_ref$dotSize","_ref$dotColor","_ref$dotBorderWidth","_ref$dotBorderColor","areaCurveFactory","areaGenerator","_ref2","y0","_ref3","_ref4","stack$1","offset","_useMemo2","allMin","allMax","point","Math","min","maxValue","max","domain","_","range","xScale","yScale","getDotSize","getDotColor","getDotBorderWidth","getDotBorderColor","getLabel","formatValue","enhancedLayers","layerIndex","computedPoints","layerWithComputedProperties","sliceStack","sort","a","b","layerContext","useStream","boundDefs","layerById","grid","axes","dots","includes","legendData","reverse","containerWidth","containerHeight","_layerById$layer","Stream","_ref2$isInteractive","_ref2$animate","_ref2$motionConfig","renderWrapper","otherProps","ResponsiveStream","props","useDriverIndex","result","pctOfAllPoints","orient","info","anchor","direction","translateX","itemWidth","itemHeight","itemTextColor","symbolSize","symbolShape","scope","wins","teamStandings","constructorid","teamName","teams","t","constructorstandingsByRaceidList","seasonByYear","url","seasonlastracesByYearList","raceByLastraceid","driverTabs","tabId","tabName","component","constructorTabs","description","one","two","meta","arrayWithValues","keywords","content","metaTags","title","href","tabs","defaultTabId"],"mappings":"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","file":"component---src-templates-season-template-jsx-d96206d99c117804d54d.js","sourcesContent":["import { graphql, useStaticQuery } from 'gatsby';\nimport { useMemo } from 'react';\n\nconst useDriverIndex = () => {\n const data = useStaticQuery(graphql`\n {\n postgres {\n allDriversList {\n driverid\n driverDisplayName\n nationality\n number\n surname\n forename\n }\n }\n }\n `);\n\n const getDriver = (desiredId) =>\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useMemo(\n () =>\n data.postgres.allDriversList.find(\n (d) => parseInt(d.driverid) === parseInt(desiredId)\n ),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [desiredId, data.postgres.allDriversList]\n );\n\n return {\n getDriver,\n allDrivers: data.postgres.allDriversList,\n };\n};\n\nexport default useDriverIndex;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ResponsiveBar } from '@nivo/bar';\nimport { raceResultsType, driverStandingsType } from '../../types';\nimport getTeamColor from '../../util/f1TeamColors';\n\nfunction getColor(obj) {\n return getTeamColor(obj.data.constructor);\n}\n\nfunction getAria(obj) {\n return `${obj.data.driver}: ${obj.data.points} points`;\n}\n\nconst DriverStandingsBar = ({ standings, resultsByRaceidList, year }) => {\n const data = standings.map((s) => ({\n points: s.points,\n driver: s.driverByDriverid.driverDisplayName,\n driverId: s.driverid,\n tooltip: `${s.driverByDriverid.driverDisplayName}: ${s.points}`,\n }));\n\n for (let i = 0; i < data.length; i += 1) {\n const constr = resultsByRaceidList.find(\n (r) => r.driverid === data[i].driverId\n );\n if (constr) {\n data[i].constructor = constr.constructorTeamByConstructorid.name;\n }\n }\n\n function tooltip(obj) {\n return (\n
\n
\n
{obj.data.tooltip}\n
\n );\n }\n\n return (\n \n
\n \n \n
\n {`${year} Driver Standings`}\n \n
\n );\n};\n\nDriverStandingsBar.propTypes = {\n standings: PropTypes.arrayOf(driverStandingsType).isRequired,\n resultsByRaceidList: PropTypes.arrayOf(raceResultsType).isRequired,\n year: PropTypes.string.isRequired,\n};\n\nexport default DriverStandingsBar;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ResponsiveBump } from '@nivo/bump';\nimport { raceType, seasonDriverMainConsType } from '../../types';\nimport getTeamColor from '../../util/f1TeamColors';\n\nfunction getColor(obj) {\n return obj.color;\n}\n\nfunction tooltip({ serie }) {\n return (\n \n );\n}\n\nconst DriverPositionBump = ({\n racesByYearList,\n seasondrivermainconsByYearList,\n}) => {\n const data = [];\n for (let i = 0; i < racesByYearList.length; i += 1) {\n const race = racesByYearList[i];\n const { round, driverstandingsByRaceidList } = race;\n\n // sometimes there race results where everybody has 0 pts. filter them out\n let pointsInRound = 0;\n for (let j = 0; j < race.driverstandingsByRaceidList.length; j += 1) {\n pointsInRound += race.driverstandingsByRaceidList[j].points;\n }\n\n if (pointsInRound !== 0) {\n for (let j = 0; j < driverstandingsByRaceidList.length; j += 1) {\n const { driverid, position } = driverstandingsByRaceidList[j];\n\n const driverInfo = seasondrivermainconsByYearList.find(\n (s) => s.driverid === driverid\n );\n\n const driver = driverInfo?.driverByDriverid?.driverDisplayName;\n const index = data.findIndex((drivers) => drivers.id === driver);\n\n if (index === -1) {\n const team = driverInfo?.constructorTeamByConstructorid?.name;\n\n data.push({\n id: driver,\n color: getTeamColor(team),\n data: [{ x: round, y: position }],\n });\n } else {\n data[index].data.push({\n x: round,\n y: position,\n });\n }\n }\n }\n }\n\n return (\n \n \n
\n );\n};\n\nDriverPositionBump.propTypes = {\n racesByYearList: PropTypes.arrayOf(raceType).isRequired,\n seasondrivermainconsByYearList: PropTypes.arrayOf(seasonDriverMainConsType)\n .isRequired,\n};\n\nexport default DriverPositionBump;\n","import { useCallback, createElement, useState, useMemo, Fragment as Fragment$1 } from 'react';\nimport { useMotionConfig, useAnimatedPath, useCurveInterpolation, stackOffsetFromProp, stackOrderFromProp, useTheme, usePropertyAccessor, useValueFormatter, Container, useDimensions, bindDefs, SvgWrapper, ResponsiveWrapper } from '@nivo/core';\nimport { Grid, Axes } from '@nivo/axes';\nimport { BoxLegendSvg } from '@nivo/legends';\nimport { useSpring, animated } from '@react-spring/web';\nimport { useTooltip, BasicTooltip, Chip, TableTooltip } from '@nivo/tooltip';\nimport { jsx, Fragment, jsxs } from 'react/jsx-runtime';\nimport { area, stack } from 'd3-shape';\nimport { scalePoint, scaleLinear } from 'd3-scale';\nimport { useOrdinalColorScale, useInheritedColor } from '@nivo/colors';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar StreamLayer = function StreamLayer(_ref) {\n var layer = _ref.layer,\n fillOpacity = _ref.fillOpacity,\n borderWidth = _ref.borderWidth,\n getBorderColor = _ref.getBorderColor,\n isInteractive = _ref.isInteractive,\n tooltip = _ref.tooltip;\n\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n\n var handleMouseHover = useCallback(function (event) {\n showTooltipFromEvent(createElement(tooltip, {\n layer: layer\n }), event, 'left');\n }, [showTooltipFromEvent, layer]);\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.config;\n\n var animatedPath = useAnimatedPath(layer.path);\n var animatedProps = useSpring({\n color: layer.color,\n config: springConfig,\n immediate: !animate\n });\n return jsx(animated.path, {\n d: animatedPath,\n fill: layer.fill ? layer.fill : animatedProps.color,\n fillOpacity: fillOpacity,\n stroke: getBorderColor(layer),\n strokeWidth: borderWidth,\n onMouseMove: isInteractive ? handleMouseHover : undefined,\n onMouseEnter: isInteractive ? handleMouseHover : undefined,\n onMouseLeave: isInteractive ? hideTooltip : undefined\n });\n};\n\nvar StreamLayers = function StreamLayers(_ref) {\n var layers = _ref.layers,\n fillOpacity = _ref.fillOpacity,\n borderWidth = _ref.borderWidth,\n getBorderColor = _ref.getBorderColor,\n isInteractive = _ref.isInteractive,\n tooltip = _ref.tooltip;\n return jsx(\"g\", {\n children: layers.map(function (layer, i) {\n return jsx(StreamLayer, {\n layer: layer,\n getBorderColor: getBorderColor,\n borderWidth: borderWidth,\n fillOpacity: fillOpacity,\n isInteractive: isInteractive,\n tooltip: tooltip\n }, i);\n })\n });\n};\n\nvar getDotY = function getDotY(datum, position) {\n var y = datum.y2;\n\n if (position === 'center') {\n y = datum.y1 + (datum.y2 - datum.y1) / 2;\n } else if (position === 'start') {\n y = datum.y1;\n }\n\n return y;\n};\n\nvar StreamDots = function StreamDots(_ref) {\n var data = _ref.data,\n dotComponent = _ref.dotComponent,\n position = _ref.position,\n getSize = _ref.getSize,\n getColor = _ref.getColor,\n getBorderWidth = _ref.getBorderWidth,\n getBorderColor = _ref.getBorderColor;\n return jsx(Fragment, {\n children: data.map(function (datum, i) {\n return createElement(dotComponent, {\n key: i,\n datum: datum,\n x: datum.x,\n y: getDotY(datum, position),\n size: getSize(datum),\n color: getColor(datum),\n borderWidth: getBorderWidth(datum),\n borderColor: getBorderColor(datum)\n });\n })\n });\n};\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nvar StreamSlicesItem = function StreamSlicesItem(_ref) {\n var slice = _ref.slice,\n height = _ref.height,\n tooltip = _ref.tooltip;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isHover = _useState2[0],\n setIsHover = _useState2[1];\n\n var _useTooltip = useTooltip(),\n showTooltipFromEvent = _useTooltip.showTooltipFromEvent,\n hideTooltip = _useTooltip.hideTooltip;\n\n var handleMouseHover = useCallback(function (event) {\n setIsHover(true);\n showTooltipFromEvent(createElement(tooltip, {\n slice: slice\n }), event, 'left');\n }, [setIsHover, showTooltipFromEvent, tooltip, slice]);\n var handleMouseLeave = useCallback(function () {\n setIsHover(false);\n hideTooltip();\n }, [setIsHover, hideTooltip]);\n return jsxs(\"g\", {\n transform: \"translate(\".concat(slice.x, \", 0)\"),\n children: [isHover && jsx(\"line\", {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: height,\n stroke: \"#000\",\n strokeOpacity: 0.35,\n strokeWidth: 1\n }), jsx(\"rect\", {\n x: -20,\n width: 40,\n height: height,\n fill: \"#000\",\n fillOpacity: 0,\n onMouseEnter: handleMouseHover,\n onMouseMove: handleMouseHover,\n onMouseLeave: handleMouseLeave\n })]\n });\n};\n\nvar StreamSlices = function StreamSlices(_ref) {\n var slices = _ref.slices,\n height = _ref.height,\n tooltip = _ref.tooltip;\n return jsx(\"g\", {\n children: slices.map(function (slice) {\n return jsx(StreamSlicesItem, {\n slice: slice,\n height: height,\n tooltip: tooltip\n }, slice.index);\n })\n });\n};\n\nvar StreamDotsItem = function StreamDotsItem(_ref) {\n var x = _ref.x,\n y = _ref.y,\n size = _ref.size,\n color = _ref.color,\n borderWidth = _ref.borderWidth,\n borderColor = _ref.borderColor;\n\n var _useMotionConfig = useMotionConfig(),\n animate = _useMotionConfig.animate,\n springConfig = _useMotionConfig.config;\n\n var animatedProps = useSpring({\n x: x,\n y: y,\n radius: size * 0.5,\n color: color,\n config: springConfig,\n immediate: !animate\n });\n return jsx(animated.circle, {\n cx: animatedProps.x,\n cy: animatedProps.y,\n r: animatedProps.radius,\n fill: animatedProps.color,\n strokeWidth: borderWidth,\n stroke: borderColor\n });\n};\n\nvar LayerTooltip = function LayerTooltip(_ref) {\n var layer = _ref.layer;\n return jsx(BasicTooltip, {\n id: layer.label,\n enableChip: true,\n color: layer.color\n });\n};\n\nvar StackTooltip = function StackTooltip(_ref) {\n var slice = _ref.slice;\n var rows = useMemo(function () {\n return slice.stack.map(function (p) {\n return [jsx(Chip, {\n color: p.color\n }, p.layerId), p.layerLabel, p.formattedValue];\n });\n }, [slice]);\n return jsx(TableTooltip, {\n rows: rows\n });\n};\n\nvar defaultProps = {\n label: 'id',\n order: 'none',\n offsetType: 'wiggle',\n curve: 'catmullRom',\n axisBottom: {},\n axisLeft: {},\n enableGridX: false,\n enableGridY: true,\n colors: {\n scheme: 'nivo'\n },\n fillOpacity: 1,\n borderWidth: 0,\n borderColor: {\n from: 'color',\n modifiers: [['darker', 1]]\n },\n enableDots: false,\n dotPosition: 'center',\n dotComponent: StreamDotsItem,\n dotSize: 6,\n dotColor: {\n from: 'color'\n },\n dotBorderWidth: 0,\n dotBorderColor: {\n from: 'color'\n },\n isInteractive: true,\n tooltip: LayerTooltip,\n enableStackTooltip: true,\n stackTooltip: StackTooltip,\n legends: [],\n legendLabel: 'id',\n role: 'application'\n};\n\nvar svgDefaultProps = _objectSpread2(_objectSpread2({}, defaultProps), {}, {\n layers: ['grid', 'axes', 'layers', 'dots', 'slices', 'legends'],\n defs: [],\n fill: [],\n animate: true,\n motionConfig: 'default',\n role: 'img',\n isFocusable: false\n});\n\nvar useStream = function useStream(_ref) {\n var width = _ref.width,\n height = _ref.height,\n data = _ref.data,\n keys = _ref.keys,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? defaultProps.label : _ref$label,\n valueFormat = _ref.valueFormat,\n _ref$offsetType = _ref.offsetType,\n offsetType = _ref$offsetType === void 0 ? defaultProps.offsetType : _ref$offsetType,\n _ref$order = _ref.order,\n order = _ref$order === void 0 ? defaultProps.order : _ref$order,\n _ref$curve = _ref.curve,\n curve = _ref$curve === void 0 ? defaultProps.curve : _ref$curve,\n _ref$colors = _ref.colors,\n colors = _ref$colors === void 0 ? defaultProps.colors : _ref$colors,\n _ref$borderColor = _ref.borderColor,\n borderColor = _ref$borderColor === void 0 ? defaultProps.borderColor : _ref$borderColor,\n _ref$dotSize = _ref.dotSize,\n dotSize = _ref$dotSize === void 0 ? defaultProps.dotSize : _ref$dotSize,\n _ref$dotColor = _ref.dotColor,\n dotColor = _ref$dotColor === void 0 ? defaultProps.dotColor : _ref$dotColor,\n _ref$dotBorderWidth = _ref.dotBorderWidth,\n dotBorderWidth = _ref$dotBorderWidth === void 0 ? defaultProps.dotBorderWidth : _ref$dotBorderWidth,\n _ref$dotBorderColor = _ref.dotBorderColor,\n dotBorderColor = _ref$dotBorderColor === void 0 ? defaultProps.dotBorderColor : _ref$dotBorderColor;\n var areaCurveFactory = useCurveInterpolation(curve);\n var areaGenerator = useMemo(function () {\n return area().x(function (_ref2) {\n var x = _ref2.x;\n return x;\n }).y0(function (_ref3) {\n var y1 = _ref3.y1;\n return y1;\n }).y1(function (_ref4) {\n var y2 = _ref4.y2;\n return y2;\n }).curve(areaCurveFactory);\n }, [areaCurveFactory]);\n var stack$1 = useMemo(function () {\n return stack().keys(keys).offset(stackOffsetFromProp(offsetType)).order(stackOrderFromProp(order));\n }, [keys, offsetType, order]);\n\n var _useMemo = useMemo(function () {\n var allMin = [];\n var allMax = [];\n var layers = stack$1(data).map(function (layer) {\n return layer.map(function (point) {\n allMin.push(point[0]);\n allMax.push(point[1]);\n return _objectSpread2(_objectSpread2({}, point), {}, {\n value: point.data[layer.key]\n });\n });\n });\n var minValue = Math.min.apply(Math, allMin);\n var maxValue = Math.max.apply(Math, allMax);\n return [layers, scalePoint().domain(Array.from({\n length: data.length\n }, function (_, i) {\n return i;\n })).range([0, width]), scaleLinear().domain([minValue, maxValue]).range([height, 0])];\n }, [stack$1, data, width, height]),\n _useMemo2 = _slicedToArray(_useMemo, 3),\n layers = _useMemo2[0],\n xScale = _useMemo2[1],\n yScale = _useMemo2[2];\n\n var theme = useTheme();\n var getColor = useOrdinalColorScale(colors, 'id');\n var getBorderColor = useInheritedColor(borderColor, theme);\n var getDotSize = useMemo(function () {\n return typeof dotSize === 'function' ? dotSize : function () {\n return dotSize;\n };\n }, [dotSize]);\n var getDotColor = useInheritedColor(dotColor, theme);\n var getDotBorderWidth = useMemo(function () {\n return typeof dotBorderWidth === 'function' ? dotBorderWidth : function () {\n return dotBorderWidth;\n };\n }, [dotBorderWidth]);\n var getDotBorderColor = useInheritedColor(dotBorderColor, theme);\n var getLabel = usePropertyAccessor(label);\n var formatValue = useValueFormatter(valueFormat);\n var enhancedLayers = useMemo(function () {\n return layers.map(function (points, layerIndex) {\n var computedPoints = points.map(function (point, i) {\n return {\n layerId: keys[layerIndex],\n layerLabel: '',\n index: i,\n color: '',\n x: xScale(i),\n value: point.value,\n formattedValue: formatValue(point.value),\n y1: yScale(point[0]),\n y2: yScale(point[1])\n };\n });\n var layer = {\n id: keys[layerIndex],\n path: areaGenerator(computedPoints)\n };\n\n var layerWithComputedProperties = _objectSpread2(_objectSpread2({}, layer), {}, {\n label: getLabel(layer),\n color: getColor(layer)\n });\n\n return _objectSpread2(_objectSpread2({}, layerWithComputedProperties), {}, {\n data: computedPoints.map(function (point) {\n point.layerLabel = layerWithComputedProperties.label;\n point.color = layerWithComputedProperties.color;\n return point;\n })\n });\n });\n }, [layers, keys, getLabel, areaGenerator, getColor, xScale, yScale, formatValue]);\n var slices = useMemo(function () {\n return Array.from({\n length: data.length\n }, function (_, i) {\n var sliceStack = enhancedLayers.map(function (layer) {\n return layer.data[i];\n }).sort(function (a, b) {\n return a.y2 - b.y2;\n });\n return {\n index: i,\n x: enhancedLayers[0].data[i].x,\n stack: sliceStack\n };\n });\n }, [data.length, enhancedLayers]);\n var layerContext = useMemo(function () {\n return {\n xScale: xScale,\n yScale: yScale,\n layers: enhancedLayers,\n slices: slices\n };\n }, [xScale, yScale, enhancedLayers, slices]);\n return {\n xScale: xScale,\n yScale: yScale,\n layers: enhancedLayers,\n slices: slices,\n getBorderColor: getBorderColor,\n getDotSize: getDotSize,\n getDotColor: getDotColor,\n getDotBorderWidth: getDotBorderWidth,\n getDotBorderColor: getDotBorderColor,\n layerContext: layerContext\n };\n};\n\nvar InnerStream = function InnerStream(_ref) {\n var data = _ref.data,\n keys = _ref.keys,\n label = _ref.label,\n valueFormat = _ref.valueFormat,\n offsetType = _ref.offsetType,\n order = _ref.order,\n curve = _ref.curve,\n _ref$layers = _ref.layers,\n chartLayers = _ref$layers === void 0 ? svgDefaultProps.layers : _ref$layers,\n width = _ref.width,\n height = _ref.height,\n partialMargin = _ref.margin,\n axisTop = _ref.axisTop,\n axisRight = _ref.axisRight,\n _ref$axisBottom = _ref.axisBottom,\n axisBottom = _ref$axisBottom === void 0 ? svgDefaultProps.axisBottom : _ref$axisBottom,\n _ref$axisLeft = _ref.axisLeft,\n axisLeft = _ref$axisLeft === void 0 ? svgDefaultProps.axisLeft : _ref$axisLeft,\n _ref$enableGridX = _ref.enableGridX,\n enableGridX = _ref$enableGridX === void 0 ? svgDefaultProps.enableGridX : _ref$enableGridX,\n _ref$enableGridY = _ref.enableGridY,\n enableGridY = _ref$enableGridY === void 0 ? svgDefaultProps.enableGridY : _ref$enableGridY,\n colors = _ref.colors,\n _ref$fillOpacity = _ref.fillOpacity,\n fillOpacity = _ref$fillOpacity === void 0 ? svgDefaultProps.fillOpacity : _ref$fillOpacity,\n _ref$borderWidth = _ref.borderWidth,\n borderWidth = _ref$borderWidth === void 0 ? svgDefaultProps.borderWidth : _ref$borderWidth,\n borderColor = _ref.borderColor,\n _ref$defs = _ref.defs,\n defs = _ref$defs === void 0 ? svgDefaultProps.defs : _ref$defs,\n _ref$fill = _ref.fill,\n fill = _ref$fill === void 0 ? svgDefaultProps.fill : _ref$fill,\n _ref$enableDots = _ref.enableDots,\n enableDots = _ref$enableDots === void 0 ? svgDefaultProps.enableDots : _ref$enableDots,\n _ref$dotPosition = _ref.dotPosition,\n dotPosition = _ref$dotPosition === void 0 ? svgDefaultProps.dotPosition : _ref$dotPosition,\n _ref$dotComponent = _ref.dotComponent,\n dotComponent = _ref$dotComponent === void 0 ? svgDefaultProps.dotComponent : _ref$dotComponent,\n dotSize = _ref.dotSize,\n dotColor = _ref.dotColor,\n dotBorderWidth = _ref.dotBorderWidth,\n dotBorderColor = _ref.dotBorderColor,\n _ref$isInteractive = _ref.isInteractive,\n isInteractive = _ref$isInteractive === void 0 ? svgDefaultProps.isInteractive : _ref$isInteractive,\n _ref$tooltip = _ref.tooltip,\n tooltip = _ref$tooltip === void 0 ? svgDefaultProps.tooltip : _ref$tooltip,\n _ref$enableStackToolt = _ref.enableStackTooltip,\n enableStackTooltip = _ref$enableStackToolt === void 0 ? svgDefaultProps.enableStackTooltip : _ref$enableStackToolt,\n _ref$stackTooltip = _ref.stackTooltip,\n stackTooltip = _ref$stackTooltip === void 0 ? svgDefaultProps.stackTooltip : _ref$stackTooltip,\n _ref$legends = _ref.legends,\n legends = _ref$legends === void 0 ? svgDefaultProps.legends : _ref$legends,\n role = _ref.role,\n ariaLabel = _ref.ariaLabel,\n ariaLabelledBy = _ref.ariaLabelledBy,\n ariaDescribedBy = _ref.ariaDescribedBy;\n\n var _useDimensions = useDimensions(width, height, partialMargin),\n margin = _useDimensions.margin,\n innerWidth = _useDimensions.innerWidth,\n innerHeight = _useDimensions.innerHeight,\n outerWidth = _useDimensions.outerWidth,\n outerHeight = _useDimensions.outerHeight;\n\n var _useStream = useStream({\n width: innerWidth,\n height: innerHeight,\n data: data,\n keys: keys,\n label: label,\n valueFormat: valueFormat,\n offsetType: offsetType,\n order: order,\n curve: curve,\n colors: colors,\n borderColor: borderColor,\n dotSize: dotSize,\n dotColor: dotColor,\n dotBorderWidth: dotBorderWidth,\n dotBorderColor: dotBorderColor\n }),\n xScale = _useStream.xScale,\n yScale = _useStream.yScale,\n layers = _useStream.layers,\n slices = _useStream.slices,\n getBorderColor = _useStream.getBorderColor,\n getDotSize = _useStream.getDotSize,\n getDotColor = _useStream.getDotColor,\n getDotBorderWidth = _useStream.getDotBorderWidth,\n getDotBorderColor = _useStream.getDotBorderColor,\n layerContext = _useStream.layerContext;\n\n var boundDefs = bindDefs(defs, layers, fill);\n var layerById = {\n grid: null,\n axes: null,\n layers: null,\n dots: null,\n slices: null,\n legends: null\n };\n\n if (chartLayers.includes('grid')) {\n layerById.grid = jsx(Grid, {\n width: innerWidth,\n height: innerHeight,\n xScale: enableGridX ? xScale : null,\n yScale: enableGridY ? yScale : null\n }, \"grid\");\n }\n\n if (chartLayers.includes('axes')) {\n layerById.axes = jsx(Axes, {\n xScale: xScale,\n yScale: yScale,\n width: innerWidth,\n height: innerHeight,\n top: axisTop,\n right: axisRight,\n bottom: axisBottom,\n left: axisLeft\n }, \"axes\");\n }\n\n if (chartLayers.includes('layers')) {\n layerById.layers = jsx(StreamLayers, {\n layers: layers,\n fillOpacity: fillOpacity,\n borderWidth: borderWidth,\n getBorderColor: getBorderColor,\n isInteractive: isInteractive,\n tooltip: tooltip\n }, \"layers\");\n }\n\n if (chartLayers.includes('dots') && enableDots) {\n layerById.dots = jsx(Fragment$1, {\n children: layers.map(function (layer) {\n return jsx(StreamDots, {\n id: layer.id,\n color: layer.color,\n data: layer.data,\n dotComponent: dotComponent,\n position: dotPosition,\n getSize: getDotSize,\n getColor: getDotColor,\n getBorderWidth: getDotBorderWidth,\n getBorderColor: getDotBorderColor\n }, layer.id);\n })\n }, \"dots\");\n }\n\n if (chartLayers.includes('slices') && isInteractive && enableStackTooltip) {\n layerById.slices = jsx(StreamSlices, {\n slices: slices,\n height: innerHeight,\n tooltip: stackTooltip\n }, \"slices\");\n }\n\n if (chartLayers.includes('legends')) {\n layerById.legends = jsx(Fragment$1, {\n children: legends.map(function (legend, i) {\n var legendData = layers.map(function (layer) {\n return {\n id: layer.id,\n label: layer.label,\n color: layer.color,\n fill: layer.fill\n };\n }).reverse();\n return jsx(BoxLegendSvg, _objectSpread2(_objectSpread2({}, legend), {}, {\n containerWidth: innerWidth,\n containerHeight: innerHeight,\n data: legendData\n }), i);\n })\n }, \"legends\");\n }\n\n return jsx(SvgWrapper, {\n width: outerWidth,\n height: outerHeight,\n margin: margin,\n defs: boundDefs,\n role: role,\n ariaLabel: ariaLabel,\n ariaLabelledBy: ariaLabelledBy,\n ariaDescribedBy: ariaDescribedBy,\n children: chartLayers.map(function (layer, i) {\n var _layerById$layer;\n\n if (typeof layer === 'function') {\n return jsx(Fragment$1, {\n children: createElement(layer, layerContext)\n }, i);\n }\n\n return (_layerById$layer = layerById === null || layerById === void 0 ? void 0 : layerById[layer]) !== null && _layerById$layer !== void 0 ? _layerById$layer : null;\n })\n });\n};\n\nvar Stream = function Stream(_ref2) {\n var _ref2$isInteractive = _ref2.isInteractive,\n isInteractive = _ref2$isInteractive === void 0 ? svgDefaultProps.isInteractive : _ref2$isInteractive,\n _ref2$animate = _ref2.animate,\n animate = _ref2$animate === void 0 ? svgDefaultProps.animate : _ref2$animate,\n _ref2$motionConfig = _ref2.motionConfig,\n motionConfig = _ref2$motionConfig === void 0 ? svgDefaultProps.motionConfig : _ref2$motionConfig,\n theme = _ref2.theme,\n renderWrapper = _ref2.renderWrapper,\n otherProps = _objectWithoutProperties(_ref2, [\"isInteractive\", \"animate\", \"motionConfig\", \"theme\", \"renderWrapper\"]);\n\n return jsx(Container, {\n animate: animate,\n isInteractive: isInteractive,\n motionConfig: motionConfig,\n renderWrapper: renderWrapper,\n theme: theme,\n children: jsx(InnerStream, _objectSpread2({\n isInteractive: isInteractive\n }, otherProps))\n });\n};\n\nvar ResponsiveStream = function ResponsiveStream(props) {\n return jsx(ResponsiveWrapper, {\n children: function children(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return jsx(Stream, _objectSpread2({\n width: width,\n height: height\n }, props));\n }\n });\n};\n\nexport { ResponsiveStream, Stream, defaultProps, svgDefaultProps };","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ResponsiveStream } from '@nivo/stream';\nimport getTeamColor from '../../util/f1TeamColors';\nimport {\n raceType,\n seasonDriverMainConsType,\n driverStandingsType,\n} from '../../types';\nimport useDriverIndex from '../../hooks/useDriverIndex';\n\nconst DriverProgressStream = ({\n racesByYearList,\n seasondrivermainconsByYearList,\n driverstandingsByRaceidList,\n}) => {\n const { getDriver } = useDriverIndex();\n // sorted by position\n const drivers = driverstandingsByRaceidList.map((s) => s.driverid);\n\n const map = {};\n const pointsInRound = {};\n\n for (let i = 0; i < racesByYearList.length; i += 1) {\n const race = racesByYearList[i];\n if (!map[race.round]) {\n map[race.round] = {};\n drivers.forEach((d) => {\n map[race.round][d] = 0;\n });\n pointsInRound[race.round] = 0;\n for (let j = 0; j < race.driverstandingsByRaceidList.length; j += 1) {\n pointsInRound[race.round] += race.driverstandingsByRaceidList[j].points;\n }\n }\n\n for (let j = 0; j < race.driverstandingsByRaceidList.length; j += 1) {\n const result = race.driverstandingsByRaceidList[j];\n if (result.points && typeof result.points === 'number') {\n const pctOfAllPoints = Math.round(\n (result.points / pointsInRound[race.round]) * 100\n );\n map[race.round][result.driverid] = pctOfAllPoints;\n }\n }\n }\n\n const data = [];\n Object.keys(map).forEach((round) => {\n if (Object.keys(map[round]).length > 0 && pointsInRound[round] > 0) {\n data.push(map[round]);\n }\n });\n\n function getColor({ id }) {\n const info = seasondrivermainconsByYearList.find((s) => s.driverid === id);\n\n return getTeamColor(info?.constructorTeamByConstructorid?.name);\n }\n\n function getDriverById({ id }) {\n const { driverDisplayName } = getDriver(id);\n return driverDisplayName;\n }\n\n return (\n \n \n
\n );\n};\n\nDriverProgressStream.propTypes = {\n racesByYearList: PropTypes.arrayOf(raceType).isRequired,\n driverstandingsByRaceidList:\n PropTypes.arrayOf(driverStandingsType).isRequired,\n seasondrivermainconsByYearList: PropTypes.arrayOf(seasonDriverMainConsType)\n .isRequired,\n};\n\nexport default DriverProgressStream;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { seasonDriverMainConsType, driverStandingsType } from '../../types';\nimport TeamDisplay from '../teamDisplay/driverTeamDisplay';\n\nconst DriverStandingsTable = ({\n standings,\n seasondrivermainconsByYearList,\n}) => (\n \n
\n
\n
\n \n \n \n #\n | \n \n Driver\n | \n \n Team\n | \n \n Wins\n | \n \n Points\n | \n
\n \n \n {standings.map(\n ({ position, points, wins, driverByDriverid, driverid }, i) => (\n \n {position} | \n \n {driverByDriverid.driverDisplayName}\n | \n \n \n | \n {wins} | \n \n {points}\n | \n
\n )\n )}\n \n
\n
\n
\n
\n);\n\nDriverStandingsTable.propTypes = {\n standings: PropTypes.arrayOf(driverStandingsType).isRequired,\n seasondrivermainconsByYearList: PropTypes.arrayOf(seasonDriverMainConsType)\n .isRequired,\n};\n\nexport default DriverStandingsTable;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { teamStandingsType } from '../../types';\nimport TeamDisplay from '../teamDisplay/teamDisplay';\n\nconst TeamStandingsTable = ({ teamStandings }) => (\n \n
\n
\n
\n \n \n \n #\n | \n \n Team\n | \n \n Wins\n | \n \n Points\n | \n
\n \n \n {teamStandings.map(\n (\n {\n position,\n points,\n wins,\n constructorTeamByConstructorid,\n constructorid,\n },\n i\n ) => (\n \n {position} | \n \n \n | \n {wins} | \n \n {points}\n | \n
\n )\n )}\n \n
\n
\n
\n
\n);\n\nTeamStandingsTable.propTypes = {\n teamStandings: PropTypes.arrayOf(teamStandingsType).isRequired,\n};\n\nexport default TeamStandingsTable;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ResponsiveBar } from '@nivo/bar';\nimport { teamStandingsType } from '../../types';\nimport getTeamColor from '../../util/f1TeamColors';\n\nfunction getColor(obj) {\n return getTeamColor(obj.data.constructor);\n}\n\nfunction getAria(obj) {\n return `${obj.data.constructor}: ${obj.data.points} points`;\n}\n\nconst TeamStandingsBar = ({ teamStandings, year }) => {\n const data = teamStandings.map((s) => ({\n points: s.points,\n constructor: s.constructorTeamByConstructorid.name,\n constructorid: s.constructorid,\n tooltip: `${s.constructorTeamByConstructorid.name}: ${s.points}`,\n color: getTeamColor(s.constructorTeamByConstructorid.name),\n }));\n\n function tooltip(obj) {\n return (\n \n
\n
{obj.data.tooltip}\n
\n );\n }\n\n return (\n \n
\n \n \n
\n {`${year} Constructor Standings`}\n \n
\n );\n};\n\nTeamStandingsBar.propTypes = {\n teamStandings: PropTypes.arrayOf(teamStandingsType).isRequired,\n year: PropTypes.string.isRequired,\n};\n\nexport default TeamStandingsBar;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ResponsiveStream } from '@nivo/stream';\nimport getTeamColor from '../../util/f1TeamColors';\nimport { raceType, teamStandingsType } from '../../types';\n\nconst ConstructorProgressStream = ({ racesByYearList, teamStandings }) => {\n // sorted by position\n const teams = teamStandings.map((t) => t.constructorid);\n\n const map = {};\n const pointsInRound = {};\n\n for (let i = 0; i < racesByYearList.length; i += 1) {\n const race = racesByYearList[i];\n if (!map[race.round]) {\n map[race.round] = {};\n teams.forEach((t) => {\n map[race.round][t] = 0;\n });\n pointsInRound[race.round] = 0;\n for (\n let j = 0;\n j < race.constructorstandingsByRaceidList.length;\n j += 1\n ) {\n pointsInRound[race.round] +=\n race.constructorstandingsByRaceidList[j].points;\n }\n }\n\n for (let j = 0; j < race.constructorstandingsByRaceidList.length; j += 1) {\n const result = race.constructorstandingsByRaceidList[j];\n if (result.points && typeof result.points === 'number') {\n const pctOfAllPoints = Math.round(\n (result.points / pointsInRound[race.round]) * 100\n );\n map[race.round][result.constructorid] = pctOfAllPoints;\n }\n }\n }\n\n const data = [];\n Object.keys(map).forEach((round) => {\n if (Object.keys(map[round]).length > 0 && pointsInRound[round] > 0) {\n data.push(map[round]);\n }\n });\n\n function getColor({ id }) {\n const info = teamStandings.find((t) => t.constructorid === id);\n return getTeamColor(info?.constructorTeamByConstructorid?.name);\n }\n\n function getDriverById({ id }) {\n const info = teamStandings.find((t) => t.constructorid === id);\n return info?.constructorTeamByConstructorid?.name;\n }\n\n return (\n \n \n
\n );\n};\n\nConstructorProgressStream.propTypes = {\n racesByYearList: PropTypes.arrayOf(raceType).isRequired,\n teamStandings: PropTypes.arrayOf(teamStandingsType).isRequired,\n};\n\nexport default ConstructorProgressStream;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ResponsiveBump } from '@nivo/bump';\nimport { raceType } from '../../types';\nimport getTeamColor from '../../util/f1TeamColors';\n\nfunction getColor(obj) {\n return obj.color;\n}\n\nfunction tooltip({ serie }) {\n return (\n \n );\n}\n\nconst ConstructorPositionBump = ({ racesByYearList }) => {\n const data = [];\n for (let i = 0; i < racesByYearList.length; i += 1) {\n const race = racesByYearList[i];\n const { round, constructorstandingsByRaceidList } = race;\n\n // sometimes there race results where everybody has 0 pts. filter them out\n let pointsInRound = 0;\n for (let j = 0; j < race.constructorstandingsByRaceidList.length; j += 1) {\n pointsInRound += race.constructorstandingsByRaceidList[j].points;\n }\n\n if (pointsInRound !== 0) {\n for (let j = 0; j < constructorstandingsByRaceidList.length; j += 1) {\n const { position, constructorTeamByConstructorid } =\n constructorstandingsByRaceidList[j];\n const { name } = constructorTeamByConstructorid;\n\n const index = data.findIndex((teams) => teams.id === name);\n\n if (index === -1) {\n data.push({\n id: name,\n color: getTeamColor(name),\n data: [{ x: round, y: position }],\n });\n } else {\n data[index].data.push({\n x: round,\n y: position,\n });\n }\n }\n }\n }\n\n return (\n \n \n
\n );\n};\n\nConstructorPositionBump.propTypes = {\n racesByYearList: PropTypes.arrayOf(raceType).isRequired,\n};\n\nexport default ConstructorPositionBump;\n","/* eslint-disable react/prop-types */\nimport { graphql } from 'gatsby';\nimport React from 'react';\nimport Layout from '../components/layout';\nimport RaceDetailsTable from '../components/raceDetailsTable';\nimport DriverStandingsBar from '../components/season-template/driverStandingsBar';\nimport DriverPositionBump from '../components/season-template/driverPositionBump';\nimport DriverProgressStream from '../components/season-template/driverProgressStream';\nimport DriverStandingsTable from '../components/season-template/driverStandingTable';\nimport SEO from '../components/seo';\nimport TabsContainer from '../components/tabsContainer';\nimport TeamStandingsTable from '../components/season-template/teamStandingTable';\nimport TeamStandingsBar from '../components/season-template/teamStandingsBar';\nimport ConstructorProgressStream from '../components/season-template/constructorProgressStream';\nimport { Header1, LinkableH2 } from '../components/headers';\nimport ConstructorPositionBump from '../components/season-template/constructorPositionBump';\nimport arrayWithValues from '../util/arrayWithValues';\n\nexport const query = graphql`\n query seasonData($year: PostGraphile_BigInt!) {\n postgres {\n seasonByYear(year: $year) {\n url\n year\n seasondrivermainconsByYearList {\n year\n constructorTeamByConstructorid {\n name\n }\n driverid\n driverByDriverid {\n driverDisplayName\n }\n }\n seasonlastracesByYearList {\n raceByLastraceid {\n driverstandingsByRaceidList(orderBy: POSITION_ASC) {\n position\n points\n wins\n driverid\n driverByDriverid {\n driverDisplayName\n }\n }\n resultsByRaceidList {\n driverid\n constructorTeamByConstructorid {\n name\n }\n }\n constructorstandingsByRaceidList(orderBy: POSITION_ASC) {\n points\n position\n constructorid\n wins\n constructorTeamByConstructorid {\n name\n }\n }\n }\n }\n racesByYearList(orderBy: DATE_ASC) {\n circuitByCircuitid {\n name\n country\n location\n circuitref\n }\n date\n raceid\n raceSlug\n round\n year\n name\n constructorstandingsByRaceidList {\n points\n position\n constructorid\n wins\n constructorTeamByConstructorid {\n name\n }\n }\n driverstandingsByRaceidList {\n driverid\n points\n position\n }\n resultsByRaceidList(condition: { position: \"1\" }) {\n driverByDriverid {\n driverDisplayName\n }\n constructorTeamByConstructorid {\n name\n }\n }\n }\n }\n }\n }\n`;\n\nconst metaTags = ({ driverstandingsByRaceidList, year }) => {\n const meta = [];\n let description;\n let one;\n let two;\n\n // description\n if (arrayWithValues(driverstandingsByRaceidList)) {\n one = driverstandingsByRaceidList.find((r) => parseInt(r.position) === 1)\n ?.driverByDriverid?.driverDisplayName;\n two = driverstandingsByRaceidList.find((r) => parseInt(r.position) === 2)\n ?.driverByDriverid?.driverDisplayName;\n const third = driverstandingsByRaceidList.find(\n (r) => parseInt(r.position) === 3\n )?.driverByDriverid?.driverDisplayName;\n description = `Results the ${year} season: 1st ${one}, 2nd: ${two}, 3rd ${third}`;\n } else {\n description = `Details of the upcoming season of ${year}`;\n }\n\n // keywords\n const keywords = {\n name: 'keywords',\n content: `Season, ${year}`,\n };\n if (one) {\n keywords.content += `, ${one}`;\n }\n if (two) {\n keywords.content += `, ${two}`;\n }\n meta.push(keywords);\n\n return { meta, description };\n};\n\nconst SeasonTemplate = ({ data }) => {\n const { seasonByYear } = data.postgres;\n const {\n url,\n year,\n racesByYearList,\n seasonlastracesByYearList,\n seasondrivermainconsByYearList,\n } = seasonByYear;\n\n let driverstandingsByRaceidList = [];\n let resultsByRaceidList = [];\n let constructorstandingsByRaceidList = [];\n\n if (seasonlastracesByYearList && seasonlastracesByYearList.length) {\n const { raceByLastraceid } = seasonlastracesByYearList[0];\n driverstandingsByRaceidList = raceByLastraceid.driverstandingsByRaceidList;\n resultsByRaceidList = raceByLastraceid.resultsByRaceidList;\n constructorstandingsByRaceidList =\n raceByLastraceid.constructorstandingsByRaceidList;\n }\n\n const driverTabs = [\n {\n tabId: 1,\n tabName: 'Table',\n component: (\n \n ),\n },\n {\n tabId: 2,\n tabName: 'Bar Chart',\n component: (\n \n ),\n },\n {\n tabId: 3,\n tabName: 'Point Distribution per Race',\n component: (\n \n ),\n },\n {\n tabId: 4,\n tabName: 'Position Changes',\n component: (\n \n ),\n },\n ];\n\n const constructorTabs = [\n {\n tabId: 1,\n tabName: 'Table',\n component: (\n \n ),\n },\n {\n tabId: 2,\n tabName: 'Bar Chart',\n component: (\n \n ),\n },\n {\n tabId: 3,\n tabName: 'Point Distribution per Race',\n component: (\n \n ),\n },\n {\n tabId: 4,\n tabName: 'Position Changes',\n component: ,\n },\n ];\n\n const { meta, description } = metaTags({ driverstandingsByRaceidList, year });\n\n return (\n \n {`${year} Season`}\n \n \n {driverstandingsByRaceidList.length > 0 ? (\n \n Driver Standings\n \n
\n ) : null}\n {constructorstandingsByRaceidList.length > 0 ? (\n \n Constructor Standings\n \n
\n ) : null}\n \n Races\n \n
\n \n );\n};\n\nexport default SeasonTemplate;\n"],"sourceRoot":""}