{"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:///./node_modules/react-sticky-el/lib/render-props-version.js","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/mutators/index.ts","webpack:///./node_modules/react-sticky-el/lib/index.js","webpack:///./node_modules/react-sticky-el/lib/helpers/events.js","webpack:///./node_modules/react-sticky-el/lib/helpers/find.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:///./node_modules/react-sticky-el/lib/helpers/getClosestTransformedParent.js","webpack:///./node_modules/react-sticky-el/lib/helpers/rect.js","webpack:///./node_modules/react-sticky-el/lib/basic-version.js","webpack:///./src/components/FlatFilterList/index.tsx","webpack:///./src/components/common/SearchField/index.tsx","webpack:///./src/components/FiltersPanel/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/common/Image/index.tsx","webpack:///./src/components/common/ImageObject/index.tsx","webpack:///./src/components/common/UnderlineTitle/index.tsx","webpack:///./node_modules/lodash.throttle/index.js","webpack:///./src/components/common/Content/index.tsx","webpack:///./src/components/common/Contact/index.tsx","webpack:///./src/components/RidersList/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/TeamDetails/index.tsx","webpack:///./src/components/RidersAccordion/index.tsx","webpack:///./src/modules/TeamDetails/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","_react","_events","_find","_getClosestTransformedParent","_rect","obj","target","source","key","apply","this","_assertThisInitialized","self","ReferenceError","_setPrototypeOf","p","setPrototypeOf","__proto__","buildTopStyles","container","props","bottomOffset","hideOnBoundaryHit","top","height","width","boundaryBottom","position","bottom","buildBottomStyles","boundaryTop","buildStickyStyle","mode","isEqual","obj1","obj2","styles1","wrapperStyles","styles2","isFixed","field","Sticky","_Component","subClass","superClass","_this","_len","args","Array","_key","concat","holderEl","wrapperEl","el","scrollEl","boundaryEl","disabled","checkPositionIntervalId","lastMinHeight","state","holderStyles","holderRef","wrapperRef","updateScrollEl","updateBoundaryEl","checkPosition","_assertThisInitialize","_this$props","onFixedToggle","offsetTransforms","isIOSFixEnabled","dontUpdateHolderHeightWhenSticky","setState","getBoundingClientRect","holderRect","wrapperRect","boundaryRect","getRect","infiniteRect","scrollRect","offsets","closestTransformedParent","minHeight","iosRenderingFixStyles","transform","WebkitTransform","newState","error","create","constructor","_proto","_this$props2","topOffset","isIntersecting","hideOffset","unlisten","scrollElement","listen","boundaryElement","initialize","_this$props3","positionRecheckInterval","setInterval","componentDidUpdate","_ref","componentDidMount","componentWillUnmount","clearInterval","render","_this$state","Component","defaultProps","_default","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","right","up","l","down","u","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","_slicedToArray","isArray","next","done","push","return","TypeError","_createClass","enumerable","configurable","writable","inOut","shape","func","isRequired","object","collapse","collapseEl","wait","force","appear","enter","exit","fraction","refProp","innerRef","onReveal","unmountOnExit","mountOnEnter","oneOfType","oneOf","ssrReveal","collapseOnly","contextTypes","transitionGroup","RevealBase","_classCallCheck","_possibleConstructorReturn","getPrototypeOf","isOn","getInitialCollapseStyle","opacity","savedChild","isShown","handleObserve","bind","revealHandler","makeHandler","reveal","resizeHandler","resize","saveRef","_inherits","childRef","observe","hasExited","visibility","dispatchEvent","animationEndTimeout","offsetHeight","parseInt","getComputedStyle","getPropertyValue","getDimensionValue","animationDuration","animationDelay","overflow","animationName","hasAppeared","animationIterationCount","cloneElement","getChild","animationEnd","invisible","onRevealTimeout","clearTimeout","intersectionRatio","disconnect","observer","threshold","spy","inViewport","animate","context","isMounting","getTop","pageYOffset","innerHeight","split","display","whiteSpace","toArray","round","onExited","only","ref","_defineProperty","h","ticking","hidden","min","isListener","passive","offsetTop","parentNode","offsetParent","displayName","Reveal","durationOut","delayOut","countOut","foreverOut","effect","effectOut","O","_Fade2","filterItems","filteredCountries","filter","item","removeCountries","mappedItems","displayText","text","selectedValue","selected","_renderPropsVersion","RenderPropSticky","events","cb","addListener","removeListener","elementsWithListeners","registeredListeners","event","idx","callbacks","realCallbacks","realListenersCnt","createListener","listener","addCallback","splice","removeCallback","selector","basicSelectors","getElementById","slice","matchesMethodName","temp","parentElement","body","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","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","yPercentile","Image","alt","cropTo","xQuadrant","yQuadrant","setFocalArea","isExternal","isButton","iconAfter","buttonType","buttonColour","rel","bodyElm","handleClose","hasCloseRedirect","containerLess","closeOverlay","classList","remove","handleKeyUp","keyCode","add","stats","label","stat","webkitTransform","nodeType","innerWidth","r1","r2","r1Top","r1Bottom","Infinity","wrapperClassName","stickyClassName","stickyStyle","rest","excluded","sourceKeys","_objectWithoutPropertiesLoose","queryParam","items","viewMoreLabel","action","allowMultipleSelection","cutOffIndex","setCutOffIndex","isViewMore","setIsViewmore","options","setOptions","values","setValues","mapSelection","mappedOptions","forEach","newValue","isSelected","findIndex","visible","handleCutOffIndex","screenWidth","outerWidth","breakpoints","md","optionsSelection","option","index","optionIndex","preventDefault","getNewState","selectedOption","isAllSelected","toLowerCase","startsWith","existingIndex","opt","removedSelectionAll","handleChange","viewMoreAction","placeholder","callback","onSearchClear","onChange","currentTarget","htmlFor","hasSearch","visibleFilters","additionalFilters","visibleFilterCallback","additionalFilterCallback","searchLabel","searchPlaceholder","additionalFiltersApplyButtonLabel","additionalFiltersLabel","searchFieldCallback","searchTerm","disableSticky","disableFirst","themeColour","defaultDatePickerValue","onDateChange","includeDates","datePickerLocale","filters","isMobile","setIsMobile","isOverlayActive","setIsOverlayActive","selectedValues","setSelectedValues","selectedAdditionalValues","setSelectedAdditionalValues","handleIsMobile","checkForQueryParamValue","additional","queryStringParam","documentElement","querystringValue","filterItem","theme","entry","newSelection","handleSelection","useScroller","useSearch","withDatePicker","additionalFilter","Boolean","reduce","acc","handleMultipleSelection","config","env","webSettings","baseUrl","webUrl","storybookApi","localizations","shareConfig","shareUrl","mobileOnly","cookieConfig","cookiePolicy","cookiePolicyExpirationDays","xsrfRequestToken","translationsNotation","LocalizationContext","locale","lang","translations","expand","mobileImageTriggerWidthDefault","aspectRatioMap","undefined","lowQualityWidth","media","data-sizes","data-srcset","widthSize","ceil","onLoad","objectPosition","data-src","defaultWidths","noAnimate","srcset","setSrcset","src","size","Number","containerTheme","disableUppercase","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","global","freeSelf","Function","objectToString","nativeMax","max","nativeMin","debounce","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","toNumber","isObject","cancel","flush","isObjectLike","isSymbol","valueOf","replace","isBinary","intro","content","link","secondaryLink","downloads","isTitleFloating","download","toReadable","phoneNumber","addr","tel","fax","website","facebook","instagram","twitter","TeamItem","teamCode","teamName","format","WithLink","RiderItem","statusCode","givenName","familyName","countryName","competitionHubEntryId","statuses","forCompetitionHub","forTeams","resultsContainer","isFetching","setIsFetching","setRiders","totalItems","setTotalItems","setPageSize","apiQueryParams","setApiQueryParams","apiEndpoint","getDefaultApiParams","hasYearFilter","find","fetchRiders","response","throttledFetchRiders","current","searchText","noResults","resultsLabel","String","status","currentPage","itemsPerPage","dangerouslySetInnerHTML","__html","updateHabitat","insertUrlParam","includeHash","history","pushState","searchParams","URLSearchParams","location","set","newurl","protocol","host","pathname","hash","path","getUrlParamValue","entries","hashes","val","decodeURIComponent","getAllUrlParams","param","scrollIntoView","elemToScrollTo","behaviour","MSInputMethodContext","behavior","isPortrait","setValue","setIsOpen","isClosing","setIsClosing","searchValue","setSearchValue","close","filteredOptions","includes","createOption","role","createSearch","toggle","date","dateIndex","inline","xxs","xs","sm","ml","lg","xl","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","isFirstPageDisabled","isLastPageDisabled","totalAmountOfPages","isPreviousDisabled","isNextDisabled","maxVisiblePagesMobile","maxVisiblePagesDesktop","maxVisiblePages","handdleMaxVisiblePages","stopPropagation","getPager","prevProps","generateVisablePages","maxVisibleOffset","startPage","endPage","from","viewportWidth","changePage","retainRoute","generateButton","isDisabled","rootLocation","overflowHidden","Column","isFlush","handler","handleClickOutside","contains","categoryName","pictureTeamJersey","address","competition","websiteLabel","emailLabel","addressLabel","line","rider","Accordion"],"mappings":"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","file":"habitat.13.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 0) {\n return {\n top: boundaryBottom - height - bottomOffset + \"px\",\n width: width + \"px\",\n position: 'fixed'\n };\n } // below boundary\n\n\n return {\n width: width + \"px\",\n bottom: bottomOffset + \"px\",\n position: 'absolute'\n };\n};\n\nvar buildBottomStyles = function buildBottomStyles(container, props) {\n var bottomOffset = props.bottomOffset,\n hideOnBoundaryHit = props.hideOnBoundaryHit;\n var bottom = container.bottom,\n height = container.height,\n width = container.width,\n boundaryTop = container.boundaryTop;\n\n if (hideOnBoundaryHit || bottom - height - bottomOffset > boundaryTop) {\n return {\n width: width + \"px\",\n top: bottom - height + \"px\",\n position: 'fixed'\n };\n }\n\n return {\n width: width + \"px\",\n top: bottomOffset + \"px\",\n position: 'absolute'\n };\n};\n\nvar buildStickyStyle = function buildStickyStyle(mode, props, container) {\n return (mode === 'top' ? buildTopStyles : buildBottomStyles)(container, props);\n};\n\nvar isEqual = function isEqual(obj1, obj2) {\n var styles1 = obj1.wrapperStyles;\n var styles2 = obj2.wrapperStyles;\n\n if (obj1.isFixed !== obj2.isFixed || obj1.height !== obj2.height || !styles1 && styles2 || styles1 && !styles2) {\n return false;\n }\n\n if (!styles2) {\n // we need this condition to make Flow happy\n return true;\n }\n\n for (var field in styles1) {\n if (styles1.hasOwnProperty(field) && styles1[field] !== styles2[field]) {\n return false;\n }\n }\n\n return true;\n};\n\nvar Sticky = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Sticky, _Component);\n\n function Sticky() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.holderEl = null;\n _this.wrapperEl = null;\n _this.el = null;\n _this.scrollEl = null;\n _this.boundaryEl = null;\n _this.disabled = false;\n _this.checkPositionIntervalId = void 0;\n _this.lastMinHeight = void 0;\n _this.state = {\n isFixed: false,\n wrapperStyles: null,\n holderStyles: null,\n height: 0\n };\n\n _this.holderRef = function (holderEl) {\n if (holderEl === _this.holderEl) {\n return;\n }\n\n _this.holderEl = holderEl;\n };\n\n _this.wrapperRef = function (wrapperEl) {\n if (wrapperEl === _this.wrapperEl) {\n return;\n }\n\n _this.wrapperEl = wrapperEl;\n\n _this.updateScrollEl();\n\n _this.updateBoundaryEl();\n };\n\n _this.checkPosition = function () {\n var _assertThisInitialize = _assertThisInitialized(_this),\n holderEl = _assertThisInitialize.holderEl,\n wrapperEl = _assertThisInitialize.wrapperEl,\n boundaryEl = _assertThisInitialize.boundaryEl,\n scrollEl = _assertThisInitialize.scrollEl,\n disabled = _assertThisInitialize.disabled;\n\n if (!scrollEl || !holderEl || !wrapperEl) {\n console.error(\"Missing required elements:\", {\n scrollEl: scrollEl,\n holderEl: holderEl,\n wrapperEl: wrapperEl\n });\n return;\n }\n\n var _this$props = _this.props,\n mode = _this$props.mode,\n onFixedToggle = _this$props.onFixedToggle,\n offsetTransforms = _this$props.offsetTransforms,\n isIOSFixEnabled = _this$props.isIOSFixEnabled,\n dontUpdateHolderHeightWhenSticky = _this$props.dontUpdateHolderHeightWhenSticky;\n\n if (disabled) {\n if (_this.state.isFixed) {\n _this.setState({\n isFixed: false,\n wrapperStyles: {}\n });\n }\n\n return;\n }\n\n if (!holderEl.getBoundingClientRect || !wrapperEl.getBoundingClientRect) {\n return;\n }\n\n var holderRect = holderEl.getBoundingClientRect();\n var wrapperRect = wrapperEl.getBoundingClientRect();\n var boundaryRect = boundaryEl ? (0, _rect.getRect)(boundaryEl) : _rect.infiniteRect;\n var scrollRect = (0, _rect.getRect)(scrollEl);\n\n var isFixed = _this.isFixed(holderRect, wrapperRect, boundaryRect, scrollRect);\n\n var offsets = null;\n\n if (offsetTransforms && isFixed) {\n var closestTransformedParent = (0, _getClosestTransformedParent.default)(scrollEl);\n\n if (closestTransformedParent) {\n offsets = (0, _rect.getRect)(closestTransformedParent);\n }\n }\n\n var minHeight = _this.state.isFixed && dontUpdateHolderHeightWhenSticky && _this.lastMinHeight ? _this.lastMinHeight : wrapperRect.height;\n _this.lastMinHeight = minHeight; // To ensure that this component becomes sticky immediately on mobile devices instead\n // of disappearing until the scroll event completes, we add `transform: translateZ(0)`\n // to 'kick' rendering of this element to the GPU\n // @see http://stackoverflow.com/questions/32875046\n\n var iosRenderingFixStyles = isIOSFixEnabled ? {\n transform: 'translateZ(0)',\n WebkitTransform: 'translateZ(0)'\n } : null;\n var newState = {\n isFixed: isFixed,\n height: wrapperRect.height,\n holderStyles: {\n minHeight: minHeight + \"px\"\n },\n wrapperStyles: isFixed ? _extends({}, iosRenderingFixStyles, buildStickyStyle(mode, _this.props, {\n boundaryTop: mode === 'bottom' ? boundaryRect.top : 0,\n boundaryBottom: mode === 'top' ? boundaryRect.bottom : 0,\n top: mode === 'top' ? scrollRect.top - (offsets ? offsets.top : 0) : 0,\n bottom: mode === 'bottom' ? scrollRect.bottom - (offsets ? offsets.bottom : 0) : 0,\n width: holderRect.width,\n height: wrapperRect.height\n })) : iosRenderingFixStyles\n };\n\n if (isFixed !== _this.state.isFixed && onFixedToggle && typeof onFixedToggle === 'function') {\n onFixedToggle(isFixed);\n }\n\n if (!isEqual(_this.state, newState)) {\n _this.setState(newState);\n }\n };\n\n return _this;\n }\n\n var _proto = Sticky.prototype;\n\n _proto.isFixed = function isFixed(holderRect, wrapperRect, boundaryRect, scrollRect) {\n var _this$props2 = this.props,\n hideOnBoundaryHit = _this$props2.hideOnBoundaryHit,\n bottomOffset = _this$props2.bottomOffset,\n topOffset = _this$props2.topOffset,\n mode = _this$props2.mode;\n\n if (this.disabled) {\n return false;\n }\n\n if (hideOnBoundaryHit && boundaryRect && !(0, _rect.isIntersecting)(boundaryRect, scrollRect, topOffset, bottomOffset)) {\n return false;\n }\n\n var hideOffset = hideOnBoundaryHit ? wrapperRect.height + bottomOffset : 0;\n\n if (mode === 'top') {\n return holderRect.top + topOffset < scrollRect.top && scrollRect.top + hideOffset <= boundaryRect.bottom;\n }\n\n return holderRect.bottom - topOffset > scrollRect.bottom && scrollRect.bottom - hideOffset >= boundaryRect.top;\n };\n\n _proto.updateScrollEl = function updateScrollEl() {\n if (!this.wrapperEl) {\n return;\n }\n\n if (this.scrollEl) {\n (0, _events.unlisten)(this.scrollEl, ['scroll'], this.checkPosition);\n this.scrollEl = null;\n }\n\n var scrollElement = this.props.scrollElement;\n\n if (typeof scrollElement === 'string') {\n this.scrollEl = (0, _find.default)(scrollElement, this.wrapperEl);\n } else {\n this.scrollEl = scrollElement;\n }\n\n if (this.scrollEl) {\n (0, _events.listen)(this.scrollEl, ['scroll'], this.checkPosition);\n } else {\n console.error('Cannot find scrollElement ' + (typeof scrollElement === 'string' ? scrollElement : 'unknown'));\n }\n };\n\n _proto.updateBoundaryEl = function updateBoundaryEl() {\n if (!this.wrapperEl) {\n return;\n }\n\n var boundaryElement = this.props.boundaryElement;\n this.boundaryEl = (0, _find.default)(boundaryElement, this.wrapperEl);\n\n if (this.boundaryEl === window || this.boundaryEl === document) {\n // such objects can't be used as boundary\n // and in fact there is no point in such a case\n this.boundaryEl = null;\n }\n };\n\n _proto.initialize = function initialize() {\n var _this$props3 = this.props,\n positionRecheckInterval = _this$props3.positionRecheckInterval,\n disabled = _this$props3.disabled;\n this.disabled = disabled; // we should always listen to window events because they will affect the layout of the whole page\n\n (0, _events.listen)(window, ['scroll', 'resize', 'pageshow', 'load'], this.checkPosition);\n this.checkPosition();\n\n if (positionRecheckInterval) {\n this.checkPositionIntervalId = setInterval(this.checkPosition, positionRecheckInterval);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(_ref) {\n var scrollElement = _ref.scrollElement,\n boundaryElement = _ref.boundaryElement,\n disabled = _ref.disabled;\n\n if (scrollElement !== this.props.scrollElement) {\n this.updateScrollEl();\n }\n\n if (boundaryElement !== this.props.boundaryElement) {\n this.updateBoundaryEl();\n }\n\n if (disabled !== this.props.disabled) {\n this.disabled = this.props.disabled;\n this.checkPosition();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.initialize();\n\n if (this.wrapperEl === null) {\n console.error(\"Wrapper element is missing, please make sure that you have assigned refs correctly\");\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.scrollEl) {\n (0, _events.unlisten)(this.scrollEl, ['scroll'], this.checkPosition);\n }\n\n (0, _events.unlisten)(window, ['scroll', 'resize', 'pageshow', 'load'], this.checkPosition);\n this.boundaryEl = null;\n this.scrollEl = null;\n clearInterval(this.checkPositionIntervalId);\n };\n\n _proto.render = function render() {\n var holderRef = this.holderRef,\n wrapperRef = this.wrapperRef;\n var _this$state = this.state,\n isFixed = _this$state.isFixed,\n wrapperStyles = _this$state.wrapperStyles,\n holderStyles = _this$state.holderStyles;\n return this.props.children({\n holderRef: holderRef,\n wrapperRef: wrapperRef,\n isFixed: isFixed,\n wrapperStyles: wrapperStyles,\n holderStyles: holderStyles\n });\n };\n\n return Sticky;\n}(_react.Component);\n\nSticky.defaultProps = {\n mode: 'top',\n topOffset: 0,\n bottomOffset: 0,\n isIOSFixEnabled: true,\n disabled: false,\n onFixedToggle: null,\n boundaryElement: null,\n scrollElement: 'window',\n dontUpdateHolderHeightWhenSticky: false\n};\nvar _default = Sticky;\nexports.default = _default;\nmodule.exports = exports.default;","import * as news from './endpoints/news';\r\nimport * as contact from './endpoints/contact';\r\nimport * as calendar from './endpoints/calendar';\r\nimport * as racehub from './endpoints/racehub';\r\nimport * as riders from './endpoints/riders';\r\nimport * as rankings from './endpoints/rankings';\r\n\r\nexport default {\r\n news,\r\n contact,\r\n calendar,\r\n racehub,\r\n riders,\r\n rankings,\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 getNews = async (\r\n pageIndex?: number,\r\n pageSize?: number,\r\n featuredArticleId?: string,\r\n newsCategoryId?: string,\r\n type?: string,\r\n tag?: string,\r\n) => {\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 (\r\n filterItems.filter((item) => item.code !== 'RUS' && item.code !== 'BLR')\r\n);\r\n\r\n/**\r\n * Map the current model to the JumpListOption type\r\n * @param filterItems\r\n * @returns\r\n */\r\nconst mapFilterType = (filterItems: Filter[]) => {\r\n const filteredCountries = removeCountries(filterItems);\r\n const mappedItems: JumpListOption[] = [];\r\n filteredCountries.map((item) => (\r\n mappedItems.push({\r\n displayText: item.text,\r\n value: item.code,\r\n selectedValue: item.selected,\r\n })\r\n ));\r\n return mappedItems;\r\n};\r\n\r\nexport default mapFilterType;\r\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _renderPropsVersion = _interopRequireDefault(require(\"./render-props-version\"));\n\nexports.RenderPropSticky = _renderPropsVersion.default;\n\nvar _basicVersion = _interopRequireDefault(require(\"./basic-version\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = _basicVersion.default;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.listen = listen;\nexports.unlisten = unlisten;\n////////////////////////////////////////////////////////////////////////////////////////\n// Small helpers that provide an easy and efficient way to add/remove event listeners //\n////////////////////////////////////////////////////////////////////////////////////////\nvar elementsWithListeners = [];\nvar registeredListeners = [];\n\nfunction createListener(el) {\n return {\n el: el,\n callbacks: {},\n realCallbacks: {},\n realListenersCnt: 0\n };\n}\n\nfunction addCallback(listener, event, cb) {\n if (listener.callbacks[event]) {\n if (listener.callbacks[event].indexOf(cb) === -1) {\n listener.callbacks[event].push(cb);\n }\n\n return;\n }\n\n listener.callbacks[event] = [cb];\n\n listener.realCallbacks[event] = function (e) {\n for (var i = 0, l = listener.callbacks[event].length; i < l; i += 1) {\n listener.callbacks[event][i](e);\n }\n };\n\n listener.el.addEventListener(event, listener.realCallbacks[event]);\n listener.realListenersCnt += 1;\n}\n\nfunction removeCallback(listener, event, cb) {\n if (!listener.callbacks[event]) {\n return;\n }\n\n var idx = listener.callbacks[event].indexOf(cb);\n\n if (idx === -1) {\n return;\n }\n\n listener.callbacks[event].splice(idx, 1);\n\n if (listener.callbacks[event].length > 0) {\n return;\n } // no more listeners, lets clean up\n\n\n listener.el.removeEventListener(event, listener.realCallbacks[event]);\n delete listener.callbacks[event];\n delete listener.realCallbacks[event];\n listener.realListenersCnt -= 1;\n}\n\nfunction addListener(el, event, cb) {\n var idx = elementsWithListeners.indexOf(el);\n\n if (idx === -1) {\n idx = elementsWithListeners.length;\n elementsWithListeners.push(el);\n registeredListeners.push(createListener(el));\n }\n\n var listener = registeredListeners[idx];\n addCallback(listener, event, cb);\n}\n\nfunction removeListener(el, event, cb) {\n var idx = elementsWithListeners.indexOf(el);\n\n if (idx === -1) {\n return;\n }\n\n var listener = registeredListeners[idx];\n removeCallback(listener, event, cb);\n\n if (listener.realListenersCnt > 0) {\n return;\n } // no more listeners lets clean up\n\n\n elementsWithListeners.splice(idx, 1);\n registeredListeners.splice(idx, 1);\n}\n/**\n * Subscribe cb to events list\n * @param {HTMLElement} el target element\n * @param {Array} events array of event names\n * @param {Function} cb callback that should be called\n */\n\n\nfunction listen(el, events, cb) {\n for (var i = 0, l = events.length; i < l; i += 1) {\n addListener(el, events[i], cb);\n }\n}\n/**\n * Unsubscribe cb from events list\n * @param {HTMLElement} el target element\n * @param {Array} events array of event names\n * @param {Function} cb callback that should be unsubscribed\n */\n\n\nfunction unlisten(el, events, cb) {\n for (var i = 0, l = events.length; i < l; i += 1) {\n removeListener(el, events[i], cb);\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = find;\nvar basicSelectors = {};\n\nif (typeof document !== 'undefined') {\n basicSelectors.body = document.body;\n basicSelectors.window = window;\n basicSelectors.document = document;\n}\n\nvar matchesMethodName = function () {\n if (typeof document !== 'undefined' && document.body) {\n var body = document.body;\n return typeof body.matches === 'function' ? 'matches' : // $FlowFixMe - flow doesn't like vendors, so do I, but we have to support such case\n typeof body.webkitMatchesSelector === 'function' ? 'webkitMatchesSelector' : //webkit\n // $FlowFixMe - see above\n typeof body.mozMatchesSelector === 'function' ? 'mozMatchesSelector' : //mozilla\n // $FlowFixMe - see above\n typeof body.msMatchesSelector === 'function' ? 'msMatchesSelector' : //ie\n // $FlowFixMe - see above\n typeof body.oMatchesSelector === 'function' ? 'oMatchesSelector' : //old opera\n null;\n }\n\n return null;\n}();\n\nfunction find(selector, el) {\n if (!selector) {\n return null;\n }\n\n if (basicSelectors.hasOwnProperty(selector)) {\n return basicSelectors[selector];\n } // select by id\n\n\n if (selector[0] === '#') {\n return document.getElementById(selector.slice(1));\n }\n\n if (matchesMethodName === null) {\n return null;\n }\n\n var temp = el; // eslint-disable-next-line no-cond-assign\n\n while (temp = temp.parentElement) {\n // $FlowFixMe - flow does not approve it, but it works fine :)\n if (temp[matchesMethodName](selector)) {\n return temp || null;\n }\n } // nothing has been found :(\n\n\n return null;\n}\n\nmodule.exports = exports.default;","import * as React from 'react';\r\nimport SvgImage from '../SvgImage';\r\nimport './styles.scss';\r\n\r\ninterface ButtonProps {\r\n type: 'button' | 'submit' | 'reset';\r\n style?: 'default' | 'secondary' | 'transparent' | 'uci';\r\n text?: string;\r\n icon?: {\r\n reference: string;\r\n title: string;\r\n } | undefined;\r\n role?: 'button';\r\n ariaLabel?: string;\r\n disabled?: boolean;\r\n showLoader?: boolean;\r\n iconOnly?: boolean;\r\n fullWidth?: boolean;\r\n isProcessing?: boolean;\r\n handleClick?: (event: React.MouseEvent) => 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","\"use strict\";\n\nexports.__esModule = true;\nexports.default = getClosestTransformedParent;\n\nfunction getClosestTransformedParent(el) {\n do {\n var style = window.getComputedStyle(el);\n if (style.transform !== 'none' || style.webkitTransform !== 'none') return el; // $FlowFixMe - it's fine\n\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n\n return null;\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.getRect = getRect;\nexports.isIntersecting = isIntersecting;\nexports.infiniteRect = void 0;\nvar infiniteRect = {\n top: -Infinity,\n bottom: Infinity,\n height: Infinity,\n left: -Infinity,\n right: Infinity,\n width: Infinity\n};\nexports.infiniteRect = infiniteRect;\n\nfunction getRect(el) {\n if (el && typeof el.getBoundingClientRect === 'function') {\n return el.getBoundingClientRect();\n }\n\n if (el === window || el === document) {\n return {\n top: 0,\n left: 0,\n bottom: window.innerHeight,\n height: window.innerHeight,\n width: window.innerWidth,\n right: window.innerWidth\n };\n }\n\n return {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: 0,\n height: 0\n };\n}\n\nfunction isIntersecting(r1, r2, topOffset, bottomOffset) {\n var r1Top = r1.top + topOffset,\n r1Bottom = r1.bottom + bottomOffset;\n return r1Top >= r2.top && r1Top <= r2.bottom || r1Bottom >= r2.top && r1Bottom <= r2.bottom || r1Bottom >= r2.bottom && r1Top <= r2.top;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _renderPropsVersion = _interopRequireDefault(require(\"./render-props-version\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction Sticky(props) {\n var mode = props.mode,\n onFixedToggle = props.onFixedToggle,\n hideOnBoundaryHit = props.hideOnBoundaryHit,\n offsetTransforms = props.offsetTransforms,\n disabled = props.disabled,\n boundaryElement = props.boundaryElement,\n scrollElement = props.scrollElement,\n bottomOffset = props.bottomOffset,\n topOffset = props.topOffset,\n positionRecheckInterval = props.positionRecheckInterval,\n children = props.children,\n isIOSFixEnabled = props.isIOSFixEnabled,\n dontUpdateHolderHeightWhenSticky = props.dontUpdateHolderHeightWhenSticky,\n wrapperClassName = props.wrapperClassName,\n stickyClassName = props.stickyClassName,\n stickyStyle = props.stickyStyle,\n rest = _objectWithoutPropertiesLoose(props, [\"mode\", \"onFixedToggle\", \"hideOnBoundaryHit\", \"offsetTransforms\", \"disabled\", \"boundaryElement\", \"scrollElement\", \"bottomOffset\", \"topOffset\", \"positionRecheckInterval\", \"children\", \"isIOSFixEnabled\", \"dontUpdateHolderHeightWhenSticky\", \"wrapperClassName\", \"stickyClassName\", \"stickyStyle\"]);\n\n return /*#__PURE__*/_react.default.createElement(_renderPropsVersion.default, {\n mode: mode,\n onFixedToggle: onFixedToggle,\n hideOnBoundaryHit: hideOnBoundaryHit,\n offsetTransforms: offsetTransforms,\n disabled: disabled,\n boundaryElement: boundaryElement,\n scrollElement: scrollElement,\n bottomOffset: bottomOffset,\n topOffset: topOffset,\n positionRecheckInterval: positionRecheckInterval,\n isIOSFixEnabled: isIOSFixEnabled,\n dontUpdateHolderHeightWhenSticky: dontUpdateHolderHeightWhenSticky\n }, function (_ref) {\n var isFixed = _ref.isFixed,\n wrapperStyles = _ref.wrapperStyles,\n wrapperRef = _ref.wrapperRef,\n holderStyles = _ref.holderStyles,\n holderRef = _ref.holderRef;\n return /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, rest, {\n ref: holderRef,\n style: holderStyles\n }), /*#__PURE__*/_react.default.createElement(\"div\", _extends({}, rest, {\n className: wrapperClassName + \" \" + (isFixed ? stickyClassName : ''),\n style: // $FlowFixMe - flow does not like when we merge 2 inexact objects\n isFixed ? _extends({}, wrapperStyles, stickyStyle) : wrapperStyles,\n ref: wrapperRef\n }), children));\n });\n}\n\nSticky.defaultProps = {\n stickyClassName: 'sticky',\n wrapperClassName: '',\n stickyStyle: {}\n};\nvar _default = Sticky;\nexports.default = _default;\nmodule.exports = exports.default;","import * as React from 'react';\r\nimport { useState, useEffect } from 'react';\r\nimport { SvgImage } from '../common';\r\nimport FlatFilterListProps, { FlatFilterListOption } from './type';\r\nimport breakpoints from '../../breakpoints';\r\nimport './styles.scss';\r\n\r\nconst FlatFilterList = ({\r\n name,\r\n queryParam,\r\n items,\r\n selectedValue,\r\n viewMoreLabel,\r\n action,\r\n allowMultipleSelection = false,\r\n}: FlatFilterListProps) => {\r\n const defaultCutOffIndex = 5;\r\n const [cutOffIndex, setCutOffIndex] = useState(defaultCutOffIndex);\r\n const [isViewMore, setIsViewmore] = useState(\r\n (items.length - 1) >= cutOffIndex,\r\n );\r\n const [options, setOptions] = useState();\r\n const [values, setValues] = useState();\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 = () => {\r\n const mappedOptions: FlatFilterListOption[] = [];\r\n\r\n items.forEach((item) => {\r\n // Check for selected state for the filter with multiple selection\r\n const isArray = Array.isArray(selectedValue);\r\n const newValue = isArray ? selectedValue : selectedValue?.split(',');\r\n const isSelected = newValue?.findIndex((filter) => filter === item.value);\r\n\r\n mappedOptions.push(\r\n Object.assign(item, {\r\n name: queryParam,\r\n selectedValue: isSelected! >= 0,\r\n visible: true,\r\n }),\r\n );\r\n });\r\n\r\n return mappedOptions;\r\n };\r\n\r\n /**\r\n * Handles options change events\r\n * Triggers callback prop\r\n * @param event\r\n */\r\n const handleChange = (event: React.MouseEvent, optionIndex: number) => {\r\n event.preventDefault();\r\n setOptions(mapSelection());\r\n\r\n const getNewState = () => {\r\n if (!options) return undefined;\r\n\r\n const newState = values || [];\r\n\r\n const selectedOption = options[optionIndex];\r\n\r\n const isAllSelected = selectedOption.displayText.toLowerCase().startsWith('all');\r\n\r\n const existingIndex = newState.findIndex((opt) => (\r\n opt.displayText === selectedOption.displayText\r\n ));\r\n\r\n if (isAllSelected || !allowMultipleSelection || (!existingIndex && newState.length === 1)) {\r\n return [selectedOption];\r\n }\r\n\r\n if (existingIndex >= 0 && newState.length > 1) {\r\n return newState.filter((_, index) => index !== existingIndex);\r\n }\r\n\r\n const removedSelectionAll = newState.filter((s) => !s.displayText.toLowerCase().startsWith('all'));\r\n\r\n return [...removedSelectionAll, options[optionIndex]];\r\n };\r\n\r\n setValues(getNewState());\r\n\r\n if (action && typeof action === 'function') {\r\n action(getNewState());\r\n }\r\n };\r\n\r\n /**\r\n * View more action\r\n * @param event\r\n */\r\n const viewMoreAction = (event: React.MouseEvent) => {\r\n event.preventDefault();\r\n if (items.length > cutOffIndex) {\r\n setCutOffIndex(cutOffIndex + defaultCutOffIndex);\r\n }\r\n };\r\n\r\n /**\r\n * Handles the cutOffIndex value\r\n */\r\n const handleCutOffIndex = () => {\r\n const screenWidth = window.outerWidth;\r\n setCutOffIndex(\r\n screenWidth <= breakpoints.md ? defaultCutOffIndex : items.length,\r\n );\r\n };\r\n\r\n /**\r\n * Triggers the handleCutOffIndex\r\n */\r\n useEffect(() => {\r\n if (items.length) {\r\n handleCutOffIndex();\r\n window.addEventListener('resize', () => handleCutOffIndex());\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('resize', () => handleCutOffIndex);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const optionsSelection = mapSelection();\r\n setOptions(optionsSelection);\r\n }, [selectedValue]);\r\n\r\n /**\r\n * Handles the isViewMore option.\r\n */\r\n useEffect(() => {\r\n setIsViewmore((items.length - 1) >= cutOffIndex);\r\n }, [cutOffIndex]);\r\n\r\n return (\r\n
\r\n
\r\n

