{"version":3,"sources":["app/history.ts","features/App/App.slice.ts","features/App/constants.ts","features/AllEvents/AllEvents.slice.ts","features/AllEvents/constants.ts","app/store.ts","app/constants.ts","features/App/styledComponents.tsx","features/App/components/AppHeader/styledComponents.tsx","features/Results/constants.ts","components/SearchField/styledComponents.tsx","assets/icons/search-icon.svg","components/SearchField/SearchField.component.tsx","api/apiHttpService.ts","api/useEventFeed.ts","features/App/components/AppHeader/useSearchQuery.ts","hooks/useChangeLocationSearch.ts","features/App/components/AppHeader/AppHeader.component.tsx","hooks/useHidingHeader.ts","components/EventInfo/styledComponents.tsx","assets/icons/fb.svg","assets/icons/tw.svg","assets/icons/calendar.svg","assets/icons/flag.svg","assets/icons/users.svg","assets/icons/refresh.svg","components/LiveNewsSidebar/styledComponents.tsx","assets/icons/arrow-right.svg","global-styles.ts","api/useEventNews.ts","components/LiveNewsSidebar/LiveNewsSidebar.component.tsx","components/SplashScreen/styledComponents.tsx","components/SplashScreen/SplashScreen.component.tsx","components/EmptyPage/styledComponents.tsx","components/EmptyPage/EmptyPage.component.tsx","assets/icons/horse-lg.png","constants.ts","assets/icons/info.svg","components/EventInfo/EventInfo.component.tsx","features/App/hooks/useAskForEventUpdates.ts","features/AllEvents/styledComponents.tsx","features/AllEvents/components/AllEventsItem/styledComponents.tsx","components/Badge/styledComponents.tsx","components/Badge/Badge.component.tsx","assets/icons/calendar-accent.svg","assets/icons/live.svg","assets/icons/enter.svg","assets/icons/award.svg","features/AllEvents/components/AllEventsItem/AllEventsItem.component.tsx","hooks/useDidUpdate.ts","hooks/useDebounce.ts","hooks/useScrollOnSearch.ts","features/AllEvents/AllEvents.container.tsx","domain.ts","api/useAllEvents.ts","features/Summary/styledComponents.tsx","features/Summary/components/SummaryItem/styledComponents.tsx","assets/icons/times.svg","features/Summary/constants.ts","hooks/useWindowSize.ts","features/Summary/components/SummaryItem/SummaryItem.component.tsx","features/Results/styledComponents.tsx","api/useEventResults.ts","assets/icons/helmet.svg","assets/icons/horse.svg","features/Results/components/ResultsSJItem/ResultsSJItem.component.tsx","features/Results/components/ResultsDRItem/ResultsDRItem.component.tsx","features/Results/components/ResultsETItem/ResultsETItem.component.tsx","features/Results/components/ResultsCBItem/ResultsCBItem.component.tsx","features/Results/components/ResultsHTItem/ResultsHTItem.component.tsx","features/Results/components/ResultsSEItem/ResultsSEItem.component.tsx","components/SortIndicator/styledComponents.tsx","components/SortIndicator/SortIndicator.component.tsx","features/Results/components/ResultsSJTableHead/ResultsSJTableHead.component.tsx","features/Results/components/ResultsDRTableHead/ResultsDRTableHead.component.tsx","features/Results/components/ResultsETTableHead/ResultsETTableHead.component.tsx","features/Results/components/ResultsCBTableHead/ResultsCBTableHead.component.tsx","features/Results/components/ResultsHTTableHead/ResultsHTTableHead.component.tsx","features/Results/components/ResultsSETableHead/ResultsSETableHead.component.tsx","components/DownloadResults/styledComponents.tsx","assets/icons/doc.svg","components/DownloadResults/DownloadResults.component.tsx","assets/icons/results.png","components/HorizontalScrollPrompt/styledComponents.tsx","components/HorizontalScrollPrompt/HorizontalScrollPrompt.component.tsx","features/Results/Results.container.tsx","features/Results/hooks/useResultsSort.ts","features/Results/getResultsItem.ts","features/Results/getResultsTableHead.ts","features/Times/components/TimesItem/TimesItem.component.tsx","features/Times/styledComponents.tsx","components/DownloadTimes/styledComponents.tsx","components/DownloadTimes/DownloadTimes.component.tsx","assets/icons/times.png","features/Times/Times.container.tsx","api/useEventTimes.ts","features/Times/getDisabledProps.ts","components/CollapseButtonLine/styledComponents.tsx","components/CollapseButtonLine/CollapseButtonLine.component.tsx","assets/icons/doc-empty.svg","features/Summary/Summary.container.tsx","features/Summary/hooks/useScrollToShowResults.ts","components/RightSidebar/styledComponents.tsx","components/SponsorsSidebar/styledComponents.tsx","api/useEventAds.ts","components/SponsorsSidebar/SponsorsSidebar.component.tsx","components/RightSidebar/RightSidebar.component.tsx","features/App/App.container.tsx","app/theme.ts","index.tsx"],"names":["history","createBrowserHistory","slice","createSlice","name","initialState","searchQuery","allEvents","results","summary","reducers","setSearchQuery","state","action","payload","key","value","actions","scrollPosition","page","setScrollPosition","setPage","sagaMiddleware","createSagaMiddleware","store","configureStore","reducer","router","connectRouter","app","appSlice","allEventsSlice","middleware","routerMiddleware","devTools","process","AppQueryParamsConfigMap","c","StringParam","e","t","LocationID","SecretaryID","PCID","RCID","TABLET_BREAKPOINT","MOBILE_BREAKPOINT","BASE_API_URL","window","REACT_APP_API_URL","APP_WIDTH","Main","styled","div","MainContent","MainContentBody","AppContainer","Header","header","props","theme","grey","light","fontColor","primary","accent","SearchFieldContainer","attrs","className","transparentize","dark","SearchField","onChange","placeholder","style","src","searchIcon","alt","type","currentTarget","onClick","memo","apiHttpService","axios","create","baseURL","useEventFeed","eventId","useQuery","a","get","data","enabled","staleTime","Infinity","refetchIntervalInBackground","keepPreviousData","select","eventClassList","filter","item","clNumber","toString","includes","toLowerCase","useSearchQuery","useHistory","dispatch","useDispatch","searchMap","useSelector","pageKey","location","pathname","changeQuery","useChangeLocationSearch","useQueryParams","items","queryStr","search","replace","forEach","queryParamStr","param","split","q","concat","join","AppHeader","activeEvent","getModifiedSearchQuery","useState","pageYOffset","position","setPosition","visible","setVisible","useEffect","handleScroll","moving","document","documentElement","scrollTop","addEventListener","removeEventListener","transform","undefined","transition","useHidingHeader","to","activeClassName","eventName","v","StyledSplashWrapper","StyledEventInfo","red","StyledLiveNewsSidebar","GlobalStyle","createGlobalStyle","Array","from","_","i","map","light2","StyledEventImage","StyledCard","useEventNews","eventFeedUpdatedAt","dataUpdatedAt","news","Boolean","LiveNewsSidebar","expanded","showMore","setShowMore","newsProcessed","useMemo","handleArrowClick","direction","length","opacity","disabled","arrorRightIcon","moment","createdDate","format","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","description","eventNewsItemId","StyledSplashScreen","purple","SplashScreen","longLoadingText","setlongLoadingText","setTimeout","role","StyledEmptyPage","EmptyPage","title","children","APP_NAME_POSTFIX","connector","connect","query","isFetching","lastTimeUpdatedTimestamp","refetchEvent","refetch","queryClient","useQueryClient","timeStampUrl","Date","now","freshTimestamp","currentTimestamp","getQueryData","refetchInterval","useAskForEventUpdates","urlToShare","origin","logoUrl","href","target","rel","fbIcon","twIcon","calendarIcon","eventDate","flagIcon","venueName","usersIcon","reduce","acc","curr","numberOfEntries","refreshIcon","infoIcon","status","StyledAllEvents","StyledAllEventsItem","StyledDateTab","white","StyledBadge","span","Badge","icon","active","AllEventsItem","showItemGroup","useResizeObserver","ref","width","eventDateGroup","awardIcon","liveIcon","isOnlineEntry","enterIcon","useDidUpdateEffect","fn","inputs","didMountRef","useRef","current","useDebounce","delay","debouncedValue","setDebouncedValue","handler","clearTimeout","useScrollOnSearch","debounceTime","offsetY","searchQueryDebounced","y","getBoundingClientRect","top","scrollY","scroll","behavior","Disciplines","debouncedSearchQuery","containerRef","useLayoutEffect","body","changePage","queryData","queryParams","events","dateFrom","totalCount","pageSize","pageNo","useAllEvents","eventsData","isPreviousData","pageCount","Math","ceil","id","pointerEvents","Helmet","index","Number","breakLabel","nextLabel","previousLabel","onPageChange","selected","containerClassName","pageClassName","pageLinkClassName","previousClassName","previousLinkClassName","nextClassName","nextLinkClassName","breakClassName","breakLinkClassName","forcePage","StyledSummary","leftMenuCollapsed","StyledSummaryItem","hasActiveItem","HAS_NO_RESULTS_DISCIPLINES","BoxOffice","ArenaCourseHire","XCCourseHire","TrainingClinics","HAS_NO_TIMES_DISCIPLINES","useWindowSize","height","windowSize","setWindowSize","debouncedHandleResize","debounce","handleResize","innerWidth","innerHeight","SummaryItem","windowWidth","clientWidth","classItem","find","activeItem","hasResults","discipline","hasTimes","startTime","endTime","liveEventFeedStatusText","timesIcon","arenaName","clSort","className1","className2","judges","classDay","StyledResults","useEventResults","classId","sort","toDatePassed","autoRefreshResultsFeedTime","hours","minutes","seconds","intervalTimeMs","processedData","riderBSJARegNumber","riderFirstName","riderLastName","customHorseName","horseName","bridleNumber","orderBy","field","order","zeroValuesItems","withoutZeroValues","ResultsItem","result","sjPhasesCount","disabledFields","desktopVisible","mobileVisible","tabletVisible","isEnabled","phases","eaEventClassAndSort","sectionName","helmetIcon","horseIcon","ownerFirstName","ownerLastName","Fragment","isScoringEntered","whiteSpace","totalJFaults","sectionPlace","sjPlace","riderClassStatusCode","dressageTime","judge","judgeScores","dressageScore","toFixed","dressageCollective","eaDressagePercentageCustom","overallPlace","scoreByOptimumTime","sjFaults","xcFaults","evTrialScoringTime","evTrialTimePenalties","evTrialTotalScore","console","log","isCBScoreBE","showJumpingTime","sjPenalties","totalCBScoreBE","totalCBScore","htJumpPenalties","htTimeTaken","htTimePenalties","htTotalScore","selectedResult","StyledSortIndicator","SortIndicator","changeSort","tooltip","renderTooltipHelper","OverlayTrigger","overlay","Tooltip","marginLeft","stopPropagation","ResultsSJTableHead","scope","colSpan","showTabletHeader","ResultsDRTableHead","youngHorseResultsRule","ResultsETTableHead","ResultsCBTableHead","ResultsHTTableHead","ResultsSETableHead","StyledDownloadResults","DownloadResults","url","download","substring","lastIndexOf","docIcon","StyledHorizontalScrollPrompt","HorizontalScrollPrompt","promtpRef","localStorage","horizontalScrollPromptShown","shown","setShown","parent","parentNode","scrollWidth","handlePromptClick","onTouchStart","display","eventNewsFeedUpdatedAt","setSort","orderByPlacing","orderLiveResultsByPlacing","sortField","Showjumping","EventerTrial","HunterTrials","Shows","MixedEvents","useResultsSort","refetchResults","renderTitle","resultsDocUrl","activeClass","publishResultsLiveFeed","linkAvailable","ResultsSJItem","Dressage","ResultsDRItem","ResultsETItem","CombinedTraining","ResultsCBItem","ResultsHTItem","ResultsSEItem","getResultsItem","ResultsTableHead","getResultsTableHead","judgeNamesPositions","Object","keys","some","showSJFullResults","push","evStatus","secretaryEventId","TimesItem","time","disabledProps","drawnOrder","eaClassEntrySectionName","riderFullName","ownerFullName","breakTimeCustom","breakTimeName","StyledTimes","StyledDownloadTimes","DownloadTimes","times","useEventTimes","refetchTimes","invalidateQueries","getDisabledProps","emptyValueFields","timesDocUrl","publishTimesLiveFeed","StyledCollapseButtonLine","CollapseButtonLine","downloadText","downloadUrl","resultsBlockRef","useLocation","arrowIcon","borderSpacing","path","component","TimesContainer","ResultsContainer","render","StyledRightSidebar","StyledSponsorsSidebar","useEventAds","then","ads","SponsorsSidebar","sponsors","imageUrl","RightSidebar","setExpanded","flex","exact","AllEventsContainer","SummaryContainer","lightTheme","black","QueryClient","defaultOptions","queries","ReactDOM","client","ReactRouterRoute","Route","initialIsOpen","getElementById"],"mappings":"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","file":"static/js/main.fb8532f4.chunk.js","sourcesContent":["import { createBrowserHistory } from 'history';\r\n\r\nconst history = createBrowserHistory();\r\n\r\nexport default history;","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { SLICE_NAME } from './constants';\r\nimport { AppContainerState, Page } from './app';\r\n\r\nconst initialState: AppContainerState = {\r\n searchQuery: { allEvents: '', results: '', summary: '' },\r\n};\r\n\r\nexport const slice = createSlice({\r\n name: SLICE_NAME,\r\n initialState,\r\n\r\n reducers: {\r\n setSearchQuery: (state, action: PayloadAction<[Page, string]>) => {\r\n const [key, value] = action.payload;\r\n state.searchQuery[key] = value;\r\n },\r\n },\r\n});\r\n\r\nexport const { setSearchQuery } = slice.actions;\r\n\r\nexport default slice.reducer;\r\n","/*\r\n *\r\n * App constants\r\n *\r\n */\r\n\r\nexport const SLICE_NAME = 'app';\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { SLICE_NAME } from './constants';\r\nimport { AllEventsContainerState } from './allevents';\r\n\r\nconst initialState: AllEventsContainerState = {\r\n scrollPosition: 0,\r\n page: 0,\r\n};\r\n\r\nexport const slice = createSlice({\r\n name: SLICE_NAME,\r\n\r\n initialState,\r\n\r\n reducers: {\r\n setScrollPosition: (state, action: PayloadAction) => {\r\n state.scrollPosition = action.payload;\r\n },\r\n setPage: (state, action: PayloadAction) => {\r\n state.page = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport const { setScrollPosition, setPage } = slice.actions;\r\n\r\nexport default slice.reducer;\r\n","/*\r\n *\r\n * AllEvents constants\r\n *\r\n */\r\n\r\nexport const SLICE_NAME = 'allevents';\r\n","import { configureStore, AnyAction } from '@reduxjs/toolkit';\r\nimport {\r\n connectRouter,\r\n RouterState,\r\n routerMiddleware,\r\n} from 'connected-react-router';\r\nimport history from './history';\r\nimport { Reducer } from 'react';\r\nimport appSlice from '../features/App/App.slice';\r\nimport allEventsSlice from '../features/AllEvents/AllEvents.slice';\r\nimport createSagaMiddleware from 'redux-saga';\r\n// import rootSaga from './rootSaga';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\n\r\nconst store = configureStore({\r\n reducer: {\r\n // prettier-ignore\r\n router: connectRouter(history) as Reducer,\r\n app: appSlice,\r\n allEvents: allEventsSlice,\r\n },\r\n middleware: [routerMiddleware(history), sagaMiddleware],\r\n devTools: process.env.NODE_ENV !== 'production',\r\n});\r\n\r\n// sagaMiddleware.run(rootSaga);\r\n\r\nexport default store;\r\n\r\nexport type RootState = ReturnType;\r\nexport type AppDispatch = typeof store.dispatch;\r\n","import { StringParam } from 'use-query-params';\r\n\r\nexport const AppQueryParamsConfigMap = {\r\n c: StringParam, // class id\r\n e: StringParam, // event id\r\n t: StringParam,\r\n LocationID: StringParam, // location id\r\n SecretaryID: StringParam, // secretary id\r\n PCID: StringParam, // pony club id\r\n RCID: StringParam, // riding club id\r\n};\r\n\r\nexport const TABLET_BREAKPOINT = 1000;\r\nexport const MOBILE_BREAKPOINT = 750;\r\n\r\nexport const BASE_API_URL = window.REACT_APP_API_URL;\r\n","import styled from 'styled-components/macro';\r\nimport { TABLET_BREAKPOINT } from '../../app/constants';\r\n\r\nexport const APP_WIDTH = '1440px';\r\n\r\nexport const Container = styled.div`\r\n`;\r\n\r\n\r\nexport const Main = styled.div`\r\n flex-grow: 1;\r\n display: flex;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block;\r\n max-height: none;\r\n }\r\n .sponsors-mobile {\r\n display: none;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block;\r\n }\r\n }\r\n`;\r\n\r\nexport const MainContent = styled.div`\r\n align-items: flex-start;\r\n flex-direction: column;\r\n display: flex;\r\n width: 0;\r\n flex-grow: 1;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block;\r\n width: 100%;\r\n }\r\n`;\r\n\r\nexport const MainContentBody = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nexport const AppContainer = styled.div`\r\n max-width: ${APP_WIDTH};\r\n margin: 0 auto;\r\n position: relative;\r\n`;\r\n\r\n","import styled from 'styled-components/macro';\r\nimport { MOBILE_BREAKPOINT, TABLET_BREAKPOINT } from '../../../../app/constants';\r\nimport { MOBILE_PADDING } from '../../../Results/constants';\r\nimport { APP_WIDTH } from '../../styledComponents';\r\n\r\nexport const Header = styled.header`\r\n min-height: 11.2rem;\r\n display: flex;\r\n flex-direction: column;\r\n padding-bottom: 3rem;\r\n margin-bottom: 3rem;\r\n position: relative;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n padding: 0 ${MOBILE_PADDING}px;\r\n }\r\n .header-menu {\r\n position: fixed;\r\n z-index: 9999;\r\n background: white;\r\n width: 100%;\r\n left: 0;\r\n &__inner {\r\n max-width: ${APP_WIDTH};\r\n border-bottom: ${(props) => `1px solid ${props.theme.grey.light}`};\r\n display: flex;\r\n align-items: center;\r\n height: 8.2rem;\r\n margin: 0 auto;\r\n }\r\n &__search {\r\n position: fixed;\r\n left: 50%;\r\n transform: translate(-50%, 0);\r\n top: 50px;\r\n z-index: 99999;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n position: fixed;\r\n transform: none;\r\n left: 15%;\r\n right: 15%;\r\n max-width: none;\r\n width: auto;\r\n top: 66px;\r\n }\r\n @media (max-width: ${MOBILE_BREAKPOINT}px) {\r\n left: 10px;\r\n right: 10px;\r\n }\r\n }\r\n &__item {\r\n color: ${(props) => props.theme.fontColor.primary};\r\n padding: 0 2rem;\r\n font-size: 1.6rem;\r\n font-weight: 800;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n .lbl {\r\n margin-left: 10px;\r\n max-width: 190px;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: none;\r\n }\r\n }\r\n &-link {\r\n color: ${(props) => props.theme.fontColor.primary};\r\n text-decoration: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n border-bottom: 2px solid transparent;\r\n height: 100%;\r\n &.active {\r\n color: ${(props) => props.theme.accent};\r\n border-color: ${(props) => props.theme.accent};\r\n }\r\n }\r\n &:hover,\r\n &:focus {\r\n .header-menu__item-link {\r\n color: ${(props) => props.theme.accent};\r\n }\r\n }\r\n &:not(:last-child) {\r\n &:before {\r\n position: absolute;\r\n content: '';\r\n right: 0;\r\n width: 1px;\r\n height: 2rem;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n background-color: ${(props) => props.theme.grey.light};\r\n }\r\n }\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n }\r\n }\r\n`;\r\n","/*\r\n *\r\n * Results constants\r\n *\r\n */\r\n\r\nexport const SLICE_NAME = 'results';\r\n\r\n\r\nexport const REDUCED_VIEW_BREAKPOINT = 770;\r\nexport const MOBILE_PADDING = 20;","import styled from 'styled-components/macro';\r\nimport { transparentize } from 'polished';\r\n\r\nexport const SearchFieldContainer = styled.div.attrs(({ className }) => ({\r\n className,\r\n}))`\r\n width: 100%;\r\n max-width: 52rem;\r\n border-radius: 1.2rem;\r\n border: 1px solid ${(props) => props.theme.grey.light};\r\n height: 6rem;\r\n transition: 0.2s;\r\n position: relative;\r\n box-shadow: 0 0.5rem 2rem 0\r\n ${(props) => transparentize(0.88, props.theme.fontColor.primary)};\r\n\r\n .close-icon {\r\n position: absolute;\r\n right: 15px;\r\n font-size: 30px;\r\n top: 50%;\r\n transform: translate(0, -50%);\r\n color: ${(props) => props.theme.grey.dark};\r\n padding: 0 10px;\r\n }\r\n input {\r\n padding: 2rem 5rem;\r\n border: 0;\r\n height: 100%;\r\n width: 100%;\r\n border-radius: 1.2rem;\r\n font-size: 1.4rem;\r\n color: ${(props) => props.theme.fontColor.primary};\r\n font-weight: 700;\r\n &::-webkit-input-placeholder {\r\n /* Chrome/Opera/Safari */\r\n color: ${(props) => props.theme.grey.primary};\r\n font-size: 1.4rem;\r\n font-weight: 400;\r\n }\r\n &::-moz-placeholder {\r\n /* Firefox 19+ */\r\n color: ${(props) => props.theme.grey.primary};\r\n font-size: 1.4rem;\r\n font-weight: 400;\r\n }\r\n &:-ms-input-placeholder {\r\n /* IE 10+ */\r\n color: ${(props) => props.theme.grey.primary};\r\n font-size: 1.4rem;\r\n font-weight: 400;\r\n }\r\n &:-moz-placeholder {\r\n /* Firefox 18- */\r\n color: $grey;\r\n font-size: 1.4rem;\r\n font-weight: 400;\r\n }\r\n &:hover,\r\n &:focus {\r\n outline: none;\r\n box-shadow: none;\r\n }\r\n }\r\n &:hover,\r\n &:focus,\r\n &.active {\r\n border-color: ${(props) => props.theme.accent};\r\n box-shadow: 0 0.5rem 2rem 0\r\n ${(props) => transparentize(0.88, props.theme.accent)};\r\n }\r\n img {\r\n position: absolute;\r\n top: 50%;\r\n transform: translateY(-50%);\r\n left: 1.6rem;\r\n width: 2rem;\r\n }\r\n`;\r\n","export default __webpack_public_path__ + \"static/media/search-icon.f4287052.svg\";","/**\r\n *\r\n * SearchField\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent, CSSProperties } from 'react';\r\nimport { SearchFieldContainer } from './styledComponents';\r\nimport searchIcon from '../../assets/icons/search-icon.svg'\r\n\r\ninterface IProps {\r\n className?: string;\r\n onChange?: (v: string) => void;\r\n value?: string;\r\n placeholder?: string;\r\n style?: CSSProperties\r\n}\r\n\r\nconst SearchField: FunctionComponent = ({\r\n className,\r\n onChange,\r\n value,\r\n placeholder,\r\n style,\r\n}) => {\r\n return (\r\n \r\n \"\"\r\n onChange && onChange(e.currentTarget.value)}\r\n value={value}\r\n />\r\n {value && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default memo(SearchField);\r\n","import axios, { AxiosInstance } from 'axios';\r\nimport { BASE_API_URL } from '../app/constants';\r\n\r\nexport const apiHttpService: AxiosInstance = axios.create({\r\n baseURL: BASE_API_URL,\r\n});\r\n","import { useQuery } from 'react-query';\r\nimport { LiveFeedEvent } from '../domain';\r\nimport { apiHttpService } from './apiHttpService';\r\n\r\ninterface UseEventFeedParams {\r\n eventId?: string | null;\r\n searchQuery?: string;\r\n}\r\n\r\nexport function useEventFeed({\r\n eventId,\r\n searchQuery = '',\r\n}: UseEventFeedParams) {\r\n return useQuery(\r\n ['eventFeed', eventId],\r\n async () => {\r\n const { data } = await apiHttpService.get(\r\n `/GetEventFeed?eventId=${eventId}`,\r\n );\r\n return data;\r\n },\r\n {\r\n enabled: !!eventId,\r\n staleTime: Infinity,\r\n refetchIntervalInBackground: true,\r\n keepPreviousData: true,\r\n select: (data) =>\r\n searchQuery\r\n ? {\r\n ...data,\r\n eventClassList: data.eventClassList.filter(\r\n (item) =>\r\n item.clNumber?.toString().includes(searchQuery) ||\r\n item.className\r\n .toLowerCase()\r\n .includes(searchQuery.toLowerCase()),\r\n ),\r\n }\r\n : data,\r\n },\r\n );\r\n}\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { RootState } from '../../../../app/store';\r\nimport { Page } from '../../app';\r\nimport { setSearchQuery } from '../../App.slice';\r\n\r\nexport default function useSearchQuery() {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const searchMap = useSelector((state: RootState) => state.app.searchQuery);\r\n\r\n let pageKey: Page = 'results';\r\n let placeholder: string = 'Enter Horse or Rider name';\r\n\r\n switch (history.location.pathname) {\r\n case '/all-events':\r\n pageKey = 'allEvents';\r\n placeholder = 'Enter Event name or Discipline';\r\n break;\r\n case '/feed':\r\n pageKey = 'summary';\r\n placeholder = 'Enter Class Number or Part of Class Name';\r\n break;\r\n }\r\n\r\n const changeQuery = (value: string) => {\r\n dispatch(setSearchQuery([pageKey, value]));\r\n }\r\n\r\n return { searchQuery: searchMap[pageKey], changeQuery, placeholder };\r\n}\r\n","import { AppQueryParamsConfigMap } from './../app/constants';\r\nimport { useHistory } from 'react-router';\r\nimport { useQueryParams } from 'use-query-params';\r\n\r\nexport default function useChangeLocationSearch() {\r\n const history = useHistory();\r\n const [query] = useQueryParams(AppQueryParamsConfigMap);\r\n\r\n return (\r\n items: {\r\n param: keyof typeof query;\r\n value: string | undefined;\r\n }[],\r\n ) => {\r\n let queryStr = history.location.search.replace('?', '');\r\n\r\n items.forEach((item) => {\r\n const queryParamStr = `${item.param}=${item.value}`;\r\n\r\n queryStr = queryStr\r\n .split('&')\r\n .filter((q) => !q.includes(`${item.param}=`))\r\n .concat(item.value ? [queryParamStr] : [])\r\n .join('&');\r\n });\r\n\r\n return '?' + queryStr;\r\n };\r\n}\r\n","/**\r\n *\r\n * AppHeader\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport { Header } from './styledComponents';\r\nimport SearchField from '../../../../components/SearchField/SearchField.component';\r\nimport { NavLink, useHistory } from 'react-router-dom';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport { AppQueryParamsConfigMap } from '../../../../app/constants';\r\nimport { useEventFeed } from '../../../../api/useEventFeed';\r\nimport useSearchQuery from './useSearchQuery';\r\nimport useChangeLocationSearch from '../../../../hooks/useChangeLocationSearch';\r\nimport useHidingHeader from '../../../../hooks/useHidingHeader';\r\n\r\n\r\ninterface IProps {}\r\n\r\n\r\nconst AppHeader: FunctionComponent = () => {\r\n const [query] = useQueryParams(AppQueryParamsConfigMap);\r\n const { data: activeEvent } = useEventFeed({ eventId: query.e });\r\n const history = useHistory();\r\n const { searchQuery, changeQuery, placeholder } = useSearchQuery();\r\n\r\n const getModifiedSearchQuery = useChangeLocationSearch();\r\n const style = useHidingHeader();\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n All events\r\n \r\n
\r\n {activeEvent && (\r\n
\r\n \r\n Summary\r\n \r\n
{activeEvent.eventName}
\r\n
\r\n )}\r\n
\r\n
\r\n changeQuery(v)}\r\n placeholder={placeholder}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default memo(AppHeader);\r\n","import { useEffect, useState } from 'react';\r\n\r\nexport default function useHidingHeader() {\r\n const [position, setPosition] = useState(window.pageYOffset);\r\n const [visible, setVisible] = useState(true);\r\n\r\n useEffect(() => {\r\n const handleScroll = () => {\r\n let moving = window.pageYOffset;\r\n let visible = position > moving;\r\n\r\n setPosition(moving);\r\n\r\n if (document.documentElement.scrollTop < 100) {\r\n visible = true;\r\n }\r\n setVisible(visible);\r\n\r\n };\r\n\r\n window.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n window.removeEventListener('scroll', handleScroll);\r\n };\r\n });\r\n\r\n return {\r\n transform: visible ? undefined : `translate(0, -100px)`,\r\n transition: 'transform 0.4s ease-out',\r\n };\r\n}\r\n","import styled from 'styled-components/macro';\r\nimport { TABLET_BREAKPOINT } from '../../app/constants';\r\n\r\nexport const StyledSplashWrapper = styled.div`\r\n width: 100%;\r\n min-height: 207.5px;\r\n`;\r\n\r\nexport const StyledEventInfo = styled.div`\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 20px;\r\n padding: 0 20px;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block;\r\n }\r\n .social-links {\r\n margin-top: 12px;\r\n\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n text-align: center;\r\n margin-bottom: 20px;\r\n }\r\n }\r\n .link-social {\r\n margin-left: 1.6rem;\r\n }\r\n .mobile-live-news {\r\n display: none;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block;\r\n }\r\n }\r\n .logo {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n img {\r\n width: 100%;\r\n max-width: 9.3rem;\r\n }\r\n }\r\n .logo-title {\r\n font-size: 2rem;\r\n font-weight: 700;\r\n color: ${(props) => props.theme.fontColor.primary};\r\n line-height: 2.6rem;\r\n padding: 0 1.6rem;\r\n max-width: 325px;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n margin: 20px 0;\r\n max-width: none;\r\n text-align: center;\r\n }\r\n }\r\n .loading {\r\n padding: 1rem 1.6rem;\r\n height: 20px;\r\n display: block;\r\n }\r\n .event-data {\r\n &-wrap {\r\n display: flex;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block;\r\n }\r\n }\r\n &-item {\r\n margin-right: 50px;\r\n .icon {\r\n margin-right: 0.8rem;\r\n margin-left: -2.6rem;\r\n width: 1.8rem;\r\n }\r\n @media (max-width: 1180px) {\r\n margin-bottom: 20px;\r\n }\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n width: 50%;\r\n margin: 0 auto 20px auto;\r\n }\r\n }\r\n &-col {\r\n @media (max-width: 1180px) {\r\n display: block;\r\n }\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: flex;\r\n padding-left: 25px;\r\n }\r\n display: flex;\r\n align-items: start;\r\n }\r\n &-txt {\r\n font-size: 1.2rem;\r\n font-weight: 700;\r\n\r\n color: ${(props) => props.theme.fontColor.primary};\r\n &.md {\r\n font-size: 1.6rem;\r\n }\r\n &.grey {\r\n color: ${(props) => props.theme.grey.primary};\r\n }\r\n &.red {\r\n color: ${(props) => props.theme.red};\r\n }\r\n }\r\n }\r\n`;\r\n","export default __webpack_public_path__ + \"static/media/fb.f8b06d44.svg\";","export default __webpack_public_path__ + \"static/media/tw.fa274e7b.svg\";","export default __webpack_public_path__ + \"static/media/calendar.bb3495bb.svg\";","export default __webpack_public_path__ + \"static/media/flag.22b2a65e.svg\";","export default __webpack_public_path__ + \"static/media/users.80f78c43.svg\";","export default __webpack_public_path__ + \"static/media/refresh.2e0fe4a6.svg\";","import styled from 'styled-components/macro';\r\n\r\nexport const StyledLiveNewsSidebar = styled.div<{ showMore: boolean }>`\r\n margin-bottom: 4.6rem;\r\n overflow: overlay;\r\n .head {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 1.6rem;\r\n padding: 0 1.6rem;\r\n }\r\n .title {\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n color: ${(props) => props.theme.fontColor.primary};\r\n display: flex;\r\n align-items: center;\r\n }\r\n .counter {\r\n font-size: 1.6rem;\r\n font-weight: 700;\r\n color: ${(props) => props.theme.grey.light};\r\n margin-left: 0.8rem;\r\n }\r\n .pager {\r\n display: flex;\r\n align-items: center;\r\n .btn-icon {\r\n background-image: none;\r\n background-color: transparent;\r\n border: 0;\r\n height: 3rem;\r\n width: 3rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n &.prev {\r\n transform: rotate(180deg);\r\n }\r\n }\r\n }\r\n .card {\r\n margin-bottom: 4.8rem;\r\n }\r\n`;\r\n","export default __webpack_public_path__ + \"static/media/arrow-right.d6d8be3f.svg\";","import { transparentize } from 'polished';\r\nimport styled, { createGlobalStyle } from 'styled-components/macro';\r\nimport { MOBILE_BREAKPOINT, TABLET_BREAKPOINT } from './app/constants';\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\nhtml, body, div, span, applet, object, iframe,\r\nh1, h2, h3, h4, h5, h6, p, blockquote, pre,\r\na, abbr, acronym, address, big, cite, code,\r\ndel, dfn, em, img, ins, kbd, q, s, samp,\r\nsmall, strike, strong, sub, sup, tt, var,\r\nb, u, i, center,\r\ndl, dt, dd, ol, ul, li,\r\nfieldset, form, label, legend,\r\ntable, caption, tbody, tfoot, thead, tr, th, td,\r\narticle, aside, canvas, details, embed, \r\nfigure, figcaption, footer, header, hgroup, \r\nmenu, nav, output, ruby, section, summary,\r\ntime, mark, audio, video {\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tborder: 0;\r\n\tfont-size: 100%;\r\n\tfont: inherit;\r\n\tvertical-align: middle;\r\n}\r\nbutton{\r\n border: 0;\r\n background: transparent;\r\n}\r\n/* HTML5 display-role reset for older browsers */\r\narticle, aside, details, figcaption, figure, \r\nfooter, header, hgroup, menu, nav, section {\r\n\tdisplay: block;\r\n}\r\nol, ul {\r\n\tlist-style: none;\r\n}\r\nblockquote, q {\r\n\tquotes: none;\r\n}\r\nblockquote:before, blockquote:after,\r\nq:before, q:after {\r\n\tcontent: '';\r\n\tcontent: none;\r\n}\r\ntable {\r\n\tborder-collapse: collapse;\r\n\tborder-spacing: 0;\r\n}\r\n\r\nhtml{\r\n font-family: 'Open Sans', sans-serif;\r\n font-size:10px;\r\n height:100%;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n text-rendering: optimizeLegibility;\r\n}\r\n\r\nhtml body{\r\n font-family: 'Open Sans', sans-serif;\r\n}\r\n.mh-100{\r\n max-height: 100% !important;\r\n}\r\na{ text-decoration: none }\r\n.link{\r\n color: ${(props) => props.theme.accent};\r\n text-decoration: none;\r\n cursor: pointer;\r\n &:focus,\r\n &:hover{\r\n color:${(props) => props.theme.accent};\r\n text-decoration: none;\r\n }\r\n}\r\n.lbl{\r\n color:${(props) => props.theme.grey.primary};\r\n font-size: 1.2rem;\r\n font-weight: 600;\r\n}\r\n.txt{\r\n font-size: 1.4rem;\r\n font-weight: 400;\r\n color: ${(props) => props.theme.fontColor.primary};\r\n &-accent{\r\n color:${(props) => props.theme.accent}!important;\r\n }\r\n &-secondary{\r\n color:${(props) => props.theme.grey.primary}!important;\r\n }\r\n &.accent-hover{\r\n &:hover,\r\n &:focus{\r\n color:${(props) => props.theme.accent};\r\n }\r\n }\r\n}\r\n\r\n.tooltip-inner{\r\n font-size: 14px;\r\n padding: 5px 10px;\r\n}\r\n\r\n.live-news-time {\r\n color: ${(props) => props.theme.fontColor.primary};\r\n font-size: 1.6rem;\r\n font-weight: 700;\r\n }\r\n .live-news-event {\r\n font-size: 1.2rem;\r\n font-weight: 400;\r\n color: ${(props) => props.theme.fontColor.primary};\r\n line-height: 1.4;\r\n }\r\n .live-news-time-lbl {\r\n margin-bottom: 1.6rem;\r\n }\r\n .live-news-time-lbl,\r\n .live-news-event-lbl {\r\n color: ${(props) => props.theme.grey.primary};\r\n font-size: 1.2rem;\r\n font-weight: 600;\r\n }\r\n\r\n.infinite-scroll-component{\r\n overflow: visible !important;\r\n}\r\n\r\n.overflow{\r\n &-y{\r\n &-auto{\r\n overflow-y: auto!important;\r\n }\r\n }\r\n}\r\n\r\n${Array.from(Array(100), (_, i) => i)\r\n .map(\r\n (i) => `.mr-${i}{\r\n \tmargin-right:${i}px!important;\r\n \t}`,\r\n )\r\n .join(' ')}\r\n\r\n${Array.from(Array(100), (_, i) => i)\r\n .map(\r\n (i) => `.mb-${i}{\r\n \tmargin-bottom:${i}px!important;\r\n \t}`,\r\n )\r\n .join(' ')}\r\n\r\n${Array.from(Array(100), (_, i) => i)\r\n .map(\r\n (i) => `.mt-${i}{\r\n \tmargin-top:${i}px!important;\r\n \t}`,\r\n )\r\n .join(' ')}\r\n\r\n${Array.from(Array(100), (_, i) => i)\r\n .map(\r\n (i) => `.fs-${i}{\r\n\t\tfont-size:${i / 10}rem!important;\r\n \t}`,\r\n )\r\n .join(' ')}\r\n\r\n${Array.from(Array(9), (_, i) => i)\r\n .map(\r\n (i) => `.fw-${i}{\r\n\t\tfont-weight:${i * 100}!important;\r\n \t}`,\r\n )\r\n .join(' ')}\r\n\r\n.tablet-hidden{\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: none!important;\r\n }\r\n}\r\n.mobile-hidden{\r\n @media (max-width: ${MOBILE_BREAKPOINT}px) {\r\n display: none!important;\r\n }\r\n}\r\n.tablet-visible{\r\n display: none !important;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block!important;\r\n }\r\n}\r\nth.mobile-visible, td.mobile-visible{\r\n display: none !important;\r\n @media (max-width: ${MOBILE_BREAKPOINT}px) {\r\n display: table-cell!important;\r\n }\r\n}\r\n.mobile-visible{\r\n display: none !important;\r\n @media (max-width: ${MOBILE_BREAKPOINT}px) {\r\n display: block!important;\r\n }\r\n}\r\n.horse-detailed {\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n padding: 0 !important;\r\n }\r\n}\r\n.nav.nav-tabs {\r\n border-bottom: 0;\r\n .nav-item {\r\n &:first-child {\r\n margin-left: 2.8rem;\r\n }\r\n &:last-child {\r\n margin-right: 2.8rem;\r\n }\r\n }\r\n .nav-link {\r\n font-size: 1.6rem;\r\n font-weight: 800;\r\n color: ${(props) => props.theme.fontColor.primary};\r\n line-height: 2.1rem;\r\n border: 0;\r\n padding: 2rem 1.6rem;\r\n &.active {\r\n color: ${(props) => props.theme.accent};\r\n border-bottom: 3px solid ${(props) => props.theme.accent};\r\n }\r\n }\r\n }\r\n .table.sticky-head thead{\r\n position: sticky;\r\n top:0;\r\n }\r\n\r\n .table{\r\n border-collapse: separate;\r\n border-spacing: 0;\r\n thead{\r\n tr{\r\n &:first-child{\r\n th{\r\n &:first-child{\r\n border-top-left-radius:1rem;\r\n border-left:1px solid ${(props) => props.theme.grey.light};\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n border-left:0 !important;\r\n border-radius: 0;\r\n }\r\n }\r\n &:last-child{\r\n border-top-right-radius:1rem;\r\n border-right:1px solid ${(props) => props.theme.grey.light};\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n border-right:0 !important;\r\n border-radius: 0;\r\n }\r\n }\r\n }\r\n }\r\n th{\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n padding: 1.5rem 1rem;\r\n border-top: 0;\r\n }\r\n font-size: 1rem;\r\n font-weight: 700;\r\n color: ${(props) => props.theme.grey.primary};\r\n background-color: ${(props) => props.theme.grey.light2};\r\n border-top: 1px solid ${(props) => props.theme.grey.light};\r\n border-bottom: 1px solid ${(props) => props.theme.grey.light};\r\n vertical-align: middle;\r\n padding: 1rem 0.7rem !important;\r\n }\r\n }\r\n }\r\n tbody{\r\n tr{\r\n td{\r\n vertical-align: middle;\r\n padding: 2rem 1rem;\r\n border-bottom:1px solid ${(props) => props.theme.grey.light};\r\n font-size: 1.2rem;\r\n &:first-child{\r\n border-left: 1px solid ${(props) => props.theme.grey.light};\r\n }\r\n &:last-child{\r\n border-right: 1px solid ${(props) => props.theme.grey.light};\r\n }\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n padding: 0.7rem;\r\n }\r\n }\r\n &:last-child{\r\n td{\r\n &:first-child{\r\n border-bottom-left-radius:1rem;\r\n }\r\n &:last-child{\r\n border-bottom-right-radius:1rem;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n.table>:not(:last-child)>:last-child>*{\r\n border-bottom-color: ${(props) => props.theme.grey.light};\r\n}\r\n.table-decorated-cell{\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n div + div{\r\n margin-left:1.4rem;\r\n padding-left:1.4rem;\r\n border-left:1px solid ${(props) => props.theme.grey.light};\r\n }\r\n}\r\n.dynamic{\r\n transition: 0.2s;\r\n}\r\n.txt-right{\r\n text-align: right;\r\n}\r\n@media (max-width: ${TABLET_BREAKPOINT}px) {\r\n #root, .container, html, body{\r\n height: auto !important;\r\n }\r\n html, body{\r\n overflow: auto;\r\n }\r\n}\r\n\r\n.table th:empty, .table td:empty{\r\n padding: 0 !important;\r\n}\r\n\r\n`;\r\n\r\nexport const StyledEventImage = styled.div`\r\n overflow: hidden;\r\n img {\r\n width: 87px;\r\n height: 46px;\r\n object-fit: cover;\r\n }\r\n`;\r\n\r\nexport const StyledCard = styled.div`\r\n border: 0;\r\n transition: 0.2s;\r\n border-radius: 1rem;\r\n .card-body {\r\n border-radius: 1rem;\r\n }\r\n &.active {\r\n .card-body {\r\n border-color: ${(props) => props.theme.accent};\r\n }\r\n box-shadow: 0 0.5rem 2rem 0\r\n ${(props) => transparentize(0.88, props.theme.fontColor.primary)};\r\n }\r\n .card-body {\r\n border: 1px solid ${(props) => props.theme.grey.light};\r\n border-radius: 1rem;\r\n padding: 1.8rem 1.6rem;\r\n }\r\n .card-footer {\r\n background-color: transparent;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 2rem 1.5rem 1.5rem 1.5rem;\r\n border: 1px solid ${(props) => props.theme.grey.light};\r\n border-bottom-left-radius: 1rem !important;\r\n border-bottom-right-radius: 1rem !important;\r\n margin-top: -0.5rem;\r\n border-top: 0;\r\n .link {\r\n font-size: 1.4rem;\r\n font-weight: 700;\r\n }\r\n }\r\n &.card-vertical {\r\n width: 6.2rem;\r\n height: 26rem;\r\n .card-body {\r\n position: relative;\r\n width: 6.2rem;\r\n height: 26rem;\r\n .txt {\r\n transform-origin: 0 0;\r\n transform: rotate(-90deg) translate(-50%, -50%);\r\n position: absolute;\r\n left: 50%;\r\n top: 50%;\r\n width: 22rem;\r\n text-align: center;\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default GlobalStyle;\r\n","import { useQuery } from 'react-query';\r\nimport { LiveFeedEventNews } from '../domain';\r\nimport { apiHttpService } from './apiHttpService';\r\nimport { useEventFeed } from './useEventFeed';\r\n\r\nexport function useEventNews(eventId?: string | null) {\r\n const { dataUpdatedAt: eventFeedUpdatedAt } = useEventFeed({ eventId });\r\n\r\n return useQuery(\r\n ['eventNews', eventId, eventFeedUpdatedAt],\r\n async () => {\r\n const { data } = await apiHttpService.get<{\r\n news: LiveFeedEventNews[];\r\n }>(`/GetEventNews?eventId=${eventId}`);\r\n\r\n return data.news;\r\n },\r\n { enabled: Boolean(eventId && eventFeedUpdatedAt) },\r\n );\r\n}\r\n","/**\r\n *\r\n * LiveNewsSidebar\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent, useState, useMemo } from 'react';\r\nimport { StyledLiveNewsSidebar } from './styledComponents';\r\nimport arrorRightIcon from '../../assets/icons/arrow-right.svg';\r\nimport { StyledCard } from '../../global-styles';\r\nimport { useEventNews } from '../../api/useEventNews';\r\nimport { AppQueryParamsConfigMap } from '../../app/constants';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport moment from 'moment';\r\n\r\ninterface IProps {\r\n expanded: boolean;\r\n}\r\n\r\nconst LiveNewsSidebar: FunctionComponent = ({ expanded }) => {\r\n const [{ e: eventId }] = useQueryParams(AppQueryParamsConfigMap);\r\n const [showMore, setShowMore] = useState(false);\r\n const [page, setPage] = useState(0);\r\n\r\n const { data: news } = useEventNews(eventId);\r\n\r\n const newsProcessed = useMemo(\r\n () => (showMore ? news : news?.slice(page, page + 1)),\r\n [showMore, news, page],\r\n );\r\n\r\n const handleArrowClick = (direction: number) => {\r\n setPage(page + direction);\r\n }\r\n\r\n if (!news?.length) {\r\n return null;\r\n }\r\n\r\n if (expanded) {\r\n return (\r\n \r\n
\r\n
\r\n News Feed\r\n {showMore ? (\r\n
{news.length}
\r\n ) : (\r\n
\r\n {page + 1} of {news.length}\r\n
\r\n )}\r\n
\r\n {!showMore && news.length > 1 && (\r\n
\r\n handleArrowClick(-1)}\r\n >\r\n \"\"\r\n \r\n handleArrowClick(1)}\r\n >\r\n \"\"\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n {newsProcessed?.map((item) => (\r\n
\r\n
\r\n
\r\n {moment(item.createdDate).format('HH:mm')}\r\n
\r\n
\r\n {moment(item.createdDate).calendar(null, {\r\n sameDay: '[Today]',\r\n nextDay: '[Tomorrow]',\r\n nextWeek: 'dddd',\r\n lastDay: '[Yesterday]',\r\n lastWeek: '[Last] dddd',\r\n sameElse: 'DD/MM/YYYY',\r\n })}\r\n
\r\n
\r\n
\r\n
Live News
\r\n
{item.description}
\r\n
\r\n
\r\n ))}\r\n {news.length > 1 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n
\r\n News Feed\r\n
\r\n
\r\n
\r\n );\r\n }\r\n};\r\n\r\nexport default memo(LiveNewsSidebar);\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledSplashScreen = styled.div`\r\n padding: 40px 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100%;\r\n width: 100%;\r\n .spinner-grow {\r\n width: 3rem;\r\n height: 3rem;\r\n color: ${(props) => props.theme.purple};\r\n }\r\n .spinner-border {\r\n color: ${(props) => props.theme.purple};\r\n }\r\n`;\r\n","/**\r\n *\r\n * SplashScreen\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent, useState, useEffect } from 'react';\r\nimport { StyledSplashScreen } from './styledComponents';\r\n\r\ninterface IProps {}\r\n\r\nconst SplashScreen: FunctionComponent = () => {\r\n const [longLoadingText, setlongLoadingText] = useState(false);\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setlongLoadingText(true);\r\n }, 2000);\r\n }, [])\r\n return (\r\n \r\n
\r\n {longLoadingText && (\r\n Please be patient... Loading latest data...\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default memo(SplashScreen);\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledEmptyPage = styled.div`\r\n padding: 50px 0;\r\n`;\r\n","/**\r\n *\r\n * EmptyPage\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport { StyledEmptyPage } from './styledComponents';\r\nimport horseIcon from '../../assets/icons/horse-lg.png';\r\n\r\ninterface IProps {\r\n title: string;\r\n}\r\n\r\nconst EmptyPage: FunctionComponent = ({ title, children }) => {\r\n return (\r\n \r\n
\r\n
\r\n {title}\r\n
\r\n
{children}
\r\n \"\"\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default memo>(EmptyPage);\r\n","export default \"data:image/png;base64,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\"","export const APP_NAME_POSTFIX = 'Driven by MyRidingLife';","export default __webpack_public_path__ + \"static/media/info.02ee54fa.svg\";","/**\r\n *\r\n * EventInfo\r\n *\r\n */\r\n\r\nimport React, { FunctionComponent } from 'react';\r\nimport { StyledEventInfo, StyledSplashWrapper } from './styledComponents';\r\nimport fbIcon from '../../assets/icons/fb.svg';\r\nimport twIcon from '../../assets/icons/tw.svg';\r\nimport calendarIcon from '../../assets/icons/calendar.svg';\r\nimport flagIcon from '../../assets/icons/flag.svg';\r\nimport usersIcon from '../../assets/icons/users.svg';\r\nimport refreshIcon from '../../assets/icons/refresh.svg';\r\nimport LiveNewsSidebarComponent from '../LiveNewsSidebar/LiveNewsSidebar.component';\r\nimport { connect, ConnectedProps } from 'react-redux';\r\nimport { RootState } from '../../app/store';\r\nimport moment from 'moment';\r\nimport { useEventFeed } from '../../api/useEventFeed';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport { AppQueryParamsConfigMap } from '../../app/constants';\r\nimport SplashScreenComponent from '../SplashScreen/SplashScreen.component';\r\nimport EmptyPageComponent from '../EmptyPage/EmptyPage.component';\r\nimport { APP_NAME_POSTFIX } from '../../constants';\r\nimport useAskForEventUpdates from '../../features/App/hooks/useAskForEventUpdates';\r\nimport infoIcon from '../../assets/icons/info.svg';\r\n\r\ninterface IProps {}\r\nconst connector = connect((state: RootState) => ({}), {});\r\n\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nconst EventInfo: FunctionComponent = () => {\r\n const [query] = useQueryParams(AppQueryParamsConfigMap);\r\n const { data: activeEvent, isFetching } = useEventFeed({\r\n eventId: query.e,\r\n });\r\n\r\n const { data: lastTimeUpdatedTimestamp } = useAskForEventUpdates(query.e);\r\n\r\n if (!activeEvent && isFetching) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (!activeEvent && query.e) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n if (!activeEvent) {\r\n return null;\r\n }\r\n\r\n const urlToShare = `${window.location.origin}/feed?e=${activeEvent.eventId}`;\r\n\r\n if (!activeEvent.eventName) {\r\n return null;\r\n }\r\n return (\r\n \r\n
\r\n {activeEvent.eventName}\r\n
\r\n
\r\n
{activeEvent.eventName}
\r\n\r\n
\r\n \r\n \"\"\r\n \r\n \r\n \"\"\r\n \r\n
\r\n

\r\n {isFetching ? 'Loading...' : ''}\r\n

\r\n
\r\n\r\n
\r\n
\r\n
Event Date
\r\n
\r\n
\r\n \"\"\r\n
\r\n
{activeEvent.eventDate}
\r\n
\r\n
\r\n
\r\n
Venue
\r\n
\r\n
\r\n \"\"\r\n
\r\n
{activeEvent.venueName}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Total Entries
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n {activeEvent.eventClassList.reduce(\r\n (acc, curr) => acc + curr.numberOfEntries,\r\n 0,\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
Last Time Updated
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n {moment(lastTimeUpdatedTimestamp).format('DD MMM YYYY hh:mm A')}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Status
\r\n
\r\n
\r\n \"\"\r\n
\r\n {activeEvent.status === 'Results Available' ? (\r\n
Results Available
\r\n ) : (\r\n \r\n {activeEvent.status}\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 connector(EventInfo);\r\n","import { useQuery, useQueryClient } from 'react-query';\r\nimport { apiHttpService } from '../../../api/apiHttpService';\r\nimport { useEventFeed } from '../../../api/useEventFeed';\r\n\r\nexport default function useAskForEventUpdates(\r\n eventId: string | null | undefined,\r\n) {\r\n const { data: activeEvent, refetch: refetchEvent } = useEventFeed({\r\n eventId,\r\n });\r\n\r\n const queryClient = useQueryClient();\r\n\r\n const timeStampUrl = activeEvent?.timeStampUrl;\r\n return useQuery(\r\n ['eventFeedUpdates', timeStampUrl],\r\n async () => {\r\n // handling case when event comes but it's empty and doesn't have timeStampUrl\r\n if (!timeStampUrl) {\r\n refetchEvent();\r\n return null;\r\n }\r\n\r\n const { data: freshTimestamp } = await apiHttpService.get(\r\n timeStampUrl + `?t=${Date.now()}`, // adding timestamp here to avoid cache of this request\r\n );\r\n\r\n const currentTimestamp = queryClient.getQueryData([\r\n 'eventFeedUpdates',\r\n timeStampUrl,\r\n ]);\r\n\r\n if (currentTimestamp && currentTimestamp !== freshTimestamp) {\r\n refetchEvent();\r\n }\r\n\r\n return freshTimestamp;\r\n },\r\n {\r\n refetchInterval: 10000, // ask for updates every 10 secs\r\n enabled: Boolean(activeEvent),\r\n },\r\n );\r\n}\r\n","import styled from 'styled-components/macro';\r\nimport { MOBILE_PADDING } from '../Results/constants';\r\n\r\nexport const StyledAllEvents = styled.div`\r\n padding: 0 ${MOBILE_PADDING}px;\r\n .pagination {\r\n font-size: 12px;\r\n margin-bottom: 1.6rem;\r\n }\r\n .page-link {\r\n width: 30px;\r\n height: 30px;\r\n font-weight: 600;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: ${(props) => props.theme.accent};\r\n border: 0;\r\n border-radius: 100%;\r\n overflow: hidden;\r\n }\r\n .page-item.active .page-link {\r\n color: ${(props) => props.theme.purple};\r\n background-color: ${(props) => props.theme.grey.light};\r\n border-color: ${(props) => props.theme.grey.light};\r\n }\r\n .page-item:first-child .page-link {\r\n display: none;\r\n }\r\n .page-item:last-child .page-link {\r\n display: none;\r\n }\r\n .page-item{\r\n margin: 0 5px;\r\n }\r\n`;\r\n\r\nexport const StyledDateGroup = styled.div`\r\n font-size: 14px;\r\n font-weight: 700;\r\n`;\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledAllEventsItem = styled.div`\r\n &:not(:last-child) {\r\n margin-bottom: 1.6rem;\r\n }\r\n .text-right {\r\n text-align: right;\r\n }\r\n .card-head {\r\n @media (max-width: 500px) {\r\n display: block !important;\r\n }\r\n }\r\n .event-name-cell {\r\n flex: 0 0 auto;\r\n width: 300px;\r\n }\r\n .event-date-cell {\r\n flex: 0 0 auto;\r\n width: 150px;\r\n }\r\n`;\r\n\r\nexport const StyledDateTab = styled.div`\r\n position: sticky;\r\n background: ${(props) => props.theme.white};\r\n padding-bottom: 10px;\r\n top: 0;\r\n`;\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledBadge = styled.span`\r\n display: inline-flex;\r\n align-items: center;\r\n padding: 0.5rem 0.8rem;\r\n border-radius: 3.2rem;\r\n border: 1px solid ${(props) => props.theme.grey.light};\r\n text-decoration: none;\r\n &+ span {\r\n margin-left: 10px;\r\n }\r\n .icon {\r\n margin-right: 0.5rem;\r\n width: 1.6rem;\r\n }\r\n .txt {\r\n color: ${(props) => props.theme.fontColor.primary};\r\n text-decoration: none;\r\n font-size: 1rem;\r\n font-weight: 700;\r\n }\r\n &.accent {\r\n border-color: ${(props) => props.theme.purple};\r\n .txt {\r\n color: ${(props) => props.theme.accent};\r\n text-decoration: none;\r\n }\r\n }\r\n &.active {\r\n background-color: ${(props) => props.theme.purple};\r\n text-decoration: none;\r\n .txt {\r\n color: ${(props) => props.theme.white};\r\n text-decoration: none;\r\n }\r\n }\r\n &.grey-accent {\r\n border-color: ${(props) => props.theme.grey.light};\r\n .txt {\r\n color: ${(props) => props.theme.purple};\r\n text-decoration: none;\r\n }\r\n }\r\n &.no-border {\r\n border: 0px;\r\n }\r\n &:hover,\r\n &:focus {\r\n text-decoration: none;\r\n }\r\n`;\r\n","/**\r\n *\r\n * Badge\r\n *\r\n */\r\n\r\nimport React, { FunctionComponent } from 'react';\r\nimport { StyledBadge } from './styledComponents';\r\n\r\ninterface IProps {\r\n icon?: React.ReactElement;\r\n accent?: boolean;\r\n active?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst Badge: FunctionComponent = ({\r\n children,\r\n icon,\r\n accent,\r\n className,\r\n active,\r\n}) => {\r\n return (\r\n \r\n {icon &&
{icon}
}\r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nexport default Badge;\r\n","export default __webpack_public_path__ + \"static/media/calendar-accent.d3891747.svg\";","export default __webpack_public_path__ + \"static/media/live.ddeeff18.svg\";","export default __webpack_public_path__ + \"static/media/enter.359c4867.svg\";","export default __webpack_public_path__ + \"static/media/award.d5a932bc.svg\";","/**\r\n *\r\n * AllEventsItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport { StyledAllEventsItem, StyledDateTab } from './styledComponents';\r\nimport { StyledCard, StyledEventImage } from '../../../../global-styles';\r\nimport Badge from '../../../../components/Badge/Badge.component';\r\nimport calendarIcon from '../../../../assets/icons/calendar-accent.svg';\r\nimport liveIcon from '../../../../assets/icons/live.svg';\r\nimport enterIcon from '../../../../assets/icons/enter.svg';\r\nimport awardIcon from '../../../../assets/icons/award.svg';\r\nimport useResizeObserver from 'use-resize-observer';\r\nimport { LiveFeedEvent } from '../../../../domain';\r\nimport { Link } from 'react-router-dom';\r\nimport useChangeLocationSearch from '../../../../hooks/useChangeLocationSearch';\r\n\r\ninterface IProps {\r\n item: LiveFeedEvent;\r\n showItemGroup: boolean;\r\n active: boolean;\r\n}\r\n\r\nconst AllEventsItem: FunctionComponent = ({\r\n item,\r\n showItemGroup,\r\n active,\r\n}) => {\r\n const { ref, width = 1001 } = useResizeObserver();\r\n\r\n const getModifiedSearchQuery = useChangeLocationSearch();\r\n\r\n if (width > 1000) {\r\n return (\r\n <>\r\n {showItemGroup && (\r\n \r\n {item.eventDateGroup}\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 {item.eventName}\r\n \r\n
\r\n
\r\n
{item.eventDate}
\r\n
Event Date
\r\n
\r\n
\r\n {item.status === 'Results Available' ? (\r\n
\r\n Results Available \"\"\r\n
\r\n ) : (\r\n
{item.status}
\r\n )}\r\n
Status
\r\n
\r\n
\r\n
\r\n \r\n }\r\n >\r\n Schedule\r\n \r\n \r\n \r\n }\r\n >\r\n Live Feed\r\n \r\n \r\n\r\n {item.isOnlineEntry && (\r\n \r\n }\r\n >\r\n Enter\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n {showItemGroup && (\r\n \r\n {item.eventDateGroup}\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 Schedule\r\n \r\n \r\n \r\n }\r\n >\r\n Live Feed\r\n \r\n \r\n {item.isOnlineEntry && (\r\n \r\n }>\r\n Enter\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n {item.eventName}\r\n \r\n\r\n
\r\n
\r\n {item.status === 'Results Available' ? (\r\n
\r\n Results Available \"\"\r\n
\r\n ) : (\r\n
{item.status}
\r\n )}\r\n
Status
\r\n
\r\n
\r\n
\r\n
{item.eventDate}
\r\n
Event Date
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default memo(AllEventsItem);\r\n","import { useRef, useEffect, DependencyList } from 'react';\r\n\r\n/**\r\n * @function\r\n * @name useDidUpdateEffect\r\n * @description A hook that calls function on component update or inputs change phase\r\n * @param fn\r\n * @param inputs\r\n */\r\nexport default function useDidUpdateEffect(\r\n fn: () => void,\r\n inputs: DependencyList,\r\n) {\r\n const didMountRef = useRef(false);\r\n\r\n useEffect(() => {\r\n if (didMountRef.current) fn();\r\n else didMountRef.current = true;\r\n //eslint-disable-next-line\r\n }, inputs);\r\n\r\n return true;\r\n}\r\n","import { useState, useEffect } from 'react';\r\n\r\nexport default function useDebounce(value: T, delay: number) {\r\n const [debouncedValue, setDebouncedValue] = useState(value);\r\n\r\n useEffect(() => {\r\n const handler = setTimeout(() => {\r\n setDebouncedValue(value);\r\n }, delay);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n // eslint-disable-next-line\r\n }, [value]);\r\n\r\n return debouncedValue;\r\n}\r\n","import { RefObject } from 'react';\r\nimport useDebounce from './useDebounce';\r\nimport useSearchQuery from '../features/App/components/AppHeader/useSearchQuery';\r\nimport useDidUpdateEffect from './useDidUpdate';\r\n\r\nexport function useScrollOnSearch(\r\n ref: RefObject,\r\n debounceTime: number,\r\n offsetY?: number,\r\n) {\r\n const { searchQuery } = useSearchQuery();\r\n const searchQueryDebounced = useDebounce(searchQuery, debounceTime);\r\n\r\n useDidUpdateEffect(() => {\r\n if (searchQueryDebounced && ref.current) {\r\n const y =\r\n ref.current.getBoundingClientRect().top +\r\n window.scrollY +\r\n (offsetY || 0);\r\n\r\n window.scroll({\r\n top: y,\r\n behavior: 'smooth',\r\n });\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchQueryDebounced]);\r\n}\r\n","import React, {\r\n FunctionComponent,\r\n useLayoutEffect,\r\n useRef,\r\n} from 'react';\r\nimport { RootState } from '../../app/store';\r\nimport { ConnectedProps, connect } from 'react-redux';\r\nimport { StyledAllEvents } from './styledComponents';\r\nimport AllEventsItem from './components/AllEventsItem/AllEventsItem.component';\r\nimport { useAllEvents } from '../../api/useAllEvents';\r\nimport SplashScreenComponent from '../../components/SplashScreen/SplashScreen.component';\r\nimport useDebounce from '../../hooks/useDebounce';\r\nimport EmptyPageComponent from '../../components/EmptyPage/EmptyPage.component';\r\nimport {\r\n AppQueryParamsConfigMap,\r\n} from '../../app/constants';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport { Helmet } from 'react-helmet';\r\nimport { APP_NAME_POSTFIX } from '../../constants';\r\nimport { setScrollPosition } from './AllEvents.slice';\r\nimport ReactPaginate from 'react-paginate';\r\nimport { useScrollOnSearch } from '../../hooks/useScrollOnSearch';\r\n\r\nconst connector = connect(\r\n (state: RootState) => ({\r\n searchQuery: state.app.searchQuery.allEvents,\r\n scrollPosition: state.allEvents.scrollPosition,\r\n }),\r\n { setScrollPosition },\r\n);\r\n\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nconst AllEvents: FunctionComponent = ({\r\n searchQuery,\r\n setScrollPosition,\r\n scrollPosition,\r\n}) => {\r\n const debouncedSearchQuery = useDebounce(searchQuery, 600);\r\n // const queryClient = useQueryClient();\r\n\r\n const containerRef = useRef(null);\r\n\r\n useLayoutEffect(() => {\r\n setTimeout(() => {\r\n document.documentElement.scrollTop = scrollPosition;\r\n }, 0);\r\n\r\n return () => {\r\n // eslint-disable-next-line\r\n setScrollPosition(\r\n document.documentElement.scrollTop || document.body.scrollTop || 0,\r\n );\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const {\r\n data: eventsData,\r\n status,\r\n changePage,\r\n isFetching,\r\n pageSize,\r\n page,\r\n isPreviousData,\r\n } = useAllEvents(debouncedSearchQuery);\r\n\r\n const [query] = useQueryParams(AppQueryParamsConfigMap);\r\n\r\n useScrollOnSearch(containerRef, 600, -120);\r\n\r\n if (!eventsData?.events.length && searchQuery && status !== 'loading') {\r\n return (\r\n
\r\n \r\n Try entering just part of event name\r\n \r\n
\r\n );\r\n }\r\n\r\n const pageCount = eventsData\r\n ? Math.ceil(eventsData.totalCount / pageSize)\r\n : 0;\r\n\r\n\r\n return (\r\n \r\n \r\n Calendar - {APP_NAME_POSTFIX}\r\n \r\n {isFetching && !eventsData?.events.length && }\r\n\r\n {eventsData?.events.map((item, index) => (\r\n \r\n ))}\r\n {eventsData && pageCount > 1 && (\r\n changePage(e.selected)}\r\n pageCount={pageCount}\r\n containerClassName=\"pagination justify-content-center\"\r\n pageClassName=\"page-item\"\r\n pageLinkClassName=\"page-link\"\r\n previousClassName=\"page-item\"\r\n previousLinkClassName=\"page-link\"\r\n nextClassName=\"page-item\"\r\n nextLinkClassName=\"page-link\"\r\n activeClassName=\"active\"\r\n breakClassName=\"page-item\"\r\n breakLinkClassName=\"page-link\"\r\n forcePage={page}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default connector(AllEvents);\r\n","declare global {\r\n interface Window {\r\n REACT_APP_API_URL?: string;\r\n }\r\n}\r\n\r\nexport interface LiveFeedEventRes {\r\n events: LiveFeedEvent[];\r\n pageNo: number;\r\n pageSize: number;\r\n totalCount: number;\r\n}\r\n\r\nexport interface LiveFeedEvent {\r\n eventId: number;\r\n logoUrl: string;\r\n venueName: string;\r\n dateFrom: string;\r\n dateTo: string;\r\n eventName: string;\r\n eventDate: string;\r\n active: boolean;\r\n toDatePassed: boolean;\r\n activeDatePassed: boolean;\r\n turnOffAfterToDatePassed: boolean;\r\n autoRefreshResultsFeedTime: string;\r\n eventClassList: LiveFeedEventClass[];\r\n eventDateGroup: string;\r\n discipline: Disciplines;\r\n status: string;\r\n evStatus: EventType;\r\n resultsDocUrl?: string;\r\n scoreByOptimumTime?: boolean;\r\n publishResultsLiveFeed: boolean;\r\n publishTimesLiveFeed: boolean;\r\n timeStamp: string;\r\n timeStampUrl: string | null;\r\n timesDocUrl?: string;\r\n isOnlineEntry: boolean;\r\n showSJFullResults: boolean;\r\n}\r\n\r\nexport type EventType = 'affiliated' | 'unaffiliated' | 'mixed';\r\n\r\nexport enum Disciplines {\r\n ArenaCourseHire = 'Arena/CourseHire', //\r\n TrainingClinics = 'Training Clinics',\r\n Dressage = 'Dressage', //\r\n Showjumping = 'Showjumping', //\r\n MixedEvents = 'Mixed Events',\r\n Shows = 'Shows',\r\n CombinedTraining = 'Combined Training', //\r\n EventerTrial = 'Eventer Trial', //\r\n XCCourseHire = 'XC Course Hire',\r\n HunterTrials = 'Hunter Trials',\r\n BoxOffice = 'Box Office',\r\n}\r\n\r\nexport interface LiveFeedEventClass {\r\n id: number;\r\n eventId: number;\r\n description: string | null;\r\n createdDate: string;\r\n modifiedDate: string;\r\n arenaName: string;\r\n clNumber: number | null;\r\n clSort: string;\r\n classDay: string | null;\r\n numberOfEntries: number;\r\n liveEventFeedStatusText: 'Open' | 'Closed';\r\n startTime: string;\r\n endTime: string;\r\n className: string;\r\n className1: string;\r\n className2: string;\r\n judges?: string;\r\n numberOfJudges?: number;\r\n judgeNamesPositions?: JudgeNamePosition[];\r\n judgePositions?: string;\r\n classId: number;\r\n sjPhasesCount: number;\r\n linkAvailable: boolean;\r\n youngHorseResultsRule: boolean;\r\n}\r\n\r\nexport interface JudgeNamePosition {\r\n name: string;\r\n position: string;\r\n}\r\n\r\nexport interface LiveFeedEventSponsor {\r\n url: string;\r\n imageUrl: string;\r\n name: string;\r\n}\r\n\r\nexport interface LiveFeedEventNews {\r\n createdDate: string;\r\n description: string;\r\n eventId: number;\r\n eventNewsItemId: number;\r\n modifiedDate: string;\r\n}\r\n\r\nexport interface LiveFeedEventTime {\r\n breakTimeCustom?: string;\r\n breakTimeName?: string;\r\n bridleNumber?: number;\r\n cappedClassNotes: string;\r\n class: string;\r\n classId: number;\r\n customHorseName: string;\r\n drawnOrder: number;\r\n dressageTime?: string;\r\n showJumpingTime?: string;\r\n eaClassEntrySectionName: string;\r\n eaEventClassAndSort: string;\r\n evclid: number;\r\n eventId: number;\r\n riderClassStatusName: string;\r\n riderClassStatusCode: string;\r\n riderFullName: string;\r\n secretaryEventId: number;\r\n secretaryID: number;\r\n ownerFullName: string;\r\n}\r\n\r\nexport interface LiveFeedEventResult {\r\n breakTimeCustom: string;\r\n breakTimeName?: string;\r\n bridleNumber: number;\r\n bsjaHorseName?: string;\r\n bsjaRegistrationNumber?: string;\r\n class: string;\r\n classId: number;\r\n dressageTime?: string;\r\n showJumpingTime?: string;\r\n isCBScoreBE?: boolean;\r\n eaEventClassAndSort: string;\r\n evclid: string;\r\n eventId: string;\r\n horseName?: string;\r\n customHorseName?: string;\r\n horseNameFormatted?: string;\r\n ownerBSJARegNumber?: string;\r\n ownerFirstName?: string;\r\n ownerLastName?: string;\r\n ownerNameFormatted?: string;\r\n riderBSJARegNumber?: string;\r\n riderClassStatusName: string;\r\n riderClassStatusCode: string;\r\n riderFirstName: string;\r\n riderLastName: string;\r\n riderNameFormatted: string;\r\n secretaryEventId: number;\r\n secretaryID: number;\r\n sectionName: string;\r\n sjPlace?: number;\r\n overallPlace?: number;\r\n sectionPlace?: number;\r\n selectedResult?: number;\r\n dressageScore?: number;\r\n dressageCollective?: number;\r\n eaDressagePercentageCustom?: number;\r\n judgeScores?: number[];\r\n sjPenalties?: number;\r\n sjFaults?: number;\r\n totalJFaults?: number;\r\n xcFaults?: number;\r\n isScoringEntered?: boolean;\r\n evTrialScoringTime?: number;\r\n evTrialTimePenalties?: number;\r\n evTrialTotalScore?: number;\r\n evTrialTotalScoreByOptTime?: number;\r\n totalCBScore?: number;\r\n totalCBScoreBE?: number;\r\n htJumpPenalties?: number;\r\n htTimePenalties?: number;\r\n htTimeTaken?: string;\r\n htTotalScore?: number;\r\n [key: `phase${number}JF`]: number | undefined;\r\n [key: `phase${number}TF`]: number | undefined;\r\n [key: `phase${number}F`]: number | undefined;\r\n [key: `phase${number}RecTime`]: number | undefined;\r\n orderLiveResultsByPlacing?: boolean;\r\n}\r\n\r\nexport interface Sort {\r\n order: 'asc' | 'desc';\r\n field: string;\r\n}\r\n","import { RootState } from './../app/store';\r\nimport moment from 'moment';\r\nimport { useQuery } from 'react-query';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport { AppQueryParamsConfigMap } from '../app/constants';\r\nimport { LiveFeedEventRes } from '../domain';\r\nimport useDidUpdateEffect from '../hooks/useDidUpdate';\r\nimport { apiHttpService } from './apiHttpService';\r\nimport { setPage } from '../features/AllEvents/AllEvents.slice';\r\nconst ALL_EVENTS_PAGE_SIZE = 20;\r\nconst ALL_EVENTS_REFETCH_INTERVAL = 60000; // one minute;\r\n\r\nexport function useAllEvents(searchQuery: string) {\r\n const [query] = useQueryParams(AppQueryParamsConfigMap);\r\n const page = useSelector((state: RootState) => state.allEvents.page);\r\n const dispatch = useDispatch();\r\n\r\n const changePage = (page: number) => dispatch(setPage(page));\r\n\r\n\r\n // reset page when search changed\r\n useDidUpdateEffect(() => {\r\n changePage(0);\r\n }, [searchQuery]);\r\n\r\n const queryData = useQuery(\r\n [\r\n 'events',\r\n page + 1,\r\n searchQuery,\r\n query.LocationID,\r\n query.SecretaryID,\r\n query.PCID,\r\n query.RCID,\r\n ],\r\n async () => {\r\n const queryParams = [\r\n `search=${searchQuery}`,\r\n `pageNo=${page + 1}`,\r\n `pageSize=${ALL_EVENTS_PAGE_SIZE}`,\r\n `LID=${query.LocationID}`,\r\n `SID=${query.SecretaryID}`,\r\n `PCID=${query.PCID}`,\r\n `RCID=${query.RCID}`,\r\n ];\r\n const { data } = await apiHttpService.get(\r\n `/GetEventsList?${queryParams.join('&')}`,\r\n );\r\n return data?.events?.length\r\n ? {\r\n ...data,\r\n events: data.events.map((item) => {\r\n return {\r\n ...item,\r\n eventDateGroup: moment(item.dateFrom).format('MMMM YYYY'),\r\n };\r\n }),\r\n }\r\n : {\r\n events: [],\r\n totalCount: 0,\r\n pageSize: ALL_EVENTS_PAGE_SIZE,\r\n pageNo: 0,\r\n };\r\n },\r\n {\r\n staleTime: Infinity,\r\n keepPreviousData: true,\r\n refetchInterval: ALL_EVENTS_REFETCH_INTERVAL,\r\n },\r\n );\r\n\r\n return {\r\n ...queryData,\r\n page,\r\n changePage,\r\n pageSize: ALL_EVENTS_PAGE_SIZE,\r\n };\r\n}\r\n","import styled from 'styled-components/macro';\r\nimport { TABLET_BREAKPOINT } from '../../app/constants';\r\n\r\nexport const StyledSummary = styled.div<{ leftMenuCollapsed: boolean }>`\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block !important;\r\n padding-left: 0;\r\n\r\n }\r\n padding-left: ${(props) => (props.leftMenuCollapsed ? '306px' : '0')};\r\n position: relative;\r\n\r\n .summary-nav {\r\n border-bottom: 1px solid ${(props) => props.theme.grey.light};\r\n justify-content: space-between;\r\n padding: 0 20px 0 0;\r\n }\r\n .nav-tabs {\r\n flex: 1 0 auto;\r\n white-space: nowrap;\r\n }\r\n .classes-list {\r\n min-height: calc(100vh - 279px);\r\n position: ${(props) => (props.leftMenuCollapsed ? 'absolute' : 'static')};;\r\n width: ${(props) => (props.leftMenuCollapsed ? '306px' : 'auto')};;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n padding: 0 2rem;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n margin-right: 0 !important;\r\n position: static;\r\n min-height: auto;\r\n width: 100%;\r\n }\r\n }\r\n .classes-list-inner {\r\n overflow-y: auto;\r\n\r\n height: 100%;\r\n }\r\n .results-block {\r\n position: relative;\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n width: 100%;\r\n }\r\n }\r\n .back-button {\r\n @media (min-width: ${TABLET_BREAKPOINT}px) {\r\n display: none !important;\r\n }\r\n }\r\n .download-link {\r\n text-align: right;\r\n line-height: 1;\r\n }\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport { TABLET_BREAKPOINT } from '../../../../app/constants';\r\n\r\ninterface Props {\r\n hasActiveItem: boolean;\r\n}\r\n\r\nexport const StyledSummaryItem = styled.div`\r\n box-shadow: 0 0 0 1px ${(props) => props.theme.grey.light} inset;\r\n border-radius: 10px;\r\n > div {\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: ${(props) => (props.hasActiveItem ? 'none' : 'block')};\r\n }\r\n }\r\n > .active {\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n display: block;\r\n }\r\n }\r\n .d-table-cell {\r\n padding: 20px 10px;\r\n text-align: left;\r\n }\r\n .d-table-cell:first-child {\r\n padding-left: 30px;\r\n }\r\n .d-table-cell:last-child {\r\n padding-right: 30px;\r\n }\r\n .date-cell{\r\n white-space: nowrap;\r\n }\r\n`;\r\n","export default __webpack_public_path__ + \"static/media/times.2be3e756.svg\";","/*\r\n *\r\n * Summary constants\r\n *\r\n */\r\n\r\nimport { Disciplines } from '../../domain';\r\n\r\nexport const SLICE_NAME = 'summary';\r\n\r\nexport const HAS_NO_RESULTS_DISCIPLINES = [\r\n Disciplines.BoxOffice,\r\n Disciplines.ArenaCourseHire,\r\n Disciplines.XCCourseHire,\r\n Disciplines.TrainingClinics,\r\n];\r\n\r\nexport const HAS_NO_TIMES_DISCIPLINES = [\r\n Disciplines.BoxOffice,\r\n Disciplines.ArenaCourseHire,\r\n Disciplines.XCCourseHire,\r\n];\r\n","import { debounce } from 'lodash';\r\nimport { useState, useEffect } from 'react';\r\n// Define general type for useWindowSize hook, which includes width and height\r\ninterface Size {\r\n width: number | undefined;\r\n height: number | undefined;\r\n}\r\n\r\n// Hook\r\nexport default function useWindowSize(delay = 300): Size {\r\n const [windowSize, setWindowSize] = useState({\r\n width: undefined,\r\n height: undefined,\r\n });\r\n useEffect(() => {\r\n const debouncedHandleResize = debounce(handleResize, delay);\r\n\r\n // Handler to call on window resize\r\n function handleResize() {\r\n // Set window width/height to state\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n }\r\n // Add event listener\r\n window.addEventListener('resize', debouncedHandleResize);\r\n // Call handler right away so state gets updated with initial window size\r\n handleResize();\r\n // Remove event listener on cleanup\r\n return () => window.removeEventListener('resize', debouncedHandleResize);\r\n }, [delay]); // Empty array ensures that effect is only run on mount\r\n return windowSize;\r\n}\r\n","/**\r\n *\r\n * SummaryItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport Badge from '../../../../components/Badge/Badge.component';\r\nimport { StyledCard } from '../../../../global-styles';\r\nimport { StyledSummaryItem } from './styledComponents';\r\nimport usersIcon from '../../../../assets/icons/users.svg';\r\nimport awardIcon from '../../../../assets/icons/award.svg';\r\nimport timesIcon from '../../../../assets/icons/times.svg';\r\nimport flagIcon from '../../../../assets/icons/flag.svg';\r\nimport useResizeObserver from 'use-resize-observer';\r\nimport { Link } from 'react-router-dom';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport { AppQueryParamsConfigMap, TABLET_BREAKPOINT } from '../../../../app/constants';\r\nimport { useEventFeed } from '../../../../api/useEventFeed';\r\nimport { HAS_NO_RESULTS_DISCIPLINES, HAS_NO_TIMES_DISCIPLINES } from '../../constants';\r\nimport enterIcon from '../../../../assets/icons/enter.svg';\r\nimport useChangeLocationSearch from '../../../../hooks/useChangeLocationSearch';\r\nimport useWindowSize from '../../../../hooks/useWindowSize';\r\n\r\ninterface IProps {\r\n id: number;\r\n}\r\n\r\nconst SummaryItem: FunctionComponent = ({ id }) => {\r\n const { width: windowWidth = document.body.clientWidth } = useWindowSize();\r\n const { ref, width = windowWidth } = useResizeObserver();\r\n\r\n const [query] = useQueryParams(AppQueryParamsConfigMap);\r\n const { data: activeEvent } = useEventFeed({ eventId: query.e });\r\n\r\n const classItem = activeEvent?.eventClassList.find((item) => item.id === id);\r\n\r\n const activeItem = classItem?.id === Number(query.c);\r\n\r\n const hasResults =\r\n activeEvent && !HAS_NO_RESULTS_DISCIPLINES.includes(activeEvent.discipline);\r\n\r\n const hasTimes =\r\n activeEvent && !HAS_NO_TIMES_DISCIPLINES.includes(activeEvent.discipline);\r\n\r\n const getModifiedSearchQuery = useChangeLocationSearch();\r\n\r\n if (width < TABLET_BREAKPOINT) {\r\n return (\r\n \r\n \r\n
\r\n
\r\n {classItem?.startTime && classItem?.endTime ? (\r\n
\r\n
\r\n {classItem?.startTime} - {classItem?.endTime}\r\n
\r\n
Class Time
\r\n
\r\n ) : (\r\n
\r\n }>\r\n {classItem?.numberOfEntries}\r\n \r\n {classItem?.liveEventFeedStatusText === 'Closed' && (\r\n \r\n {classItem?.liveEventFeedStatusText}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n {hasTimes && (\r\n \r\n }>\r\n Times\r\n \r\n \r\n )}\r\n {hasResults && (\r\n \r\n }>\r\n Results\r\n \r\n \r\n )}\r\n {classItem?.liveEventFeedStatusText === 'Open' && (\r\n \r\n }>\r\n Enter\r\n \r\n \r\n )}\r\n
\r\n
\r\n\r\n
\r\n {classItem?.arenaName && (\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n {classItem?.arenaName}\r\n
\r\n
\r\n )}\r\n {classItem?.startTime && classItem?.endTime && (\r\n }>\r\n {classItem?.numberOfEntries}\r\n \r\n )}\r\n
\r\n\r\n
\r\n
{classItem?.clNumber}
\r\n
{classItem?.clSort}
\r\n
\r\n
\r\n {classItem?.className}\r\n
\r\n
\r\n

{classItem?.className1}

\r\n

{classItem?.className2}

\r\n

{classItem?.judges}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n \r\n
\r\n {classItem?.clNumber}\r\n
\r\n
\r\n {classItem?.clSort}\r\n
\r\n
\r\n
{classItem?.className1}
\r\n
\r\n
\r\n
\r\n

{classItem?.className2}

\r\n {classItem?.judges && (\r\n

Judges: {classItem?.judges}

\r\n )}\r\n
\r\n
\r\n
\r\n {classItem?.classDay}\r\n
\r\n
\r\n {classItem?.startTime && classItem?.endTime && (\r\n <>\r\n
\r\n {classItem?.startTime} - {classItem?.endTime}\r\n
\r\n
Class Time
\r\n \r\n )}\r\n
\r\n
\r\n {classItem?.arenaName && (\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n {classItem?.arenaName}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n }>\r\n {classItem?.numberOfEntries}\r\n \r\n
\r\n
\r\n
\r\n {classItem?.liveEventFeedStatusText === 'Closed' && (\r\n
\r\n {classItem?.liveEventFeedStatusText}\r\n
\r\n )}\r\n {hasTimes && (\r\n \r\n }>\r\n Times\r\n \r\n \r\n )}\r\n {hasResults && (\r\n \r\n }>\r\n Results\r\n \r\n \r\n )}\r\n {classItem?.liveEventFeedStatusText === 'Open' && (\r\n \r\n }>\r\n Enter\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default memo(SummaryItem);\r\n","import styled from 'styled-components/macro';\r\nimport {TABLET_BREAKPOINT} from \"../../app/constants\";\r\n\r\nexport const StyledResults = styled.div`\r\n height: calc(100vh - 363px);\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n height: calc(100% - 81px);\r\n }\r\n`;\r\n","import { orderBy } from 'lodash';\r\nimport { useQuery } from 'react-query';\r\nimport { LiveFeedEventResult, Sort } from '../domain';\r\nimport { apiHttpService } from './apiHttpService';\r\nimport { useEventFeed } from './useEventFeed';\r\n\r\nexport function useEventResults(\r\n eventId?: string | null,\r\n classId?: string | null,\r\n searchQuery?: string,\r\n sort?: Sort,\r\n) {\r\n const { data: activeEvent } = useEventFeed({\r\n eventId,\r\n });\r\n return useQuery(\r\n ['eventResults', eventId, classId],\r\n async () => {\r\n const { data } = await apiHttpService.get<{\r\n results: LiveFeedEventResult[];\r\n }>(`/GetEventResults?eventId=${eventId}&classId=${classId}`);\r\n\r\n return data.results;\r\n },\r\n {\r\n enabled: !!eventId && !!classId,\r\n staleTime: Infinity,\r\n // results are refetched after updating event (check useDidUpdateEffect in Results.container)\r\n // and here (by given autoRefreshResultsFeedTime from Event)\r\n refetchInterval: () => {\r\n if (activeEvent?.toDatePassed) {\r\n return false;\r\n }\r\n if (activeEvent) {\r\n const [hours, minutes, seconds] =\r\n activeEvent.autoRefreshResultsFeedTime.split(':');\r\n const intervalTimeMs =\r\n Number(hours) * 3.6e6 +\r\n Number(minutes) * 6e4 +\r\n Number(seconds) * 1000;\r\n if (intervalTimeMs) {\r\n return intervalTimeMs;\r\n }\r\n }\r\n return false;\r\n },\r\n select: (data) => {\r\n let processedData = searchQuery\r\n ? data.filter(\r\n (item) =>\r\n item.riderBSJARegNumber\r\n ?.toLowerCase()\r\n .includes(searchQuery.toLowerCase()) ||\r\n item.riderFirstName\r\n .toLowerCase()\r\n .includes(searchQuery.toLowerCase()) ||\r\n item.riderLastName\r\n .toLowerCase()\r\n .includes(searchQuery.toLowerCase()) ||\r\n item.customHorseName\r\n ?.toLowerCase()\r\n .includes(searchQuery.toLowerCase()) ||\r\n item.horseName\r\n ?.toLowerCase()\r\n .includes(searchQuery.toLowerCase()) ||\r\n item.bridleNumber\r\n .toString()\r\n .includes(searchQuery.toLowerCase()),\r\n )\r\n : data;\r\n\r\n processedData = sort\r\n ? orderBy(processedData, sort.field, sort.order)\r\n : orderBy(processedData, 'sjPlace', 'asc');\r\n\r\n\r\n if (sort?.field === 'sjPlace' || sort?.field === 'overallPlace') {\r\n const zeroValuesItems = processedData.filter(\r\n (item) =>\r\n !item[(sort?.field || 'sjPlace') as keyof LiveFeedEventResult],\r\n );\r\n \r\n const withoutZeroValues = processedData.filter(\r\n (item) =>\r\n item[(sort?.field || 'sjPlace') as keyof LiveFeedEventResult],\r\n );\r\n\r\n if (sort?.order === 'asc') {\r\n // putting zero values items to the end\r\n processedData = withoutZeroValues.concat(zeroValuesItems); \r\n }\r\n \r\n if (sort?.order === 'desc') {\r\n // putting zero values items to the start\r\n processedData = zeroValuesItems.concat(withoutZeroValues);\r\n }\r\n }\r\n\r\n\r\n return processedData;\r\n },\r\n },\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/helmet.bf81cc2c.svg\";","export default __webpack_public_path__ + \"static/media/horse.5ac65e77.svg\";","/**\r\n *\r\n * ResultsItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport helmetIcon from '../../../../assets/icons/helmet.svg';\r\nimport horseIcon from '../../../../assets/icons/horse.svg';\r\nimport { EventType, LiveFeedEventResult } from '../../../../domain';\r\n\r\ninterface IProps {\r\n result: LiveFeedEventResult;\r\n type?: EventType;\r\n sjPhasesCount: number;\r\n disabledFields: string[];\r\n desktopVisible: boolean;\r\n mobileVisible: boolean;\r\n tabletVisible: boolean;\r\n isScoringEntered?: boolean;\r\n}\r\n\r\nconst ResultsItem: FunctionComponent = ({\r\n result,\r\n type,\r\n sjPhasesCount,\r\n disabledFields,\r\n desktopVisible,\r\n mobileVisible,\r\n tabletVisible,\r\n}) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n const phases = [...Array(sjPhasesCount)];\r\n\r\n return (\r\n \r\n {isEnabled('eaEventClassAndSort') && result.eaEventClassAndSort}\r\n {isEnabled('sectionName') && result.sectionName}\r\n \r\n {isEnabled('bridleNumber') && (\r\n
{result.bridleNumber}
\r\n )}\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n {result.riderFirstName} {result.riderLastName}\r\n
\r\n
\r\n
\r\n {result.customHorseName || result.horseName}\r\n
\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n {result.customHorseName || result.horseName}\r\n
\r\n
\r\n Owner: {result.ownerFirstName} {result.ownerLastName}{' '}\r\n
\r\n
\r\n
\r\n \r\n {desktopVisible &&\r\n phases.map((_, index) => (\r\n \r\n \r\n {isEnabled(`phase${index + 1}JF`) && (\r\n
{result[`phase${index + 1}JF`]}
\r\n )}\r\n \r\n \r\n {isEnabled(`phase${index + 1}TF`) && (\r\n
{result[`phase${index + 1}TF`]}
\r\n )}\r\n \r\n \r\n {isEnabled(`phase${index + 1}F`) && (\r\n
{result[`phase${index + 1}F`]}
\r\n )}\r\n \r\n \r\n {isEnabled(`phase${index + 1}RecTime`) && (\r\n
{result[`phase${index + 1}RecTime`]}
\r\n )}\r\n \r\n
\r\n ))}\r\n {tabletVisible &&\r\n phases.map((_, index) => (\r\n \r\n \r\n {result.isScoringEntered && (\r\n <>\r\n {result[`phase${index + 1}JF`] + '-'}\r\n {result[`phase${index + 1}TF`] + '-'}\r\n {result[`phase${index + 1}F`] + '-'}\r\n {result[`phase${index + 1}RecTime`]}\r\n \r\n )}\r\n \r\n \r\n ))}\r\n\r\n {mobileVisible && (\r\n \r\n {result.isScoringEntered && (\r\n <>\r\n {phases.map((_, index) => (\r\n \r\n {result[`phase${index + 1}F`]}\r\n {index === phases.length - 1 ? '' : '-'}\r\n \r\n ))}{' '}\r\n {Boolean(phases.length) &&\r\n `/${result[`phase${phases.length}RecTime`]}`}\r\n \r\n )}\r\n \r\n )}\r\n \r\n {isEnabled('totalJFaults') &&\r\n result.isScoringEntered &&\r\n result.totalJFaults}\r\n \r\n \r\n {isEnabled('sectionPlace') && (\r\n
{result.sectionPlace}
\r\n )}\r\n \r\n \r\n {isEnabled('sjPlace') &&
{result.sjPlace}
}\r\n \r\n \r\n {isEnabled('riderClassStatusCode') && (\r\n
{result.riderClassStatusCode}
\r\n )}\r\n \r\n \r\n );\r\n // return (\r\n // \r\n //
\r\n //
\r\n //
\r\n // {isEnabled('bridleNumber') && (\r\n // <>\r\n //
{result.bridleNumber}
\r\n //
Rider/BN
\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('eaEventClassAndSort') && (\r\n // <>\r\n //
{result.eaEventClassAndSort}
\r\n //
Class
\r\n // \r\n // )}\r\n // {isEnabled('sectionName') && (\r\n // <>\r\n //
{result.sectionName}
\r\n //
Section
\r\n // \r\n // )}\r\n //
\r\n // \"\"\r\n //
\r\n // {result.riderFirstName} {result.riderLastName}\r\n //
\r\n //
\r\n //
\r\n // \"\"\r\n //
\r\n //
\r\n // {isAffiliated && result.bsjaHorseName\r\n // ? result.bsjaHorseName\r\n // : result.horseName}\r\n //
\r\n //
\r\n // Owner: {result.ownerFirstName} {result.ownerLastName}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('riderClassStatusCode') && (\r\n // <>\r\n //

\r\n // {result.riderClassStatusCode}\r\n //

\r\n //

Status

\r\n // \r\n // )}\r\n // {isEnabled('sjPlace') && (\r\n // <>\r\n //

{result.sjPlace}

\r\n //

Place

\r\n // \r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {[...Array(sjPhasesCount)].map((_, index) => (\r\n //
\r\n // {isEnabled(`phase${index + 1}JF`) && (\r\n // <>\r\n //
{result[`phase${index + 1}JF`]}
\r\n //
\r\n // Phase {index + 1} JF\r\n //
\r\n // \r\n // )}\r\n // {isEnabled(`phase${index + 1}TF`) && (\r\n // <>\r\n //
\r\n // {result[`phase${index + 1}TF`]}\r\n //
\r\n //
\r\n // Phase {index + 1} TF\r\n //
\r\n // \r\n // )}\r\n // {isEnabled(`phase${index + 1}F`) && (\r\n // <>\r\n //
\r\n // {result[`phase${index + 1}F`]}\r\n //
\r\n //
\r\n // Phase {index + 1} F\r\n //
\r\n // \r\n // )}\r\n // {isEnabled(`phase${index + 1}RecTime`) && (\r\n // <>\r\n // {' '}\r\n //
\r\n // {result[`phase${index + 1}RecTime`]}\r\n //
\r\n //
\r\n // Phase {index + 1} Rec Time\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 memo(ResultsItem);\r\n","/**\r\n *\r\n * ResultsItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport helmetIcon from '../../../../assets/icons/helmet.svg';\r\nimport horseIcon from '../../../../assets/icons/horse.svg';\r\nimport { EventType, JudgeNamePosition, LiveFeedEventResult } from '../../../../domain';\r\n\r\ninterface IProps {\r\n result: LiveFeedEventResult;\r\n judges?: JudgeNamePosition[];\r\n type?: EventType;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsItem: FunctionComponent = ({\r\n result,\r\n judges = [],\r\n type,\r\n disabledFields,\r\n}) => {\r\n // const { ref, width = 0 } = useResizeObserver();\r\n\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n\r\n return (\r\n \r\n {isEnabled('eaEventClassAndSort') && result.eaEventClassAndSort}\r\n {isEnabled('sectionName') && result.sectionName}\r\n {isEnabled('bridleNumber') &&
{result.bridleNumber}
}\r\n \r\n
\r\n \"\"\r\n
\r\n {result.riderFirstName} {result.riderLastName}{' '}\r\n
\r\n
\r\n
\r\n {result.customHorseName || result.horseName}\r\n
\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n {result.customHorseName || result.horseName}\r\n
\r\n
\r\n Owner: {result.ownerFirstName} {result.ownerLastName}{' '}\r\n
\r\n
\r\n
\r\n \r\n \r\n {isEnabled('dressageTime') &&
{result.dressageTime}
}\r\n \r\n {judges.length > 1 &&\r\n judges.map((judge, index) => (\r\n \r\n {isEnabled(`judgeScore${index + 1}`) && (\r\n
{result.judgeScores?.[index]}
\r\n )}\r\n \r\n ))}\r\n \r\n {isEnabled('dressageScore') && (\r\n
{result.dressageScore?.toFixed(2)}
\r\n )}\r\n \r\n \r\n {isEnabled('dressageCollective') && (\r\n
{result.dressageCollective?.toFixed(2)}
\r\n )}\r\n \r\n \r\n {isEnabled('eaDressagePercentageCustom') && (\r\n
{result.eaDressagePercentageCustom?.toFixed(3)}
\r\n )}\r\n \r\n \r\n {isEnabled('sectionPlace') && (\r\n
{result.sectionPlace}
\r\n )}\r\n \r\n \r\n {isEnabled('overallPlace') && (\r\n
{result.overallPlace}
\r\n )}\r\n \r\n \r\n {isEnabled('riderClassStatusCode') && (\r\n
{result.riderClassStatusCode}
\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(ResultsItem);\r\n","/**\r\n *\r\n * ResultsItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport helmetIcon from '../../../../assets/icons/helmet.svg';\r\nimport horseIcon from '../../../../assets/icons/horse.svg';\r\nimport { LiveFeedEventResult } from '../../../../domain';\r\n\r\ninterface IProps {\r\n result: LiveFeedEventResult;\r\n disabledFields: string[];\r\n scoreByOptimumTime?: boolean;\r\n}\r\n\r\nconst ResultsItem: FunctionComponent = ({ result, disabledFields, scoreByOptimumTime }) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n\r\n return (\r\n \r\n {isEnabled('eaEventClassAndSort') && result.eaEventClassAndSort}\r\n {isEnabled('sectionName') && result.sectionName}\r\n \r\n {isEnabled('bridleNumber') && (\r\n
{result.bridleNumber}
\r\n )}\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n {result.riderFirstName} {result.riderLastName}\r\n
\r\n
\r\n
\r\n {result.horseName}\r\n
\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
{result.horseName}
\r\n
\r\n Owner: {result.ownerFirstName} {result.ownerLastName}\r\n
\r\n
\r\n
\r\n \r\n \r\n {isEnabled('sjFaults') && result.sjFaults}\r\n \r\n \r\n {isEnabled('xcFaults') && result.xcFaults}\r\n \r\n \r\n {isEnabled('totalJFaults') && result.totalJFaults}\r\n \r\n \r\n {isEnabled('evTrialScoringTime') && result.evTrialScoringTime}\r\n \r\n \r\n {isEnabled('evTrialTimePenalties') && result.evTrialTimePenalties}\r\n \r\n \r\n {isEnabled('evTrialTotalScore') && result.evTrialTotalScore}\r\n \r\n \r\n {!scoreByOptimumTime && `${isEnabled('sjFaults') ? result.sjFaults + '/' : ''}${isEnabled('xcFaults') ? result.xcFaults + '/' : ''}${isEnabled('evTrialScoringTime') ? result.evTrialScoringTime + '/' : ''}${isEnabled('evTrialTotalScore') ? result.evTrialTotalScore : ''}`}\r\n {scoreByOptimumTime && `${isEnabled('totalJFaults') ? result.totalJFaults + '/' : ''}${isEnabled('evTrialTimePenalties') ? result.evTrialTimePenalties + '/' : ''}${isEnabled('evTrialTotalScore') ? result.evTrialTotalScore : ''}`}\r\n \r\n {isEnabled('sectionPlace') && result.sectionPlace}\r\n {isEnabled('overallPlace') && result.overallPlace}\r\n \r\n {isEnabled('riderClassStatusCode') && (\r\n
\r\n {result.riderClassStatusCode}\r\n
\r\n )}\r\n \r\n \r\n );\r\n // return (\r\n // \r\n //
\r\n //
\r\n //
\r\n // {isEnabled('bridleNumber') && (\r\n // <>\r\n //
{result.bridleNumber}
\r\n //
Rider/BN
\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('eaEventClassAndSort') && (\r\n // <>\r\n //
{result.eaEventClassAndSort}
\r\n //
Class
\r\n // \r\n // )}\r\n // {isEnabled('sectionName') && (\r\n // <>\r\n //
{result.sectionName}
\r\n //
Section
\r\n // \r\n // )}\r\n //
\r\n // \"\"\r\n //
\r\n // {result.riderFirstName} {result.riderLastName}\r\n //
\r\n //
\r\n //
\r\n // \"\"\r\n //
\r\n //
{result.horseName}
\r\n //
\r\n // Owner: {result.ownerFirstName} {result.ownerLastName}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('riderClassStatusCode') && (\r\n // <>\r\n //

\r\n // {result.riderClassStatusCode}\r\n //

\r\n //

Status

\r\n // \r\n // )}\r\n //
\r\n // {isEnabled('overallPlace') && (\r\n // OP {result.overallPlace}\r\n // )}\r\n // {isEnabled('sectionPlace') && (\r\n // SP {result.sectionPlace}\r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('evTrialScoringTime') && (\r\n //
\r\n //

{result.evTrialScoringTime}

\r\n //

Time(secs)

\r\n //
\r\n // )}\r\n // {isEnabled('evTrialTimePenalties') && (\r\n //
\r\n //

{result.evTrialTimePenalties}

\r\n //

Time(pens)

\r\n //
\r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('sjPenalties') && (\r\n //
\r\n //

{result.sjPenalties}

\r\n //

SJ Penalties

\r\n //
\r\n // )}\r\n // {isEnabled('xcFaults') && (\r\n //
\r\n //

{result.xcFaults}

\r\n //

XC Penalties

\r\n //
\r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('totalJFaults') && (\r\n //
\r\n //

{result.totalJFaults}

\r\n //

TotalJ Faults

\r\n //
\r\n // )}\r\n // {isEnabled('evTrialTotalScore') && (\r\n //
\r\n //

{result.evTrialTotalScore}

\r\n //

Score

\r\n //
\r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n // );\r\n};\r\n\r\nexport default memo(ResultsItem);\r\n","/**\r\n *\r\n * ResultsItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport helmetIcon from '../../../../assets/icons/helmet.svg';\r\nimport horseIcon from '../../../../assets/icons/horse.svg';\r\nimport { EventType, LiveFeedEventResult } from '../../../../domain';\r\n\r\ninterface IProps {\r\n result: LiveFeedEventResult;\r\n type?: EventType;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsItem: FunctionComponent = ({ result, disabledFields }) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n\r\n console.log(isEnabled(result.isCBScoreBE ? 'totalCBScoreBE' : 'totalCBScore'));\r\n\r\n return (\r\n \r\n {isEnabled('eaEventClassAndSort') && result.eaEventClassAndSort}\r\n {isEnabled('sectionName') && result.sectionName}\r\n \r\n {isEnabled('bridleNumber') && (\r\n
{result.bridleNumber}
\r\n )}\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n {result.riderFirstName} {result.riderLastName}\r\n
\r\n
\r\n
{result.horseName}
\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
{result.horseName}
\r\n
\r\n Owner: {result.ownerFirstName} {result.ownerLastName}\r\n
\r\n
\r\n
\r\n \r\n \r\n {isEnabled('dressageTime') && result.dressageTime}\r\n \r\n \r\n {isEnabled('showJumpingTime') && result.showJumpingTime}\r\n \r\n \r\n {isEnabled('dressageScore') && result.dressageScore?.toFixed(2)}\r\n \r\n \r\n {isEnabled('sjPenalties') && result.sjPenalties}\r\n \r\n \r\n {isEnabled('dressageCollective') &&\r\n result.dressageCollective?.toFixed(2)}\r\n \r\n \r\n {isEnabled('eaDressagePercentageCustom') &&\r\n result.eaDressagePercentageCustom?.toFixed(3)}\r\n \r\n \r\n {isEnabled(result.isCBScoreBE ? 'totalCBScoreBE' : 'totalCBScore') &&\r\n (result.isCBScoreBE\r\n ? result.totalCBScoreBE?.toFixed(2)\r\n : result.totalCBScore?.toFixed(2))}\r\n \r\n {isEnabled('sectionPlace') && result.sectionPlace}\r\n {isEnabled('overallPlace') && result.overallPlace}\r\n \r\n {isEnabled('riderClassStatusCode') && (\r\n
\r\n {result.riderClassStatusCode}\r\n
\r\n )}\r\n \r\n \r\n );\r\n // return (\r\n // \r\n //
\r\n //
\r\n //
\r\n // {isEnabled('bridleNumber') && (\r\n // <>\r\n //
{result.bridleNumber}
\r\n //
Rider/BN
\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('eaEventClassAndSort') && (\r\n // <>\r\n //
{result.eaEventClassAndSort}
\r\n //
Class
\r\n // \r\n // )}\r\n // {isEnabled('sectionName') && (\r\n // <>\r\n //
{result.sectionName}
\r\n //
Section
\r\n // \r\n // )}\r\n //
\r\n // \"\"\r\n //
\r\n // {result.riderFirstName} {result.riderLastName}\r\n //
\r\n //
\r\n //
\r\n // \"\"\r\n //
\r\n //
{result.horseName}
\r\n //
\r\n // Owner: {result.ownerFirstName} {result.ownerLastName}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('riderClassStatusCode') && (\r\n // <>\r\n //

\r\n // {result.riderClassStatusCode}\r\n //

\r\n //

Status

\r\n // \r\n // )}\r\n //
\r\n // {isEnabled('overallPlace') && (\r\n // OP {result.overallPlace}\r\n // )}\r\n // {isEnabled('sectionPlace') && (\r\n // SP {result.sectionPlace}\r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('showJumpingTime') && (\r\n // <>\r\n //

{result.showJumpingTime}

\r\n //

SJ Time

\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('dressageTime') && (\r\n // <>\r\n //

{result.dressageTime}

\r\n //

DR Time

\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('totalCBScore') && (\r\n // <>\r\n //

\r\n // {result.totalCBScore?.toFixed(2)}\r\n //

\r\n //

Score

\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('dressageCollective') && (\r\n // <>\r\n //

\r\n // {result.dressageCollective?.toFixed(2)}\r\n //

\r\n //

Colls

\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('eaDressagePercentageCustom') && (\r\n // <>\r\n //

\r\n // {result.eaDressagePercentageCustom?.toFixed(3)}\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 memo(ResultsItem);\r\n","/**\r\n *\r\n * ResultsItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport helmetIcon from '../../../../assets/icons/helmet.svg';\r\nimport horseIcon from '../../../../assets/icons/horse.svg';\r\nimport { LiveFeedEventResult } from '../../../../domain';\r\n\r\ninterface IProps {\r\n result: LiveFeedEventResult;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsItem: FunctionComponent = ({ result, disabledFields }) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n\r\n return (\r\n \r\n {isEnabled('eaEventClassAndSort') && result.eaEventClassAndSort}\r\n {isEnabled('sectionName') && result.sectionName}\r\n \r\n {isEnabled('bridleNumber') && (\r\n
{result.bridleNumber}
\r\n )}\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n {result.riderFirstName} {result.riderLastName}\r\n
\r\n
\r\n
{result.horseName}
\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
{result.horseName}
\r\n
\r\n Owner: {result.ownerFirstName} {result.ownerLastName}\r\n
\r\n
\r\n
\r\n \r\n {isEnabled('dressageTime') && result.dressageTime}\r\n {isEnabled('htJumpPenalties') && result.htJumpPenalties}\r\n {isEnabled('htTimeTaken') && result.htTimeTaken}\r\n {isEnabled('htTimePenalties') && result.htTimePenalties}\r\n {isEnabled('htTotalScore') && result.htTotalScore}\r\n {isEnabled('sectionPlace') && result.sectionPlace}\r\n {isEnabled('overallPlace') && result.overallPlace}\r\n \r\n {isEnabled('riderClassStatusCode') && (\r\n
\r\n {result.riderClassStatusCode}\r\n
\r\n )}\r\n \r\n \r\n );\r\n // return (\r\n // \r\n //
\r\n //
\r\n //
\r\n // {isEnabled('bridleNumber') && (\r\n // <>\r\n //
{result.bridleNumber}
\r\n //
Rider/BN
\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('eaEventClassAndSort') && (\r\n // <>\r\n //
{result.eaEventClassAndSort}
\r\n //
Class
\r\n // \r\n // )}\r\n // {isEnabled('sectionName') && (\r\n // <>\r\n //
{result.sectionName}
\r\n //
Section
\r\n // \r\n // )}\r\n //
\r\n // \"\"\r\n //
\r\n // {result.riderFirstName} {result.riderLastName}\r\n //
\r\n //
\r\n //
\r\n // \"\"\r\n //
\r\n //
{result.horseName}
\r\n //
\r\n // Owner: {result.ownerFirstName} {result.ownerLastName}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('riderClassStatusCode') && (\r\n // <>\r\n //

\r\n // {result.riderClassStatusCode}\r\n //

\r\n //

Status

\r\n // \r\n // )}\r\n //
\r\n // {isEnabled('overallPlace') && (\r\n // OP {result.overallPlace}\r\n // )}\r\n // {isEnabled('sectionPlace') && (\r\n // SP {result.sectionPlace}\r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('evTrialScoringTime') && (\r\n //
\r\n //

{result.evTrialScoringTime}

\r\n //

Time(secs)

\r\n //
\r\n // )}\r\n // {isEnabled('evTrialTimePenalties') && (\r\n //
\r\n //

{result.evTrialTimePenalties}

\r\n //

Time(pens)

\r\n //
\r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('evTrialTotalScore') && (\r\n // <>\r\n //

{result.evTrialTotalScore}

\r\n //

Score

\r\n // \r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // );\r\n};\r\n\r\nexport default memo(ResultsItem);\r\n","/**\r\n *\r\n * ResultsItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport helmetIcon from '../../../../assets/icons/helmet.svg';\r\nimport horseIcon from '../../../../assets/icons/horse.svg';\r\nimport { EventType, LiveFeedEventResult } from '../../../../domain';\r\n\r\ninterface IProps {\r\n result: LiveFeedEventResult;\r\n type?: EventType;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsItem: FunctionComponent = ({ result, disabledFields }) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n\r\n return (\r\n \r\n {isEnabled('eaEventClassAndSort') && result.eaEventClassAndSort}\r\n {isEnabled('sectionName') && result.sectionName}\r\n \r\n {isEnabled('bridleNumber') && (\r\n
{result.bridleNumber}
\r\n )}\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n {result.riderFirstName} {result.riderLastName}\r\n
\r\n
\r\n
{result.horseName}
\r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
{result.horseName}
\r\n
\r\n Owner: {result.ownerFirstName} {result.ownerLastName}\r\n
\r\n
\r\n
\r\n \r\n \r\n {isEnabled('selectedResult') && (\r\n
{result.selectedResult}
\r\n )}\r\n \r\n \r\n {isEnabled('riderClassStatusCode') && (\r\n
\r\n {result.riderClassStatusCode}\r\n
\r\n )}\r\n \r\n \r\n );\r\n // return (\r\n // \r\n //
\r\n //
\r\n //
\r\n // {isEnabled('bridleNumber') && (\r\n // <>\r\n //
{result.bridleNumber}
\r\n //
Rider/BN
\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('eaEventClassAndSort') && (\r\n // <>\r\n //
{result.eaEventClassAndSort}
\r\n //
Class
\r\n // \r\n // )}\r\n // {isEnabled('sectionName') && (\r\n // <>\r\n //
{result.sectionName}
\r\n //
Section
\r\n // \r\n // )}\r\n //
\r\n // \"\"\r\n //
\r\n // {result.riderFirstName} {result.riderLastName}\r\n //
\r\n //
\r\n //
\r\n // \"\"\r\n //
\r\n //
{result.horseName}
\r\n //
\r\n // Owner: {result.ownerFirstName} {result.ownerLastName}\r\n //
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('riderClassStatusCode') && (\r\n // <>\r\n //

\r\n // {result.riderClassStatusCode}\r\n //

\r\n //

Status

\r\n // \r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('overallPlace') && (\r\n // <>\r\n //

{result.overallPlace}

\r\n //

Place

\r\n // \r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n // );\r\n};\r\n\r\nexport default memo(ResultsItem);\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledSortIndicator = styled.div<{ active: boolean }>`\r\n font-weight: bold;\r\n color: ${(props) =>\r\n props.active ? props.theme.grey.dark : props.theme.grey.primary};\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n span {\r\n margin-left: 3px;\r\n }\r\n`;\r\n","/**\r\n *\r\n * SortIndicator\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport { Sort } from '../../domain';\r\nimport { StyledSortIndicator } from './styledComponents';\r\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\r\nimport Tooltip from 'react-bootstrap/Tooltip';\r\nimport infoIcon from '../../assets/icons/info.svg';\r\n\r\n\r\ninterface IProps {\r\n field: string;\r\n name: string;\r\n changeSort: (field: string) => void;\r\n sort?: Sort;\r\n disabledFields: string[];\r\n tooltip?: string;\r\n className?: string;\r\n}\r\n\r\nconst SortIndicator: FunctionComponent = ({\r\n field,\r\n sort,\r\n name,\r\n changeSort,\r\n disabledFields,\r\n tooltip,\r\n className,\r\n}) => {\r\n if (disabledFields.includes(field)) {\r\n return null;\r\n }\r\n\r\n const renderTooltipHelper = () => (\r\n <>\r\n {tooltip && (\r\n {tooltip}}>\r\n e.stopPropagation()}\r\n />\r\n \r\n )}\r\n \r\n );\r\n\r\n if (!field) {\r\n return (\r\n <>\r\n {name}\r\n {renderTooltipHelper()}\r\n \r\n );\r\n }\r\n\r\n return (\r\n changeSort(field)}\r\n className={className}\r\n >\r\n {name}\r\n {field === sort?.field &&\r\n (sort?.order === 'asc' ? : )}\r\n {renderTooltipHelper()}\r\n \r\n );\r\n};\r\n\r\nexport default memo(SortIndicator);\r\n","/**\r\n *\r\n * ResultsSjTableHead\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport { MOBILE_BREAKPOINT, TABLET_BREAKPOINT } from '../../../../app/constants';\r\nimport SortIndicatorComponent from '../../../../components/SortIndicator/SortIndicator.component';\r\nimport { Sort } from '../../../../domain';\r\nimport useWindowSize from '../../../../hooks/useWindowSize';\r\n\r\ninterface IProps {\r\n changeSort: (field: string) => void;\r\n sort?: Sort;\r\n sjPhasesCount: number;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsSJTableHead: FunctionComponent = ({\r\n changeSort,\r\n sort,\r\n sjPhasesCount,\r\n disabledFields,\r\n}) => {\r\n const { width = 0 } = useWindowSize();\r\n const desktopVisible = width > TABLET_BREAKPOINT;\r\n const tabletVisible = width <= TABLET_BREAKPOINT && width > MOBILE_BREAKPOINT;\r\n const mobileVisible = width <= MOBILE_BREAKPOINT;\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {desktopVisible &&\r\n [...Array(sjPhasesCount)].map((_, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n {tabletVisible &&\r\n [...Array(sjPhasesCount)].map((_, index) => {\r\n const showTabletHeader =\r\n isEnabled(`phase${index + 1}JF`) ||\r\n isEnabled(`phase${index + 1}TF`) ||\r\n isEnabled(`phase${index + 1}F`) ||\r\n isEnabled(`phase${index + 1}RecTime`);\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n {mobileVisible && }\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 memo(ResultsSJTableHead);\r\n","/**\r\n *\r\n * ResultsDrTableHead\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport SortIndicatorComponent from '../../../../components/SortIndicator/SortIndicator.component';\r\nimport { JudgeNamePosition, Sort } from '../../../../domain';\r\n\r\ninterface IProps {\r\n youngHorseResultsRule?: boolean;\r\n judges?: JudgeNamePosition[];\r\n changeSort: (field: string) => void;\r\n sort?: Sort;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsDRTableHead: FunctionComponent = ({\r\n judges = [],\r\n sort,\r\n changeSort,\r\n disabledFields,\r\n youngHorseResultsRule,\r\n}) => {\r\n return (\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 {judges.length > 1 &&\r\n judges.map((judge, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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 memo(ResultsDRTableHead);\r\n","/**\r\n *\r\n * ResultsDrTableHead\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport SortIndicatorComponent from '../../../../components/SortIndicator/SortIndicator.component';\r\nimport { Sort } from '../../../../domain';\r\n\r\ninterface IProps {\r\n changeSort: (field: string) => void;\r\n sort?: Sort;\r\n disabledFields: string[];\r\n desktopVisible: boolean;\r\n mobileVisible: boolean;\r\n tabletVisible: boolean;\r\n scoreByOptimumTime?: boolean;\r\n}\r\n\r\nconst ResultsETTableHead: FunctionComponent = ({\r\n sort,\r\n changeSort,\r\n disabledFields,\r\n scoreByOptimumTime,\r\n}) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n\r\n return (\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\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 {scoreByOptimumTime ? (\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\n\r\nexport default memo(ResultsETTableHead);\r\n","/**\r\n *\r\n * ResultsDrTableHead\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport SortIndicatorComponent from '../../../../components/SortIndicator/SortIndicator.component';\r\nimport { Sort } from '../../../../domain';\r\n\r\ninterface IProps {\r\n changeSort: (field: string) => void;\r\n sort?: Sort;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsCBTableHead: FunctionComponent = ({\r\n sort,\r\n disabledFields,\r\n changeSort,\r\n}) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledFields.includes(field);\r\n };\r\n return (\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\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\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default memo(ResultsCBTableHead);\r\n","/**\r\n *\r\n * ResultsDrTableHead\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport SortIndicatorComponent from '../../../../components/SortIndicator/SortIndicator.component';\r\nimport { Sort } from '../../../../domain';\r\n\r\ninterface IProps {\r\n changeSort: (field: string) => void;\r\n sort?: Sort;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsHTTableHead: FunctionComponent = ({\r\n sort,\r\n changeSort,\r\n disabledFields,\r\n}) => {\r\n return (\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\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\n \r\n );\r\n};\r\n\r\nexport default memo(ResultsHTTableHead);\r\n","/**\r\n *\r\n * ResultsSjTableHead\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport SortIndicatorComponent from '../../../../components/SortIndicator/SortIndicator.component';\r\nimport { Sort } from '../../../../domain';\r\n\r\ninterface IProps {\r\n changeSort: (field: string) => void;\r\n sort?: Sort;\r\n disabledFields: string[];\r\n}\r\n\r\nconst ResultsSETableHead: FunctionComponent = ({\r\n changeSort,\r\n sort,\r\n disabledFields,\r\n}) => {\r\n return (\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\n \r\n );\r\n};\r\n\r\nexport default memo(ResultsSETableHead);\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledDownloadResults = styled.div`\r\n\r\n`;\r\n","export default __webpack_public_path__ + \"static/media/doc.5ac516b8.svg\";","/**\r\n *\r\n * DownloadResults\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport { StyledDownloadResults } from './styledComponents';\r\nimport resultsIcon from '../../assets/icons/results.png';\r\nimport docIcon from '../../assets/icons/doc.svg';\r\n\r\ninterface IProps {\r\n url: string;\r\n}\r\n\r\nconst DownloadResults: FunctionComponent = ({ url }) => {\r\n return (\r\n \r\n
\r\n \"\"\r\n\r\n \r\n Download Results \"\"\r\n \r\n
\r\n Please download a file with Results.\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default memo(DownloadResults);\r\n","export default \"data:image/png;base64,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\"","import styled from 'styled-components/macro';\r\nimport { MOBILE_BREAKPOINT } from '../../app/constants';\r\n\r\nexport const StyledHorizontalScrollPrompt = styled.div`\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n background: rgba(255,255,255,0.8);\r\n display: flex;\r\n justify-content: center;\r\n padding-top: 200px;\r\n @media (max-width: ${MOBILE_BREAKPOINT}px) {\r\n padding-top: 200px;\r\n }\r\n .icon-scroll {\r\n position: relative;\r\n width: 30px;\r\n height: 45px;\r\n display: block;\r\n transform: rotate(90deg);\r\n box-shadow: inset 0 0 0 3px;\r\n border-radius: 25px;\r\n z-index: 2;\r\n }\r\n\r\n .icon-scroll:before {\r\n position: absolute;\r\n left: 50%;\r\n content: '';\r\n width: 8px;\r\n height: 8px;\r\n background-color: inherit;\r\n box-shadow: inset 0 0 0 5px;\r\n margin-left: -4px;\r\n top: 7px;\r\n border-radius: 4px;\r\n -webkit-animation-duration: 0.8s;\r\n animation-duration: 0.8s;\r\n -webkit-animation-iteration-count: infinite;\r\n animation-iteration-count: infinite;\r\n -webkit-animation-name: scroll;\r\n animation-name: scroll;\r\n }\r\n @-webkit-keyframes scroll {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0;\r\n transform: translateY(25px);\r\n }\r\n }\r\n @keyframes scroll {\r\n 0% {\r\n opacity: 1;\r\n }\r\n 100% {\r\n opacity: 0;\r\n transform: translateY(25px);\r\n }\r\n }\r\n`;\r\n","/**\r\n *\r\n * HorizontalScrollPrompt\r\n *\r\n */\r\n\r\nimport React, {\r\n memo,\r\n FunctionComponent,\r\n useState,\r\n useEffect,\r\n useRef,\r\n} from 'react';\r\nimport useWindowSize from '../../hooks/useWindowSize';\r\nimport { StyledHorizontalScrollPrompt } from './styledComponents';\r\n\r\ninterface IProps {}\r\n\r\nconst HorizontalScrollPrompt: FunctionComponent = () => {\r\n const { width = 0 } = useWindowSize();\r\n const promtpRef = useRef(null);\r\n const [shown, setShown] = useState(localStorage.horizontalScrollPromptShown);\r\n\r\n useEffect(() => {\r\n const parent = promtpRef.current?.parentNode as HTMLDivElement;\r\n if (parent && parent.clientWidth < parent.scrollWidth) {\r\n setShown(!!localStorage.horizontalScrollPromptShown || false);\r\n } else {\r\n setShown(true);\r\n }\r\n }, [width]);\r\n\r\n const handlePromptClick = () => {\r\n setShown(true);\r\n localStorage.horizontalScrollPromptShown = true;\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n Please use scroll for more results\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default memo(HorizontalScrollPrompt);\r\n","import React, { FunctionComponent, useRef } from 'react';\r\nimport { RootState } from '../../app/store';\r\nimport { ConnectedProps, connect } from 'react-redux';\r\nimport { StyledResults } from './styledComponents';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport {\r\n AppQueryParamsConfigMap,\r\n MOBILE_BREAKPOINT,\r\n TABLET_BREAKPOINT,\r\n} from '../../app/constants';\r\nimport { useEventResults } from '../../api/useEventResults';\r\nimport { Helmet } from 'react-helmet';\r\nimport { APP_NAME_POSTFIX } from '../../constants';\r\nimport EmptyPageComponent from '../../components/EmptyPage/EmptyPage.component';\r\nimport getResultsItem from './getResultsItem';\r\nimport getResultsTableHead from './getResultsTableHead';\r\nimport { useEventFeed } from '../../api/useEventFeed';\r\nimport SplashScreenComponent from '../../components/SplashScreen/SplashScreen.component';\r\nimport { LiveFeedEventResult } from '../../domain';\r\nimport DownloadResults from '../../components/DownloadResults/DownloadResults.component';\r\nimport useDidUpdateEffect from '../../hooks/useDidUpdate';\r\nimport useWindowSize from '../../hooks/useWindowSize';\r\nimport { Disciplines } from '../../domain';\r\nimport useResultsSort from './hooks/useResultsSort';\r\nimport { useScrollOnSearch } from '../../hooks/useScrollOnSearch';\r\nimport HorizontalScrollPromptComponent from '../../components/HorizontalScrollPrompt/HorizontalScrollPrompt.component';\r\n\r\nconst connector = connect(\r\n (state: RootState) => ({\r\n searchQuery: state.app.searchQuery['results'],\r\n }),\r\n {},\r\n);\r\n\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nconst Results: FunctionComponent = ({ searchQuery }) => {\r\n const [{ c: classId, e: eventId }] = useQueryParams(AppQueryParamsConfigMap);\r\n\r\n const { data: activeEvent, dataUpdatedAt: eventNewsFeedUpdatedAt } =\r\n useEventFeed({ eventId });\r\n\r\n const { sort, changeSort } = useResultsSort();\r\n\r\n const {\r\n data: results,\r\n isFetching,\r\n refetch: refetchResults,\r\n } = useEventResults(eventId, classId, searchQuery, sort);\r\n\r\n useDidUpdateEffect(() => {\r\n // Event refreshes with a given time interval so we need\r\n // refetch results when event is refreshed\r\n refetchResults();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [eventNewsFeedUpdatedAt]);\r\n\r\n const { width = 0 } = useWindowSize();\r\n\r\n const desktopVisible = width > TABLET_BREAKPOINT;\r\n const tabletVisible = width <= TABLET_BREAKPOINT && width > MOBILE_BREAKPOINT;\r\n const mobileVisible = width <= MOBILE_BREAKPOINT;\r\n\r\n const containerRef = useRef(null);\r\n useScrollOnSearch(containerRef, 600, -120);\r\n\r\n const renderTitle = () => (\r\n \r\n \r\n {activeEvent?.eventName} Results - {APP_NAME_POSTFIX}\r\n \r\n \r\n );\r\n\r\n if (activeEvent?.resultsDocUrl && !results?.length && !isFetching) {\r\n return ;\r\n }\r\n\r\n if (isFetching && !results) {\r\n return ;\r\n }\r\n\r\n if (!results?.length && searchQuery) {\r\n return (\r\n
\r\n {renderTitle()}\r\n \r\n Try entering just part Rider or Horse Name\r\n \r\n
\r\n );\r\n }\r\n\r\n const activeClass = classId\r\n ? activeEvent?.eventClassList.find((c) => c.id === +classId)\r\n : undefined;\r\n\r\n if (\r\n !results?.length ||\r\n !activeEvent?.publishResultsLiveFeed ||\r\n activeClass?.linkAvailable === false\r\n ) {\r\n return (\r\n
\r\n \r\n No Results currently published\r\n \r\n
\r\n );\r\n }\r\n\r\n const ResultsItem = getResultsItem(activeEvent?.discipline);\r\n const ResultsTableHead = getResultsTableHead(activeEvent?.discipline);\r\n\r\n let judges = activeClass?.judgeNamesPositions || [];\r\n\r\n let sjPhasesCount = activeClass?.sjPhasesCount || 0;\r\n\r\n // const hasBridleNumber = results.some((result) => result.bridleNumber);\r\n\r\n const disabledFields = results.length\r\n ? Object.keys(results[0]).filter(\r\n (key) =>\r\n !results.some(\r\n (result) =>\r\n result[key as keyof LiveFeedEventResult] &&\r\n result[key as keyof LiveFeedEventResult] !== 'N/A',\r\n ),\r\n )\r\n : [];\r\n\r\n if (\r\n activeEvent.discipline === Disciplines.Showjumping &&\r\n !activeEvent.showSJFullResults\r\n ) {\r\n sjPhasesCount = 0;\r\n disabledFields.push('totalJFaults');\r\n }\r\n\r\n return (\r\n \r\n {renderTitle()}\r\n \r\n \r\n \r\n \r\n {results?.map((item) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default connector(Results);\r\n","import { RootState } from './../../../app/store';\r\nimport { useEffect, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport { useEventFeed } from '../../../api/useEventFeed';\r\nimport { useEventResults } from '../../../api/useEventResults';\r\nimport { AppQueryParamsConfigMap } from '../../../app/constants';\r\nimport { Disciplines, Sort } from '../../../domain';\r\n\r\nexport default function useResultsSort() {\r\n const [{ e: eventId, c: classId }] = useQueryParams(AppQueryParamsConfigMap);\r\n\r\n const searchQuery = useSelector(\r\n (state: RootState) => state.app.searchQuery.results,\r\n );\r\n\r\n const [sort, setSort] = useState({\r\n field: 'overallPlace',\r\n order: 'asc',\r\n });\r\n\r\n const { data: activeEvent } = useEventFeed({ eventId });\r\n\r\n const { data: results } = useEventResults(\r\n eventId,\r\n classId,\r\n searchQuery,\r\n sort,\r\n );\r\n\r\n const orderByPlacing = results?.[0]?.orderLiveResultsByPlacing;\r\n\r\n\r\n const changeSort = (field: string) => {\r\n setSort({ field, order: sort?.order === 'asc' ? 'desc' : 'asc' });\r\n };\r\n\r\n useEffect(() => {\r\n if (orderByPlacing === undefined) {\r\n return;\r\n }\r\n\r\n let sortField = orderByPlacing ? 'overallPlace' : 'dressageTime';\r\n\r\n if (activeEvent?.discipline === Disciplines.Showjumping) {\r\n // setting place as default for all cases since it has no time field\r\n sortField = 'sjPlace';\r\n }\r\n\r\n if (\r\n activeEvent?.discipline === Disciplines.EventerTrial &&\r\n orderByPlacing === false\r\n ) {\r\n // evTrialScoringTime for non-orderByPlacing cases (else default overallPlace)\r\n sortField = 'evTrialScoringTime';\r\n }\r\n\r\n if (\r\n activeEvent?.discipline === Disciplines.EventerTrial &&\r\n orderByPlacing === false\r\n ) {\r\n // evTrialScoringTime for non-orderByPlacing cases (else default overallPlace)\r\n sortField = 'evTrialScoringTime';\r\n }\r\n\r\n if (\r\n activeEvent?.discipline === Disciplines.HunterTrials &&\r\n orderByPlacing === false\r\n ) {\r\n // evTrialScoringTime for non-orderByPlacing cases (else default overallPlace)\r\n sortField = 'htTimeTaken';\r\n }\r\n\r\n if (\r\n activeEvent?.discipline === Disciplines.Shows ||\r\n activeEvent?.discipline === Disciplines.MixedEvents\r\n ) {\r\n // setting selectedResult as default for all cases since it has no time field\r\n sortField = 'selectedResult';\r\n }\r\n\r\n setSort({ field: sortField, order: 'asc' });\r\n\r\n }, [activeEvent?.discipline, orderByPlacing]);\r\n\r\n return { changeSort, sort };\r\n}\r\n","import { Disciplines } from '../../domain';\r\nimport ResultsSJItem from './components/ResultsSJItem/ResultsSJItem.component';\r\nimport ResultsDRItem from './components/ResultsDRItem/ResultsDRItem.component';\r\nimport ResultsETItem from './components/ResultsETItem/ResultsETItem.component';\r\nimport ResultsCBItem from './components/ResultsCBItem/ResultsCBItem.component';\r\nimport ResultsHTItem from './components/ResultsHTItem/ResultsHTItem.component';\r\nimport ResultsSEItem from './components/ResultsSEItem/ResultsSEItem.component';\r\n\r\nexport default function getResultsTable(discipline?: Disciplines) {\r\n switch (discipline) {\r\n case Disciplines.Showjumping:\r\n return ResultsSJItem;\r\n case Disciplines.Dressage:\r\n return ResultsDRItem;\r\n case Disciplines.EventerTrial:\r\n return ResultsETItem;\r\n case Disciplines.CombinedTraining:\r\n return ResultsCBItem;\r\n case Disciplines.HunterTrials:\r\n return ResultsHTItem;\r\n case Disciplines.Shows:\r\n case Disciplines.MixedEvents:\r\n return ResultsSEItem;\r\n default:\r\n return ResultsDRItem;\r\n }\r\n}\r\n","import { Disciplines } from '../../domain';\r\nimport ResultsSJTableHead from './components/ResultsSJTableHead/ResultsSJTableHead.component';\r\nimport ResultsDRTableHead from './components/ResultsDRTableHead/ResultsDRTableHead.component';\r\nimport ResultsETTableHead from './components/ResultsETTableHead/ResultsETTableHead.component';\r\nimport ResultsCBTableHead from './components/ResultsCBTableHead/ResultsCBTableHead.component';\r\nimport ResultsHTTableHead from './components/ResultsHTTableHead/ResultsHTTableHead.component';\r\nimport ResultsSETableHead from './components/ResultsSETableHead/ResultsSETableHead.component';\r\n\r\nexport default function getResultsTableHead(discipline?: Disciplines) {\r\n switch (discipline) {\r\n case Disciplines.Showjumping:\r\n return ResultsSJTableHead;\r\n case Disciplines.Dressage:\r\n return ResultsDRTableHead;\r\n case Disciplines.EventerTrial:\r\n return ResultsETTableHead;\r\n case Disciplines.CombinedTraining:\r\n return ResultsCBTableHead;\r\n case Disciplines.HunterTrials:\r\n return ResultsHTTableHead;\r\n case Disciplines.Shows:\r\n case Disciplines.MixedEvents:\r\n return ResultsSETableHead;\r\n default:\r\n return ResultsDRTableHead;\r\n }\r\n}\r\n","/**\r\n *\r\n * TimesItem\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport helmetIcon from '../../../../assets/icons/helmet.svg';\r\nimport horseIcon from '../../../../assets/icons/horse.svg';\r\n// import starIcon from '../../../../assets/icons/star.svg';\r\nimport { Disciplines, LiveFeedEventTime } from '../../../../domain';\r\n\r\ninterface IProps {\r\n time: LiveFeedEventTime;\r\n disabledProps: string[];\r\n discipline: Disciplines;\r\n}\r\n\r\nconst TimesItem: FunctionComponent = ({\r\n time,\r\n disabledProps,\r\n discipline,\r\n}) => {\r\n const isEnabled = (field: string) => {\r\n return !disabledProps.includes(field);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {/* \r\n
\r\n \"\"\r\n
\r\n */}\r\n {isEnabled('drawnOrder') && {time.drawnOrder}}\r\n {isEnabled('class') && {time.eaEventClassAndSort}}\r\n {isEnabled('eaClassEntrySectionName') && (\r\n {time.eaClassEntrySectionName}\r\n )}\r\n {isEnabled('bridleNumber') && (\r\n \r\n
{time.bridleNumber}
\r\n \r\n )}\r\n {isEnabled('riderFullName') && (\r\n \r\n
\r\n \"\"\r\n
\r\n {time.riderFullName ? time.riderFullName : 'N/A'}\r\n
\r\n
\r\n
{time.customHorseName}
\r\n \r\n )}\r\n \r\n
\r\n \"\"\r\n
\r\n
{time.customHorseName}
\r\n
\r\n {time.ownerFullName ? `Owner: ${time.ownerFullName}` : 'N/A'}\r\n
\r\n
\r\n
\r\n \r\n {isEnabled('dressageTime') && {time.dressageTime}}\r\n {isEnabled('showJumpingTime') && (\r\n {time.showJumpingTime || time.dressageTime}\r\n )}\r\n {isEnabled('riderClassStatusName') && (\r\n \r\n
{time.riderClassStatusCode}
\r\n \r\n )}\r\n \r\n {time.breakTimeCustom && time.breakTimeCustom !== '00:00' && (\r\n \r\n \r\n
\r\n
\r\n
\r\n {time.breakTimeCustom}\r\n
\r\n
\r\n {time.breakTimeName}\r\n
\r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n // return (\r\n // <>\r\n // \r\n //
\r\n //
\r\n //
\r\n // {isEnabled('bridleNumber') && (\r\n // <>\r\n //
{time.bridleNumber}
\r\n //
Rider/BN
\r\n // \r\n // )}\r\n //
\r\n //
\r\n // {isEnabled('class') && (\r\n //
\r\n //
{time.eaEventClassAndSort}
\r\n //
Class
\r\n //
\r\n // )}\r\n // {isEnabled('eaClassEntrySectionName') && (\r\n // <>\r\n //
{time.eaClassEntrySectionName}
\r\n //
Section
\r\n // \r\n // )}\r\n //
\r\n // \"\"\r\n //
{time.riderFullName}
\r\n //
\r\n //
\r\n // \"\"\r\n //
\r\n //
{time.customHorseName}
\r\n //
Owner: {time.ownerFullName}
\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('riderClassStatusName') && (\r\n // <>\r\n //

\r\n // {time.riderClassStatusCode}\r\n //

\r\n //

Status

\r\n // \r\n // )}\r\n // {isEnabled('drawnOrder') && (\r\n // <>\r\n //

{time.drawnOrder}

\r\n //

Drawn order

\r\n // \r\n // )}\r\n //
\r\n //
\r\n //
\r\n //
\r\n // {isEnabled('showJumpingTime') && (\r\n //
\r\n //

{time.showJumpingTime || '-'}

\r\n //

\r\n // {discipline === Disciplines.Showjumping ? 'Time' : 'SJ Time'}\r\n //

\r\n //
\r\n // )}\r\n // {isEnabled('dressageTime') && (\r\n //
\r\n //

{time.dressageTime || '-'}

\r\n //

\r\n // {discipline === Disciplines.Dressage ? 'Time' : 'DR Time'}\r\n //

\r\n //
\r\n // )}\r\n //
\r\n //
\r\n //
\r\n // {time.breakTimeCustom && time.breakTimeCustom !== '00:00' && (\r\n //
\r\n //
\r\n //
\r\n // {time.breakTimeCustom}\r\n //
\r\n //
\r\n // {time.breakTimeName}\r\n //
\r\n //
\r\n //
\r\n // )}\r\n // \r\n // );\r\n};\r\n\r\nexport default memo(TimesItem);\r\n","import styled from 'styled-components/macro';\r\nimport {TABLET_BREAKPOINT} from \"../../app/constants\";\r\n\r\nexport const StyledTimes = styled.div`\r\n max-height: calc(100vh - 363px);\r\n @media (max-width: ${TABLET_BREAKPOINT}px) {\r\n max-height: calc(100% - 80px);\r\n }\r\n`;\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledDownloadTimes = styled.div`\r\n\r\n`;\r\n","/**\r\n *\r\n * DownloadTimes\r\n *\r\n */\r\n\r\n import React, { memo, FunctionComponent } from 'react';\r\n import { StyledDownloadTimes } from './styledComponents';\r\n import timesIcon from '../../assets/icons/times.png';\r\n import docIcon from '../../assets/icons/doc.svg';\r\n \r\n interface IProps {\r\n url: string;\r\n }\r\n \r\n const DownloadTimes: FunctionComponent = ({ url }) => {\r\n return (\r\n \r\n
\r\n \"\"\r\n\r\n \r\n Download Times \"\"\r\n \r\n
\r\n Please download a file with Times.\r\n
\r\n
\r\n
\r\n );\r\n };\r\n \r\n export default memo(DownloadTimes);\r\n ","export default \"data:image/png;base64,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\"","import React, { FunctionComponent, useState } from 'react';\r\nimport { RootState } from '../../app/store';\r\nimport { ConnectedProps, connect } from 'react-redux';\r\nimport TimesItem from './components/TimesItem/TimesItem.component';\r\nimport { StyledTimes } from './styledComponents';\r\nimport { useQueryParams } from 'use-query-params';\r\nimport { AppQueryParamsConfigMap } from '../../app/constants';\r\nimport { useEventFeed } from '../../api/useEventFeed';\r\nimport { useEventTimes } from '../../api/useEventTimes';\r\nimport SplashScreenComponent from '../../components/SplashScreen/SplashScreen.component';\r\nimport EmptyPageComponent from '../../components/EmptyPage/EmptyPage.component';\r\nimport { Helmet } from 'react-helmet';\r\nimport { APP_NAME_POSTFIX } from '../../constants';\r\nimport { LiveFeedEventTime, Sort } from '../../domain';\r\nimport SortIndicator from '../../components/SortIndicator/SortIndicator.component';\r\nimport getDisabledProps from './getDisabledProps';\r\nimport DownloadTimes from '../../components/DownloadTimes/DownloadTimes.component';\r\nimport useDidUpdateEffect from '../../hooks/useDidUpdate';\r\nimport {useQueryClient} from 'react-query';\r\n\r\nconst connector = connect(\r\n (state: RootState) => ({\r\n searchQuery: state.app.searchQuery['results'],\r\n }),\r\n {},\r\n);\r\n\r\ntype PropsFromRedux = ConnectedProps;\r\n\r\nconst Times: FunctionComponent = ({ searchQuery }) => {\r\n const [sort, setSort] = useState();\r\n const queryClient = useQueryClient();\r\n const changeSort = (field: string) => {\r\n setSort({ field, order: sort?.order === 'asc' ? 'desc' : 'asc' });\r\n };\r\n\r\n const [{ c: classId, e: eventId }] = useQueryParams(AppQueryParamsConfigMap);\r\n const { dataUpdatedAt: eventNewsFeedUpdatedAt, data: activeEvent } =\r\n useEventFeed({\r\n eventId: eventId,\r\n });\r\n\r\n const {\r\n data: times,\r\n isFetching,\r\n refetch: refetchTimes,\r\n } = useEventTimes({\r\n eventId,\r\n classId,\r\n searchQuery,\r\n sort,\r\n });\r\n\r\n useDidUpdateEffect(() => {\r\n // Event refreshes with a given time interval so we need\r\n // refetch times when event is refreshed\r\n refetchTimes();\r\n queryClient.invalidateQueries('eventTimes');\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [eventNewsFeedUpdatedAt]);\r\n\r\n const renderTitle = () => (\r\n \r\n \r\n {activeEvent?.eventName} Times - {APP_NAME_POSTFIX}\r\n \r\n \r\n );\r\n\r\n let disabledProps = getDisabledProps(activeEvent?.discipline);\r\n\r\n const emptyValueFields = times?.length\r\n ? Object.keys(times[0]).filter(\r\n (key) =>\r\n !times.some(\r\n (time) =>\r\n time[key as keyof LiveFeedEventTime] &&\r\n time[key as keyof LiveFeedEventTime] !== 'N/A',\r\n ),\r\n )\r\n : [];\r\n\r\n disabledProps = disabledProps.concat(emptyValueFields);\r\n\r\n const isEnabled = (field: string) => {\r\n return !disabledProps.includes(field);\r\n };\r\n\r\n if (isFetching && !times) {\r\n return (\r\n <>\r\n {renderTitle()}\r\n \r\n \r\n );\r\n }\r\n\r\n if (activeEvent?.timesDocUrl && !times?.length) {\r\n return ;\r\n }\r\n\r\n if (!times?.length && searchQuery) {\r\n return (\r\n
\r\n {renderTitle()}\r\n \r\n Try entering just part Rider or Horse Name\r\n \r\n
\r\n );\r\n }\r\n\r\n if (!times?.length || !activeEvent?.publishTimesLiveFeed) {\r\n return (\r\n
\r\n \r\n No Times currently published\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n {renderTitle()}\r\n \r\n \r\n \r\n {isEnabled('drawnOrder') && (\r\n \r\n )}\r\n {isEnabled('eaEventClassAndSort') && (\r\n \r\n )}\r\n {isEnabled('eaClassEntrySectionName') && (\r\n \r\n )}\r\n\r\n \r\n\r\n {isEnabled('dressageTime') && (\r\n \r\n )}\r\n {isEnabled('showJumpingTime') && (\r\n \r\n )}\r\n {isEnabled('riderClassStatusName') && (\r\n \r\n )}\r\n \r\n \r\n \r\n {activeEvent &&\r\n times?.map((time) => (\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\n
\r\n );\r\n};\r\n\r\nexport default connector(Times);\r\n","import { useQuery } from 'react-query';\r\nimport { LiveFeedEventTime, Sort } from '../domain';\r\nimport { apiHttpService } from './apiHttpService';\r\nimport { orderBy } from 'lodash';\r\n\r\ninterface UseEventTimesParams {\r\n eventId?: string | null;\r\n classId?: String | null;\r\n searchQuery: string;\r\n sort?: Sort;\r\n}\r\nexport function useEventTimes({\r\n eventId,\r\n classId,\r\n searchQuery,\r\n sort,\r\n}: UseEventTimesParams) {\r\n return useQuery(\r\n ['eventTimes', eventId, classId],\r\n async () => {\r\n const { data } = await apiHttpService.get<{\r\n times: LiveFeedEventTime[];\r\n }>(\r\n `/GetEventTimes?eventId=${eventId}&classId=${classId}`,\r\n );\r\n\r\n return data.times;\r\n },\r\n {\r\n enabled: !!eventId && !!classId,\r\n staleTime: Infinity,\r\n select: (data) => {\r\n let processedData = searchQuery\r\n ? data.filter(\r\n (item) =>\r\n item.riderFullName\r\n .toLowerCase()\r\n .includes(searchQuery.toLowerCase()) ||\r\n item.customHorseName\r\n .toLowerCase()\r\n .includes(searchQuery.toLowerCase()),\r\n )\r\n : data;\r\n\r\n processedData = sort\r\n ? orderBy(processedData, sort?.field, sort?.order)\r\n : orderBy(processedData, 'drawnOrder', 'asc');\r\n\r\n return processedData;\r\n },\r\n },\r\n );\r\n}\r\n","import { Disciplines } from '../../domain';\r\n\r\nexport default function getDisabledProps(discipline?: Disciplines) {\r\n switch (discipline) {\r\n case Disciplines.ArenaCourseHire:\r\n return [\r\n 'eaClassEntrySectionName',\r\n 'bridleNumber',\r\n 'dressageTime',\r\n 'showJumpingTime',\r\n 'drawnOrder',\r\n ];\r\n case Disciplines.Dressage:\r\n case Disciplines.EventerTrial:\r\n return ['showJumpingTime', 'drawnOrder'];\r\n case Disciplines.TrainingClinics:\r\n case Disciplines.XCCourseHire:\r\n return ['bridleNumber', 'drawnOrder'];\r\n case Disciplines.Showjumping:\r\n return [];\r\n default:\r\n return ['drawnOrder'];\r\n }\r\n}\r\n","import styled from 'styled-components/macro';\r\n\r\ninterface IProps {\r\n position: 'left' | 'right';\r\n expanded: boolean;\r\n}\r\n\r\nexport const StyledCollapseButtonLine = styled.div`\r\n width: 2px;\r\n background-color: ${(props) => props.theme.accent};\r\n height: 100%;\r\n position: absolute;\r\n left: ${(props) => (props.position === 'left' ? '1.2rem' : 'auto')};\r\n right: ${(props) => (props.position === 'right' ? '1.2rem' : 'auto')};\r\n top: 0;\r\n\r\n button {\r\n position: absolute;\r\n left: 50%;\r\n top: 40px;\r\n transform: translate(-50%, -50%) ${(props) => {\r\n if (\r\n (props.position === 'right' && props.expanded) ||\r\n (props.position === 'left' && !props.expanded)\r\n ) {\r\n return 'rotate(180deg)';\r\n }\r\n return 'rotate(0deg)';\r\n }};\r\n z-index: 1;\r\n cursor: pointer;\r\n width: 2.4rem;\r\n height: 2.4rem;\r\n border-radius: 50%;\r\n background-color: #fff;\r\n border: 1px solid rgba(235, 237, 239, 0.08);\r\n box-shadow: 0 0.5rem 2rem 0 rgb(35 54 75 / 12%);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n &:hover {\r\n background: ${(props) => props.theme.accent};\r\n &:before {\r\n border-top: 2px solid ${(props) => props.theme.white};\r\n border-right: 2px solid ${(props) => props.theme.white};\r\n }\r\n }\r\n &:before {\r\n content: '';\r\n width: 0.7rem;\r\n height: 0.7rem;\r\n border-top: 2px solid ${(props) => props.theme.fontColor.primary};\r\n margin-left: -0.3rem;\r\n border-right: 2px solid ${(props) => props.theme.fontColor.primary};\r\n border-bottom: 2px solid transparent;\r\n border-left: 2px solid transparent;\r\n transform: rotate(45deg);\r\n transition: 0.2s;\r\n }\r\n }\r\n`;\r\n","/**\r\n *\r\n * CollapseButtonLine\r\n *\r\n */\r\n\r\nimport React, { memo, FunctionComponent } from 'react';\r\nimport { StyledCollapseButtonLine } from './styledComponents';\r\n\r\ninterface IProps {\r\n position: 'left' | 'right';\r\n expanded: boolean;\r\n onClick: () => void;\r\n}\r\n\r\nconst CollapseButtonLine: FunctionComponent = ({\r\n position,\r\n expanded,\r\n onClick,\r\n}) => {\r\n return (\r\n \r\n