{"version":3,"sources":["webpack://gatsby-tailwind/./node_modules/@headlessui/react/dist/components/disclosure/disclosure.js","webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/ChevronRightIcon.js","webpack://gatsby-tailwind/./node_modules/gatsby-plugin-mdx/index.js","webpack://gatsby-tailwind/./node_modules/gatsby-plugin-mdx/mdx-renderer.js","webpack://gatsby-tailwind/./src/components/sortableTable.jsx","webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/RssIcon.js","webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/ArrowUpIcon.js","webpack://gatsby-tailwind/./src/util/getBlogMeta.js","webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/CalendarIcon.js","webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/ClockIcon.js","webpack://gatsby-tailwind/./node_modules/@heroicons/react/solid/esm/TagIcon.js","webpack://gatsby-tailwind/./src/components/blog/PostStats.jsx","webpack://gatsby-tailwind/./src/components/ImageGetter.jsx","webpack://gatsby-tailwind/./src/components/blog/BlogTable.jsx","webpack://gatsby-tailwind/./src/components/blog/BlogBarChart.jsx","webpack://gatsby-tailwind/./src/templates/blog-page-template.jsx","webpack://gatsby-tailwind/./src/util/slugify.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/construct.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/defineProperty.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://gatsby-tailwind/./node_modules/gatsby/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"],"names":["_X","_excluded","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","l","o","Q","Open","Closed","V","ToggleDisclosure","CloseDisclosure","SetButtonId","SetPanelId","LinkPanel","UnlinkPanel","X","e","_O","disclosureState","linkedPanel","t","buttonId","panelId","h","H","Error","concat","captureStackTrace","displayName","U","K","w","Z","type","ee","te","_O2","_t$defaultOpen","defaultOpen","n","s","u","D","f","current","as","P","m","p","buttonRef","panelRef","_p","a","c","T","A","I","HTMLElement","getElementById","focus","C","close","r","open","d","ref","Provider","value","ourProps","theirProps","slot","defaultTag","name","le","_H","_H2","preventDefault","stopPropagation","currentTarget","disabled","onKeyDown","onClick","id","onKeyUp","re","se","_H3","_H4","unmount","features","visible","ke","assign","Button","Panel","ForwardRef","props","svgRef","xmlns","viewBox","fill","fillRule","clipRule","MDXRenderer","require","module","React","mdx","useMDXScope","scope","children","mdxScope","End","fullScope","values","fn","NO_FILL","FILL","SortedHeaderRenderer","column","top","bottom","isSorted","isSortedDesc","className","render","PaginationBar","canPreviousPage","canNextPage","pageCount","pageIndex","pageOptions","gotoPage","nextPage","previousPage","cellClasses","arr","showAt","console","error","join","headerClasses","SortableTable","data","columns","defaultSort","pagination","initialState","useSortBy","sortBy","pageSize","usePagination","useTable","getTableProps","getTableBodyProps","headerGroups","rows","page","prepareRow","state","iterator","map","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getSortByToggleProps","row","getRowProps","cells","cell","getCellProps","defaultProps","siteUrl","imgSrc","imgAlt","publishISO","tags","imgHeight","imgWidth","meta","content","tag","PostStats","date","formattedDate","timeToRead","tagsAvailaible","dateTime","Link","to","slugify","filename","classes","alt","StaticQuery","query","G","image","images","allImageSharp","edges","find","element","node","gatsbyImageData","fallback","src","split","pop","Discl","ChevronRightIcon","InlineHtml","disclosure","dangerouslySetInnerHTML","__html","placeholdersRegex","ColLink","link","finishedLink","exec","index","lastIndex","match","accessor","replace","val","original","desc","sortDirection","computedCols","useMemo","col","hidden","isHtml","Cell","teamDisplay","teamName","textClasses","VAL_KEY","ENT_KEY","getColor","obj","getTeamColor","constructor","tooltip","style","background","color","getAria","aria","components","Image","BlogTable","BlogBarChart","inputData","axisBottomLabel","axisRightLabel","title","JSON","stringify","parseFloat","entity","height","layout","minValue","indexBy","margin","right","padding","valueScale","indexScale","round","colors","borderColor","from","modifiers","axisBottom","tickSize","tickPadding","tickRotation","legend","legendPosition","legendOffset","axisRight","axisLeft","labelSkipWidth","labelSkipHeight","labelTextColor","animate","motionStiffness","motionDamping","role","ariaLabel","barAriaLabel","body","frontmatter","description","titleImage","fixedTitleImage","titleImageAlt","titleImageSource","getBlogMeta","childImageSharp","width","titleId","noMarginTop","noMarginBottom","noMarginSides","blog","href","text","MDXProvider","exports","input","str","trim","toLowerCase","fr","RegExp","charAt","len","arr2","Array","__esModule","arrayLikeToArray","isArray","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","args","Class","Reflect","construct","instance","Function","bind","prototype","configurable","writable","sham","Proxy","Boolean","valueOf","call","iter","Symbol","TypeError","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","minLen","toString","slice","test"],"mappings":"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","file":"component---src-templates-blog-page-template-jsx-5f2829414916cb985630.js","sourcesContent":["import _slicedToArray from \"/home/philipp/websites/f1report.xyz/f1-stats-page/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"/home/philipp/websites/f1report.xyz/f1-stats-page/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"/home/philipp/websites/f1report.xyz/f1-stats-page/node_modules/babel-preset-gatsby/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"defaultOpen\"];\n\nvar _X;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport y, { Fragment as j, createContext as L, useContext as k, useEffect as g, useMemo as E, useReducer as N, useRef as R } from \"react\";\nimport { match as O } from \"../../utils/match.js\";\nimport { forwardRefWithAs as M, render as x, Features as F } from \"../../utils/render.js\";\nimport { optionalRef as G, useSyncRefs as v } from \"../../hooks/use-sync-refs.js\";\nimport { useId as _ } from \"../../hooks/use-id.js\";\nimport { Keys as S } from \"../keyboard.js\";\nimport { isDisabledReactIssue7711 as W } from \"../../utils/bugs.js\";\nimport { OpenClosedProvider as $, State as B, useOpenClosed as q } from \"../../internal/open-closed.js\";\nimport { useResolveButtonType as z } from \"../../hooks/use-resolve-button-type.js\";\nimport { getOwnerDocument as J } from \"../../utils/owner.js\";\nimport { useEvent as b } from \"../../hooks/use-event.js\";\n\nvar Q = function (o) {\n return o[o.Open = 0] = \"Open\", o[o.Closed = 1] = \"Closed\", o;\n}(Q || {}),\n V = function (l) {\n return l[l.ToggleDisclosure = 0] = \"ToggleDisclosure\", l[l.CloseDisclosure = 1] = \"CloseDisclosure\", l[l.SetButtonId = 2] = \"SetButtonId\", l[l.SetPanelId = 3] = \"SetPanelId\", l[l.LinkPanel = 4] = \"LinkPanel\", l[l.UnlinkPanel = 5] = \"UnlinkPanel\", l;\n}(V || {});\n\nvar X = (_X = {}, _defineProperty(_X, 0, function _(e) {\n var _O;\n\n return _objectSpread(_objectSpread({}, e), {}, {\n disclosureState: O(e.disclosureState, (_O = {}, _defineProperty(_O, 0, 1), _defineProperty(_O, 1, 0), _O))\n });\n}), _defineProperty(_X, 1, function _(e) {\n return e.disclosureState === 1 ? e : _objectSpread(_objectSpread({}, e), {}, {\n disclosureState: 1\n });\n}), _defineProperty(_X, 4, function _(e) {\n return e.linkedPanel === !0 ? e : _objectSpread(_objectSpread({}, e), {}, {\n linkedPanel: !0\n });\n}), _defineProperty(_X, 5, function _(e) {\n return e.linkedPanel === !1 ? e : _objectSpread(_objectSpread({}, e), {}, {\n linkedPanel: !1\n });\n}), _defineProperty(_X, 2, function _(e, t) {\n return e.buttonId === t.buttonId ? e : _objectSpread(_objectSpread({}, e), {}, {\n buttonId: t.buttonId\n });\n}), _defineProperty(_X, 3, function _(e, t) {\n return e.panelId === t.panelId ? e : _objectSpread(_objectSpread({}, e), {}, {\n panelId: t.panelId\n });\n}), _X),\n h = L(null);\nh.displayName = \"DisclosureContext\";\n\nfunction H(e) {\n var t = k(h);\n\n if (t === null) {\n var o = new Error(\"<\".concat(e, \" /> is missing a parent component.\"));\n throw Error.captureStackTrace && Error.captureStackTrace(o, H), o;\n }\n\n return t;\n}\n\nvar U = L(null);\nU.displayName = \"DisclosureAPIContext\";\n\nfunction K(e) {\n var t = k(U);\n\n if (t === null) {\n var o = new Error(\"<\".concat(e, \" /> is missing a parent component.\"));\n throw Error.captureStackTrace && Error.captureStackTrace(o, K), o;\n }\n\n return t;\n}\n\nvar w = L(null);\nw.displayName = \"DisclosurePanelContext\";\n\nfunction Y() {\n return k(w);\n}\n\nfunction Z(e, t) {\n return O(t.type, X, e, t);\n}\n\nvar ee = j,\n te = M(function (t, o) {\n var _O2;\n\n var _t$defaultOpen = t.defaultOpen,\n n = _t$defaultOpen === void 0 ? !1 : _t$defaultOpen,\n s = _objectWithoutProperties(t, _excluded),\n i = \"headlessui-disclosure-button-\".concat(_()),\n l = \"headlessui-disclosure-panel-\".concat(_()),\n u = R(null),\n D = v(o, G(function (f) {\n u.current = f;\n }, t.as === void 0 || t.as === y.Fragment)),\n P = R(null),\n m = R(null),\n p = N(Z, {\n disclosureState: n ? 0 : 1,\n linkedPanel: !1,\n buttonRef: m,\n panelRef: P,\n buttonId: i,\n panelId: l\n }),\n _p = _slicedToArray(p, 2),\n a = _p[0].disclosureState,\n c = _p[1];\n\n g(function () {\n return c({\n type: 2,\n buttonId: i\n });\n }, [i, c]), g(function () {\n return c({\n type: 3,\n panelId: l\n });\n }, [l, c]);\n var T = b(function (f) {\n c({\n type: 1\n });\n var A = J(u);\n if (!A) return;\n\n var I = function () {\n return f ? f instanceof HTMLElement ? f : f.current instanceof HTMLElement ? f.current : A.getElementById(i) : A.getElementById(i);\n }();\n\n I == null || I.focus();\n }),\n C = E(function () {\n return {\n close: T\n };\n }, [T]),\n r = E(function () {\n return {\n open: a === 0,\n close: T\n };\n }, [a, T]),\n d = {\n ref: D\n };\n return y.createElement(h.Provider, {\n value: p\n }, y.createElement(U.Provider, {\n value: C\n }, y.createElement($, {\n value: O(a, (_O2 = {}, _defineProperty(_O2, 0, B.Open), _defineProperty(_O2, 1, B.Closed), _O2))\n }, x({\n ourProps: d,\n theirProps: s,\n slot: r,\n defaultTag: ee,\n name: \"Disclosure\"\n }))));\n}),\n ne = \"button\",\n le = M(function (t, o) {\n var _H = H(\"Disclosure.Button\"),\n _H2 = _slicedToArray(_H, 2),\n n = _H2[0],\n s = _H2[1],\n i = Y(),\n l = i === null ? !1 : i === n.panelId,\n u = R(null),\n D = v(u, o, l ? null : n.buttonRef),\n P = b(function (r) {\n var d;\n\n if (l) {\n if (n.disclosureState === 1) return;\n\n switch (r.key) {\n case S.Space:\n case S.Enter:\n r.preventDefault(), r.stopPropagation(), s({\n type: 0\n }), (d = n.buttonRef.current) == null || d.focus();\n break;\n }\n } else switch (r.key) {\n case S.Space:\n case S.Enter:\n r.preventDefault(), r.stopPropagation(), s({\n type: 0\n });\n break;\n }\n }),\n m = b(function (r) {\n switch (r.key) {\n case S.Space:\n r.preventDefault();\n break;\n }\n }),\n p = b(function (r) {\n var d;\n W(r.currentTarget) || t.disabled || (l ? (s({\n type: 0\n }), (d = n.buttonRef.current) == null || d.focus()) : s({\n type: 0\n }));\n }),\n a = E(function () {\n return {\n open: n.disclosureState === 0\n };\n }, [n]),\n c = z(t, u),\n T = t,\n C = l ? {\n ref: D,\n type: c,\n onKeyDown: P,\n onClick: p\n } : {\n ref: D,\n id: n.buttonId,\n type: c,\n \"aria-expanded\": t.disabled ? void 0 : n.disclosureState === 0,\n \"aria-controls\": n.linkedPanel ? n.panelId : void 0,\n onKeyDown: P,\n onKeyUp: m,\n onClick: p\n };\n\n return x({\n ourProps: C,\n theirProps: T,\n slot: a,\n defaultTag: ne,\n name: \"Disclosure.Button\"\n });\n}),\n oe = \"div\",\n re = F.RenderStrategy | F.Static,\n se = M(function (t, o) {\n var _H3 = H(\"Disclosure.Panel\"),\n _H4 = _slicedToArray(_H3, 2),\n n = _H4[0],\n s = _H4[1],\n _K = K(\"Disclosure.Panel\"),\n i = _K.close,\n l = v(o, n.panelRef, function () {\n n.linkedPanel || s({\n type: 4\n });\n }),\n u = q(),\n D = function () {\n return u !== null ? u === B.Open : n.disclosureState === 0;\n }();\n\n g(function () {\n return function () {\n return s({\n type: 5\n });\n };\n }, [s]), g(function () {\n var a;\n n.disclosureState === 1 && ((a = t.unmount) != null ? a : !0) && s({\n type: 5\n });\n }, [n.disclosureState, t.unmount, s]);\n var P = E(function () {\n return {\n open: n.disclosureState === 0,\n close: i\n };\n }, [n, i]),\n m = t,\n p = {\n ref: l,\n id: n.panelId\n };\n return y.createElement(w.Provider, {\n value: n.panelId\n }, x({\n ourProps: p,\n theirProps: m,\n slot: P,\n defaultTag: oe,\n features: re,\n visible: D,\n name: \"Disclosure.Panel\"\n }));\n}),\n ke = Object.assign(te, {\n Button: le,\n Panel: se\n});\nexport { ke as Disclosure };","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;","/**\n * Welcome to gatsby-plugin-mdx!\n *\n * Start reading in gatsby-node.js\n */\n\nconst MDXRenderer = require(`./mdx-renderer`)\n\nmodule.exports = {\n MDXRenderer: MDXRenderer,\n}\n","const React = require(`react`)\nconst { mdx } = require(`@mdx-js/react`)\nconst { useMDXScope } = require(`./context`)\n\nmodule.exports = function MDXRenderer({\n scope,\n children,\n ...props\n}) {\n const mdxScope = useMDXScope(scope)\n\n // Memoize the compiled component\n const End = React.useMemo(() => {\n if (!children) {\n return null\n }\n\n const fullScope = {\n // React is here just in case the user doesn't pass them in\n // in a manual usage of the renderer\n React,\n mdx,\n ...mdxScope,\n }\n\n const keys = Object.keys(fullScope)\n const values = keys.map(key => fullScope[key])\n const fn = new Function(`_fn`, ...keys, `${children}`)\n\n return fn({}, ...values)\n }, [children, scope])\n\n return React.createElement(End, {...props })\n}\n","/* eslint-disable react/prop-types */\n/* eslint-disable react/forbid-prop-types */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { usePagination, useSortBy, useTable } from 'react-table';\n\nconst NO_FILL = `#D1D5DB`;\nconst FILL = `#374151`;\n\nconst SortedHeaderRenderer = ({ column }) => {\n let top = NO_FILL;\n let bottom = NO_FILL;\n\n if (column.isSorted && column.isSortedDesc) {\n bottom = FILL;\n } else if (column.isSorted) {\n top = FILL;\n }\n\n return (\n
\n {column.render('Header')}\n \n \n \n \n
\n );\n};\n\nSortedHeaderRenderer.propTypes = {\n column: PropTypes.object.isRequired,\n};\n\nconst PaginationBar = ({\n canPreviousPage,\n canNextPage,\n pageCount,\n pageIndex,\n pageOptions,\n gotoPage,\n nextPage,\n previousPage,\n}) => (\n
\n
\n gotoPage(0)}\n disabled={!canPreviousPage}\n >\n {'<<'}\n \n previousPage()}\n disabled={!canPreviousPage}\n >\n {'<'}\n \n \n Page\n {pageIndex + 1}\n of\n {pageOptions.length}\n \n nextPage()}\n disabled={!canNextPage}\n className=\"rounded bg-white px-2 shadow hover:bg-blue-50 focus:outline-none focus:ring focus:ring-blue-300 disabled:cursor-not-allowed disabled:bg-transparent disabled:text-zinc-300 disabled:shadow-none\"\n >\n {'>'}\n \n gotoPage(pageCount - 1)}\n disabled={!canNextPage}\n >\n {'>>'}\n \n
\n
\n);\n\nconst cellClasses = (column) => {\n const arr = [];\n\n // needed to be written out for purging styles\n if (column.showAt) {\n switch (column.showAt) {\n case 'sm':\n arr.push('hidden sm:c-table-cell');\n break;\n case 'md':\n arr.push('hidden md:c-table-cell');\n break;\n case 'lg':\n arr.push('hidden lg:c-table-cell');\n break;\n default:\n // eslint-disable-next-line no-console\n console.error(`SortableTable => Unknown showAt \"${column.showAt}\"`);\n arr.push('c-table-cell');\n }\n } else {\n arr.push('c-table-cell');\n }\n\n if (column.className) {\n arr.push(column.className);\n }\n\n return arr.join(' ');\n};\n\nconst headerClasses = (column) => {\n if (column.showAt) {\n switch (column.showAt) {\n case 'sm':\n return 'hidden sm:c-table-heading';\n case 'md':\n return 'hidden md:c-table-heading';\n case 'lg':\n return 'hidden lg:c-table-heading';\n default:\n // eslint-disable-next-line no-console\n console.error(`SortableTable => Unknown showAt \"${column.showAt}\"`);\n return 'c-table-heading';\n }\n }\n\n return 'c-table-heading';\n};\n\nconst SortableTable = ({ data, columns, defaultSort, pagination }) => {\n const initialState = {};\n\n const props = [{ columns, data, initialState }, useSortBy];\n\n if (defaultSort) {\n initialState.sortBy = defaultSort;\n }\n\n if (pagination) {\n initialState.pageSize = pagination;\n props.push(usePagination);\n }\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n page,\n prepareRow,\n\n // pagination\n nextPage,\n previousPage,\n canPreviousPage,\n canNextPage,\n pageOptions,\n pageCount,\n gotoPage,\n state: { pageIndex },\n } = useTable(...props);\n\n const iterator = pagination ? page : rows;\n\n if (!columns || columns.length === 0) {\n return (\n
\n
\n No columns selected to display...\n
\n
\n );\n }\n\n return (\n
\n
\n
\n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n \n \n ))}\n \n ))}\n \n \n {iterator.map((row, i) => {\n prepareRow(row);\n return (\n \n {row.cells.map((cell) => (\n \n {cell.render('Cell')}\n \n ))}\n \n );\n })}\n \n \n
\n {pagination && (\n \n )}\n
\n
\n );\n};\n\nSortableTable.propTypes = {\n data: PropTypes.array.isRequired,\n columns: PropTypes.array,\n defaultSort: PropTypes.array,\n pagination: PropTypes.number,\n};\n\nSortableTable.defaultProps = {\n defaultSort: null,\n pagination: null,\n columns: [],\n};\n\nexport default SortableTable;\n","import * as React from \"react\";\n\nfunction RssIcon(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 d: \"M5 3a1 1 0 000 2c5.523 0 10 4.477 10 10a1 1 0 102 0C17 8.373 11.627 3 5 3z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 9a1 1 0 011-1 7 7 0 017 7 1 1 0 11-2 0 5 5 0 00-5-5 1 1 0 01-1-1zM3 15a2 2 0 114 0 2 2 0 01-4 0z\"\n }));\n}\n\nvar ForwardRef = React.forwardRef(RssIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction ArrowUpIcon(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: \"M3.293 9.707a1 1 0 010-1.414l6-6a1 1 0 011.414 0l6 6a1 1 0 01-1.414 1.414L11 5.414V17a1 1 0 11-2 0V5.414L4.707 9.707a1 1 0 01-1.414 0z\",\n clipRule: \"evenodd\"\n }));\n}\n\nvar ForwardRef = React.forwardRef(ArrowUpIcon);\nexport default ForwardRef;","const siteUrl = 'https://f1report.net';\n\nfunction getBlogMeta({\n imgSrc,\n imgAlt,\n publishISO,\n tags,\n imgHeight,\n imgWidth,\n}) {\n const meta = [\n {\n name: `twitter:image`,\n content: `${siteUrl}${imgSrc}`,\n },\n {\n name: `twitter:image:alt`,\n content: imgAlt,\n },\n {\n name: `og:image`,\n content: `${siteUrl}${imgSrc}`,\n },\n {\n name: `og:image:width`,\n content: imgWidth,\n },\n {\n name: `og:image:height`,\n content: imgHeight,\n },\n {\n name: `og:image:alt`,\n content: imgAlt,\n },\n {\n name: `article:published_time`,\n content: publishISO,\n },\n {\n name: `og:locale`,\n content: `en_US`,\n },\n ];\n\n tags.forEach((tag) => {\n meta.push({\n name: `article:tag`,\n content: tag,\n });\n });\n\n return meta;\n}\n\nexport default getBlogMeta;\n","import * as React from \"react\";\n\nfunction CalendarIcon(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: \"M6 2a1 1 0 00-1 1v1H4a2 2 0 00-2 2v10a2 2 0 002 2h12a2 2 0 002-2V6a2 2 0 00-2-2h-1V3a1 1 0 10-2 0v1H7V3a1 1 0 00-1-1zm0 5a1 1 0 000 2h8a1 1 0 100-2H6z\",\n clipRule: \"evenodd\"\n }));\n}\n\nvar ForwardRef = React.forwardRef(CalendarIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction ClockIcon(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: \"M10 18a8 8 0 100-16 8 8 0 000 16zm1-12a1 1 0 10-2 0v4a1 1 0 00.293.707l2.828 2.829a1 1 0 101.415-1.415L11 9.586V6z\",\n clipRule: \"evenodd\"\n }));\n}\n\nvar ForwardRef = React.forwardRef(ClockIcon);\nexport default ForwardRef;","import * as React from \"react\";\n\nfunction TagIcon(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: \"M17.707 9.293a1 1 0 010 1.414l-7 7a1 1 0 01-1.414 0l-7-7A.997.997 0 012 10V5a3 3 0 013-3h5c.256 0 .512.098.707.293l7 7zM5 6a1 1 0 100-2 1 1 0 000 2z\",\n clipRule: \"evenodd\"\n }));\n}\n\nvar ForwardRef = React.forwardRef(TagIcon);\nexport default ForwardRef;","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { CalendarIcon, ClockIcon, TagIcon } from '@heroicons/react/solid';\nimport { Link } from 'gatsby';\nimport slugify from '../../util/slugify';\n\nexport const PostStats = ({ date, formattedDate, timeToRead, tags }) => {\n const tagsAvailaible = tags && tags.length > 0;\n return (\n
\n
\n \n \n
\n
\n \n {timeToRead} min\n
\n {tagsAvailaible ? (\n
\n \n
    \n {tags.map((tag, i) => (\n
  • \n \n {tag}\n \n {i <= tags.length - 2 ? , : null}\n
  • \n ))}\n
\n
\n ) : null}\n
\n );\n};\n\nPostStats.propTypes = {\n date: PropTypes.string.isRequired,\n formattedDate: PropTypes.string.isRequired,\n timeToRead: PropTypes.number.isRequired,\n tags: PropTypes.arrayOf(PropTypes.string).isRequired,\n};\n","import { graphql, StaticQuery } from 'gatsby';\nimport { GatsbyImage } from 'gatsby-plugin-image';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst ImageGetter = ({ filename, classes, alt }) => {\n const filterImage = (images) =>\n images.allImageSharp.edges.find(\n (element) =>\n // Match string after final slash\n element.node.gatsbyImageData.images.fallback.src.split('/').pop() ===\n filename\n );\n\n return (\n (\n \n )}\n />\n );\n};\n\nImageGetter.propTypes = {\n filename: PropTypes.string.isRequired,\n classes: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n};\n\nexport default ImageGetter;\n","/* eslint-disable react/no-danger */\n/* eslint-disable react/forbid-prop-types */\n/* eslint-disable react/prop-types */\nimport PropTypes from 'prop-types';\nimport React, { useMemo } from 'react';\nimport { Disclosure } from '@headlessui/react';\nimport { ChevronRightIcon } from '@heroicons/react/solid';\nimport { Link } from 'gatsby';\nimport SortableTable from '../sortableTable';\nimport TeamDisplay from '../teamDisplay/teamDisplay';\n\nconst Discl = ({ children }) => (\n \n {({ open }) => (\n <>\n \n Expand\n {/*\n Use the `open` render prop to rotate the icon when the panel is open\n */}\n \n \n \n {children}\n \n \n )}\n \n);\n\nconst InlineHtml = ({ value, classes, disclosure = false }) => {\n if (disclosure) {\n return (\n \n
\n \n );\n }\n\n return (\n
\n );\n};\n\nconst placeholdersRegex = /\\$.*\\$/gim;\nconst ColLink = ({ value, classes, row, link }) => {\n let m;\n let finishedLink = link;\n\n // eslint-disable-next-line no-cond-assign\n while ((m = placeholdersRegex.exec(link)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (m.index === placeholdersRegex.lastIndex) {\n placeholdersRegex.lastIndex += 1;\n }\n\n // The result can be accessed through the `m`-variable.\n // eslint-disable-next-line no-loop-func\n m.forEach((match) => {\n const accessor = match.replace(/\\$/g, '');\n const val = row.original[accessor];\n\n finishedLink = finishedLink.replace(match, val);\n });\n }\n\n return (\n \n {value}\n \n );\n};\n\nconst BlogTable = ({ data, columns, sortBy, sortDirection }) => {\n const defaultSort = [\n {\n id: sortBy,\n desc: sortDirection === 'desc',\n },\n ];\n\n const computedCols = useMemo(\n () =>\n columns\n .filter((col) => typeof col.hidden !== 'boolean' || !col.hidden)\n .map((col) => {\n if (typeof col.isHtml === 'boolean' && col.isHtml === true) {\n return {\n ...col,\n // eslint-disable-next-line react/no-unstable-nested-components\n Cell: ({ value }) => (\n \n ),\n };\n }\n\n if (col.link) {\n return {\n ...col,\n // eslint-disable-next-line react/no-unstable-nested-components\n Cell: ({ value, row }) => (\n \n ),\n };\n }\n\n if (col.teamDisplay && col.teamDisplay === true) {\n return {\n ...col,\n // eslint-disable-next-line react/no-unstable-nested-components\n Cell: ({ value }) => (\n \n ),\n };\n }\n\n return {\n ...col,\n // eslint-disable-next-line react/no-unstable-nested-components\n Cell: ({ value }) =>
{value}
,\n };\n }),\n [columns]\n );\n\n return (\n
\n \n
\n );\n};\n\nBlogTable.propTypes = {\n data: PropTypes.array.isRequired,\n columns: PropTypes.array.isRequired,\n sortBy: PropTypes.string.isRequired,\n sortDirection: PropTypes.string.isRequired,\n};\n\nexport default BlogTable;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport { ResponsiveBar } from '@nivo/bar';\nimport getTeamColor from '../../util/f1TeamColors';\n\nconst VAL_KEY = 'value';\nconst ENT_KEY = 'entity';\n\nfunction getColor(obj) {\n return getTeamColor(obj.data.constructor);\n}\n\nfunction tooltip(obj) {\n return (\n
\n \n {obj.data.tooltip}\n
\n );\n}\n\nfunction getAria(obj) {\n return obj.data.aria;\n}\n\nconst BlogBarChart = ({\n inputData,\n axisBottomLabel,\n axisRightLabel,\n title,\n}) => {\n if (!inputData || !inputData.length || inputData.length === 0) {\n throw new Error(\n `BlogBarChart: inputData is required - received ${inputData}`\n );\n }\n\n const data = inputData.map((d) => {\n if (!d[VAL_KEY] || !d[ENT_KEY]) {\n throw new Error(\n `BlogBarChart: row need value or entity ${JSON.stringify(d)}`\n );\n }\n\n return {\n value: parseFloat(d[VAL_KEY]),\n entity: d[ENT_KEY],\n constructor: d.constructor,\n aria: d.aria,\n tooltip: `${d[ENT_KEY]}: ${d[VAL_KEY]}`,\n };\n });\n\n return (\n
\n
\n
\n \n
\n
{title}
\n
\n
\n );\n};\n\nBlogBarChart.propTypes = {\n // eslint-disable-next-line react/forbid-prop-types\n inputData: PropTypes.array.isRequired,\n axisBottomLabel: PropTypes.string.isRequired,\n axisRightLabel: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default BlogBarChart;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { MDXProvider } from '@mdx-js/react';\nimport { MDXRenderer } from 'gatsby-plugin-mdx';\nimport { graphql } from 'gatsby';\nimport { GatsbyImage } from 'gatsby-plugin-image';\nimport { ArrowUpIcon, RssIcon } from '@heroicons/react/solid';\nimport slugify from '../util/slugify';\nimport Layout from '../components/layout';\nimport SEO from '../components/seo';\nimport '../styles/blog.css';\nimport getBlogMeta from '../util/getBlogMeta';\nimport { PostStats } from '../components/blog/PostStats';\nimport ImageGetter from '../components/ImageGetter';\nimport BlogTable from '../components/blog/BlogTable';\nimport BlogBarChart from '../components/blog/BlogBarChart';\n\nconst components = {\n // eslint-disable-next-line react/prop-types\n Image: ({ filename, alt }) => ,\n BlogTable,\n BlogBarChart,\n};\n\nexport const query = graphql`\n query ($id: String!) {\n content: mdx(id: { eq: $id }) {\n frontmatter {\n title\n date\n formattedDate: date(formatString: \"MMMM DD, YYYY\")\n description\n titleImage {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH)\n }\n }\n fixedTitleImage: titleImage {\n childImageSharp {\n gatsbyImageData(layout: FIXED)\n }\n }\n titleImageAlt\n titleImageSource {\n text\n href\n }\n }\n body\n timeToRead\n }\n }\n`;\n\nconst BlogPostTemplate = ({ data }) => {\n const { content } = data;\n const { body, frontmatter, timeToRead } = content;\n const {\n title,\n date,\n formattedDate,\n description,\n titleImage,\n fixedTitleImage,\n titleImageAlt,\n titleImageSource,\n } = frontmatter;\n\n const meta = getBlogMeta({\n imgSrc: fixedTitleImage.childImageSharp.gatsbyImageData.images.fallback.src,\n imgAlt: titleImageAlt,\n publishISO: date,\n tags: [],\n imgWidth: fixedTitleImage.childImageSharp.gatsbyImageData.width,\n imgHeight: fixedTitleImage.childImageSharp.gatsbyImageData.height,\n });\n\n const titleId = slugify(title);\n\n return (\n \n \n
\n \n
\n
\n );\n};\n\nBlogPostTemplate.propTypes = {\n data: PropTypes.shape({\n content: PropTypes.shape({\n body: PropTypes.string.isRequired,\n timeToRead: PropTypes.number.isRequired,\n frontmatter: PropTypes.shape({\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n titleImage: PropTypes.object.isRequired,\n fixedTitleImage: PropTypes.object.isRequired,\n titleImageSource: PropTypes.shape({\n text: PropTypes.string,\n href: PropTypes.string,\n }),\n date: PropTypes.string.isRequired,\n formattedDate: PropTypes.string.isRequired,\n titleImageAlt: PropTypes.string.isRequired,\n tags: PropTypes.arrayOf(PropTypes.string),\n authors: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n }).isRequired,\n }).isRequired,\n};\n\nexport default BlogPostTemplate;\n","function slugify(input) {\n let str = input;\n str = str.trim();\n str = str.toLowerCase();\n\n // swap accents\n const fr = 'àáäâèéëêìíïîòóöôùúüûñç·/_,:;';\n const to = 'aaaaeeeeiiiioooouuuunc------';\n for (let i = 0, l = fr.length; i < l; i += 1) {\n str = str.replace(new RegExp(fr.charAt(i), 'g'), to.charAt(i));\n }\n\n str = str\n .replace(/[^a-z0-9 -]/g, '') // remove invalid chars\n .replace(/\\s+/g, '-') // collapse whitespace and replace by -\n .replace(/-+/g, '-'); // collapse dashes\n\n return str;\n}\n\nmodule.exports = slugify;\n","function _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\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _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\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;"],"sourceRoot":""}