{"version":3,"sources":["webpack:///./assets/images/icons/play-btn.svg","webpack:///./assets/images/newspapers-page/the-mercury.svg","webpack:///./assets/images/newspapers-page/sunday-tribune.svg","webpack:///./src/app/pages/BrandstoriesPage.js","webpack:///./src/app/components/FollowConcept.js","webpack:///./assets/images/newspapers-page/pretoria-news.svg","webpack:///./src/app/components/Articles.js","webpack:///./assets/images/newspapers-page/daily-news.svg","webpack:///./assets/images/newspapers-page/weekend-argus.svg","webpack:///./assets/images/newspapers-page/saturday-star.svg","webpack:///./src/templates/ArticleDeck.js","webpack:///./src/templates/ArticleFourRow.js","webpack:///./src/app/components/Oovvuu.js","webpack:///./assets/images/newspapers-page/cape-times.svg","webpack:///./assets/images/newspapers-page/cape-argus.svg","webpack:///./src/templates/HomePageVideos.js","webpack:///./src/app/pages/VideoPage.js","webpack:///./src/app/pages/AuthorPage.js","webpack:///./assets/images/newspapers-page/sunday-independent.svg","webpack:///./src/app/pages/SearchPage.js","webpack:///./assets/images/social-media/instagram-author.svg","webpack:///./assets/images/newspapers-page/independent-on-saturday.svg","webpack:///./src/app/pages/NotFound.js","webpack:///./src/app/components/AlphabeticList.js","webpack:///./src/app/components/WingBanners.js","webpack:///./src/app/pages/TrendsPage.js","webpack:///./src/app/pages/NewspapersPage.js","webpack:///./assets/images/newspapers-page/business-report.svg","webpack:///./assets/images/icons/gallery-next.svg","webpack:///./assets/images/social-media/linkedin-author.svg","webpack:///./assets/images/general/no-profile.png","webpack:///./assets/images/newspapers-page/the-star.svg","webpack:///./src/app/components/SecondaryNav.js","webpack:///./assets/images/social-media/facebook-author.svg"],"names":["module","exports","DefaultTemplate","articles","section","noImage","isConnected","sectionLabel","moreButton","withReadCount","adPath","visitorId","sessionId","div","w","maxWidth","mx","my","borderWidth","borderStyle","borderColor","h1","text","fontFamily","pb","mt","BrandstoriesPage","props","Template","template","downMd","useDown","setPageType","useEffect","location","pathname","sectionPageView","app","firstRender","main","px","sm","wAdD","wallpaperActive","lg","slotId","targeting","interstitial","collapseEmptyDiv","className","anchor","mapping","MAPPINGS","Interstitial","FORMATS","onSlotRenderEndedLeft","onSlotRenderEndedRight","noDiv","loading","Skeleton","count","pageSize","withMore","moreButtonColour","NoImage","notFound","NotFound","component","mb","textAlign","display","justifyContent","alignItems","flexDirection","leaderboard","Leaderboard","defaultProps","withRouter","connect","state","getVisitorId","getSessionId","dispatch","bindActionCreators","fetchArticles","fetchMoreArticles","componentText","subscribeConcept","button","bg","_","hover","color","borderRadius","textTransform","py","onClick","FollowConcept","topic","followText","unFollowText","useState","isSubscribed","setIsSubscribed","helpPopupVisible","setHelpPopupVisible","subscription","setSubscription","registration","setRegistration","isSubscribedToConcept","uuid","console","log","Promise","resolve","data","qs","stringify","titleKey","process","endpoint","axios","post","headers","then","res","subscribed","filter","status","length","error","message","JSON","name","navigator","serviceWorker","getRegistration","reg","pushManager","getSubscription","sub","setSubscribed","canPush","window","isFollowing","visible","gridTemplateColumns","gap","img","src","iolBlocks","alt","p","fontWeight","to","source","mr","ml","subscribe","userVisibleOnly","applicationServerKey","urlB64ToUint8Array","err","MoreFromButton","styled","Articles","React","scrollY","setScrollY","hasFetchedMore","timer","setTimeout","scrollTo","clearTimeout","id","gridColumn","pageView","canonical","replace","pageYOffset","sectionProps","sectionsLabels","label","rel","itemprop","href","nextHref","prevHref","memo","deepCompare","OpinionArticles","article","hoverColor","clickSource","getCanonical","spaceX","position","image","getImage","width","getImageSize","getTeaser","shape","visibility","h5","author","formatAgo","published","authorName","relatedSections","isOpinion","map","index","key","Pos","lastType","last","ArticleDeck","spaceY","headline","ArticleFourRow","ErrorBoundary","hasError","errorInfo","this","children","Component","Oovvuu","oovvuuRuntime","data-oovvuu-embed","height","sandbox","layout","frameborder","resizable","overflow","placeholder","span","top","left","transform","play","Image","pt","HomePageVideos","mapping1","mapping3","mapping5","VideoPanel","zIndex","isLast","h","VideoPage","useHasMounted","path","descriptionUrl","encodeURIComponent","oovvuuReplacementAdServerURL","Ad","thirdParty","WingBanners","mappingLeft","mappingRight","SecondaryNav","h3","right","next","fetchFullArticles","AuthorSectionPage","fetchAuthor","authorSlug","prevProps","url","imageUrl","match","description","relatedLinks","facebook","a","target","aFB","linkedin","aLI","instagram","aI","type","query","hasMounted","form","action","method","maXwidth","m","flex","input","appearance","search","staticContext","is404","AlphabeticList","arrayList","dict","reduce","previousTrend","currentTrend","firstLetter","toUpperCase","isNaN","push","flexWrap","Object","keys","letter","document","getElementById","scrollIntoView","behavior","h4","trend","slug","wallpaperMapping","setWallPaperActive","handleWallpaperLoaded","useCallback","e","isEmpty","useLocation","startsWith","Wallpaper","wallpaper","onSlotRenderEnded","wAdM","Wingbanner","wingbanner","ArticlesTemplate","TrendsPage","trends","hasFetched","fetchTrendingArticles","fetchTrendsList","currentTrends","trendingarticles","ArticleFourRowSkeleton","h2","trendingArticles","newspaperTitles","logo","TheStar","CapeArgus","WeekendCapeArgus","DailyNews","CapeTimes","TheMercury","PretoriaNews","BusinessReport","SaturdayStar","IndependantSat","SundayTribune","SundayIndependent","staticPageView","title","whiteSpace","getSectionLabel","nav","aria-label","overflowX","relatedSection","SweepIn","hoverBGColor"],"mappings":"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","file":"static/js/pages-VideoPage.39854bcc.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/play-btn.02f3ae7e.svg\";","module.exports = __webpack_public_path__ + \"static/media/the-mercury.a98a62df.svg\";","module.exports = __webpack_public_path__ + \"static/media/sunday-tribune.50dd24af.svg\";","import React, { useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { withRouter } from 'react-router'\nimport { x, useDown } from '@xstyled/styled-components'\n\nimport Articles from '../components/Articles'\nimport { fetchArticles, fetchMoreArticles } from '../../store/articles'\nimport { sectionPageView, setPageType } from '../../store/app'\nimport { getVisitorId, getSessionId } from '../../store/article'\nimport WingBanners from '../components/WingBanners'\nimport Ad from '../components/Ad'\nimport { FORMATS, MAPPINGS } from '../components/AdFormats'\nimport ArticleFourRow from '../../templates/ArticleFourRow'\nimport { ArticleFourRowSkeleton as Skeleton } from '../components/Skeletons'\nimport NotFound from './NotFound'\nimport NoImage from '../../../assets/images/general/no-image.png'\n\nconst DefaultTemplate = ({ articles, section, noImage, isConnected, sectionLabel, moreButton, withReadCount, adPath, visitorId, sessionId }) => (\n  <>\n    <x.div w='100%' maxWidth={1220} mx='auto' my={50} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider'>\n      <x.h1 text='h4' fontFamily='\"PT Serif\", serif' pb={20}>{sectionLabel}</x.h1>\n    </x.div>\n    <x.div maxWidth={1220} w='100%' mx='auto' mt={50}>\n      <ArticleFourRow articles={articles} section={section} noImage={noImage} moreButton={moreButton} isConnected={isConnected} withReadCount={withReadCount} adPath={adPath} visitorId={visitorId} sessionId={sessionId} />\n    </x.div>\n  </>\n)\n\nconst BrandstoriesPage = (props) => {\n  const Template = props.template || DefaultTemplate\n  const downMd = useDown('md')\n  setPageType('section')\n  useEffect(\n    () => {\n      if (('/' + props.section) === props.location.pathname) {\n        props.sectionPageView(props.location.pathname, props.section, props.visitorId, props.sessionId, props.app.firstRender)\n      }\n    },\n    [props.section]\n  )\n  return (\n    <>\n      <x.main px={{ sm: '20px', wAdD: props.app.wallpaperActive ? '0px' : '200px' }} mt={{ sm: '96px', lg: props.app.wallpaperActive ? '0px' : '173px' }} w='100%' maxWidth={{ sm: '1260px', wAdD: props.app.wallpaperActive ? '1220px' : '1660px' }} mx='auto'>\n        <Ad isConnected={props.isConnected} adPath={props.adPath} slotId='interstitial' targeting={{ interstitial: 'interstitial' }} collapseEmptyDiv className='advert' anchor='interstitial' mapping={MAPPINGS.Interstitial} {...FORMATS.interstitial} />\n        <WingBanners isConnected={props.isConnected} adPath={props.adPath} location={props.location} onSlotRenderEndedLeft={props.onSlotRenderEndedLeft} onSlotRenderEndedRight={props.onSlotRenderEndedRight} />\n        <Articles\n          {...props} noDiv isConnected loading={Skeleton} section={props.section} count={24} pageSize={16} withMore moreButtonColour='btn-red' noImage={NoImage} notFound={NotFound} component={Template}\n        />\n        {!downMd &&\n          <x.div mt={20} mb={50} mx={-20} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column'>\n            <Ad isConnected={props.isConnected} adPath={props.adPath} collapseEmptyDiv slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} mapping={MAPPINGS.Leaderboard} className='advert' {...FORMATS.leaderboard} />\n          </x.div>}\n      </x.main>\n    </>\n  )\n}\n\nBrandstoriesPage.defaultProps = {\n  component: DefaultTemplate,\n  section: 'brandstories'\n}\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchArticles, fetchMoreArticles, sectionPageView }, dispatch)\n\nexport default withRouter(connect((state) => ({ app: state.app, articles: state.articles, visitorId: getVisitorId(state), sessionId: getSessionId(state) }), mapDispatchToProps)(BrandstoriesPage))\n","import React, { useEffect, useState } from 'react'\nimport { x } from '@xstyled/styled-components'\nimport axios from 'axios'\nimport qs from 'qs'\nimport { urlB64ToUint8Array } from '../ServiceWorker'\nimport StyledLink from './ui/Link'\nimport Popup from 'ion-popup'\nimport iolBlocks from '../../../assets/images/general/push-notifications.svg'\n\nconst DefaultTemplate = ({ componentText, subscribeConcept }) => (\n  <x.button text='small' bg={{ _: 'white', hover: 'red' }} color={{ _: 'red', hover: 'white' }} borderWidth='1px' borderStyle='solid' borderColor='red' textAlign='center'  borderRadius='100px' textTransform='uppercase' mb={20} px={20} py={8} onClick={() => subscribeConcept()}>{componentText}</x.button>\n)\n\nconst FollowConcept = ({ topic, followText, unFollowText, template, sessionId, visitorId, section }) => {\n  const Template = template || DefaultTemplate\n  const [isSubscribed, setIsSubscribed] = useState(false)\n  const [helpPopupVisible, setHelpPopupVisible] = useState(false)\n  const [subscription, setSubscription] = useState(false)\n  const [registration, setRegistration] = useState(false)\n  const clickSource = 'Follow Concept'\n\n  useEffect(() => {\n    if (navigator.serviceWorker) {\n      navigator.serviceWorker.getRegistration()\n        .then(reg => {\n          console.log('*** FollowConcept: registration', reg)\n          setRegistration(reg)\n        })\n    }\n  }, [])\n\n  useEffect(() => {\n    console.log('*** FollowConcept: registration', registration)\n    if (registration && registration.pushManager) {\n      registration.pushManager.getSubscription()\n        .then(sub => {\n          console.log('*** FollowConcept: subscription', sub)\n          setSubscription(sub)\n        })\n    }\n  }, [registration])\n\n  useEffect(() => {\n    console.log('FollowConcept setIsSubscribed', topic.name, subscription, topic.topic)\n    async function setSubscribed () {\n      const isSubscribed = await isSubscribedToConcept(topic.topic, subscription)\n      setIsSubscribed(isSubscribed)\n    }\n    setSubscribed()\n  }, [subscription, topic.topic])\n\n  function isSubscribedToConcept (uuid, subscription) {\n    if (!subscription) {\n      console.log('*** isSubscribedToConcept: User is not subscribed to any push notifications')\n      return Promise.resolve(false)\n    }\n    const data = qs.stringify({\n      titleKey: process.env.RAZZLE_TITLE_KEY,\n      endpoint: (subscription && subscription.endpoint) || '' \n    })\n    return axios.post(process.env.RAZZLE_PUSH_SERVICE + '/topics', data, {\n        headers: {\n          'Content-Type': 'application/x-www-form-urlencoded'\n        }\n      })\n      .then(res => {\n        const subscribed = res.data.filter(topic => topic.topic === uuid)\n        console.log('*** subscriptions response', res.status, res.data, 'subscribed:', (subscribed.length > 0))\n        return (subscribed.length > 0)\n      })\n      .catch(error => {\n        console.log('*** isSubscribedToConcept error:', error.message)\n        return false\n      })\n  }\n\n  function subscribeConcept (uuid, subscription) {\n    const data = {\n      topic: uuid,\n      titleKey: process.env.RAZZLE_TITLE_KEY,\n      subscription: JSON.stringify(subscription)\n    }\n    console.log('*** FollowConcept:', 'Subscribing', data)\n    console.log('Calling', isSubscribed ? 'unsubscribe' : 'subscribe', topic.name)\n    axios.post(process.env.RAZZLE_PUSH_SERVICE + (isSubscribed ? '/unsubscribe' : '/subscribe'), qs.stringify(data), {\n      headers: {\n        'Content-Type': 'application/x-www-form-urlencoded'\n      }\n    })\n    .then(res => setIsSubscribed(!isSubscribed))\n    .catch(error => {\n      console.log(isSubscribed ? 'Unsubscribe' : 'Subscribe', 'Error:', error.message)\n      return false\n    })\n  }\n\n  function registerAndSubscribeConcept (uuid) {\n    console.log('*** FollowConcept:', 'Registering and subscribing')\n    if (registration && registration.pushManager) {\n      registration.pushManager.subscribe({\n        userVisibleOnly: true,\n        applicationServerKey: urlB64ToUint8Array(process.env.RAZZLE_SERVERKEY)\n      })\n        .then(function (subscription) {\n          console.log('User IS now subscribed.')\n          setSubscription(subscription)\n          return subscribeConcept(uuid, subscription)\n        })\n        .catch(function (err) {\n          console.log('Failed to subscribe the user: ', err)\n          setHelpPopupVisible(true)\n          setSubscription(false)\n        })\n    }\n  }\n\n  const canPush = !!(process.env.RAZZLE_ENABLE_PUSHNOTIFICATIONS && typeof window !== 'undefined' && typeof window.navigator !== 'undefined' && subscription)\n  const isFollowing = canPush && isSubscribed\n  console.log('*** FollowConcept:', {canPush, isFollowing, subscription})\n\n  if (canPush) {\n    return <Template componentText={isFollowing ? unFollowText : followText} subscribeConcept={() => subscribeConcept(topic.topic, subscription)} />\n  } else {\n    if (registration && registration.pushManager) {\n      return (\n        <>\n          {helpPopupVisible &&\n            <Popup visible>\n              <x.div display='grid' gridTemplateColumns='56px auto' gap={20}>\n                <x.div>\n                  <x.img src={iolBlocks} alt='IOL' w={56} />\n                </x.div>\n                <x.div color='grey'>\n                  <x.p text='xlarge' fontWeight='medium'>Small problem..</x.p>\n                  <x.p mt={5}>You have previously chosen to block notifications.</x.p>\n                  <x.p mb={15}>To follow stories requires you to enable notifications in your browser settings.</x.p>\n                  <x.div display='flex' justifyContent='flex-end'>\n                    <StyledLink onClick={() => setHelpPopupVisible(false)} to={'/help'} visitorId={visitorId} sessionId={sessionId} section={section} source={clickSource}><x.p mt={3} mr={15}>Help</x.p></StyledLink>\n                    <x.button onClick={() => setHelpPopupVisible(false)} bg='#2E5FDC' color='white' p='6px 20px' borderRadius={4} ml={5}>OK</x.button>\n                  </x.div>\n                </x.div>\n              </x.div>\n            </Popup>}\n          <Template componentText={followText} subscribeConcept={() => registerAndSubscribeConcept(topic.topic)} />\n        </>\n      )\n    } else {\n      return null\n    }\n  }\n}\n\nexport default FollowConcept\n","module.exports = __webpack_public_path__ + \"static/media/pretoria-news.b7dcb9a4.svg\";","import { memo } from 'react'\nimport styled, { x } from '@xstyled/styled-components'\nimport { Articles as IONArticles } from 'ion-article-cmp'\nimport Helmet from 'react-helmet'\nimport { pageView } from '../../store/app'\nimport deepCompare from '../../lib/deepCompare'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\n\nconst MoreFromButton = styled.button`\n  text-transform: uppercase;\n  padding: 10px 20px;\n  color: #FFF;\n  background-color: grey;\n  transition: all linear .3s;\n  &:hover {\n    background-color: black;\n  }\n`\n\nexport const Articles = (props) => {\n  const [scrollY, setScrollY] = React.useState(-1)\n  const hasFetchedMore = props.articles[props.section] ? props.articles[props.section].hasFetchedMore : false\n\n  React.useEffect(() => {\n    if (hasFetchedMore && scrollY >= 0) {\n      const timer = setTimeout(() => {\n        window.scrollTo(0, scrollY)\n        setScrollY(-1)\n      }, 0)\n      return () => clearTimeout(timer)\n    }\n  }, [hasFetchedMore])\n\n  return (\n    <IONArticles\n      moreButton={(p) => (\n        <x.div id='buttonContainer' className='more-from-btn noScript' display='flex' justifyContent='center' alignItems='center' w='100%' gridColumn='span 4' my='20'>\n          {typeof window !== 'undefined' && (\n            <MoreFromButton\n              className={'btn' + p.moreButtonColour} id='viewMoreButton'\n              onClick={() => {\n                props.pageView(p.canonical.replace(process.env.RAZZLE_SITE_URL, ''))\n                setScrollY(window.pageYOffset)\n                return p.onClick()\n              }}\n            >More From {p.sectionProps.sectionsLabels && p.sectionProps.sectionsLabels[0] && p.sectionProps.sectionsLabels[0].label}\n            </MoreFromButton>\n          )}\n          {typeof window === 'undefined' && (\n            <a id='viewMoreButtonNoScript' href={p.nextHref}><MoreFromButton>More From {p.sectionProps.sectionsLabels && p.sectionProps.sectionsLabels[0] && p.sectionProps.sectionsLabels[0].label}</MoreFromButton></a>\n          )}\n          <Helmet>\n            <link rel='canonical' itemprop='url' href={p.canonical} />\n            <link rel='next' href={p.nextHref} />\n            {p.prevHref && (\n              <link rel='prev' href={p.prevHref} />\n            )}\n          </Helmet>\n        </x.div>\n      )} {...props}\n    />\n  )\n}\n\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ pageView }, dispatch)\nexport default memo(connect(state => state.app, mapDispatchToProps)(Articles), deepCompare)\n","module.exports = __webpack_public_path__ + \"static/media/daily-news.eede69a4.svg\";","module.exports = __webpack_public_path__ + \"static/media/weekend-argus.1e264b30.svg\";","module.exports = __webpack_public_path__ + \"static/media/saturday-star.acf839cc.svg\";","import React, { Fragment } from 'react'\nimport { getCanonical, getImageSize, getImage, getTeaser } from '../lib/articleUtils'\nimport { x } from '@xstyled/styled-components'\nimport { formatAgo } from '../lib/dateUtils'\nimport ImageOrNoImage from '../app/components/ui/Image'\nimport NoImage from '../../assets/images/general/no-image.png'\nimport StyledLink from '../app/components/ui/Link'\nimport Ad from '../app/components/Ad'\nimport { FORMATS } from '../app/components/AdFormats'\n\nconst OpinionArticles = ({ article, hoverColor, visitorId, sessionId, section, clickSource, color }) => {\n  return (\n    <StyledLink article={article} to={'/' + getCanonical(article)} display='flex' alignItems='flex-start' spaceX={{ sm: '10px', lg: 'unset' }} flexDirection={{ sm: 'row', lg: 'column' }} justifyContent={{ sm: 'space-between', lg: 'unset' }} visitorId={visitorId} sessionId={sessionId} section={section} source={clickSource} color={color} hoverColor={hoverColor}>\n      <x.div position='relative' display='flex' justifyContent='center' alignItems='center'>\n        <ImageOrNoImage image={getImage(article)} w='auto' width={getImageSize('slider')} alt={getTeaser(article)} shape='16x9' display={{ sm: 'none', lg: 'block' }} visibility={{ sm: 'hidden', lg: 'visible' }} noImage={NoImage} />\n        <ImageOrNoImage image={getImage(article)} maxWidth={100} width={getImageSize('slider')} alt={getTeaser(article)} shape='square' display={{ sm: 'block', lg: 'none' }} visibility={{ sm: 'visible', lg: 'hidden' }} noImage={NoImage} />\n      </x.div>\n      <x.div mt={{ lg: '10px' }}>\n        <x.h5 text={{ sm: 'h6', lg: 'h5' }} mb={8}>{getTeaser(article)}</x.h5>\n        <x.p text='meta' color='meta' my={8}>By {article.author} | Published {formatAgo(article.published, true)}</x.p>\n      </x.div>\n    </StyledLink>\n  )\n}\n\nconst Template = ({ articles, authorName, section, noImage, isConnected, sectionLabel, moreButton, relatedSections, withReadCount, adPath, mapping, visitorId, sessionId, color, hoverColor, isOpinion }) => {\n  const clickSource = 'Article Deck'\n  return (\n    <x.div display={{ sm: '', lg: 'grid' }} gridTemplateColumns={{ sm: '', lg: 'repeat(3, calc((100% - 420px) / 3)) 300px' }} gap={{ lg: '40' }}>\n      {articles.map((article, index) => (\n        <Fragment key={index}>\n          {index > 0 && index % 16 === 0 &&\n            <x.div key={index} maxWidth={1220} mx='auto' my={50} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column' w='100%' gridColumn='span 4'>\n              <Ad isConnected={isConnected} adPath={adPath} collapseEmptyDiv slotId='leaderboard-middle' targeting={{ Pos: 'Leaderboard-middle' }} className='advert' mapping={mapping} {...FORMATS.leaderboard} />\n            </x.div>}\n          <x.article key={article.uuid} position='relative' className='divider-right' p={{ sm: '0 0 20px 0', lg: '0', lastType: '0' }} borderWidth={{ sm: '0 0 1px 0', lg: '0', lastType: '0' }} borderStyle='solid' borderColor='divider' mb={{ sm: '20px', lg: '0', last: '0' }}>\n            {!isOpinion &&\n              <StyledLink article={article} to={'/' + getCanonical(article)} display='flex' alignItems='flex-start' spaceX={{ sm: '10px', lg: 'unset' }} flexDirection={{ sm: 'row', lg: 'column-reverse' }} justifyContent={{ sm: 'space-between', lg: 'unset' }} visitorId={visitorId} sessionId={sessionId} section={section} source={clickSource} color={color} hoverColor={hoverColor}>\n                <x.div mt={{ lg: '10px' }}>\n                  <x.h5 text={{ sm: 'h6', lg: 'h5' }} mb={8}>{getTeaser(article)}</x.h5>\n                  <x.p text='meta' color='meta' my={8}>By {article.author} | Published {formatAgo(article.published, true)}</x.p>\n                </x.div>\n                <x.div position='relative' display='flex' justifyContent='center' alignItems='center'>\n                  <ImageOrNoImage image={getImage(article)} w='auto' width={getImageSize('slider')} alt={getTeaser(article)} shape='16x9' display={{ sm: 'none', lg: 'block' }} visibility={{ sm: 'hidden', lg: 'visible' }} noImage={NoImage} />\n                  <ImageOrNoImage image={getImage(article)} maxWidth={50} width={getImageSize('slider')} alt={getTeaser(article)} shape='square' display={{ sm: 'block', lg: 'none' }} visibility={{ sm: 'visible', lg: 'hidden' }} noImage={NoImage} />\n                </x.div>\n              </StyledLink>}\n            {isOpinion &&\n              <OpinionArticles\n                article={article} hoverColor={hoverColor} visitorId={visitorId} sessionId={sessionId} section={section} clickSource={clickSource} color={color}\n              />}\n          </x.article>\n        </Fragment>\n      ))}\n      {moreButton}\n    </x.div>\n  )\n}\nconst ArticleDeck = (props) => {\n  return (\n    <Template {...props} />\n  )\n}\n\nexport default ArticleDeck\n","import React, { Fragment } from 'react'\nimport { getCanonical, getImageSize, getImage, getTeaser } from '../lib/articleUtils'\nimport { x } from '@xstyled/styled-components'\nimport { formatAgo } from '../lib/dateUtils'\nimport ImageOrNoImage from '../app/components/ui/Image'\nimport NoImage from '../../assets/images/general/no-image.png'\nimport StyledLink from '../app/components/ui/Link'\nimport Ad from '../app/components/Ad'\nimport { FORMATS } from '../app/components/AdFormats'\n\nconst Template = ({ articles, authorName, section, noImage, isConnected, sectionLabel, moreButton, relatedSections, withReadCount, adPath, mapping, visitorId, sessionId }) => {\n  const clickSource = 'Article Four Row'\n  return (\n    <x.div display={{ sm: '', lg: 'grid' }} gridTemplateColumns={{ sm: '', lg: 'repeat(4, calc((100% - 120px) / 4))' }} gap={{ lg: '40' }}>\n      {articles.map((article, index) => (\n        <Fragment key={index}>\n          {index > 0 && index % 16 === 0 &&\n            <x.div key={index} maxWidth={1220} mx='auto' my={50} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column' w='100%' gridColumn='span 4'>\n              <Ad isConnected={isConnected} adPath={adPath} collapseEmptyDiv slotId='Leaderboard-middle' targeting={{ Leaderboard: 'middle' }} className='advert' mapping={mapping} {...FORMATS.leaderboard} />\n            </x.div>}\n          <x.article key={article.uuid} position='relative' className='divider-right' p={{ sm: '0 0 20px 0', lg: '0', lastType: '0' }} borderWidth={{ sm: '0 0 1px 0', lg: '0', lastType: '0' }} borderStyle='solid' borderColor='divider' mb={{ sm: '20px', lg: '0', last: '0' }}>\n            <StyledLink article={article} to={'/' + getCanonical(article)} display='flex' spaceY={{ sm: '0', lg: '10px' }} spaceX={{ sm: '10px', lg: '0' }} flexDirection={{ sm: 'row', lg: 'column-reverse' }} section={section} sessionId={sessionId} visitorId={visitorId} source={clickSource}>\n              <x.div>\n                <x.h5 text='h5' mt={0} mb={8}>{getTeaser(article)}</x.h5>\n                <x.p text='meta' color='meta'>By {article.author} | Published {formatAgo(article.published, true)}</x.p>\n              </x.div>\n              <x.div position='relative' display='flex' justifyContent='center' alignItems={{ sm: 'flex-start', lg: 'unset' }}>\n                <ImageOrNoImage image={getImage(article)} w='auto' width={getImageSize('slider')} alt={article.headline} shape='16x9' display={{ sm: 'none', lg: 'block' }} visibility={{ sm: 'hidden', lg: 'visible' }} noImage={NoImage} />\n                <ImageOrNoImage image={getImage(article)} maxWidth={50} width={getImageSize('slider')} alt={article.headline} shape='square' display={{ sm: 'block', lg: 'none' }} visibility={{ sm: 'visible', lg: 'hidden' }} noImage={NoImage} />\n              </x.div>\n            </StyledLink>\n          </x.article>\n        </Fragment>\n      ))}\n      {moreButton}\n    </x.div>\n  )\n}\n\nconst ArticleFourRow = (props) => {\n  return (\n    <Template {...props} />\n  )\n}\n\nexport default ArticleFourRow\n","/* global oovvuuRuntime */\n\nimport React, { useEffect, memo } from 'react'\nimport { x } from '@xstyled/styled-components'\n\nclass ErrorBoundary extends React.Component {\n  constructor (props) {\n    super(props)\n    this.state = { hasError: false }\n  }\n\n  static getDerivedStateFromError (error) {\n    // Update state so the next render will show the fallback UI.\n    return { hasError: true, error }\n  }\n\n  componentDidCatch (error, errorInfo) {\n    // You can also log the error to an error reporting service\n    console.error(error, errorInfo)\n  }\n\n  render () {\n    if (this.state.hasError) {\n      // You can render any custom fallback UI\n      return <div className='row mt-20'>Something went wrong.</div>\n    }\n\n    return this.props.children\n  }\n}\n\nconst Oovvuu = memo(({uuid}) => {\n  useEffect(() => {\n    if (typeof window !== 'undefined' && typeof window.oovvuuRuntime === 'function') {\n      oovvuuRuntime()\n    }\n  }, [uuid])\n\n  return (\n    <x.div w='100%' maxWidth={1220} mx='auto' mt={20} mb={20}>\n      <x.div data-oovvuu-embed={uuid} w='100%'>\n        <amp-iframe src={'https://playback.oovvuu.media/frame/' + uuid} width={5} height={4} sandbox='allow-scripts allow-same-origin' layout='responsive' frameborder='0' resizable>\n          <x.div overflow='true' placeholder='true' />\n        </amp-iframe>\n      </x.div>\n    </x.div>)\n})\nexport default Oovvuu\nexport { ErrorBoundary }\n","module.exports = __webpack_public_path__ + \"static/media/cape-times.336e4f0e.svg\";","module.exports = __webpack_public_path__ + \"static/media/cape-argus.8872ab4d.svg\";","import React from 'react'\nimport { getCanonical, getImageSize, getImage, getTeaser } from '../lib/articleUtils'\nimport { x } from '@xstyled/styled-components'\nimport { formatAgo } from '../lib/dateUtils'\nimport ImageOrNoImage from '../app/components/ui/Image'\nimport NoImage from '../../assets/images/general/no-image.png'\nimport play from '../../assets/images/icons/play-btn.svg'\nimport StyledLink from '../app/components/ui/Link'\n\nconst Template = ({ articles, authorName, section, noImage, isConnected, sectionLabel, moreButton, relatedSections, withReadCount, adPath, visitorId, sessionId }) => {\n  const clickSource = 'Video Widget'\n  return (\n    <x.div display='grid' gridTemplateColumns={{ sm: '100%', lg: 'repeat(4, calc((100% - 120px) / 4))' }} gap={{ lg: '40' }}>\n      {articles[0] &&\n        <x.article position='relative' className='divider-right' p={{ sm: '0 0 20px 0', lg: '0' }} borderWidth={{ sm: '0 0 1px 0', lg: '0' }} borderStyle='solid' borderColor='divider'>\n          <StyledLink article={articles[0]} to={getCanonical(articles[0]) + '?autoplay=1'} display='flex' spaceY={10} flexDirection='column' sessionId={sessionId} visitorId={visitorId} section={section} source={clickSource}>\n            <x.div position='relative' display='flex' justifyContent='center' alignItems='center'>\n              <x.span position='absolute' top='50%' left='50%' transform='translate(-50%, -50%)'><x.img src={play} alt='Play Button' /></x.span>\n              <ImageOrNoImage image={getImage(articles[0])} w={{ sm: '100%', lg: 'auto' }} width={getImageSize('slider')} alt={getTeaser(articles[0])} shape='16x9' noImage={NoImage} />\n            </x.div>\n            <x.div>\n              <x.h5 text={{ sm: 'h6', lg: 'h5' }} mb={8}>{getTeaser(articles[0])}</x.h5>\n              <x.p text='meta' color='meta' my={8}>By {articles[0].author} | Published {formatAgo(articles[0].published, true)}</x.p>\n            </x.div>\n          </StyledLink>\n        </x.article>}\n      {articles[1] &&\n        <x.article position='relative' className='divider-right' p={{ sm: '20px 0', lg: '0' }} borderWidth={{ sm: '0 0 1px 0', lg: '0' }} borderStyle='solid' borderColor='divider'>\n          <StyledLink article={articles[1]} to={getCanonical(articles[1]) + '?autoplay=1'} display='flex' alignItems='flex-start' spaceX={{ sm: '10px', lg: 'unset' }} flexDirection={{ sm: 'row', lg: 'column-reverse' }} justifyContent={{ sm: 'space-between', lg: 'unset' }} sessionId={sessionId} visitorId={visitorId} section={section} source={clickSource}>\n            <x.div mt={{ lg: '10px' }}>\n              <x.h5 text={{ sm: 'h6', lg: 'h5' }} mb={8}>{getTeaser(articles[1])}</x.h5>\n              <x.p text='meta' color='meta' my={8}>By {articles[1].author} | Published {formatAgo(articles[1].published, true)}</x.p>\n            </x.div>\n            <x.div position='relative' display='flex' justifyContent='center' alignItems='center'>\n              <x.span position='absolute' top='50%' left='50%' transform='translate(-50%, -50%)'><x.img src={play} alt='Play Button' w={{ sm: '25px', lg: 'unset' }} /></x.span>\n              <ImageOrNoImage image={getImage(articles[1])} w='auto' width={getImageSize('slider')} alt={getTeaser(articles[1])} shape='16x9' display={{ sm: 'none', lg: 'block' }} noImage={NoImage} />\n              <ImageOrNoImage image={getImage(articles[1])} maxWidth={50} width={getImageSize('slider')} alt={getTeaser(articles[1])} shape='square' display={{ sm: 'block', lg: 'none' }} noImage={NoImage} />\n            </x.div>\n          </StyledLink>\n        </x.article>}\n      {articles[2] &&\n        <x.article position='relative' className='divider-right' p={{ sm: '20px 0', lg: '0' }} borderWidth={{ sm: '0 0 1px 0', lg: '0' }} borderStyle='solid' borderColor='divider'>\n          <StyledLink article={articles[2]} to={getCanonical(articles[2]) + '?autoplay=1'} display='flex' alignItems='flex-start' spaceX={{ sm: '10px', lg: 'unset' }} flexDirection={{ sm: 'row', lg: 'column-reverse' }} justifyContent={{ sm: 'space-between', lg: 'unset' }} sessionId={sessionId} visitorId={visitorId} section={section} source={clickSource}>\n            <x.div mt={{ lg: '10px' }}>\n              <x.h5 text={{ sm: 'h6', lg: 'h5' }} mb={8}>{getTeaser(articles[2])}</x.h5>\n              <x.p text='meta' color='meta' my={8}>By {articles[2].author} | Published {formatAgo(articles[2].published, true)}</x.p>\n            </x.div>\n            <x.div position='relative' display='flex' justifyContent='center' alignItems='center'>\n              <x.span position='absolute' top='50%' left='50%' transform='translate(-50%, -50%)'><x.img src={play} alt='Play Button' w={{ sm: '25px', lg: 'unset' }} /></x.span>\n              <ImageOrNoImage image={getImage(articles[2])} w='auto' width={getImageSize('slider')} alt={getTeaser(articles[2])} shape='16x9' display={{ sm: 'none', lg: 'block' }} noImage={NoImage} />\n              <ImageOrNoImage image={getImage(articles[2])} maxWidth={50} width={getImageSize('slider')} alt={getTeaser(articles[2])} shape='square' display={{ sm: 'block', lg: 'none' }} noImage={NoImage} />\n            </x.div>\n          </StyledLink>\n        </x.article>}\n      {articles[3] &&\n        <x.article pt={{ sm: '20px', lg: '0' }}>\n          <StyledLink article={articles[3]} to={getCanonical(articles[3]) + '?autoplay=1'} display='flex' alignItems='flex-start' spaceX={{ sm: '10px', lg: 'unset' }} flexDirection={{ sm: 'row', lg: 'column-reverse' }} justifyContent={{ sm: 'space-between', lg: 'unset' }} sessionId={sessionId} visitorId={visitorId} section={section} source={clickSource}>\n            <x.div mt={{ lg: '10px' }}>\n              <x.h5 text={{ sm: 'h6', lg: 'h5' }} mb={8}>{getTeaser(articles[3])}</x.h5>\n              <x.p text='meta' color='meta' my={8}>By {articles[3].author} | Published {formatAgo(articles[3].published, true)}</x.p>\n            </x.div>\n            <x.div position='relative' display='flex' justifyContent='center' alignItems='center'>\n              <x.span position='absolute' top='50%' left='50%' transform='translate(-50%, -50%)'><x.img src={play} alt='Play Button' w={{ sm: '25px', lg: 'unset' }} /></x.span>\n              <ImageOrNoImage image={getImage(articles[3])} width={getImageSize('slider')} w='auto' alt={getTeaser(articles[3])} shape='16x9' display={{ sm: 'none', lg: 'block' }} noImage={NoImage} />\n              <ImageOrNoImage image={getImage(articles[3])} width={getImageSize('slider')} maxWidth={50} alt={getTeaser(articles[3])} shape='square' display={{ sm: 'block', lg: 'none' }} noImage={NoImage} />\n            </x.div>\n          </StyledLink>\n        </x.article>}\n    </x.div>\n\n  )\n}\n\nconst HomePageVideos = (props) => {\n  return (\n    <Template {...props} />\n  )\n}\n\nexport default HomePageVideos\n","import React, { useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { withRouter } from 'react-router'\nimport { x, useDown } from '@xstyled/styled-components'\nimport useHasMounted from '../../lib/useHasMounted'\n\nimport Articles from '../components/Articles'\nimport { fetchArticles, fetchFullArticles, fetchMoreArticles } from '../../store/articles'\nimport { sectionPageView, setPageType } from '../../store/app'\nimport { getVisitorId, getSessionId } from '../../store/article'\nimport Ad from '../components/Ad'\nimport WingBanners from '../components/WingBanners'\nimport { FORMATS } from '../components/AdFormats'\nimport HomePageVideos from '../../templates/HomePageVideos'\nimport StyledLink from '../components/ui/Link'\nimport NotFound from './NotFound'\nimport NoImage from '../../../assets/images/general/no-image.png'\nimport next from '../../../assets/images/icons/gallery-next.svg'\n\nimport SecondaryNav from '../components/SecondaryNav'\nimport Oovvuu, { ErrorBoundary as OovvuuErrorBoundary } from '../components/Oovvuu'\n\nconst mapping1 = [\n  [[1400, 0], [1, 2]],\n  [[1200, 0], [1, 2]],\n  [[1000, 0], [1, 2]],\n  [[700, 0], [1, 2]],\n  [[500, 0], [1, 2]],\n  [[200, 0], [1, 2]],\n  [[0, 0], []]\n]\n\nconst mapping3 = [\n  [[1400, 0], [[728, 90], [468, 60], [300, 250], [336, 280], 'fluid']],\n  [[1400, 0], [[728, 90], [468, 60], [300, 250], [336, 280], 'fluid']],\n  [[1000, 0], [[468, 60], [300, 250], [336, 280], [320, 50], [300, 100], [300, 50], 'fluid']],\n  [[700, 0], [[468, 60], [320, 100], [320, 50], [300, 100], [300, 50], [300, 250], [336, 280], [250, 250], 'fluid']],\n  [[500, 0], [[468, 60], [320, 100], [320, 50], [300, 100], [300, 50], [300, 250], [336, 280], [250, 250], 'fluid']],\n  [[200, 0], [[320, 100], [320, 50], [300, 100], [300, 50], [300, 250], [300, 600], [336, 280], [250, 250], 'fluid']],\n  [[0, 0], []]\n]\n\nconst mapping5 = [\n  [[1990, 0], [[300, 600], [300, 250], [336, 280], [250, 250], [120, 600], [160, 600]]],\n  [[1690, 0], [[120, 600], [160, 600]]],\n  [[1000, 0], []],\n  [[700, 0], []],\n  [[500, 0], []],\n  [[200, 0], []],\n  [[0, 0], []]\n]\n\nconst VideoPanel = () => {\n  return (\n    <x.div w='100%' maxWidth={1220} mx='auto' mt={50} mb={50} zIndex='100'>\n      <x.div className='video-box'>\n        <OovvuuErrorBoundary>\n          <Oovvuu uuid='0c22c5c1-2183-411e-8c7c-0fb74057b710' isLast={false} />\n        </OovvuuErrorBoundary>\n      </x.div>\n    </x.div>\n  )\n}\n\nexport const Skeleton = () => {\n  return (\n    <x.div w='100%' px={20} mx='auto' mt={50} mb={50}>\n      <x.div w='100%' h={495} bg='#F0F0F0'></x.div>\n    </x.div>\n  )\n}\n\nconst VideoPage = (props) => {\n  const hasMounted = useHasMounted()\n  const downMd = useDown('md')\n  const clickSource = 'Video Page'\n  setPageType('section')\n  useEffect(\n    () => {\n      props.sectionPageView(props.location.pathname, props.section, props.visitorId, props.sessionId, props.app.firstRender)\n      const path = `/${process.env.RAZZLE_DFP_CODE}${props.adPath || (props.location.pathname === '/' ? '/homepage' : props.location.pathname)}`\n      const descriptionUrl = `description_url=${encodeURIComponent(window.location.href)}`\n      const custParams = 'cust_params=title%3d{mediainfo.name}%26description%3d{mediainfo.description}%26keywords%3d{mediainfo.tags}'\n      window.oovvuuReplacementAdServerURL = `https://pubads.g.doubleclick.net/gampad/ads?iu=${path}&sz=640x480&${custParams}&ciu_szs=300x250&gdfp_req=1&ad_rule=1&ad_type=video&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=&${descriptionUrl}&vpmute=1&plcmt=1`\n    },\n    [props.section]\n  )\n  return (\n    <>\n      <x.main px={20} mt={{ sm: '96px', lg: '173px' }} w='100%' className='video-page'>\n        <Ad isConnected={props.isConnected} adPath={props.adPath} slotId='third-party' targeting={{ Pos: 'Third-Party' }} collapseEmptyDiv className='advert' mapping={mapping1} {...FORMATS.thirdParty} />\n        <WingBanners isConnected={props.isConnected} adPath={props.adPath} location={props.location} mappingLeft={mapping5} mappingRight={mapping5} onSlotRenderEndedLeft={props.onSlotRenderEndedLeft} onSlotRenderEndedRight={props.onSlotRenderEndedRight} />\n        <SecondaryNav section={props.section} sectionLabel={props.sectionLabel} relatedSections={props.relatedSections} sessionId={props.sessionId} visitorId={props.visitorId} />\n        {/* Video panel */}\n        <VideoPanel />\n        {/* Start of OOVVUU Collections */}\n        <x.div maxWidth={1220} w='100%' mx='auto'>\n          <x.div position='relative' w='100%'>\n            <x.h3 text='h3' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}>Podcasts</x.h3>\n            <StyledLink to='/multimedia/podcasts' position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row' sessionId={props.sessionId} visitorId={props.visitorId} section={props.section} source={clickSource}>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto' mb={50}>\n            <Articles\n              {...props} noDiv section='multimedia/podcasts' count={4} pageSize={4} noImage={NoImage} notFound={NotFound} component={({ articles, section, noImage, isConnected, withReadCount }) => (\n                <HomePageVideos articles={articles} section={section} noImage={noImage} isConnected={isConnected} withReadCount={withReadCount} adPath={props.adPath} sessionId={props.sessionId} visitorId={props.visitorId} />\n              )}\n            />\n          </x.div>\n        </x.div>\n        <x.div maxWidth={1220} w='100%' mx='auto'>\n          <x.div position='relative' w='100%'>\n            <x.h3 text='h3' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}>News</x.h3>\n            <StyledLink to='/news/video' position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row' sessionId={props.sessionId} visitorId={props.visitorId} section={props.section} source={clickSource}>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto' mb={50}>\n            <Articles\n              {...props} noDiv section='news/video' count={4} pageSize={4} noImage={NoImage} notFound={NotFound} component={({ articles, section, noImage, isConnected, withReadCount }) => (\n                <HomePageVideos articles={articles} section={section} noImage={noImage} isConnected={isConnected} withReadCount={withReadCount} adPath={props.adPath} sessionId={props.sessionId} visitorId={props.visitorId} />\n              )}\n            />\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto'>\n            <OovvuuErrorBoundary>\n              <Oovvuu uuid='4c0314aa-87fa-4a57-8152-521cc269c23c' isLast={false} />\n            </OovvuuErrorBoundary>\n          </x.div>\n        </x.div>\n        <x.div mt={20} mb={50} mx={-20} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column'>\n          <Ad isConnected={props.isConnected} adPath={props.adPath} collapseEmptyDiv slotId='Leaderboard-1' targeting={{ Pos: 'Leaderboard-1' }} className='advert' mapping={mapping3} {...FORMATS.leaderboard} />\n        </x.div>\n        <x.div maxWidth={1220} w='100%' mx='auto'>\n          <x.div position='relative' w='100%'>\n            <x.h3 text='h3' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}>Lifestyle</x.h3>\n            <StyledLink to='/lifestyle/video' position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row' sessionId={props.sessionId} visitorId={props.visitorId} section={props.section} source={clickSource}>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto' mb={50}>\n            <Articles\n              {...props} noDiv section='lifestyle/video' count={4} pageSize={4} noImage={NoImage} notFound={NotFound} component={({ articles, section, noImage, isConnected, withReadCount }) => (\n                <HomePageVideos articles={articles} section={section} noImage={noImage} isConnected={isConnected} withReadCount={withReadCount} adPath={props.adPath} sessionId={props.sessionId} visitorId={props.visitorId} />\n              )}\n            />\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto'>\n            <OovvuuErrorBoundary>\n              <Oovvuu uuid='63e25e40-26bd-4cd0-95c2-52a64415b4a1' isLast={false} />\n            </OovvuuErrorBoundary>\n          </x.div>\n        </x.div>\n        <x.div maxWidth={1220} w='100%' mx='auto'>\n          <x.div position='relative' w='100%'>\n            <x.h3 text='h3' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}>Sport</x.h3>\n            <StyledLink to='/sport/video' position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row' sessionId={props.sessionId} visitorId={props.visitorId} section={props.section} source={clickSource}>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto' mb={50}>\n            <Articles\n              {...props} noDiv section='sport/video' count={4} pageSize={4} noImage={NoImage} notFound={NotFound} component={({ articles, section, noImage, isConnected, withReadCount }) => (\n                <HomePageVideos articles={articles} section={section} noImage={noImage} isConnected={isConnected} withReadCount={withReadCount} adPath={props.adPath} sessionId={props.sessionId} visitorId={props.visitorId} />\n              )}\n            />\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto'>\n            <OovvuuErrorBoundary>\n              <Oovvuu uuid='65bffbfe-6016-44eb-91b4-e616cd6d34bc' isLast={false} />\n            </OovvuuErrorBoundary>\n          </x.div>\n        </x.div>\n        <x.div mt={20} mb={50} mx={-20} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column'>\n          <Ad isConnected={props.isConnected} adPath={props.adPath} collapseEmptyDiv slotId='Leaderboard-2' targeting={{ Pos: 'Leaderboard-2' }} className='advert' mapping={mapping3} {...FORMATS.leaderboard} />\n        </x.div>\n        <x.div maxWidth={1220} w='100%' mx='auto'>\n          <x.div position='relative' w='100%'>\n            <x.h3 text='h3' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}>Politics</x.h3>\n            <StyledLink to='/news/politics/video' position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row' sessionId={props.sessionId} visitorId={props.visitorId} section={props.section} source={clickSource}>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto' mb={50}>\n           <Articles\n              {...props} noDiv section='news/politics/video' count={4} pageSize={4} noImage={NoImage} notFound={NotFound} component={({ articles, section, noImage, isConnected, withReadCount }) => (\n                <HomePageVideos articles={articles} section={section} noImage={noImage} isConnected={isConnected} withReadCount={withReadCount} adPath={props.adPath} sessionId={props.sessionId} visitorId={props.visitorId} />\n              )}\n            />\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto'>\n            <OovvuuErrorBoundary>\n              <Oovvuu uuid='b3748041-0465-4d72-894f-098a305a51fc' isLast={false} />\n            </OovvuuErrorBoundary>\n          </x.div>\n        </x.div>\n        <x.div maxWidth={1220} w='100%' mx='auto'>\n          <x.div position='relative' w='100%'>\n            <x.h3 text='h3' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}>Business</x.h3>\n            <StyledLink to='/business-report/video' position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row' sessionId={props.sessionId} visitorId={props.visitorId} section={props.section} source={clickSource}>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto' mb={50}>\n            <Articles\n              {...props} noDiv section='business-report/video' count={4} pageSize={4} noImage={NoImage} notFound={NotFound} component={({ articles, section, noImage, isConnected, withReadCount }) => (\n                <HomePageVideos articles={articles} section={section} noImage={noImage} isConnected={isConnected} withReadCount={withReadCount} adPath={props.adPath} sessionId={props.sessionId} visitorId={props.visitorId} />\n              )}\n            />\n          </x.div>\n          <x.div maxWidth={1220} w='100%' mx='auto'>\n            <OovvuuErrorBoundary>\n              <Oovvuu uuid='db511caa-6b67-4b65-ae86-24321a382e54' isLast={true} />\n            </OovvuuErrorBoundary>\n          </x.div>\n        </x.div>\n        {/* End of OOVVUU Collection */}\n        <x.div mt={20} mb={50} mx={-20} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column'>\n          <Ad isConnected={props.isConnected} adPath={props.adPath} collapseEmptyDiv slotId='Leaderboard-3' targeting={{ Pos: 'Leaderboard-3' }} className='advert' mapping={mapping3} {...FORMATS.leaderboard} />\n        </x.div>\n      </x.main>\n    </>\n  )\n}\n\nVideoPage.defaultProps = {\n  section: 'multimedia/videos'\n}\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchArticles, fetchFullArticles, fetchMoreArticles, sectionPageView }, dispatch)\n\nexport default withRouter(connect((state) => ({ app: state.app, articles: state.articles, visitorId: getVisitorId(state), sessionId: getSessionId(state) }), mapDispatchToProps)(VideoPage))\n","import React from 'react'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { withRouter } from 'react-router'\nimport { x } from '@xstyled/styled-components'\n\nimport Articles from '../components/Articles'\nimport { fetchArticles, fetchMoreArticles } from '../../store/articles'\nimport { sectionPageView, setPageType } from '../../store/app'\nimport { getVisitorId, getSessionId } from '../../store/article'\nimport { fetchAuthor } from '../../store/author'\nimport WingBanners from '../components/WingBanners'\nimport Ad from '../components/Ad'\nimport { FORMATS, MAPPINGS } from '../components/AdFormats'\nimport { AuthorPageSkeleton as Skeleton } from '../components/Skeletons'\nimport ArticleDeck from '../../templates/ArticleDeck'\nimport FollowConcept from '../components/FollowConcept'\nimport NotFound from './NotFound'\nimport Image from '../components/ui/Image'\nimport NoImage from '../../../assets/images/general/no-profile.png'\n\nimport aFB from '../../../assets/images/social-media/facebook-author.svg'\n// import aT from '../../../assets/images/social-media/twitter-author.svg'\nimport aLI from '../../../assets/images/social-media/linkedin-author.svg'\nimport aI from '../../../assets/images/social-media/instagram-author.svg'\n\nconst DefaultTemplate = ({ articles, section, noImage, isConnected, sectionLabel, moreButton, withReadCount, adPath, author, isSubscribed }) => (\n  <>\n    <x.div maxWidth={1220} w='100%' mx='auto' mt={50}>\n      <ArticleDeck articles={articles} section={section} noImage={noImage} moreButton={moreButton} isConnected={isConnected} withReadCount={withReadCount} adPath={adPath} />\n    </x.div>\n  </>\n)\n\nexport class AuthorSectionPage extends (React.Component) {\n  constructor (props) {\n    super(props)\n    props.fetchAuthor(props.authorSlug)\n    props.sectionPageView(props.location.pathname, props.section, props.visitorId, props.sessionId, props.app.firstRender)\n  }\n\n  componentDidUpdate (prevProps) {\n    if (!this.props.hasError || prevProps.authorSlug !== this.props.authorSlug) {\n      if (!this.props.authorSlug || prevProps.authorSlug !== this.props.authorSlug) {\n        this.props.fetchAuthor(this.props.authorSlug)\n      }\n    }\n  }\n\n  render () {\n    const props = this.props\n    const author = this.props.author\n    const Template = props.template || DefaultTemplate\n    setPageType('section')\n    return (\n      <>\n        <x.main px={{ sm: '20px', wAdD: props.app.wallpaperActive ? '0px' : '200px' }} mt={{ sm: '96px', lg: props.app.wallpaperActive ? '0px' : '173px' }} w='100%' maxWidth={{ sm: '1260px', wAdD: props.app.wallpaperActive ? '1220px' : '1660px' }} mx='auto'>\n          <Ad isConnected={props.isConnected} adPath={props.adPath} slotId='interstitial' targeting={{ interstitial: 'interstitial' }} collapseEmptyDiv className='advert' anchor='interstitial' mapping={MAPPINGS.Interstitial} {...FORMATS.interstitial} />\n          <WingBanners isConnected={props.isConnected} adPath={props.adPath} location={props.location} author={props.author} onSlotRenderEndedLeft={props.onSlotRenderEndedLeft} onSlotRenderEndedRight={props.onSlotRenderEndedRight} />\n          {author.author &&\n            <>\n              <x.div w='100%' maxWidth={700} mx='auto' my={50} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' textAlign='center'>\n                <Image image={{ url: ((author.author.imageUrl && !author.author.imageUrl.match('undefined')) ? author.author.imageUrl : '') }} width={240} shape='square' noImage={NoImage} mx='auto' mb={30} borderRadius='100%' w={{ sm: '50px', lg: '127px' }} h={{ sm: '50px', lg: '127px' }} />\n                <x.h1 text='h1' fontFamily='\"PT Serif\", serif'>{author && author.author ? author.author.name : 'Author name'}</x.h1>\n                <x.p mt={10} mb={30}>{author && author.author ? author.author.description : 'Author Description'}</x.p>\n                <x.div display='flex' justifyContent='center' spaceX={10} mx='auto' mb={20} className='author-follow'>\n                  {author.author.relatedLinks?.facebook &&\n                    <x.a target='_blank' rel='noopener noreferrer nofollow' href={author.author.relatedLinks?.facebook}><x.img src={aFB} alt={`Follow ${author.author.name} on Facebook`} /></x.a>}\n                  {/* {author.author.relatedLinks?.twitter &&\n                    <x.a target='_blank' rel='noopener noreferrer nofollow' href={author.author.relatedLinks?.twitter}><x.img src={aT} alt={`Follow ${author.author.name} on Twitter`} /></x.a>\n                  } */}\n                  {author.author.relatedLinks?.linkedin &&\n                    <x.a target='_blank' rel='noopener noreferrer nofollow' href={author.author.relatedLinks?.linkedin}><x.img src={aLI} alt={`Connect with ${author.author.name} on LinkedIn`} /></x.a>}\n                  {author.author.relatedLinks?.instagram &&\n                    <x.a target='_blank' rel='noopener noreferrer nofollow' href={author.author.relatedLinks?.instagram}><x.img src={aI} alt={`Follow ${author.author.name} on Instagram`} /></x.a>}\n                </x.div>\n                <FollowConcept\n                  topic={{ topic: author.author.uuid, type: 'author', name: author.author.name }}\n                  followText='Follow Me'\n                  unFollowText='Unfollow Me'\n                  visitorId={props.visitorId}\n                  sessionId={props.sessionId}\n                  section={'authors/' + props.authorSlug}\n                />\n              </x.div>\n              <Articles\n                {...props} noDiv isConnected loading={Skeleton} section={'authors/' + props.authorSlug} count={24} pageSize={16} withMore moreButtonColour='btn-red' noImage={NoImage} notFound={NotFound} component={Template}\n              />\n            </>}\n          {!author.author && <Skeleton />}\n          <x.div maxWidth={1220} w='100%' mx='auto' mt={20} mb={50} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column'>\n            <Ad isConnected={props.isConnected} adPath={props.adPath} collapseEmptyDiv slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} className='advert' mapping={MAPPINGS.Leaderboard} {...FORMATS.leaderboard} />\n          </x.div>\n        </x.main>\n      </>\n    )\n  }\n}\n\nAuthorSectionPage.defaultProps = {\n  component: DefaultTemplate,\n  section: 'authors/lou-anne-daniels'\n}\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchArticles, fetchMoreArticles, fetchAuthor, sectionPageView }, dispatch)\n\nexport default withRouter(connect((state) => ({ app: state.app, articles: state.articles, author: state.author, visitorId: getVisitorId(state), sessionId: getSessionId(state) }), mapDispatchToProps)(AuthorSectionPage))\n","module.exports = __webpack_public_path__ + \"static/media/sunday-independent.da372855.svg\";","import React, { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { withRouter } from 'react-router'\nimport { x, useDown } from '@xstyled/styled-components'\nimport useHasMounted from '../../lib/useHasMounted'\n\nimport Articles from '../components/Articles'\nimport { fetchArticles, fetchMoreArticles } from '../../store/articles'\nimport { sectionPageView, setPageType } from '../../store/app'\nimport { getVisitorId, getSessionId } from '../../store/article'\nimport WingBanners from '../components/WingBanners'\nimport Ad from '../components/Ad'\nimport {FORMATS, MAPPINGS} from '../components/AdFormats'\nimport ArticleDeck from '../../templates/ArticleDeck'\nimport { BasicPageSkeleton as Skeleton } from '../components/Skeletons'\nimport NoImage from '../../../assets/images/general/no-image.png'\nimport searchGry from '../../../assets/images/icons/search-gry-ico.svg'\nimport search from '../../../assets/images/icons/search-input-wht-ico.svg'\n\nconst DefaultTemplate = ({ articles, section, noImage, isConnected, sectionLabel, moreButton, withReadCount, adPath, sessionId, visitorId }) => (\n  <>\n    <x.div w='100%' maxWidth={1220} mx='auto' my={50} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider'>\n      <x.h1 text='h1' pb={20}>Search results for: {sectionLabel}</x.h1>\n    </x.div>\n    <x.div maxWidth={1220} w='100%' mx='auto' mt={50}>\n      <ArticleDeck articles={articles} section={section} noImage={noImage} moreButton={moreButton} isConnected={isConnected} withReadCount={withReadCount} adPath={adPath} sessionId={sessionId} visitorId={visitorId} />\n    </x.div>\n  </>\n)\n\nconst NotFound = (props) => {\n  return (\n    <x.div w='100%' maxWidth={1220} mx='auto' my={50} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider'>\n      <x.h1 text='h1' pb={20}>No results for: {props.query.replace('?q=', '')}</x.h1>\n      <x.p pb={20}>Try again with different search terms.</x.p>\n    </x.div>\n  )\n}\n\nconst SearchPage = (props) => {\n  const Template = props.template || DefaultTemplate\n  const hasMounted = useHasMounted()\n  const downMd = useDown('md')\n  setPageType('section')\n  useEffect(\n    () => {\n      if (('/' + props.section) === props.location.pathname) {\n        props.sectionPageView(props.location.pathname, props.section, props.visitorId, props.sessionId, props.app.firstRender)\n      }\n    },\n    [props.section]\n  )\n  return (\n    <>\n      <x.main px={{ sm: '20px', wAdD: props.app.wallpaperActive ? '0px' : '200px' }} mt={{ sm: '96px', lg: props.app.wallpaperActive ? '0px' : '173px' }} w='100%' maxWidth={{ sm: '1260px', wAdD: props.app.wallpaperActive ? '1220px' : '1660px' }} mx='auto'>\n        <WingBanners isConnected={props.isConnected} adPath={props.adPath} location={props.location} onSlotRenderEndedLeft={props.onSlotRenderEndedLeft} onSlotRenderEndedRight={props.onSlotRenderEndedRight} />\n        {((props.query === '') || (props.query === '?q=')) &&\n          <>\n            <x.div w='100%' maxWidth={1220} mx='auto' mb={50} mt={{ sm: '50px', lg: '0' }} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider'>\n              <x.h1 text='h1' pb={20}>Search IOL</x.h1>\n            </x.div>\n            <x.form action='/search' method='get' maXwidth={600} w='100%' m='auto'>\n              <x.div flex={{ sm: '100%', lg: '1 1 0' }} display='flex' alignItems='center' justifyContent='center'>\n                <x.input type='search' name='q' bg='ltGrey' p={10} text='medium' w={300} appearance='none' borderRadius={0} placeholder='Search IOL' />\n                <x.button bg='grey' type='submit' w={38} h={38} display='flex' alignItems='center' justifyContent='center'><x.img src={search} w={24} /></x.button>\n              </x.div>\n            </x.form>\n          </>\n        }\n        {props.query && (props.query !== '?q=') &&\n          <Articles\n            {...props} noDiv isConnected={true} loading={Skeleton} section={'search' + props.query} count={24} pageSize={16} withMore moreButtonColour='btn-red' noImage={NoImage} notFound={NotFound} component={Template} />\n        }\n        {hasMounted && !downMd &&\n          <x.div mt={20} mb={50} mx={-20} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column'>\n            <Ad isConnected={props.isConnected} adPath={props.adPath} collapseEmptyDiv slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} className='advert' mapping={MAPPINGS['Leaderboard']} {...FORMATS.leaderboard} />\n          </x.div>\n        }\n      </x.main>\n    </>\n  )\n}\n\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchArticles, fetchMoreArticles, sectionPageView }, dispatch)\n\nexport default withRouter(connect((state) => ({ app: state.app, articles: state.articles, visitorId: getVisitorId(state), sessionId: getSessionId(state) }), mapDispatchToProps)(SearchPage))\n\nSearchPage.propTypes = {\n  query: PropTypes.string\n}\n","module.exports = __webpack_public_path__ + \"static/media/instagram-author.beadaf36.svg\";","module.exports = __webpack_public_path__ + \"static/media/independent-on-saturday.e3e9da2f.svg\";","import React, { Component } from 'react'\nimport { x } from '@xstyled/styled-components'\n\nclass NotFound extends Component {\n  UNSAFE_componentWillMount () {\n    const { staticContext } = this.props\n    if (staticContext) {\n      staticContext.is404 = true\n    }\n  }\n\n  render () {\n    const props = this.props\n    return (\n      <>\n        <x.div w='100%' maxWidth={1220} mx='auto' my={50} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider'>\n          <x.h1 text='h1' pb={20}>404 Page not found</x.h1>\n        </x.div>\n      </>\n    )\n  }\n}\n\nexport default NotFound\n","import React from 'react'\nimport { x } from '@xstyled/styled-components'\nimport StyledLink from '../components/ui/Link'\n\nfunction handleLetterClick (id) {\n  document.getElementById(id).scrollIntoView({\n    behavior: 'smooth'\n  })\n}\n\n//\n// Receives an array of objects which must have name and slug properties\n// Builds up a dictionary with the first letters of names as keys\n//\nconst AlphabeticList = ({ arrayList, sessionId, visitorId, section }) => {\n  const dict = arrayList.reduce((previousTrend, currentTrend, index) => {\n    let firstLetter = currentTrend.name[0].toUpperCase()\n    firstLetter = isNaN(firstLetter) ? firstLetter : '#'\n    if (previousTrend[firstLetter]) {\n      previousTrend[firstLetter].push(currentTrend)\n    } else {\n      previousTrend[firstLetter] = [currentTrend]\n    }\n    return previousTrend\n  }, {})\n  const clickSource = 'Alphabetic List'\n  return (\n    <>\n      <x.div display='flex' flexWrap='wrap' maxWidth={{ sm: '1260px', wAdD: '1660px' }} w='100%' mx='auto' mb={10}>\n        {Object.keys(dict).map(letter => (\n          <x.button key={'#letter-' + letter} onClick={() => handleLetterClick('letter-' + letter)} display='inline-block' p='4px 7px' text='medium' bg={{ _: 'ltGrey', hover: 'divider' }} mt={10} mr={10}>{letter}</x.button>\n        ))}\n      </x.div>\n      {Object.keys(dict).map(letter => (\n        <x.div key={'letter-' + letter} >\n          <x.div id={'letter-' + letter} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20} w='100%' mt={30}>\n            <x.h4>{letter}</x.h4>\n          </x.div>\n          <x.div display='flex' gap={15} alignItems='center' flexDirection='row' flexWrap='wrap' alignItems='flex-start' className='letters'>\n          {dict[letter].map(trend => (\n            <StyledLink key={trend.uuid} to={'/' + trend.slug} color={{ hover: 'red' }} display='block' w={{ sm: 'calc((100% - 15px) / 2)', lg: 'calc((100% - 60px) / 5)' }} sessionId={sessionId} section={section} visitorId={visitorId} source={clickSource}>{trend.name}</StyledLink>\n          ))}\n          </x.div>\n        </x.div>\n      ))}\n    </>\n)}\n\nexport default AlphabeticList\n","import React, { useCallback } from 'react'\nimport { x } from '@xstyled/styled-components'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { setWallPaperActive } from '../../store/app'\nimport Ad from '../components/Ad'\nimport {FORMATS, MAPPINGS} from './AdFormats'\nimport { useLocation } from 'react-router-dom'\n\nconst wallpaperMapping = [\n  [[1500, 0], [1, 1]],\n  [[1400, 0], [1, 1]],\n  [[1024, 0], []],\n  [[640, 0], []],\n  [[0, 0], []]\n]\n\nconst WingBanners = ({ isConnected, adPath, mappingLeft, mappingRight, onSlotRenderEndedLeft, onSlotRenderEndedRight, wallpaperActive, setWallPaperActive }) => {\n  const handleWallpaperLoaded = useCallback((e) => {\n    setWallPaperActive(!e.isEmpty)\n  })\n  const { pathname } = useLocation()\n  return (\n    <>\n      <x.section w='100vw' h='100%' position='absolute' left='50%' mt={20} top='0' transform='translateX(-50%)' zIndex='1' display={wallpaperActive ? 'none' : 'block'} visibility={wallpaperActive ? 'hidden' : 'visible'}>\n        {/* Only request Wallpapers on the home page */}\n        {(pathname === '/' || pathname === '/business' || pathname.startsWith('/business-report')) && process.env.RAZZLE_ENABLE_WALLPAPER &&\n          <Ad isConnected={isConnected} adPath={adPath} collapseEmptyDiv slotId='wallpaper' targeting={{ Wallpaper: '1' }} mapping={wallpaperMapping} className='wallpaper-advert' {...FORMATS.wallpaper} onSlotRenderEnded={handleWallpaperLoaded} />}\n        <x.div position='absolute' left={20} top={0} display={{ wAdM: 'none', wAdD: 'block' }} h='100%'>\n          <x.div position='sticky' top={20}>\n            <Ad isConnected={isConnected} adPath={adPath} slotId='Wingbanner-Left' targeting={{ Wingbanner: 'Left' }} onSlotRenderEnded={onSlotRenderEndedLeft} collapseEmptyDiv mapping={mappingLeft} {...FORMATS.wingbanner} />\n          </x.div>\n        </x.div>\n        <x.div position='absolute' right={20} top={0} display={{ wAdM: 'none', wAdD: 'block' }} h='100%'>\n          <x.div position='sticky' top={20}>\n            <Ad isConnected={isConnected} adPath={adPath} slotId='Wingbanner-Right' targeting={{ Wingbanner: 'Right' }} onSlotRenderEnded={onSlotRenderEndedRight} collapseEmptyDiv mapping={mappingRight} {...FORMATS.wingbanner} />\n          </x.div>\n        </x.div>\n      </x.section>\n    </>\n  )\n}\n\nconst mapStateToProps = (state) => (state.app)\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ setWallPaperActive }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(WingBanners)\n","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { x } from '@xstyled/styled-components'\n\nimport Articles from '../components/Articles'\nimport { fetchArticles, fetchMoreArticles } from '../../store/articles'\nimport { fetchTrendingArticles } from '../../store/trendingArticles'\nimport { fetchTrendsList } from '../../store/trends'\nimport { sectionPageView, setPageType } from '../../store/app'\nimport { getVisitorId, getSessionId } from '../../store/article'\nimport { TrendsPageSkeleton , ArticleFourRowSkeleton } from '../components/Skeletons'\nimport WingBanners from '../components/WingBanners'\nimport NotFound from './NotFound'\nimport NoImage from '../../../assets/images/general/no-image.png'\nimport StyledLink from '../components/ui/Link'\nimport next from '../../../assets/images/icons/gallery-next.svg'\n\nimport AlphabeticList from '../components/AlphabeticList'\nimport ArticleFourRow from '../../templates/ArticleFourRow'\nimport { FORMATS, MAPPINGS } from '../components/AdFormats'\nimport Ad from '../components/Ad'\n\nconst ArticlesTemplate = ({ articles, section, noImage, isConnected, sectionLabel, moreButton, withReadCount, adPath, sessionId, visitorId }) => (\n  <>\n    <x.div position='relative' w='100%' maxWidth={{ sm: '1260px', wAdD: '1660px' }} mx='auto'>\n      <x.h3 text='h4' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}>{sectionLabel}</x.h3>\n      <StyledLink to={section} position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row'>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n    </x.div>\n    <x.div maxWidth={{ sm: '1260px', wAdD: '1660px' }} w='100%' mx='auto' mb={50}>\n      <ArticleFourRow articles={articles} section={section} noImage={noImage} moreButton={moreButton} isConnected={isConnected} withReadCount={withReadCount} adPath={adPath} sessionId={sessionId} visitorId={visitorId} />\n    </x.div>\n  </>\n)\n\nexport class TrendsPage extends Component {\n  constructor(props) {\n    super(props)\n    setPageType('section')\n    props.sectionPageView(props.location.pathname, props.section, props.visitorId, props.sessionId, props.app.firstRender)\n    if (!this.props.trends.hasFetched) {\n      props.fetchTrendingArticles()\n      props.fetchTrendsList()\n    }\n  }\n\n  render() {\n    if (this.props.hasError) {\n      return (\n        <p>Error: {this.props.error}</p>\n      )\n    }\n    if (this.props.trends.hasFetched && this.props.currentTrends && this.props.currentTrends.trendingarticles.hasFetched) {\n      return (\n        <>\n          <x.main px={{ sm: '20px', wAdD: this.props.app.wallpaperActive ? '0px' : '200px' }} mt={{ sm: '96px', lg: this.props.app.wallpaperActive ? '0px' : '173px' }} w='100%' maxWidth={{ sm: '1260px', wAdD: this.props.app.wallpaperActive ? '1220px' : '1660px' }} mx='auto'>\n            <Ad isConnected={this.props.isConnected} adPath={this.props.adPath} slotId='interstitial' targeting={{ interstitial: 'interstitial' }} collapseEmptyDiv className='advert' anchor='interstitial' mapping={MAPPINGS.Interstitial} {...FORMATS.interstitial} />\n            <WingBanners isConnected={this.props.isConnected} adPath={this.props.adPath} location={this.props.location} onSlotRenderEndedLeft={this.props.onSlotRenderEndedLeft} onSlotRenderEndedRight={this.props.onSlotRenderEndedRight} />\n            <x.div w='100%' maxWidth={{ sm: '1260px', wAdD: '1660px' }} pb={10} my={50} mx='auto' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider'>\n              <x.h1 text='h3' mr={{ sm: '0', lg: '50px' }} mb={{ sm: '10', lg: '0' }} w={{ sm: '100%', lg: 'auto' }}>Trending on IOL</x.h1>\n            </x.div>\n            {this.props.currentTrends.trendingarticles.sectionsLabels.map(trend => (\n              <x.div key={trend.uuid}>\n                <Articles\n                  articles={this.props.articles} fetchArticles={this.props.fetchArticles} fetchMoreArticles={this.props.fetchMoreArticles} noDiv isConnected loading={ArticleFourRowSkeleton} section={trend.slug} count={8} pageSize={8} noImage={NoImage} notFound={NotFound} component={ArticlesTemplate}\n                />\n              </x.div>\n            ))}\n            <x.div display='flex' maxWidth={{ sm: '1260px', wAdD: '1660px' }} w='100%' mx='auto' justifyContent='space-between' mt={50}>\n              <x.div borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20} w='100%'>\n                <x.h2>All Trends on IOL</x.h2>\n              </x.div>\n            </x.div>\n            <AlphabeticList arrayList={this.props.trends.trends} sessionId={this.props.sessionId} visitorId={this.props.visitorId} />\n          </x.main>\n        </>\n      )\n    } else {\n      return (\n        <TrendsPageSkeleton />\n      )\n    }\n  }\n}\n\nconst mapStateToProps = (state) => ({ app: state.app, articles: state.articles, trends: state.trends, currentTrends: state.trendingArticles, visitorId: getVisitorId(state), sessionId: getSessionId(state) })\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchTrendsList, fetchArticles, fetchMoreArticles, fetchTrendingArticles, sectionPageView }, dispatch)\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TrendsPage)\n","import React, { Fragment, useEffect } from 'react'\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { withRouter } from 'react-router'\nimport { x, useDown } from '@xstyled/styled-components'\n\nimport Articles from '../components/Articles'\nimport { fetchArticles } from '../../store/articles'\nimport { staticPageView, setPageType } from '../../store/app'\nimport { getVisitorId, getSessionId } from '../../store/article'\nimport WingBanners from '../components/WingBanners'\nimport Ad from '../components/Ad'\nimport {FORMATS, MAPPINGS} from '../components/AdFormats'\nimport ArticleFourRow from '../../templates/ArticleFourRow'\nimport { ArticleFourRowSkeleton as Skeleton } from '../components/Skeletons'\nimport NotFound from './NotFound'\nimport NoImage from '../../../assets/images/general/no-image.png'\nimport next from '../../../assets/images/icons/gallery-next.svg'\nimport StyledLink from '../components/ui/Link'\n\nimport TheStar from '../../../assets/images/newspapers-page/the-star.svg'\nimport CapeArgus from '../../../assets/images/newspapers-page/cape-argus.svg'\nimport WeekendCapeArgus from '../../../assets/images/newspapers-page/weekend-argus.svg'\nimport DailyNews from '../../../assets/images/newspapers-page/daily-news.svg'\nimport CapeTimes from '../../../assets/images/newspapers-page/cape-times.svg'\nimport TheMercury from '../../../assets/images/newspapers-page/the-mercury.svg'\nimport PretoriaNews from '../../../assets/images/newspapers-page/pretoria-news.svg'\nimport BusinessReport from '../../../assets/images/newspapers-page/business-report.svg'\nimport SaturdayStar from '../../../assets/images/newspapers-page/saturday-star.svg'\nimport IndependantSat from '../../../assets/images/newspapers-page/independent-on-saturday.svg'\nimport SundayTribune from '../../../assets/images/newspapers-page/sunday-tribune.svg'\nimport SundayIndependent from '../../../assets/images/newspapers-page/sunday-independent.svg'\n\nconst newspaperTitles = [\n  {\n    name: 'The Star',\n    slug: 'the-star',\n    logo: TheStar\n  },\n  {\n    name: 'Cape Argus',\n    slug: 'capeargus',\n    logo: CapeArgus\n  },\n  {\n    name: 'Weekend Argus',\n    slug: 'weekend-argus',\n    logo: WeekendCapeArgus\n  },\n  {\n    name: 'Daily News',\n    slug: 'dailynews',\n    logo: DailyNews\n  },\n  {\n    name: 'Cape Times',\n    slug: 'capetimes',\n    logo: CapeTimes\n  },\n  {\n    name: 'The Mercury',\n    slug: 'mercury',\n    logo: TheMercury\n  },\n  {\n    name: 'Pretoria News',\n    slug: 'pretoria-news',\n    logo: PretoriaNews\n  },\n  {\n    name: 'Business Report',\n    slug: 'business-report',\n    logo: BusinessReport\n  },\n  {\n    name: 'Saturday Star',\n    slug: 'saturday-star',\n    logo: SaturdayStar\n  },\n  {\n    name: 'Independent on Saturday',\n    slug: 'ios',\n    logo: IndependantSat\n  },\n  {\n    name: 'Sunday Tribune',\n    slug: 'sunday-tribune',\n    logo: SundayTribune\n  },\n  {\n    name: 'Sunday Independent',\n    slug: 'sundayindependent',\n    logo: SundayIndependent\n  }\n]\n\nconst NewspapersPage = (props) => {\n  const downMd = useDown('md')\n  setPageType('section')\n  useEffect(\n    () => {\n      if (('/' + props.section) === props.location.pathname) {\n        props.staticPageView(props.location.pathname, props.visitorId, props.sessionId)\n      }\n    },\n    [props.section]\n  )\n  const clickSource = 'Newspaper Page'\n  return (\n    <>\n      <x.main px={{ sm: '20px', wAdD: props.app.wallpaperActive ? '0px' : '200px' }} mt={{ sm: '96px', lg: props.app.wallpaperActive ? '0px' : '173px' }} w='100%' maxWidth={{ sm: '1260px', wAdD: props.app.wallpaperActive ? '1220px' : '1660px' }} mx='auto'>\n        <Ad isConnected={props.isConnected} adPath={props.adPath} slotId='interstitial' targeting={{ interstitial: 'interstitial' }} collapseEmptyDiv className='advert' anchor='interstitial' mapping={MAPPINGS.Interstitial} {...FORMATS.interstitial} />\n        <WingBanners isConnected={props.isConnected} adPath={props.adPath} location={props.location} onSlotRenderEndedLeft={props.onSlotRenderEndedLeft} onSlotRenderEndedRight={props.onSlotRenderEndedRight} />\n        <x.div maxWidth={1220} w='100%' mx='auto' mt={50}>\n          {newspaperTitles.map(title => (\n            <Fragment key={title.slug}>\n              <x.div position='relative' w='100%' mt={50}>\n                <x.h3 text='h3' borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' pb={10} mb={20}><StyledLink to={'/' + title.slug} visitorId={props.visitorId} sessionId={props.sessionId} section={props.section} source={clickSource}><x.img src={title.logo} title={title.name} h={30} w='auto' /></StyledLink></x.h3>\n                <StyledLink to={'/' + title.slug} position='absolute' top='50%' right='0' transform='translateY(-50%)' textTransform='uppercase' text='small' color={{ hover: 'red' }} display='flex' justifyContent='center' alignItems='center' flexDirection='row' visitorId={props.visitorId} sessionId={props.sessionId} section={props.section} source={clickSource}>More <x.img src={next} w='24px' h='24px' /></StyledLink>\n              </x.div>\n              <Articles\n                {...props} fetchMoreArticles={()=>{}} section={title.slug} count={4} pageSize={4} noImage={NoImage} notFound={NotFound} component={({ articles, section, noImage, isConnected, withReadCount }) => (\n                  <ArticleFourRow articles={articles} loading={Skeleton} section={section} noImage={noImage} isConnected={isConnected} withReadCount={withReadCount} visitorId={props.visitorId} sessionId={props.sessionId} />\n                )}\n              />\n            </Fragment>\n          ))}\n        </x.div>\n        {!downMd &&\n          <x.div mt={20} mb={50} mx={-20} textAlign='center' display='flex' justifyContent='center' alignItems='center' flexDirection='column'>\n            <Ad isConnected={props.isConnected} adPath={props.adPath} collapseEmptyDiv slotId='leaderboard-bot' targeting={{ leaderboard: 'bot' }} mapping={MAPPINGS['Leaderboard']} className='advert' {...FORMATS.leaderboard} />\n          </x.div>\n        }\n      </x.main>\n    </>\n  )\n}\n\nconst mapDispatchToProps = (dispatch) => bindActionCreators({ fetchArticles, staticPageView }, dispatch)\n\nexport default withRouter(connect((state) => ({ app: state.app, articles: state.articles, visitorId: getVisitorId(state), sessionId: getSessionId(state) }), mapDispatchToProps)(NewspapersPage))\n","module.exports = __webpack_public_path__ + \"static/media/business-report.30e3bc20.svg\";","module.exports = __webpack_public_path__ + \"static/media/gallery-next.8ada7682.svg\";","module.exports = __webpack_public_path__ + \"static/media/linkedin-author.819099ae.svg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/the-star.1dd6e595.svg\";","import React from 'react'\nimport { x } from '@xstyled/styled-components'\nimport StyledLink from './ui/Link'\nimport cssfxUnderline from './ui/cssfxUnderline'\nimport { getSectionLabel } from 'ion-sections'\n\nconst SecondaryNav = ({ section, sectionLabel, relatedSections, visitorId, sessionId }) => {\n  const clickSource = 'Secondary Nav'\n  return (\n    <x.div w='100%' maxWidth={1220} mx='auto' my={50} borderWidth='0 0 1px 0' borderStyle='solid' borderColor='divider' visibility={{ sm: 'hidden', lg: 'visible' }} display={{ sm: 'none', lg: 'grid' }} gridTemplateColumns={{ sm: '100%', lg: 'min-content auto' }} gap={{ lg: '40' }} alignItems='baseline' flexWrap='wrap' position='relative' zIndex='1'>\n      <x.h1 text='h4' fontFamily='\"PT Serif\", serif' pb={20} fontWeight='regular' whiteSpace='nowrap'>{sectionLabel || getSectionLabel(section)}</x.h1>\n      <x.nav display='flex' flexDirection='row' gap={20} aria-label=\"Section Navigation\" pb={{ sm: '20', article: '0' }} overflowX='auto'>\n        {relatedSections && relatedSections.map(relatedSection => (\n          <StyledLink key={relatedSection.id} to={'/' + relatedSection.id} text='small' section={section} visitorId={visitorId} sessionId={sessionId} source={clickSource}>\n            <cssfxUnderline.SweepIn hoverBGColor='orange' hoverColor='orange'>{relatedSection.label || getSectionLabel(relatedSection.id)}</cssfxUnderline.SweepIn>\n          </StyledLink>\n          ))}\n      </x.nav>\n    </x.div>\n  )\n}\n\nexport default SecondaryNav\n","module.exports = __webpack_public_path__ + \"static/media/facebook-author.bbb12ffb.svg\";"],"sourceRoot":""}