{"version":3,"sources":["../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/react-bootstrap/esm/Table.js","pages/RealTimePage.jsx"],"names":["Row","React","_ref","ref","bsPrefix","className","as","Component","props","decoratedBsPrefix","useBootstrapPrefix","breakpoints","useBootstrapBreakpoints","minBreakpoint","useBootstrapMinBreakpoint","sizePrefix","concat","classes","forEach","brkPoint","propValue","cols","infix","push","_jsx","classNames","displayName","Col","colProps","spans","span","offset","order","useCol","length","Table","striped","bordered","borderless","hover","size","variant","responsive","table","responsiveClass","children","timer","timer_camera","timer_mosaic","CURRENT_DATE","Date","now","CURRENT_YEAR","getUTCFullYear","CURRENT_MONTH","getUTCMonth","CURRENT_DAY","getUTCDate","PROJECT_INFO","updateImages","seconds","prefetch","images","document","getElementsByClassName","datenow","image","fetch","src","split","method","then","res","status","catch","err","DataRow","sectionHeader","projectInfo","clickableImages","_jsxs","_Fragment","colSpan","style","fontSize","fontWeight","href","target","rel","FontAwesomeIcon","icon","faChevronRight","map","data_product_type","idx","width","url","refresh_cadence","includes","Nav","Link","display","padding","alt","margin","maxWidth","RealTimeTable","_ref2","multipleProjects","tableContents","p","RealTimePage","urlParams","useParams","project","undefined","data","Object","keys","getTableContents","title","useEffect","setInterval","clearInterval","Container","fluid"],"mappings":"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","file":"static/js/3.c36c2fa8.chunk.js","sourcesContent":["import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Row = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'row');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const sizePrefix = `${decoratedBsPrefix}-cols`;\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let cols;\n if (propValue != null && typeof propValue === 'object') {\n ({\n cols\n } = propValue);\n } else {\n cols = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (cols != null) classes.push(`${sizePrefix}${infix}-${cols}`);\n });\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, decoratedBsPrefix, ...classes)\n });\n});\nRow.displayName = 'Row';\nexport default Row;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix, useBootstrapBreakpoints, useBootstrapMinBreakpoint } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function useCol({\n as,\n bsPrefix,\n className,\n ...props\n}) {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'col');\n const breakpoints = useBootstrapBreakpoints();\n const minBreakpoint = useBootstrapMinBreakpoint();\n const spans = [];\n const classes = [];\n breakpoints.forEach(brkPoint => {\n const propValue = props[brkPoint];\n delete props[brkPoint];\n let span;\n let offset;\n let order;\n if (typeof propValue === 'object' && propValue != null) {\n ({\n span,\n offset,\n order\n } = propValue);\n } else {\n span = propValue;\n }\n const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';\n if (span) spans.push(span === true ? `${bsPrefix}${infix}` : `${bsPrefix}${infix}-${span}`);\n if (order != null) classes.push(`order${infix}-${order}`);\n if (offset != null) classes.push(`offset${infix}-${offset}`);\n });\n return [{\n ...props,\n className: classNames(className, ...spans, ...classes)\n }, {\n as,\n bsPrefix,\n spans\n }];\n}\nconst Col = /*#__PURE__*/React.forwardRef(\n// Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n(props, ref) => {\n const [{\n className,\n ...colProps\n }, {\n as: Component = 'div',\n bsPrefix,\n spans\n }] = useCol(props);\n return /*#__PURE__*/_jsx(Component, {\n ...colProps,\n ref: ref,\n className: classNames(className, !spans.length && bsPrefix)\n });\n});\nCol.displayName = 'Col';\nexport default Col;","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Table = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n striped,\n bordered,\n borderless,\n hover,\n size,\n variant,\n responsive,\n ...props\n}, ref) => {\n const decoratedBsPrefix = useBootstrapPrefix(bsPrefix, 'table');\n const classes = classNames(className, decoratedBsPrefix, variant && `${decoratedBsPrefix}-${variant}`, size && `${decoratedBsPrefix}-${size}`, striped && `${decoratedBsPrefix}-${typeof striped === 'string' ? `striped-${striped}` : 'striped'}`, bordered && `${decoratedBsPrefix}-bordered`, borderless && `${decoratedBsPrefix}-borderless`, hover && `${decoratedBsPrefix}-hover`);\n const table = /*#__PURE__*/_jsx(\"table\", {\n ...props,\n className: classes,\n ref: ref\n });\n if (responsive) {\n let responsiveClass = `${decoratedBsPrefix}-responsive`;\n if (typeof responsive === 'string') {\n responsiveClass = `${responsiveClass}-${responsive}`;\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: responsiveClass,\n children: table\n });\n }\n return table;\n});\nexport default Table;","import React, { useEffect } from \"react\";\nimport { Col, Container, Row, Table, Nav } from \"react-bootstrap\";\nimport { faChevronRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { useParams } from \"react-router-dom\";\n\nimport \"../styles/table.scss\";\n\nlet timer; // for refreshing the images\nlet timer_camera;\nlet timer_mosaic;\n\nconst CURRENT_DATE = new Date(Date.now());\nconst CURRENT_YEAR = CURRENT_DATE.getUTCFullYear();\nconst CURRENT_MONTH = CURRENT_DATE.getUTCMonth();\nconst CURRENT_DAY = CURRENT_DATE.getUTCDate();\nconst PROJECT_INFO = {\n \"themis-asi\": {\n \"name\": \"THEMIS ASI\",\n \"website\": \"https://data-portal.phys.ucalgary.ca/rt/themis/asi/mosaic\",\n \"realTimePageURL\": \"/themis-asi\",\n \"data\": [\n {\n \"type\": \"Real-Time Mosaic\",\n \"feeds\": [\n \"https://themis-mosaic.auroralimaging.com/data/imager/rt-mosaic/latest_ORTHO.jpg\"\n ]\n },\n {\n \"type\": \"Magnetometer\",\n \"feeds\": [\n \"https://data.phys.ucalgary.ca/sort_by_project/THEMIS/magnetometer/stream0.rt/themis_kapu_gmag/b1.1day%2Cnow.png\",\n \"https://data.phys.ucalgary.ca/sort_by_project/THEMIS/magnetometer/stream0.rt/themis_kian_gmag/b1.1day%2Cnow.png\",\n \"https://data.phys.ucalgary.ca/sort_by_project/THEMIS/magnetometer/stream0.rt/themis_kuuj_gmag/b1.1day%2Cnow.png\",\n \"https://data.phys.ucalgary.ca/sort_by_project/THEMIS/magnetometer/stream0.rt/themis_pgeo_gmag/b1.1day%2Cnow.png\"\n ]\n }\n ]\n },\n \"rego\": {\n \"name\": \"REGO\",\n \"website\": \"https://data-portal.phys.ucalgary.ca/rt/rego/rt_thumbs\",\n \"realTimePageURL\": \"/rego\",\n \"data\": [\n {\n \"type\": \"Real-Time Thumbnail\",\n \"feeds\": [\n \"https://rego-rt.auroralimaging.com/data/recent/recent_fsim_rego-656.jpg\",\n \"https://rego-rt.auroralimaging.com/data/recent/recent_fsmi_rego-798.jpg\",\n \"https://rego-rt.auroralimaging.com/data/recent/recent_gill_rego-652.jpg\",\n \"https://rego-rt.auroralimaging.com/data/recent/recent_luck_rego-654.jpg\",\n \"https://rego-rt.auroralimaging.com/data/recent/recent_rank_rego-649.jpg\",\n \"https://rego-rt.auroralimaging.com/data/recent/recent_sach_rego-653.jpg\",\n \"https://rego-rt.auroralimaging.com/data/recent/recent_talo_rego-657.jpg\"\n ],\n \"width\": 256,\n \"badge\": true\n }\n ]\n },\n \"riometers\": {\n \"name\": \"Riometers\",\n \"website\": \"https://data-portal.phys.ucalgary.ca/rt/go_rio/rt_plots\",\n \"realTimePageURL\": \"/riometers\",\n \"data\": [\n {\n \"type\": \"Real-Time Data Plot\",\n \"feeds\": [\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_chur_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_daws_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_fsim_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_fsmi_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_gill_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_isll_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_luck_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_mcmu_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_pgeo_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_pina_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_rabb_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_rank_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_talo_xrio/udp.1day,now.png\",\n \"https://star-rt.phys.ucalgary.ca/data/dataflow/validate/riometer/recent/UNIQUEID/norstar_whit_xrio/udp.1day,now.png\"\n ]\n\n }\n ]\n },\n \"carisma\": {\n \"name\": \"CARISMA\",\n \"website\": \"https://www.carisma.ca/carisma-data/realtime-data-plots\",\n \"realTimePageURL\": \"/carisma\",\n \"data\": [\n {\n \"type\": \"DAWS FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotDAWS_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"FCHU FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotFCHU_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"GILL FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotGILL_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"GULL FGM Plot(X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotGULL_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"ISLL FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotISLL_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"MCMU FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotMCMU_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"MSTK FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotMSTK_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"NORM FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotNORM_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"PINA FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotPINA_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"RABB FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotRABB_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"RANK FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotRANK_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"TALO FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotTALO_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"WEYB FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotWEYB_X.png\"\n ],\n \"width\": 687\n },\n {\n \"type\": \"WGRY FGM Plot (X axis)\",\n \"feeds\": [\n \"https://www.carisma.ca/realtime_data2/RRDPlotWGRY_X.png\"\n ],\n \"width\": 687\n }\n ]\n },\n \"autumnx\": {\n \"name\": \"AUTUMNX\",\n \"website\": \"https://autumn.athabascau.ca/TBS_autumnxquery2.php\",\n \"realTimePageURL\": \"/autumnx\",\n \"data\": [\n {\n \"type\": \"SALU FGM Plot\",\n \"feeds\": [\n `https://autumn.athabascau.ca/magdata/L4/${CURRENT_YEAR}/${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}/${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}/AUTUMNX_SALU_TGBO_${CURRENT_YEAR}_${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}_${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}_PT1M_L4.png`\n ],\n \"width\": 687\n },\n {\n \"type\": \"PUVR FGM Plot\",\n \"feeds\": [\n `https://autumn.athabascau.ca/magdata/L4/${CURRENT_YEAR}/${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}/${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}/AUTUMNX_PUVR_TGBO_${CURRENT_YEAR}_${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}_${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}_PT1M_L4.png`\n ],\n \"width\": 687\n },\n {\n \"type\": \"INUK FGM Plot\",\n \"feeds\": [\n `https://autumn.athabascau.ca/magdata/L4/${CURRENT_YEAR}/${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}/${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}/AUTUMNX_INUK_TGBO_${CURRENT_YEAR}_${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}_${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}_PT1M_L4.png`\n ],\n \"width\": 687\n },\n {\n \"type\": \"RADI FGM Plot\",\n \"feeds\": [\n `https://autumn.athabascau.ca/magdata/L4/${CURRENT_YEAR}/${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}/${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}/AUTUMNX_RADI_TGBO_${CURRENT_YEAR}_${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}_${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}_PT1M_L4.png`\n ],\n \"width\": 687\n },\n {\n \"type\": \"VLDR FGM Plot\",\n \"feeds\": [\n `https://autumn.athabascau.ca/magdata/L4/${CURRENT_YEAR}/${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}/${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}/AUTUMNX_VLDR_TGBO_${CURRENT_YEAR}_${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}_${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}_PT1M_L4.png`\n ],\n \"width\": 687\n },\n {\n \"type\": \"STFL FGM Plot\",\n \"feeds\": [\n `https://autumn.athabascau.ca/magdata/L4/${CURRENT_YEAR}/${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}/${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}/AUTUMNX_STFL_TGBO_${CURRENT_YEAR}_${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}_${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}_PT1M_L4.png`\n ],\n \"width\": 687\n },\n {\n \"type\": \"SEPT FGM Plot\",\n \"feeds\": [\n `https://autumn.athabascau.ca/magdata/L4/${CURRENT_YEAR}/${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}/${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}/AUTUMNX_SEPT_TGBO_${CURRENT_YEAR}_${(CURRENT_MONTH < 9 ? \"0\" : \"\") + (CURRENT_MONTH + 1)}_${(CURRENT_DAY < 10 ? \"0\" : \"\") + CURRENT_DAY}_PT1M_L4.png`\n ],\n \"width\": 687\n }\n ]\n },\n \"trex\": {\n \"name\": \"TREx\",\n \"website\": \"https://data-portal.phys.ucalgary.ca/rt/\",\n \"realTimePageURL\": \"/trex\",\n \"data\": [\n {\n \"type\": \"RGB ASI\",\n \"feeds\": [\n \"https://trex-multi-rt.phys.ucalgary.ca/recent/recent_atha_rgb-07.jpg\",\n \"https://trex-rgb-rt.auroralimaging.com/data/recent/recent_fsmi_rgb-09.jpg\",\n \"https://trex-multi-rt.phys.ucalgary.ca/recent/recent_gill_rgb-04.jpg\",\n \"https://trex-multi-rt.phys.ucalgary.ca/recent/recent_luck_rgb-03.jpg\",\n \"https://trex-multi-rt.phys.ucalgary.ca/recent/recent_pina_rgb-02.jpg\",\n \"https://trex-multi-rt.phys.ucalgary.ca/recent/recent_rabb_rgb-06.jpg\"\n ],\n \"width\": 553,\n \"badge\": true\n },\n {\n \"type\": \"NIR ASI\",\n \"feeds\": [\n \"https://trex-nir-rt.auroralimaging.com/data/recent/recent_atha_nir-218.jpg\",\n \"https://trex-nir-rt.auroralimaging.com/data/recent/recent_gill_nir-216.jpg\",\n \"https://trex-nir-rt.auroralimaging.com/data/recent/recent_luck_nir-221.jpg\",\n \"https://trex-nir-rt.auroralimaging.com/data/recent/recent_pina_nir-220.jpg\",\n \"https://trex-nir-rt.auroralimaging.com/data/recent/recent_rabb_nir-217.jpg\"\n ],\n \"width\": 256,\n \"badge\": true\n },\n {\n \"type\": \"Blueline ASI\",\n \"feeds\": [\n \"https://trex-blue-rt.auroralimaging.com/data/recent/recent_atha_blue-633.jpg\",\n \"https://trex-blue-rt.auroralimaging.com/data/recent/recent_luck_blue-164.jpg\",\n \"https://trex-blue-rt.auroralimaging.com/data/recent/recent_gill_blue-814.jpg\",\n \"https://trex-blue-rt.auroralimaging.com/data/recent/recent_pina_blue-812.jpg\",\n \"https://trex-blue-rt.auroralimaging.com/data/recent/recent_rabb_blue-815.jpg\"\n ],\n \"width\": 320,\n \"badge\": true\n }\n ]\n }\n};\n\n// returns a list of dictionaries from PROJECT)INFO for the projects we want to display\nconst getTableContents = (project) => {\n let data = [];\n if (project) {\n data.push(PROJECT_INFO[project]);\n } else {\n let projects = Object.keys(PROJECT_INFO);\n projects.forEach((p) => {\n data.push(PROJECT_INFO[p]);\n })\n }\n\n return data;\n};\n\n// appends the current epoch in milliseconds as a phony param to the end of the image URL\n// in order to bypass cacheing. The second argument will cause the update to use a HEAD\n// fetch to make sure the image exists before setting the new URL\nconst updateImages = (seconds, prefetch) => {\n let images = document.getElementsByClassName(`rt-image-url rf-${seconds}`);\n let datenow = Date.now();\n for (let image of images) {\n if (prefetch) {\n fetch(image.src.split(\"?\")[0] + `?${datenow}`, { method: 'HEAD' })\n .then(res => {\n if (res.status === 200) { // update the image if the HEAD request returned 200\n image.src = image.src.split(\"?\")[0] + `?${datenow}`;\n }\n })\n .catch(err => {\n // do nothing\n })\n }\n else {\n image.src = image.src.split(\"?\")[0] + `?${datenow}`;\n }\n }\n};\n\n// renders the row of data for a project\nconst DataRow = ({ sectionHeader, projectInfo, clickableImages }) => {\n return (\n <>\n {\n sectionHeader &&\n \n \n \n \n {projectInfo[\"name\"]}\n \n \n View project website \n \n \n \n \n }\n {\n projectInfo[\"data\"].map((data_product_type, idx) => {\n return (\n \n \n {data_product_type[\"type\"]}\n {\n\n data_product_type[\"badge\"] && <>

Real-time images during nightly imaging hours\n }\n \n \n {data_product_type[\"feeds\"].map((url, idx) => {\n let refresh_cadence = data_product_type[\"type\"] === \"Real-Time Mosaic\" // there's probably a better way to do this, maybe move a cadence value into the project info\n ? 3\n : [\"RGB ASI\", \"NIR ASI\", \"Blueline ASI\", \"Real-Time Thumbnail\"].includes(data_product_type[\"type\"])\n ? 6\n : 60\n if (clickableImages) {\n return (\n \n \n \n )\n } else {\n return (\n \n )\n }\n\n\n\n }\n\n\n )}\n\n \n \n );\n })\n }\n \n );\n};\n\n// renders the table\nconst RealTimeTable = ({ multipleProjects, tableContents }) => {\n return (\n \n \n {\n tableContents.map((p, idx) => {\n return \n })\n }\n \n
\n );\n};\n\nconst RealTimePage = () => {\n const urlParams = useParams();\n const project = urlParams.project && PROJECT_INFO[urlParams.project] ? urlParams.project : undefined;\n const tableContents = getTableContents(project);\n document.title = project ? `${PROJECT_INFO[project][\"name\"]} Real-Time Data` : \"Real-Time Data\";\n\n useEffect(() => {\n timer_mosaic = setInterval(() => {\n updateImages(3, true);\n }, 3000);\n\n timer_camera = setInterval(() => {\n updateImages(6);\n }, 6000);\n\n timer = setInterval(() => {\n updateImages(60);\n }, 60000);\n\n return () => {\n clearInterval(timer_mosaic);\n clearInterval(timer_camera);\n clearInterval(timer);\n }\n }, [project, tableContents]);\n\n return (\n \n {\n project ?

{PROJECT_INFO[project][\"name\"]}

:

Real-Time Data Products

\n }\n \n
\n );\n};\n\nexport default RealTimePage;\n"],"sourceRoot":""}