{"version":3,"sources":["webpack:///./src/components/helpers/Container/index.tsx","webpack:///./src/configs.ts","webpack:///./src/utilities/objects.ts","webpack:///./node_modules/react-reveal/globals.js","webpack:///./node_modules/react-reveal/wrap.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/core/api/models/index.ts","webpack:///./src/core/api/models/endpoints/news.ts","webpack:///./src/core/api/models/endpoints/contact.ts","webpack:///./src/core/api/models/endpoints/calendar.ts","webpack:///./src/core/api/models/endpoints/racehub.ts","webpack:///./src/core/api/models/endpoints/riders.ts","webpack:///./src/core/api/models/endpoints/rankings.ts","webpack:///./src/core/api/models/constants.ts","webpack:///./src/components/common/SvgImage/index.tsx","webpack:///./node_modules/react-reveal/Fade.js","webpack:///./node_modules/react-reveal/RevealBase.js","webpack:///./node_modules/react-reveal/Reveal.js","webpack:///./src/components/common/Button/index.tsx","webpack:///./src/components/common/Hero/index.tsx","webpack:///./src/components/common/ImageWithFocalPoint/index.tsx","webpack:///./src/components/common/Link/index.tsx","webpack:///./src/components/common/Overlay/index.tsx","webpack:///./src/components/common/Stats/index.tsx","webpack:///./src/components/NewsCard/index.tsx","webpack:///./src/core/config/index.ts","webpack:///./src/contexts/Localizations/index.tsx","webpack:///./src/contexts/Localizations/defaultLocalizations.ts","webpack:///./src/components/common/Tag/index.tsx","webpack:///./src/components/PageHeader/index.tsx","webpack:///./src/utilities/events.ts","webpack:///./src/components/common/Image/index.tsx","webpack:///./src/components/common/ImageObject/index.tsx","webpack:///./src/components/FeaturedNewsCard/index.tsx","webpack:///./src/components/common/UnderlineTitle/index.tsx","webpack:///./src/components/common/Content/index.tsx","webpack:///./src/components/common/Contact/index.tsx","webpack:///./src/components/common/RichText/index.tsx","webpack:///./src/hooks/useHabitat.tsx","webpack:///./src/utilities/browser.ts","webpack:///./src/components/common/JumpList/index.tsx","webpack:///./src/breakpoints.ts","webpack:///./src/components/common/ResponsiveTable/index.tsx","webpack:///./src/components/common/DateCategory/index.tsx","webpack:///./src/components/common/Accordion/index.tsx","webpack:///./src/components/common/ImageBasic/index.tsx","webpack:///./src/components/common/Loader/index.tsx","webpack:///./src/components/common/SocialLinks/index.tsx","webpack:///./src/components/common/TagList/index.tsx","webpack:///./src/components/common/Paginaton/index.tsx","webpack:///./src/components/helpers/Grid/index.tsx","webpack:///./src/hooks/UseOutsideAlerter.ts","webpack:///./src/components/NewsList/index.tsx","webpack:///./src/components/common/Paginaton/getCurrentPage.ts","webpack:///./src/modules/NewsListings/index.tsx"],"names":["children","className","CSS_CLASSES","isActive","isOpen","isShowing","navIsShowing","overlayIsShowing","DISCIPLINE","gravel","indoor","para","road","track","trials","other","isIdenticalObject","objectA","objectB","aProps","Object","getOwnPropertyNames","bProps","length","i","propName","insertRule","e","sheet","cssRules","console","warn","hideAll","globalHide","exports","window","removeEventListener","namespace","document","defineProperty","value","cascade","n","t","o","r","s","Math","log","a","exp","animation","name","counter","effectMap","default","ssrFadeout","fadeOutEnabled","ssr","defaults","duration","delay","count","observerMode","raf","setTimeout","disableSsr","arguments","collapseend","ie10","floor","random","navigator","IntersectionObserverEntry","prototype","test","IntersectionObserver","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","querySelectorAll","appVersion","indexOf","performance","timing","domLoading","Date","now","createEvent","initEvent","element","createElement","head","appendChild","addEventListener","_interopRequireDefault","__esModule","_extends","assign","hasOwnProperty","call","when","in","_react2","Children","_RevealBase2","inEffect","outEffect","map","Fragment","module","webpackContext","req","id","webpackContextResolve","__webpack_require__","Error","code","keys","resolve","news","contact","calendar","racehub","riders","rankings","getNews","pageIndex","pageSize","featuredArticleId","newsCategoryId","type","tag","get","apiUrl","params","postMail","entryId","email","phone","message","getUpcoming","discipline","raceCategory","raceType","raceClass","country","year","seasonId","getPast","getResult","eventCode","disciplineCode","raceName","getCwc","downloadCalendar","url","bearerToken","post","responseType","headers","Authorization","getCommentary","eventId","lastCommentId","getCompetitionRiders","page","countryCode","search","getRiders","category","getTeams","getRankings","currentYear","transition","DEFAULT","getFullYear","month","day","transitionDate","getRankingYear","getTechnicalRankings","CRO","ROA","title","reference","ariaHidden","aria-hidden","xlinkHref","_objectWithoutProperties","make","distance","left","p","right","up","l","down","top","u","bottom","big","mirror","d","opposite","_","toString","lookup","f","y","b","v","c","_globals","Fade","out","forever","timeout","style","animationFillMode","reverse","_wrap2","_propTypes","_wrap","propTypes","bool","number","string","_typeof","Symbol","iterator","constructor","_slicedToArray","Array","isArray","next","done","push","return","TypeError","_createClass","enumerable","configurable","writable","key","_react","inOut","shape","func","isRequired","object","collapse","collapseEl","wait","force","disabled","appear","enter","exit","fraction","refProp","innerRef","onReveal","unmountOnExit","mountOnEnter","oneOfType","oneOf","ssrReveal","collapseOnly","contextTypes","transitionGroup","RevealBase","_classCallCheck","this","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","isOn","state","getInitialCollapseStyle","opacity","savedChild","isShown","handleObserve","bind","revealHandler","makeHandler","reveal","resizeHandler","resize","saveRef","create","setPrototypeOf","_inherits","childRef","props","el","observe","setState","hasExited","visibility","dispatchEvent","animationEndTimeout","offsetHeight","parseInt","getComputedStyle","getPropertyValue","getDimensionValue","animationDuration","animationDelay","height","overflow","unlisten","animationName","hasAppeared","animationIterationCount","cloneElement","getChild","animationEnd","invisible","onRevealTimeout","clearTimeout","intersectionRatio","disconnect","observer","threshold","spy","inViewport","animate","listen","context","isMounting","getTop","pageYOffset","innerHeight","split","display","whiteSpace","toArray","round","onExited","only","ref","_defineProperty","h","ticking","hidden","min","isListener","passive","offsetTop","parentNode","offsetParent","Component","defaultProps","displayName","Reveal","durationOut","delayOut","countOut","foreverOut","effect","effectOut","O","_Fade2","text","icon","ariaLabel","showLoader","iconOnly","fullWidth","isProcessing","handleClick","buttonClass","onClick","aria-label","SvgImage","Hero","backLink","colorTheme","image","imageSize","isDarkened","isLanding","isForPage","root","classes","join","Container","href","ImageObject","fitType","useFocalPoint","aspectRatio","aspectRatioMobile","mobileImageTriggerWidth","widthSizes","isLoaded","hasTransparentBackground","focalPoint","setFocalPoint","file","details","xPercentile","x","width","yPercentile","Image","alt","cropTo","xQuadrant","yQuadrant","setFocalArea","isExternal","isButton","iconAfter","buttonType","buttonColour","target","rel","bodyElm","body","handleClose","hasCloseRedirect","containerLess","closeOverlay","classList","remove","handleKeyUp","event","keyCode","add","stats","slice","label","stat","date","thumbnail","viewMoreLink","locale","toLowerCase","Boolean","format","config","env","webSettings","baseUrl","webUrl","storybookApi","localizations","shareConfig","shareUrl","mobileOnly","cookieConfig","cookiePolicy","cookiePolicyExpirationDays","xsrfRequestToken","translationsNotation","LocalizationContext","documentElement","lang","translations","expand","links","heroImage","link","linksContainer","moreLinksContainer","linksTotalWidth","setLinksTotalWidth","hasResizeListener","setHasResizeListener","cutOffIndex","setCutOffIndex","windowResized","setWindowResized","navOffset","setNavOffset","showDropdown","setShowDropdown","handleOverflow","current","containerWidth","clientWidth","handleNavOffset","innerWidth","breakpoints","md","lg","xl","eventType","action","throttled","container","margin","values","childNodes","reduce","total","childElement","offsetWidth","item","data-url","data-title","mobileImageTriggerWidthDefault","aspectRatioMap","undefined","lowQualityWidth","media","data-sizes","data-srcset","widthSize","ceil","onLoad","objectPosition","data-src","defaultWidths","noAnimate","srcset","setSrcset","src","size","index","Number","containerTheme","disableUppercase","intro","content","secondaryLink","downloads","isTitleFloating","download","toReadable","phoneNumber","replace","addr","tel","fax","website","facebook","instagram","twitter","dangerouslySetInnerHTML","__html","updateHabitat","insertUrlParam","includeHash","history","pushState","searchParams","URLSearchParams","location","set","newurl","protocol","host","pathname","hash","path","getUrlParamValue","entries","hashes","val","decodeURIComponent","getAllUrlParams","filter","param","isMobile","scrollIntoView","elemToScrollTo","behaviour","MSInputMethodContext","behavior","isPortrait","items","selectedValue","theme","useScroller","useSearch","disableFirst","withDatePicker","defaultDatePickerValue","onDateChange","includeDates","datePickerLocale","wrapperRef","setValue","setIsOpen","options","setOptions","isClosing","setIsClosing","searchValue","setSearchValue","close","mapSelection","visible","handleChange","optionIndex","preventDefault","optionsSelection","selected","filteredOptions","option","displayText","includes","createOption","role","createSearch","placeholder","searchLabel","onChange","currentTarget","toggle","dateIndex","findIndex","inline","xxs","xs","sm","ml","xxl","xxxl","xxxxl","rows","stickyCol","moreClassName","headerClassName","rowClassName","cellClassName","nested","isExpanded","setExpanded","rowExpandedStates","setRowExpandedStates","some","row","fromEntries","aria-expanded","header","alwaysVisible","hiddenOnMobile","trim","scope","rowIndex","Table","colIndex","toggleExpandRow","colSpan","dateFormat","dateTime","AccordionPanel","activeTab","toggleTab","themeColor","isAsync","isResults","setHeight","asyncContentLoaded","setAsyncContentLoaded","wrapper","calculatePanelHeight","panelElement","ontransitionend","scrollHeight","onBeforeLoad","panels","panelsInState","setPanelsInState","mappedPanels","panel","useIntrinsicHeight","setIsLoaded","list","tags","pageQueryKey","pages","firstPageIndex","lastPageIndex","previousPageIndex","nextPageIndex","currentPage","isFirstPageDisabled","isLastPageDisabled","totalAmountOfPages","isPreviousDisabled","isNextDisabled","maxVisiblePagesMobile","maxVisiblePagesDesktop","maxVisiblePages","componentDidMount","handdleMaxVisiblePages","stopPropagation","getPager","componentDidUpdate","prevProps","totalItems","itemsPerPage","generateVisablePages","maxVisibleOffset","startPage","endPage","from","viewportWidth","changePage","retainRoute","String","generateButton","isDisabled","rootLocation","render","overflowHidden","Column","isFlush","handler","handleClickOutside","contains","categories","featuredArticle","noResultsText","newsListItemsContainer","isLoading","setIsLoading","selectedFilter","setSelectedFilter","setItems","apiError","setApiError","pagination","setPagination","fetchNews","data","findCurrentPage","newsList","isTagPage","latest"],"mappings":"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","file":"habitat.17.component.js","sourcesContent":["import * as React from 'react';\r\nimport './styles.scss';\r\n\r\ninterface ContainerProps {\r\n children: JSX.Element | JSX.Element[];\r\n}\r\n\r\nconst Container = ({ children }: ContainerProps) => (\r\n
\r\n {children}\r\n
\r\n);\r\n\r\nexport default Container;\r\n","import { Discipline, DisciplineCodes } from 'core/typings';\r\n\r\nimport {\r\n CookieConfig,\r\n SharePlatformDetail,\r\n} from './typings/configs';\r\n\r\nexport const COOKIE_CONFIG: CookieConfig = {\r\n cookiePolicy: 'c_policy',\r\n cookiePolicyExpirationDays: 60,\r\n xsrfRequestToken: 'XSRF-REQUEST-TOKEN',\r\n};\r\n\r\nexport const CSS_CLASSES = {\r\n isActive: 'is-open',\r\n isOpen: 'is-open',\r\n isShowing: 'is-showing',\r\n navIsShowing: 'nav-is-showing',\r\n overlayIsShowing: 'overlay-is-showing',\r\n};\r\n\r\nexport const SHARE_PLATFORM_DETAILS: SharePlatformDetail[] = [\r\n {\r\n id: 'facebook',\r\n shareUrl: 'https://www.facebook.com/sharer/sharer.php?u=',\r\n },\r\n {\r\n id: 'twitter',\r\n shareUrl: 'https://twitter.com/intent/tweet?url=',\r\n },\r\n {\r\n id: 'whatsapp',\r\n shareUrl: 'whatsapp://send?text=',\r\n },\r\n {\r\n id: 'copylink',\r\n shareUrl: null,\r\n },\r\n];\r\n\r\nexport const DISCIPLINE: Record = {\r\n 'bmx-freestyle': 'bfr',\r\n 'bmx-racing': 'bmx',\r\n 'cycling-esport': 'ces',\r\n 'cyclo-cross': 'cro',\r\n gravel: 'gra',\r\n indoor: 'ind',\r\n 'mountain-bike': 'mtb',\r\n para: 'par',\r\n road: 'roa',\r\n track: 'pis',\r\n trials: 'tri',\r\n other: 'cpt',\r\n};\r\n","/**\r\n * Checks if two objects are identical\r\n * This is a good method for prop checking in componentDidUpdate\r\n */\r\nconst isIdenticalObject = (objectA: any, objectB: any) => {\r\n const aProps = Object.getOwnPropertyNames(objectA);\r\n const bProps = Object.getOwnPropertyNames(objectB);\r\n\r\n if (aProps.length !== bProps.length) {\r\n return false;\r\n }\r\n\r\n // eslint-disable-next-line no-plusplus\r\n for (let i = 0; i < aProps.length; i++) {\r\n const propName = aProps[i];\r\n if (objectA[propName] !== objectB[propName]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n};\r\n\r\n/**\r\n * Breaks arrar into chunks based on a specified size\r\n */\r\nconst arrChunks = (arr: any[], size: number) => {\r\n if (!Array.isArray(arr)) {\r\n throw new Error('Chunk expects argument one to be type of array.');\r\n }\r\n\r\n const len = {\r\n length: Math.ceil(arr.length / size),\r\n };\r\n\r\n return Array.from(len).map((value, index) => (\r\n arr.slice(index * size, (index * size) + size)\r\n ));\r\n};\r\n\r\n// Put asyncForEach into a module\r\nconst asyncForEach = async (array: any[], callback: Function) => {\r\n // eslint-disable-next-line no-plusplus\r\n for (let index = 0; index < array.length; index++) {\r\n // eslint-disable-next-line no-await-in-loop\r\n await callback(array[index], index, array);\r\n }\r\n};\r\n\r\nexport {\r\n isIdenticalObject,\r\n arrChunks,\r\n asyncForEach,\r\n};\r\n","\"use strict\";function insertRule(e){try{return sheet.insertRule(e,sheet.cssRules.length)}catch(e){console.warn(\"react-reveal - animation failed\")}}function cascade(e,n,t,o,r){var s=Math.log(o),i=Math.log(r),a=(i-s)/(t-n);return Math.exp(s+a*(e-n))}function animation(e){if(!sheet)return\"\";var n=\"@keyframes \"+(name+counter)+\"{\"+e+\"}\",t=effectMap[e];return t?\"\"+name+t:(sheet.insertRule(n,sheet.cssRules.length),effectMap[e]=counter,\"\"+name+counter++)}function hideAll(){globalHide||(exports.globalHide=globalHide=!0,window.removeEventListener(\"scroll\",hideAll,!0),insertRule(\".\"+namespace+\" { opacity: 0; }\"),window.removeEventListener(\"orientationchange\",hideAll,!0),window.document.removeEventListener(\"visibilitychange\",hideAll))}function config(e){var n=e.ssrFadeout;exports.fadeOutEnabled=fadeOutEnabled=n}Object.defineProperty(exports,\"__esModule\",{value:!0}),exports.insertRule=insertRule,exports.cascade=cascade,exports.animation=animation,exports.hideAll=hideAll,exports.default=config;var namespace=exports.namespace=\"react-reveal\",defaults=exports.defaults={duration:1e3,delay:0,count:1},ssr=exports.ssr=!0,observerMode=exports.observerMode=!1,raf=exports.raf=function(e){return window.setTimeout(e,66)},disableSsr=exports.disableSsr=function(){return exports.ssr=ssr=!1},fadeOutEnabled=exports.fadeOutEnabled=!1,ssrFadeout=exports.ssrFadeout=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return exports.fadeOutEnabled=fadeOutEnabled=e},globalHide=exports.globalHide=!1,ie10=exports.ie10=!1,collapseend=exports.collapseend=void 0,counter=1,effectMap={},sheet=!1,name=namespace+\"-\"+Math.floor(1e15*Math.random())+\"-\";if(\"undefined\"!=typeof window&&\"nodejs\"!==window.name&&window.document&&\"undefined\"!=typeof navigator){exports.observerMode=observerMode=\"IntersectionObserver\"in window&&\"IntersectionObserverEntry\"in window&&\"intersectionRatio\"in window.IntersectionObserverEntry.prototype&&/\\{\\s*\\[native code\\]\\s*\\}/.test(\"\"+IntersectionObserver),exports.raf=raf=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||raf,exports.ssr=ssr=window.document.querySelectorAll(\"div[data-reactroot]\").length>0,-1!==navigator.appVersion.indexOf(\"MSIE 10\")&&(exports.ie10=ie10=!0),ssr&&\"performance\"in window&&\"timing\"in window.performance&&\"domContentLoadedEventEnd\"in window.performance.timing&&window.performance.timing.domLoading&&Date.now()-window.performance.timing.domLoading<300&&(exports.ssr=ssr=!1),ssr&&window.setTimeout(disableSsr,1500),observerMode||(exports.collapseend=collapseend=document.createEvent(\"Event\"),collapseend.initEvent(\"collapseend\",!0,!0));var element=document.createElement(\"style\");document.head.appendChild(element),element.sheet&&element.sheet.cssRules&&element.sheet.insertRule&&(sheet=element.sheet,window.addEventListener(\"scroll\",hideAll,!0),window.addEventListener(\"orientationchange\",hideAll,!0),window.document.addEventListener(\"visibilitychange\",hideAll))}","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function wrap(e,t,a,r){return\"in\"in e&&(e.when=e.in),_react2.default.Children.count(r)<2?_react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r})):(r=_react2.default.Children.map(r,function(r){return _react2.default.createElement(_RevealBase2.default,_extends({},e,{inEffect:t,outEffect:a,children:r}))}),\"Fragment\"in _react2.default?_react2.default.createElement(_react2.default.Fragment,null,r):_react2.default.createElement(\"span\",null,r))}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/news/listing`, {\r\n params: {\r\n newsCategoryId,\r\n pageIndex,\r\n pageSize,\r\n type,\r\n featuredArticleId,\r\n tag,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n","import Axios, { AxiosResponse } from 'axios';\r\nimport { config } from '../../../config';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const postMail = async (\r\n entryId: string,\r\n name: string,\r\n email: string,\r\n phone: string,\r\n message: string,\r\n) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/news/listing`, {\r\n params: {\r\n entryId,\r\n name,\r\n email,\r\n phone,\r\n message,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n","import Axios, { AxiosResponse } from 'axios';\r\nimport { config } from '../../../config';\r\nimport {\r\n CalendarApiQueryParams,\r\n CalendarResultParams,\r\n CalendarDownloadApiParams,\r\n} from '../../../typings/api';\r\n\r\nexport const getUpcoming = async ({\r\n discipline,\r\n raceCategory,\r\n raceType,\r\n raceClass,\r\n country,\r\n year,\r\n seasonId,\r\n}: CalendarApiQueryParams) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/calendar/upcoming`, {\r\n params: {\r\n discipline,\r\n raceCategory,\r\n raceType,\r\n raceClass,\r\n country,\r\n year,\r\n seasonId,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n\r\nexport const getPast = async ({\r\n discipline,\r\n raceCategory,\r\n raceType,\r\n raceClass,\r\n country,\r\n seasonId,\r\n year,\r\n}: CalendarApiQueryParams) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/calendar/past`, {\r\n params: {\r\n discipline,\r\n raceCategory,\r\n raceType,\r\n raceClass,\r\n country,\r\n seasonId,\r\n year,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n\r\nexport const getResult = async ({\r\n eventCode,\r\n raceType,\r\n disciplineCode,\r\n raceName,\r\n}: CalendarResultParams) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/calendar/results/${eventCode}`, {\r\n params: {\r\n discipline: disciplineCode,\r\n raceType,\r\n raceName,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n\r\nexport const getCwc = async (discipline: string) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/calendar/cwc`, {\r\n params: { discipline: discipline || '' },\r\n });\r\n\r\n return data;\r\n};\r\n\r\nexport const downloadCalendar = async (\r\n url: string,\r\n bearerToken: string,\r\n params: CalendarDownloadApiParams,\r\n) => {\r\n const response: AxiosResponse = await Axios.post(url, params, {\r\n responseType: 'blob',\r\n headers: { Authorization: `Bearer ${bearerToken}` },\r\n });\r\n\r\n return response;\r\n};\r\n","import Axios, { AxiosResponse } from 'axios';\r\nimport { config } from '../../../config';\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const getCommentary = async (\r\n eventId: number,\r\n lastCommentId: number,\r\n) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/race-hub/commentary/${eventId}`, {\r\n params: {\r\n lastCommentId,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n","import Axios, { AxiosResponse } from 'axios';\r\nimport { config } from '../../../config';\r\nimport { RidersApiParams } from '../../../typings/api';\r\n\r\nexport const getCompetitionRiders = async ({\r\n id,\r\n page,\r\n countryCode,\r\n search,\r\n}: RidersApiParams) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/competition-hub/riders/${id}`, {\r\n params: {\r\n page,\r\n countryCode,\r\n search,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n\r\nexport const getRiders = async ({\r\n page,\r\n countryCode,\r\n discipline,\r\n category,\r\n year,\r\n search,\r\n}: RidersApiParams) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/riders/${discipline}/${year}`, {\r\n params: {\r\n page,\r\n country: countryCode,\r\n category,\r\n search,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n\r\nexport const getTeams = async ({\r\n page,\r\n countryCode,\r\n discipline,\r\n category,\r\n year,\r\n search,\r\n}: RidersApiParams) => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/teams/${discipline}/${year}`, {\r\n params: {\r\n page,\r\n country: countryCode,\r\n category,\r\n search,\r\n },\r\n });\r\n\r\n return data;\r\n};\r\n","import Axios, { AxiosResponse } from 'axios';\r\nimport { config } from '../../../config';\r\nimport { RankingsApiParams } from '../../../typings/api';\r\nimport RANKING_YEAR_TRANSITIONS from '../constants';\r\n\r\nconst getRankingYear = (discipline: string): number => {\r\n const now = new Date();\r\n const transition = RANKING_YEAR_TRANSITIONS[discipline] || RANKING_YEAR_TRANSITIONS.DEFAULT;\r\n\r\n if (transition === RANKING_YEAR_TRANSITIONS.DEFAULT) {\r\n return now.getFullYear();\r\n }\r\n\r\n const { month, day } = transition;\r\n const transitionDate = new Date(now.getFullYear(), month - 1, day);\r\n\r\n return now >= transitionDate ? now.getFullYear() + 1 : now.getFullYear();\r\n};\r\n\r\n// eslint-disable-next-line import/prefer-default-export\r\nexport const getRankings = async ({\r\n discipline,\r\n category,\r\n type,\r\n id,\r\n}: RankingsApiParams) => {\r\n const currentYear = getRankingYear(discipline ?? 'DEFAULT');\r\n const { data }: AxiosResponse = await Axios.get(\r\n `${config.apiUrl}/rankings/details?DisciplineCode=${discipline}&SeasonYear=${currentYear}&Category=${category}&rankingType=${type}&rankingId=${id}`,\r\n );\r\n\r\n return data;\r\n};\r\n\r\nexport const getTechnicalRankings = async () => {\r\n const { data }: AxiosResponse = await Axios.get(`${config.apiUrl}/rankings/technical`);\r\n\r\n return data;\r\n};\r\n","const RANKING_YEAR_TRANSITIONS: Record = {\r\n CRO: { month: 8, day: 1 },\r\n ROA: { month: 10, day: 20 },\r\n DEFAULT: { month: 1, day: 1 },\r\n};\r\n\r\nexport default RANKING_YEAR_TRANSITIONS;\r\n","import * as React from 'react';\r\n\r\ninterface SvgImageProps {\r\n title?: string;\r\n reference: string;\r\n ariaHidden?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst SvgImage = ({\r\n title,\r\n reference,\r\n ariaHidden,\r\n className,\r\n}: SvgImageProps) => (\r\n \r\n {title && (\r\n {title}\r\n )}\r\n \r\n \r\n);\r\n\r\nexport default SvgImage;\r\n","\"use strict\";function _interopRequireDefault(o){return o&&o.__esModule?o:{default:o}}function _objectWithoutProperties(o,e){var r={};for(var t in o)e.indexOf(t)>=0||Object.prototype.hasOwnProperty.call(o,t)&&(r[t]=o[t]);return r}function make(o,e){var r=e.distance,t=e.left,p=e.right,a=e.up,l=e.down,i=e.top,u=e.bottom,n=e.big,s=e.mirror,d=e.opposite,_=(r?r.toString():0)+((t?1:0)|(p?2:0)|(i||l?4:0)|(u||a?8:0)|(s?16:0)|(d?32:0)|(o?64:0)|(n?128:0));if(lookup.hasOwnProperty(_))return lookup[_];var f=t||p||a||l||i||u,y=void 0,b=void 0;if(f){if(!s!=!(o&&d)){var v=[p,t,u,i,l,a];t=v[0],p=v[1],i=v[2],u=v[3],a=v[4],l=v[5]}var c=r||(n?\"2000px\":\"100%\");y=t?\"-\"+c:p?c:\"0\",b=l||i?\"-\"+c:a||u?c:\"0\"}return lookup[_]=(0,_globals.animation)((o?\"to\":\"from\")+\" {opacity: 0;\"+(f?\" transform: translate3d(\"+y+\", \"+b+\", 0);\":\"\")+\"}\\n \"+(o?\"from\":\"to\")+\" {opacity: 1;transform: none;} \"),lookup[_]}function Fade(){var o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_globals.defaults,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=o.children,t=(o.out,o.forever),p=o.timeout,a=o.duration,l=void 0===a?_globals.defaults.duration:a,i=o.delay,u=void 0===i?_globals.defaults.delay:i,n=o.count,s=void 0===n?_globals.defaults.count:n,d=_objectWithoutProperties(o,[\"children\",\"out\",\"forever\",\"timeout\",\"duration\",\"delay\",\"count\"]),_={make:make,duration:void 0===p?l:p,delay:u,forever:t,count:s,style:{animationFillMode:\"both\"},reverse:d.left};return e?(0,_wrap2.default)(d,_,_,r):_}Object.defineProperty(exports,\"__esModule\",{value:!0});var _propTypes=require(\"prop-types\"),_globals=require(\"./globals\"),_wrap=require(\"./wrap\"),_wrap2=_interopRequireDefault(_wrap),propTypes={out:_propTypes.bool,left:_propTypes.bool,right:_propTypes.bool,top:_propTypes.bool,bottom:_propTypes.bool,big:_propTypes.bool,mirror:_propTypes.bool,opposite:_propTypes.bool,duration:_propTypes.number,timeout:_propTypes.number,distance:_propTypes.string,delay:_propTypes.number,count:_propTypes.number,forever:_propTypes.bool},lookup={};Fade.propTypes=propTypes,exports.default=Fade,module.exports=exports.default;","\"use strict\";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}function _inherits(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_slicedToArray=function(){function e(e,t){var i=[],s=!0,o=!1,n=void 0;try{for(var r,a=e[Symbol.iterator]();!(s=(r=a.next()).done)&&(i.push(r.value),!t||i.length!==t);s=!0);}catch(e){o=!0,n=e}finally{try{!s&&a.return&&a.return()}finally{if(o)throw n}}return i}return function(t,i){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,i);throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}}(),_extends=Object.assign||function(e){for(var t=1;t>2,l=a>>1;n=a,r=i.delay+(this.isOn?0:s-a-l),e.style.animationDuration=s-a+(this.isOn?l:-l)+\"ms\",e.style.animationDelay=i.delay+(this.isOn?a-l:0)+\"ms\"}return e.collapse={height:o,transition:\"height \"+n+\"ms ease \"+r+\"ms\",overflow:t.collapseOnly?\"hidden\":void 0},e}},{key:\"animate\",value:function(e){if(this&&this.el&&(this.unlisten(),this.isShown!==this.isOn)){this.isShown=this.isOn;var t=!this.isOn&&e.outEffect,i=e[t?\"outEffect\":\"inEffect\"],s=\"style\"in i&&i.style.animationName||void 0,o=void 0;e.collapseOnly?o={hasAppeared:!0,hasExited:!1,style:{opacity:1}}:((e.outEffect||this.isOn)&&i.make&&(s=i.make),o={hasAppeared:!0,hasExited:!1,collapse:void 0,style:_extends({},i.style,{animationDuration:i.duration+\"ms\",animationDelay:i.delay+\"ms\",animationIterationCount:i.forever?\"infinite\":i.count,opacity:1,animationName:s}),className:i.className}),this.setState(e.collapse?this.collapse(o,e,i):o),t?(this.savedChild=_react2.default.cloneElement(this.getChild()),this.animationEnd(this.invisible,e.cascade,i)):this.savedChild=!1,this.onReveal(e)}}},{key:\"onReveal\",value:function(e){e.onReveal&&this.isOn&&(this.onRevealTimeout&&(this.onRevealTimeout=window.clearTimeout(this.onRevealTimeout)),e.wait?this.onRevealTimeout=window.setTimeout(e.onReveal,e.wait):e.onReveal())}},{key:\"componentWillUnmount\",value:function(){this.unlisten(),_globals.ssr&&(0,_globals.disableSsr)()}},{key:\"handleObserve\",value:function(e,t){_slicedToArray(e,1)[0].intersectionRatio>0&&(t.disconnect(),this.observer=null,this.reveal(this.props,!0))}},{key:\"observe\",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.el&&_globals.observerMode){if(this.observer){if(!t)return;this.observer.disconnect()}else if(t)return;this.observer=new IntersectionObserver(this.handleObserve,{threshold:e.fraction}),this.observer.observe(this.el)}}},{key:\"reveal\",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_globals.globalHide||(0,_globals.hideAll)(),this&&this.el&&(e||(e=this.props),_globals.ssr&&(0,_globals.disableSsr)(),this.isOn&&this.isShown&&void 0!==e.spy?(this.isShown=!1,this.setState({style:{}}),window.setTimeout(function(){return t.reveal(e)},200)):i||this.inViewport(e)||e.force?this.animate(e):_globals.observerMode?this.observe(e):this.listen())}},{key:\"componentDidMount\",value:function(){var e=this;if(this.el&&!this.props.disabled){this.props.collapseOnly||(\"make\"in this.props.inEffect&&this.props.inEffect.make(!1,this.props),void 0!==this.props.when&&this.props.outEffect&&\"make\"in this.props.outEffect&&this.props.outEffect.make(!0,this.props));var i=this.context.transitionGroup,s=i&&!i.isMounting?!(\"enter\"in this.props&&!1===this.props.enter):this.props.appear;return this.isOn&&((void 0!==this.props.when||void 0!==this.props.spy)&&!s||_globals.ssr&&!_globals.fadeOutEnabled&&!this.props.ssrFadeout&&this.props.outEffect&&!this.props.ssrReveal&&t.getTop(this.el)o-window.innerHeight&&s=0||Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}function Reveal(e){function t(e){return e?_?{duration:n,delay:f,count:s,forever:d,className:_,style:{}}:y:i?{duration:void 0===o?u:o,delay:p,count:a,forever:l,className:i,style:{}}:c}var r=e.children,o=e.timeout,u=e.duration,p=e.delay,a=e.count,l=e.forever,n=e.durationOut,f=e.delayOut,s=e.countOut,d=e.foreverOut,i=e.effect,_=e.effectOut,c=e.inEffect,y=e.outEffect,O=_objectWithoutProperties(e,[\"children\",\"timeout\",\"duration\",\"delay\",\"count\",\"forever\",\"durationOut\",\"delayOut\",\"countOut\",\"foreverOut\",\"effect\",\"effectOut\",\"inEffect\",\"outEffect\"]);return(0,_wrap2.default)(O,t(!1),t(!0),r)}Object.defineProperty(exports,\"__esModule\",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t) => void | undefined;\r\n}\r\n\r\nconst Button = ({\r\n type = 'button',\r\n style = 'default',\r\n text,\r\n icon,\r\n ariaLabel,\r\n disabled = false,\r\n showLoader = false,\r\n iconOnly = false,\r\n fullWidth = false,\r\n isProcessing = false,\r\n handleClick,\r\n}: ButtonProps) => {\r\n const buttonClass = `\r\n button\r\n button--${style}\r\n ${text && 'button--has-label'}\r\n ${icon && 'button--has-icon'}\r\n ${iconOnly && 'button--icon-only'}\r\n ${fullWidth && 'button--full-width'}\r\n ${showLoader && 'button--updating'}\r\n ${disabled && 'button--disabled'}\r\n ${isProcessing && 'button--processing'}\r\n `;\r\n\r\n return (\r\n \r\n {icon && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {text && (\r\n
\r\n {text}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Button;\r\n","import * as React from 'react';\r\n\r\nimport Container from '../../helpers/Container';\r\nimport ImageObject from '../ImageObject';\r\nimport SvgImage from '../SvgImage';\r\nimport { HeroBannerProps } from './type';\r\nimport './styles.scss';\r\n\r\nconst HeroBanner = ({\r\n ariaHidden,\r\n backLink,\r\n children,\r\n colorTheme = 'blue',\r\n image,\r\n imageSize = 'half',\r\n isDarkened,\r\n isLanding,\r\n isForPage,\r\n}: HeroBannerProps) => {\r\n const root = 'hero-banner';\r\n const classes = [\r\n root,\r\n `${root}--theme-${colorTheme}`,\r\n ];\r\n if (isDarkened) {\r\n classes.push(`${root}--darkened`);\r\n }\r\n if (image) {\r\n classes.push(`${root}--${imageSize}`);\r\n }\r\n if (!image) {\r\n classes.push(`${root}--no-image`);\r\n }\r\n if (isLanding) {\r\n classes.push(`${root}--landing`);\r\n }\r\n if (isForPage) {\r\n classes.push(`${root}--for-page`);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n {backLink ? (\r\n \r\n \r\n {backLink?.title}\r\n \r\n ) : }\r\n
\r\n\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n
\r\n\r\n {!isLanding && (\r\n
\r\n {image && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default HeroBanner;\r\n","import * as React from 'react';\r\nimport { useEffect, useState } from 'react';\r\nimport { Image as ImageType } from '../../../typings';\r\nimport Image from '../Image';\r\n\r\ninterface ImageWithFocalPointProps {\r\n image: ImageType;\r\n aspectRatio: '2x1' | '16x9' | '3x2' | '4x3' | '1x1' | '4x5' | '2x3' | '6x1' | '6x7-promo';\r\n widthSizes?: string[];\r\n aspectRatioMobile?: '2x1' | '16x9' | '3x2' | '4x3' | '1x1' | '4x5' | '2x3' | '6x1' | '6x7-promo';\r\n mobileImageTriggerWidth?: number;\r\n isLoaded?: Function;\r\n hasTransparentBackground?: boolean;\r\n isDarkened?: boolean;\r\n}\r\n\r\nconst ImageWithFocalPoint = ({\r\n image,\r\n aspectRatio,\r\n aspectRatioMobile,\r\n mobileImageTriggerWidth,\r\n widthSizes,\r\n isLoaded,\r\n hasTransparentBackground = false,\r\n isDarkened = false, // passed as percentage 80 etc.\r\n}: ImageWithFocalPointProps) => {\r\n const [focalPoint, setFocalPoint] = useState(null);\r\n /*\r\n Set crop quadrant area as:\r\n 'center' | 'top' | 'right' | 'left' | 'bottom' | 'top_right' |\r\n 'top_left' | 'bottom_right' | 'bottom_left';\r\n Docs: https://www.contentful.com/developers/docs/references/images-api/#/reference/resizing-&-cropping/specify-focus-area\r\n We get x / y coords in pixels so we calculate percentage and\r\n then which area it falls into from there.\r\n */\r\n const setFocalArea = () => {\r\n if (!image.focalPoint) return 'center';\r\n if (!image.file || !image.file.details) return 'center';\r\n\r\n const xPercentile = (image.focalPoint.x / image.file.details.image.width) * 100;\r\n const yPercentile = (image.focalPoint.y / image.file.details.image.height) * 100;\r\n // eslint-disable-next-line no-nested-ternary\r\n const xQuadrant = xPercentile < 33 ? 'left' : xPercentile > 66 ? 'right' : 'center';\r\n // eslint-disable-next-line no-nested-ternary\r\n const yQuadrant = yPercentile < 33 ? 'top' : xPercentile > 66 ? 'bottom' : 'center';\r\n\r\n if (xQuadrant === 'center') {\r\n return yQuadrant;\r\n }\r\n if (yQuadrant === 'center') {\r\n return xQuadrant;\r\n }\r\n\r\n return `${yQuadrant}_${xQuadrant}`;\r\n };\r\n\r\n useEffect(() => {\r\n if (image.focalPoint && image.file.details) {\r\n const xPercentile = (image.focalPoint.x / image.file.details.image.width) * 100;\r\n const yPercentile = (image.focalPoint.y / image.file.details.image.height) * 100;\r\n setFocalPoint(`${xPercentile}% ${yPercentile}%`);\r\n }\r\n }, [image]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ImageWithFocalPoint;\r\n","import * as React from 'react';\r\nimport SvgImage from '../SvgImage';\r\nimport { Link as LinkType } from '../../../typings';\r\nimport './styles.scss';\r\n\r\nconst Link = ({\r\n title,\r\n url,\r\n isExternal = false,\r\n isButton = false,\r\n icon,\r\n iconAfter,\r\n className = '',\r\n ariaLabel,\r\n buttonType = 'text-link',\r\n buttonColour = 'white',\r\n}: LinkType) => {\r\n const isDisabled = () => (\r\n url === null || url === ''\r\n );\r\n\r\n const root = 'link';\r\n const classes = [root, className];\r\n\r\n if (icon || iconAfter) {\r\n classes.push(`${root}--has-icon`);\r\n }\r\n\r\n if (isButton) {\r\n classes.push('button');\r\n }\r\n\r\n if (isDisabled()) {\r\n classes.push(`${root}--disabled`);\r\n }\r\n\r\n if (buttonType) {\r\n classes.push(buttonType);\r\n }\r\n\r\n if (buttonColour) {\r\n classes.push(`${root}--${buttonColour}`);\r\n }\r\n\r\n return (\r\n \r\n {icon && (\r\n
\r\n \r\n
\r\n )}\r\n {title}\r\n {iconAfter && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Link;\r\n","import * as React from 'react';\r\nimport { useEffect } from 'react';\r\nimport SvgImage from '../SvgImage';\r\nimport { CSS_CLASSES } from '../../../configs';\r\nimport './styles.scss';\r\n\r\nconst bodyElm = document.body;\r\n\r\ninterface OverlayProps {\r\n children: JSX.Element | JSX.Element[];\r\n handleClose: Function;\r\n style?: string;\r\n id?: string;\r\n hasCloseRedirect?: boolean;\r\n containerLess?: boolean;\r\n}\r\n\r\nconst Overlay = ({\r\n children,\r\n handleClose,\r\n style,\r\n id,\r\n hasCloseRedirect,\r\n containerLess,\r\n}: OverlayProps) => {\r\n const closeOverlay = () => {\r\n bodyElm.classList.remove(CSS_CLASSES.overlayIsShowing);\r\n /* timeout to allow animations to complete. */\r\n if (hasCloseRedirect) {\r\n handleClose();\r\n return;\r\n }\r\n setTimeout(() => {\r\n handleClose();\r\n }, 100);\r\n };\r\n\r\n const handleKeyUp = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === 27) {\r\n closeOverlay();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n bodyElm.classList.add(CSS_CLASSES.overlayIsShowing);\r\n /**\r\n * This needs some rework - note quite sure why it's built this way tbh\r\n */\r\n // @ts-ignore\r\n window.addEventListener('keyup', handleKeyUp);\r\n // @ts-ignore\r\n return () => window.removeEventListener('keyup', handleKeyUp);\r\n }, []);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Overlay;\r\n","import * as React from 'react';\r\nimport { Discipline } from '../../../core/typings';\r\nimport './styles.scss';\r\n\r\ntype Stat = {\r\n label: string;\r\n value: string;\r\n};\r\n\r\ninterface StatsProps {\r\n stats: Stat[];\r\n text?: string;\r\n discipline?: Discipline;\r\n}\r\n\r\nconst Stats = ({\r\n stats,\r\n text,\r\n discipline,\r\n}: StatsProps) => {\r\n const head = stats[0];\r\n const body = stats.slice(1);\r\n\r\n return (\r\n
\r\n
\r\n {text && (\r\n
{text}
\r\n )}\r\n\r\n
{head.label}
\r\n
{head.value}
\r\n\r\n {text && (\r\n
{text}
\r\n )}\r\n
\r\n
    \r\n {body.map((stat: Stat) => (\r\n \r\n
  • \r\n
    {stat.label}
    \r\n
    {stat.value}
    \r\n
  • \r\n
    \r\n ))}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Stats;\r\n","import React, { useContext } from 'react';\r\nimport moment from 'moment';\r\nimport LocalizationContext from '../../contexts/Localizations';\r\nimport NewsCardProps from './type';\r\nimport { DateAndCategory, Image, SvgImage } from '../common';\r\nimport './styles.scss';\r\n\r\nconst NewsCard = ({\r\n category,\r\n title,\r\n date,\r\n thumbnail,\r\n type,\r\n url,\r\n viewMoreLink,\r\n}: NewsCardProps) => {\r\n const { locale } = useContext(LocalizationContext);\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {url && (\r\n \r\n {title}\r\n \r\n )}\r\n {!url && (\r\n <>{title}\r\n )}\r\n
\r\n {viewMoreLink && (\r\n \r\n )}\r\n
\r\n {thumbnail && (\r\n
\r\n {Boolean(type && type.toLowerCase() === 'video') && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n )}\r\n {date && (\r\n
\r\n {date && moment(date).locale(locale).format('DD MMM YY')}\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default NewsCard;\r\n","import LocalizationsState from '../typings/localization';\r\n\r\ndeclare const Config: AppConfiguration;\r\n\r\ndeclare const webSettings: {\r\n baseUrl: string;\r\n localizations: LocalizationsState;\r\n};\r\nexport interface AppConfiguration {\r\n env: string;\r\n apiUrl: string;\r\n webUrl: string;\r\n storybookApi?: string;\r\n localizations: LocalizationsState;\r\n}\r\n\r\nexport interface SharePlatformDetail {\r\n key: number;\r\n id: string;\r\n shareUrl: string | null;\r\n mobileOnly: boolean;\r\n}\r\n\r\nexport const config: AppConfiguration = {\r\n env: Config.env,\r\n apiUrl: `${webSettings.baseUrl}${Config.apiUrl}`,\r\n webUrl: webSettings.baseUrl,\r\n storybookApi: Config.storybookApi ? Config.storybookApi : undefined,\r\n localizations: webSettings.localizations,\r\n};\r\n\r\nexport interface CookieConfig {\r\n cookiePolicy: string;\r\n cookiePolicyExpirationDays: number;\r\n xsrfRequestToken: string;\r\n}\r\n\r\nexport const shareConfig: SharePlatformDetail[] = [\r\n {\r\n key: 1,\r\n id: 'facebook',\r\n shareUrl: 'https://www.facebook.com/sharer/sharer.php?u=',\r\n mobileOnly: false,\r\n },\r\n {\r\n key: 2,\r\n id: 'twitter',\r\n shareUrl: 'https://twitter.com/intent/tweet?url=',\r\n mobileOnly: false,\r\n },\r\n {\r\n key: 3,\r\n id: 'whatsapp',\r\n shareUrl: 'whatsapp://send?text=',\r\n mobileOnly: true,\r\n },\r\n {\r\n key: 4,\r\n id: 'copylink',\r\n shareUrl: null,\r\n mobileOnly: false,\r\n },\r\n];\r\n\r\nexport const cookieConfig: CookieConfig = {\r\n cookiePolicy: 'c_policy',\r\n cookiePolicyExpirationDays: 60,\r\n xsrfRequestToken: 'XSRF-REQUEST-TOKEN',\r\n};\r\n","import 'moment/locale/fr';\r\nimport { Notation } from 'notation';\r\nimport { createContext } from 'react';\r\nimport { config } from '../../core/config';\r\nimport LocalizationsState from '../../core/typings/localization';\r\nimport defaultLocalizations from './defaultLocalizations';\r\n\r\ninterface LocalizationsContextType {\r\n locale: string;\r\n translations: LocalizationsState;\r\n setTranslations: (TranslationsState: LocalizationsState) => void;\r\n}\r\n\r\n/**\r\n * Create a notation instance in order to use the notation\r\n * exapand method to mutate the translations to a nested\r\n * object rather than using the dot notation in the keys\r\n * set by the backend. Merge config.localizations with\r\n * defaultLocalizations to avoid missing labels\r\n */\r\nconst translationsNotation = new Notation(\r\n Object.assign(defaultLocalizations, config.localizations),\r\n);\r\n\r\nconst LocalizationContext = createContext(\r\n {\r\n locale: document.documentElement.lang,\r\n translations: translationsNotation.expand().value,\r\n } as LocalizationsContextType,\r\n);\r\n\r\nexport default LocalizationContext;\r\n","export default {\r\n 'cookieBanner.title': 'cookieBanner.title',\r\n 'cookieBanner.acceptText': 'cookieBanner.acceptText',\r\n 'header.forLabel': 'header.forLabel',\r\n 'header.usefulLinksLabel': 'header.usefulLinksLabel',\r\n 'footer.partnersLabel': 'footer.partnersLabel',\r\n 'footer.worldCyclingPartnersLabel': 'footer.worldCyclingPartnersLabel',\r\n 'footer.officialSupplierLabel': 'footer.officialSupplierLabel',\r\n 'relatedContent.title': 'relatedContent.title',\r\n 'competition.racesLabel': 'competition.racesLabel',\r\n 'competition.classLabel': 'competition.classLabel',\r\n 'competition.websiteLabel': 'competition.websiteLabel',\r\n 'competition.emailLabel': 'competition.emailLabel',\r\n 'competition.addressLabel': 'competition.addressLabel',\r\n 'competition.assignmentsLabel': 'competition.assignmentsLabel',\r\n 'competition.appointedByLabel': 'competition.appointedByLabel',\r\n 'calendar.latestLabel': 'calendar.latestLabel',\r\n 'calendar.upcomingLabel': 'calendar.upcomingLabel',\r\n 'calendar.pastLabel': 'calendar.pastLabel',\r\n 'calendar.raceHubLinkLabel': 'calendar.raceHubLinkLabel',\r\n 'calendar.raceCategoryLabel': 'calendar.raceCategoryLabel',\r\n 'calendar.raceTypeLabel': 'calendar.raceTypeLabel',\r\n 'calendar.raceClassLabel': 'calendar.raceClassLabel',\r\n 'calendar.eventTypeLabel': 'calendar.eventTypeLabel',\r\n 'calendar.disciplineLabel': 'calendar.disciplineLabel',\r\n 'calendar.raceYearLabel': 'calendar.raceYearLabel',\r\n 'calendar.searchLabel': 'calendar.searchLabel',\r\n 'calendar.searchText': 'calendar.searchText',\r\n 'calendar.noResults': 'calendar.noResults',\r\n 'calendar.viewMoreLabel': 'calendar.viewMoreLabel',\r\n 'calendar.moreFiltersLabel': 'calendar.moreFiltersLabel',\r\n 'calendar.noSearchResults': 'calendar.noSearchResults',\r\n 'calendar.applyFiltersLabel': 'calendar.applyFiltersLabel',\r\n 'calendar.downloadLabel': 'calendar.downloadLabel',\r\n 'calendar.downloadSelectionLabel': 'calendar.downloadSelectionLabel',\r\n 'calendar.downloadSeasonLabel': 'calendar.downloadSeasonLabel',\r\n 'calendar.downloadHelpText': 'calendar.downloadHelpText',\r\n 'competitionDetails.classLabel': 'competitionDetails.classLabel',\r\n 'competitionDetails.websiteLabel': 'competitionDetails.websiteLabel',\r\n 'competitionDetails.emailLabel': 'competitionDetails.emailLabel',\r\n 'competitionDetails.scheduleTitle': 'competitionDetails.scheduleTitle',\r\n 'competitionDetails.commissiaryTitle': 'competitionDetails.commissiaryTitle',\r\n 'competitionDetails.commissiaryAppointedBy': 'competitionDetails.commissiaryAppointedBy',\r\n 'filters.allFilterText': 'filters.allFilterText',\r\n 'filters.allDisciplinesText': 'filters.allDisciplinesText',\r\n 'filters.allSeasonsText': 'filters.allSeasonsText',\r\n 'filters.allCountriesText': 'filters.allCountriesText',\r\n 'filters.countryLabel': 'filters.countryLabel',\r\n 'filters.seasonLabel': 'filters.seasonLabel',\r\n 'filters.disciplineLabel': 'filters.disciplineLabel',\r\n 'discipline.bmx': 'discipline.bmx',\r\n 'discipline.cpt': 'discipline.cpt',\r\n 'discipline.cro': 'discipline.cro',\r\n 'discipline.ind': 'discipline.ind',\r\n 'discipline.mtb': 'discipline.mtb',\r\n 'discipline.par': 'discipline.par',\r\n 'discipline.pis': 'discipline.pis',\r\n 'discipline.roa': 'discipline.roa',\r\n 'discipline.tri': 'discipline.tri',\r\n 'discipline.gra': 'discipline.gra',\r\n 'discipline.bfr': 'discipline.bfr',\r\n 'discipline.ces': 'discipline.ces',\r\n 'event.dayLabel': 'event.dayLabel',\r\n 'event.liveNowLabel': 'event.liveNowLabel',\r\n 'event.fromLabel': 'event.fromLabel',\r\n 'event.upcomingLabel': 'event.upcomingLabel',\r\n 'event.liveStreamLabel': 'event.liveStreamLabel',\r\n 'event.liveScheduleLabel': 'event.liveScheduleLabel',\r\n 'event.todaysEventsLabel': 'event.todaysEventsLabel',\r\n 'event.watchPlaylistTitle': 'event.watchPlaylistTitle',\r\n 'homepage.liveEventLabel': 'homepage.liveEventLabel',\r\n 'riders.teamCategory': 'riders.teamCategory',\r\n 'riders.searchText': 'riders.searchText',\r\n 'riders.resultsLabel': 'riders.resultsLabel',\r\n 'riders.teamsLabel': 'riders.teamsLabel',\r\n 'riders.ridersLabel': 'riders.ridersLabel',\r\n 'riders.dobLabel': 'riders.dobLabel',\r\n 'riders.nationalityLabel': 'riders.nationalityLabel',\r\n 'riders.sanctionsLabel': 'riders.sanctionsLabel',\r\n 'regulations.overviewLabel': 'regulations.overviewLabel',\r\n 'regulations.rulesInForceLabel': 'regulations.rulesInForceLabel',\r\n 'regulations.upcomingAmendmentsLabel': 'regulations.upcomingAmendmentsLabel',\r\n 'regulations.versionOnLabel': 'regulations.versionOnLabel',\r\n 'regulations.inForceFromLabel': 'regulations.inForceFromLabel',\r\n 'news.latest': 'news.latest',\r\n 'news.noResultsText': 'news.noResultsText',\r\n 'raceHub.commentaryViewMore': 'raceHub.commentaryViewMore',\r\n 'search.searchLabel': 'search.searchLabel',\r\n 'contact.title': 'contact.title',\r\n 'contact.addr': 'contact.addr',\r\n 'contact.tel': 'contact.tel',\r\n 'contact.fax': 'contact.fax',\r\n 'contact.email': 'contact.email',\r\n 'contact.website': 'contact.website',\r\n 'contact.twitter': 'contact.twitter',\r\n 'rankingWidget.title': 'rankingWidget.title',\r\n 'rankingWidget.pointsLabel': 'rankingWidget.pointsLabel',\r\n 'rankingWidget.menLabel': 'rankingWidget.menLabel',\r\n 'rankingWidget.womenLabel': 'rankingWidget.womenLabel',\r\n 'rankingWidget.lastUpdatedLabel': 'rankingWidget.lastUpdatedLabel',\r\n 'rankingWidget.noRankingsLabel': 'rankingWidget.noRankingsLabel',\r\n 'technicalRankings.refineResultsLabel': 'technicalRankings.refineResultsLabel',\r\n 'technicalRankings.searchTeamLabel': 'technicalRankings.searchTeamLabel',\r\n 'technicalRankings.notesLabel': 'technicalRankings.notesLabel',\r\n 'technicalRankings.notesMenDisclaimer': 'technicalRankings.notesMenDisclaimer',\r\n 'technicalRankings.notesWomenDisclaimer': 'technicalRankings.notesWomenDisclaimer',\r\n 'technicalRankings.title': 'technicalRankings.title',\r\n 'technicalRankings.tableTotalLabel': 'technicalRankings.tableTotalLabel',\r\n 'technicalRankings.tableTypeLabel': 'technicalRankings.tableTypeLabel',\r\n};\r\n","import * as React from 'react';\r\nimport './styles.scss';\r\n\r\ninterface TagProps {\r\n text: string;\r\n url: string;\r\n}\r\n\r\nconst Tag = ({ text, url }: TagProps) => (\r\n {text}\r\n);\r\n\r\nexport default Tag;\r\n","import * as React from 'react';\r\nimport { useEffect, useState, useRef } from 'react';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport { Container } from '../helpers/Grid';\r\nimport { SvgImage, ImageObject } from '../common';\r\nimport useOutsideAlerter from '../../hooks/UseOutsideAlerter';\r\nimport PageHeaderProps from './type';\r\nimport trottle from '../../utilities/events';\r\nimport breakpoints from '../../breakpoints';\r\nimport './styles.scss';\r\n\r\nconst navOffsetMobile: number = 80;\r\nconst navOffsetTablet: number = 150;\r\nconst navOffsetLargeTablet: number = 200;\r\nconst navOffsetDesktop: number = 220;\r\n\r\nconst PageHeader = ({\r\n title,\r\n links,\r\n heroImage,\r\n link,\r\n}: PageHeaderProps) => {\r\n const linksContainer = useRef(null);\r\n const moreLinksContainer = useRef(null);\r\n const [linksTotalWidth, setLinksTotalWidth] = useState(0);\r\n const [hasResizeListener, setHasResizeListener] = useState(false);\r\n const [cutOffIndex, setCutOffIndex] = useState(links?.length);\r\n const [windowResized, setWindowResized] = useState(false);\r\n const [navOffset, setNavOffset] = useState(150);\r\n const [showDropdown, setShowDropdown] = useState(false);\r\n\r\n /**\r\n * Calculates the overall width of all child nodes within\r\n * a container element.\r\n * @param container\r\n * @param margin\r\n * @returns Number\r\n */\r\n const calculateWidthOfChildren = (container: HTMLUListElement, margin: number) => (\r\n Object.values(container.childNodes).reduce(\r\n (total, childElement: any) => total + (childElement.offsetWidth + margin), 0,\r\n )\r\n );\r\n\r\n /**\r\n * Handles the offset cut off of the navigation overflow. The offset\r\n * is used to cap the amount of visible link in view and determine\r\n * that we display in the view more menue.\r\n */\r\n const handleOverflow = () => {\r\n const { current } = linksContainer;\r\n\r\n if (current) {\r\n const containerWidth = current.clientWidth;\r\n\r\n if (linksTotalWidth > containerWidth) {\r\n setCutOffIndex((cutOffIndex - 1));\r\n } else if (linksTotalWidth <= (containerWidth - 200)) {\r\n setCutOffIndex((cutOffIndex + 1));\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Change the navOffset based on the current screen-size.\r\n */\r\n const handleNavOffset = () => {\r\n console.log('navOffset', navOffset);\r\n if (window.innerWidth >= breakpoints.md) {\r\n setNavOffset(navOffsetTablet);\r\n } else if (window.innerWidth >= breakpoints.lg) {\r\n setNavOffset(navOffsetLargeTablet);\r\n } else if (window.innerWidth >= breakpoints.xl) {\r\n setNavOffset(navOffsetDesktop);\r\n } else {\r\n setNavOffset(navOffsetMobile);\r\n }\r\n };\r\n\r\n /**\r\n * We observe the linkTotalWidth to trigger the handleOverflow method.\r\n * We also set an event listener to the window to manage the overflow\r\n * when the window is being resized. To make the resize listener as\r\n * smooth as possible we update a state prop (windowResized) so we can\r\n * trigger actions once the resize even has finished. This helps stop\r\n * event propagation. We also use a event trottle for the same reason.\r\n */\r\n useEffect(() => {\r\n if (linksTotalWidth) {\r\n handleOverflow();\r\n handleNavOffset();\r\n if (!hasResizeListener) {\r\n const eventListenerCallback = () => {\r\n setWindowResized(true);\r\n };\r\n\r\n trottle(window, 'resize', 50, eventListenerCallback);\r\n }\r\n }\r\n }, [linksTotalWidth]);\r\n\r\n /**\r\n * Here we are observing windowResized so that we can trigger the\r\n * handleOverflow methods. Once these are triggered we reset\r\n * windowResized.\r\n */\r\n useEffect(() => {\r\n if (windowResized) {\r\n handleOverflow();\r\n setHasResizeListener(true);\r\n setWindowResized(false);\r\n handleNavOffset();\r\n }\r\n }, [windowResized]);\r\n\r\n /**\r\n * Here we are recalculating the overall width of the links in view.\r\n * Each link has a margin-right of 24px that we also add into the\r\n * calulation.\r\n */\r\n useEffect(() => {\r\n if (linksContainer.current) {\r\n const linkMargin: number = 20;\r\n\r\n setLinksTotalWidth(\r\n calculateWidthOfChildren(linksContainer.current, linkMargin),\r\n );\r\n }\r\n }, [linksContainer, cutOffIndex]);\r\n\r\n /**\r\n * Handle dropdown toggle when clicking outside of filter.\r\n */\r\n useOutsideAlerter(moreLinksContainer, () => {\r\n setShowDropdown(false);\r\n });\r\n\r\n return (\r\n \r\n {heroImage && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {link && (\r\n \r\n )}\r\n\r\n \r\n
\r\n {title && (\r\n
\r\n

{title}

\r\n
\r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PageHeader;\r\n","export default (\r\n element: Window | HTMLElement,\r\n eventType: 'resize' | 'click',\r\n delay: number,\r\n action: Function,\r\n) => {\r\n let throttled = false;\r\n\r\n element.addEventListener(eventType, () => {\r\n if (!throttled) {\r\n action();\r\n throttled = true;\r\n setTimeout(() => {\r\n throttled = false;\r\n }, delay);\r\n }\r\n });\r\n};\r\n","/*\r\n Responsive image component.\r\n Details in /README.md\r\n */\r\n\r\nimport * as React from 'react';\r\nimport breakpoints from '../../../breakpoints';\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\r\nimport './styles.scss';\r\n\r\nconst defaultWidth = '1000';\r\nconst defaultLowQualityWidth = '20';\r\nconst defaultAspectRatio = '16x9';\r\nconst mobileImageTriggerWidthDefault = breakpoints.md;\r\nconst imageQuality = 80;\r\n\r\nconst aspectRatioMap = {\r\n '2x1': 0.5,\r\n '16x9': 0.5625,\r\n '3x2': 0.667,\r\n '4x3': 0.75,\r\n '1x1': 1,\r\n '4x5': 1.2,\r\n '2x3': 1.5,\r\n '6x1': 0.59,\r\n '6x7-promo': 1.16,\r\n};\r\n\r\ninterface ImageProps {\r\n url: string;\r\n alt: string;\r\n aspectRatio?: '2x1' | '16x9' | '3x2' | '4x3' | '1x1' | '4x5' | '2x3' | '6x1' | '6x7-promo';\r\n focalPoint?: string | null;\r\n cropTo?: string | undefined;\r\n lowQualityWidth?: string;\r\n widthSizes?: string[];\r\n aspectRatioMobile?: '2x1' | '16x9' | '3x2' | '4x3' | '1x1' | '4x5' | '2x3' | '6x1' | '6x7-promo';\r\n mobileImageTriggerWidth?: number;\r\n isLoaded?: Function;\r\n hasTransparentBackground?: boolean;\r\n isDarkened?: boolean;\r\n}\r\n\r\nconst Image = ({\r\n url,\r\n alt,\r\n aspectRatio = defaultAspectRatio,\r\n aspectRatioMobile,\r\n mobileImageTriggerWidth = mobileImageTriggerWidthDefault,\r\n cropTo = undefined,\r\n widthSizes = [defaultWidth],\r\n lowQualityWidth = defaultLowQualityWidth,\r\n isLoaded,\r\n hasTransparentBackground = false,\r\n focalPoint,\r\n isDarkened = false, // passed as percentage 80 etc.\r\n}: ImageProps) => {\r\n const setAspectRatio = () => {\r\n if (!aspectRatioMobile) return aspectRatio;\r\n return window.innerWidth < mobileImageTriggerWidth ? aspectRatioMobile : aspectRatio;\r\n };\r\n\r\n return (\r\n \r\n {aspectRatioMobile && (\r\n (\r\n // @ts-ignore\r\n `${url}?fit=thumb&q=${imageQuality}&f=${cropTo || ''}&fl=progressive&w=${widthSize}&h=${Math.ceil(parseInt(widthSize, 10) * aspectRatioMap[aspectRatioMobile])} ${widthSize}w`\r\n ))\r\n }\r\n />\r\n )}\r\n\r\n {\r\n if (isLoaded) {\r\n isLoaded();\r\n }\r\n }}\r\n data-sizes=\"auto\"\r\n style={{ objectPosition: focalPoint || 'initial' }}\r\n // @ts-ignore\r\n data-src={`${url}?fit=thumb&w=${lowQualityWidth}&f=${cropTo || ''}&h=${Math.ceil(parseInt(lowQualityWidth, 10) * aspectRatioMap[setAspectRatio()])}`}\r\n data-srcset={\r\n widthSizes.map((widthSize) => (\r\n // @ts-ignore\r\n `${url}?fit=thumb&q=${imageQuality}&f=${cropTo || ''}&fl=progressive&w=${widthSize}&h=${Math.ceil(parseInt(widthSize, 10) * aspectRatioMap[aspectRatio])} ${widthSize}w`\r\n ))\r\n }\r\n className={`lazyload blur-up ${isDarkened ? 'has-opacity' : ''}`}\r\n alt={alt || 'image with no description'}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default Image;\r\n","import * as React from 'react';\r\nimport { useState, useEffect } from 'react';\r\nimport { Image as ImageType } from '../../../typings';\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\r\nimport './styles.scss';\r\n\r\nconst defaultWidths = ['400', '800', '1200', '2400', '4000'];\r\n\r\nconst aspectRatioMap: Record = {\r\n '2x1': 0.5,\r\n '16x9': 0.5625,\r\n '3x2': 0.667,\r\n '4x3': 0.75,\r\n '1x1': 1,\r\n '4x5': 1.2,\r\n '2x3': 1.5,\r\n};\r\n\r\ninterface ImageObjectProps {\r\n image: ImageType;\r\n widthSizes?: string[];\r\n isDarkened?: boolean;\r\n useFocalPoint?: boolean;\r\n fitType?: 'contain' | 'cover'\r\n isLoaded?: () => void;\r\n noAnimate?: boolean;\r\n aspectRatio?: string;\r\n}\r\n\r\ninterface FocalStyle {\r\n objectPosition: string;\r\n}\r\n\r\nconst ImageObject = ({\r\n image,\r\n widthSizes = defaultWidths,\r\n aspectRatio,\r\n isDarkened = false,\r\n useFocalPoint = true,\r\n fitType = 'cover',\r\n isLoaded,\r\n noAnimate,\r\n}: ImageObjectProps) => {\r\n const [focalPoint, setFocalPoint] = useState();\r\n const [srcset, setSrcset] = useState();\r\n\r\n useEffect(() => {\r\n if (image.focalPoint) {\r\n // @ts-ignore\r\n const xPercentile = (image.focalPoint.x / image.file.details?.image?.width) * 100;\r\n // @ts-ignore\r\n const yPercentile = (image.focalPoint.y / image.file.details?.image?.height) * 100;\r\n setFocalPoint({\r\n objectPosition: `${xPercentile}% ${yPercentile}%`,\r\n });\r\n }\r\n\r\n const src = widthSizes\r\n .map((size: string, index: number) => `${image.file.url}?fit=thumb&fl=progressive&w=${size}&h=${aspectRatio ? Math.ceil(Number(widthSizes[index]) * aspectRatioMap[aspectRatio]) : ''} ${size}w`);\r\n\r\n setSrcset(src.join(','));\r\n }, [image]);\r\n\r\n const classes = [\r\n 'image-object',\r\n `image-object--${fitType}`,\r\n 'lazyload',\r\n ];\r\n if (isDarkened) {\r\n classes.push('has-opacity');\r\n }\r\n if (noAnimate) {\r\n classes.push('image-object--no-animate');\r\n }\r\n\r\n return (\r\n isLoaded?.()}\r\n data-sizes=\"auto\"\r\n data-srcset={srcset}\r\n data-src={`${image.file.url}?fit=thumb&fl=progressive&w=${widthSizes[0]}&h=${aspectRatio ? Math.ceil(Number(widthSizes[0]) * aspectRatioMap[aspectRatio]) : ''}`}\r\n className={classes.join(' ')}\r\n alt={image.title ? image.title : 'image with no description'}\r\n style={useFocalPoint ? focalPoint : undefined}\r\n />\r\n );\r\n};\r\n\r\nexport default ImageObject;\r\n","import * as React from 'react';\r\nimport NewsCard from '../NewsCard';\r\nimport NewsCardProps from '../NewsCard/type';\r\nimport './styles.scss';\r\n\r\nconst FeaturedArticleCard = ({\r\n category,\r\n title,\r\n date,\r\n thumbnail,\r\n type,\r\n url,\r\n viewMoreLink,\r\n}: NewsCardProps) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport default FeaturedArticleCard;\r\n","import * as React from 'react';\r\nimport './styles.scss';\r\n\r\ninterface UnderlineTitleProps {\r\n title: string;\r\n containerTheme: string;\r\n className?: string;\r\n disableUppercase?: boolean;\r\n}\r\n\r\nconst UnderlineTitle = ({\r\n title,\r\n containerTheme,\r\n className,\r\n disableUppercase,\r\n}: UnderlineTitleProps) => (\r\n

\r\n {title}\r\n

\r\n);\r\n\r\nexport default UnderlineTitle;\r\n","import * as React from 'react';\r\nimport { isEmpty } from 'lodash';\r\nimport useHabitat from '../../../hooks/useHabitat';\r\nimport './styles.scss';\r\nimport SvgImage from '../SvgImage';\r\nimport Contact from '../Contact';\r\nimport RichText from '../RichText';\r\nimport UnderlineTitle from '../UnderlineTitle';\r\nimport { Link, Contacts } from '../../../typings';\r\n\r\ninterface ContentProps {\r\n title?: string;\r\n intro?: string;\r\n contact?: Contacts;\r\n content?: string;\r\n link?: Link;\r\n secondaryLink?: Link;\r\n downloads?: Link[];\r\n containerTheme?: string;\r\n isTitleFloating?: boolean;\r\n disableUppercase?: boolean;\r\n}\r\n\r\nconst Content = ({\r\n title,\r\n intro,\r\n contact,\r\n content,\r\n link,\r\n secondaryLink,\r\n downloads,\r\n containerTheme = 'white',\r\n isTitleFloating,\r\n disableUppercase,\r\n}: ContentProps) => {\r\n useHabitat();\r\n\r\n return (\r\n
\r\n {Boolean(title || contact) && (\r\n
\r\n {title && (\r\n \r\n )}\r\n\r\n {(contact && !isEmpty(contact)) && (\r\n \r\n )}\r\n
\r\n )}\r\n\r\n {!title && (\r\n <>\r\n {intro && (!contact || isEmpty(contact)) && (!title\r\n ?

{intro}

\r\n :

{intro}

)}\r\n \r\n )}\r\n
\r\n {title && (\r\n <>\r\n {intro && (contact || !isEmpty(contact)) && (title\r\n ?

{intro}

\r\n :

{intro}

)}\r\n \r\n )}\r\n\r\n {content && (\r\n \r\n )}\r\n\r\n {downloads && (\r\n
    \r\n {downloads.map((download) => (\r\n
  • \r\n \r\n {download.title}\r\n \r\n \r\n
  • \r\n ))}\r\n
\r\n )}\r\n\r\n {link && (\r\n /* eslint-disable-next-line react/jsx-no-target-blank */\r\n \r\n {link.title}\r\n \r\n \r\n )}\r\n {secondaryLink && (\r\n /* eslint-disable-next-line react/jsx-no-target-blank */\r\n \r\n {secondaryLink.title}\r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Content;\r\n","import * as React from 'react';\r\nimport { useContext } from 'react';\r\nimport SvgImage from '../SvgImage';\r\nimport { Contacts } from '../../../typings';\r\nimport LocalizationContext from '../../../contexts/Localizations';\r\nimport './styles.scss';\r\n\r\ninterface ContactProps {\r\n contact: Contacts;\r\n containerTheme: string;\r\n}\r\n\r\nconst Contact = ({\r\n contact,\r\n containerTheme,\r\n}: ContactProps) => {\r\n const { translations } = useContext(LocalizationContext);\r\n // Adds space between every characters apart from (0)\r\n // Required for screen readers to read phone numbers properly and include all character\r\n const toReadable = (phoneNumber: string): string => phoneNumber\r\n .split(' ')\r\n .join('')\r\n .split('')\r\n .join(' ')\r\n .replace('( 0 )', '(0)');\r\n\r\n return (\r\n
\r\n

\r\n {translations.contact.title}\r\n

\r\n\r\n
    \r\n {(contact.addr && contact.addr.length) && (\r\n
  • \r\n \r\n {`${translations.contact.addr}:`}\r\n \r\n {contact.addr}\r\n
  • \r\n )}\r\n {(contact.tel && contact.tel.length) && (\r\n
  • \r\n \r\n {`${translations.contact.tel}:`}\r\n \r\n \r\n {contact.tel}\r\n \r\n
  • \r\n )}\r\n {(contact.fax && contact.fax.length) && (\r\n
  • \r\n \r\n {`${translations.contact.fax}:`}\r\n \r\n \r\n {contact.fax}\r\n \r\n
  • \r\n )}\r\n {(contact.email && contact.email.length) && (\r\n
  • \r\n \r\n {`${translations.contact.email}:`}\r\n \r\n \r\n {contact.email}\r\n \r\n
  • \r\n )}\r\n {(contact.website && contact.website.length) && (\r\n
  • \r\n \r\n {`${translations.contact.website}:`}\r\n \r\n \r\n {contact.website}\r\n \r\n
  • \r\n )}\r\n
  • \r\n
      \r\n {(contact.facebook && contact.facebook.length) && (\r\n
    • \r\n \r\n \r\n \r\n
    • \r\n )}\r\n {(contact.instagram && contact.instagram.length) && (\r\n
    • \r\n \r\n \r\n \r\n
    • \r\n )}\r\n {(contact.twitter && contact.twitter.length) && (\r\n
    • \r\n \r\n \r\n \r\n
    • \r\n )}\r\n
    \r\n
  • \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Contact;\r\n","import * as React from 'react';\r\nimport './styles.scss';\r\n\r\ninterface RichTextProps {\r\n content: string;\r\n containerTheme: string;\r\n}\r\n\r\nconst RichText = ({\r\n content,\r\n containerTheme,\r\n}: RichTextProps) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport default RichText;\r\n","import { useEffect } from 'react';\r\n\r\nconst useHabitat = (): Function => {\r\n useEffect(() => {\r\n if (window.updateHabitat) {\r\n window.updateHabitat();\r\n }\r\n }, []);\r\n\r\n return window.updateHabitat as Function;\r\n};\r\n\r\nexport default useHabitat;\r\n","import { Image } from '../typings/index';\r\n\r\ndeclare global {\r\n interface Document {\r\n documentMode?: any;\r\n }\r\n}\r\n\r\nconst isIE = () => (\r\n !!window.MSInputMethodContext && !!document.documentMode\r\n);\r\n\r\n// Insert url param\r\nconst insertUrlParam = (key: string, value: string, includeHash?: boolean) => {\r\n // @ts-ignore\r\n if (history.pushState) {\r\n const searchParams = new URLSearchParams(window.location.search);\r\n searchParams.set(key, value);\r\n let newurl = `${window.location.protocol}//${window.location.host}${window.location.pathname}?${searchParams.toString()}`;\r\n if (includeHash && window.location.hash) {\r\n newurl = `${newurl}${window.location.hash}`;\r\n }\r\n window.history.pushState({ path: newurl }, '', newurl);\r\n }\r\n};\r\n\r\n// Removes all query string entires\r\nconst removeAllQueryStrings = () => {\r\n const url = window.location.href.replace(/(\\?.*)|(@.*)/g, '');\r\n window.history.pushState({ path: url }, '', url);\r\n};\r\n\r\n// Get All url params\r\nconst getAllUrlParams = (search: string) => {\r\n const hashes = search.slice(search.indexOf('?') + 1).split('&');\r\n const params: { [key: string]: string } = {};\r\n hashes.map((hash) => {\r\n const [key, val] = hash.split('=');\r\n params[key] = decodeURIComponent(val);\r\n return true;\r\n });\r\n return params;\r\n};\r\n\r\n// Get param value\r\nconst getUrlParamValue = (key: any) => {\r\n const search = Object.entries(getAllUrlParams(window.location.href)).filter((param) => (\r\n param[0] === key\r\n ));\r\n return search[0] ? search[0][1] : null;\r\n};\r\n\r\n// Script exists in head of document.\r\n// Taken from: https://github.com/kaimallea/isMobile\r\nconst isMobile = () => (\r\n /Mobi/.test(navigator.userAgent)\r\n);\r\n\r\nconst scrollIntoView = (elemToScrollTo: HTMLElement, behaviour: ScrollBehavior) => {\r\n if (!isIE()) {\r\n elemToScrollTo.scrollIntoView({\r\n behavior: behaviour,\r\n });\r\n }\r\n};\r\n\r\nconst isPortrait = (image: Image) => (\r\n // @ts-ignore\r\n (image.file.details.image.height > image.file.details.image.width)\r\n);\r\n\r\nconst elementInViewport = (el: any) => {\r\n let top = el.offsetTop;\r\n let left = el.offsetLeft;\r\n const width = el.offsetWidth;\r\n const height = el.offsetHeight;\r\n\r\n while (el.offsetParent) {\r\n // eslint-disable-next-line no-param-reassign\r\n el = el.offsetParent;\r\n top += el.offsetTop;\r\n left += el.offsetLeft;\r\n }\r\n\r\n return (\r\n top >= window.pageYOffset\r\n && left >= window.pageXOffset\r\n && (top + height) <= (window.pageYOffset + window.innerHeight)\r\n && (left + width) <= (window.pageXOffset + window.innerWidth)\r\n );\r\n};\r\n\r\nconst toDataURL = (url: string, callback: Function) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.onload = () => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => {\r\n if (callback) {\r\n callback(reader.result);\r\n }\r\n };\r\n reader.readAsDataURL(xhr.response);\r\n };\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n};\r\n\r\nexport {\r\n insertUrlParam,\r\n getAllUrlParams,\r\n getUrlParamValue,\r\n removeAllQueryStrings,\r\n isMobile,\r\n scrollIntoView,\r\n isPortrait,\r\n elementInViewport,\r\n toDataURL,\r\n};\r\n","import * as React from 'react';\r\nimport {\r\n useContext, useState, useEffect, useRef,\r\n} from 'react';\r\nimport moment from 'moment';\r\nimport { fr } from 'date-fns/locale/fr';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport PerfectScrollbar from 'react-perfect-scrollbar';\r\nimport DatePicker, { registerLocale } from 'react-datepicker';\r\nimport useOutsideAlerter from '../../../hooks/UseOutsideAlerter';\r\nimport LocalizationContext from '../../../contexts/Localizations';\r\nimport SvgImage from '../SvgImage';\r\nimport './styles.scss';\r\n\r\nregisterLocale('fr', fr);\r\n\r\ninterface JumpListOption {\r\n displayText: string;\r\n value: string;\r\n selectedValue?: boolean;\r\n visible?: boolean;\r\n name?: string;\r\n}\r\n\r\ninterface JumpListProps {\r\n items: JumpListOption[];\r\n selectedValue?: string;\r\n action: Function;\r\n icon?: string;\r\n theme?: string;\r\n useScroller?: boolean;\r\n useSearch?: boolean;\r\n name?: string;\r\n disableFirst?: boolean;\r\n withDatePicker?: boolean;\r\n defaultDatePickerValue?: Date;\r\n onDateChange?: Function;\r\n includeDates?: Date[];\r\n datePickerLocale?: string;\r\n}\r\n\r\nconst JumpList = ({\r\n items,\r\n action,\r\n selectedValue,\r\n icon = 'icon-arrow-down',\r\n theme = 'default',\r\n useScroller = false,\r\n useSearch = false,\r\n name,\r\n disableFirst = false,\r\n withDatePicker = false,\r\n defaultDatePickerValue,\r\n onDateChange,\r\n includeDates,\r\n datePickerLocale,\r\n}: JumpListProps) => {\r\n const wrapperRef = useRef>(null);\r\n const [value, setValue] = useState();\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [options, setOptions] = useState();\r\n const [isClosing, setIsClosing] = useState(false);\r\n const [searchValue, setSearchValue] = useState(null);\r\n const { translations } = useContext(LocalizationContext);\r\n\r\n /**\r\n * Closes the open view\r\n */\r\n const close = () => {\r\n setIsClosing(true);\r\n setTimeout(() => {\r\n setIsClosing(false);\r\n setIsOpen(false);\r\n if (useSearch) {\r\n setSearchValue(null);\r\n }\r\n }, useSearch ? 0 : 300);\r\n };\r\n\r\n /**\r\n * This will tigger the close method when the user\r\n * interacts outside wrapperRef\r\n */\r\n useOutsideAlerter(wrapperRef, () => {\r\n close();\r\n });\r\n\r\n /**\r\n * Toggle open/close\r\n * @param event\r\n * @returns\r\n */\r\n const toggle = (event?: React.MouseEvent) => {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n\r\n if (disableFirst) {\r\n return null;\r\n }\r\n\r\n if (isOpen) {\r\n return close();\r\n }\r\n\r\n return setIsOpen(!isOpen);\r\n };\r\n\r\n /**\r\n * This remaps the options base of the items and selectedValue\r\n * props.\r\n * @returns\r\n */\r\n const mapSelection = () => items.map((item, index) => ({\r\n ...item,\r\n name,\r\n selectedValue: item.value === selectedValue,\r\n visible: !(withDatePicker && defaultDatePickerValue && index > 4),\r\n }));\r\n\r\n /**\r\n * This handels the change event on the drop down.\r\n * @param event\r\n * @param optionIndex\r\n */\r\n const handleChange = (event: React.MouseEvent, optionIndex: number) => {\r\n event.preventDefault();\r\n setOptions(mapSelection());\r\n setValue(options ? options[optionIndex] : undefined);\r\n close();\r\n\r\n if (action && typeof action === 'function') {\r\n action(options ? options[optionIndex] : undefined);\r\n }\r\n };\r\n\r\n /**\r\n * Component has mounted hook\r\n */\r\n useEffect(() => {\r\n if (items.length) {\r\n const optionsSelection = mapSelection();\r\n setOptions(optionsSelection);\r\n }\r\n }, []);\r\n\r\n /**\r\n * Observe the options state to determine the selected value.\r\n * If a new value is selected with will trigger and setValue in state.\r\n */\r\n useEffect(() => {\r\n if (options) {\r\n const selected: JumpListOption = options.filter(\r\n (item: JumpListOption) => item.value === selectedValue,\r\n )[0];\r\n\r\n setValue(selected || options[0]);\r\n }\r\n }, [options, selectedValue]);\r\n\r\n /**\r\n * Observe the search value term to filter down the visible\r\n * option in the list. This is only applicable if the user\r\n * has turned on useSearch in props.\r\n */\r\n useEffect(() => {\r\n if (options) {\r\n if (searchValue === null || searchValue === '') {\r\n setOptions(mapSelection());\r\n } else {\r\n const filteredOptions: JumpListOption[] = options?.map((option) => ({\r\n ...option,\r\n visible: option.displayText.toLowerCase().includes(searchValue.toLowerCase()),\r\n }));\r\n\r\n setOptions(filteredOptions);\r\n }\r\n }\r\n }, [searchValue, selectedValue, items]);\r\n\r\n /**\r\n * Creates a list option\r\n * @param option\r\n * @param index\r\n * @returns\r\n */\r\n const createOption = (option: JumpListOption, index: number) => (\r\n
  • \r\n handleChange(event, index)}>\r\n {option.displayText}\r\n \r\n
  • \r\n );\r\n\r\n /**\r\n * Creates the search JSX controls. This is only applicable\r\n * if the user has turned on useSearch in props.\r\n * @returns\r\n */\r\n const createSearch = () => (\r\n
    \r\n (\r\n setSearchValue((event.currentTarget as HTMLInputElement).value)\r\n )}\r\n />\r\n {Boolean(!options?.filter((option) => option.visible).length) && (\r\n
    \r\n {`No selection found for ${searchValue}.`}\r\n {/* Needs Laguage label */}\r\n
    \r\n )}\r\n
    \r\n );\r\n\r\n /**\r\n * Creates the option list.\r\n * @returns\r\n */\r\n const createOptions = () => {\r\n if (useScroller) {\r\n return (\r\n
    \r\n {useSearch && createSearch()}\r\n \r\n <>\r\n {options && (\r\n
      \r\n {options?.map((option, key) => option.visible && createOption(option, key))}\r\n
    \r\n )}\r\n\r\n {withDatePicker && defaultDatePickerValue && (\r\n {\r\n if (onDateChange) {\r\n const dateIndex = options?.findIndex((option) => {\r\n const optionMoment = moment(option.value).format('DD-MM-YYYY');\r\n const selectedMoment = moment(date).format('DD-MM-YYYY');\r\n\r\n return optionMoment === selectedMoment;\r\n });\r\n\r\n if (dateIndex !== undefined && dateIndex >= 0) {\r\n onDateChange(date);\r\n\r\n handleChange(event, dateIndex);\r\n }\r\n }\r\n }}\r\n includeDates={includeDates}\r\n inline\r\n locale={datePickerLocale}\r\n />\r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n {useSearch && createSearch()}\r\n {options && (\r\n
      \r\n {options?.map((option, key) => option.visible && createOption(option, key))}\r\n
    \r\n )}\r\n\r\n {withDatePicker && defaultDatePickerValue && (\r\n \r\n )}\r\n
    \r\n );\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {value && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n {createOptions()}\r\n \r\n );\r\n};\r\n\r\nexport default JumpList;\r\n","export default {\r\n xxs: 375,\r\n xs: 450,\r\n sm: 620,\r\n md: 768,\r\n ml: 870,\r\n lg: 1024,\r\n xl: 1300,\r\n xxl: 1440,\r\n xxxl: 1740,\r\n xxxxl: 1900,\r\n};\r\n","/* eslint-disable react/no-array-index-key */\r\nimport React, { useState, useEffect, Fragment } from 'react';\r\nimport SvgImage from '../SvgImage';\r\nimport './styles.scss';\r\n\r\ninterface ResponsiveTableProps {\r\n headers: {\r\n alwaysVisible: boolean;\r\n key: string;\r\n label: string;\r\n hiddenOnMobile?: boolean;\r\n }[];\r\n rows: {\r\n row: Record;\r\n Table?: JSX.Element;\r\n }[];\r\n stickyCol?: JSX.Element[];\r\n className?: string;\r\n moreClassName?: string;\r\n headerClassName?: string;\r\n rowClassName?: string;\r\n cellClassName?: string;\r\n nested?: boolean;\r\n}\r\n\r\nconst ResponsiveTable = ({\r\n headers,\r\n rows,\r\n stickyCol,\r\n className,\r\n moreClassName,\r\n headerClassName,\r\n rowClassName,\r\n cellClassName,\r\n nested,\r\n}: ResponsiveTableProps) => {\r\n const [isExpanded, setExpanded] = useState(false);\r\n const [rowExpandedStates, setRowExpandedStates] = useState>({});\r\n\r\n const toggleExpandTable = () => {\r\n setExpanded(!isExpanded);\r\n };\r\n\r\n const toggleExpandRow = (rowIndex: number) => {\r\n setRowExpandedStates({\r\n ...rowExpandedStates,\r\n [rowIndex]: !rowExpandedStates[rowIndex],\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (rows.some((row) => row.Table)) {\r\n setRowExpandedStates(Object.fromEntries(Object.entries(rows.map(() => false))));\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n {!nested && (\r\n
    \r\n \r\n Show details\r\n \r\n
    \r\n )}\r\n\r\n
    \r\n \r\n \r\n \r\n {stickyCol && (\r\n \r\n )}\r\n\r\n {headers.map((header) => (\r\n \r\n {header.label}\r\n \r\n ))}\r\n\r\n {rows.some((row) => row.Table) && (\r\n \r\n
    \r\n expand\r\n
    \r\n \r\n )}\r\n \r\n \r\n \r\n {rows.map(({ row, Table }, rowIndex) => (\r\n \r\n \r\n {headers.map((header, colIndex) => (\r\n \r\n {stickyCol && colIndex === 0 && (\r\n {stickyCol[rowIndex]}\r\n )}\r\n \r\n {row[header.key]}\r\n \r\n \r\n ))}\r\n\r\n {Table && (\r\n \r\n toggleExpandRow(rowIndex)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n {Table && (\r\n \r\n \r\n { Table }\r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default ResponsiveTable;\r\n","import * as React from 'react';\r\nimport moment from 'moment';\r\nimport { Link as LinkType } from '../../../typings';\r\nimport './styles.scss';\r\n\r\ninterface DateAndCategoryProps {\r\n date?: string;\r\n category?: LinkType;\r\n dateFormat?: string;\r\n}\r\n\r\nconst DateAndCategory = ({ date, category, dateFormat }: DateAndCategoryProps) => (\r\n
    \r\n {category && (\r\n \r\n )}\r\n {date && (\r\n \r\n )}\r\n\r\n
    \r\n);\r\n\r\nexport default DateAndCategory;\r\n","import * as React from 'react';\r\nimport { useState, useEffect, useRef } from 'react';\r\nimport useHabitat from '../../../hooks/useHabitat';\r\nimport Content from '../Content';\r\nimport { Discipline } from '../../../core/typings';\r\nimport './styles.scss';\r\n\r\ninterface AccordionPanelProps {\r\n index: number;\r\n activeTab: boolean;\r\n toggleTab: Function;\r\n label: string | JSX.Element;\r\n content: string | JSX.Element | JSX.Element[];\r\n themeColor: string;\r\n discipline?: string;\r\n isAsync?: boolean;\r\n isResults?: boolean;\r\n}\r\n\r\nconst AccordionPanel = ({\r\n index,\r\n activeTab,\r\n toggleTab,\r\n label,\r\n content,\r\n themeColor,\r\n discipline,\r\n isAsync,\r\n isResults,\r\n}: AccordionPanelProps) => {\r\n const [height, setHeight] = useState('0px');\r\n const [asyncContentLoaded, setAsyncContentLoaded] = useState(false);\r\n const wrapper = useRef(null);\r\n\r\n const calculatePanelHeight = () => {\r\n const panelElement = wrapper.current as HTMLDivElement;\r\n\r\n if (activeTab) {\r\n panelElement.ontransitionend = () => {\r\n setHeight('auto');\r\n };\r\n\r\n setHeight(`${panelElement.scrollHeight}px`);\r\n } else {\r\n panelElement.ontransitionend = null;\r\n\r\n setHeight(`${panelElement.scrollHeight}px`);\r\n\r\n requestAnimationFrame(() => {\r\n setHeight('0px');\r\n });\r\n }\r\n };\r\n\r\n const handleLoadedContent = () => {\r\n setAsyncContentLoaded(true);\r\n calculatePanelHeight();\r\n };\r\n\r\n useEffect(() => {\r\n calculatePanelHeight();\r\n }, [activeTab]);\r\n\r\n return (\r\n
    \r\n toggleTab(index)}\r\n >\r\n {label}\r\n \r\n \r\n {typeof content === 'string' && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {!isAsync && React.isValidElement(content) && content}\r\n\r\n {isAsync && (activeTab || asyncContentLoaded) && React.isValidElement(content) && (\r\n \r\n )}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport interface AccordionPanelType {\r\n label: string | JSX.Element;\r\n content: string | JSX.Element | JSX.Element[];\r\n}\r\n\r\ninterface AccordionProps {\r\n panels: AccordionPanelType[];\r\n themeColor: string;\r\n discipline?: Discipline;\r\n isResults?: boolean;\r\n}\r\n\r\ninterface PanelsState {\r\n label: string | JSX.Element;\r\n content: string | JSX.Element | JSX.Element[];\r\n activeTab: boolean;\r\n}\r\n\r\nconst Accordion = ({\r\n panels,\r\n themeColor,\r\n discipline,\r\n isResults,\r\n}: AccordionProps) => {\r\n const [panelsInState, setPanelsInState] = useState([]);\r\n useHabitat();\r\n\r\n const toggleTab = (index: number) => {\r\n const current: PanelsState[] = [...panelsInState];\r\n\r\n current[index].activeTab = !panelsInState[index].activeTab;\r\n setPanelsInState(current);\r\n };\r\n\r\n useEffect(() => {\r\n if (panels) {\r\n const mappedPanels: PanelsState[] = panels.map((panel) => ({\r\n ...panel,\r\n activeTab: false,\r\n }));\r\n\r\n setPanelsInState(mappedPanels);\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n {panelsInState && (\r\n <>\r\n {panelsInState.map((panel, index) => (\r\n \r\n ))}\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default Accordion;\r\n","import * as React from 'react';\r\nimport { useState, useEffect } from 'react';\r\nimport { Image as ImageType } from '../../../typings';\r\nimport 'lazysizes';\r\nimport 'lazysizes/plugins/attrchange/ls.attrchange';\r\n\r\nconst defaultWidths = ['400', '800', '1200', '2400', '4000'];\r\n\r\ninterface ImageBasicProps {\r\n image: ImageType;\r\n widthSizes?: string[];\r\n isDarkened?: boolean;\r\n useIntrinsicHeight?: boolean;\r\n}\r\n\r\nconst ImageBasic = ({\r\n image,\r\n widthSizes = defaultWidths,\r\n isDarkened = false,\r\n useIntrinsicHeight,\r\n}: ImageBasicProps) => {\r\n const [isLoaded, setIsLoaded] = useState(false);\r\n const [srcset, setSrcset] = useState();\r\n\r\n useEffect(() => {\r\n const src = widthSizes\r\n .map((size: string) => `${image.file.url}?fit=thumb&fl=progressive&w=${size} ${size}w`);\r\n\r\n setSrcset(src.join(','));\r\n }, [image]);\r\n\r\n return (\r\n setIsLoaded(true)}\r\n />\r\n );\r\n};\r\n\r\nexport default ImageBasic;\r\n","import * as React from 'react';\r\n\r\nimport './styles.scss';\r\n\r\nconst Loader: React.FC = () => (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nexport default Loader;\r\n","import * as React from 'react';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport SvgImage from '../SvgImage';\r\nimport './styles.scss';\r\n\r\ninterface SocialLinksProps {\r\n list: {\r\n name: string;\r\n url: string;\r\n type: string;\r\n }[];\r\n}\r\n\r\nconst SocialLinks = ({ list }: SocialLinksProps) => (\r\n
    \r\n \r\n
    \r\n);\r\n\r\nexport default SocialLinks;\r\n","import * as React from 'react';\r\nimport Tag from '../Tag';\r\nimport './styles.scss';\r\n\r\ninterface TagProps {\r\n tags: {\r\n text: string;\r\n url: string;\r\n }[];\r\n}\r\n\r\nconst TagList = ({ tags }: TagProps) => (\r\n
      \r\n {tags.map((tag) => (\r\n
    • \r\n \r\n
    • \r\n ))}\r\n
    \r\n);\r\n\r\nexport default TagList;\r\n","import * as React from 'react';\r\nimport { insertUrlParam } from '../../../utilities/browser';\r\nimport { isIdenticalObject } from '../../../utilities/objects';\r\nimport SvgImage from '../SvgImage';\r\nimport './styles.scss';\r\n\r\ninterface PaginationProps {\r\n totalItems: number;\r\n currentPage: number;\r\n itemsPerPage: number;\r\n handleClick?: Function;\r\n pageQueryKey?: string;\r\n retainRoute?: boolean;\r\n style?: string;\r\n}\r\n\r\ninterface PaginationState {\r\n pages: number[];\r\n firstPageIndex: number | undefined;\r\n lastPageIndex: number | undefined;\r\n previousPageIndex: number | undefined;\r\n nextPageIndex: number | undefined;\r\n totalItems?: number | undefined;\r\n currentPage: number | undefined;\r\n totalAmountOfPages: number | undefined;\r\n isFirstPageDisabled: boolean | undefined;\r\n isLastPageDisabled: boolean | undefined;\r\n isPreviousDisabled: boolean | undefined;\r\n isNextDisabled: boolean | undefined;\r\n // The below need to move to props with defaults\r\n maxVisiblePagesMobile: number;\r\n maxVisiblePagesDesktop: number;\r\n maxVisiblePages: number;\r\n}\r\n\r\n// move to prop with default value\r\nconst breakpoint = 620;\r\n\r\nconst defaultProps = {\r\n pageQueryKey: 'page',\r\n};\r\nexport default class Pagination extends React.Component {\r\n // eslint-disable-next-line react/static-property-placement\r\n static defaultProps = defaultProps;\r\n\r\n constructor(props: PaginationProps) {\r\n super(props);\r\n this.state = {\r\n pages: [],\r\n firstPageIndex: undefined,\r\n lastPageIndex: undefined,\r\n previousPageIndex: undefined,\r\n nextPageIndex: undefined,\r\n // totalItems: undefined,\r\n currentPage: undefined,\r\n isFirstPageDisabled: undefined,\r\n isLastPageDisabled: undefined,\r\n totalAmountOfPages: undefined,\r\n isPreviousDisabled: undefined,\r\n isNextDisabled: undefined,\r\n maxVisiblePagesMobile: 3,\r\n maxVisiblePagesDesktop: 5,\r\n maxVisiblePages: 5,\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n await this.handdleMaxVisiblePages(window.innerWidth);\r\n window.addEventListener('resize', async (event) => {\r\n event.stopPropagation();\r\n await this.handdleMaxVisiblePages(window.innerWidth);\r\n });\r\n\r\n this.getPager();\r\n }\r\n\r\n componentDidUpdate(prevProps: PaginationProps) {\r\n const hasPropsUpdated = isIdenticalObject(prevProps, this.props);\r\n if (!hasPropsUpdated) {\r\n this.getPager();\r\n }\r\n }\r\n\r\n /**\r\n * This handles setting the state of the pager.\r\n * Flags toggle display views on pager elements\r\n * and fetches and sets the visable page list\r\n * from generateVisablePages.\r\n */\r\n getPager() {\r\n const {\r\n totalItems,\r\n currentPage,\r\n itemsPerPage,\r\n } = this.props;\r\n\r\n const {\r\n maxVisiblePages,\r\n } = this.state;\r\n\r\n const totalAmountOfPages = Math.ceil(totalItems / itemsPerPage);\r\n const isFirstPageDisabled = (\r\n (!(currentPage > (Math.ceil(maxVisiblePages / 2)))) || totalAmountOfPages <= maxVisiblePages\r\n );\r\n const isLastPageDisabled = currentPage > totalAmountOfPages - Math.ceil(maxVisiblePages / 2)\r\n || totalAmountOfPages <= maxVisiblePages;\r\n const lastPageIndex = totalAmountOfPages;\r\n const previousPageIndex = (currentPage - 1);\r\n const isPreviousDisabled = !(currentPage - 1);\r\n const isNextDisabled = (currentPage + 1) > lastPageIndex;\r\n\r\n this.setState({\r\n pages: this.generateVisablePages(\r\n totalAmountOfPages,\r\n currentPage,\r\n ),\r\n firstPageIndex: 1,\r\n lastPageIndex,\r\n previousPageIndex,\r\n nextPageIndex: (currentPage + 1),\r\n // totalItems,\r\n currentPage,\r\n totalAmountOfPages,\r\n isFirstPageDisabled,\r\n isLastPageDisabled,\r\n isPreviousDisabled,\r\n isNextDisabled,\r\n });\r\n }\r\n\r\n /**\r\n * Generates and returns the list of visible\r\n * pages based on the current page and the\r\n * maxVisiblePages.\r\n * @param totalAmountOfPages\r\n * @param currentPage\r\n */\r\n generateVisablePages(totalAmountOfPages: number, currentPage: number) {\r\n const { maxVisiblePages } = this.state;\r\n const maxVisibleOffset = (maxVisiblePages % 2 === 0) ? 1 : 0.5;\r\n let startPage = 1;\r\n let endPage = (maxVisiblePages + 1);\r\n\r\n if (currentPage > 2) {\r\n startPage = (currentPage - (maxVisiblePages / 2 - maxVisibleOffset));\r\n endPage = (currentPage + (maxVisiblePages / 2 + maxVisibleOffset));\r\n }\r\n\r\n if (currentPage > (totalAmountOfPages - 2)) {\r\n startPage = (totalAmountOfPages - (maxVisiblePages - 1));\r\n endPage = totalAmountOfPages + 1;\r\n }\r\n\r\n if (totalAmountOfPages <= maxVisiblePages) {\r\n startPage = 1;\r\n endPage = totalAmountOfPages + 1;\r\n }\r\n\r\n return Array.from({\r\n length: (endPage - startPage),\r\n }, (s, l) => l + startPage);\r\n }\r\n\r\n /**\r\n * Checks the viewport width to determine the\r\n * maxVisiblePages based on mobile/desktop\r\n * @param viewportWidth\r\n */\r\n async handdleMaxVisiblePages(viewportWidth: number) {\r\n const {\r\n maxVisiblePagesMobile,\r\n maxVisiblePagesDesktop,\r\n totalAmountOfPages,\r\n currentPage,\r\n } = this.state;\r\n\r\n if (viewportWidth < breakpoint) {\r\n await this.setState({\r\n maxVisiblePages: maxVisiblePagesMobile,\r\n });\r\n } else {\r\n await this.setState({\r\n maxVisiblePages: maxVisiblePagesDesktop,\r\n });\r\n }\r\n\r\n this.setState({\r\n pages: this.generateVisablePages(\r\n totalAmountOfPages as number,\r\n currentPage as number,\r\n ),\r\n });\r\n }\r\n\r\n /**\r\n * Change page state handler\r\n * @param event\r\n * @param page\r\n */\r\n changePage(event: React.MouseEvent, page: number) {\r\n const {\r\n pageQueryKey,\r\n retainRoute,\r\n handleClick,\r\n } = this.props;\r\n\r\n event.preventDefault();\r\n insertUrlParam((pageQueryKey || ''), String(page), retainRoute);\r\n if (handleClick) {\r\n handleClick(page);\r\n }\r\n }\r\n\r\n /**\r\n * Generates the page buttons\r\n * @param page\r\n * @param text\r\n * @param isDisabled\r\n */\r\n generateButton(page: number, text: string, isDisabled: boolean) {\r\n const { retainRoute } = this.props;\r\n const rootLocation = retainRoute ? '' : `${window.location.pathname}?page=${page}`;\r\n return (\r\n (!isDisabled ? this.changePage(event, page) : null)}\r\n href={rootLocation}\r\n role=\"button\"\r\n >\r\n {text}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n style,\r\n } = this.props;\r\n\r\n const {\r\n pages,\r\n firstPageIndex,\r\n lastPageIndex,\r\n previousPageIndex,\r\n nextPageIndex,\r\n currentPage,\r\n isFirstPageDisabled,\r\n isLastPageDisabled,\r\n isPreviousDisabled,\r\n isNextDisabled,\r\n totalAmountOfPages,\r\n } = this.state;\r\n\r\n return (\r\n
    \r\n
      \r\n\r\n {/* First page */}\r\n
    • \r\n {this.generateButton(firstPageIndex as number, '1', isFirstPageDisabled as boolean)}\r\n
    • \r\n\r\n {/* Page list */}\r\n {pages.map((item) => (\r\n
    • \r\n {this.generateButton(item, String(item), false)}\r\n
    • \r\n ))}\r\n\r\n {/* Last page */}\r\n
    • \r\n {this.generateButton(lastPageIndex as number, `${totalAmountOfPages}`, isLastPageDisabled as boolean)}\r\n
    • \r\n
    \r\n\r\n \r\n\r\n
    \r\n\r\n );\r\n }\r\n}\r\n","import * as React from 'react';\r\n\r\ninterface ContainerProps {\r\n className?: string;\r\n children: JSX.Element | JSX.Element[];\r\n overflowHidden?: boolean;\r\n}\r\n\r\ninterface ColumnProps {\r\n sm?: number;\r\n md?: number;\r\n lg?: number;\r\n xl?: number;\r\n className?: string;\r\n children: React.ReactNode;\r\n}\r\n\r\ninterface GridProps {\r\n isFlush?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const Container = ({\r\n children,\r\n className,\r\n overflowHidden = false,\r\n}: ContainerProps) => (\r\n
    \r\n {children}\r\n
    \r\n);\r\n\r\nconst Column = ({\r\n sm = 6,\r\n md = 6,\r\n lg = 12,\r\n xl,\r\n className,\r\n children,\r\n}: ColumnProps) => (\r\n
    \r\n {children}\r\n
    \r\n);\r\n\r\nexport class Grid extends React.Component {\r\n static container = Container;\r\n\r\n static Column = Column;\r\n\r\n render() {\r\n const {\r\n children,\r\n isFlush,\r\n className,\r\n } = this.props;\r\n return (\r\n
    \r\n {children}\r\n
    \r\n );\r\n }\r\n}\r\n","import { useEffect } from 'react';\r\n\r\nconst useOutsideAlerter = (ref: any, handler?: Function) => {\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n if (handler && typeof handler === 'function') {\r\n handler();\r\n }\r\n }\r\n };\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [ref]);\r\n};\r\n\r\nexport default useOutsideAlerter;\r\n","import * as React from 'react';\r\nimport { useEffect, useState, useRef } from 'react';\r\nimport Reveal from 'react-reveal/Reveal';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { Loader, Pagination, JumpList } from '../common';\r\nimport { Container } from '../helpers/Grid';\r\nimport FeaturedArticleCard from '../FeaturedNewsCard';\r\nimport NewsCard from '../NewsCard';\r\nimport NewsListProps from './type';\r\nimport NewsCardProps from '../NewsCard/type';\r\nimport getCurrentPage from '../common/Paginaton/getCurrentPage';\r\nimport api from '../../core/api/models';\r\nimport { NewsListApiResponse, Pagination as PaginationType } from '../../core/typings/api';\r\nimport { scrollIntoView, insertUrlParam } from '../../utilities/browser';\r\nimport './styles.scss';\r\n\r\ninterface FilterOption {\r\n displayText: string;\r\n value: string;\r\n selectedValue?: boolean;\r\n}\r\n// May need to come from the languages array\r\nconst defaultSelectedValue: string = 'all';\r\n\r\nconst NewsList = ({\r\n categories,\r\n featuredArticle,\r\n newsCategoryId,\r\n title,\r\n tag,\r\n noResultsText,\r\n}: NewsListProps) => {\r\n const newsListItemsContainer = useRef(null);\r\n const [pageSize] = useState(12);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [selectedFilter, setSelectedFilter] = useState(categories[0]);\r\n const [items, setItems] = useState();\r\n const [apiError, setApiError] = useState();\r\n const [pagination, setPagination] = useState();\r\n\r\n /**\r\n * Calls to news list api endpoint and updates state\r\n * accordingly\r\n * @param page\r\n */\r\n const fetchNews = async (page: number) => {\r\n const featuredArticleId = featuredArticle ? featuredArticle.id : undefined;\r\n const type = selectedFilter?.value !== defaultSelectedValue ? selectedFilter.value : undefined;\r\n setIsLoading(true);\r\n\r\n try {\r\n const data: NewsListApiResponse = await api.news.getNews(\r\n page,\r\n pageSize,\r\n featuredArticleId,\r\n newsCategoryId,\r\n type,\r\n tag,\r\n );\r\n setItems(data.items);\r\n setPagination(data.pagination);\r\n setIsLoading(false);\r\n } catch (error) {\r\n setApiError(error);\r\n }\r\n };\r\n\r\n /**\r\n * Pagination change action\r\n * @param page\r\n */\r\n const handlePage = (page: number) => {\r\n fetchNews(page);\r\n scrollIntoView(\r\n newsListItemsContainer?.current as HTMLUListElement,\r\n 'smooth',\r\n );\r\n };\r\n\r\n /**\r\n * Updates the selected filter item from the jump list action\r\n * @param option\r\n */\r\n const filterByCategory = async (option: FilterOption) => {\r\n setSelectedFilter(option);\r\n };\r\n\r\n /**\r\n * Observes the selectedFilter state. If the state changes\r\n * and the value is not the default value it will call the\r\n * fetchNews method.\r\n */\r\n useEffect(() => {\r\n if (selectedFilter) {\r\n fetchNews(1);\r\n insertUrlParam('page', '1');\r\n }\r\n }, [selectedFilter]);\r\n\r\n /**\r\n * Inital actions on componentDidMount\r\n */\r\n useEffect(() => {\r\n fetchNews(Number(getCurrentPage()));\r\n\r\n // We need to listen on popstate\r\n window.addEventListener('popstate', () => {\r\n fetchNews(Number(getCurrentPage()));\r\n }, false);\r\n }, []);\r\n\r\n return (\r\n \r\n <>\r\n {featuredArticle && (\r\n
    \r\n
    \r\n

    Featured

    \r\n
    \r\n \r\n \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n {Boolean(!isLoading && items?.length) && (\r\n
    \r\n

    {title}

    \r\n
    \r\n )}\r\n\r\n
    \r\n {categories && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {apiError && (\r\n
    \r\n

    {apiError}

    \r\n
    \r\n )}\r\n\r\n {Boolean(!items?.length && !isLoading) && (\r\n
    \r\n

    {noResultsText}

    \r\n
    \r\n )}\r\n\r\n {isLoading && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n
      \r\n {!isLoading && (\r\n <>\r\n {items?.map((item, index) => (\r\n \r\n
    • \r\n \r\n
    • \r\n
      \r\n\r\n ))}\r\n \r\n )}\r\n
    \r\n\r\n {Boolean(pagination && items?.length) && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default NewsList;\r\n","import { getUrlParamValue } from '../../../utilities/browser';\r\n\r\nconst getCurrentPage = (key: string = 'page') => {\r\n const findCurrentPage = getUrlParamValue(key);\r\n return (findCurrentPage !== null) ? findCurrentPage : 1;\r\n};\r\n\r\nexport default getCurrentPage;\r\n","import * as React from 'react';\r\nimport { useContext } from 'react';\r\nimport NewsListingsModuleProps from './type';\r\nimport PageHeader from '../../components/PageHeader';\r\nimport NewsList from '../../components/NewsList';\r\nimport LocalizationContext from '../../contexts/Localizations';\r\n\r\nimport './styles.scss';\r\n\r\nconst NewsListingsModule = ({\r\n header,\r\n newsList,\r\n isTagPage,\r\n}: NewsListingsModuleProps) => {\r\n const { translations } = useContext(LocalizationContext);\r\n const root = 'news-listing-module';\r\n const classes = [\r\n 'page-template',\r\n root,\r\n ];\r\n\r\n if (isTagPage) {\r\n classes.push(`${root}--tag-page`);\r\n }\r\n\r\n return (\r\n
    \r\n {header && (\r\n \r\n )}\r\n {newsList && (\r\n \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default NewsListingsModule;\r\n"],"sourceRoot":""}