\r\n\t\t);\r\n\t}\r\n\treturn null;\r\n}\r\n\r\nexport default Maps;\r\n","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport { AppContext } from '../App';\r\n\r\nconst RoutePdf: FC = () => {\r\n\tconst context = useContext(AppContext);\r\n\r\n\tif (context.state.pdf && context.state.pdf.length > 0 && !context.state.hidePdfs) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{String.fromCharCode(58389)}\r\n\t\t\t\tDownload\r\n\t\t\t\t Map & Schedule Download (PDF)\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nexport default RoutePdf;\r\n","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport { AppContext } from '../App';\r\n\r\nconst SchoolPdf: FC = () => {\r\n\t//const context = useContext(AppContext);\r\n\r\n\t//if (context.state.showSchools) {\r\n\t//\treturn (\r\n\t//\t\t\r\n\t//\t\t\t{String.fromCharCode(58389)}\r\n\t//\t\t\tSchool Footnotes\r\n\t//\t\t\r\n\t//\t);\r\n\t//}\r\n\r\n\treturn null;\r\n};\r\n\r\nexport default SchoolPdf;\r\n","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport { AppContext } from '../App';\r\n\r\nconst SchoolDisclaimer: FC = () => {\r\n\tconst {\r\n\t\tstate: {\r\n\t\t\tschoolDisclaimer: __html\r\n\t\t}\r\n\t} = useContext(AppContext);\r\n\r\n\r\n\tif (__html && __html.length > 0) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nexport default SchoolDisclaimer;\r\n","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport { AppContext } from '../App';\r\n\r\nconst SchoolDisclaimer: FC = () => {\r\n\tconst {\r\n\t\tstate: {\r\n\t\t\tnote: __html\r\n\t\t}\r\n\t} = useContext(AppContext);\r\n\r\n\r\n\tif (__html && __html.length > 0) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nexport default SchoolDisclaimer;\r\n","import * as React from 'react';\r\nimport { FC, useContext } from 'react';\r\nimport { AppContext } from '../App';\r\n\r\nconst NoTripsDisclaimer: FC = () => {\r\n\tconst { state: { noTrips } } = useContext(AppContext);\r\n\r\n\t// TODO: Remove this once we have fix the issue with Silvers\r\n\treturn null;\r\n\r\n\tif (noTrips) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\twarning\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\tThis route does not currently have any active trips. It may not be running.\r\n\t\t\t\t\t\t\tCall 217.384.8188 for more information.\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n\r\nexport default NoTripsDisclaimer;\r\n","module.exports = ReactDOM;","/**\r\n * Enforce that a function not be called until a certain amount of time has passed without it being called.\r\n */\r\nexport function debounce(cb: T, wait = 20) {\r\n\tlet h = 0;\r\n\tlet callable = (...args: any) => {\r\n\t\tclearTimeout(h);\r\n\t\th = window.setTimeout(() => cb(...args), wait);\r\n\t};\r\n\treturn (callable);\r\n}\r\n","import * as React from 'react';\r\nimport { Context, createContext, Dispatch, FC, useMemo, useReducer } from 'react';\r\nimport { Action, reducer, State, StateDefaults } from '../reducer';\r\nimport { ITimetable } from '../types/ISchedule';\r\nimport { IStaticContent } from '../types/IStaticContent';\r\nimport Layout from './Layout';\r\n\r\nexport interface AppContextType {\r\n\tdispatch: Dispatch;\r\n\tstate: State;\r\n}\r\n\r\nexport const AppContext: Context = createContext({\r\n\tdispatch: () => { },\r\n\tstate: {\r\n\t\t...StateDefaults,\r\n\t\tnoTrips: false,\r\n\t\tshowSchools: false,\r\n\t\thidePdfs: false,\r\n\t\ttimetables: [],\r\n\t\tcurrentTimetable: null,\r\n\t\tschoolPdf: null,\r\n\t\tpdf: null,\r\n\t\tmaps: [],\r\n\t\tschoolDisclaimer: null,\r\n\t\tnote: null\r\n\t}\r\n});\r\n\r\ninterface Props {\r\n\tname: string;\r\n\tnoTrips: boolean;\r\n\thidePdfs: boolean;\r\n\ttimetables: ITimetable[];\r\n\tmaps: IStaticContent[];\r\n\tpdf: string;\r\n\tschoolPdf: string;\r\n\tschoolDisclaimer: string;\r\n\tnote: string | null;\r\n}\r\n\r\nfunction hasSchoolFootnotes(timetables: ITimetable[]): boolean {\r\n\treturn timetables.map(s => s\r\n\t\t.footnotes\r\n\t\t.filter(f => f.text.startsWith('See School Day'))\r\n\t\t.length > 0)\r\n\t\t.reduce((a, b) => a || b);\r\n}\r\n\r\nconst App: FC = (props: Props) => {\r\n\r\n\tconst showSchools = useMemo(() => {\r\n\t\treturn hasSchoolFootnotes(props.timetables);\r\n\t}, [props.timetables]);\r\n\r\n\tconst defaultState: State = {\r\n\t\t...StateDefaults,\r\n\t\tshowSchools,\r\n\t\thidePdfs: props.hidePdfs,\r\n\t\tnoTrips: props.noTrips,\r\n\t\ttimetables: props.timetables,\r\n\t\tcurrentTimetable: props.timetables[StateDefaults.directionIndex],\r\n\t\tschoolPdf: props.schoolPdf,\r\n\t\tpdf: props.pdf,\r\n\t\tmaps: props.maps,\r\n\t\tschoolDisclaimer: props.schoolDisclaimer,\r\n\t\tnote: props.note\r\n\t};\r\n\tconst [state, dispatch] = useReducer(reducer, defaultState);\r\n\tconst context: AppContextType = { state, dispatch };\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n};\r\n\r\nexport default App;\r\n"],"sourceRoot":""}