{"version":3,"sources":["config sync /^/.//config/..*/.json$","serviceWorkerRegistration.ts","config/index.js","state/reducers.tsx","state/index.tsx","state/actionCreators.tsx","appInsights.ts","components/auth/index.tsx","hooks/useGraph.tsx","components/Player/Sound.tsx","components/Player/index.tsx","components/layout/Container/index.tsx","components/layout/Header/index.tsx","components/layout/Logo/index.tsx","components/layout/Button/index.tsx","components/layout/ProfileMini/index.tsx","components/layout/AppGrid/index.tsx","components/layout/Navigation/NavMenu.tsx","components/layout/Navigation/NavButton.tsx","components/layout/DesignProvider/reducers.tsx","components/layout/DesignProvider/index.tsx","components/layout/Modal/ModalComponents.tsx","components/layout/Modal/index.tsx","styles/svg/search_placeholder.svg","components/Search/SearchResults.tsx","components/Search/index.tsx","components/Datasources/index.tsx","components/Search/SearchSources.tsx","components/layout/Breadcrumbs/index.tsx","components/layout/Tag/index.tsx","components/layout/Page/index.tsx","components/Player/AlbumArt.tsx","pages/Home/Feed/LatestPodcast.tsx","components/layout/Card/index.tsx","pages/Home/Feed/LatestDocs.tsx","pages/Home/index.tsx","pages/Podcasts/index.tsx","pages/Podcasts/Shows/index.tsx","pages/Podcasts/Shows/Episode/index.tsx","pages/About/index.tsx","components/forms/Switch/index.tsx","pages/Profile/index.tsx","components/Table/TableComponents.tsx","components/Table/Table.tsx","components/Datasources/tableConfig.tsx","components/Datasources/Table.tsx","components/Datasources/List.tsx","pages/Docs/index.tsx","pages/Docs/DocsList.tsx","pages/pages.tsx","App.tsx","hooks/usePages.tsx","reportWebVitals.ts","index.tsx"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","isLocalhost","Boolean","window","location","hostname","match","registerValidSW","swUrl","config","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","state","controller","console","log","onUpdate","onSuccess","catch","error","env","getConfig","process","require","toLowerCase","initState","app","user","token","errors","datasources","player","active","url","meta","title","show","episode","appPath","appReducer","produce","draft","action","type","payload","unshift","AppStateContext","createContext","AppDispatchContext","undefined","AppProvider","children","useImmerReducer","dispatch","Provider","value","useAppState","context","React","useContext","useAppDispatch","addError","message","raw","createdAt","dayjs","browserHistory","createBrowserHistory","basename","reactPlugin","ReactPlugin","appInsights","ApplicationInsights","instrumentationKey","extensions","extensionConfig","identifier","history","autoTrackPageVisitTime","msalInstance","msal","init","request","loginRequest","AuthFunctions","login","a","logout","getToken","account","getAllAccounts","selectedAccount","find","tenantId","acquireTokenSilent","res","accessToken","Auth","loginRedirect","handleResponse","response","options","authProvider","callback","Client","api","get","setUser","setAuthenticatedUserContext","mail","getIdentity","length","err","acquireTokenRedirect","acquireTokenPopup","useEffect","handleRedirectPromise","Skeleton","className","client","useGraph","query","revalidateOnFocus","useSWR","post","data","loading","Sound","soundUrl","audioPlayer","useRef","useState","setIsPlaying","current","addEventListener","paused","ref","autoPlay","controls","src","Player","setSoundUrl","container","cn","to","Container","layout","charSet","Header","banner","logo","right","wide","header","bannerContainer","hidden","Logo","subtitle","Button","label","target","icon","tw","size","buttonType","fullWidth","disabled","rest","startsWith","href","rel","onClick","ProfileMini","displayName","AppGrid","isNamedChildren","leftBar","content","rightBar","NavMenu","renderedMenu","innerWidth","screenWidth","setScreenWidth","isVisible","setIsVisible","useLocation","handleResize","removeEventListener","style","top","div","variants","open","opacity","height","display","closed","animate","NavButton","path","currentPath","Icon","topButton","colorScheme","baseStyles","DesignStateContext","DesignDispatchContext","DesignProvider","deviceDarkMode","matchMedia","matches","useDesignState","overlayStyles","overlay","backgroundColor","zIndex","left","bottom","marginRight","minWidth","minHeight","padding","border","borderRadius","transform","background","transition","searchStyles","width","Modal","isModalOpen","setIsModalOpen","ReactModal","setAppElement","isOpen","onRequestClose","parentSelector","document","getElementById","_extends","assign","i","arguments","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","footer","x1","y1","x2","y2","gradientUnits","offset","stopColor","stopOpacity","xlinkHref","x","y","fill","gradientTransform","_ref11","_ref12","_ref13","_ref14","_ref15","_ref16","_ref17","_ref18","clipPath","points","cx","cy","r","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","_ref29","_ref30","_ref31","_ref32","_ref33","_ref34","_ref35","_ref36","_ref37","_ref38","_ref39","_ref40","_ref41","d","_ref42","_ref43","_ref44","_ref45","_ref46","_ref47","_ref48","_ref49","_ref50","_ref51","_ref52","_ref53","_ref54","_ref55","SvgSearchPlaceholder","_ref","svgRef","titleId","props","viewBox","ForwardRef","ResultPodcast","result","orig","sharepointIds","listId","listItemId","fields","Episode","ShowLookupId","Episode_x0020_Name","ResultCEQ","name","link","ageGroup","SearchResults","inputValue","results","maxHeight","itemType","Search","searchSources","setInputValue","setIsOpen","setResults","searchButton","getSources","searchTerm","Promise","all","func","debouncedSearch","useCallback","debounce","nextValue","flat","placeholder","autoFocus","onChange","event","getDatasources","datasourceUrl","filter","datasource","Title","description","Description","URL","Source","dataModel","DataModel","JSON","parse","Active","allSettled","driveId","fulfilledDatasources","reduce","ds","status","push","Datasources","setDatasources","podcasts","webUrl","ceq","fetch","json","links","includes","Breadcrumbs","breadcrumbs","b","index","Tag","text","tagStyle","TagGroup","Page","align","divider","h1","sub","cont","tb","tags","toolbar","initial","delay","duration","ease","tag","button","AlbumArt","maxWidth","podcastId","aaUrl","setAaUrl","podcastBaseUrl","albumArtUrl","ArtLookupId","alt","extend","calendar","Podcast","showId","PublishDate","Show","sameDay","nextDay","lastDay","lastWeek","sameElse","LatestPodcast","CardContext","Card","cardType","Content","Section","bg","direction","Group","Heading","Subtitle","H1","H2","H3","Document","LatestDocs","HomeContent","PodcastsContent","pathname","desc","th9q","useParams","isSameOrAfter","params","subtract","format","EpisodeContent","episodeId","eTag","episodeNumber","episodeName","Articles","download","setPlayerMeta","play","dangerouslySetInnerHTML","__html","marked","AboutContent","SwitchOption","selected","optionContainer","SwitchControl","items","switchContainer","item","ProfileContent","useDesignDispatch","getRegistrations","registrations","unregister","reload","val","TwoLine","first","second","DefaultColumnFilter","column","filterValue","preFilteredRows","setFilter","count","Table","prepareData","columns","onClickRow","dataMemo","useMemo","columnsMemo","defaultColumn","Filter","useTable","globalFilter","rows","columnIds","row","values","original","some","rowVal","useFilters","useGlobalFilter","useSortBy","getTableProps","getTableBodyProps","headerGroups","prepareRow","setGlobalFilter","headerGroup","getHeaderGroupProps","headers","getHeaderProps","getSortByToggleProps","render","isSorted","isSortedDesc","getRowProps","cells","cell","getCellProps","relativeTime","accessor","disableFilters","Cell","charCodeAt","obj","defaultValue","travel","regexp","String","split","getDocs","datamodel","expand","docs","docsArray","hasMeta","parsedDocs","doc","forEach","List","view","slice","DocContent","DocsListContent","pages","showInMainMenu","component","hasAccess","CgMediaPodcast","CgFileDocument","docsId","CgInfo","HeaderRight","App","accessGroups","MenuButton","routes","page","group","menuLinks","renderedRoutes","generatePages","exact","generateMenu","usePages","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","origin","contentType","ready","checkValidServiceWorker","serviceWorkerRegistration","loadAppInsights"],"mappings":"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","file":"static/js/main.da36c2be.chunk.js","sourcesContent":["var map = {\n\t\"./config.dev.json\": 105,\n\t\"./config.prod.json\": 106\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 104;","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://cra.link/PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://cra.link/PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","const getConfig = (env) => {\n return require(`./config.${env ? env.toLowerCase() : 'dev'}.json`);\n}\n\nexport default getConfig(process.env.REACT_APP_STAGE);\n","import { produce } from \"immer\";\nimport { AuthenticationResult } from \"@azure/msal-browser\";\nimport { User } from \"@microsoft/microsoft-graph-types\";\n\nimport { Datasource, Player } from \"types\";\n\nexport interface State {\n app: string;\n user: User;\n token: AuthenticationResult;\n errors: Error[];\n datasources: Datasource[];\n player: Player;\n}\n\nexport const initState: State = {\n app: \"\",\n user: {},\n token: {} as AuthenticationResult,\n errors: [],\n datasources: [],\n player: {\n active: false,\n url: \"\",\n meta: {\n id: \"\",\n title: \"\",\n show: \"\",\n episode: 0,\n appPath: \"\",\n },\n },\n};\n\nexport const appReducer = produce((draft, action) => {\n switch (action.type) {\n case \"SET_USER\":\n draft.user = action.payload;\n break;\n case \"SET_TOKEN\":\n draft.token = action.payload;\n break;\n case \"SET_ERROR\":\n draft.errors = draft.errors.unshift(action.payload);\n break;\n case \"SET_DATA_SOURCES\":\n draft.datasources = action.payload;\n break;\n case \"SET_PLAYER\":\n draft.player.active = action.payload;\n break;\n case \"SET_PLAYER_URL\":\n draft.player.url = action.payload;\n break;\n case \"SET_PLAYER_META\":\n draft.player.meta = action.payload;\n break;\n }\n});\n","import React, { createContext } from \"react\";\nimport { useImmerReducer } from \"use-immer\";\n\nimport { initState, appReducer, State } from \"./reducers\";\n\ntype Dispatch = (args: any) => void;\n\nconst AppStateContext = createContext(initState);\nconst AppDispatchContext = createContext(undefined);\n\ntype AppProviderProps = {\n children: React.ReactNode;\n};\n\nfunction AppProvider({ children }: AppProviderProps) {\n const [state, dispatch] = useImmerReducer(appReducer, initState);\n\n return (\n \n \n {children}\n \n \n );\n}\n\nfunction useAppState() {\n const context = React.useContext(AppStateContext);\n if (context === undefined) {\n throw new Error(\"useAppState must be used within AppProvider\");\n }\n\n return context;\n}\n\nfunction useAppDispatch() {\n const context = React.useContext(AppDispatchContext);\n if (context === undefined) {\n throw new Error(\"useAppDispatch must be used within AppProvider\");\n }\n\n return context;\n}\n\nexport { AppProvider, useAppState, useAppDispatch };\n","import { AuthenticationResult } from \"@azure/msal-browser\";\nimport { User } from \"@microsoft/microsoft-graph-types\";\nimport dayjs from \"dayjs\";\n\nimport { ErrorPayload, ShowMeta } from \"./actions\";\nimport { Datasource } from \"types\";\n\nexport const setUser = (payload: User) => {\n return {\n type: \"SET_USER\",\n payload,\n };\n};\nexport const setToken = (payload: AuthenticationResult) => {\n return {\n type: \"SET_TOKEN\",\n payload,\n };\n};\n\nexport const setDatasources = (payload: Datasource[]) => {\n return {\n type: \"SET_DATA_SOURCES\",\n payload,\n };\n};\n\nexport const setPlayer = (payload: boolean) => {\n return {\n type: \"SET_PLAYER\",\n payload,\n };\n};\n\nexport const setPlayerUrl = (payload: string) => {\n return {\n type: \"SET_PLAYER_URL\",\n payload,\n };\n};\n\nexport const setPlayerMeta = (payload: ShowMeta) => {\n return {\n type: \"SET_PLAYER_META\",\n payload,\n };\n};\n\nexport const addError = (payload: ErrorPayload) => {\n const { message, raw } = payload;\n return {\n type: \"SET_ERROR\",\n payload: {\n createdAt: dayjs(),\n message,\n raw,\n },\n };\n};\n","import { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\nimport {\n ReactPlugin,\n withAITracking,\n} from \"@microsoft/applicationinsights-react-js\";\nimport { createBrowserHistory } from \"history\";\n\nconst browserHistory = createBrowserHistory({ basename: \"\" });\nconst reactPlugin = new ReactPlugin();\nconst appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: \"b8a7bf6d-21fc-4edb-8cce-d0bc18d9385a\",\n extensions: [reactPlugin],\n extensionConfig: {\n [reactPlugin.identifier]: { history: browserHistory },\n },\n autoTrackPageVisitTime: true,\n },\n});\n\nexport { appInsights, withAITracking };\n","import React, { useEffect, createContext } from \"react\";\nimport * as msal from \"@azure/msal-browser\";\nimport {\n Client,\n Options,\n AuthProvider,\n AuthProviderCallback,\n} from \"@microsoft/microsoft-graph-client\";\n\nimport config from \"config\";\n\nimport { useAppDispatch } from \"state\";\nimport { setUser, setToken, addError } from \"state/actionCreators\";\n\nimport { appInsights } from \"appInsights\";\n\nconst msalInstance = new msal.PublicClientApplication(config.msal.init);\n\nconst request = config.msal.loginRequest;\n\ntype Props = {\n children: React.ReactNode;\n};\n\ntype AuthFunctionsProps = {\n login: () => Promise;\n logout: () => void;\n getToken: () => Promise;\n};\n\nconst AuthFunctions = createContext({\n login: async () => {},\n logout: () => {},\n getToken: async () => \"\",\n});\n\nexport async function getToken(): Promise {\n const account = msalInstance.getAllAccounts();\n\n let selectedAccount = account.find(\n ({ tenantId }) => tenantId === config.msal.tenantId\n );\n try {\n if (selectedAccount) {\n return msalInstance\n .acquireTokenSilent({ account: selectedAccount, ...request })\n .then((res) => res.accessToken);\n }\n // Need to handle if account not found/not selected tenant\n } catch (err) {\n console.log(err);\n }\n return \"\";\n}\n\nfunction Auth({ children }: Props) {\n const dispatch = useAppDispatch();\n\n async function login() {\n return msalInstance.loginRedirect(request);\n }\n\n function logout() {\n msalInstance.logout();\n }\n\n // Receives a login response and updates state with token and user details\n function handleResponse(response: msal.AuthenticationResult | null) {\n if (response) {\n dispatch(setToken(response));\n const authProvider: AuthProvider = (callback: AuthProviderCallback) => {\n let accessToken = response ? response.accessToken : null;\n callback(\"error\", accessToken);\n };\n let options: Options = {\n authProvider,\n };\n\n const client = Client.init(options);\n client\n .api(\"/me\")\n .get()\n .then((res) => {\n dispatch(setUser(res));\n appInsights.setAuthenticatedUserContext(res.mail, res.mail, true);\n });\n }\n }\n\n // Retrieve accounts if logged in previously\n // Try to refresh token if possible\n async function getIdentity() {\n const account = msalInstance.getAllAccounts();\n try {\n if (account.length > 0) {\n let selectedAccount = account.find(\n ({ tenantId }) => tenantId === config.msal.tenantId\n );\n msalInstance\n .acquireTokenSilent({ account: selectedAccount, ...request })\n .then((res) => {\n handleResponse(res);\n })\n .catch((err) => {\n // Need to handle expired token refresh\n msalInstance.acquireTokenRedirect(request);\n });\n }\n } catch (err) {\n if (err instanceof msal.InteractionRequiredAuthError) {\n return msalInstance\n .acquireTokenPopup(request)\n .then((res) => handleResponse(res))\n .catch((err) => {\n dispatch(\n addError({\n message: \"auth/getIdentity error, acquireTokenPopup failed\",\n raw: err,\n })\n );\n });\n } else {\n dispatch(\n addError({\n message: \"auth/getIdentity error\",\n raw: err,\n })\n );\n }\n }\n }\n\n useEffect(() => {\n // Listener for redirect auth code flow\n msalInstance\n .handleRedirectPromise()\n .then((res) => {\n if (res) handleResponse(res);\n })\n .catch((err) => {\n console.log(err);\n getIdentity();\n dispatch(\n addError({\n message: \"auth/handleRedirectPromise error\",\n raw: err,\n })\n );\n });\n\n // Acquire token if logged in already\n getIdentity();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {children}\n \n );\n}\n\nexport { Auth, AuthFunctions };\n","import React from \"react\";\nimport {\n Client,\n Options,\n AuthProvider,\n AuthProviderCallback,\n} from \"@microsoft/microsoft-graph-client\";\nimport useSWR from \"swr\";\n\nimport { getToken } from \"components/auth\";\n\ntype Props = {\n query: string;\n action: Actions;\n payload?: any;\n revalidateOnFocus?: boolean;\n};\n\ntype Actions = \"GET\" | \"POST\";\nexport interface GraphResponse {\n data: any;\n loading: boolean;\n error: any;\n Skeleton: () => React.ReactElement;\n}\n\n// Skeleton loading\nconst Skeleton = () => {\n return
;\n};\n\n// Instantiate Graph and Auth provider\nconst authProvider: AuthProvider = async (callback: AuthProviderCallback) => {\n let accessToken = await getToken();\n callback(\"error\", accessToken);\n};\n\nlet options: Options = {\n authProvider,\n};\n\nconst client = Client.init(options);\n\nexport function useGraph({\n query,\n action,\n payload,\n revalidateOnFocus = true,\n}: Props): GraphResponse {\n const fetcher = (query: string, action: Actions) => {\n try {\n if (action === \"GET\") {\n return client.api(query).get();\n }\n if (action === \"POST\") {\n return client.api(query).post(payload);\n }\n } catch (error) {\n return {\n error,\n };\n }\n };\n\n // SWR data fetching\n const { data, error } = useSWR([query, action], fetcher, {\n revalidateOnFocus,\n });\n\n return {\n data,\n loading: !error && !data,\n error,\n Skeleton,\n };\n}\n\nexport { Skeleton, client };\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport { TiMediaPlayOutline, TiMediaPauseOutline } from \"react-icons/ti\";\n\ntype Props = {\n soundUrl: string;\n};\n\nexport default function Sound({ soundUrl }: Props) {\n const audioPlayer = useRef(null);\n const [isPlaying, setIsPlaying] = useState(false);\n\n const pause = () => {\n if (audioPlayer.current) {\n audioPlayer.current.pause();\n }\n };\n\n const play = () => {\n if (audioPlayer.current) {\n audioPlayer.current.play();\n }\n };\n\n useEffect(() => {\n if (audioPlayer.current) {\n audioPlayer.current.addEventListener(\"play\", () => {\n setIsPlaying(true);\n });\n audioPlayer.current.addEventListener(\"pause\", () => {\n setIsPlaying(false);\n });\n\n setIsPlaying(audioPlayer.current.paused);\n }\n }, []);\n\n return (\n
\n \n Your browser does not support audio playback.\n \n {/* {\n isPlaying\n ?\n
pause()} className='flex flex-row items-center justify-center h-8 w-8 bg-primary-100 rounded-full cursor-pointer'>\n \n
\n :\n
play()} className='flex flex-row items-center justify-center h-8 w-8 bg-primary-100 rounded-full cursor-pointer'>\n \n
\n } */}\n
\n );\n}\n","import React, { useEffect, useState } from \"react\";\nimport cn from \"classnames\";\nimport { Link } from \"react-router-dom\";\n\nimport { useGraph } from \"hooks/useGraph\";\nimport { useAppState } from \"state\";\nimport Sound from \"./Sound\";\n\nexport default function Player() {\n const [soundUrl, setSoundUrl] = useState(\"\");\n const { player } = useAppState();\n const { active, url, meta } = player;\n const { title, show, episode, appPath } = meta;\n\n const { data, loading, error } = useGraph({\n query: `${url}`,\n action: \"GET\",\n revalidateOnFocus: false,\n });\n\n useEffect(() => {\n if (data) {\n setSoundUrl(data[\"@microsoft.graph.downloadUrl\"]);\n }\n }, [data]);\n\n const container = cn(\n `py-4 px-2 bg-primary-700 shadow-md`,\n active ? \"flex flex-col sm:flex-row sm:flex-grow sm:items-center\" : \"hidden\"\n );\n\n if (loading) {\n return
;\n }\n if (error) {\n return
Unable to load audio
;\n }\n\n return (\n
\n
\n
\n \n
\n Episode ยท {episode} {show}\n
\n
\n {title}\n
\n \n
\n \n
\n
\n );\n}\n","import React from \"react\";\nimport cn from \"classnames\";\nimport { Helmet, HelmetProvider } from \"react-helmet-async\";\n\ntype Props = {\n title?: string;\n children?: React.ReactNode;\n};\n\nexport default function Container({ children, title = \"App\" }: Props) {\n const layout = cn(`flex flex-col min-h-screen`);\n\n return (\n \n
\n \n \n {title}\n \n {children}\n
\n
\n );\n}\n","import React from \"react\";\nimport cn from \"classnames\";\n\ntype Props = {\n banner?: boolean;\n logo: React.ReactNode;\n right?: React.ReactNode;\n wide: boolean;\n children?: React.ReactNode;\n};\n\nexport default function Header({\n banner = false,\n logo,\n right,\n wide = true,\n children,\n}: Props) {\n const header = cn(\n \"flex flex-col justify-center h-16 top-0 sticky backdrop-blur z-10 bg-theme-bg-primary bg-opacity-50\",\n wide ? `border-b border-theme-border-primary` : `container mx-auto py-2`\n );\n\n const bannerContainer = cn({\n \"flex flex-row\": banner,\n hidden: !banner,\n });\n\n const container = cn(\n `flex flex-row items-center justify-between\n py-4\n `\n );\n\n return (\n
\n
\n
\n {logo}\n {children}\n {right}\n
\n
\n );\n}\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\ntype Props = {\n title: string;\n subtitle?: string;\n children?: React.ReactNode;\n};\n\nexport default function Logo({ children, title, subtitle }: Props) {\n return (\n
\n \n
\n {title}\n
\n
\n {subtitle}\n
\n \n
\n );\n}\n","import React, { ReactChild } from \"react\";\nimport cn from \"classnames\";\nimport { Link } from \"react-router-dom\";\n\nexport interface ButtonProps {\n label?: string;\n target?: any;\n icon?: ReactChild;\n tw?: string;\n size?: ButtonSize;\n buttonType?: ButtonType;\n type?: \"button\" | \"submit\" | \"reset\";\n fullWidth?: boolean;\n disabled?: boolean;\n children?: React.ReactNode;\n props?: any;\n}\n\ntype ButtonSize = \"sm\" | \"md\" | \"lg\";\ntype ButtonType = \"primary\" | \"secondary\" | \"destructive\" | \"plain\" | \"text\";\n\nexport default function Button({\n label,\n target,\n icon,\n tw,\n size = \"md\",\n buttonType = \"plain\",\n fullWidth = false,\n disabled = false,\n children,\n ...rest\n}: ButtonProps) {\n const container = cn(\n `flex flex-row justify-center items-center text-center\n outline-none focus:outline-none transition-base\n cursor-pointer svg-child`,\n { \"flex-grow flex-1\": fullWidth },\n {\n \"px-3 py-1 mx-1 first:mb-1 md:first:mb-0 md:first:ml-0 md:last:mr-0 rounded-md text-xs\":\n size === \"sm\" && buttonType !== \"text\",\n },\n {\n \"px-4 py-2 mx-1 first:mb-1 md:first:mb-0 md:first:ml-0 md:last:mr-0 rounded-md text-sm\":\n size === \"md\" && buttonType !== \"text\",\n },\n {\n \"px-6 py-2 mx-1 first:mb-1 md:first:mb-0 md:first:ml-0 md:last:mr-0 rounded-md text-lg font-light\":\n size === \"lg\" && buttonType !== \"text\",\n },\n {\n \"bg-theme-accent-blue hover:bg-theme-accent-blue-fore text-white hover:shadow-sm\":\n buttonType === \"primary\",\n },\n {\n \"bg-theme-accent-teal hover:bg-theme-accent-fore text-white hover:shadow-sm\":\n buttonType === \"secondary\",\n },\n {\n \"bg-theme-accent-pink hover:bg-theme-accent-pink-fore text-white hover:shadow-sm\":\n buttonType === \"destructive\",\n },\n {\n \"bg-theme-bg-secondary hover:bg-theme-bg-primary border border-theme-border-primary text-theme-text-tertiary hover:text-theme-text-primary hover:shadow-sm\":\n buttonType === \"plain\" && !disabled,\n },\n {\n \"mx-3 first:ml-0 my-1 text-primary-400 hover:text-primary-600 border-b-2 border-transparent hover:border-primary-400\":\n buttonType === \"text\" && !disabled,\n },\n {\n \"disabled cursor-not-allowed bg-white hover:bg-white hover:shadow-none text-gray-400 hover:text-gray-400 border border-gray-300\": disabled,\n },\n tw\n );\n\n if (typeof target === \"string\" && !target.startsWith(\"http\")) {\n return (\n \n {icon} {label} {children}\n \n );\n }\n\n if (typeof target === \"string\" && target.startsWith(\"http\")) {\n return (\n \n \n \n );\n }\n\n return (\n \n {icon} {label} {children}\n \n );\n}\n","import React, { useContext } from \"react\";\nimport cn from \"classnames\";\nimport { Link } from \"react-router-dom\";\nimport { CgProfile } from \"react-icons/cg\";\n\nimport { useAppState } from \"state\";\nimport { AuthFunctions } from \"components/auth\";\nimport Button from \"components/layout/Button\";\n\nexport default function ProfileMini() {\n const { user } = useAppState();\n const { login } = useContext(AuthFunctions);\n\n const container = cn(\n `flex flex-row px-6 py-1\n text-sm text-theme-text-primary hover:text-theme-accent-blue\n rounded-md transition-base\n `\n );\n\n if (user?.id) {\n return (\n
\n \n
\n
{user?.displayName}
\n
\n \n
\n
\n \n
\n );\n }\n\n return (\n
\n \n
\n );\n}\n","import React, { ReactNode, ReactChild } from \"react\";\nimport cn from \"classnames\";\n\ntype Props = {\n children: ReactChild | NamedChildren;\n};\n\ntype NamedChildren = {\n leftBar?: ReactNode;\n content?: ReactNode;\n rightBar?: ReactNode;\n};\n\nconst isObject = (value: any) =>\n typeof value === \"object\" &&\n typeof value !== \"function\" &&\n value !== undefined;\n\nconst isNamedChildren = (children: any): children is NamedChildren =>\n isObject(children) && \"content\" in children;\n\nexport default function AppGrid({ children }: Props) {\n const container = cn(`\n flex flex-col sm:flex-row flex-grow min-h-full\n `);\n\n if (!children) {\n throw new Error(\"This component requires children\");\n }\n\n if (isNamedChildren(children)) {\n const { leftBar, content, rightBar } = children;\n\n return (\n
\n {leftBar ? (\n
\n {leftBar}\n
\n ) : null}\n
{content}
\n {rightBar ? (\n
{rightBar}
\n ) : null}\n
\n );\n }\n\n return
{children}
;\n}\n","import React, { useEffect, useState } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport cn from \"classnames\";\nimport { motion } from \"framer-motion\";\nimport { CgClose, CgMenu } from \"react-icons/cg\";\n\ninterface Props {\n renderedMenu: React.ReactNode;\n}\n\nexport default function NavMenu({ renderedMenu }: Props) {\n const [screenWidth, setScreenWidth] = useState(window.innerWidth);\n const [isVisible, setIsVisible] = useState(screenWidth > 640 ? true : false);\n const location = useLocation();\n\n const variants = {\n open: { opacity: 1, height: \"100%\", display: \"block\" },\n closed: { opacity: 0, height: 0, display: \"none\" },\n };\n\n useEffect(() => {\n function handleResize() {\n setScreenWidth(window.innerWidth);\n }\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n useEffect(() => {\n screenWidth > 640 ? setIsVisible(true) : setIsVisible(false);\n }, [location, screenWidth]);\n\n return (\n
\n setIsVisible(!isVisible)}\n >\n {isVisible ? (\n <>\n Hide Menu\n \n ) : (\n <>\n Menu\n \n )}\n
\n \n {renderedMenu}\n \n
\n );\n}\n","import React from \"react\";\nimport cn from \"classnames\";\nimport { Link } from \"react-router-dom\";\n\nimport { MenuButtonProps } from \"hooks/usePages\";\n\nexport default function NavButton({\n path,\n currentPath,\n icon: Icon,\n children,\n}: MenuButtonProps) {\n const topButton = cn(\n `flex flex-row\n mx-2 px-4 py-2 text-sm font-semibold\n transition-base`,\n currentPath === path\n ? \"text-theme-accent-blue-fore font-semibold rounded-lg bg-theme-bg-highlight\"\n : \"text-theme-text-tertiary hover:text-theme-accent-blue\"\n );\n\n return (\n \n
\n {Icon ?
{}
: null}\n {children}\n
\n \n );\n}\n","import { produce } from \"immer\";\n\ntype ColorScheme = \"theme-light\" | \"theme-dark\";\n\nexport interface State {\n colorScheme: ColorScheme;\n baseStyles: string;\n}\n\nexport const initState: State = {\n colorScheme: \"theme-light\",\n baseStyles: \"font-sans text-gray-800 transition-base\",\n};\n\nexport const appReducer = produce((draft, action) => {\n switch (action.type) {\n case \"SET_SCHEME\":\n draft.colorScheme = action.payload;\n break;\n case \"SET_BASESTYLES\":\n draft.baseStyles = action.payload;\n break;\n }\n});\n","import React, { createContext, useEffect } from \"react\";\nimport { useImmerReducer } from \"use-immer\";\nimport cn from \"classnames\";\n\nimport { initState, appReducer, State } from \"./reducers\";\n\ntype Dispatch = (args: any) => void;\n\nconst DesignStateContext = createContext>({});\nconst DesignDispatchContext = createContext(undefined);\n\ntype DesignProviderProps = {\n children: React.ReactNode;\n};\n\nfunction DesignProvider({ children }: DesignProviderProps) {\n const [state, dispatch] = useImmerReducer(appReducer, initState);\n const { colorScheme, baseStyles } = state;\n\n const deviceDarkMode = window.matchMedia(\"(prefers-color-scheme: dark)\")\n .matches;\n\n useEffect(() => {\n if (deviceDarkMode) {\n dispatch({\n type: \"SET_SCHEME\",\n payload: \"theme-dark\",\n });\n } else {\n dispatch({\n type: \"SET_SCHEME\",\n payload: \"theme-light\",\n });\n }\n }, [deviceDarkMode, dispatch]);\n\n return (\n \n \n
{children}
\n
\n
\n );\n}\n\nfunction useDesignState() {\n const context = React.useContext(DesignStateContext);\n if (context === undefined) {\n throw new Error(\"useDesignState must be used within DesignProvider\");\n }\n\n return context;\n}\n\nfunction useDesignDispatch() {\n const context = React.useContext(DesignDispatchContext);\n if (context === undefined) {\n throw new Error(\"useDesignDispatch must be used within DesignProvider\");\n }\n\n return context;\n}\n\nexport { DesignProvider, useDesignState, useDesignDispatch };\n","import React from \"react\";\n\ninterface ContainerProps {\n header: React.ReactNode;\n content: React.ReactNode;\n footer: React.ReactNode;\n}\n\nexport const Container = ({ header, content, footer }: ContainerProps) => {\n return (\n
\n
{header}
\n
{content}
\n
\n {footer}\n
\n
\n );\n};\n","import React from \"react\";\nimport ReactModal from \"react-modal\";\nimport cn from \"classnames\";\nimport { CgClose } from \"react-icons/cg\";\n\nimport { useDesignState } from \"components/layout/DesignProvider\";\n\nimport { Container } from \"./ModalComponents\";\n\ninterface Props {\n title?: string;\n isModalOpen: boolean;\n setIsModalOpen: React.Dispatch>;\n overlay?: \"overlay\" | \"search\";\n children: React.ReactNode;\n}\n\nconst overlayStyles = {\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n zIndex: 15,\n },\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n minWidth: \"50%\",\n minHeight: \"33%\",\n padding: 0,\n border: \"none\",\n borderRadius: \"0.5rem\",\n transform: \"translate(-50%, -50%)\",\n background: \"none\",\n transition: \"0.2s ease\",\n },\n};\n\nconst searchStyles = {\n overlay: {\n backgroundColor: \"rgba(0, 0, 0, 0.7)\",\n zIndex: 15,\n },\n content: {\n top: 0,\n left: \"50%\",\n right: \"auto\",\n bottom: \"initial\",\n width: \"auto\",\n padding: 0,\n border: \"none\",\n borderRadius: 0,\n background: \"none\",\n transition: \"0.2s ease\",\n transform: \"translate(-50%)\",\n },\n};\n\nexport default function Modal({\n children,\n title,\n isModalOpen,\n setIsModalOpen,\n overlay = \"overlay\",\n}: Props) {\n const { colorScheme } = useDesignState();\n ReactModal.setAppElement(\"#modal\");\n\n return (\n setIsModalOpen(false)}\n parentSelector={() => document.getElementById(\"modal\")}\n style={overlay === \"overlay\" ? overlayStyles : searchStyles}\n >\n \n {title ? (\n
\n
{title}
\n setIsModalOpen(false)}\n />\n
\n ) : null}\n {children}\n
\n \n );\n}\n\nModal.Container = Container;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a91ba363-77be-43f7-9cf6-91c4a3880d9c\",\n x1: 378.37,\n y1: 732.81,\n x2: 378.37,\n y2: 130.21,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"gray\",\n stopOpacity: 0.25\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"gray\",\n stopOpacity: 0.12\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"gray\",\n stopOpacity: 0.1\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"d1e6aa0e-d79d-4f6f-afbb-c37e9ed80ff9\",\n x1: 274.44,\n y1: 409.32,\n x2: 274.44,\n y2: 248.16,\n xlinkHref: \"#a91ba363-77be-43f7-9cf6-91c4a3880d9c\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"a279b039-1afd-4281-8292-ccd5c8c9b734\",\n x1: 274.44,\n y1: 361.44,\n x2: 274.44,\n y2: 261.01,\n xlinkHref: \"#a91ba363-77be-43f7-9cf6-91c4a3880d9c\"\n}), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"42e7b1d1-2be2-47b0-aacb-a853df270819\",\n transform: \"translate(-179 -60.54)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"cf34cfb5-9399-4bae-9cea-d47bbef6cb3a\",\n \"data-name\": \"\",\n x: 381.54,\n y: 322.72,\n width: 143.79,\n height: 96.93,\n fill: \"#fff\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"972637f2-71db-4198-9c75-a0854a7fe249\",\n x1: 274.44,\n y1: 616.03,\n x2: 274.44,\n y2: 454.87,\n xlinkHref: \"#a91ba363-77be-43f7-9cf6-91c4a3880d9c\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"6c85befd-f960-412c-83e0-663d4b13bf85\",\n x1: 274.44,\n y1: 568.15,\n x2: 274.44,\n y2: 467.72,\n xlinkHref: \"#a91ba363-77be-43f7-9cf6-91c4a3880d9c\"\n}), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"f66b8fac-771d-49bf-85c7-4ce29a79f723\",\n transform: \"translate(-179 -60.54)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"7439734d-5f7c-428f-88ce-e68b86a45c07\",\n \"data-name\": \"\",\n x: 381.54,\n y: 529.42,\n width: 143.79,\n height: 96.93,\n fill: \"#fff\"\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"598f8edf-c762-4b18-b52d-250fc678075a\",\n x1: 688.76,\n y1: 765.86,\n x2: 688.76,\n y2: 163.26,\n gradientTransform: \"translate(1142.22 -188.53) rotate(90)\",\n xlinkHref: \"#a91ba363-77be-43f7-9cf6-91c4a3880d9c\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"013b841e-9a42-49b8-8a36-6db9ed002b72\",\n x1: 688.18,\n y1: 568.49,\n x2: 688.18,\n y2: 409.67,\n gradientTransform: \"translate(1161.39 -164.01) rotate(90)\",\n xlinkHref: \"#a91ba363-77be-43f7-9cf6-91c4a3880d9c\"\n}), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"f8cab3c1-d868-48bc-b87d-cd2075ddc26a\",\n x1: 810.6,\n y1: 767.54,\n x2: 810.6,\n y2: 362.71,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#b3b3b3\",\n stopOpacity: 0.25\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.54,\n stopColor: \"#b3b3b3\",\n stopOpacity: 0.1\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#b3b3b3\",\n stopOpacity: 0.05\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"043d467e-585e-47c7-bb2c-06dd6f5be04b\",\n x1: 685.49,\n y1: 507.08,\n x2: 685.49,\n y2: 487.6,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopOpacity: 0.12\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.55,\n stopOpacity: 0.09\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopOpacity: 0.02\n})), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"be08032f-102d-431e-9b5f-1e4ebfc8159b\",\n x1: 774.99,\n y1: 484.73,\n x2: 774.99,\n y2: 425.15,\n xlinkHref: \"#043d467e-585e-47c7-bb2c-06dd6f5be04b\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 154.15,\n y: 130.21,\n width: 448.44,\n height: 602.6,\n fill: \"url(#a91ba363-77be-43f7-9cf6-91c4a3880d9c)\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 159.99,\n y: 138.39,\n width: 434.43,\n height: 581.58,\n fill: \"#f2f2f2\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 193.86,\n y: 162.91,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 193.86,\n y: 183.93,\n width: 149.48,\n height: 4.67,\n fill: \"#80b4d0\",\n opacity: 0.7\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 365.53,\n y: 162.91,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 388.88,\n y: 296.05,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 392.39,\n y: 308.89,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 399.4,\n y: 321.74,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 388.88,\n y: 502.75,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 392.39,\n y: 515.6,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 399.4,\n y: 528.44,\n width: 149.48,\n height: 4.67,\n fill: \"#e0e0e0\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 195.03,\n y: 248.16,\n width: 158.82,\n height: 161.16,\n fill: \"url(#d1e6aa0e-d79d-4f6f-afbb-c37e9ed80ff9)\"\n}));\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 196.03,\n y: 251.67,\n width: 156.32,\n height: 154.15,\n fill: \"#f5f5f5\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 201.54,\n y: 261.01,\n width: 145.8,\n height: 100.43,\n fill: \"url(#a279b039-1afd-4281-8292-ccd5c8c9b734)\"\n}));\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"e1f34465-d008-41db-868b-e00503fb87b3\",\n \"data-name\": \"\",\n x: 202.54,\n y: 262.18,\n width: 143.79,\n height: 96.93,\n fill: \"#fff\"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#42e7b1d1-2be2-47b0-aacb-a853df270819)\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"190.35 355.61 226.56 299.55 241.74 324.07 274.44 290.21 302.47 324.07 326.99 273.86 390.05 374.29 185.68 367.28 190.35 355.61\",\n fill: \"#80b4d0\",\n opacity: 0.4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 218.38,\n cy: 276.19,\n r: 10.51,\n fill: \"#80b4d0\",\n opacity: 0.4\n}));\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 195.03,\n y: 454.87,\n width: 158.82,\n height: 161.16,\n fill: \"url(#972637f2-71db-4198-9c75-a0854a7fe249)\"\n}));\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 196.03,\n y: 458.37,\n width: 156.32,\n height: 154.15,\n fill: \"#f5f5f5\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 201.54,\n y: 467.72,\n width: 145.8,\n height: 100.43,\n fill: \"url(#6c85befd-f960-412c-83e0-663d4b13bf85)\"\n}));\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"c95ac4f6-be4d-44a3-92c2-5c8066e2b531\",\n \"data-name\": \"\",\n x: 202.54,\n y: 468.88,\n width: 143.79,\n height: 96.93,\n fill: \"#fff\"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#f66b8fac-771d-49bf-85c7-4ce29a79f723)\"\n}, /*#__PURE__*/React.createElement(\"polygon\", {\n points: \"190.35 562.31 226.56 506.25 241.74 530.78 274.44 496.91 302.47 530.78 326.99 480.56 390.05 580.99 185.68 573.99 190.35 562.31\",\n fill: \"#bdbdbd\",\n opacity: 0.4\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 218.38,\n cy: 482.9,\n r: 10.51,\n fill: \"#bdbdbd\",\n opacity: 0.4\n}));\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 376.36,\n y: 276.01,\n width: 602.6,\n height: 448.44,\n transform: \"translate(-124.09 1006.82) rotate(-78.76)\",\n fill: \"url(#598f8edf-c762-4b18-b52d-250fc678075a)\"\n}));\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 386.18,\n y: 280.49,\n width: 581.58,\n height: 434.43,\n transform: \"translate(-122.17 1004.12) rotate(-78.76)\",\n fill: \"#fff\"\n});\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 542.89,\n y: 232.65,\n width: 308.31,\n height: 4.67,\n transform: \"translate(-119.81 -191.93) rotate(11.24)\",\n fill: \"#e0e0e0\"\n});\n\nvar _ref27 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 456.83,\n y: 665.62,\n width: 308.31,\n height: 4.67,\n transform: \"translate(-37.05 -166.84) rotate(11.24)\",\n fill: \"#e0e0e0\"\n});\n\nvar _ref28 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 452.26,\n y: 685.13,\n width: 238.24,\n height: 4.67,\n transform: \"translate(-34.01 -158.75) rotate(11.24)\",\n fill: \"#e0e0e0\"\n});\n\nvar _ref29 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 448.46,\n y: 696.91,\n width: 88.75,\n height: 4.67,\n transform: \"translate(-33.22 -143.21) rotate(11.24)\",\n fill: \"#80b4d0\",\n opacity: 0.7\n});\n\nvar _ref30 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 539.13,\n y: 243.97,\n width: 154.15,\n height: 4.67,\n transform: \"translate(-119.16 -175.95) rotate(11.24)\",\n fill: \"#80b4d0\",\n opacity: 0.7\n});\n\nvar _ref31 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 532.71,\n y: 282.38,\n width: 277.94,\n height: 4.67,\n transform: \"translate(-110.6 -186.03) rotate(11.24)\",\n fill: \"#e0e0e0\"\n});\n\nvar _ref32 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 529.49,\n y: 288.24,\n width: 67.73,\n height: 4.67,\n transform: \"translate(-111.54 -164.8) rotate(11.24)\",\n fill: \"#3ad29f\",\n opacity: 0.7\n});\n\nvar _ref33 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 521.95,\n y: 338.03,\n width: 308.31,\n height: 4.67,\n transform: \"translate(-99.67 -185.82) rotate(11.24)\",\n fill: \"#e0e0e0\"\n});\n\nvar _ref34 = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.5\n}, /*#__PURE__*/React.createElement(\"rect\", {\n x: 592.89,\n y: 385.78,\n width: 158.82,\n height: 276.77,\n transform: \"translate(-151.88 1020.84) rotate(-78.76)\",\n fill: \"url(#013b841e-9a42-49b8-8a36-6db9ed002b72)\"\n}));\n\nvar _ref35 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 535.78,\n y: 445.94,\n width: 273.27,\n height: 155.32,\n transform: \"translate(-64.02 -181.59) rotate(11.24)\",\n fill: \"#fff\"\n});\n\nvar _ref36 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 516.71,\n y: 364.38,\n width: 308.31,\n height: 4.67,\n transform: \"translate(-94.63 -184.29) rotate(11.24)\",\n fill: \"#e0e0e0\"\n});\n\nvar _ref37 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 566.14,\n y: 449.2,\n width: 33.87,\n height: 113.28,\n transform: \"translate(-69.19 -164.51) rotate(11.24)\",\n fill: \"#80b4d0\"\n});\n\nvar _ref38 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 622.06,\n y: 498.05,\n width: 33.87,\n height: 75.91,\n transform: \"translate(-62.24 -174.83) rotate(11.24)\",\n fill: \"#3ad29f\"\n});\n\nvar _ref39 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 678.21,\n y: 544.59,\n width: 33.87,\n height: 40.87,\n transform: \"translate(-55.5 -185.22) rotate(11.24)\",\n fill: \"#f55f44\"\n});\n\nvar _ref40 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 741.87,\n y: 514.79,\n width: 33.87,\n height: 82.92,\n transform: \"translate(-55.99 -197.8) rotate(11.24)\",\n fill: \"#fdd835\"\n});\n\nvar _ref41 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M880.45,410.55a155.89,155.89,0,0,0-223.11-1.68c-59,59.48-60,156.33-2.29,217.07A155.89,155.89,0,0,0,854.95,648L967.64,765.21a7.59,7.59,0,0,0,10.73.21l28.08-27a7.59,7.59,0,0,0,.21-10.73L894,610.49A155.9,155.9,0,0,0,880.45,410.55ZM845.35,599a111.5,111.5,0,1,1,3.1-157.66A111.5,111.5,0,0,1,845.35,599Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"url(#f8cab3c1-d868-48bc-b87d-cd2075ddc26a)\"\n});\n\nvar _ref42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M685.49,487.6c-12.54,0-12.56,19.49,0,19.49S698.05,487.6,685.49,487.6Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"url(#043d467e-585e-47c7-bb2c-06dd6f5be04b)\"\n});\n\nvar _ref43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M772.9,425.17c-33.75-.76-64.46,16.17-80.79,41.73-5.33,8.34,9.8,15.71,15.1,7.41,13.52-21.16,39.21-34.6,67-33.9,29.12.73,55.62,17.39,69.65,40.51,5.32,8.77,19.27.8,14-7.92C840.8,445,807.76,426,772.9,425.17Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"url(#be08032f-102d-431e-9b5f-1e4ebfc8159b)\"\n});\n\nvar _ref44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M892.68,404.63a155.89,155.89,0,0,0-223.11-1.68c-59,59.48-60,156.33-2.29,217.07a155.89,155.89,0,0,0,199.9,22.05L979.86,759.29a7.59,7.59,0,0,0,10.73.21l28.08-27a7.59,7.59,0,0,0,.21-10.73L906.19,604.56A155.9,155.9,0,0,0,892.68,404.63ZM857.58,593a111.5,111.5,0,1,1,3.1-157.66A111.5,111.5,0,0,1,857.58,593Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"#80b4d0\"\n});\n\nvar _ref45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M697.72,481.67c-12.54,0-12.56,19.49,0,19.49S710.28,481.67,697.72,481.67Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"#80b4d0\"\n});\n\nvar _ref46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M785.13,419.25c-33.75-.76-64.46,16.17-80.79,41.73-5.33,8.34,9.8,15.71,15.1,7.41,13.52-21.16,39.21-34.6,67-33.9,29.12.73,55.62,17.39,69.65,40.51,5.32,8.77,19.27.8,14-7.92C853,439,820,420,785.13,419.25Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"#80b4d0\"\n});\n\nvar _ref47 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 121.45,\n y: 663.91,\n width: 3.5,\n height: 19.85,\n fill: \"#47e6b1\"\n});\n\nvar _ref48 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 300.45,\n y: 724.45,\n width: 3.5,\n height: 19.85,\n transform: \"translate(857.58 371.63) rotate(90)\",\n fill: \"#47e6b1\"\n});\n\nvar _ref49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M750.87,68.49a4.29,4.29,0,0,1-2.39-5.19,2.06,2.06,0,0,0,.09-.48h0a2.15,2.15,0,0,0-3.87-1.43h0a2.06,2.06,0,0,0-.24.42,4.29,4.29,0,0,1-5.19,2.39,2.06,2.06,0,0,0-.48-.09h0A2.15,2.15,0,0,0,737.38,68h0a2.06,2.06,0,0,0,.42.24,4.29,4.29,0,0,1,2.39,5.19,2.06,2.06,0,0,0-.09.48h0A2.15,2.15,0,0,0,744,75.32h0a2.06,2.06,0,0,0,.24-.42,4.29,4.29,0,0,1,5.19-2.39,2.06,2.06,0,0,0,.48.09h0a2.15,2.15,0,0,0,1.43-3.87h0A2.06,2.06,0,0,0,750.87,68.49Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"#4d8af0\"\n});\n\nvar _ref50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M316.44,215.64a4.29,4.29,0,0,1-2.39-5.19,2.06,2.06,0,0,0,.09-.48h0a2.15,2.15,0,0,0-3.87-1.43h0a2.06,2.06,0,0,0-.24.42,4.29,4.29,0,0,1-5.19,2.39,2.06,2.06,0,0,0-.48-.09h0a2.15,2.15,0,0,0-1.43,3.87h0a2.06,2.06,0,0,0,.42.24,4.29,4.29,0,0,1,2.39,5.19,2.06,2.06,0,0,0-.09.48h0a2.15,2.15,0,0,0,3.87,1.43h0a2.06,2.06,0,0,0,.24-.42,4.29,4.29,0,0,1,5.19-2.39,2.06,2.06,0,0,0,.48.09h0a2.15,2.15,0,0,0,1.43-3.87h0A2.06,2.06,0,0,0,316.44,215.64Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"#fdd835\"\n});\n\nvar _ref51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M934.22,822.9a4.29,4.29,0,0,1-2.39-5.19,2.06,2.06,0,0,0,.09-.48h0a2.15,2.15,0,0,0-3.87-1.43h0a2.06,2.06,0,0,0-.24.42,4.29,4.29,0,0,1-5.19,2.39,2.06,2.06,0,0,0-.48-.09h0a2.15,2.15,0,0,0-1.43,3.87h0a2.06,2.06,0,0,0,.42.24,4.29,4.29,0,0,1,2.39,5.19,2.06,2.06,0,0,0-.09.48h0a2.15,2.15,0,0,0,3.87,1.43h0a2.06,2.06,0,0,0,.24-.42,4.29,4.29,0,0,1,5.19-2.39,2.06,2.06,0,0,0,.48.09h0a2.15,2.15,0,0,0,1.43-3.87h0A2.06,2.06,0,0,0,934.22,822.9Z\",\n transform: \"translate(-179 -60.54)\",\n fill: \"#fdd835\"\n});\n\nvar _ref52 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 321.15,\n cy: 75.33,\n r: 7.01,\n fill: \"#f55f44\"\n});\n\nvar _ref53 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 823.31,\n cy: 162.91,\n r: 7.01,\n fill: \"#f55f44\"\n});\n\nvar _ref54 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 783.61,\n cy: 371.95,\n r: 7.01,\n fill: \"#4d8af0\"\n});\n\nvar _ref55 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.01,\n cy: 28.61,\n r: 7.01,\n fill: \"#47e6b1\",\n opacity: 0.5\n});\n\nfunction SvgSearchPlaceholder(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"9a5c15f4-7944-40bc-b8da-d63b7d478a28\",\n \"data-name\": \"Layer 1\",\n width: 842,\n height: 778.92,\n viewBox: \"0 0 842 778.92\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), _ref2, title === undefined ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, \"file searching\") : title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26, _ref27, _ref28, _ref29, _ref30, _ref31, _ref32, _ref33, _ref34, _ref35, _ref36, _ref37, _ref38, _ref39, _ref40, _ref41, _ref42, _ref43, _ref44, _ref45, _ref46, _ref47, _ref48, _ref49, _ref50, _ref51, _ref52, _ref53, _ref54, _ref55);\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSearchPlaceholder);\nexport default __webpack_public_path__ + \"static/media/search_placeholder.13cd3d96.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport cn from \"classnames\";\nimport { CgExternal } from \"react-icons/cg\";\n\nimport { useGraph } from \"hooks/useGraph\";\nimport { SearchResult, DriveItemResult, LinkResult } from \"./index\";\n\ninterface Props {\n inputValue: string;\n results: SearchResult[] | null;\n}\n\ninterface IResultPodcast {\n result: DriveItemResult;\n}\nconst ResultPodcast = ({ result }: IResultPodcast) => {\n const { orig } = result;\n const { data, loading, error } = useGraph({\n query: `/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/${orig.sharepointIds?.listId}/items/${orig.sharepointIds?.listItemId}?expand=fields`,\n action: \"GET\",\n });\n\n if (loading) {\n return
;\n }\n\n if (error) {\n return
Unable to load
;\n }\n const { fields } = data;\n const { Episode, id, ShowLookupId, Episode_x0020_Name } = fields;\n return (\n \n
\n
\n Podcast\n
\n
\n {Episode_x0020_Name}\n
\n
\n \n );\n};\n\ninterface IResultCEQ {\n result: LinkResult;\n}\n\nconst ResultCEQ = ({ result }: IResultCEQ) => {\n const { name, link, ageGroup } = result;\n\n return (\n \n
\n
\n CEQ Patient Info\n
\n
\n
\n \n {name}\n
\n\n \n {ageGroup}\n \n
\n
\n
\n );\n};\n\nconst result = (result: SearchResult) => {\n if (result.itemType === \"driveItem\" && result.type === \"PODCAST\")\n return ;\n if (result.itemType === \"linkItem\" && result.type === \"CEQ\")\n return ;\n return null;\n};\n\nexport default function SearchResults({ inputValue, results }: Props) {\n if (!results) {\n return
Loading...
;\n }\n if (results?.length === 0) {\n return (\n
\n No results found\n
\n );\n }\n if (results && results.length > 0) {\n return (\n \n {results.map((r) => result(r))}\n
\n );\n }\n return
none
;\n}\n","import React, { useCallback, useEffect, useState } from \"react\";\nimport cn from \"classnames\";\nimport debounce from \"lodash/debounce\";\n\nimport { CgSearch, CgClose, CgBackspace } from \"react-icons/cg\";\nimport { DriveItem } from \"@microsoft/microsoft-graph-types\";\n\nimport Modal from \"components/layout/Modal\";\nimport { ReactComponent as SearchPlaceholder } from \"styles/svg/search_placeholder.svg\";\n\nimport SearchResults from \"./SearchResults\";\n\ninterface Props {\n searchSources: SearchSource[];\n}\n\ninterface SearchSource {\n name: string;\n func: (inputValue: string) => Promise;\n}\n\nexport type SearchResult = DriveItemResult | LinkResult;\n\ntype BaseResult = {\n id: string;\n name: string;\n type: string;\n};\n\nexport interface DriveItemResult extends BaseResult {\n link: string;\n orig: DriveItem;\n itemType: \"driveItem\";\n}\n\nexport interface LinkResult extends BaseResult {\n link: string;\n ageGroup: string;\n itemType: \"linkItem\";\n}\n\nexport default function Search({ searchSources }: Props) {\n const [inputValue, setInputValue] = useState(\"\");\n const [isOpen, setIsOpen] = useState(false);\n const [results, setResults] = useState(null);\n const searchButton = cn(\n \"flex flex-row items-center py-2 pl-2 pr-2 md:pr-4 rounded-md outline-none text-sm text-theme-text-tertiary\"\n );\n\n const getSources = async (searchTerm: string) => {\n return Promise.all(\n searchSources.map((source) => {\n return source.func(searchTerm);\n })\n );\n };\n\n const handleChange = (event: React.ChangeEvent) => {\n const { value: nextValue } = event.target;\n setInputValue(nextValue);\n debouncedSearch(nextValue);\n };\n\n const debouncedSearch = useCallback(\n debounce((nextValue) => {\n if (nextValue.length > 0) {\n getSources(nextValue).then((res) => setResults(res.flat()));\n }\n }, 300),\n [getSources]\n );\n\n return (\n
\n \n \n
\n
\n \n setInputValue(\"\")}\n />\n setIsOpen(false)}\n />\n
{\" \"}\n
\n {inputValue.length > 0 ? (\n \n ) : (\n
\n \n
\n Search for guidelines, documents, patient info sheets,\n podcasts and more...\n
\n
\n )}\n
\n
\n
\n
\n );\n}\n","import { useEffect } from \"react\";\n\nimport { useAppDispatch } from \"state\";\nimport { client } from \"hooks/useGraph\";\n\nimport config from \"config\";\nimport { Datasource, DatasourceSP } from \"types\";\nimport { setDatasources } from \"state/actionCreators\";\n\ninterface Props {}\n\nconst getDatasources = async (datasourceUrl: string) => {\n try {\n const res = await client\n .api(datasourceUrl)\n .filter(\"fields/Active eq 1\")\n .get()\n .then((datasources): Datasource[] => {\n return datasources.value.map((datasource: any) => ({\n id: datasource.id,\n title: datasource.fields.Title,\n description: datasource.fields.Description,\n URL: datasource.fields.URL,\n source: datasource.fields.Source,\n dataModel: datasource.fields.DataModel\n ? JSON.parse(datasource.fields.DataModel)\n : null,\n active: datasource.fields.Active,\n }));\n });\n\n const datasources = await Promise.allSettled(\n res.map(\n async (datasource): Promise => {\n try {\n if (datasource.source === \"SharePoint\") {\n const driveId = await client.api(`${datasource.URL}/drive`).get();\n let res: DatasourceSP = {\n ...datasource,\n driveId: driveId.id,\n source: \"SharePoint\",\n };\n return res;\n }\n return datasource;\n } catch (err) {\n console.log(err);\n }\n }\n )\n );\n\n const fulfilledDatasources = datasources.reduce(function (result, ds) {\n if (ds.status === \"fulfilled\" && ds.value) {\n result.push(ds.value);\n }\n return result;\n }, [] as Datasource[]);\n\n return fulfilledDatasources;\n } catch (err) {\n console.log(err);\n return [];\n }\n};\n\nexport default function Datasources(props: Props) {\n const {\n app: { datasourceUrl },\n } = config;\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n getDatasources(datasourceUrl).then((payload: Datasource[]) => {\n dispatch(setDatasources(payload));\n });\n }, []);\n\n return null;\n}\n","import { DriveItem } from \"@microsoft/microsoft-graph-types\";\nimport { DriveItemResult, LinkResult } from \"./index\";\n\nimport { client } from \"hooks/useGraph\";\n\nexport const podcasts = async (\n inputValue: string\n): Promise => {\n return await client\n .api(\n `/drives/b!8bydoIZ8Jky05-UgWpKG5IRoEz5Vy45PtqFGArwMQbY7e5Qou1CeTLWOUL4JGrtv/root/search(q='${inputValue}')?\n $select=audio,createdBy,createdDateTime,file,id,name,parentReference,sharepointIds,size,webUrl`\n )\n .get()\n .then((res) => {\n return res.value.map((r: DriveItem) => ({\n id: r.id,\n name: r.name,\n type: \"PODCAST\",\n link: r.webUrl,\n orig: r,\n itemType: \"driveItem\",\n }));\n });\n};\n\nexport const ceq = async (inputValue: string): Promise => {\n const response = await fetch(\n \"https://gchde-ed.azurewebsites.net/api/EDAppScrapeCEQ?site=CEQ&code=P0rnPHl7hGWS3CEQjpUQ0Vk8I2y8SaKLDHMh6LpHebRAPjFsaiHF2w==\"\n );\n try {\n const links = await response.json();\n\n const matches = links.content.filter(({ label }: any) =>\n label.toLowerCase().includes(inputValue.toLowerCase())\n );\n const results = matches.map((link: any) => ({\n id: link.link,\n type: \"CEQ\",\n itemType: \"linkItem\",\n name: link.label,\n ...link,\n }));\n return results;\n } catch (err) {\n console.log(err);\n return [];\n }\n};\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CgChevronLeft } from \"react-icons/cg\";\nexport interface Breadcrumb {\n name: string;\n url: string;\n active: boolean;\n}\n\ntype Props = {\n breadcrumbs: Breadcrumb[];\n};\n\nexport default function Breadcrumbs({ breadcrumbs }: Props) {\n return (\n
\n {breadcrumbs.map((b, index) => (\n \n {index === 0 && breadcrumbs.length === 1 ? (\n \n ) : null}\n {index > 0 ? : null}\n {b.name}\n \n ))}\n
\n );\n}\n","import React from \"react\";\nimport cn from \"classnames\";\n\nexport interface TagProps {\n children?: any;\n text?: string;\n size?: \"sm\" | \"md\" | \"lg\";\n tw?: string;\n}\n\nexport default function Tag({ children, size = \"md\", tw, text }: TagProps) {\n const tagStyle = cn(\n \"flex flex-row items-center justify-center rounded-lg text-center m-1 first:ml-0 last:mr-0\",\n { \"px-2 text-xs\": size === \"sm\" },\n { \"px-2 py-1 text-sm\": size === \"md\" },\n { \"px-4 py-2 text-sm\": size === \"lg\" },\n tw ? tw : \"bg-gray-300 text-gray-800\"\n );\n\n if (!text && !children) {\n return null;\n }\n\n return (\n
\n {children} {text}\n
\n );\n}\n\nexport function TagGroup({ children }: any) {\n return
{children}
;\n}\n","import React, { ReactNode, ReactChild } from \"react\";\nimport cn from \"classnames\";\nimport { motion } from \"framer-motion\";\n\nimport Breadcrumbs, { Breadcrumb } from \"../Breadcrumbs\";\nimport Tag, { TagGroup, TagProps } from \"../Tag\";\nimport Button, { ButtonProps } from \"../Button\";\n\ninterface Props {\n children: ReactChild | NamedChildren;\n width?: \"normal\" | \"wide\";\n align?: \"start\" | \"center\" | \"end\" | \"stretch\";\n divider?: boolean;\n}\n\ntype NamedChildren = {\n title?: string | ReactNode;\n subtitle?: string | ReactNode;\n tags?: TagProps[];\n breadcrumbs?: Breadcrumb[];\n toolbar?: ButtonProps[];\n content: ReactNode;\n};\n\nconst isObject = (value: any) =>\n typeof value === \"object\" &&\n typeof value !== \"function\" &&\n value !== undefined;\nconst isNamedChildren = (children: any): children is NamedChildren =>\n isObject(children) && \"content\" in children;\n\nexport default function Page({\n width = \"normal\",\n align = \"stretch\",\n divider = false,\n children,\n}: Props) {\n const container = cn(\n `\n flex flex-col items-${align} mx-auto p-6 md:p-8`,\n width === \"normal\" ? \"w-full 2xl:w-2/3\" : \"w-full\"\n );\n const h1 = cn(`\n flex flex-row items-center mr-2\n text-2xl sm:text-3xl font-semibold text-theme-text-primary`);\n const sub = cn(`\n flex flex-row items-center\n text-sm font-normal text-theme-text-secondary\n `);\n\n const cont = cn(\n `\n block mt-3\n text-md text-theme-text-primary`,\n divider ? \"border-t border-gray-300 pt-2\" : null\n );\n\n const tb = cn(`\n flex flex-row items-center mt-4 text-sm\n `);\n\n if (!children) {\n throw new Error(\"This component required children\");\n }\n\n if (isNamedChildren(children)) {\n const { title, subtitle, tags, breadcrumbs, toolbar, content } = children;\n\n return (\n \n {breadcrumbs ? : null}\n {title ? (\n
\n
{title}
\n {tags ? (\n \n {tags.map((tag, index) => (\n \n {tag.text}\n \n ))}\n \n ) : null}\n
\n ) : null}\n {subtitle ?
{subtitle}
: null}\n {toolbar ? (\n
\n {toolbar.map((button) => (\n
\n ) : null}\n
{content}
\n \n );\n }\n\n return
{children}
;\n}\n","import React, { useEffect, useState } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { useGraph, client } from \"hooks/useGraph\";\nimport dayjs from \"dayjs\";\n\ninterface Props {\n maxWidth?: number;\n podcastId: string;\n}\n\nexport default function AlbumArt({ maxWidth, podcastId }: Props) {\n const [aaUrl, setAaUrl] = useState(\"\");\n const podcastBaseUrl = `/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/bde91142-1d5a-4a99-92a5-5677a8144fac/items/${podcastId}`;\n const params = `expand=fields(select%3DArt,ArtLookupId,Description,Title)`;\n\n const { data, loading, error } = useGraph({\n query: `${podcastBaseUrl}?${params}`,\n action: \"GET\",\n });\n\n useEffect(() => {\n if (data) {\n const albumArtUrl = `/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/46aef0d0-e88b-4e1c-9645-bd2e34212b8a/items/${data.fields.ArtLookupId}/driveItem`;\n\n client\n .api(albumArtUrl)\n .get()\n .then((res) => setAaUrl(res[\"@microsoft.graph.downloadUrl\"]));\n }\n }, [data]);\n\n if (loading || aaUrl === \"\") {\n return
;\n }\n\n if (error) {\n return
AA
;\n }\n\n return (\n \n );\n}\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport dayjs from \"dayjs\";\nimport calendar from \"dayjs/plugin/calendar\";\n\nimport AlbumArt from \"components/Player/AlbumArt\";\nimport { useGraph } from \"hooks/useGraph\";\n\ndayjs.extend(calendar);\n\nconst Podcast = () => {\n const podcastBaseUrl =\n \"/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/28947b3b-50bb-4c9e-b58e-50be091abb6f/items\";\n const params = `expand=fields(select%3Did,Episode,Episode_x0020_Name,Show,ShowLookupId,PublishDate,Description,Title)&orderby=fields/PublishDate desc&$top=1`;\n\n const { data, loading, error } = useGraph({\n query: `${podcastBaseUrl}?${params}`,\n action: \"GET\",\n });\n\n if (loading) {\n return
;\n }\n if (error) {\n return
Unable to load latest podcast
;\n }\n\n const { value } = data;\n const {\n ShowLookupId: showId,\n id,\n Episode,\n PublishDate,\n Episode_x0020_Name,\n Show,\n ShowLookupId,\n } = value[0].fields;\n\n return (\n
\n \n
\n
\n \n
\n
\n
\n
Episode {Episode}
\n
\n {`Published ${dayjs(PublishDate).calendar(dayjs(), {\n sameDay: \"[today]\",\n nextDay: \"[tomorrow]\",\n lastDay: \"[yesterday]\",\n lastWeek: \"[last] dddd\",\n sameElse: \"DD/MM/YYYY\",\n })}`}\n
\n
\n
\n {Episode_x0020_Name}\n
\n
\n
\n \n
\n );\n};\n\nexport default function LatestPodcast() {\n return (\n
\n
\n Latest Podcast\n
\n \n
\n );\n}\n","import React, { createContext } from \"react\";\nimport cn from \"classnames\";\n\ninterface Props {\n children?: React.ReactNode;\n cardType?: \"standard\" | \"callout\" | \"sectioned\" | \"blank\";\n link?: boolean;\n}\n\nconst CardContext = createContext({});\n\nexport function useCardContext() {\n const context = React.useContext(CardContext);\n if (!context) {\n throw new Error(\n `Card compound components cannot be rendered outside the Card component`\n );\n }\n return context;\n}\n\nexport default function Card({\n children,\n cardType = \"standard\",\n link = false,\n}: Props) {\n return (\n \n \n {children}\n \n \n );\n}\n\nfunction Title({ children }: any) {\n return (\n
\n {children}\n
\n );\n}\n\ntype SectionProps = {\n bg?: string;\n direction?: \"flex-row\" | \"flex-col\" | \"flex-col md:flex-row\";\n tw?: string;\n children?: React.ReactNode;\n};\n\nfunction Section({ bg, direction, tw, children }: SectionProps) {\n return (\n \n {children}\n \n );\n}\n\nfunction Heading({ children }: any) {\n return (\n
\n {children}\n
\n );\n}\n\nfunction Subtitle({ children }: any) {\n return (\n

\n {children}\n

\n );\n}\n\nfunction H1({ children }: any) {\n return (\n

\n {children}\n

\n );\n}\n\nfunction H2({ children }: any) {\n return (\n

\n {children}\n

\n );\n}\n\nfunction H3({ children }: any) {\n return (\n

\n {children}\n

\n );\n}\n\nfunction Content({ children }: any) {\n return (\n
\n {children}\n
\n );\n}\n\nfunction Group({ children }: any) {\n return (\n
{children}
\n );\n}\n\nCard.Title = Title;\nCard.Content = Content;\nCard.Section = Section;\nCard.Group = Group;\nCard.Heading = Heading;\nCard.Subtitle = Subtitle;\nCard.H1 = H1;\nCard.H2 = H2;\nCard.H3 = H3;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { useAppState } from \"state\";\nimport Card from \"components/layout/Card\";\nimport Tag from \"components/layout/Tag\";\n\nconst Document = () => {\n const { datasources } = useAppState();\n\n if (datasources.length > 0) {\n return (\n
\n {datasources.map((source) => (\n \n
\n \n \n
\n {source.title}\n {source.source}\n
\n
\n
\n
\n \n ))}\n
\n );\n }\n\n if (datasources.length === 0) {\n return
No documents found
;\n }\n\n return
;\n};\n\nexport default function LatestDocs() {\n return (\n
\n
\n Useful Document Libraries\n
\n \n
\n );\n}\n","import React from \"react\";\n\nimport Page from \"components/layout/Page\";\n\nimport LatestPodcast from \"./Feed/LatestPodcast\";\nimport LatestDocs from \"./Feed/LatestDocs\";\n\nconst HomeContent = () => {\n return (\n
\n \n \n
\n );\n};\n\nexport default function Home() {\n return (\n \n {{\n content: ,\n }}\n \n );\n}\n","import React from \"react\";\nimport { useLocation, Link } from \"react-router-dom\";\n\nimport Page from \"components/layout/Page\";\nimport Card from \"components/layout/Card\";\n\nimport { useGraph } from \"hooks/useGraph\";\n\nimport AlbumArt from \"components/Player/AlbumArt\";\n\nconst PodcastsContent = () => {\n let { pathname } = useLocation();\n const { data, loading, error } = useGraph({\n query:\n \"/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/bde91142-1d5a-4a99-92a5-5677a8144fac/items?expand=fields\",\n action: \"GET\",\n });\n\n if (loading) {\n return
Loading
;\n }\n\n if (error) {\n return
Error
;\n }\n\n const { value } = data;\n\n return (\n
\n {value.map((show: any) => {\n const { id, Title: title, th9q: desc } = show.fields;\n return (\n \n
\n \n\n
\n
\n {title}\n
\n
{desc}
\n
\n
\n \n );\n })}\n
\n );\n};\n\nexport default function Podcasts() {\n return (\n \n {{\n title: \"Podcasts\",\n content: ,\n }}\n \n );\n}\n","import React from \"react\";\nimport { useParams, Link } from \"react-router-dom\";\nimport dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport Page from \"components/layout/Page\";\nimport { useGraph } from \"hooks/useGraph\";\nimport Card from \"components/layout/Card\";\n\nexport default function Show() {\n let { showId } = useParams<{ showId: string }>();\n\n const baseUrl =\n \"/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/bde91142-1d5a-4a99-92a5-5677a8144fac/items\";\n const { data, loading, error } = useGraph({\n query: `${baseUrl}/${showId}?expand=fields`,\n action: \"GET\",\n });\n\n if (error) {\n return
Error
;\n }\n\n return (\n \n {{\n title: loading ?
: data.fields.Title,\n subtitle: loading ?
: data.fields.th9q,\n breadcrumbs: [{ url: \"/podcasts\", name: \"Back\", active: true }],\n content: loading ?
: ,\n }}\n \n );\n}\n\nconst Content = () => {\n let { showId } = useParams<{ showId: string }>();\n dayjs.extend(isSameOrAfter);\n\n const podcastBaseUrl =\n \"/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/28947b3b-50bb-4c9e-b58e-50be091abb6f/items\";\n const params = `filter=fields/ShowLookupId eq ${showId}&expand=fields(select%3Did,Episode,Episode_x0020_Name,Show,ShowLookupId,PublishDate,Description,Title)&orderby=fields/Episode desc`;\n\n const { data, loading, error } = useGraph({\n query: `${podcastBaseUrl}?${params}`,\n action: \"GET\",\n });\n\n if (loading) {\n return
;\n }\n\n if (error) {\n return
Unable to load show
;\n }\n\n const { value } = data;\n\n if (value.length === 0) {\n return (\n
\n There are no episodes currently listed\n
\n );\n } else {\n return (\n
\n {value.map((show: any) => {\n const {\n id,\n Episode,\n Episode_x0020_Name: desc,\n PublishDate,\n } = show.fields;\n return (\n \n \n \n
\n
\n {dayjs()\n .subtract(1, \"week\")\n .isSameOrAfter(dayjs(PublishDate)) ? null : (\n
\n NEW\n
\n )}\n Episode {Episode}\n
\n
\n Published {dayjs(PublishDate).format(\"ddd DD/MM/YY\")}\n
\n
\n
\n \n {desc}\n \n
\n \n );\n })}\n
\n );\n }\n};\n","import React from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport {\n CgMediaPodcast,\n CgPlayButton,\n CgSoftwareDownload,\n} from \"react-icons/cg\";\nimport marked from \"marked\";\n\nimport { useAppDispatch } from \"state\";\nimport { useAppState } from \"state\";\nimport { setPlayer, setPlayerUrl, setPlayerMeta } from \"state/actionCreators\";\nimport { useGraph } from \"hooks/useGraph\";\n\nimport Page from \"components/layout/Page\";\nimport AlbumArt from \"components/Player/AlbumArt\";\n\ninterface EpisodeContentProps {\n showId: string;\n episodeId: string;\n data: any;\n}\n\nconst podcastBaseUrl =\n \"/sites/healthqld.sharepoint.com:/teams/GCUHEDPodcasts:/lists/28947b3b-50bb-4c9e-b58e-50be091abb6f/items\";\nconst params = `expand=fields(select%3Did,Episode,Episode_x0020_Name,Title,Show,ShowLookupId,PublishDate,Description,Articles)`;\n\nconst EpisodeContent = ({ showId, episodeId, data }: EpisodeContentProps) => {\n const { player } = useAppState();\n const dispatch = useAppDispatch();\n const { eTag, fields, webUrl } = data;\n const {\n Episode: episodeNumber,\n Episode_x0020_Name: episodeName,\n Description,\n Articles,\n Show,\n ShowLookupId,\n PublishDate,\n } = fields;\n\n const play = (url: string) => {\n dispatch(setPlayer(true));\n dispatch(setPlayerUrl(`${podcastBaseUrl}/${episodeId}/driveItem`));\n dispatch(\n setPlayerMeta({\n id: eTag,\n title: episodeName,\n show: Show,\n episode: episodeNumber,\n appPath: `/podcasts/${showId}/${episodeId}`,\n })\n );\n };\n\n return (\n
\n
\n \n
\n {eTag === player.meta.id ? (\n
\n
\n \n Currently Playing\n
\n \n
\n \n
\n
\n
\n ) : (\n
\n play(webUrl)}\n className=\"flex flex-row items-center mx-1 px-6 py-2 text-sm uppercase bg-primary-600 hover:bg-primary-500 text-white rounded-full cursor-pointer transition-base\"\n >\n \n Play\n
\n\n \n
\n \n
\n \n
\n )}\n \n
\n
\n
\n
\n About this episode\n
\n {Description ? (\n
\n ) : (\n
\n No description for this episode\n
\n )}\n \n\n
\n
\n Linked articles\n
\n {Articles ? (\n
\n ) : (\n
\n No linked articles for this episode\n
\n )}\n \n
\n
\n );\n};\n\nexport default function Episode() {\n let { showId, episodeId } = useParams<{\n showId: string;\n episodeId: string;\n }>();\n\n const { data, loading, error } = useGraph({\n query: `${podcastBaseUrl}/${episodeId}?${params}`,\n action: \"GET\",\n });\n\n return (\n \n {{\n title: loading ? (\n
\n ) : (\n
\n {data.fields.Episode_x0020_Name}\n
\n ),\n subtitle: loading ? (\n
\n ) : (\n `${data.fields.Show} ยท Episode ${data.fields.Episode}`\n ),\n content: loading ? (\n
\n ) : (\n \n ),\n breadcrumbs: [\n { url: `/podcasts/${showId}`, name: \"Back\", active: true },\n ],\n }}\n \n );\n}\n","import React from \"react\";\n\nimport Page from \"components/layout/Page\";\nimport Card from \"components/layout/Card\";\n\nconst AboutContent = () => {\n return (\n
\n \n \n About this app\n \n This app was produced to help clinicians more easily access\n Emergency resources.\n \n \n \n
\n );\n};\n\nexport default function About() {\n return (\n \n {{\n title: \"About\",\n content: ,\n }}\n \n );\n}\n","import React from \"react\";\nimport cn from \"classnames\";\n\nexport interface SwitchControlProps {\n name: string;\n items: SwitchItemProps[];\n value: string;\n onChange: (e: any) => void;\n}\n\nexport interface SwitchItemProps {\n label: string;\n value: string | boolean;\n}\n\ninterface SwitchOptionProps extends SwitchItemProps {\n name: string;\n selected: boolean;\n onChange: (e: any) => void;\n}\n\nconst SwitchOption = ({\n label,\n value,\n selected,\n onChange,\n}: SwitchOptionProps) => {\n const optionContainer = cn(\n \"flex flex-row flex-1 items-center justify-center py-2 px-3 rounded-full text-sm font-medium\",\n {\n \"bg-theme-accent-blue text-gray-200 cursor-not-allowed\": selected,\n },\n { \"bg-theme-bg-secondary text-gray-500 cursor-pointer\": !selected }\n );\n\n return (\n {\n onChange(value);\n }}\n >\n {label}\n
\n );\n};\n\nexport default function SwitchControl({\n name,\n items,\n value,\n onChange,\n}: SwitchControlProps) {\n const switchContainer = cn(\n \"flex flex-row flex-grow bg-theme-bg-secondary border-2 border-theme-border-primary rounded-full hide-input\"\n );\n\n return (\n
\n {items.map((item: SwitchItemProps) => (\n \n ))}\n
\n );\n}\n","import React, { useContext } from \"react\";\n\nimport {\n useDesignState,\n useDesignDispatch,\n} from \"components/layout/DesignProvider\";\nimport { useAppState } from \"state\";\nimport { AuthFunctions } from \"components/auth\";\nimport Page from \"components/layout/Page\";\nimport Card from \"components/layout/Card\";\nimport Button from \"components/layout/Button\";\nimport Switch from \"components/forms/Switch\";\n\nconst ProfileContent = () => {\n const { user } = useAppState();\n const { logout } = useContext(AuthFunctions);\n const { colorScheme } = useDesignState();\n const dispatch = useDesignDispatch();\n\n const forceSPAupdate = () => {\n navigator.serviceWorker\n .getRegistrations()\n .then((registrations) =>\n Promise.all(registrations.map((r) => r.unregister()))\n )\n .then(() => window.location.reload());\n };\n\n return (\n
\n
\n \n \n
\n\n \n \n Display Name\n {user?.displayName}\n \n \n Email\n {user?.mail}\n \n \n Theme\n {\n dispatch({\n type: \"SET_SCHEME\",\n payload: val,\n });\n }}\n />\n \n \n
\n );\n};\n\nexport default function Profile() {\n return (\n \n {{\n title: \"Profile\",\n content: ,\n }}\n \n );\n}\n","import React from \"react\";\nimport { Row } from \"react-table\";\ninterface TwoLineProps {\n first: React.ReactNode;\n second: React.ReactNode;\n}\nexport const TwoLine = ({ first, second }: TwoLineProps) => {\n return (\n
\n
\n {first}\n
\n
\n {second}\n
\n
\n );\n};\n\nexport const DefaultColumnFilter = ({\n column: { filterValue, preFilteredRows, setFilter },\n}: any) => {\n const count = preFilteredRows.length;\n\n return (\n {\n setFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\n }}\n placeholder={`Search ${count} records...`}\n className=\"mt-1 p-2 bg-gray-100 hover:border focus:border border-theme-accent-blue transition-base\"\n />\n );\n};\n\nexport const SelectColumnFilter = ({\n column: { filterValue, setFilter, preFilteredRows, id },\n}: any) => {\n // Calculate the options for filtering\n // using the preFilteredRows\n const options = React.useMemo(() => {\n const options = new Set();\n preFilteredRows.forEach((row: Row) => {\n options.add(row.values[id]);\n });\n return [...options.values()];\n }, [id, preFilteredRows]);\n\n // Render a multi-select box\n return (\n {\n setFilter(e.target.value || undefined);\n }}\n className=\"mt-1 p-2 bg-gray-100 hover:border focus:border border-theme-accent-blue transition-base w-full\"\n >\n \n {options.map((option, i) => (\n \n ))}\n \n );\n};\n","import React, { useMemo } from \"react\";\nimport {\n useTable,\n useSortBy,\n useFilters,\n useGlobalFilter,\n Column,\n Row,\n} from \"react-table\";\nimport { CgServerless, CgArrowDown, CgArrowUp } from \"react-icons/cg\";\n\nimport { DefaultColumnFilter } from \"./TableComponents\";\n\ninterface Props {\n data: object[];\n prepareData?: (item: any) => any;\n columns: Column[];\n onClickRow?: (row: Row) => void;\n}\n\nexport default function Table({\n data,\n prepareData,\n columns,\n onClickRow,\n}: Props) {\n const dataMemo = useMemo(() => {\n if (prepareData) {\n return data.map((item) => prepareData(item));\n }\n return data;\n }, [prepareData, data]);\n\n const columnsMemo = useMemo(() => columns, [columns]);\n\n const defaultColumn = React.useMemo(\n () => ({\n // Let's set up our default Filter UI\n Filter: DefaultColumnFilter,\n }),\n []\n );\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n rows,\n prepareRow,\n state,\n setGlobalFilter,\n } = useTable(\n {\n columns: columnsMemo,\n data: dataMemo,\n defaultColumn,\n globalFilter: compoundFilter,\n },\n useFilters,\n useGlobalFilter,\n useSortBy\n );\n\n function compoundFilter(\n rows: Row[],\n columnIds: string[],\n filterValue: any\n ): Row[] {\n return rows.filter((row: Row) => {\n const rowVals = Object.values(row.original);\n const match = rowVals.some((rowVal) => {\n if (typeof rowVal === \"string\")\n return rowVal.toLowerCase().includes(filterValue.toLowerCase());\n return false;\n });\n return match;\n });\n }\n\n if (dataMemo.length === 0) {\n return (\n
\n \n
\n There are no items visible in this view or with your permissions.\n
\n
\n );\n }\n return (\n
\n setGlobalFilter(e.target.value)}\n value={state.globalFilter}\n className=\"flex flex-row flex-grow py-3 px-4 my-2 rounded-md text-sm border-2 border-theme-border-primary bg-theme-bg-secondary focus:bg-theme-bg-primary hover:bg-theme-bg-primary transition-base\"\n placeholder=\"Type to search...\"\n />\n
\n \n \n {headerGroups.map((headerGroup) => (\n \n {headerGroup.headers.map((column) => (\n \n \n {column.render(\"Header\")}\n {column.isSorted ? (\n column.isSortedDesc ? (\n \n ) : (\n \n )\n ) : (\n \"\"\n )}\n \n\n {/* {column.canFilter ? (\n
{column.render(\"Filter\")}
\n ) : null} */}\n \n ))}\n
\n ))}\n \n \n {rows.map((row) => {\n prepareRow(row);\n return (\n (onClickRow ? onClickRow(row) : {})}\n className={`bg-theme-bg-primary hover:bg-theme-bg-secondary transition-base ${\n onClickRow ? \"cursor-pointer\" : \"\"\n }`}\n >\n {row.cells.map((cell) => {\n return (\n \n {cell.render(\"Cell\")}\n \n );\n })}\n \n );\n })}\n \n
\n
\n {rows.length === 0 ? (\n
\n No items found matching search/filter text\n
\n ) : null}\n
\n );\n}\n","import React from \"react\";\nimport dayjs from \"dayjs\";\nimport relativeTime from \"dayjs/plugin/relativeTime\";\n\nimport { CgFileDocument } from \"react-icons/cg\";\n\nimport Tag from \"components/layout/Tag\";\nimport { TwoLine } from \"components/Table/TableComponents\";\n\ndayjs.extend(relativeTime);\n\nexport const columns = [\n {\n Header: \"Document Name\",\n accessor: \"label\",\n disableFilters: true,\n Cell: ({ value, row }: any) => {\n return (\n \n
\n \n {row.original.value}\n }\n />\n
\n {row.original.meta ? (\n \n \n {row.original.meta[Object.keys(row.original.meta)[0]]}\n \n \n ) : null}\n \n );\n },\n },\n];\n","import React from \"react\";\nimport { Datamodel } from \"types\";\n\nimport TableList from \"components/Table/Table\";\nimport { columns } from \"./tableConfig\";\n\ninterface Props {\n data: Datamodel[];\n}\n\nexport default function Table({ data }: Props) {\n return (\n
\n \n
\n );\n}\n","import React from \"react\";\nimport useSWR from \"swr\";\nimport { CgFileDocument } from \"react-icons/cg\";\n\nimport { Datasource, Datamodel } from \"types\";\nimport { client } from \"hooks/useGraph\";\n\nimport Button from \"components/layout/Button\";\nimport Table from \"./Table\";\n\ninterface Props {\n datasource: Datasource;\n view: \"compact\" | \"table\";\n}\n\nconst get = (obj: object, path: string, defaultValue = undefined) => {\n const travel = (regexp: any) =>\n String.prototype.split\n .call(path, regexp)\n .filter(Boolean)\n .reduce(\n (res: any, key: any) =>\n res !== null && res !== undefined ? res[key] : res,\n obj\n );\n const result = travel(/[,[\\]]+?/) || travel(/[,[\\].]+?/);\n return result === undefined || result === obj ? defaultValue : result;\n};\n\nconst getDocs = async (url: string, source: string, datamodel: Datamodel) => {\n const docs =\n source === \"SharePoint\"\n ? await client.api(`${url}/items`).expand(\"fields\").get()\n : await fetch(url).then((res) => res.json());\n\n const { accessor, id, label, value } = datamodel;\n\n const docsArray = accessor ? docs[accessor] : docs;\n\n const hasMeta = datamodel.meta ? datamodel.meta : null;\n\n const parsedDocs = docsArray.map((doc: object) => {\n const meta = () => {\n if (hasMeta) {\n let meta: any = {};\n hasMeta.forEach((item: string) => (meta[item] = get(doc, item)));\n return meta;\n } else {\n return null;\n }\n };\n\n let parsedDoc = {\n id: get(doc, id),\n label: get(doc, label),\n value: get(doc, value),\n meta: meta(),\n };\n return parsedDoc;\n });\n\n return parsedDocs;\n};\n\nexport default function List({ datasource, view }: Props) {\n const { id, source, URL, dataModel } = datasource;\n\n const { data, error } = useSWR([URL, source, dataModel], getDocs, {\n revalidateOnFocus: true,\n });\n\n if (!data) {\n
;\n }\n\n if (error) {\n
Unable to load documents
;\n }\n\n if (data && data.length > 0) {\n if (view === \"compact\")\n return (\n
\n
\n {data.slice(0, 5).map((doc: Datamodel) => (\n \n \n \n {doc.label}\n \n
\n ))}\n
\n \n
\n );\n if (view === \"table\") return ;\n }\n\n return
;\n}\n","import React from \"react\";\n\nimport { useAppState } from \"state\";\n\nimport Page from \"components/layout/Page\";\nimport Card from \"components/layout/Card\";\n\nimport List from \"components/Datasources/List\";\nimport Tag from \"components/layout/Tag\";\n\nconst DocContent = () => {\n const { datasources } = useAppState();\n\n if (datasources.length > 0) {\n return (\n
\n {datasources.map((source) => (\n
\n \n \n
\n {source.title}\n {source.source}\n
\n
\n \n
{source.description}
\n \n
\n
\n
\n ))}\n
\n );\n }\n\n return
No documents found
;\n};\n\nexport default function Docs() {\n return (\n \n {{\n title: \"Documents\",\n content: ,\n }}\n \n );\n}\n","import React from \"react\";\nimport { useParams } from \"react-router-dom\";\n\nimport { useAppState } from \"state\";\nimport { Datasource } from \"types\";\nimport Page from \"components/layout/Page\";\nimport List from \"components/Datasources/List\";\n\ninterface DocsProps {\n docs: Datasource;\n}\n\nconst DocsListContent = ({ docs }: DocsProps) => {\n return ;\n};\n\nexport default function DocsList() {\n const { datasources } = useAppState();\n const { docsId } = useParams<{ docsId: string }>();\n\n const docs = datasources.find(({ id }) => id === docsId);\n\n if (docs) {\n return (\n \n {{\n title: docs.title,\n subtitle: docs.description,\n content: ,\n }}\n \n );\n }\n\n return (\n \n {{\n title: \"Documents\",\n content:
,\n }}\n \n );\n}\n","import { CgInfo, CgFileDocument, CgMediaPodcast } from \"react-icons/cg\";\n\nimport { Page } from \"./index\";\n\nimport Home from \"./Home\";\nimport Podcasts from \"./Podcasts\";\nimport Show from \"./Podcasts/Shows\";\nimport Episode from \"./Podcasts/Shows/Episode\";\nimport About from \"./About\";\nimport Profile from \"./Profile\";\nimport Docs from \"./Docs\";\nimport DocsList from \"./Docs/DocsList\";\n\nexport const pages: Page[] = [\n {\n label: \"Home\",\n path: \"/\",\n showInMainMenu: false,\n component: Home,\n hasAccess: true,\n },\n {\n label: \"Podcasts\",\n path: \"/podcasts\",\n showInMainMenu: true,\n component: Podcasts,\n icon: CgMediaPodcast,\n hasAccess: true,\n },\n {\n label: \"Podcasts\",\n path: \"/podcasts/:showId\",\n showInMainMenu: false,\n component: Show,\n icon: CgMediaPodcast,\n hasAccess: true,\n },\n {\n label: \"Podcasts\",\n path: \"/podcasts/:showId/:episodeId\",\n showInMainMenu: false,\n component: Episode,\n icon: CgMediaPodcast,\n hasAccess: true,\n },\n {\n label: \"Documents\",\n path: \"/docs\",\n showInMainMenu: true,\n component: Docs,\n icon: CgFileDocument,\n hasAccess: true,\n },\n {\n label: \"Documents\",\n path: \"/docs/:docsId\",\n showInMainMenu: false,\n component: DocsList,\n icon: CgFileDocument,\n hasAccess: true,\n },\n {\n label: \"About\",\n path: \"/about\",\n showInMainMenu: true,\n component: About,\n icon: CgInfo,\n hasAccess: true,\n },\n {\n label: \"Profile\",\n path: \"/profile\",\n showInMainMenu: false,\n component: Profile,\n hasAccess: true,\n },\n];\n","import React, { useContext } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n\nimport config from \"config\";\nimport usePages from \"hooks/usePages\";\n\nimport { useAppState } from \"state\";\nimport { AuthFunctions } from \"components/auth\";\n\nimport Player from \"components/Player\";\n\nimport Container from \"components/layout/Container\";\nimport Header from \"components/layout/Header\";\nimport Logo from \"components/layout/Logo\";\nimport ProfileMini from \"./components/layout/ProfileMini\";\nimport AppGrid from \"components/layout/AppGrid\";\nimport NavMenu from \"components/layout/Navigation/NavMenu\";\nimport NavButton from \"components/layout/Navigation/NavButton\";\nimport Button from \"components/layout/Button\";\nimport Search from \"components/Search\";\nimport Datasources from \"components/Datasources\";\nimport { podcasts, ceq } from \"components/Search/SearchSources\";\nimport { pages } from \"pages/pages\";\n\nconst HeaderRight = () => {\n return (\n
\n \n \n
\n );\n};\n\nfunction App() {\n let { pathname } = useLocation();\n\n const {\n token,\n player: { active },\n } = useAppState();\n\n const { login } = useContext(AuthFunctions);\n\n const { renderedRoutes, renderedMenu } = usePages({\n pages,\n accessGroups: [],\n currentPath: pathname,\n MenuButton: NavButton,\n });\n\n const {\n app: { title },\n } = config;\n\n return (\n \n {token?.accessToken ? (\n <>\n }\n wide={true}\n right={}\n />\n \n \n {{\n leftBar: ,\n content: renderedRoutes,\n }}\n \n {active ? : null}\n \n ) : (\n
\n
\n Gold Coast Health\n
\n
\n Please login with your QH account to continue\n
\n \n
\n )}\n
\n );\n}\n\nexport default App;\n","import React from \"react\";\nimport { Route } from \"react-router-dom\";\n\nimport { Page } from \"pages\";\n\ninterface Props {\n accessGroups: string[];\n pages: Page[];\n currentPath: string;\n MenuButton: React.ComponentType;\n}\n\nexport interface MenuButtonProps {\n path: string;\n currentPath: string;\n icon?: React.ComponentType;\n children: React.ReactNode;\n}\n\nexport default function usePages({\n pages,\n accessGroups,\n currentPath,\n MenuButton,\n}: Props) {\n let routes: React.ReactNode[] = [];\n\n const hasAccess = (page: Page, accessGroups: string[]): boolean => {\n if (typeof page.hasAccess === \"boolean\") {\n return page.hasAccess;\n }\n if (page.hasAccess.some((group) => accessGroups.includes(group))) {\n return true;\n }\n return false;\n };\n\n const generatePages = (pages: Page[]): React.ReactNode[] => {\n pages.forEach((page) => {\n if (\"component\" in page && hasAccess(page, accessGroups)) {\n routes.push(\n \n );\n }\n if (page.children) {\n generatePages(page.children);\n }\n });\n return routes;\n };\n\n let menuLinks: React.ReactNode[] = [];\n // Add padding if single\n if (pages.length === 1) {\n menuLinks.push(
);\n }\n\n const generateMenu = (pages: Page[]): React.ReactNode[] => {\n pages.forEach((page, index) => {\n // Add button with Link\n if (page.showInMainMenu) {\n if (\"component\" in page && hasAccess(page, accessGroups)) {\n menuLinks.push(\n \n {page.label}\n \n );\n } else {\n // Add Section Label\n if (hasAccess(page, accessGroups))\n menuLinks.push(\n \n {page.label}\n
\n );\n }\n }\n if (page.children) {\n generateMenu(page.children);\n }\n });\n return menuLinks;\n };\n\n const renderedRoutes = generatePages(pages);\n const renderedMenu = generateMenu(pages);\n\n return { renderedRoutes, renderedMenu };\n}\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry); \n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n}\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport * as serviceWorkerRegistration from \"./serviceWorkerRegistration\";\n\nimport \"./styles/index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { appInsights } from \"./appInsights\";\nimport { AppProvider } from \"state\";\nimport { Auth } from \"components/auth\";\nimport { DesignProvider } from \"components/layout/DesignProvider\";\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\nserviceWorkerRegistration.register();\nappInsights.loadAppInsights();\n"],"sourceRoot":""}