{name}

\r\n
\r\n
\r\n {options && (\r\n
    \r\n {options.slice(0, cutOffIndex).map((option, index) => (\r\n
  • \r\n handleChange(event, index)}\r\n >\r\n {option.displayText}\r\n \r\n
  • \r\n ))}\r\n
\r\n )}\r\n
\r\n {isViewMore && (\r\n
\r\n viewMoreAction(event)}\r\n >\r\n {viewMoreLabel}\r\n
\r\n \r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default FlatFilterList;\r\n","import * as React from 'react';\r\nimport SvgImage from '../SvgImage';\r\nimport './styles.scss';\r\n\r\ninterface SearchFieldProps {\r\n name?: string;\r\n label: string;\r\n placeholder?: string;\r\n callback?: Function;\r\n value: string;\r\n onSearchClear?: React.MouseEventHandler;\r\n}\r\n\r\nconst SearchField = ({\r\n name = 'search',\r\n label,\r\n placeholder = 'search',\r\n callback,\r\n value,\r\n onSearchClear,\r\n}: SearchFieldProps) => (\r\n
\r\n callback && callback(event.currentTarget.value)}\r\n />\r\n \r\n\r\n {value && onSearchClear ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n);\r\n\r\nexport default SearchField;\r\n","import * as React from 'react';\r\nimport { useRef, useState, useEffect } from 'react';\r\nimport Sticky from 'react-sticky-el';\r\nimport { JumpList, SvgImage, Overlay } from '../common';\r\nimport FlatFilterList from '../FlatFilterList';\r\nimport SearchField from '../common/SearchField';\r\nimport breakpoints from '../../breakpoints';\r\nimport FiltersPanelProps from './type';\r\nimport mapFilterType from '../../mutators';\r\nimport { getUrlParamValue } from '../../utilities/browser';\r\nimport './styles.scss';\r\n\r\ninterface JumpListOption {\r\n displayText: string;\r\n value: string;\r\n selectedValue?: boolean;\r\n name?: string;\r\n}\r\n\r\ninterface SelectedValues {\r\n length: number;\r\n selected: any;\r\n}\r\n\r\nconst FiltersPanel = ({\r\n hasSearch,\r\n visibleFilters,\r\n additionalFilters,\r\n visibleFilterCallback,\r\n additionalFilterCallback,\r\n searchLabel,\r\n searchPlaceholder,\r\n additionalFiltersApplyButtonLabel,\r\n additionalFiltersLabel,\r\n searchFieldCallback,\r\n searchTerm,\r\n disableSticky = false,\r\n disableFirst = false,\r\n themeColour = 'default',\r\n allowMultipleSelection = false,\r\n defaultDatePickerValue,\r\n onDateChange,\r\n includeDates,\r\n datePickerLocale,\r\n onSearchClear,\r\n}: FiltersPanelProps) => {\r\n const filters = useRef(null);\r\n const [isMobile, setIsMobile] = useState(false);\r\n const [isOverlayActive, setIsOverlayActive] = useState(false);\r\n const [selectedValues, setSelectedValues] = useState();\r\n const [selectedAdditionalValues, setSelectedAdditionalValues] = useState();\r\n\r\n /**\r\n * For now we dont want the sticky nav to be show\r\n * on mobile view or small tablet.\r\n */\r\n const handleIsMobile = () => {\r\n const screenWidth = window.outerWidth;\r\n setIsMobile(screenWidth <= breakpoints.md);\r\n };\r\n\r\n /**\r\n * Probably could of simplified this tbh.\r\n * Essentialy adding and removing selected\r\n * filters from the visible filters and the\r\n * additional filters.\r\n * @param event\r\n * @param additional\r\n */\r\n const handleSelection = (event: JumpListOption) => {\r\n const entry: any = {};\r\n entry[`${event.name}`] = event.value;\r\n const selected = Object.assign(\r\n selectedValues?.selected || {},\r\n entry,\r\n );\r\n const newSelection: SelectedValues = {\r\n length: Object.keys(selected).length,\r\n selected,\r\n };\r\n\r\n setSelectedValues(newSelection);\r\n };\r\n\r\n const handleMultipleSelection = (events: JumpListOption[]) => {\r\n const entry = events.reduce((acc, event) => {\r\n if (event?.name) {\r\n if (!acc[event.name]) {\r\n acc[event.name] = event.value;\r\n } else {\r\n acc[event.name] = `${acc[event.name]},${event.value}`;\r\n }\r\n }\r\n\r\n return acc;\r\n }, {} as any);\r\n\r\n const selected = Object.assign(\r\n selectedAdditionalValues?.selected || {},\r\n entry,\r\n );\r\n\r\n const newSelection: SelectedValues = {\r\n length: Object.keys(selected).length,\r\n selected,\r\n };\r\n\r\n setSelectedAdditionalValues(newSelection);\r\n };\r\n\r\n const checkForQueryParamValue = (key: string, additional = false) => {\r\n const queryStringParam = getUrlParamValue(key);\r\n\r\n if (!additional) {\r\n return queryStringParam || selectedValues?.selected[key];\r\n }\r\n return queryStringParam || selectedAdditionalValues?.selected[key];\r\n };\r\n\r\n /**\r\n * Triggering the visibleFilterCallback whenever\r\n * selected values are updated.\r\n */\r\n useEffect(() => {\r\n if (visibleFilterCallback && selectedValues) {\r\n visibleFilterCallback(selectedValues);\r\n }\r\n }, [selectedValues]);\r\n\r\n /**\r\n * Add resize event listener to handle isMobile state\r\n */\r\n useEffect(() => {\r\n handleIsMobile();\r\n window.addEventListener('resize', () => handleIsMobile());\r\n return () => {\r\n window.removeEventListener('resize', () => handleIsMobile);\r\n };\r\n }, []);\r\n\r\n /**\r\n * Disable scroll on html element\r\n */\r\n useEffect(() => {\r\n if (isOverlayActive) {\r\n document.documentElement.classList.add('noscroll');\r\n } else {\r\n document.documentElement.classList.remove('noscroll');\r\n }\r\n }, [isOverlayActive]);\r\n\r\n /**\r\n * Check for current selections in the additional filters items.\r\n */\r\n useEffect(() => {\r\n if (additionalFilters) {\r\n const selected: any = {};\r\n additionalFilters.map((item) => {\r\n const querystringValue = checkForQueryParamValue(item.queryParam);\r\n if (querystringValue) {\r\n selected[item.queryParam] = querystringValue;\r\n }\r\n return false;\r\n });\r\n\r\n setSelectedAdditionalValues({\r\n length: selected.length,\r\n selected,\r\n });\r\n }\r\n }, [additionalFilters]);\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {hasSearch && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {visibleFilters && visibleFilters.map((filterItem, index) => (\r\n
\r\n handleSelection(event)}\r\n selectedValue={checkForQueryParamValue(filterItem.queryParam)}\r\n useScroller\r\n useSearch={hasSearch}\r\n disableFirst={disableFirst && !index}\r\n withDatePicker={filterItem.withDatePicker}\r\n defaultDatePickerValue={defaultDatePickerValue}\r\n onDateChange={onDateChange}\r\n includeDates={includeDates}\r\n datePickerLocale={datePickerLocale}\r\n />\r\n
\r\n ))}\r\n\r\n {additionalFilters && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n\r\n {isOverlayActive && (\r\n setIsOverlayActive(false)}>\r\n
\r\n {additionalFilters && additionalFiltersLabel && (\r\n <>\r\n
\r\n {additionalFilters?.map((additionalFilter) => (\r\n <>\r\n {Boolean(additionalFilter.items.length) && (\r\n handleMultipleSelection(events)}\r\n selectedValue={\r\n selectedAdditionalValues?.selected[additionalFilter?.queryParam]\r\n || additionalFilter.items[0].code\r\n }\r\n allowMultipleSelection={allowMultipleSelection}\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\n )}\r\n \r\n );\r\n};\r\n\r\nexport default FiltersPanel;\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","/*\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 './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","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\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 React, {\r\n useState,\r\n useEffect,\r\n useContext,\r\n useRef,\r\n useCallback,\r\n} from 'react';\r\nimport throttle from 'lodash.throttle';\r\nimport Reveal from 'react-reveal/Reveal';\r\nimport LocalizationContext from '../../contexts/Localizations';\r\nimport FiltersPanel from '../FiltersPanel';\r\nimport Container from '../helpers/Container';\r\nimport { getUrlParamValue, scrollIntoView } from '../../utilities/browser';\r\nimport { Loader, Pagination, SvgImage } from '../common';\r\nimport RidersListProps from './type';\r\nimport { Rider, Team } from '../../core/typings/riders';\r\nimport { RidersApiParams } from '../../core/typings/api';\r\nimport api from '../../core/api/models';\r\n\r\nimport './styles.scss';\r\n\r\nexport interface RidersListApiParams {\r\n id?: string;\r\n page?: number;\r\n countryCode?: string;\r\n discipline?: string;\r\n category?: string;\r\n year?: string;\r\n search?: string;\r\n}\r\n\r\nexport const TeamItem = ({\r\n countryCode,\r\n teamCode,\r\n teamName,\r\n format,\r\n url,\r\n}: Team) => {\r\n const WithLink = ({ children, ...props }: { children: JSX.Element[], className: string }) => (url\r\n ? {children}\r\n :
{children}
);\r\n\r\n return (\r\n
  • \r\n \r\n
    \r\n
    \r\n {teamName}\r\n
    \r\n {teamCode && (\r\n
    \r\n {teamCode}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n {format}\r\n
    \r\n {countryCode && (\r\n
    \r\n {countryCode.replace('RUS', '***').replace('BLR', '***')}\r\n
    \r\n )}\r\n
    \r\n
    \r\n {url && (\r\n \r\n )}\r\n
    \r\n
    \r\n
  • \r\n );\r\n};\r\n\r\nexport const RiderItem = ({\r\n statusCode,\r\n givenName,\r\n familyName,\r\n teamCode,\r\n teamName,\r\n countryCode,\r\n countryName,\r\n format,\r\n url,\r\n}: Rider) => {\r\n const WithLink = ({ children, ...props }: { children: JSX.Element[], className: string }) => (url\r\n ? {children}\r\n :
    {children}
    );\r\n\r\n return (\r\n
  • \r\n \r\n
    \r\n
    {givenName}
    \r\n
    {familyName}
    \r\n {teamCode && (\r\n
    \r\n {teamCode}\r\n
    \r\n )}\r\n
    \r\n\r\n
    \r\n
    \r\n {format}\r\n
    \r\n {countryCode && (\r\n
    \r\n {countryCode.replace('RUS', '***').replace('BLR', '***')}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
  • \r\n );\r\n};\r\n\r\nconst RidersList = ({\r\n title,\r\n competitionHubEntryId,\r\n disciplineCode,\r\n filters,\r\n statuses,\r\n forCompetitionHub,\r\n forTeams,\r\n}: RidersListProps) => {\r\n const resultsContainer = useRef(null);\r\n const [isFetching, setIsFetching] = useState(true);\r\n const [riders, setRiders] = useState([]);\r\n const [totalItems, setTotalItems] = useState(0);\r\n const [pageSize, setPageSize] = useState(0);\r\n const [apiQueryParams, setApiQueryParams] = useState();\r\n const { translations } = useContext(LocalizationContext);\r\n\r\n let apiEndpoint = api.riders.getRiders;\r\n\r\n if (forCompetitionHub) {\r\n apiEndpoint = api.riders.getCompetitionRiders;\r\n } else {\r\n apiEndpoint = forTeams ? api.riders.getTeams : api.riders.getRiders;\r\n }\r\n\r\n /**\r\n * Handles the default api params.\r\n */\r\n const getDefaultApiParams = () => {\r\n const state = {\r\n ...apiQueryParams,\r\n page: getUrlParamValue('page') || 1,\r\n };\r\n if (disciplineCode) {\r\n state.discipline = disciplineCode;\r\n }\r\n\r\n if (filters) {\r\n const hasYearFilter = filters.find((filter) => filter.queryParam === 'year');\r\n if (hasYearFilter) {\r\n state.year = hasYearFilter.items[0].code;\r\n }\r\n }\r\n\r\n if (competitionHubEntryId) {\r\n state.id = competitionHubEntryId;\r\n }\r\n return state;\r\n };\r\n\r\n /**\r\n * Calls a riders endpoint\r\n */\r\n const fetchRiders = async (params: RidersApiParams) => {\r\n setIsFetching(true);\r\n try {\r\n const response = await apiEndpoint(params);\r\n\r\n setRiders(response.items);\r\n setTotalItems(response.totalItems);\r\n setPageSize(response.pageSize);\r\n setIsFetching(false);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n };\r\n\r\n /**\r\n * Handles the filter change in the \r\n * @param params\r\n */\r\n const handleFilterChange = (params: any) => {\r\n const state = {\r\n ...apiQueryParams,\r\n ...params.selected,\r\n countryCode: params.selected.country,\r\n page: 1,\r\n };\r\n setApiQueryParams(state);\r\n\r\n if (resultsContainer.current) {\r\n scrollIntoView(resultsContainer.current, 'smooth');\r\n }\r\n };\r\n\r\n const throttledFetchRiders = useCallback(\r\n throttle(fetchRiders, 250, { leading: false }), [],\r\n );\r\n\r\n const handleSearch = (searchTerm: any) => {\r\n const state = {\r\n ...getDefaultApiParams(),\r\n search: searchTerm,\r\n page: 1,\r\n };\r\n setApiQueryParams(state);\r\n\r\n if (resultsContainer.current) {\r\n scrollIntoView(resultsContainer.current, 'smooth');\r\n }\r\n };\r\n\r\n const handlePageChange = (page: number) => {\r\n const state = { ...apiQueryParams, page };\r\n setApiQueryParams(state);\r\n\r\n if (resultsContainer.current) {\r\n scrollIntoView(resultsContainer.current, 'smooth');\r\n }\r\n };\r\n\r\n // testing\r\n useEffect(() => {\r\n if (apiQueryParams) {\r\n if (apiQueryParams.search) {\r\n throttledFetchRiders(apiQueryParams);\r\n } else {\r\n fetchRiders(apiQueryParams);\r\n }\r\n }\r\n }, [apiQueryParams]);\r\n\r\n useEffect(() => {\r\n setApiQueryParams(\r\n getDefaultApiParams() as RidersApiParams,\r\n );\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {filters && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n {title && (\r\n

    {title}

    \r\n )}\r\n\r\n {isFetching && (\r\n
    \r\n \r\n
    \r\n )}\r\n\r\n {Boolean(!isFetching && !riders.length) && (\r\n
    \r\n

    \r\n {translations.calendar.noResults}\r\n

    \r\n
    \r\n )}\r\n\r\n {Boolean(!isFetching && riders.length) && (\r\n
    \r\n {!forCompetitionHub && (\r\n
    \r\n {`${totalItems} ${translations.riders.resultsLabel}`}\r\n
    \r\n )}\r\n\r\n
      \r\n {riders.map((item, index) => (\r\n <>\r\n {!forTeams && (\r\n \r\n \r\n \r\n\r\n )}\r\n {forTeams && (\r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n
    \r\n\r\n {statuses && (\r\n
    \r\n {statuses.map((status) => (\r\n
    \r\n {status.label}\r\n
    \r\n ))}\r\n
    \r\n )}\r\n\r\n {apiQueryParams?.page && (\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 RidersList;\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 React, { useContext } from 'react';\r\nimport LocalizationContext from '../../contexts/Localizations';\r\nimport { Team as TeamDetailsProps } from '../../core/typings/riders';\r\nimport { Container } from '../helpers/Grid';\r\nimport './styles.scss';\r\n\r\nconst TeamDetails = ({\r\n teamCode,\r\n teamName,\r\n categoryName,\r\n country,\r\n website,\r\n email,\r\n pictureTeamJersey,\r\n address,\r\n}: TeamDetailsProps) => {\r\n const { translations } = useContext(LocalizationContext);\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {teamName}\r\n
    \r\n
    \r\n {`\r\n ${categoryName && `${categoryName} -`}\r\n ${teamCode && `${teamCode} -`}\r\n ${country && country.replace('BELARUS', '*******').replace('RUSSIAN FEDERATION', '*******')}\r\n `}\r\n
    \r\n
    \r\n
    \r\n {website && (\r\n
    \r\n {translations.competition.websiteLabel}\r\n {/* eslint-disable-next-line react/jsx-no-target-blank */}\r\n \r\n {website.title}\r\n \r\n
    \r\n )}\r\n {email && (\r\n
    \r\n {translations.competition.emailLabel}\r\n {/* eslint-disable-next-line react/jsx-no-target-blank */}\r\n \r\n {email.title}\r\n \r\n
    \r\n )}\r\n
    \r\n {address && (\r\n
    \r\n
    \r\n {translations.competition.addressLabel}\r\n
    \r\n {Object.values(address).map((line) => (\r\n <>\r\n {line}\r\n
    \r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n {pictureTeamJersey && (\r\n
    \r\n {teamName}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default TeamDetails;\r\n","import React from 'react';\r\nimport Accordion, { AccordionPanelType } from '../common/Accordion';\r\nimport RidersAccordionProps from './type';\r\nimport { Container } from '../helpers/Grid';\r\nimport { Rider } from '../../core/typings/riders';\r\nimport { RiderItem } from '../RidersList';\r\nimport './styles.scss';\r\n\r\nconst RidersAccordionContent = ({ riders }: { riders: Rider[] }) => (\r\n <>\r\n {riders.map((rider) => )}\r\n \r\n);\r\n\r\nconst RidersAccordion = ({\r\n panels,\r\n statuses,\r\n}: RidersAccordionProps) => {\r\n const createPanels = () => {\r\n const items: AccordionPanelType[] = [];\r\n panels.forEach((panel) => {\r\n items.push({\r\n label: panel.label,\r\n content: (),\r\n });\r\n });\r\n return items;\r\n };\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n {statuses && (\r\n
    \r\n
    \r\n {statuses.map((status) => (\r\n
    \r\n {status.label}\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 RidersAccordion;\r\n","import React from 'react';\r\nimport TeamDetailsModuleProps from './type';\r\nimport TeamDetails from '../../components/TeamDetails';\r\nimport RidersAccordion from '../../components/RidersAccordion';\r\nimport './styles.scss';\r\n\r\nconst TeamDetailsModule = ({\r\n details,\r\n riders,\r\n}: TeamDetailsModuleProps) => (\r\n
    \r\n {details && }\r\n {riders && }\r\n
    \r\n);\r\n\r\nexport default TeamDetailsModule;\r\n"],"sourceRoot":""}