{"version":3,"file":"component---src-pages-projects-majestic-ireland-tsx-f4286fcc3c50fb83f2e8.js","mappings":"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","sources":["webpack://axon-division/./src/content/images/majestic-ireland/majestic-ireland-homepage-loop-hd.webm","webpack://axon-division/./src/content/images/majestic-ireland/majestic-ireland-homepage-loop.mp4","webpack://axon-division/./src/content/images/majestic-ireland/majestic-ireland-screenshot-homepage-desktop-video-poster.jpg","webpack://axon-division/./src/pages/projects/majestic-ireland.tsx","webpack://axon-division/./src/content/projects/majestic-ireland.project.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/Spacer/Spacer.tsx","webpack://axon-division/./src/components/SimpleEntryGallery/SimpleEntryGallery.tsx","webpack://axon-division/./src/components/ProjectURLButton/ProjectURLButton.tsx","webpack://axon-division/./src/utils/image.utils.ts","webpack://axon-division/./src/components/NativeVideoWrapper/NativeVideoWrapper.tsx"],"sourcesContent":["export default __webpack_public_path__ + \"static/majestic-ireland-homepage-loop-hd-7f056225fba16b16553033989e0c066f.webm\";","export default __webpack_public_path__ + \"static/majestic-ireland-homepage-loop-5df4bde7cc34206a353c7faaf5d13afe.mp4\";","export default __webpack_public_path__ + \"static/majestic-ireland-screenshot-homepage-desktop-video-poster-daeaad4486b90a2669a092d7f598b206.jpg\";","import React from 'react';\nimport NativeVideoWrapper from '../../components/NativeVideoWrapper/NativeVideoWrapper';\nimport ProjectPage from '../../components/ProjectPage/ProjectPage';\nimport SimpleEntryGallery from '../../components/SimpleEntryGallery/SimpleEntryGallery';\nimport Spacer from '../../components/Spacer/Spacer';\n// import './ProjectPageMajesticIreland.scss';\nimport videoWebmHD from '../../content/images/majestic-ireland/majestic-ireland-homepage-loop-hd.webm';\nimport videoMp4 from '../../content/images/majestic-ireland/majestic-ireland-homepage-loop.mp4';\nimport videoPoster from '../../content/images/majestic-ireland/majestic-ireland-screenshot-homepage-desktop-video-poster.jpg';\nimport { useMajesticIrelandInfo } from '../../content/projects/majestic-ireland.project';\nimport { PageComponent } from '../../types/gatsby.types';\n\ntype ProjectPageMajesticIrelandProps = {}\n\nconst ProjectPageMajesticIreland: PageComponent = props => {\n const metaInfo = useMajesticIrelandInfo();\n return \n \n \n \n \n}\n\nexport default ProjectPageMajesticIreland;","import { graphql, useStaticQuery } from \"gatsby\";\nimport { Category } from \"../../constants/categories.constants\";\nimport { Sector } from \"../../constants/sectors.constants\";\nimport { ImageWithMetaInfo, ProjectMetaInfo, ProjectMetaInfoWithQueriedResources } from \"../../types/app.types\";\nimport { MajesticIrelandImagesQuery } from \"../../types/generated\";\n\nexport const ProjectMetaInfoMajesticIreland: ProjectMetaInfo = {\n name: \"majestic-ireland\",\n displayName: \"Majestic Ireland\",\n abbreviation: \"Majestic Ireland\",\n subtitle: \"Irish Luxury Tourism Company\",\n description: \"We really enjoyed the cooperation with the team from Majestic Ireland in creating this beautiful website that shows off the most beautiful scenes throughout the island Ireland. Majestic Ireland Road Trips is an Irish tourism company that provides tailor-made self drive or chauffeur driven luxury vacations with an extensive range of super cars or high-end motoring options.\",\n categories: [\n Category.websites,\n ],\n sectors: [\n Sector.tourism,\n ],\n url: \"https://majesticirelandroadtrips.com/\",\n hasPage: true,\n keywords: [\n 'Majestic Ireland',\n 'Road Trips',\n 'tourism',\n 'Irish Travel',\n 'Ireland',\n 'web design',\n 'web development',\n 'WordPress',\n ],\n}\nexport const useMajesticIrelandInfo = () => {\n const MajesticIrelandImages: MajesticIrelandImagesQuery = useStaticQuery(graphql`\n query MajesticIrelandImages {\n featuredImage: file(relativePath: {eq: \"images/majestic-ireland/majestic-ireland-skellig-michael.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/majestic-ireland/gallery\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(width: 2560, height: 1440)\n }\n }\n }\n }\n mobileScreenshots: allFile(\n sort: {fields: name},\n filter: {\n extension: {regex: \"/(jpg)|(jpeg)|(png)/\"},\n relativeDirectory: {eq: \"images/majestic-ireland/mobile-screenshots\"}\n }\n ) {\n edges {\n node {\n name\n childImageSharp {\n gatsbyImageData(\n width: 238\n )\n }\n }\n }\n }\n }\n `)\n const imageMetaData: Partial[] = [\n {\n title: 'Majestic Ireland Homepage Screenshot',\n alt: 'Majestic Ireland Homepage Screenshot, desktop version',\n },\n {\n title: 'Majestic Ireland: Wishlist Feature',\n alt: 'Majestic Ireland: Wishlist Screen, desktop version',\n },\n ]\n const info: ProjectMetaInfoWithQueriedResources = {\n ...ProjectMetaInfoMajesticIreland,\n featuredImage: {\n image: MajesticIrelandImages.featuredImage!.childImageSharp!,\n alt: 'Majestic Ireland Road Trips',\n title: 'Majestic Ireland: Skellig Michael under stormy clouds',\n },\n gallery: MajesticIrelandImages.gallery.edges.map((edge, i) => ({\n image: edge.node.childImageSharp?.gatsbyImageData,\n ...imageMetaData[i]\n })),\n // TODO: provide better title / alt values,\n mobileScreenshots: MajesticIrelandImages.mobileScreenshots.edges.map((edge, i) => ({\n image: edge.node.childImageSharp,\n title: edge.node.name,\n alt: edge.node.name,\n }))\n }\n return info;\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 from 'react';\nimport { isStandardSize, Size } from '../../constants/sizes.constants';\nimport './Spacer.scss';\n\ntype SpacerProps = {\n size?: Size | string | number,\n inline?: boolean,\n}\n\nconst Spacer: React.FC = props => {\n const { size = '1em' } = props;\n const isCustomValue = typeof props.size === 'number' || !isStandardSize(size);\n const style = {\n display: props.inline ? 'inline-block' : undefined,\n width: isCustomValue ? size : undefined,\n height: isCustomValue ? size : undefined,\n }\n return
\n}\n\nexport default Spacer;","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 { 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 { isBuildTime } from \"../env\";\n\nfunction checkIfBrowserSupportsWebp() {\n if (isBuildTime) return true;\n const canvas = document.createElement('canvas');\n if (!!(canvas.getContext && canvas.getContext('2d'))) {\n // was able or not to get WebP representation\n return canvas.toDataURL('image/webp').indexOf('data:image/webp') == 0;\n }\n else {\n // very old browser like IE 8, canvas not supported\n return false;\n }\n}\nexport const supportsWebp = checkIfBrowserSupportsWebp();","import { action } from 'mobx';\nimport { Observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { isBuildTime } from '../../env';\nimport { useOnMount } from '../../hooks/lifecycle.hooks';\nimport { useObservableRef } from '../../hooks/useObservableRef.hook';\nimport joinClassName from '../../utils/className.utils';\nimport { makeDisposerController } from '../../utils/disposer.utils';\nimport { supportsWebp } from '../../utils/image.utils';\nimport { useStore } from '../../utils/mobx.utils';\nimport { isArray } from '../../utils/typeChecks.utils';\nimport { observeVisibility } from '../../utils/visibilityObserver.util';\nimport './NativeVideoWrapper.scss';\n\ntype NativeVideoWrapperProps = {\n id: string,\n className?: string,\n loop?: boolean,\n muted?: boolean,\n poster?: string,\n posterWebp?: string,\n autoPlay?: boolean,\n controls?: boolean,\n preload?: HTMLVideoElement['preload'],\n playsInline?: boolean,\n width?: number,\n height?: number,\n src?: string | string[],\n onlyLoadWhenVisible?: boolean,\n rounded?: boolean,\n}\n\nconst NativeVideoWrapper: React.FC = props => {\n const ref = useObservableRef();\n const videoRef = useObservableRef();\n // const p = useProps(props);\n const s = useStore(() => ({\n src: props.onlyLoadWhenVisible ? [''] : isArray(props.src) ? props.src : [props.src],\n }))\n useOnMount(() => {\n if (isBuildTime) return;\n const d = makeDisposerController();\n const setSrcAndPlay = action(() => {\n s.src = isArray(props.src) ? props.src : [props.src];\n videoRef?.current?.play();\n })\n d.add(observeVisibility(ref, {\n id: props.id,\n onBecomeVisible: setSrcAndPlay,\n onBecomeInvisible: () => {\n videoRef?.current?.pause();\n }\n }))\n if (!props.onlyLoadWhenVisible) { \n setSrcAndPlay();\n }\n return d.disposer;\n })\n return (\n \n \n
\n )} />\n}\n\nexport default NativeVideoWrapper;"],"names":["props","metaInfo","useMajesticIrelandInfo","_jsxs","ProjectPage","_objectSpread","project","children","_jsx","NativeVideoWrapper","id","className","src","videoWebmHD","videoMp4","poster","videoPoster","width","height","onlyLoadWhenVisible","rounded","Spacer","size","SimpleEntryGallery","entry","range","Infinity","mobileSlidesPosition","ProjectMetaInfoMajesticIreland","name","displayName","abbreviation","subtitle","description","categories","Category","websites","sectors","Sector","tourism","url","hasPage","keywords","MajesticIrelandImages","useStaticQuery","imageMetaData","title","alt","featuredImage","image","childImageSharp","gallery","edges","map","edge","i","_edge$node$childImage","node","gatsbyImageData","mobileScreenshots","_props$image","_props$title","_props$image2","_ref","_props$alt","_props$image3","getImage","GatsbyImage","backgroundColor","disableSmoothScrollTemporarily","async","isBuildTime","document","documentElement","style","scrollBehavior","tick","key","useOnMount","pageHeadingGroupRef","useObservableRef","useAnimateTextEnterByLine","animateTextEnter","delay","Observer","_props$project$pageBa","PageTemplate","joinClassName","entryMeta","backgroundImage","pageBackgroundImage","TricolorMorphDef","PageSection","as","ref","Widowless","StandardTextBlock","ProjectURLButton","ribbons","sidebarExtraContent","isCustomValue","isStandardSize","display","inline","undefined","_props$entry$gallery","_props$range$","_props$range","_props$range$2","_props$range2","_props$entry$gallery$","_props$entry$gallery2","_props$mobileSlidesPo","slides","slice","length","React","doNotRenderContainer","GatsbyImageAdaptor","autoAddMobileSlides","isNumber","splice","AppScreenshotSlider","_Fragment","_props$drawLine","UI","useAppContext","CTAButton","to","rel","target","drawLine","viewport","supportsWebp","canvas","createElement","getContext","toDataURL","indexOf","checkIfBrowserSupportsWebp","videoRef","s","useStore","isArray","d","makeDisposerController","setSrcAndPlay","action","_videoRef$current","current","play","add","observeVisibility","onBecomeVisible","onBecomeInvisible","_videoRef$current2","pause","disposer","_props$loop","_props$muted","_props$preload","_props$autoPlay","_props$controls","_props$playsInline","loop","muted","posterWebp","preload","autoPlay","controls","playsInline","srcString"],"sourceRoot":""}