{"version":3,"sources":["webpack:///./src/templates/PortfoliosPageTemplate/PortfoliosPageTemplate.js","webpack:///./src/components/Layout/LayoutFullWidth.js","webpack:///./src/templates/PortfoliosPageTemplate/PortfoliosPageTemplate.module.css"],"names":["PortfoliosPageTemplate","data","page","categories","edges","projects","intro","frontmatter","breadcrumbs","label","thickness","map","c","i","categoryTitle","slug","node","fields","title","categorisedProjects","pipe","a","path","filter","pathOr","includes","take","length","key","tag","type","columns","thumbnailSrc","featuredImage","href","excerpt","className","styles","readMore","to","PortfoliosTemplate","header","pageQuery","LayoutFullWidth","children","useSiteMetadata","description","headerProps","image","backgroundUrl","module","exports"],"mappings":"8XAuEaA,EAAyB,SAAC,GAAc,IAAZC,EAAW,EAAXA,KAErCC,EAGED,EAHFC,KACqBC,EAEnBF,EAFFE,WAAcC,MACKC,EACjBJ,EADFI,SAAYD,MAGGE,EACbJ,EADFK,YAAeD,MAGjB,OACE,kBAAC,cAAD,KACE,kBAAC,IAAD,CAAoBE,YAAa,CAAC,CAAEC,MAAO,eAAiBH,MAAOA,GACjE,kBAAC,IAAD,CAASI,UAAW,IACnBP,EAAWQ,KAAI,SAACC,EAAGC,GAAO,IAxBLC,EAyBZC,EAASH,EAAEI,KAAKC,OAAhBF,KACAG,EAAUN,EAAEI,KAAKT,YAAjBW,MACFC,GA3BcL,EA2B8BI,EA1BnDE,YACLT,aAAI,SAAAU,GAAC,OAAIC,YAAK,CAAC,QAASD,MACxBE,aAAO,YAAsB,IAAnBhB,EAAkB,EAAlBA,YACR,OAAOiB,YAAO,GAAI,CAAC,cAAejB,GAAakB,SAASX,MAE1DY,YAAK,KAqB0DrB,GAEzD,OACEc,EAAoBQ,OAAS,GAC3B,yBAAKC,IAAKf,GACR,kBAAC,IAAD,CAAYgB,IAAI,KAAKC,KAAK,cACvBZ,GAEH,kBAAC,IAAD,CAAea,QAAS,GACrBZ,EAAoBR,KAAI,WAA0BE,GAA1B,IAAGN,EAAH,EAAGA,YAAaU,EAAhB,EAAgBA,OAAhB,OACvB,kBAAC,IAAD,CACEW,IAAKf,EACLK,MAAOX,EAAYW,MACnBc,aAAczB,EAAY0B,cAC1BC,KAAMjB,EAAOF,MAEZR,EAAY4B,QANf,WAUJ,kBAAC,IAAD,KACE,kBAAC,IAAD,CAAgBC,UAAWC,IAAOC,SAAUC,GAAIxB,GAAhD,aAIF,kBAAC,IAAD,CAASL,UAAW,WA2BrB8B,UAfY,SAAC,GAAc,IAAZvC,EAAW,EAAXA,KAGTwC,EAEfxC,EAHFC,KACEK,YAAekC,OAGnB,OACE,kBAAC,IAAD,CAAiBA,OAAQA,GACvB,kBAACzC,EAAD,CAAwBC,KAAMA,MAS7B,IAAMyC,EAAS,c,s3BC9GPC,IAvBS,SAAC,GAA0B,IAAxBF,EAAuB,EAAvBA,OAAQG,EAAe,EAAfA,SAAe,EACjBC,cAAvB3B,EADwC,EACxCA,MAAO4B,EADiC,EACjCA,YACTC,EAAW,OACZN,GADY,IAEfO,MAAOP,EAAOQ,gBAGhB,OACE,oCACE,kBAAC,IAAD,CAAM/B,MAAOA,EAAO4B,YAAaA,IACjC,kBAAC,IAAD,MACA,kBAAC,IAAkBC,GAClBH,EACD,kBAAC,IAAD,S,uBCrBNM,EAAOC,QAAU,CAAC,SAAW,kDAAkD,eAAiB","file":"component---src-templates-portfolios-page-template-portfolios-page-template-js-9f8c658ab46524601a85.js","sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport { graphql } from 'gatsby'\nimport { MDXProvider } from '@mdx-js/react'\n\nimport LayoutFullWidth from '../../components/Layout/LayoutFullWidth'\nimport headerProps from '../../components/propTypes/headerProps'\nimport {\n Divider,\n AggregatorTemplate,\n Typography,\n PinBlockGroup,\n AggregatorPin4,\n TransitionLink,\n ReadMore,\n} from '../../components'\nimport { pipe, map, path, pathOr, take, filter } from 'ramda'\nimport styles from './PortfoliosPageTemplate.module.css'\n\nconst propTypes = {\n data: PropTypes.shape({\n page: PropTypes.shape({\n frontmatter: PropTypes.shape({\n header: headerProps,\n intro: PropTypes.shape({\n title: PropTypes.string,\n text: PropTypes.string,\n }),\n }),\n }),\n categories: PropTypes.shape({\n edges: PropTypes.arrayOf(\n PropTypes.shape({\n node: PropTypes.shape({\n fields: PropTypes.shape({\n slug: PropTypes.string,\n }),\n frontmatter: PropTypes.shape({\n title: PropTypes.string,\n }),\n }),\n }),\n ),\n }),\n projects: PropTypes.shape({\n edges: PropTypes.arrayOf(\n PropTypes.shape({\n node: PropTypes.shape({\n fields: PropTypes.shape({\n slug: PropTypes.string,\n }),\n frontmatter: PropTypes.shape({\n title: PropTypes.string,\n }),\n }),\n }),\n ),\n }),\n }),\n}\n\nconst getProjectsByCategory = categoryTitle => {\n return pipe(\n map(a => path(['node'], a)),\n filter(({ frontmatter }) => {\n return pathOr([], ['portfolios'], frontmatter).includes(categoryTitle)\n }),\n take(4),\n )\n}\n\nexport const PortfoliosPageTemplate = ({ data }) => {\n const {\n page,\n categories: { edges: categories },\n projects: { edges: projects },\n } = data\n const {\n frontmatter: { intro },\n } = page\n\n return (\n \n \n \n {categories.map((c, i) => {\n const { slug } = c.node.fields\n const { title } = c.node.frontmatter\n const categorisedProjects = getProjectsByCategory(title)(projects)\n\n return (\n categorisedProjects.length > 0 && (\n \n
\n {title}\n \n
\n {categorisedProjects.map(({ frontmatter, fields }, i) => (\n \n {frontmatter.excerpt}...\n \n ))}\n \n
\n \n See more\n \n \n
\n
\n )\n )\n })}\n \n \n )\n}\n\nPortfoliosPageTemplate.propTypes = propTypes\n\nconst PortfoliosTemplate = ({ data }) => {\n const {\n page: {\n frontmatter: { header },\n },\n } = data\n return (\n \n \n \n )\n}\n\nPortfoliosTemplate.propTypes = propTypes\n\nexport default PortfoliosTemplate\n\nexport const pageQuery = graphql`\n query PortfoliosPageTemplate($slug: String!) {\n page: mdx(fields: { slug: { eq: $slug } }) {\n frontmatter {\n ...headerFields\n ...introFields\n }\n }\n categories: allMdx(\n filter: { fields: { contentType: { eq: \"portfolios\" } } }\n limit: 1000\n ) {\n edges {\n node {\n fields {\n slug\n }\n frontmatter {\n title\n }\n }\n }\n }\n projects: allMdx(\n filter: { fields: { contentType: { eq: \"projects\" } } }\n limit: 1000\n ) {\n edges {\n node {\n fields {\n slug\n }\n frontmatter {\n title\n excerpt\n featuredImage {\n childCloudinaryMediaImage {\n fixed(width: 150) {\n height\n src\n srcSet\n width\n }\n }\n }\n portfolios\n }\n }\n }\n }\n }\n`\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Navbar from '../partials/NavBar/Navbar'\nimport useSiteMetadata from '../graphqlFragments/SiteMetadata'\nimport { Footer } from '..'\nimport Head from './Head'\nimport headerProps from '../propTypes/headerProps'\nimport PrimaryHeader from '../elements/PrimaryHeader/PrimaryHeader'\n\nconst LayoutFullWidth = ({ header, children }) => {\n const { title, description } = useSiteMetadata()\n const headerProps = {\n ...header,\n image: header.backgroundUrl,\n }\n\n return (\n <>\n