{"version":3,"file":"e5e03ad0485ecdbe020954ac9408d2cb999fe4ff-ac745b6cdd2bc9774968.js","mappings":"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","sources":["webpack://morrisons-storefinder/./src/components/StoreHomeImage.jsx","webpack://morrisons-storefinder/./src/components/Card.jsx","webpack://morrisons-storefinder/./src/components/Layout.jsx","webpack://morrisons-storefinder/./src/components/Search.jsx","webpack://morrisons-storefinder/./src/components/BaseButton.jsx","webpack://morrisons-storefinder/./src/components/HeaderButton.jsx","webpack://morrisons-storefinder/./src/components/StoresBrowser.jsx","webpack://morrisons-storefinder/./src/components/SubHeading.jsx"],"sourcesContent":["import { useStaticQuery, graphql } from 'gatsby'\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image'\nimport React from 'react'\n\nconst StoreHomeImage = ({ name }) => {\n const data = useStaticQuery(graphql`\n query {\n imageOne: file(relativePath: { eq: \"home-help.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n imageTwo: file(relativePath: { eq: \"home-doorstep.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n imageThree: file(relativePath: { eq: \"home-cafe.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n imageFour: file(relativePath: { eq: \"mccolls-help.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n imageFive: file(relativePath: { eq: \"home-doorstep.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n imageSix: file(relativePath: { eq: \"mccolls-paynews.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n }\n `)\n\n const image = getImage(data?.[name])\n\n return \n}\n\nexport default StoreHomeImage\n","import React from 'react'\nimport StoreHomeImage from './StoreHomeImage'\nimport PropTypes from 'prop-types'\nimport Icon from './Icon'\n\nconst propTypes = {\n img: PropTypes.string,\n title: PropTypes.string,\n copy: PropTypes.string,\n href: PropTypes.string,\n call: PropTypes.bool,\n hrefCopy: PropTypes.string,\n}\n\nconst Card = props => {\n const { img, title, copy, href, call, hrefCopy } = props\n return (\n \n
\n
\n \n
\n
\n
\n

{title}

\n
\n

{copy}

\n
\n
\n \n {hrefCopy}\n \n \n
\n
\n
\n
\n
\n )\n}\n\nCard.propTypes = propTypes\n\nexport default Card\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nconst propTypes = {\n children: PropTypes.node,\n className: PropTypes.string,\n}\n\nconst Layout = ({ children, className }) => {\n return (\n
\n {children}\n
\n )\n}\n\nLayout.propTypes = propTypes\n\nexport default Layout\n","import React from 'react'\nimport { Link, navigate } from 'gatsby'\nimport PropTypes from 'prop-types'\nimport Icon from './Icon'\nimport ModalOverlay from './ModalOverlay'\nimport { useQueryParams, StringParam, NumberParam } from 'use-query-params'\nimport { useSearchLocations, useGetGeoLocation } from 'src/core'\nimport { useAtom } from 'jotai'\nimport { placeNameAtom } from '../atoms'\nconst Search = ({ storeType }) => {\n const postCodeRef = React.useRef([])\n const {\n inputText,\n setInputText,\n postcodes,\n places,\n typing,\n } = useSearchLocations()\n\n const isMorrisonsDaily = storeType === 'MorrisonsDaily'\n\n const { loading, error: postcodesError, result: postcodesResult } = postcodes\n const { error: placesError, result: placesResult } = places\n\n const [showResults, setShowResults] = React.useState(false)\n\n const [filter, setQuery] = useQueryParams({\n postcode: StringParam,\n place: StringParam,\n lat: NumberParam,\n lon: NumberParam,\n storeType: StringParam,\n })\n const [, setPlaceName] = useAtom(placeNameAtom)\n\n const storeTypeDefault = 'Morrisons_GasStation_Franchise_MorrisonsDaily'\n\n // const storeTypeDefault = isMorrisonsDaily\n // ? 'GasStation_Franchise_MorrisonsDaily'\n // : storeType\n\n const {\n getGeolocation,\n longitude,\n latitude,\n geoError,\n fetchingPosition,\n } = useGetGeoLocation(false)\n\n React.useEffect(() => {\n if (!!longitude && !!latitude) {\n navigate(\n `/all/?lat=${latitude}&lon=${longitude}&storeType=${storeTypeDefault}`\n )\n }\n }, [setQuery, longitude, latitude, storeTypeDefault])\n\n function handleSearch() {\n if (inputText?.length < 3) return\n const noSpaceString = inputText?.replace(/\\s/g, '')\n const isPostcode = /\\d/.test(noSpaceString)\n\n if (isPostcode) {\n const formattedPostcode = noSpaceString?.toUpperCase()\n navigate(\n `/all/?postcode=${formattedPostcode}&storeType=${storeTypeDefault}`\n )\n } else {\n navigate(`/all/?place=${inputText}&storeType=${storeTypeDefault}`)\n }\n\n setShowResults(false)\n }\n\n function handleKeyDown(event) {\n if (event.keyCode === 13) {\n handleSearch()\n }\n if (event.keyCode === 27) {\n setInputText('')\n }\n if (event.keyCode === 40) {\n postCodeRef?.current?.[0]?.focus()\n }\n }\n\n function handlePostcodeKeydown(event, i) {\n if (event.keyCode === 38) {\n //up\n if (i === 0) {\n postCodeRef?.current?.[\n postcodesResult?.data?.result?.length - 1\n ]?.focus()\n }\n postCodeRef?.current?.[i - 1]?.focus()\n }\n if (event.keyCode === 40) {\n // down\n if (i === postcodesResult?.data?.result?.length - 1) {\n postCodeRef?.current?.[0]?.focus()\n }\n postCodeRef?.current?.[i + 1]?.focus()\n }\n }\n\n function handleClose() {\n setShowResults(false)\n }\n\n let dataLayer\n\n if (typeof window !== `undefined`) {\n dataLayer = window.dataLayer\n }\n\n function clickCurrentLocation() {\n if (dataLayer && dataLayer.push) {\n dataLayer.push({\n event: 'currentLocationSearch',\n })\n }\n }\n\n function renderSearchResults() {\n let component\n switch (true) {\n case (postcodesError || placesError) && true:\n component = (\n
\n Search is not available at this time. Please try again later.\n
\n )\n break\n case (postcodesResult?.data?.status === 200 &&\n !postcodesResult?.data?.result?.length) ||\n (placesResult?.data?.status === 200 &&\n !placesResult?.data?.result?.length):\n component = (\n
\n Sorry, we have no matching locations\n
\n )\n break\n case !!postcodesResult?.data?.result?.length ||\n !!placesResult?.data?.result?.length:\n component = (\n
\n {postcodesResult?.data?.result?.length > 0 ? (\n

\n Postcodes\n

\n ) : null}\n {postcodesResult?.data?.result?.map((postcode, i) => {\n const formattedPostcode = postcode?.replace(/\\s/g, '')\n return (\n (postCodeRef.current[i] = el)}\n onKeyDown={event => handlePostcodeKeydown(event, i)}\n onClick={() => {\n setShowResults(false)\n }}\n to={`/all/?postcode=${formattedPostcode}&storeType=${storeTypeDefault}`}\n >\n {postcode}\n \n )\n })}\n\n {placesResult?.data?.result?.length > 0 ? (\n

\n Places\n

\n ) : null}\n\n {placesResult?.data?.result?.map((place, i) => {\n return (\n (postCodeRef.current[i] = el)}\n onKeyDown={event => handlePostcodeKeydown(event, i)}\n onClick={() => {\n setShowResults(false)\n const pName = `${place?.name_1},\n ${\n place?.county_unitary ? `${place.county_unitary}, ` : ''\n } ${place?.outcode}`\n setPlaceName(pName)\n }}\n to={`/all/?lat=${place.latitude}&lon=${place.longitude}&storeType=${storeTypeDefault}`}\n >\n {place?.name_1},{' '}\n {place?.county_unitary ? `${place.county_unitary}, ` : null}\n {place?.outcode}\n \n )\n })}\n
\n )\n break\n default:\n component = null\n break\n }\n return component\n }\n\n return (\n <>\n
\n
\n \n \n\n {\n setInputText(e.target.value)\n setShowResults(true)\n }}\n placeholder=\"Enter postcode or location\"\n className={`flex-auto py-3 ml-1 text-lg font-light truncate bg-transparent outline-none sm:text-2xl sm:py-6 text-body md:text-3xl placeholder-body caret-tertiary\n `}\n >\n \n {\n setPlaceName('')\n clickCurrentLocation()\n if (!!latitude && !!longitude) {\n setQuery({\n lon: longitude,\n lat: latitude,\n postcode: undefined,\n place: undefined,\n })\n } else {\n getGeolocation()\n }\n }}\n disabled={fetchingPosition}\n >\n \n \n
\n \n \n Search\n \n \n
\n {geoError && geoError.code === 1 && !inputText.length ? (\n
\n You have disabled geolocation for this website.\n
\n ) : null}\n\n {inputText.length > 2 && !loading && showResults ? (\n <>\n \n {renderSearchResults()}\n \n \n ) : null}\n {inputText.length > 0 &&\n inputText.length < 3 &&\n !loading &&\n showResults ? (\n
\n Enter more characters...\n
\n ) : null}\n \n 2 && showResults && !loading}\n onClick={handleClose}\n />\n \n )\n}\n\nSearch.propTypes = {\n mcColls: PropTypes.bool,\n}\n\nexport default Search\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Link } from 'gatsby'\n\nconst propTypes = {\n disabled: PropTypes.bool,\n selected: PropTypes.bool,\n onClick: PropTypes.func,\n children: PropTypes.node,\n type: PropTypes.string,\n rounded: PropTypes.bool,\n}\n\nconst defaultProps = {\n disabled: false,\n selected: false,\n type: 'button',\n rounded: false,\n}\n\nfunction BaseButton(props) {\n const {\n children,\n href,\n onClick,\n disabled,\n rounded,\n type,\n className,\n cy,\n } = props\n const isExternalLink = url => /^(http|https):\\/\\//.test(url || '')\n\n const disabledClass = disabled ? `opacity-50 cursor-not-allowed` : ''\n const roundedClass = rounded ? `rounded-full` : 'rounded-lg'\n const classes = `inline-block py-3 px-4 sm:px-5 font-semibold border cursor-pointer select-none outline-none ${className} ${disabledClass} ${roundedClass}`\n\n function handleClick() {\n if (disabled) {\n return\n } else if (onClick) {\n onClick()\n }\n }\n\n return href ? (\n isExternalLink(href) || (!href && onClick) ? (\n \n {children}\n \n ) : (\n \n {children}\n \n )\n ) : (\n \n {children}\n \n )\n}\n\nBaseButton.propTypes = propTypes\nBaseButton.defaultProps = defaultProps\n\nexport default BaseButton\n","import React from 'react'\nimport BaseButton from './BaseButton'\n\nfunction HeaderButton(props) {\n const { opaque, ...rest } = props\n return (\n \n )\n}\n\nexport default HeaderButton\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Icon from './Icon'\nimport HeaderButton from './HeaderButton'\n\nconst StoresBrowser = ({ MorrisonsDaily, altHeaderColour }) => {\n let dataLayer\n console.log('MorrisonsDaily', MorrisonsDaily)\n if (typeof window !== `undefined`) {\n dataLayer = window.dataLayer\n }\n\n function clickStoresByName() {\n if (dataLayer && dataLayer.push) {\n dataLayer.push({\n event: 'viewStoresByName',\n })\n }\n }\n\n function clickStoresByRegion() {\n if (dataLayer && dataLayer.push) {\n dataLayer.push({\n event: 'viewStoresByRegion',\n })\n }\n }\n\n function clickStoresByMorrisonsDaily() {\n if (dataLayer && dataLayer.push) {\n dataLayer.push({\n event: 'viewMorrisonsDailyStores',\n })\n }\n }\n\n return (\n
\n
\n \n Looking for a specific store?\n \n
\n
\n
\n \n \n
\n \n Morrisons Stores by name\n \n \n
\n \n
\n\n \n \n
\n \n Morrisons Stores by region\n \n \n
\n \n
\n \n \n
\n \n Morrisons Daily Stores\n \n \n
\n \n \n \n \n
\n )\n}\nStoresBrowser.propTypes = {\n MorrisonsDaily: PropTypes.bool,\n}\nexport default StoresBrowser\n","import React from 'react'\n\nconst SubHeading = props => {\n const { heading, copy } = props\n return (\n
\n

{heading}

\n {copy && copy ? (\n
\n

{copy}

\n
\n ) : null}\n
\n )\n}\n\nexport default SubHeading\n"],"names":["name","data","useStaticQuery","image","getImage","G","alt","props","img","title","copy","href","call","hrefCopy","className","Icon","icon","children","storeType","dataLayer","postCodeRef","React","useSearchLocations","inputText","setInputText","postcodes","places","typing","loading","postcodesError","error","postcodesResult","result","placesError","placesResult","showResults","setShowResults","useQueryParams","postcode","StringParam","place","lat","NumberParam","lon","filter","setQuery","setPlaceName","useAtom","placeNameAtom","storeTypeDefault","useGetGeoLocation","getGeolocation","longitude","latitude","geoError","fetchingPosition","handleSearch","length","noSpaceString","replace","test","formattedPostcode","toUpperCase","navigate","handlePostcodeKeydown","event","i","keyCode","current","focus","window","defaultValue","autoComplete","onKeyDown","onChange","e","target","value","placeholder","htmlFor","onClick","push","undefined","disabled","code","component","status","map","Link","key","ref","el","to","pName","name_1","county_unitary","outcode","renderSearchResults","isShowing","BaseButton","rounded","type","cy","classes","defaultProps","selected","opaque","rest","MorrisonsDaily","altHeaderColour","console","log","heading"],"sourceRoot":""}