{"version":3,"sources":["webpack:///./src/components/DestinationsPage/Hero/index.tsx","webpack:///./src/components/DestinationsPage/Destinations/index.tsx","webpack:///./src/templates/Destinations/index.tsx","webpack:///./src/components/Layout/Destinations.tsx"],"names":["Hero","props","useState","mediaCount","setMediaCount","data","detail","path","image","featuredData","context","media","featuredMedia","useEffect","timer","setInterval","count","length","clearInterval","className","mediaType","src","autoPlay","muted","loop","type","estate","title","updated","onClick","navigate","description","to","Destinations","destinations","useStaticQuery","setCount","setData","shareCount","setShareCount","copied","setCopied","url","setURL","resizeMasonryItem","item","grid","document","getElementsByClassName","rowGap","parseInt","window","getComputedStyle","getPropertyValue","rowHeight","gridImagesAsContent","querySelector","rowSpan","Math","ceil","getBoundingClientRect","height","style","gridRowEnd","resizeAllMasonryItems","allItems","querySelectorAll","i","forEach","event","addEventListener","tempData","imagesLoaded","instance","elements","waitForImages","allSitePage","edges","map","destination","feature","push","location","origin","index","key","node","alt","FacebookShareButton","TwitterShareButton","EmailShareButton","MailIcon","text","onCopy","Chain","handleShare","ShareIcon","DestinationsPage","featured","filter","res","noData","SEO","NoData","withBackground","DestinationsLayout","children","activeLink"],"mappings":"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","file":"component---src-templates-destinations-index-tsx-c4ce9f101477c0b61e03.js","sourcesContent":["import { Link, navigate } from 'gatsby'\nimport React, { useEffect, useState } from 'react'\n\nimport './Hero.scss'\nimport GridLogo from '../../GridLogo/GridLogo'\nimport { FeaturedData } from '../data'\nimport DiscoverArrow from '../../../assets/icons/DiscoverArrow'\n\nconst Hero = (props: { data: FeaturedData; detail?: boolean; image?: any }): JSX.Element => {\n const [mediaCount, setMediaCount] = useState(0)\n\n const { data, detail, image } = props\n const { path } = data\n const featuredData = data.context.data\n const media = featuredData.featuredMedia[mediaCount]\n\n useEffect(() => {\n const timer = setInterval(() => {\n const count = mediaCount + 1\n\n if (count === featuredData.featuredMedia.length) {\n setMediaCount(0)\n } else {\n setMediaCount(count)\n }\n }, 8000)\n return (): void => clearInterval(timer)\n }, [mediaCount, featuredData])\n\n return (\n <>\n
\n\n
\n {featuredData && media.mediaType === 'image' ? (\n
\n \n
\n ) : (\n \n )}\n
\n\n
\n
\n
\n \n
\n
\n {featuredData.estate ? (\n
\n
{featuredData.estate}
\n
\n
\n ) : null}\n
{featuredData.title}
\n {detail ? (\n <>\n
\n {featuredData.updated}\n
navigate('/destinations')}>\n
\n \n
\n
\n
\n \n ) : (\n <>\n
\n

{featuredData.description}

\n {featuredData.updated}\n
\n \n
\n

DISCOVER

\n \n
\n \n \n )}\n
\n \n )\n}\n\nexport default Hero\n","import { Link, graphql, useStaticQuery } from 'gatsby'\nimport imagesLoaded from 'imagesloaded'\nimport React, { useState, useEffect } from 'react'\nimport CopyToClipboard from 'react-copy-to-clipboard'\nimport { FacebookShareButton, EmailShareButton, TwitterShareButton } from 'react-share'\n\nimport ShareIcon from '../../../assets/icons/ShareIcon'\nimport './Destinations.scss'\nimport { DestinationsTypes } from '../data'\nimport MailIcon from '../../../assets/icons/MailIcon'\nimport ChainIcon from '../../../assets/icons/Chain'\n\nconst Destinations = (): JSX.Element => {\n const destinations = useStaticQuery(graphql`\n query destinations {\n allSitePage(filter: { context: { category: { eq: \"destinations\" } } }) {\n edges {\n node {\n path\n context {\n data {\n id\n estate\n description\n title\n updated\n feature\n featuredMedia {\n media\n mediaType\n }\n }\n }\n }\n }\n }\n }\n `)\n\n const [count, setCount] = useState(5)\n const [data, setData] = useState(null)\n const [shareCount, setShareCount] = useState(-1)\n const [copied, setCopied] = useState(false)\n const [url, setURL] = useState('')\n\n const handleShare = (index: number): void => {\n setShareCount(index)\n setCopied(false)\n }\n\n const handleClose = (): void => {\n setShareCount(-1)\n setCopied(false)\n }\n\n useEffect(() => {\n const resizeMasonryItem = (item: any) => {\n const grid = document.getElementsByClassName('masonry')[0]\n if (grid) {\n const rowGap = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-row-gap')),\n rowHeight = parseInt(window.getComputedStyle(grid).getPropertyValue('grid-auto-rows')),\n gridImagesAsContent = item.querySelector('img.masonry-content')\n\n const rowSpan = Math.ceil((item.querySelector('.masonry-content').getBoundingClientRect().height + rowGap) / (rowHeight + rowGap))\n\n item.style.gridRowEnd = 'span ' + rowSpan\n if (gridImagesAsContent) {\n item.querySelector('img.masonry-content').style.height = item.getBoundingClientRect().height + 'px'\n }\n }\n }\n\n const resizeAllMasonryItems = () => {\n const allItems = document.querySelectorAll('.masonry-item')\n\n if (allItems) {\n for (let i = 0; i > allItems.length; i++) {\n resizeMasonryItem(allItems[i])\n }\n }\n }\n\n const waitForImages = () => {\n const allItems = document.querySelectorAll('.masonry-item')\n if (allItems) {\n for (let i = 0; i < allItems.length; i++) {\n imagesLoaded(allItems[i], function (instance: any) {\n let item = instance.elements[0]\n resizeMasonryItem(item)\n })\n }\n }\n }\n\n const masonryEvents = ['load', 'resize']\n masonryEvents.forEach(function (event) {\n window.addEventListener(event, resizeAllMasonryItems)\n })\n\n const fetchData = () => {\n let tempData: DestinationsTypes[] = []\n destinations.allSitePage.edges.map((destination: DestinationsTypes) => {\n if (!destination.feature) {\n tempData.push(destination)\n }\n })\n setData(tempData)\n }\n\n waitForImages()\n if (!data) {\n fetchData()\n }\n }, [data, count])\n\n const handleSeeMore = () => {\n setCount(count + 6)\n }\n\n useEffect(() => {\n setURL(window.location.origin)\n }, [])\n\n return (\n
\n
\n
\n
\n {data &&\n data?.map((destination: any, index: number): JSX.Element | void => {\n\n if (index <= count) {\n return (\n
\n
\n \n \"Dummy\n
\n
{destination.node.context.data.estate}
\n
\n
\n

{destination.node.context.data.title}

\n {`Updated as of ${destination.node.context.data.updated}`}\n \n\n
\n \n
Discover
\n \n {shareCount === index ? (\n
\n {copied ? (\n <>\n
\n Copied to clipboard!\n
\n
handleClose()}>\n \n
\n \n ) : (\n <>\n \n
\n \n
\n
\n\n \n
\n \n
\n
\n\n \n
\n \n
\n
\n\n setCopied(true)}>\n
\n \n
\n
\n\n
setShareCount(-1)}>\n \n
\n \n )}\n
\n ) : (\n
handleShare(index)}>\n Share\n \n
\n )}\n
\n
\n
\n )\n }\n })}\n
\n
\n\n {data && count + 1 < data.length ? (\n
\n
See More Destinations
\n
\n ) : data && data.length > 6 ? (\n
\n End Results\n
\n ) : null}\n
\n
\n )\n}\n\nexport default Destinations\n","import { graphql, useStaticQuery } from 'gatsby'\nimport React, { ReactElement } from 'react'\n\nimport DestinationsLayout from '../../components/Layout/Destinations'\nimport Destinations from '../../components/DestinationsPage/Destinations'\nimport Hero from '../../components/DestinationsPage/Hero'\nimport NoData from '../../components/NoData'\nimport SEO from '../../components/SEO/SEO'\n\nconst DestinationsPage = (): ReactElement => {\n const featuredDestination = useStaticQuery(graphql`\n query featuredDestination {\n allSitePage(filter: { context: { category: { eq: \"destinations\" } } }) {\n edges {\n node {\n path\n context {\n data {\n id\n estate\n description\n title\n updated\n feature\n featuredMedia {\n media\n mediaType\n }\n }\n }\n }\n }\n }\n }\n `)\n\n const data = featuredDestination.allSitePage.edges\n const featured = data.filter((res: any) => res.node.context.data.feature === true)\n const noData = data.length > 0 ? false : true\n\n return (\n \n \n {!noData ? (\n <>\n 0 ? featured[0].node : data[0].node} />\n \n \n ) : (\n \n )}\n \n )\n}\n\nexport default DestinationsPage\n","import React, { ReactElement } from 'react'\nimport Header from '../Header/Header'\nimport Footer from '../Footer/Footer'\nimport './Layout.scss'\nimport './Animations.scss'\n\ntype LayoutPropTypes = {\n noData?: boolean\n children?: string | Element | ReactElement | boolean | (string | Element | ReactElement | boolean)[]\n}\n\nconst DestinationsLayout = ({ children, noData }: LayoutPropTypes): ReactElement => (\n <>\n
\n {children}\n