{"version":3,"file":"component---src-templates-latest-post-tsx-ca1aa8dc3a837bd07fbd.js","mappings":"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","sources":["webpack://gravitywell-website-2019/./src/components/related-latest-articles/related-latest-articles.tsx","webpack://gravitywell-website-2019/./src/templates/LatestPost.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport {\n IFluid,\n ILocalFile\n} from \"src/types/local-files\";\n\nimport ArticleTeaser from \"../article-teaser\";\nimport { FullWidthColumnWrapper } from \"../confines-wrappers\";\nimport { IProfileData } from \"../../pages/about-us\";\nimport styled from \"../../theme/styled\";\nimport {\n colourHelper,\n fontLineHeightHelper,\n fontSizeHelper,\n fontSpaceHelper,\n fontWeightHelper\n} from \"../../theme/theme-helper\";\nimport Icon from \"../icon/icon\";\nimport Link from \"../link\";\n\ninterface IProps {\n invertContrast?: boolean;\n articles: IArticle[];\n authorName?: string;\n}\n\ninterface IRelatedLatestArticlesContainer {\n invertContrast: boolean;\n}\n\ninterface IArticle {\n node: {\n title: string;\n created: string;\n path: {\n alias: string;\n };\n relationships: {\n author: IProfileData;\n field_cover_image: ILocalFile;\n };\n };\n}\n\nconst RelatedLatestArticlesContainer = styled<\n IRelatedLatestArticlesContainer,\n \"div\"\n>(\"div\")`\n background-color: ${props =>\n props.invertContrast ?\n ({ theme }) => colourHelper({\n theme,\n variant: \"altLightGrey\"\n }) :\n ({ theme }) => colourHelper({\n theme,\n variant: \"white\"\n })};\n\n h2 {\n transition: 0.2s ease-in-out;\n margin: 0;\n color: ${({ theme }) => colourHelper({\n theme,\n variant: \"black\"\n })};\n font-size: ${({ theme }) => fontSizeHelper({\n theme,\n variant: \"title\"\n })};\n font-weight: ${({ theme }) =>\n fontWeightHelper({\n theme,\n variant: \"heavy\"\n })};\n line-height: ${({ theme }) =>\n fontLineHeightHelper({\n theme,\n variant: \"small\"\n })};\n text-align: center;\n\n .hr {\n display: block;\n padding-top: 2.4rem;\n\n span {\n display: block;\n margin: 0 auto;\n width: 5rem;\n height: 0.5rem;\n background-color: ${({ theme }) =>\n colourHelper({\n theme,\n variant: \"brandColor\"\n })};\n }\n }\n }\n\n .articles-container {\n transition: 0.2s ease-in-out;\n padding-top: 6.8rem;\n\n .articles-wrapper {\n transition: 0.2s ease-in-out;\n padding-top: 5.8em;\n\n &:first-child {\n padding-top: 0;\n }\n\n .more-link-container {\n position: relative;\n padding-top: 66.66666667%;\n\n .more-link-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n .more-link {\n margin: 0;\n color: ${({ theme }) => colourHelper({\n theme,\n variant: \"black\"\n })};\n font-size: ${({ theme }) =>\n fontSizeHelper({\n theme,\n variant: \"subhead_2\"\n })};\n font-weight: ${({ theme }) =>\n fontWeightHelper({\n theme,\n variant: \"heavy\"\n })};\n line-height: ${({ theme }) =>\n fontLineHeightHelper({\n theme,\n variant: \"small\"\n })};\n text-align: center;\n\n a {\n display: block;\n position: relative;\n padding-top: 3.2rem;\n color: ${({ theme }) =>\n colourHelper({\n theme,\n variant: \"black\"\n })};\n\n &:hover {\n color: ${({ theme }) =>\n colourHelper({\n theme,\n variant: \"brandColor\"\n })};\n\n .icon-wrapper {\n .icon {\n fill: ${({ theme }) =>\n colourHelper({\n theme,\n variant: \"brandColor\"\n })};\n }\n }\n }\n\n .keyword {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n font-size: ${({ theme }) =>\n fontSizeHelper({\n theme,\n variant: \"small_3\"\n })};\n font-weight: ${({ theme }) =>\n fontWeightHelper({\n theme,\n variant: \"light\"\n })};\n line-height: ${({ theme }) =>\n fontLineHeightHelper({\n theme,\n variant: \"normalized\"\n })};\n letter-spacing: ${({ theme }) =>\n fontSpaceHelper({\n theme,\n variant: \"medium\"\n })};\n text-transform: uppercase;\n }\n\n .icon-wrapper {\n display: block;\n padding-top: 3.2rem;\n }\n }\n }\n }\n }\n }\n }\n\n @media (min-width: 600px) {\n h2 {\n font-size: ${({ theme }) =>\n fontSizeHelper({\n theme,\n variant: \"display_1\"\n })};\n }\n\n .articles-container {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: center;\n\n .articles-wrapper {\n padding-top: 6.8rem;\n width: 50%;\n\n &:nth-child(-n + 2) {\n padding-top: 0;\n }\n\n &:nth-child(odd) {\n padding-right: 2%;\n\n &:last-child {\n padding-left: 1%;\n padding-right: 1%;\n }\n }\n\n &:nth-child(even) {\n padding-left: 2%;\n }\n }\n }\n }\n\n @media (min-width: 960px) {\n h2 {\n font-size: ${({ theme }) =>\n fontSizeHelper({\n theme,\n variant: \"display_2\"\n })};\n }\n\n .articles-container {\n .articles-wrapper {\n padding-top: 8.2rem;\n width: 33.33%;\n\n &:nth-child(-n + 3) {\n padding-top: 0;\n }\n\n &:nth-child(3n + 1) {\n padding-left: 0;\n padding-right: 2%;\n\n &:last-child {\n padding-left: 1%;\n padding-right: 1%;\n }\n }\n\n &:nth-child(3n + 2) {\n padding-left: 1%;\n padding-right: 1%;\n\n &:last-child {\n padding-left: 2%;\n padding-right: 0;\n }\n }\n\n &:nth-child(3n + 3) {\n padding-left: 2%;\n padding-right: 0;\n\n &:last-child {\n padding-left: 2%;\n padding-right: 0;\n }\n }\n }\n }\n }\n\n @media (min-width: 1280px) {\n h2 {\n font-size: ${({ theme }) =>\n fontSizeHelper({\n theme,\n variant: \"display_3\"\n })};\n }\n }\n\n @media (min-width: 1440px) {\n .articles-container {\n .articles-wrapper {\n .more-link-container {\n .more-link-wrapper {\n .more-link {\n font-size: ${({ theme }) =>\n fontSizeHelper({\n theme,\n variant: \"title\"\n })};\n\n .keyword {\n font-size: ${({ theme }) =>\n fontSizeHelper({\n theme,\n variant: \"small_3\"\n })};\n }\n }\n }\n }\n }\n }\n }\n`;\n\nconst RelatedLatestArticles = ({\n invertContrast,\n authorName,\n articles\n}: IProps) => {\n const invert = invertContrast ? invertContrast : false;\n const authorFirstName = authorName ? authorName.split(\" \")[ 0 ] : \"\";\n const nameSlugRegex = /[\\s'-]/i;\n let nameSlug = \"\";\n\n if (authorName) {\n nameSlug = authorName.replace(nameSlugRegex, \"-\").toLowerCase();\n }\n\n if (articles.length === 0) {\n return null;\n }\n\n return (\n \n \n

\n {authorName ?\n `${authorFirstName}'s Latest Articles` :\n \"Related Latest Articles\"}\n\n \n \n \n

\n\n
\n {articles.map((article, i) => {\n return (\n \n \n
\n );\n })}\n\n {authorName && (\n \n )}\n \n
\n \n );\n};\n\nexport default RelatedLatestArticles;\n","import { graphql } from \"gatsby\";\nimport React from \"react\";\nimport { useWindowDimensions } from \"@gravitywelluk/react-hooks\";\n\nimport {\n IFluid,\n ILocalFile\n} from \"src/types/local-files\";\n\nimport ArticleAuthor from \"../components/article-author\";\nimport FieldTechnicalArticle from \"../components/field-technical-article\";\nimport Footer from \"../components/footer\";\nimport Header from \"../components/header\";\nimport HelmetWrapper from \"../components/helmet-wrapper\";\nimport {\n articleSchema,\n breadCrumbSchema\n} from \"../components/html-schema-snippets\";\nimport Layout from \"../components/layout\";\nimport PageTop from \"../components/page-top\";\nimport PageTopArticleHeading from \"../components/page-top-article-heading\";\nimport RelatedLatestArticles from \"../components/related-latest-articles\";\nimport { IProfileData } from \"../pages/about-us\";\nimport { IBlogArticleData } from \"../pages/latest\";\nimport { DynamicImageSrcString } from \"./utils/dynamicImage\";\nimport getProfile from \"./utils/getProfile\";\n\ninterface ILatestPostProps {\n nodeBlogArticle: IBlogArticleData;\n}\n\ninterface IArticle {\n node: {\n title: string;\n created: string;\n path: {\n alias: string;\n };\n relationships: {\n author: IProfileData;\n field_cover_image: ILocalFile;\n };\n };\n}\n\n/**\n * Latest post\n */\nconst LatestPost: React.FC<{ data: ILatestPostProps }> = ({ data }) => {\n const { width } = useWindowDimensions();\n const article = data.nodeBlogArticle;\n const profile = getProfile(article.relationships.author);\n\n const articleSchemaData = articleSchema({\n type: \"Article\",\n title: article.title,\n description: article.field_meta_description,\n path: article.path.alias,\n datePublished: article.created,\n dateModified: article.changed,\n author:\n article.relationships.author.relationships.profile__team_profile[ 0 ]\n .field_full_name,\n imageUrls: [ DynamicImageSrcString(article.relationships.field_cover_image) ]\n });\n\n const breadcrumbsSchemaData = breadCrumbSchema([\n {\n name: \"Latest\",\n path: \"/latest\"\n },\n {\n name: article.title,\n path: article.path.alias\n }\n ]);\n\n const schemaJson = [ breadcrumbsSchemaData, articleSchemaData ];\n const relatedArticles = article.relationships.field_latest_related_content;\n let parseRelatedArticles: IArticle[] | null = null;\n\n /**\n * Dynamic background image depending the devices width\n */\n const backgroundImg = React.useMemo(() => {\n if (width && width < 600) {\n return DynamicImageSrcString(article.relationships.field_mobile_hero_image);\n }\n\n return DynamicImageSrcString(article.relationships.field_hero_image);\n }, [\n article.relationships.field_hero_image,\n article.relationships.field_mobile_hero_image,\n width\n ]);\n\n // Parse the related articles to get the data structure into the Typed state\n if (relatedArticles) {\n parseRelatedArticles = relatedArticles.map(article => {\n return { node: article };\n });\n }\n\n return (\n \n <>\n \n \n \n\n \n \n\n \n \n \n \n\n \n

\n {article.title}\n

\n\n \n\n \n\n \n \n\n