{"version":3,"sources":["webpack:///./src/components/Variant.js","webpack:///./src/components/Seo.js","webpack:///./src/components/Newspage/Link.js","webpack:///./src/components/Newspage/List.js","webpack:///./src/components/Newspage/Pagination/Link.js","webpack:///./src/components/Newspage/Pagination/index.js","webpack:///./src/layout/NewsLayout.js","webpack:///./constants/locales.js","webpack:///./src/components/Post/Categories.js","webpack:///./src/components/Post/FeaturedImage.js","webpack:///./src/components/Post/index.js","webpack:///./src/templates/PostTemplate.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"names":["Variant","as","children","d","variant","variants","props","Component","useMemo","toLowerCase","Flex","withComponent","G","Grid","defaultProps","styles","themeVariants","Array","isArray","length","map","v","reduce","acc","val","getVariants","sx","undefined","linkstyle","color","fontFamily","fontSize","fontWeight","Link","href","slug","to","rel","target","LOCALE_MAP","List","list","title","locale","totalCount","useLocaleContext","h3","mb","ul","link","li","key","id","mt","name","count","activeClassName","display","justifyContent","position","width","visibility","backgroundColor","bottom","content","height","left","transform","transition","Pagination","pagination","firstpage","lastpage","pages","pagesNum","page","displayFirstpageLink","includes","displayLastpageLink","columns","gap","gridColumn","NewsLayout","space","posts","useThemeUI","theme","data","useStaticQuery","categoryAllMap","fi","n","newspages","nodes","find","np","node_locale","c","categories","filter","cat","push","numberOfItems","newspage","alignItems","alignSelf","gridTemplateColumns","rowGap","categoryTitle","links","linksTitle","module","exports","SE","SV_SE","FI","Categories","isMoreItemsThanOne","flexWrap","wordBreak","category","Category","mr","right","top","FeaturedImage","image","backgroundImage","file","url","backgroundPosition","backgroundRepeat","backgroundSize","borderRadius","overflow","objectFit","objectPosition","Post","featuredImage","postTitle","h2","dangerouslySetInnerHTML","__html","h1","lineHeight","h4","my","img","a","p","PostTemplate","post","_objectWithoutPropertiesLoose","source","excluded","i","sourceKeys","Object","keys","indexOf"],"mappings":"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","file":"component---src-templates-post-template-js-003750e00cf7bfa2a2e0.js","sourcesContent":["/** @jsx jsx */\nimport PropTypes from \"prop-types\"\nimport { useMemo } from \"react\"\nimport { Flex, Grid, jsx } from \"theme-ui\"\n\nimport themeVariants from \"../gatsby-plugin-theme-ui/variants\"\n\nfunction getVariants(variant, variants) {\n if (variant) {\n return themeVariants[variant]\n }\n\n if (Array.isArray(variants) && variants.length) {\n return variants\n .map(v => themeVariants[v])\n .reduce((acc, val) => ({ ...acc, ...val }), {})\n }\n return {}\n}\n\nexport default function Variant({\n as,\n children,\n d,\n variant,\n variants,\n ...props\n}) {\n const Component = useMemo(() => {\n if (d) {\n if (d.toLowerCase() === \"flex\") {\n return Flex.withComponent(as)\n }\n if (d.toLowerCase() === \"grid\") {\n const G = Grid\n /* eslint-disable */\n G.defaultProps = G.defaultProps || {}\n /* eslint-enable */\n G.defaultProps.as = as\n return G\n }\n }\n return as\n }, [as, d])\n const styles = useMemo(() => getVariants(variant, variants), [\n variant,\n variants,\n ])\n\n return (\n \n {children}\n \n )\n}\n\nVariant.defaultProps = {\n as: \"div\",\n d: undefined,\n variant: undefined,\n variants: null,\n}\n\nVariant.propTypes = {\n as: PropTypes.string,\n children: PropTypes.node.isRequired,\n d: PropTypes.string,\n variant: PropTypes.string,\n variants: PropTypes.array,\n}\n","/** @jsx jsx */\nimport { useLocation } from \"@reach/router\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport { Helmet } from \"react-helmet\"\nimport { jsx } from \"theme-ui\"\n\nimport useLocaleContext from \"@hooks/useLocaleContext\"\n\nexport const fragment = graphql`\n fragment Seo on SeoTag {\n content\n name\n property\n tag\n }\n`\n\nconst query = graphql`\n query DefaultSeoQuery {\n allSettings: allContentfulSiteSettings {\n nodes {\n createdAt\n node_locale\n siteDescription {\n siteDescription\n }\n siteImage {\n file {\n details {\n image {\n height\n width\n }\n }\n url\n }\n }\n siteTitle\n twitterUsername\n updatedAt\n }\n }\n site {\n siteMetadata {\n siteUrl\n }\n }\n }\n`\n\nexport default function Seo({ seo }) {\n const { pathname } = useLocation()\n const locale = useLocaleContext()\n const { allSettings, site } = useStaticQuery(query)\n\n if (!Array.isArray(seo) || !seo.length) {\n const settings = allSettings.nodes.find(node => node.node_locale === locale)\n seo = [\n {\n content: settings?.siteTitle,\n tag: \"title\",\n },\n {\n content: settings?.siteTitle,\n property: \"og:title\",\n tag: \"meta\",\n },\n {\n content: settings?.siteTitle,\n name: \"twitter:title\",\n tag: \"meta\",\n },\n {\n content: settings?.siteDescription?.siteDescription,\n name: \"description\",\n tag: \"meta\",\n },\n {\n content: settings?.siteDescription?.siteDescription,\n property: \"og:description\",\n tag: \"meta\",\n },\n {\n content: settings?.siteDescription?.siteDescription,\n name: \"twitter:description\",\n tag: \"meta\",\n },\n {\n content: settings?.siteImage?.file?.url,\n property: \"og:image\",\n tag: \"meta\",\n },\n {\n content: settings?.siteImage?.file?.details?.image?.width,\n property: \"og:image:width\",\n tag: \"meta\",\n },\n {\n content: settings?.siteImage?.file?.details?.image?.height,\n property: \"og:image:height\",\n tag: \"meta\",\n },\n {\n content: settings?.siteImage?.file?.url,\n name: \"twitter:image\",\n tag: \"meta\",\n },\n {\n content: settings.node_locale,\n property: \"og:locale\",\n tag: \"meta\",\n },\n {\n content: \"Web\",\n property: \"og:type\",\n tag: \"meta\",\n },\n {\n content: settings.siteTitle,\n property: \"og:site_name\",\n tag: \"meta\",\n },\n {\n content: settings.createdAt,\n property: \"article:published_time\",\n tag: \"meta\",\n },\n {\n content: settings.updatedAt,\n property: \"article:modified_time\",\n tag: \"meta\",\n },\n {\n content: \"Brocc\",\n property: \"article:author\",\n tag: \"meta\",\n },\n {\n content: \"summary_large_image\",\n name: \"twitter:card\",\n tag: \"meta\",\n },\n {\n content: settings?.twitterUsername,\n name: \"twitter:creator\",\n tag: \"meta\",\n },\n ]\n }\n\n return (\n \n \n {Array.isArray(seo)\n ? seo.map(({ content, name, property, tag: Tag }) =>\n Tag === \"title\" ? (\n \n {content}\n \n ) : (\n \n )\n )\n : null}\n \n )\n}\n\nSeo.defaultProps = {\n seo: null,\n}\n\nSeo.propTypes = {\n seo: PropTypes.array,\n}\n","/** @jsx jsx */\nimport { Link as GatsbyLink } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport { jsx } from \"theme-ui\"\n\nconst linkstyle = {\n color: \"primary\",\n fontFamily: \"body\",\n fontSize: 3,\n fontWeight: \"bold\",\n}\n\nexport default function Link({ children, href, slug }) {\n if (slug) {\n return (\n \n {children}\n \n )\n }\n\n if (href) {\n return (\n \n {children}\n \n )\n }\n\n return null\n}\n\nLink.defaultProps = {\n children: null,\n href: undefined,\n slug: undefined,\n}\n\nLink.propTypes = {\n children: PropTypes.node,\n href: PropTypes.string,\n slug: PropTypes.string,\n}\n","/** @jsx jsx */\nimport useLocaleContext from \"@src/hooks/useLocaleContext\"\nimport { graphql } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport { jsx, Styled } from \"theme-ui\"\n\nimport Link from \"./Link\"\n\nexport const fragment = graphql`\n fragment CategoryList on Category {\n count\n id\n name\n node_locale\n slug\n }\n`\n\nconst LOCALE_MAP = {\n \"en-US\": \"/en\",\n \"fi-FI\": \"/sv\",\n}\nexport default function List({ list, title, totalCount }) {\n const locale = useLocaleContext()\n\n if (Array.isArray(list) && list.length) {\n return (\n \n )\n }\n\n return null\n}\n\nList.defaultProps = {\n list: null,\n title: undefined,\n}\n\nList.propTypes = {\n list: PropTypes.array,\n title: PropTypes.string,\n}\n","/** @jsx jsx */\nimport { Link as GatsbyLink } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport { jsx } from \"theme-ui\"\n\nexport default function Link({ children, slug }) {\n return (\n \n {children}\n \n )\n}\n\nLink.propTypes = {\n children: PropTypes.node.isRequired,\n slug: PropTypes.string.isRequired,\n}\n","/** @jsx jsx */\nimport PropTypes from \"prop-types\"\nimport { Fragment } from \"react\"\nimport { Grid, jsx } from \"theme-ui\"\n\nimport Link from \"./Link\"\n\nexport default function Pagination({ pagination }) {\n if (pagination) {\n const { firstpage, lastpage, pages } = pagination\n\n const pagesNum = pages.map(page => page.page)\n const displayFirstpageLink = !pagesNum.includes(firstpage.page)\n const displayLastpageLink = !pagesNum.includes(lastpage.page)\n\n return (\n \n {displayFirstpageLink ? (\n \n {firstpage.page}\n ...\n \n ) : null}\n {pages.map(({ page, slug }) => (\n \n {page}\n \n ))}\n {displayLastpageLink ? (\n \n ...\n {lastpage.page}\n \n ) : null}\n \n )\n }\n\n return null\n}\n\nPagination.defaultProps = {\n pagination: null,\n}\n\nPagination.propTypes = {\n pagination: PropTypes.object,\n}\n","/** @jsx jsx */\nimport locales from \"@constants/locales\"\nimport { graphql, useStaticQuery } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport { useMemo } from \"react\"\nimport { jsx, useThemeUI } from \"theme-ui\"\nimport List from \"@components/Newspage/List\"\nimport Pagination from \"@components/Newspage/Pagination\"\nimport Variant from \"@components/Variant\"\nimport useLocaleContext from \"@hooks/useLocaleContext\"\n\nexport const fragment = graphql`\n fragment NewsLayout on ContentfulNewspage {\n categoryTitle\n links {\n href\n id\n slug\n title\n }\n linksTitle\n node_locale\n slug\n }\n`\n\nexport default function NewsLayout({ children, variants, pagination, posts }) {\n const {\n theme: { space },\n } = useThemeUI()\n const data = useStaticQuery(\n graphql`\n {\n categories: allCategory(sort: { fields: name, order: ASC }) {\n nodes {\n ...CategoryList\n }\n }\n newspages: allContentfulNewspage {\n nodes {\n ...NewsLayout\n }\n }\n posts: allContentfulBlogPost {\n totalCount\n }\n }\n `\n )\n const locale = useLocaleContext()\n\n const categoryAllMap = {\n fi: \"Kaikki\",\n \"fi-FI\": \"Alla\",\n \"sv-SE\": \"Alla\",\n \"sv-EN\": \"All\",\n }\n\n const [categories, newspage] = useMemo(() => {\n const n = data.newspages.nodes.find(np => np.node_locale === locale)\n\n const c = data.categories.nodes.filter(cat => cat.node_locale === locale)\n\n c.push({\n count: pagination?.numberOfItems,\n id: \"PWopdja394\",\n name: categoryAllMap[locale],\n slug: n.slug,\n })\n\n return [c, n]\n }, [\n data.categories.nodes,\n data.newspages.nodes,\n data.posts.totalCount,\n locale,\n ])\n\n return (\n \n {children}\n \n \n \n \n \n \n )\n}\n\nNewsLayout.defaultProps = {\n pagination: null,\n variants: [\"container\"],\n}\n\nNewsLayout.propTypes = {\n children: PropTypes.node.isRequired,\n pagination: PropTypes.object,\n variants: PropTypes.array,\n}\n","module.exports = {\n SE: {\n SV_SE: \"sv-SE\",\n //EN_US: \"en-US\",\n },\n FI: {\n FI: \"fi\",\n //FI_FI: \"fi-FI\",\n },\n slug: {\n SE: {\n \"sv-SE\": \"\",\n //\"en-US\": \"en\",\n },\n FI: {\n fi: \"\",\n //\"fi-FI\": \"sv\",\n },\n },\n}\n","/** @jsx jsx */\nimport PropTypes from \"prop-types\"\nimport { Flex, jsx } from \"theme-ui\"\n\nexport default function Categories({ categories }) {\n if (Array.isArray(categories) && categories.length) {\n const isMoreItemsThanOne = categories.length > 1\n return (\n \n {categories.map(category => (\n \n {category}\n \n ))}\n \n )\n }\n\n return null\n}\n\nCategories.defaultProps = {\n categories: null,\n}\n\nCategories.propTypes = {\n categories: PropTypes.array,\n}\n\nfunction Category({ children, length }) {\n return (\n \n {children}\n \n )\n}\n\nCategory.propTypes = {\n children: PropTypes.node.isRequired,\n length: PropTypes.bool.isRequired,\n}\n","/** @jsx jsx */\nimport PropTypes from \"prop-types\"\nimport { jsx } from \"theme-ui\"\n\nexport default function FeaturedImage({ image }) {\n if (image) {\n return (\n \n )\n }\n\n return null\n}\n\nFeaturedImage.defaultProps = {\n image: null,\n}\n\nFeaturedImage.propTypes = {\n image: PropTypes.object,\n}\n","/** @jsx jsx */\nimport { graphql } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport { Grid, jsx, Styled } from \"theme-ui\"\n\nimport Variant from \"@components/Variant\"\nimport NewsLayout from \"@layout/NewsLayout\"\n\nimport Categories from \"./Categories\"\nimport FeaturedImage from \"./FeaturedImage\"\n\nexport const fragment = graphql`\n fragment Post on ContentfulBlogPost {\n categories\n content {\n content\n }\n featuredImage {\n ...ImageFields\n }\n id\n postTitle\n }\n`\n\nexport default function Post({\n categories,\n content,\n featuredImage,\n postTitle,\n}) {\n return (\n \n {featuredImage?.url && }\n\n \n \n \n {postTitle}\n img\": {\n my: 12,\n },\n img: {\n borderRadius: \"20px\",\n height: \"auto\",\n width: \"100%\",\n },\n li: {\n variant: \"richtext.li\",\n },\n a: {\n color: \"primary\",\n fontWeight: \"bold\",\n lineHeight: \"24px\",\n },\n p: {\n variant: \"reset\",\n color: \"grey.dark\",\n fontSize: [1, 3],\n lineHeight: \"28px\",\n\n \"& + p\": {\n mt: 5,\n },\n \":first-of-type\": {\n variant: \"text.large\",\n color: \"grey.dark\",\n fontSize: [2, 4],\n lineHeight: \"28px\",\n },\n },\n \":not(erryting)\": {\n variant: \"reset\",\n color: \"grey.dark\",\n fontSize: [1, 3],\n lineHeight: \"28px\",\n },\n }}\n />\n \n \n \n )\n}\n\nPost.defaultProps = {\n categories: null,\n featuredImage: null,\n}\n\nPost.propTypes = {\n categories: PropTypes.array,\n content: PropTypes.object.isRequired,\n featuredImage: PropTypes.object,\n postTitle: PropTypes.string.isRequired,\n}\n","import { graphql } from \"gatsby\"\nimport PropTypes from \"prop-types\"\nimport React, { Fragment } from \"react\"\n\nimport Post from \"@components/Post\"\nimport Seo from \"@components/Seo\"\n\nexport default function PostTemplate({ data: { post } }) {\n return (\n \n {/* */}\n \n \n )\n}\n\nexport const query = graphql`\n query getPost($node_id: String!) {\n post: contentfulBlogPost(id: { eq: $node_id }) {\n ...Post\n }\n }\n`\n\nPostTemplate.propTypes = {\n data: PropTypes.shape().isRequired,\n}\n","export default function _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}"],"sourceRoot":""}