{"version":3,"file":"component---src-templates-store-js-c438e47eefd914556164.js","mappings":"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","sources":["webpack://morrisons-storefinder/./src/components/BreadcrumbInHeader.jsx","webpack://morrisons-storefinder/./src/components/InfoMiniBanners.jsx","webpack://morrisons-storefinder/./src/components/InfoBannerHeader.jsx","webpack://morrisons-storefinder/./src/components/ArticleHeader.jsx","webpack://morrisons-storefinder/./src/core/urls.js","webpack://morrisons-storefinder/./src/components/StoreHighlightImage.jsx","webpack://morrisons-storefinder/./src/components/StoreHighlights.jsx","webpack://morrisons-storefinder/./src/components/InStoreServices.jsx","webpack://morrisons-storefinder/./src/components/InfoBannerSide.jsx","webpack://morrisons-storefinder/./src/components/MarketingImage.jsx","webpack://morrisons-storefinder/./src/components/MarketingOne.jsx","webpack://morrisons-storefinder/./src/components/MarketingTwo.jsx","webpack://morrisons-storefinder/./src/components/OverrideBanner.jsx","webpack://morrisons-storefinder/./src/components/HelpDetails.jsx","webpack://morrisons-storefinder/./src/components/NearbyStores.jsx","webpack://morrisons-storefinder/./node_modules/react-accessible-accordion/dist/es/index.js","webpack://morrisons-storefinder/./src/templates/store.js","webpack://morrisons-storefinder/./src/assets/icons/arrow_forward_24.svg","webpack://morrisons-storefinder/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js"],"sourcesContent":["import React from 'react'\nimport { Link } from 'gatsby'\nimport PropTypes from 'prop-types'\nimport ForwardArrowIcon from '../assets/icons/arrow_forward_24.svg'\n\nconst BreadcrumbInHeader = ({ category, currentPage, storeType }) => {\n const storeLink = storeType === 'McColls' ? `/mccolls` : '/'\n\n return (\n <div className=\"flex flex-wrap items-center mb-4 text-sm leading-none text-white lg:mb-8\">\n <Link\n to={storeLink}\n className=\"inline-block text-white hover:underline whitespace-nowrap\"\n >\n Store Finder Home\n </Link>\n <ForwardArrowIcon className=\"inline-block w-2 h-2 mx-2 fill-current\" />\n {currentPage && (\n <>\n <span className=\"hidden text-white sm:inline-block\">\n {currentPage}\n </span>\n </>\n )}\n </div>\n )\n}\n\nBreadcrumbInHeader.propTypes = {\n category: PropTypes.string,\n currentPage: PropTypes.string,\n storeType: PropTypes.string,\n}\n\nexport default BreadcrumbInHeader\n","import React from 'react'\nimport Icon from './Icon'\n\nconst InfoMiniBanners = ({ store }) => {\n const whichstore = store\n const newLookStores = [\n 21,\n 73,\n 80,\n 90,\n 93,\n 96,\n 97,\n 116,\n 125,\n 163,\n 170,\n 188,\n 295,\n 307,\n 356,\n 492,\n 608,\n ]\n const storesNowOpen = [549]\n const newStores = [494, 683]\n const newStoreNowOpen = [506, 529, 382, 422, 488, 466]\n const storeNowClosed = [181, 527, 493, 520]\n\n return (\n <>\n {newLookStores.includes(whichstore) ? (\n <section className=\"absolute right-0 flex items-end flex-1 -mt-2 -mr-2 -bottom-9 sm:left-auto sm:right-0 sm:bottom-auto\">\n <div className=\"flex items-center justify-start p-2 rounded-md shadow-lg bg-primary\">\n <h2 className=\"mr-2 text-sm font-semibold leading-none text-white md:text-base white\">\n New Look Store\n </h2>\n <Icon icon=\"infonewstore\" className=\"h-4 md:h-6 fill-white\" />\n </div>\n </section>\n ) : storesNowOpen.includes(whichstore) ? (\n <section className=\"absolute right-0 flex items-end flex-1 -mt-2 -mr-2 -bottom-9 sm:left-auto sm:right-0 sm:bottom-auto\">\n <div className=\"flex items-center justify-start p-2 rounded-md shadow-lg bg-primary\">\n <h2 className=\"mr-2 text-sm font-semibold leading-none text-white md:text-base white\">\n Store Now Open\n </h2>\n <Icon icon=\"infonewstore\" className=\"h-4 md:h-6 fill-white\" />\n </div>\n </section>\n ) : newStores.includes(whichstore) ? (\n <section className=\"absolute right-0 z-10 flex items-end flex-1 -mt-2 -mr-2 -bottom-9 sm:left-auto sm:right-0 sm:bottom-auto\">\n <div className=\"flex items-center justify-start p-2 rounded-md shadow-lg bg-primary\">\n <h2 className=\"mr-2 text-sm font-semibold leading-none text-white md:text-base white\">\n New Store\n </h2>\n <Icon icon=\"infonewstore\" className=\"h-4 md:h-6 fill-white\" />\n </div>\n </section>\n ) : newStoreNowOpen.includes(whichstore) ? (\n <section className=\"absolute right-0 z-10 flex items-end flex-1 mr-0 -mt-2 -bottom-9 sm:left-auto sm:right-0 sm:bottom-auto\">\n <div className=\"flex items-center justify-start p-2 rounded-md shadow-lg bg-primary\">\n <h2 className=\"mr-2 text-sm font-semibold leading-none text-white md:text-base white\">\n New Store Now Open\n </h2>\n <Icon icon=\"infonewstore\" className=\"h-4 md:h-6 fill-white\" />\n </div>\n </section>\n ) : storeNowClosed.includes(whichstore) ? (\n <section className=\"absolute right-0 z-10 flex items-end flex-1 mr-0 -mt-2 -bottom-9 sm:left-auto sm:right-0 sm:bottom-auto\">\n <div className=\"flex items-center justify-start p-2 rounded-md shadow-lg bg-primary\">\n <h2 className=\"mr-2 text-sm font-semibold leading-none text-white md:text-base white\">\n Store Now Closed\n </h2>\n <Icon icon=\"infonewstore\" className=\"h-4 md:h-6 fill-white\" />\n </div>\n </section>\n ) : null}\n </>\n )\n}\n\nexport default InfoMiniBanners\n","import React from 'react'\nimport Icon from '../components/Icon'\nimport { Link } from 'gatsby'\nconst InfoBannerHeader = ({ store }) => {\n const whichstore = store\n const topInfoOne = [449]\n const topInfoTwo = [670]\n const topInfoThree = [607]\n const topInfoFour = [557]\n const topInfoFive = [461]\n const topInfoCafe = []\n const topInfoMarketKitchen = []\n const topInfoMarketStreet = []\n const topInfoPharmacy = []\n const topInfoDailyClosure = []\n const topInfoFlorists = []\n\n return (\n <section className=\"relative flex-1\">\n {topInfoOne.includes(whichstore) ? (\n <>\n <div className=\"flex absolute right-0 left-auto -mt-2 -mr-2 rounded-full shadow-lg\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 items-end sm:ml-6 sm:justify-end\">\n <div className=\"flex flex-col flex-1 justify-center items-start p-2 pr-4 bg-white rounded-md shadow-lg sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-base font-semibold leading-tight lg:text-lg text-primary\">\n This store is currently closed for redevelopment\n </h2>\n </div>\n <p className=\"text-sm font-semibold\">\n Your nearest Morrisons are now:\n <br />\n </p>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/205\"\n >\n Morrisons Ealing, W5 2ND\n </Link>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/549\"\n >\n Morrisons Harrow, HA1 4BB\n </Link>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/382/brentford-waterside\"\n >\n Morrisons Brentford Waterside, TW8 8EW\n </Link>\n </div>\n </section>\n </>\n ) : topInfoTwo.includes(whichstore) ? (\n <>\n <div className=\"flex absolute right-0 left-auto -mt-2 -mr-2 rounded-full shadow-lg\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 items-end sm:ml-6 sm:justify-end\">\n <div className=\"flex flex-col flex-1 justify-center items-start p-2 pr-4 bg-white rounded-md shadow-lg sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-base font-semibold leading-tight lg:text-lg text-primary\">\n This store has now closed\n </h2>\n </div>\n <p className=\"text-sm font-semibold\">\n Thank you for your support and we look forward to serving you in\n your nearest Morrisons store located at:\n <br />\n </p>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/649\"\n >\n Morrisons Bolsover, S44 6DJ\n </Link>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/27\"\n >\n Morrisons Staveley, S43 3UL\n </Link>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/101\"\n >\n Morrisons Sheffield - Halfway, S20 8GN\n </Link>\n </div>\n </section>\n </>\n ) : topInfoThree.includes(whichstore) ? (\n <>\n <div className=\"flex absolute right-0 left-auto -mt-2 -mr-2 rounded-full shadow-lg\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 items-end sm:ml-6 sm:justify-end\">\n <div className=\"flex flex-col flex-1 justify-center items-start p-2 pr-4 bg-white rounded-md shadow-lg sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-base font-semibold leading-tight lg:text-lg text-primary\">\n Your Morrisons Royston is now closed\n </h2>\n </div>\n <p className=\"text-sm font-semibold\">\n Thank you for your support and we look forward to serving you in\n your nearest Morrisons store located at:\n <br />\n </p>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/126\"\n >\n Morrisons Letchworth, SG6 3TS\n </Link>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/118\"\n >\n Morrisons Cambourne, CB23 6EY\n </Link>\n </div>\n </section>\n </>\n ) : topInfoFour.includes(whichstore) ? (\n <>\n <div className=\"flex absolute right-0 left-auto -mt-2 -mr-2 rounded-full shadow-lg\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 items-end sm:ml-6 sm:justify-end\">\n <div className=\"flex flex-col flex-1 justify-center items-start p-2 pr-4 bg-white rounded-md shadow-lg sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-base font-semibold leading-tight lg:text-lg text-primary\">\n This store has now closed\n </h2>\n </div>\n <p className=\"text-sm font-semibold\">\n Thank you for your support and we look forward to serving you in\n your nearest Morrisons store located at:\n <br />\n </p>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/41/preston-riversway\"\n >\n Morrisons Preston Riversway, PR2 2YN\n </Link>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/394/bamber-bridge\"\n >\n Morrisons Bamber Bridge, PR5 6TP\n </Link>\n <Link\n className=\"text-sm font-semibold underline text-secondary\"\n to=\"/151/leyland\"\n >\n Morrisons Leyland, PR25 3UR\n </Link>\n </div>\n </section>\n </>\n ) : topInfoFive.includes(whichstore) ? (\n <>\n <div className=\"flex absolute right-0 left-auto -mt-2 -mr-2 rounded-full shadow-lg\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 items-end sm:ml-6 sm:justify-end\">\n <div className=\"flex flex-col flex-1 justify-center items-start p-2 pr-4 bg-white rounded-md shadow-lg sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-base font-semibold leading-tight lg:text-lg text-primary\">\n Morrisons Manchester - Grafton Street\n </h2>\n </div>\n <p className=\"text-sm font-bold\">\n Your new look Grafton Street store is now open\n </p>\n </div>\n </section>\n </>\n ) : null}\n </section>\n )\n}\n\nexport default InfoBannerHeader\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Container from './Container'\nimport Flower from '../assets/icons/flower.svg'\nimport BreadcrumbInHeader from '../components/BreadcrumbInHeader'\nimport InfoMiniBanners from './InfoMiniBanners'\nimport InfoBannerHeader from '../components/InfoBannerHeader'\n\nfunction removeMorrisonsDaily(text) {\n const phraseToRemove = 'morrisons daily'\n const regex = new RegExp(phraseToRemove, 'gi')\n return text.replace(regex, '').trim()\n}\n\nconst hoursOverride = [] //Override these stores hours with a different message\n\nconst ArticleHeader = ({\n currentCategory,\n currentPage,\n currentID,\n dateToday,\n region,\n category,\n}) => {\n return (\n <div\n className={`relative py-6 md:pt-6 md:pb-10 ${\n category === 'McColls'\n ? 'bg-gradient-r-primary md:pb-6'\n : 'bg-gradient-r-primary'\n }`}\n >\n <Container>\n <section className=\"relative z-10 flex flex-wrap sm:flex-nowrap\">\n <div className=\"w-full mb-2 sm:mb-0 sm:w-auto\">\n <BreadcrumbInHeader\n storeType={category}\n category={currentCategory}\n currentPage={currentPage}\n />\n <h1 className=\"text-3xl leading-none text-white \">\n <span className=\"hidden\">Details for:</span>\n {category !== 'McColls' ? (\n <>\n <span className=\"block mb-4 font-semibold\">\n {currentCategory}\n </span>\n {hoursOverride.includes(currentID) ? (\n <span className=\"block text-lg \">\n {/* New Store Opening 12/12/2024 */}\n </span>\n ) : (\n <span className=\"block text-lg \">{dateToday}</span>\n )}\n {/* HIDE OPENING TIMES */}\n {/* {currentID !== 382 ? (\n <span className=\"block text-lg \">{dateToday}</span>\n ) : null} */}\n </>\n ) : (\n <span className=\"flex-wrap items-center block -mb-2 sm:-mb-0 lg:-mt-2 md:flex\">\n <span className=\"flex flex-wrap items-center w-full mb-4 md:flex-nowrap\">\n <span className=\"inline-block mr-2 text-3xl font-bold text-white lg:text-4xl\">\n Morrisons\n </span>\n {' '}\n <span className=\"inline-block mr-2 text-3xl font-medium lg:text-4xl text-tertiary\">\n {' '}\n Daily\n </span>\n\n <span className=\"block w-full text-2xl font-semibold lg:text-3xl md:w-auto \">\n {' '}\n {removeMorrisonsDaily(currentCategory)}\n </span>\n </span>\n {hoursOverride.includes(currentID) ? (\n <span className=\"block text-lg font-semibold\">\n {/* New Store Opening 26/01/2024 */}\n </span>\n ) : (\n <span className=\"block text-lg font-semibold\">\n {dateToday}\n </span>\n )}\n </span>\n )}\n </h1>\n {(region === 'Morrisons Daily' ||\n region === 'Morrisons Select' ||\n category === 'Franchise') && (\n <span className=\"block mt-2 text-base font-semibold leading-tight sm:text-lg text-tertiary\">\n Please note this is a franchise store run by a third party\n </span>\n )}\n {/* {category === 'McColls' && (\n <span className=\"block mt-2 text-base font-semibold leading-tight sm:text-lg text-mccolls-secondary\">\n Please note - Some McColl's are franchise stores run by a\n third party\n </span>\n )} */}\n </div>\n <InfoMiniBanners store={currentID} />\n <InfoBannerHeader store={currentID} />\n </section>\n </Container>\n {category !== 'McColls' ?? (\n <div className=\"absolute top-0 bottom-0 left-0 right-0 w-full overflow-hidden\">\n <Flower className=\"h-64 ml-auto mr-0 lg:h-auto\" />\n </div>\n )}\n </div>\n )\n}\n\nArticleHeader.propTypes = {\n currentCategory: PropTypes.string,\n region: PropTypes.string,\n category: PropTypes.string,\n}\n\nexport default ArticleHeader\n","/* eslint-disable */\nconst createSlug = string => {\n const a =\n 'à áäâãåăæąçćÄÄ‘ÄèéěėëêęğǵḧìÃïîįłḿǹńňñòóöôœøṕŕřßşśšșťțùúüûǘůűūųẃáºÃ¿Ã½ÅºÅ¾Å¼Â·/_,:;'\n const b =\n 'aaaaaaaaacccddeeeeeeegghiiiiilmnnnnooooooprrsssssttuuuuuuuuuwxyyzzz------'\n const p = new RegExp(a.split('').join('|'), 'g')\n\n return string\n .toString()\n .toLowerCase()\n .replace(/\\s+/g, '-') // Replace spaces with -\n .replace(p, c => b.charAt(a.indexOf(c))) // Replace special characters\n .replace(/&/g, '-and-') // Replace & with 'and'\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word characters\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, '') // Trim - from end of text\n}\n\nconst formatUrl = text => text.replace(/\\s+/g, '-').toLowerCase()\n\nmodule.exports = {\n createSlug,\n formatUrl,\n}\n","import { useStaticQuery, graphql } from 'gatsby'\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image'\nimport React from 'react'\n\nconst StoreHighlightImage = ({ name }) => {\n const data = useStaticQuery(graphql`\n query {\n amazonLockers: file(relativePath: { eq: \"amazonLockers.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n asianClothing: file(relativePath: { eq: \"asianClothing.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n butcher: file(relativePath: { eq: \"butcher.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n CarStoreConnect: file(relativePath: { eq: \"CarStoreConnect.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n clickAndCollect: file(relativePath: { eq: \"clickAndCollect.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n coffeeToGo: file(relativePath: { eq: \"coffeeToGo.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n doddleParcels: file(relativePath: { eq: \"doddleParcels.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n fishmonger: file(relativePath: { eq: \"fishmonger.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n flowerWrapping: file(relativePath: { eq: \"flowerWrapping.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n freeFrom: file(relativePath: { eq: \"freeFrom.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n freshToGo: file(relativePath: { eq: \"freshToGo.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n halalCounter: file(relativePath: { eq: \"halalCounter.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n hotFood: file(relativePath: { eq: \"hotFood.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n makeYourOwnPizza: file(relativePath: { eq: \"makeYourOwnPizza.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n marketKitchen: file(relativePath: { eq: \"marketKitchen.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n newLookCafe: file(relativePath: { eq: \"newLookCafe.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n nutmeg: file(relativePath: { eq: \"nutmeg.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n nutmegWomens: file(relativePath: { eq: \"nutmegWomens.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n pancakes: file(relativePath: { eq: \"pancakes.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n partyShop: file(relativePath: { eq: \"partyShop.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n saladBar: file(relativePath: { eq: \"saladBar.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n sushi: file(relativePath: { eq: \"sushi.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n timpson: file(relativePath: { eq: \"timpson.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n wifi: file(relativePath: { eq: \"wifi.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n worldFoods: file(relativePath: { eq: \"worldFoods.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n brew: file(relativePath: { eq: \"brew.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n charAndSmoke: file(relativePath: { eq: \"charAndSmoke.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n bespokeHighlights: file(relativePath: { eq: \"bespokeHighlights.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n electricVehicleCharging: file(\n relativePath: { eq: \"electricVehicleCharging.jpg\" }\n ) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n }\n `)\n\n const image = getImage(data?.[name])\n\n return <GatsbyImage image={image} alt={`${name} image`} />\n}\n\nexport default StoreHighlightImage\n","import React from 'react'\nimport StoreHighlightImage from './StoreHighlightImage'\n\nconst StoreHighlights = ({ highlights }) => {\n return !highlights?.length ? null : (\n <>\n <div className=\"mb-2\">\n <h3 className=\"text-xl font-semibold\">Store Highlights</h3>\n </div>\n <section className=\"flex flex-wrap mb-6 -mx-3\">\n {highlights?.map(highlight => {\n return highlight?.serviceName !== 'Bespoke Highlights' ? (\n <article\n key={highlight.name}\n className=\"flex flex-wrap w-1/2 px-3 mx-0 mb-6 lg:w-1/4\"\n >\n <section className=\"flex flex-col w-full h-full bg-white rounded-b-lg shadow-md\">\n <StoreHighlightImage name={highlight?.name} />\n\n <div className=\"p-3\">\n <h2 className=\"text-lg font-semibold\">\n {highlight?.serviceName}\n </h2>\n </div>\n </section>\n </article>\n ) : null\n })}\n </section>\n </>\n )\n}\n\nexport default StoreHighlights\n","import React from 'react'\n\nconst InStoreServices = ({ services }) => {\n return !services?.length ? null : (\n <section className=\"mb-4\">\n <div className=\"mb-2\">\n <h3 className=\"text-xl font-semibold\">\n In-store services & facilities\n </h3>\n </div>\n <section className=\"flex flex-wrap -mx-3\">\n {services.map(s => {\n return s?.serviceName !== 'Bespoke Highlights' ? (\n <article\n key={s.name}\n title={s.serviceName}\n className=\"flex flex-col items-center justify-start w-1/4 px-3 mx-0 mb-8 lg:w-1/5\"\n >\n <span\n className={`icon icon-Generic icon-${s.name} text-4xl mb-2`}\n ></span>\n <span className={'text-base text-center leading-tight'}>\n {s.serviceName}\n </span>\n </article>\n ) : null\n })}\n </section>\n </section>\n )\n}\n\nexport default InStoreServices\n","import React from 'react'\nimport { Link } from 'gatsby'\nimport { useStaticQuery, graphql } from 'gatsby'\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image'\n\nconst InfoBannerSide = ({ store }) => {\n const data = useStaticQuery(graphql`\n query {\n pharmacy: file(relativePath: { eq: \"pharmacy.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n cafe: file(relativePath: { eq: \"cafe.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n }\n `)\n const imageOne = getImage(data?.pharmacy)\n const sideBannerOne = [12]\n\n return (\n <>\n {sideBannerOne.includes(store) ? (\n <section className=\"mb-4\">\n <Link\n href=\"tel:020 74851241\"\n target=\"_blank\"\n className=\"flex flex-col flex-1 p-4 text-white no-underline\"\n style={{ backgroundColor: '#00a5aa' }}\n >\n <GatsbyImage\n image={imageOne}\n alt=\"Morrisons Pharmacy\"\n style={{ maxWidth: '220px' }}\n />\n <div className=\"my-1\">\n <p className=\"text-base font-semibold\">\n Our new look Pharmacy is available across the road at\n </p>\n </div>\n\n <p className=\"text-lg font-bold\">66 Chalk Farm Road, NW1 8AN</p>\n <span className=\"text-lg font-bold underline\">\n Phone: 020 74851241\n </span>\n </Link>\n </section>\n ) : null}\n </>\n )\n}\n\nexport default InfoBannerSide\n","import { useStaticQuery, graphql } from 'gatsby'\nimport { GatsbyImage, getImage } from 'gatsby-plugin-image'\nimport React from 'react'\n\nconst MarketingImage = ({ name, alt, ...props }) => {\n const data = useStaticQuery(graphql`\n query {\n doorstep: file(relativePath: { eq: \"doorstep.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n foodtoorder: file(relativePath: { eq: \"foodtoorder.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n marketkitchen: file(relativePath: { eq: \"marketkitchen.jpg\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n coronationlogo: file(relativePath: { eq: \"coronation-logo.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n coronationgflags: file(relativePath: { eq: \"coronation-flags.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FULL_WIDTH, placeholder: BLURRED)\n }\n }\n }\n `)\n\n const image = getImage(data?.[name])\n\n return <GatsbyImage image={image} alt={alt} {...props} />\n}\n\nexport default MarketingImage\n","import React from 'react'\nimport MarketingImage from './MarketingImage'\nimport Icon from '../components/Icon'\n\nconst MarketingOne = ({ services }) => {\n const whichService = 'marketKitchen'\n\n return (\n <div className=\"relative flex flex-col flex-1 overflow-hidden md:flex-row lg:flex-col\">\n {services.some(service => service.name === whichService) ? (\n <a\n href=\"https://my.morrisons.com/market-kitchen/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"flex flex-1\"\n >\n <MarketingImage\n name=\"marketkitchen\"\n alt=\"Morrisons Market Kitchen\"\n className=\"block w-full\"\n />\n </a>\n ) : (\n <a\n href=\"https://my.morrisons.com/foodtoorder/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"relative flex justify-start flex-1 aspect-ratio-4/3 sm:aspect-ratio-21/9 lg:aspect-ratio-4/3\"\n >\n <MarketingImage\n name=\"foodtoorder\"\n alt=\"Morrisons Food To Order\"\n className=\"z-0 block object-cover w-full h-full sm:w-1/2 lg:w-full\"\n style={{ position: 'absolute' }}\n />\n <div className=\"absolute bottom-0 right-0 z-10 flex flex-col w-full p-4 lg:pt-3 xl:pt-4 sm:h-full sm:w-1/2 lg:w-full bg-secondary lg:h-auto\">\n <div className=\"mb-2\">\n <h4 className=\"text-xl font-semibold leading-none text-white\">\n Morrisons Food To Order\n </h4>\n </div>\n <div className=\"flex-1 mb-3\">\n <p className=\"text-base font-semibold leading-tight text-white md:text-sm xl:text-base\">\n Make the most of your occasion, big or small, with our selection\n of great value Food to Order.\n </p>\n </div>\n <span className=\"flex items-center justify-end text-white\">\n <span className=\"pr-2 font-semibold leading-tight whitespace-nowrap\">\n Find Out More\n </span>\n <Icon icon=\"forwardArrow\" className=\"fill-current\" />\n </span>\n </div>\n </a>\n )}\n </div>\n )\n}\n\nexport default MarketingOne\n","import React from 'react'\nimport Icon from '../components/Icon'\nimport MarketingImage from './MarketingImage'\n\nconst MarketingTwo = () => {\n return (\n <>\n <div className=\"relative flex flex-col flex-1 overflow-hidden md:flex-row lg:flex-col\">\n <a\n href=\"https://www.morrisons.com/help/morewaystoshop/\"\n rel=\"noreferrer\"\n target=\"_blank\"\n className=\"relative flex justify-start flex-1 aspect-ratio-4/3 sm:aspect-ratio-21/9 lg:aspect-ratio-4/3\"\n >\n <MarketingImage\n name=\"doorstep\"\n alt=\"Morrisons Doorstep\"\n className=\"z-0 block object-cover w-full h-full sm:w-1/2 lg:w-full\"\n style={{ position: 'absolute' }}\n />\n <div className=\"absolute bottom-0 right-0 z-10 flex flex-col w-full p-4 lg:pt-3 xl:pt-4 sm:h-full sm:w-1/2 lg:w-full bg-secondary lg:h-auto\">\n <div className=\"mb-2\">\n <h4 className=\"text-xl font-semibold leading-none text-white\">\n More Ways to shop\n </h4>\n </div>\n <div className=\"flex-1 mb-3\">\n <p className=\"text-base font-semibold leading-tight text-white md:text-sm xl:text-base\">\n From Amazon to Deliveroo, check all our ways to get food, drink\n and more to your door.\n </p>\n </div>\n <span className=\"flex items-center justify-end text-white\">\n <span className=\"pr-2 font-semibold leading-tight whitespace-nowrap\">\n Find Out More\n </span>\n <Icon icon=\"forwardArrow\" className=\"fill-current\" />\n </span>\n </div>\n </a>\n </div>\n </>\n )\n}\n\nexport default MarketingTwo\n","import React from 'react'\nimport Icon from './Icon'\nimport { Link } from 'gatsby'\nconst OverrideBanner = ({\n currentID,\n address1,\n address2,\n address3,\n address4,\n}) => {\n const whichstore = currentID\n const overrideBannerOne = [181]\n const overrideBannerTwo = [527]\n const overrideBannerThree = [479]\n const overrideBannerFour = [493]\n const overrideBannerFive = [520]\n\n return (\n <section className=\"relative flex-1\">\n {overrideBannerOne.includes(whichstore) ? (\n <>\n <div className=\"absolute right-0 left-auto hidden -mt-2 -mr-2 rounded-full shadow-lg sm:flex\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 w-full\">\n <div className=\"flex flex-col items-start justify-center flex-1 w-full p-4 bg-white rounded-md shadow-lg lg:p-6 sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-lg font-semibold leading-tight lg:text-xl text-primary\">\n Morrisons Bishopbriggs\n </h2>\n </div>\n <p className=\"text-base font-semibold\">\n Our new Bishopbriggs store\n <span className=\"block font-bold\">Is now open.</span>\n </p>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/488/glasgow-bishopbriggs\"\n >\n Click here for more details\n </Link>\n </div>\n </section>\n </>\n ) : overrideBannerTwo.includes(whichstore) ? (\n <>\n <div className=\"absolute right-0 left-auto hidden -mt-2 -mr-2 rounded-full shadow-lg sm:flex\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 w-full\">\n <div className=\"flex flex-col items-start justify-center flex-1 w-full p-4 bg-white rounded-md shadow-lg lg:p-6 sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-lg font-semibold leading-tight lg:text-xl text-primary\">\n Morrisons Mitcham\n </h2>\n </div>\n <p className=\"text-base font-semibold\">\n Our Mitcham store closed on the 17th March 2023.\n <span className=\"block font-bold\">\n Your nearest Morrisons is now\n </span>\n </p>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/411/wimbledon\"\n >\n Morrisons Wimbledon\n </Link>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/576/croydon\"\n >\n Morrisons Croydon\n </Link>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/318/sutton\"\n >\n Morrisons Sutton\n </Link>\n </div>\n </section>\n </>\n ) : overrideBannerThree.includes(whichstore) ? (\n <>\n <div className=\"absolute right-0 left-auto hidden -mt-2 -mr-2 rounded-full shadow-lg sm:flex\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 w-full\">\n <div className=\"flex flex-col items-start justify-center flex-1 w-full p-4 bg-white rounded-md shadow-lg lg:p-6 sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-lg font-semibold leading-tight lg:text-xl text-primary\">\n Morrisons Brentford\n </h2>\n </div>\n <p className=\"text-base font-semibold\">\n This store closed on the 27th September 2023.\n <span className=\"block font-bold\">\n Your new Morrisons Brentford Waterside store is now open...\n </span>\n </p>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/382/brentford-waterside\"\n >\n View Morrisons Brentford Waterside, TW8 8EW\n </Link>\n </div>\n </section>\n </>\n ) : overrideBannerFour.includes(whichstore) ? (\n <>\n <div className=\"absolute right-0 left-auto hidden -mt-2 -mr-2 rounded-full shadow-lg sm:flex\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 w-full\">\n <div className=\"flex flex-col items-start justify-center flex-1 w-full p-4 bg-white rounded-md shadow-lg lg:p-6 sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-lg font-semibold leading-tight lg:text-xl text-primary\">\n Morrisons Bolton - Breightmet\n </h2>\n </div>\n <p className=\"text-base font-semibold\">\n Our Bolton - Breightmet store closed on the 17th September 2023.\n <span className=\"block font-bold\">\n Your nearest Morrisons is now\n </span>\n </p>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/212/harwood\"\n >\n Morrisons Harwood\n </Link>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/45/bolton\"\n >\n Morrisons Bolton\n </Link>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/59/bolton-atlas-mills\"\n >\n Morrisons Bolton - Atlas Mills\n </Link>\n </div>\n </section>\n </>\n ) : overrideBannerFive.includes(whichstore) ? (\n <>\n <div className=\"absolute right-0 left-auto hidden -mt-2 -mr-2 rounded-full shadow-lg sm:flex\">\n <Icon icon=\"info\" className=\"h-6 fill-primary\" />\n </div>\n <section className=\"flex flex-1 w-full\">\n <div className=\"flex flex-col items-start justify-center flex-1 w-full p-4 bg-white rounded-md shadow-lg lg:p-6 sm:flex-initial\">\n <div className=\"mb-1\">\n <h2 className=\"text-lg font-semibold leading-tight lg:text-xl text-primary\">\n Morrisons Faversham\n </h2>\n </div>\n <p className=\"text-base font-semibold\">\n Our Faversham store closed on the 17th September 2023.\n <span className=\"block font-bold\">\n Your nearest Morrisons is now\n </span>\n </p>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/558/sittingbourne\"\n >\n Morrisons Sittingbourne\n </Link>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/293/canterbury\"\n >\n Morrisons Canterbury\n </Link>\n <Link\n className=\"text-base font-semibold underline text-secondary\"\n to=\"/572/isle-of-sheppey\"\n >\n Morrisons Isle of Sheppey\n </Link>\n </div>\n </section>\n </>\n ) : null}\n </section>\n )\n}\n\nexport default OverrideBanner\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nconst HelpDetails = ({ pharmacy, category, telephone }) => {\n return (\n <>\n <section className=\"p-2 mb-4 border\">\n {category === 'McColls' ? (\n <>\n <p className=\"font-semibold text-secondary\">\n Telephone this store:\n </p>\n <a href={`tel:${telephone}`}>{telephone}</a>\n <p className=\"font-semibold text-secondary\">\n For Morrisons Daily assistance or feedback\n </p>\n <a href=\"https://www.morrisons.com/help/morrisons-daily/\">\n Visit our Help Hub\n </a>\n </>\n ) : (\n <>\n <p className=\"font-semibold text-secondary\">\n For Store assistance or feedback\n </p>\n <a href=\"https://www.morrisons.com/help/in-store-experience/\">\n Visit our Help Hub\n </a>\n <p className=\"mt-2 font-semibold text-secondary\">\n For Doorstep Deliveries call\n </p>\n <a href=\"tel:0345 6116111\">0345 6116111 option 5</a>\n\n <p className=\"mt-2 font-semibold text-secondary\">\n For Cafe Takeaway\n </p>\n <a\n href=\"https://my.morrisons.com/morrisons-cafe/\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Click Here\n </a>\n {pharmacy && (\n <>\n <p className=\"mt-2 font-semibold text-secondary\">Pharmacy</p>\n <a href={`tel:${pharmacy}`}>{pharmacy}</a>\n </>\n )}\n </>\n )}\n </section>\n </>\n )\n}\nHelpDetails.propTypes = {\n pharmacy: PropTypes.string,\n category: PropTypes.string,\n telephone: PropTypes.string,\n}\n\nexport default HelpDetails\n","import React from 'react'\nimport { Link } from 'gatsby'\nimport { createSlug } from '../core/urls'\nimport { formatOpeningTimeDays, getTodaysDate } from '../core'\n\nconst getStoreType = storeType =>\n ({\n Franchise: 'Franchise',\n McColls: 'Morrisons Daily',\n GasStation: 'Petrol Station',\n Morrisons: 'Supermarket',\n }?.[storeType])\nconst NearbyStores = ({ stores, isMorrisonsDaily }) => {\n return !stores?.length ? null : (\n <section className=\"w-full my-8 \">\n <div className=\"mb-2\">\n <h3 className=\"text-xl font-semibold\">Nearby Stores</h3>\n </div>\n <section className=\"flex flex-col w-full gap-4 lg:flex-row \">\n {stores.map(store => {\n const specialOpeningTime = store?.specialOpeningTimes?.find(\n times => times.name === 'supermarket'\n )\n const openingTimes = formatOpeningTimeDays(store?.openingTimes)\n const dateToday = getTodaysDate(specialOpeningTime, openingTimes)\n return (\n <section\n key={store.name}\n itemType=\"https://schema.org/LocalBusiness\"\n className={`relative lg:w-1/3 border border-body-lightest hover:bg-primary-lighter bg-white\n`}\n >\n <Link to={`/${store.name}/${createSlug(store.storeName)}`}>\n <section className=\"flex flex-col h-full p-4 \">\n <p className=\"mb-2 text-xs uppercase\">\n {getStoreType(store.storeType?.replace(/\\s/g, ''))}\n </p>\n <div>\n <div className=\"flex items-start justify-between flex-1\">\n <div className=\"flex pr-3 mb-2\">\n <h3\n className={`text-lg font-semibold leading-none text-secondary `}\n >\n {store.storeName}\n </h3>\n </div>\n </div>\n <section\n itemType=\"schema.org/PostalAddress\"\n className=\"my-2 clear-left\"\n >\n <p className=\"text-base\">\n {store.address?.addressLine1} <br />\n {store?.address.postcode}\n </p>\n </section>\n </div>\n <section\n itemProp=\"openingHours\"\n className=\"mt-auto text-base font-semibold text-primary\"\n >\n {dateToday ?? null}\n </section>\n </section>\n </Link>\n </section>\n )\n })}\n </section>\n </section>\n )\n}\nexport default NearbyStores\n","import { createElement, PureComponent, createContext, useState, Fragment } from 'react';\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assertThisInitialized(self);\n}\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nvar AccordionStore = function AccordionStore(_ref) {\n var _this = this;\n var _ref$expanded = _ref.expanded,\n _expanded = _ref$expanded === void 0 ? [] : _ref$expanded,\n _ref$allowMultipleExp = _ref.allowMultipleExpanded,\n allowMultipleExpanded = _ref$allowMultipleExp === void 0 ? false : _ref$allowMultipleExp,\n _ref$allowZeroExpande = _ref.allowZeroExpanded,\n allowZeroExpanded = _ref$allowZeroExpande === void 0 ? false : _ref$allowZeroExpande;\n _classCallCheck(this, AccordionStore);\n _defineProperty(this, \"expanded\", void 0);\n _defineProperty(this, \"allowMultipleExpanded\", void 0);\n _defineProperty(this, \"allowZeroExpanded\", void 0);\n _defineProperty(this, \"toggleExpanded\", function (uuid) {\n if (_this.isItemDisabled(uuid)) {\n return _this;\n }\n var isExpanded = _this.isItemExpanded(uuid);\n if (!isExpanded) {\n return _this.augment({\n expanded: _this.allowMultipleExpanded ? [].concat(_toConsumableArray(_this.expanded), [uuid]) : [uuid]\n });\n } else {\n return _this.augment({\n expanded: _this.expanded.filter(function (expandedUuid) {\n return expandedUuid !== uuid;\n })\n });\n }\n });\n _defineProperty(this, \"isItemDisabled\", function (uuid) {\n var isExpanded = _this.isItemExpanded(uuid);\n var isOnlyOneExpanded = _this.expanded.length === 1;\n return Boolean(isExpanded && !_this.allowZeroExpanded && isOnlyOneExpanded);\n });\n _defineProperty(this, \"isItemExpanded\", function (uuid) {\n return _this.expanded.indexOf(uuid) !== -1;\n });\n _defineProperty(this, \"getPanelAttributes\", function (uuid, dangerouslySetExpanded) {\n var expanded = dangerouslySetExpanded !== null && dangerouslySetExpanded !== void 0 ? dangerouslySetExpanded : _this.isItemExpanded(uuid);\n return {\n role: _this.allowMultipleExpanded ? undefined : 'region',\n 'aria-hidden': _this.allowMultipleExpanded ? !expanded : undefined,\n 'aria-labelledby': _this.getButtonId(uuid),\n id: _this.getPanelId(uuid),\n hidden: expanded ? undefined : true\n };\n });\n _defineProperty(this, \"getHeadingAttributes\", function () {\n return {\n role: 'heading'\n };\n });\n _defineProperty(this, \"getButtonAttributes\", function (uuid, dangerouslySetExpanded) {\n var expanded = dangerouslySetExpanded !== null && dangerouslySetExpanded !== void 0 ? dangerouslySetExpanded : _this.isItemExpanded(uuid);\n var disabled = _this.isItemDisabled(uuid);\n return {\n id: _this.getButtonId(uuid),\n 'aria-disabled': disabled,\n 'aria-expanded': expanded,\n 'aria-controls': _this.getPanelId(uuid),\n role: 'button',\n tabIndex: 0\n };\n });\n _defineProperty(this, \"getPanelId\", function (uuid) {\n return \"accordion__panel-\".concat(uuid);\n });\n _defineProperty(this, \"getButtonId\", function (uuid) {\n return \"accordion__heading-\".concat(uuid);\n });\n _defineProperty(this, \"augment\", function (args) {\n return new AccordionStore(_objectSpread2({\n expanded: _this.expanded,\n allowMultipleExpanded: _this.allowMultipleExpanded,\n allowZeroExpanded: _this.allowZeroExpanded\n }, args));\n });\n this.expanded = _expanded;\n this.allowMultipleExpanded = allowMultipleExpanded;\n this.allowZeroExpanded = allowZeroExpanded;\n};\nvar Context = /*#__PURE__*/createContext(null);\nvar Provider = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Provider, _React$PureComponent);\n var _super = _createSuper(Provider);\n function Provider() {\n var _this;\n _classCallCheck(this, Provider);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", new AccordionStore({\n expanded: _this.props.preExpanded,\n allowMultipleExpanded: _this.props.allowMultipleExpanded,\n allowZeroExpanded: _this.props.allowZeroExpanded\n }));\n _defineProperty(_assertThisInitialized(_this), \"toggleExpanded\", function (key) {\n _this.setState(function (state) {\n return state.toggleExpanded(key);\n }, function () {\n if (_this.props.onChange) {\n _this.props.onChange(_this.state.expanded);\n }\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"isItemDisabled\", function (key) {\n return _this.state.isItemDisabled(key);\n });\n _defineProperty(_assertThisInitialized(_this), \"isItemExpanded\", function (key) {\n return _this.state.isItemExpanded(key);\n });\n _defineProperty(_assertThisInitialized(_this), \"getPanelAttributes\", function (key, dangerouslySetExpanded) {\n return _this.state.getPanelAttributes(key, dangerouslySetExpanded);\n });\n _defineProperty(_assertThisInitialized(_this), \"getHeadingAttributes\", function () {\n // uuid: UUID\n return _this.state.getHeadingAttributes();\n });\n _defineProperty(_assertThisInitialized(_this), \"getButtonAttributes\", function (key, dangerouslySetExpanded) {\n return _this.state.getButtonAttributes(key, dangerouslySetExpanded);\n });\n return _this;\n }\n _createClass(Provider, [{\n key: \"render\",\n value: function render() {\n var _this$state = this.state,\n allowZeroExpanded = _this$state.allowZeroExpanded,\n allowMultipleExpanded = _this$state.allowMultipleExpanded;\n return /*#__PURE__*/createElement(Context.Provider, {\n value: {\n allowMultipleExpanded: allowMultipleExpanded,\n allowZeroExpanded: allowZeroExpanded,\n toggleExpanded: this.toggleExpanded,\n isItemDisabled: this.isItemDisabled,\n isItemExpanded: this.isItemExpanded,\n getPanelAttributes: this.getPanelAttributes,\n getHeadingAttributes: this.getHeadingAttributes,\n getButtonAttributes: this.getButtonAttributes\n }\n }, this.props.children || null);\n }\n }]);\n return Provider;\n}(PureComponent);\n_defineProperty(Provider, \"defaultProps\", {\n allowMultipleExpanded: false,\n allowZeroExpanded: false\n});\nvar Consumer = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(Consumer, _React$PureComponent2);\n var _super2 = _createSuper(Consumer);\n function Consumer() {\n var _this2;\n _classCallCheck(this, Consumer);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"renderChildren\", function (container) {\n return container ? _this2.props.children(container) : null;\n });\n return _this2;\n }\n _createClass(Consumer, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/createElement(Context.Consumer, null, this.renderChildren);\n }\n }]);\n return Consumer;\n}(PureComponent);\nvar Accordion = function Accordion(_ref) {\n var _ref$className = _ref.className,\n className = _ref$className === void 0 ? 'accordion' : _ref$className,\n allowMultipleExpanded = _ref.allowMultipleExpanded,\n allowZeroExpanded = _ref.allowZeroExpanded,\n onChange = _ref.onChange,\n preExpanded = _ref.preExpanded,\n rest = _objectWithoutProperties(_ref, [\"className\", \"allowMultipleExpanded\", \"allowZeroExpanded\", \"onChange\", \"preExpanded\"]);\n return /*#__PURE__*/createElement(Provider, {\n preExpanded: preExpanded,\n allowMultipleExpanded: allowMultipleExpanded,\n allowZeroExpanded: allowZeroExpanded,\n onChange: onChange\n }, /*#__PURE__*/createElement(\"div\", _extends({\n \"data-accordion-component\": \"Accordion\",\n className: className\n }, rest)));\n};\nvar DisplayName;\n(function (DisplayName) {\n DisplayName[\"Accordion\"] = \"Accordion\";\n DisplayName[\"AccordionItem\"] = \"AccordionItem\";\n DisplayName[\"AccordionItemButton\"] = \"AccordionItemButton\";\n DisplayName[\"AccordionItemHeading\"] = \"AccordionItemHeading\";\n DisplayName[\"AccordionItemPanel\"] = \"AccordionItemPanel\";\n})(DisplayName || (DisplayName = {}));\nvar DisplayName$1 = DisplayName;\nvar DEFAULT = 0;\nvar counter = DEFAULT;\nfunction nextUuid() {\n var current = counter;\n counter = counter + 1;\n return \"raa-\".concat(current);\n}\nfunction resetNextUuid() {\n counter = DEFAULT;\n} // HTML5 ids allow all unicode characters, except for ASCII whitespaces\n// https://infra.spec.whatwg.org/#ascii-whitespace\n// eslint-disable-next-line no-control-regex\n\nvar idRegex = /[\\u0009\\u000a\\u000c\\u000d\\u0020]/g;\nfunction assertValidHtmlId(htmlId) {\n if (htmlId === '' || idRegex.test(htmlId)) {\n console.error(\"uuid must be a valid HTML5 id but was given \\\"\".concat(htmlId, \"\\\", ASCII whitespaces are forbidden\"));\n return false;\n }\n return true;\n}\nvar Context$1 = /*#__PURE__*/createContext(null);\nvar Provider$1 = function Provider(_ref) {\n var children = _ref.children,\n uuid = _ref.uuid,\n accordionContext = _ref.accordionContext,\n dangerouslySetExpanded = _ref.dangerouslySetExpanded;\n var toggleExpanded = function toggleExpanded() {\n accordionContext.toggleExpanded(uuid);\n };\n var renderChildren = function renderChildren(accordionContext) {\n var expanded = dangerouslySetExpanded !== null && dangerouslySetExpanded !== void 0 ? dangerouslySetExpanded : accordionContext.isItemExpanded(uuid);\n var disabled = accordionContext.isItemDisabled(uuid);\n var panelAttributes = accordionContext.getPanelAttributes(uuid, dangerouslySetExpanded);\n var headingAttributes = accordionContext.getHeadingAttributes(uuid);\n var buttonAttributes = accordionContext.getButtonAttributes(uuid, dangerouslySetExpanded);\n return /*#__PURE__*/createElement(Context$1.Provider, {\n value: {\n uuid: uuid,\n expanded: expanded,\n disabled: disabled,\n toggleExpanded: toggleExpanded,\n panelAttributes: panelAttributes,\n headingAttributes: headingAttributes,\n buttonAttributes: buttonAttributes\n }\n }, children);\n };\n return /*#__PURE__*/createElement(Consumer, null, renderChildren);\n};\nvar ProviderWrapper = function ProviderWrapper(props) {\n return /*#__PURE__*/createElement(Consumer, null, function (accordionContext) {\n return /*#__PURE__*/createElement(Provider$1, _extends({}, props, {\n accordionContext: accordionContext\n }));\n });\n};\nvar Consumer$1 = function Consumer(_ref2) {\n var children = _ref2.children;\n var renderChildren = function renderChildren(container) {\n return container ? children(container) : null;\n };\n return /*#__PURE__*/createElement(Context$1.Consumer, null, renderChildren);\n};\nvar AccordionItem = function AccordionItem(_ref) {\n var customUuid = _ref.uuid,\n dangerouslySetExpanded = _ref.dangerouslySetExpanded,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? 'accordion__item' : _ref$className,\n activeClassName = _ref.activeClassName,\n rest = _objectWithoutProperties(_ref, [\"uuid\", \"dangerouslySetExpanded\", \"className\", \"activeClassName\"]);\n var _useState = useState(nextUuid()),\n _useState2 = _slicedToArray(_useState, 1),\n instanceUuid = _useState2[0];\n var uuid = customUuid !== null && customUuid !== void 0 ? customUuid : instanceUuid;\n var renderChildren = function renderChildren(itemContext) {\n var expanded = itemContext.expanded;\n var cx = expanded && activeClassName ? activeClassName : className;\n return /*#__PURE__*/createElement(\"div\", _extends({\n \"data-accordion-component\": \"AccordionItem\",\n className: cx\n }, rest));\n };\n assertValidHtmlId(uuid.toString());\n if (rest.id) {\n assertValidHtmlId(rest.id);\n }\n return /*#__PURE__*/createElement(ProviderWrapper, {\n uuid: uuid,\n dangerouslySetExpanded: dangerouslySetExpanded\n }, /*#__PURE__*/createElement(Consumer$1, null, renderChildren));\n};\nAccordionItem.displayName = DisplayName$1.AccordionItem;\nfunction getClosestAccordion(el) {\n return el && (el.matches('[data-accordion-component=\"Accordion\"]') ? el : getClosestAccordion(el.parentElement));\n}\nfunction getSiblingButtons(item) {\n var parentAccordion = getClosestAccordion(item);\n return parentAccordion && Array.from(parentAccordion.querySelectorAll('[data-accordion-component=\"AccordionItemButton\"]'));\n}\nfunction focusFirstSiblingOf(item) {\n var siblings = getSiblingButtons(item) || [];\n var first = siblings[0];\n if (first) {\n first.focus();\n }\n}\nfunction focusLastSiblingOf(item) {\n var siblings = getSiblingButtons(item) || [];\n var last = siblings[siblings.length - 1];\n if (last) {\n last.focus();\n }\n}\nfunction focusNextSiblingOf(item) {\n var siblings = getSiblingButtons(item) || [];\n var currentIndex = siblings.indexOf(item);\n if (currentIndex !== -1) {\n var next = siblings[currentIndex + 1];\n if (next) {\n next.focus();\n }\n }\n}\nfunction focusPreviousSiblingOf(item) {\n var siblings = getSiblingButtons(item) || [];\n var currentIndex = siblings.indexOf(item);\n if (currentIndex !== -1) {\n var previous = siblings[currentIndex - 1];\n if (previous) {\n previous.focus();\n }\n }\n}\nvar keycodes = {\n END: 'End',\n ENTER: 'Enter',\n HOME: 'Home',\n SPACE: ' ',\n SPACE_DEPRECATED: 'Spacebar',\n UP: 'ArrowUp',\n DOWN: 'ArrowDown',\n LEFT: 'ArrowLeft',\n RIGHT: 'ArrowRight'\n};\nvar AccordionItemButton = function AccordionItemButton(_ref) {\n var toggleExpanded = _ref.toggleExpanded,\n _ref$className = _ref.className,\n className = _ref$className === void 0 ? 'accordion__button' : _ref$className,\n rest = _objectWithoutProperties(_ref, [\"toggleExpanded\", \"className\"]);\n var handleKeyPress = function handleKeyPress(evt) {\n var keyCode = evt.key;\n if (keyCode === keycodes.ENTER || keyCode === keycodes.SPACE || keyCode === keycodes.SPACE_DEPRECATED) {\n evt.preventDefault();\n toggleExpanded();\n }\n /* The following block is ignored from test coverage because at time\n * time of writing Jest/react-testing-library can not assert 'focus'\n * functionality.\n */\n // istanbul ignore next\n\n if (evt.target instanceof HTMLElement) {\n switch (keyCode) {\n case keycodes.HOME:\n {\n evt.preventDefault();\n focusFirstSiblingOf(evt.target);\n break;\n }\n case keycodes.END:\n {\n evt.preventDefault();\n focusLastSiblingOf(evt.target);\n break;\n }\n case keycodes.LEFT:\n case keycodes.UP:\n {\n evt.preventDefault();\n focusPreviousSiblingOf(evt.target);\n break;\n }\n case keycodes.RIGHT:\n case keycodes.DOWN:\n {\n evt.preventDefault();\n focusNextSiblingOf(evt.target);\n break;\n }\n }\n }\n };\n if (rest.id) {\n assertValidHtmlId(rest.id);\n }\n return /*#__PURE__*/createElement(\"div\", _extends({\n className: className\n }, rest, {\n role: \"button\",\n tabIndex: 0,\n onClick: toggleExpanded,\n onKeyDown: handleKeyPress,\n \"data-accordion-component\": \"AccordionItemButton\"\n }));\n};\nvar AccordionItemButtonWrapper = function AccordionItemButtonWrapper(props) {\n return /*#__PURE__*/createElement(Consumer$1, null, function (itemContext) {\n var toggleExpanded = itemContext.toggleExpanded,\n buttonAttributes = itemContext.buttonAttributes;\n return /*#__PURE__*/createElement(AccordionItemButton, _extends({\n toggleExpanded: toggleExpanded\n }, props, buttonAttributes));\n });\n};\nvar defaultProps = {\n className: 'accordion__heading',\n 'aria-level': 3\n};\nvar SPEC_ERROR = \"AccordionItemButton may contain only one child element, which must be an instance of AccordionItemButton.\\n\\nFrom the WAI-ARIA spec (https://www.w3.org/TR/wai-aria-practices-1.1/#accordion):\\n\\n\\u201CThe button element is the only element inside the heading element. That is, if there are other visually persistent elements, they are not included inside the heading element.\\u201D\\n\\n\";\nvar AccordionItemHeading = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(AccordionItemHeading, _React$PureComponent);\n var _super = _createSuper(AccordionItemHeading);\n function AccordionItemHeading() {\n var _this;\n _classCallCheck(this, AccordionItemHeading);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"ref\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"setRef\", function (ref) {\n _this.ref = ref;\n });\n return _this;\n }\n _createClass(AccordionItemHeading, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n AccordionItemHeading.VALIDATE(this.ref);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n AccordionItemHeading.VALIDATE(this.ref);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/createElement(\"div\", _extends({\n \"data-accordion-component\": \"AccordionItemHeading\"\n }, this.props, {\n ref: this.setRef\n }));\n }\n }], [{\n key: \"VALIDATE\",\n value: function VALIDATE(ref) {\n if (ref === undefined) {\n throw new Error('ref is undefined');\n }\n if (!(ref.childElementCount === 1 && ref.firstElementChild && ref.firstElementChild.getAttribute('data-accordion-component') === 'AccordionItemButton')) {\n throw new Error(SPEC_ERROR);\n }\n }\n }]);\n return AccordionItemHeading;\n}(PureComponent);\n_defineProperty(AccordionItemHeading, \"defaultProps\", defaultProps);\nvar AccordionItemHeadingWrapper = function AccordionItemHeadingWrapper(props) {\n return /*#__PURE__*/createElement(Consumer$1, null, function (itemContext) {\n var headingAttributes = itemContext.headingAttributes;\n if (props.id) {\n assertValidHtmlId(props.id);\n }\n return /*#__PURE__*/createElement(AccordionItemHeading, _extends({}, props, headingAttributes));\n });\n};\nAccordionItemHeadingWrapper.displayName = DisplayName$1.AccordionItemHeading;\nvar AccordionItemPanel = function AccordionItemPanel(_ref) {\n var _ref$className = _ref.className,\n className = _ref$className === void 0 ? 'accordion__panel' : _ref$className,\n id = _ref.id,\n rest = _objectWithoutProperties(_ref, [\"className\", \"id\"]);\n var renderChildren = function renderChildren(_ref2) {\n var panelAttributes = _ref2.panelAttributes;\n if (id) {\n assertValidHtmlId(id);\n }\n return /*#__PURE__*/createElement(\"div\", _extends({\n \"data-accordion-component\": \"AccordionItemPanel\",\n className: className\n }, rest, panelAttributes));\n };\n return /*#__PURE__*/createElement(Consumer$1, null, renderChildren);\n};\nvar AccordionItemState = function AccordionItemState(_ref) {\n var children = _ref.children;\n var renderChildren = function renderChildren(itemContext) {\n var expanded = itemContext.expanded,\n disabled = itemContext.disabled;\n return /*#__PURE__*/createElement(Fragment, null, children({\n expanded: expanded,\n disabled: disabled\n }));\n };\n return /*#__PURE__*/createElement(Consumer$1, null, renderChildren);\n};\nexport { Accordion, AccordionItem, AccordionItemButtonWrapper as AccordionItemButton, AccordionItemHeadingWrapper as AccordionItemHeading, AccordionItemPanel, AccordionItemState, resetNextUuid };","import React from 'react'\nimport { usePageViewTracking } from '../core'\nimport PropTypes from 'prop-types'\nimport SiteHeader from '../components/SiteHeader'\nimport ArticleHeader from '../components/ArticleHeader'\nimport Container from '../components/Container'\nimport StoreHighlights from '../components/StoreHighlights'\nimport InStoreServices from '../components/InStoreServices'\nimport InfoBannerSide from '../components/InfoBannerSide'\nimport MarketingOne from '../components/MarketingOne'\nimport MarketingTwo from '../components/MarketingTwo'\n// import MarketingTop from '../components/MarketingTop'\nimport OverrideBanner from '../components/OverrideBanner'\nimport HelpDetails from '../components/HelpDetails'\nimport Icon from '../components/Icon'\nimport NearbyStores from '../components/NearbyStores'\nimport {\n Accordion,\n AccordionItem,\n AccordionItemHeading,\n AccordionItemButton,\n AccordionItemPanel,\n} from 'react-accessible-accordion'\nimport {\n getWeekDates,\n formatOpeningTimes,\n getTodaysDate,\n formatAddress,\n} from '../core'\nimport { SEO } from '../components/SEO'\n\nimport parkingList from '../data/parking-list.json'\n\nconst hiddenStores = [181, 527, 479, 493, 520] //Hide these stores from the details page\n\nconst renderTimes = (day, supermarketSpecialTimes) => {\n const currentWeek = getWeekDates({ addWeek: false })\n const date = currentWeek.find(d => d.day_id === day.day_id)?.date\n const specialDate = supermarketSpecialTimes?.specialOpeningTimes.find(\n t => t.date === date\n )\n\n if (specialDate) {\n if (specialDate?.closed) {\n return (\n <>\n <span className=\"leading-tight md:w-1/2 xl:w-auto max-w-1/2\">\n {specialDate.label}\n </span>{' '}\n <span className=\"leading-tight text-right whitespace-nowrap md:w-1/2 xl:w-auto \">\n Closed\n </span>\n </>\n )\n } else {\n return (\n <>\n <span className=\"mb-1 leading-tight md:w-1/2 xl:w-auto max-w-1/2\">\n {specialDate.label}\n </span>{' '}\n <span className=\"pl-1 mb-1 leading-tight text-right md:w-1/2 xl:w-auto whitespace-nowrap\">\n {formatOpeningTimes({\n open: specialDate.open,\n close: specialDate.close,\n })}\n </span>\n </>\n )\n }\n } else if (day?.open === '00:00:00' && day?.close === '00:00:00') {\n return (\n <>\n <span className=\"leading-tight md:w-1/2 xl:w-auto max-w-1/2\">\n {day?.day}\n </span>{' '}\n <span className=\"leading-tight text-right whitespace-nowrap md:w-1/2 xl:w-auto \">\n Closed\n </span>\n </>\n )\n } else {\n return (\n <>\n <span className=\"mb-1 leading-tight md:w-1/2 xl:w-auto max-w-1/2\">\n {day.day}{' '}\n </span>\n <span className=\"pl-1 mb-1 leading-tight text-right md:w-1/2 xl:w-auto whitespace-nowrap\">\n {formatOpeningTimes({\n open: day.open,\n close: day.close,\n })}\n </span>\n </>\n )\n }\n}\n\nconst renderSpecialOpeningTimes = supermarketSpecialTimes => {\n const nextWeek = getWeekDates({ addWeek: true })\n\n return nextWeek.map((d, index) => {\n const specialDate = supermarketSpecialTimes?.specialOpeningTimes.find(\n t => t.date === d.date\n )\n\n if (specialDate) {\n if (specialDate?.closed) {\n return (\n <p\n key={specialDate?.date}\n className={`mb-1 text-error leading-tight font-semibold ${\n index === 0 ? 'border-t border-body-lighter mt-2 pt-2' : ''\n } flex justify-between px-4 md:px-2 xl:px-4 py-1`}\n >\n <>\n <span className=\"leading-tight md:w-1/2 xl:w-auto\">\n {specialDate.label}\n </span>{' '}\n <span className=\"pl-1 leading-tight text-right whitespace-nowrap md:w-1/2 xl:w-auto\">\n Closed\n </span>\n </>\n </p>\n )\n } else {\n return (\n <p\n key={specialDate?.date}\n className={`mb-1 text-error leading-tight font-semibold ${\n index === 0 ? 'border-t border-body-lighter mt-2 pt-2' : ''\n } flex justify-between px-4 md:px-2 xl:px-4 py-1`}\n >\n <>\n <span className=\"leading-tight md:w-1/2 xl:w-auto\">\n {specialDate.label}\n </span>{' '}\n <span className=\"pl-1 leading-tight text-right whitespace-nowrap md:w-1/2 xl:w-auto\">\n {formatOpeningTimes({\n open: specialDate.open,\n close: specialDate.close,\n })}\n </span>\n </>\n </p>\n )\n }\n } else {\n return null\n }\n })\n}\n\nconst propTypes = {\n location: PropTypes.object,\n}\n\nconst StorePage = ({ pageContext }) => {\n usePageViewTracking()\n\n let dataLayer\n\n if (typeof window !== `undefined`) {\n dataLayer = window.dataLayer\n }\n\n function clickCheckIfBusy() {\n if (dataLayer && dataLayer.push) {\n dataLayer.push({\n event: 'popularHours',\n })\n }\n }\n\n function clickGetDirections() {\n if (dataLayer && dataLayer.push) {\n dataLayer.push({\n event: 'getDirections',\n })\n }\n }\n\n const {\n pharmacy,\n storeName,\n name,\n region,\n category,\n openingTimes,\n specialOpeningTimes,\n linkedLocations,\n services,\n departments,\n serviceHighlights,\n address,\n location,\n liveLink,\n telephone,\n storeType,\n nearbyStores,\n } = pageContext\n\n const typeOfStore = storeType === 'Morrisons' ? storeType : 'MorrisonsDaily'\n const isGasStation = storeType === 'Gas Station'\n\n const supermarketSpecialTimes = specialOpeningTimes.find(\n times => times.name === 'supermarket'\n )\n const pfsOpeningTimes = linkedLocations.find(\n location => location.storeFormat === 'pfs'\n )\n const pfsSpecialTimes = specialOpeningTimes.find(\n times => times.name === 'pfs'\n )\n\n const dateToday = getTodaysDate(supermarketSpecialTimes, openingTimes)\n\n const [dayId, setDayId] = React.useState(null)\n const date = new Date()\n const id = date.getDay()\n React.useEffect(() => {\n setDayId(id)\n }, [id])\n\n //adjust the time of parking allowed\n function formatTime(minutes) {\n if (minutes < 60) {\n return `${minutes} Minute${minutes > 1 ? 's' : ''}`\n } else {\n const hours = minutes / 60\n return `${hours.toFixed(1)} Hour${hours !== 1 ? 's' : ''}`\n }\n }\n\n //adjust the time of parking allowed\n const parkingItem = parkingList.find(item => item.name === name)\n\n const hoursOverride = [] //Override these stores hours with a different message\n\n // const gardenCentres = [\n // 36,\n // 55,\n // 59,\n // 75,\n // 106,\n // 122,\n // 131,\n // 238,\n // 270,\n // 325,\n // 332,\n // 333,\n // 353,\n // 387,\n // 416,\n // 468,\n // 644,\n // ]\n //Below code checks department hours and hides the department if it is closed\n const hasValidOpeningTimes = openingTimes => {\n return Object.values(openingTimes).some(\n time => time.open !== '00:00:00' || time.close !== '00:00:00'\n )\n }\n\n return (\n <>\n <SiteHeader search sticky storeType={typeOfStore} />\n {/* <MarketingTop /> */}\n <ArticleHeader\n currentCategory={`${storeName}`}\n currentPage={`${storeName}`}\n currentID={name}\n dateToday={dateToday}\n region={`${region}`}\n category={`${category}`}\n />\n <Container>\n <main className=\"px-0 pt-4 pb-10 lg:pt-6\">\n {hiddenStores.includes(name) ? (\n <OverrideBanner\n currentID={name}\n address1={address?.addressLine1}\n address2={address?.addressLine2}\n address3={address?.city}\n address4={address?.postcode}\n />\n ) : (\n <section className=\"flex flex-col w-full mb-10 md:flex-row\">\n <section className=\"w-full md:w-2/5 lg:w-1/4\">\n <div className=\"mb-2\">\n <h3 className=\"text-xl font-semibold\">Opening Hours</h3>\n </div>\n <Accordion\n allowZeroExpanded\n preExpanded={['a']}\n className=\"w-full mb-4\"\n >\n <AccordionItem uuid=\"a\">\n <AccordionItemHeading className=\"border-0 border-b-2 border-white bg-primary-lighter\">\n <AccordionItemButton className=\"accordion__button | relative p-4 pr-8 text-lg font-medium outline-none flex justify-between items-center\">\n {isGasStation ? 'Petrol Station' : 'Store'}\n </AccordionItemButton>\n </AccordionItemHeading>\n <AccordionItemPanel className=\"py-2 text-base\">\n {hoursOverride.includes(name) ? (\n <span className=\"block w-full text-lg font-bold text-center text-secondary\">\n {/* New Store Opening 12/12/2024 */}\n </span>\n ) : (\n <>\n {openingTimes?.map(day => {\n return (\n <p\n key={day.day_id}\n className={`${\n dayId === day.day_id ? 'font-bold' : ''\n } flex justify-between px-4 md:px-2 xl:px-4 py-1 `}\n >\n {renderTimes(day, supermarketSpecialTimes)}\n </p>\n )\n })}{' '}\n </>\n )}\n\n {renderSpecialOpeningTimes(supermarketSpecialTimes)}\n </AccordionItemPanel>\n </AccordionItem>\n {linkedLocations?.length ? (\n <AccordionItem uuid=\"b\">\n <AccordionItemHeading className=\"border-0 border-b-2 border-white bg-primary-lighter\">\n <AccordionItemButton className=\"accordion__button | relative p-4 pr-8 text-lg font-medium outline-none flex justify-between items-center\">\n Petrol Station\n </AccordionItemButton>\n </AccordionItemHeading>\n <AccordionItemPanel className=\"py-2 text-base\">\n {hoursOverride.includes(name) ? (\n <span className=\"block w-full text-lg font-bold text-center text-secondary\">\n {/* New Store Opening 12/12/2024 */}\n </span>\n ) : (\n <>\n {pfsOpeningTimes?.openingTimes?.map(day => {\n return (\n <p\n key={day.day_id}\n className={`${\n dayId === day.day_id ? 'font-bold' : ''\n } flex justify-between px-4 md:px-2 xl:px-4 py-1 `}\n >\n {renderTimes(day, pfsSpecialTimes)}\n </p>\n )\n })}{' '}\n </>\n )}\n\n {renderSpecialOpeningTimes(pfsSpecialTimes)}\n </AccordionItemPanel>\n </AccordionItem>\n ) : null}\n\n {!departments?.length\n ? null\n : departments\n .filter(department =>\n hasValidOpeningTimes(department.openingTimes)\n )\n .map((department, i) => {\n const specialTimes = specialOpeningTimes.find(\n times => times.name === department.name\n )\n return (\n <AccordionItem key={department.name} uuid={i}>\n <AccordionItemHeading className=\"border-0 border-b-2 border-white bg-primary-lighter\">\n <AccordionItemButton className=\"accordion__button | relative p-4 pr-8 text-lg font-medium outline-none flex justify-between items-center\">\n {department.serviceName}\n </AccordionItemButton>\n </AccordionItemHeading>\n\n <AccordionItemPanel className=\"py-2 text-base\">\n {department.serviceName === 'Pharmacy' ? (\n <div className=\"flex justify-between px-4 pb-4 bg-white\">\n <span className=\"font-semibold leading-tight text-center\">\n <span className=\"text-secondary\">\n Please note:\n </span>{' '}\n This Pharmacy closes for lunchtime each\n day. Please check with the store for exact\n times.\n </span>\n </div>\n ) : null}\n {hoursOverride.includes(name) ? (\n <span className=\"block w-full text-lg font-bold text-center text-secondary\">\n {/* New Store Opening 12/12/2024 */}\n </span>\n ) : (\n <>\n {department?.openingTimes?.map(day => {\n return (\n <p\n key={day.day_id}\n className={`${\n dayId === day.day_id\n ? 'font-bold'\n : ''\n } flex justify-between px-4 py-1 `}\n >\n {renderTimes(day, specialTimes)}\n </p>\n )\n })}{' '}\n </>\n )}\n {renderSpecialOpeningTimes(specialTimes)}\n {department.serviceName === 'Cafe' ? (\n <div className=\"flex flex-col justify-between px-4 py-2 bg-white\">\n <span className=\"font-semibold leading-tight text-center\">\n <span className=\"text-secondary\">\n Please note:\n </span>{' '}\n Our café serves hot food until 15 minutes*\n prior to the café closing hours, we will\n continue to serve our selection of cakes,\n sandwiches & drinks until our closing\n time.\n </span>\n <span className=\"pt-2 text-sm font-medium leading-tight text-center\">\n *Sunday's stop serving hot food 30 minutes\n prior to closing.\n </span>\n </div>\n ) : null}\n </AccordionItemPanel>\n </AccordionItem>\n )\n })}\n </Accordion>\n <InfoBannerSide store={name} />\n <section\n itemType=\"https://schema.org/LocalBusiness\"\n className={`p-4 mb-4 rounded-lg bg-gradient-br-primary\n `}\n >\n <section\n itemType=\"schema.org/PostalAddress\"\n className=\"font-semibold text-white\"\n >\n <div className=\"mb-4\">\n <p itemProp=\"streetAddress\">{address?.addressLine1}</p>\n {address?.addressLine2 &&\n address?.addressLine2 !== 'None' ? (\n <p>{address.addressLine2}</p>\n ) : null}\n <p>\n <span itemProp=\"addressLocality\">{address?.city}</span>{' '}\n <span itemProp=\"postalCode\">{address?.postcode}</span>\n </p>\n </div>\n </section>\n <a\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n href={`https://www.google.com/maps/dir//Morrisons+${formatAddress`${\n address?.addressLine1\n }\n ${\n address?.addressLine2 === 'None'\n ? ''\n : address?.addressLine2\n }\n ${address?.city}\n ${address?.postcode}`}/@${location?.latitude},${\n location?.longitude\n }/`}\n onClick={clickGetDirections}\n className={`px-4 py-3 w-full flex justify-between items-center text-center rounded-lg transition-fast bg-white hover:bg-primary-lighter text-secondary hover:text-primary`}\n >\n <span className=\"font-semibold whitespace-nowrap\">\n Get directions\n </span>\n\n <Icon icon=\"locationpin\" className=\"fill-current\" />\n </a>\n </section>\n {parkingItem ? (\n <section className=\"p-4 mb-4 rounded-lg bg-gradient-br-parking\">\n <div className=\"flex items-center justify-start\">\n <div className=\"flex items-center justify-center p-2 mr-4 font-bold bg-white\">\n <Icon icon=\"parkingicon\" />\n </div>\n <div className=\"flex flex-wrap items-center justify-start flex-1\">\n <span className=\"w-full text-base font-semibold text-white\">\n Maximum Parking Time\n </span>\n <span className=\"text-xl font-bold text-white\">\n {formatTime(parseInt(parkingItem.maxParkingTime))}\n </span>\n </div>\n </div>\n </section>\n ) : null}\n {!liveLink ? null : (\n <section className=\"p-4 mb-4 bg-primary-lighter\">\n <div className=\"flex items-end justify-start mb-2 font-semibold text-secondary\">\n <Icon\n icon=\"googlelive\"\n className=\"w-6 mr-1 fill-current\"\n />\n Live: \n <span className=\"text-body whitespace-nowrap\">\n How busy is this store?\n </span>\n </div>\n <div className=\"mb-4 text-base\">\n Use Google Maps to check popular times at this store.\n Scroll down to the ‘Popular times' graph.\n </div>\n <a\n target=\"_blank\"\n rel=\"noreferrer\"\n href={liveLink}\n onClick={clickCheckIfBusy}\n className={`text-white px-4 py-3 w-full flex justify-between items-center text-center rounded-lg transition-fast bg-secondary hover:text-secondary hover:bg-white`}\n >\n <span className=\"font-semibold whitespace-nowrap\">\n Check Now\n </span>\n <Icon icon=\"opennewwindow\" className=\"fill-current\" />\n </a>\n </section>\n )}\n <HelpDetails\n category={`${category}`}\n telephone={`${telephone}`}\n pharmacy={pharmacy.ExtensionValue}\n />\n </section>\n <section className=\"w-full md:w-3/5 lg:w-3/4 md:ml-6 lg:ml-8\">\n <StoreHighlights highlights={serviceHighlights} />\n <InStoreServices services={services} />\n {category !== 'McColls' ? (\n <section className=\"flex flex-wrap w-full md:flex-wrap lg:flex-nowrap\">\n <div className=\"flex flex-auto w-full mb-4 mr-0 lg:mb-0 sm:w-full lg:w-auto lg:flex-1 lg:mr-2\">\n <MarketingOne services={services} />\n </div>\n <div className=\"flex-auto w-full mb-0 ml-0 sm:mb-4 lg:mb-0 sm:w-full lg:w-auto lg:flex-1 lg:ml-2\">\n <MarketingTwo />\n </div>\n </section>\n ) : null}\n\n <NearbyStores\n stores={nearbyStores}\n isMorrisonsDaily={category === 'McColls'}\n />\n </section>\n </section>\n )}\n </main>\n </Container>\n </>\n )\n}\n\nStorePage.propTypes = propTypes\n\nexport default StorePage\n\nexport const Head = ({ pageContext }) => {\n const { storeName } = pageContext\n const { category } = pageContext\n return <SEO title={`${category} ${storeName} Store Details`} />\n}\n","var React = require('react');\n\nfunction ArrowForward24 (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"path\",{\"d\":\"M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z\",\"key\":0}),React.createElement(\"path\",{\"fill\":\"none\",\"d\":\"M0 0h24v24H0z\",\"key\":1})]);\n}\n\nArrowForward24.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\"};\n\nmodule.exports = ArrowForward24;\n\nArrowForward24.default = ArrowForward24;\n","export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n strings.raw = raw;\n return strings;\n}"],"names":["category","currentPage","storeLink","storeType","className","Link","to","whichstore","store","includes","Icon","icon","hoursOverride","text","regex","currentCategory","currentID","dateToday","region","Container","RegExp","replace","trim","module","exports","createSlug","string","a","p","split","join","toString","toLowerCase","c","charAt","indexOf","formatUrl","name","data","useStaticQuery","image","getImage","G","alt","highlights","length","map","highlight","serviceName","key","services","s","title","imageOne","pharmacy","href","target","style","backgroundColor","maxWidth","props","some","service","rel","position","address1","address2","address3","address4","telephone","stores","isMorrisonsDaily","specialOpeningTime","specialOpeningTimes","find","times","openingTimes","formatOpeningTimeDays","getTodaysDate","itemType","storeName","Franchise","McColls","GasStation","Morrisons","address","addressLine1","postcode","itemProp","_classCallCheck","instance","Constructor","TypeError","_defineProperties","i","descriptor","enumerable","configurable","writable","Object","defineProperty","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","value","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","_inherits","subClass","superClass","create","constructor","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","e","_isNativeReflectConstruct","result","Super","NewTarget","_slicedToArray","arr","Array","isArray","_arrayWithHoles","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","err","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_nonIterableSpread","minLen","n","slice","test","len","arr2","AccordionStore","_ref","_this","_ref$expanded","expanded","_expanded","_ref$allowMultipleExp","allowMultipleExpanded","_ref$allowZeroExpande","allowZeroExpanded","uuid","isItemDisabled","isItemExpanded","augment","expandedUuid","concat","isExpanded","isOnlyOneExpanded","Boolean","dangerouslySetExpanded","role","getButtonId","id","getPanelId","hidden","disabled","tabIndex","args","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread2","Context","createContext","Provider","_React$PureComponent","_super","_len","_key","preExpanded","setState","state","toggleExpanded","onChange","getPanelAttributes","getHeadingAttributes","getButtonAttributes","_this$state","createElement","children","PureComponent","DisplayName","Consumer","_React$PureComponent2","_super2","_this2","_len3","_key3","container","renderChildren","Accordion","_ref$className","rest","DisplayName$1","counter","idRegex","assertValidHtmlId","htmlId","console","error","Context$1","Provider$1","accordionContext","panelAttributes","headingAttributes","buttonAttributes","ProviderWrapper","Consumer$1","_ref2","AccordionItem","current","customUuid","activeClassName","instanceUuid","useState","itemContext","cx","getClosestAccordion","el","matches","parentElement","getSiblingButtons","item","parentAccordion","querySelectorAll","displayName","keycodes","AccordionItemButton","onClick","onKeyDown","evt","first","keyCode","preventDefault","HTMLElement","focus","siblings","last","focusLastSiblingOf","currentIndex","previous","focusPreviousSiblingOf","focusNextSiblingOf","AccordionItemButtonWrapper","AccordionItemHeading","ref","VALIDATE","setRef","Error","childElementCount","firstElementChild","getAttribute","AccordionItemHeadingWrapper","AccordionItemPanel","hiddenStores","renderTimes","day","supermarketSpecialTimes","date","getWeekDates","addWeek","d","day_id","specialDate","t","closed","label","formatOpeningTimes","open","close","renderSpecialOpeningTimes","index","dataLayer","pageContext","usePageViewTracking","window","linkedLocations","departments","serviceHighlights","location","liveLink","nearbyStores","typeOfStore","isGasStation","pfsOpeningTimes","storeFormat","pfsSpecialTimes","React","dayId","setDayId","getDay","parkingItem","parkingList","SiteHeader","search","sticky","ArticleHeader","addressLine2","city","department","values","time","hasValidOpeningTimes","specialTimes","formatAddress","latitude","longitude","event","minutes","hours","toFixed","formatTime","parseInt","maxParkingTime","ExtensionValue","Head","SEO","ArrowForward24","defaultProps","default","_taggedTemplateLiteralLoose","strings","raw"],"sourceRoot":""}