{"version":3,"file":"component---src-pages-projects-jim-ocallaghan-tsx-257ed60cab73327856e7.js","mappings":"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","sources":["webpack://axon-division/./src/constants/hashtags.constants.ts","webpack://axon-division/./src/components/GatsbyImageAdaptor/GatsbyImageAdaptor.tsx","webpack://axon-division/./src/utils/css.utils.ts","webpack://axon-division/./src/components/ProjectPage/ProjectPage.tsx","webpack://axon-division/./src/components/SimpleEntryGallery/SimpleEntryGallery.tsx","webpack://axon-division/./src/pages/projects/jim-ocallaghan.tsx","webpack://axon-division/./src/components/ProjectURLButton/ProjectURLButton.tsx","webpack://axon-division/./src/content/projects/jim-ocallaghan.project.ts"],"sourcesContent":["export enum Hashtag {\n 'branding' = 'branding',\n 'digitalDesign' = 'digitalDesign',\n 'printDesign' = 'printDesign',\n 'animations' = 'animations',\n}\n\nexport const DesignHashtags = [\n Hashtag.digitalDesign,\n Hashtag.animations,\n Hashtag.branding,\n Hashtag.printDesign,\n]","import { GatsbyImage, GatsbyImageProps, getImage } from 'gatsby-plugin-image';\nimport React from 'react';\nimport { ImageWithMetaInfo } from '../../types/app.types';\nimport { ImageDataLike } from '../../types/gatsby.types';\n\ntype GatsbyImageAdaptorProps = {\n image: ImageWithMetaInfo | ImageDataLike,\n id?: string,\n title?: string,\n alt?: string,\n className?: string,\n objectFit?: GatsbyImageProps['objectFit'],\n objectPosition?: GatsbyImageProps['objectPosition'],\n backgroundColor?: string,\n}\n\n/**\n * A little adaptor component that automatically applies the getImage method for graphQL image query results.\n * It also accepts title/alt overrides.\n */\nconst GatsbyImageAdaptor: React.FC = props => {\n const image = props.image ? getImage(('image' in props.image || 'title' in props.image || 'alt' in props.image) ? props.image?.image : props.image) : null;\n return image ? : null;\n}\n\nexport default GatsbyImageAdaptor;","import { isBuildTime } from \"../env\";\nimport tick from \"./waiters.utils\";\n\nexport const getFontSize = (element?: HTMLElement, fallback: number = 16) => {\n if (isBuildTime) return fallback;\n return parseFloat(getComputedStyle(element ?? document.body).fontSize);\n}\n\nexport const disableSmoothScroll = () => {\n if (isBuildTime) return;\n document.documentElement.style.scrollBehavior = 'auto';\n return enableSmoothScroll;\n}\n\nexport const enableSmoothScroll = () => {\n if (isBuildTime) return;\n document.documentElement.style.scrollBehavior = 'smooth';\n}\n\nexport const disableSmoothScrollTemporarily = async () => {\n if (isBuildTime) return;\n document.documentElement.style.scrollBehavior = 'auto';\n await tick();\n document.documentElement.style.scrollBehavior = 'smooth';\n}","import { Observer } from 'mobx-react-lite';\nimport React, { ReactElement } from 'react';\nimport { useOnMount } from '../../hooks/lifecycle.hooks';\nimport { useAnimateTextEnterByLine } from '../../hooks/useAnimateTextEnterByLine.hook';\nimport { useObservableRef } from '../../hooks/useObservableRef.hook';\nimport { ProjectMetaInfoWithQueriedResources } from '../../types/app.types';\nimport { PageComponent } from '../../types/gatsby.types';\nimport joinClassName from '../../utils/className.utils';\nimport { disableSmoothScrollTemporarily } from '../../utils/css.utils';\nimport PageSection from '../PageSection/PageSection';\nimport PageTemplate from '../PageTemplate/PageTemplate';\nimport ProjectURLButton from '../ProjectURLButton/ProjectURLButton';\nimport StandardTextBlock from '../StandardTextBlock/StandardTextBlock';\nimport TricolorMorphDef from '../TricolorMorphDef/TricolorMorphDef';\nimport Widowless from '../Widowless/Widowless';\nimport './ProjectPage.scss';\n\ntype ProjectPageProps = {\n project: ProjectMetaInfoWithQueriedResources,\n sidebarExtraContent?: ReactElement,\n}\n\nconst ProjectPage: PageComponent = props => {\n const key = `ProjectPage--${props.project.name}`;\n useOnMount(disableSmoothScrollTemporarily);\n const pageHeadingGroupRef = useObservableRef();\n useAnimateTextEnterByLine(pageHeadingGroupRef, { \n animateTextEnter: { delay: 100 }\n });\n return (\n \n \n \n\n \n\n
\n {props.children}\n
\n\n \n \n )} />\n}\n\nexport default ProjectPage;","import React, { ReactNode } from 'react';\nimport { EntryMetaInfoWithQueriedResources } from '../../types/app.types';\nimport joinClassName from '../../utils/className.utils';\nimport { isNumber } from '../../utils/typeChecks.utils';\nimport AppScreenshotSlider from '../AppScreenshotSlider/AppScreenshotSlider';\nimport GatsbyImageAdaptor from '../GatsbyImageAdaptor/GatsbyImageAdaptor';\nimport './SimpleEntryGallery.scss';\n\ntype SimpleEntryGalleryProps = {\n className?: string,\n entry: EntryMetaInfoWithQueriedResources,\n range?: [number, number],\n doNotRenderContainer?: boolean,\n autoAddMobileSlides?: boolean,\n mobileSlidesPosition?: number,\n}\n\nconst SimpleEntryGallery: React.FC = props => {\n const mobileScreenshots = props.entry.mobileScreenshots;\n const slides: ReactNode[] = (props.entry.gallery ?? []).slice(props.range?.[0] ?? 0, props.range?.[1] ?? (props.entry.gallery?.length ?? 0)).map((entry, i) => React.createElement(\n props.doNotRenderContainer ? 'div' : 'li',\n { \n key: i,\n className: \"SimpleEntryGalleryItem\",\n children: \n }\n ));\n if (mobileScreenshots && (props.autoAddMobileSlides || isNumber(props.mobileSlidesPosition))) slides.splice(props.mobileSlidesPosition ?? 1, 0, )\n if (props.doNotRenderContainer) return <>{slides}\n return
    \n { slides }\n
\n}\n\nexport default SimpleEntryGallery;","import React from 'react';\nimport ProjectPage from '../../components/ProjectPage/ProjectPage';\nimport SimpleEntryGallery from '../../components/SimpleEntryGallery/SimpleEntryGallery';\nimport { useJimOCallaghanInfo } from '../../content/projects/jim-ocallaghan.project';\nimport { PageComponent } from '../../types/gatsby.types';\n// import './ProjectPageJimOCallaghan.scss';\n\ntype ProjectPageJimOCallaghanProps = {}\n\nconst ProjectPageJimOCallaghan: PageComponent = props => {\n const metaInfo = useJimOCallaghanInfo();\n return \n \n \n}\n\nexport default ProjectPageJimOCallaghan;","import React from 'react';\nimport { useAppContext } from '../../controllers/app.controller';\nimport { ProjectMetaInfo } from '../../types/app.types';\nimport joinClassName from '../../utils/className.utils';\nimport CTAButton, { CTAButtonProps } from '../CTAButton/CTAButton';\n// import './ProjectURLButton.scss';\n\ntype ProjectURLButtonProps = Omit & {\n project: ProjectMetaInfo,\n drawLine?: 'left' | 'right' | false,\n}\n\nconst ProjectURLButton: React.FC = props => {\n const { UI } = useAppContext();\n return 768 ? 'left' : 'right'))}\n >Visit Site\n}\n\nexport default ProjectURLButton;","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Hashtag } from \"../../constants/hashtags.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { ImageWithMetaInfo, ProjectMetaInfo, ProjectMetaInfoWithQueriedResources } from \"../../types/app.types\";\nimport { JimOCallaghanImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoJimOCallaghan: ProjectMetaInfo = {\n name: \"jim-ocallaghan\",\n displayName: \"Jim O'Callaghan\",\n abbreviation: \"Jim O'Callaghan\",\n subtitle: \"Leading Irish Politician (Fianna Fáil)\",\n description: \"A leading politician in Ireland, Jim O'Callaghan entrusted us to design a new personal branding and a website.\",\n categories: [\n Category.websites,\n ],\n sectors: [\n Sector.governmentAndNPO,\n ],\n hashtags: [\n Hashtag.branding,\n ],\n url: \"https://jimocallaghan.com/\",\n hasPage: true,\n keywords: [\n \"Jim O'Callaghan\",\n 'Fianna Fáil',\n 'Ireland',\n 'web design',\n 'web development',\n 'WordPress',\n 'Responsive web designs',\n 'branding'\n ],\n}\nexport const useJimOCallaghanInfo = () => {\n const JimOCallaghanImages: JimOCallaghanImagesQuery = useStaticQuery(graphql`\n query JimOCallaghanImages {\n featuredImage: file(relativePath: {eq: \"images/jim-ocallaghan/jim-ocallaghan-walking-among-group-of-young-people-alongside-canal-in-dublin-ireland.jpg\"}) {\n childImageSharp {\n gatsbyImageData(width: 1280, height: 720)\n }\n }\n gallery: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/jim-ocallaghan/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560, height: 1440)\n }\n }\n }\n }\n }\n `);\n const imageMetaData: Partial[] = [\n {\n title: \"Jim O'Callaghan Homepage Screenshot\",\n alt: \"Jim O'Callaghan Homepage Screenshot, desktop version\",\n },\n ]\n const info: ProjectMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoJimOCallaghan,\n featuredImage: {\n image: JimOCallaghanImages.featuredImage!.childImageSharp,\n title: \"Jim O'Callaghan\",\n alt: \"Jim O'Callaghan walking among a group of young people alongside Dublin canal.\"\n },\n gallery: JimOCallaghanImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n }))\n }\n return info;\n}"],"names":["Hashtag","DesignHashtags","digitalDesign","animations","branding","printDesign","props","_props$image","_props$title","_props$image2","_ref","_props$alt","_props$image3","image","getImage","_jsx","GatsbyImage","_objectSpread","id","title","alt","backgroundColor","disableSmoothScrollTemporarily","async","isBuildTime","document","documentElement","style","scrollBehavior","tick","key","project","name","useOnMount","pageHeadingGroupRef","useObservableRef","useAnimateTextEnterByLine","animateTextEnter","delay","Observer","children","_props$project$pageBa","_jsxs","PageTemplate","className","joinClassName","displayName","description","keywords","entryMeta","backgroundImage","pageBackgroundImage","featuredImage","TricolorMorphDef","PageSection","as","ref","Widowless","subtitle","StandardTextBlock","url","ProjectURLButton","ribbons","sidebarExtraContent","_props$entry$gallery","_props$range$","_props$range","_props$range$2","_props$range2","_props$entry$gallery$","_props$entry$gallery2","_props$mobileSlidesPo","mobileScreenshots","entry","slides","gallery","slice","range","length","map","i","React","doNotRenderContainer","GatsbyImageAdaptor","autoAddMobileSlides","isNumber","mobileSlidesPosition","splice","AppScreenshotSlider","_Fragment","metaInfo","useJimOCallaghanInfo","ProjectPage","SimpleEntryGallery","_props$drawLine","UI","useAppContext","CTAButton","to","rel","target","drawLine","undefined","viewport","width","ProjectMetaInfoJimOCallaghan","abbreviation","categories","Category","websites","sectors","Sector","governmentAndNPO","hashtags","hasPage","JimOCallaghanImages","useStaticQuery","imageMetaData","childImageSharp","edges","edge","_edge$node$childImage","node","gatsbyImageData"],"sourceRoot":""}