{"version":3,"sources":["theme.js","context/themeContext.js","hooks/useThemeMode.js","globalStyle.js","api/devices.js","pages/Home.js","App.js","serviceWorker.js","index.js"],"names":["theme","LIGHT","colors","primary","secondary","tertiary","grey","red","shadow","danger","warning","info","success","DARK","ThemeModeContext","createContext","useThemeMode","_useState","useState","mode","cookies","get","set","_useState2","Object","slicedToArray","themeMode","setThemeMode","newThemeMode","createGlobalStyle","_templateObject","props","remcalc","searchDevice","_ref","asyncToGenerator","regenerator_default","a","mark","_callee","serialNumber","res","wrap","_context","prev","next","axios","concat","headers","Authorization","sent","abrupt","t0","stop","_x","apply","this","arguments","StyledContainer","Styled","div","Home_templateObject","error","device","DeviceInfo","_templateObject2","InputContainer","_templateObject3","StyledText","Text","_templateObject4","Input","input","_templateObject5","Home","value","setValue","_useState3","_useState4","pending","setPending","_useState5","_useState6","valid","setValid","_useState7","_useState8","setDevice","_useState9","_useState10","setError","useEffect","handler","setTimeout","result","_valid","data","records","length","metadata","hd271","hd272","hw_baseboard","indexOf","device_uuid","clearTimeout","console","log","react_default","createElement","as","size","onChange","e","target","placeholder","mcloud_ui_esm","align","right","moment","createdAt","format","updatedAt","App","_useThemeMode","_useThemeMode2","toggleTheme","className","styled_components_browser_esm","themeContext","Provider","BrowserRouter","Route","exact","path","component","globalStyle","Boolean","window","location","hostname","match","ReactDOM","render","src_App","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.db4526c7.chunk.js","sourcesContent":["export default {\n LIGHT: {\n colors: {\n primary: '#fff',\n secondary: '#272822',\n tertiary: '#6d45ff',\n grey: '#f1f1f1',\n red: '#ff4949',\n shadow: 'rgba(0, 0, 0, 0.06) 0px 6px 20px',\n danger: '#96281b',\n warning: '#f15a22',\n info: '#1f3a93',\n success: '#1e824c',\n },\n },\n DARK: {\n colors: {\n primary: '#272822',\n secondary: '#f1f1f1',\n tertiary: '#ff9e9e',\n grey: '#404040',\n red: '#ff4949',\n shadow: 'rgba(255, 255, 255, 0.06) 0px 6px 20px',\n danger: '#ec644b',\n warning: '#f39c12',\n info: '#19b5fe',\n success: '#7befb2',\n },\n },\n};\n","import { createContext } from 'react';\n\nconst ThemeModeContext = createContext(['', () => {}]);\nexport default ThemeModeContext;\n","import { useState } from 'react';\nimport cookies from 'js-cookie';\n\nexport default () => {\n const getThemeMode = () => {\n let mode = cookies.get('mode_academy-builder');\n\n // set default to LIGHT\n if (!mode) {\n cookies.set('mode_academy-builder', 'LIGHT');\n mode = 'LIGHT';\n }\n\n return mode;\n };\n\n const [themeMode, setThemeMode] = useState(getThemeMode);\n\n const toggleTheme = () => {\n const newThemeMode = themeMode === 'LIGHT' ? 'DARK' : 'LIGHT';\n\n cookies.set('mode_academy-builder', newThemeMode);\n setThemeMode(newThemeMode);\n };\n\n return [themeMode, toggleTheme];\n};\n","import { createGlobalStyle } from 'styled-components'\nimport remcalc from 'remcalc'\n\nexport default createGlobalStyle`\n html {\n font-size: 100%; /* set base font-size for remcalc */\n font-family: 'Source Sans Pro', 'Helvetica Neue', Arial, Helvetica, sans-serif;\n }\n\n body {\n background: ${props => props.theme.primary};\n color: ${props => props.theme.secondary};\n padding: 0;\n margin: 0;\n input {\n height: 35px;\n margin: 5px 0;\n font-size: 15px;\n border: 1px solid ${props => props.theme.grey};\n border-radius: 5px;\n font-size: 1.2rem;\n padding: 10px;\n width: 100%;\n margin-bottom: 20px;\n }\n textarea {\n border: 1px solid ${props => props.theme.grey};\n border-radius: 5px;\n font-size: 1.2rem;\n padding: 10px;\n width: 100%;\n height: 200px;\n }\n select {\n border: 1px solid ${props => props.theme.grey};\n border-radius: 5px;\n font-size: 1.2rem;\n padding: 10px;\n width: 100%;\n margin-bottom: 20px;\n }\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n html, body, #app {\n width: 100%;\n height: 100%;\n background-color: ${props => props.theme.primary};\n overflow-x: hidden;\n }\n\n body {\n margin: 0px;\n padding: 0px;\n overflow-x: hidden;\n min-width: 320px;\n background-color: ${props => props.theme.primary};\n font-size: 14px;\n line-height: 1.4285em;\n color: ${props => props.theme.secondary};\n }\n\n input, textarea {\n color: ${props => props.theme.secondary} !important;\n }\n\n div {\n box-sizing: border-box;\n }\n\n h1, h2, h3, h4 {\n letter-spacing: 0.4px;\n margin: 0;\n }\n\n h1, h2, h3 {\n font-size: ${remcalc(20)};\n }\n\n h2 {\n font-weight: 700;\n color: ${props => props.theme.secondary};\n }\n \n h3 {\n font-weight: 600;\n color: ${props => props.theme.secondary};\n }\n\n h4, h5, h6 {\n font-size: ${remcalc(16)};\n }\n\n h4 {\n font-weight: 400;\n color: ${props => props.theme.secondary};\n }\n\n h5, h6 {\n font-weight: 300;\n color: ${props => props.theme.secondary};\n }\n\n`\n","import axios from 'axios';\nimport cookies from 'js-cookie';\n\nexport const searchDevice = async serialNumber => {\n try {\n const res = await axios.get(\n `api/v2/devices/${serialNumber}?expand=metadata`,\n {\n headers: {\n Authorization: `Bearer ${cookies.get('CLIENT_TOKEN')}`\n }\n }\n );\n return res;\n } catch (e) {\n throw e;\n }\n};\n","import React, { useState, useEffect } from 'react';\nimport Styled from 'styled-components';\nimport remcalc from 'remcalc';\nimport moment from 'moment';\n\nimport { Text } from '@cloud/mcloud-ui';\nimport { searchDevice } from '../api/devices';\n\nconst StyledContainer = Styled.div`\n height: 100vh;\n width: 100vw;\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n background-color: ${props => props.theme.colors.info};\n ${props => props.error && `background-color: ${props.theme.colors.danger}`};\n ${props => props.device && `background-color: ${props.theme.colors.success}`};\n transition: background-color .2s ease-in-out;\n`;\n\nconst DeviceInfo = Styled.div`\n align-items: center;\n justify-content: center;\n flex-direction: column;\n`;\n\nconst InputContainer = Styled.div`\n display: flex;\n flex-direction: column;\n max-width: 700px;\n width: 100%;\n`;\n\nconst StyledText = Styled(Text)`\n margin-bottom: 20px;\n color: #96A9E9;\n ${props => props.error && `color: #F4C3BE`};\n ${props => props.device && `color: #AFD2A9`};\n`;\n\nconst Input = Styled.input`\n font-size: ${remcalc(26)};\n box-sizing: border-box;\n border-radius: 0;\n padding: 10px;\n width: 100%;\n max-width: 700px;\n height: 70px;\n border-color: #3E5BB9;\n ${props => props.device && `border-color: #32A266`};\n ${props => props.error && `border-color: #D40027`};\n`;\n\nconst Home = () => {\n const [value, setValue] = useState('');\n const [pending, setPending] = useState(false);\n const [valid, setValid] = useState(false);\n const [device, setDevice] = useState(null);\n const [error, setError] = useState(null);\n\n const onChange = e => {\n setValue(e.target.value);\n };\n\n const validateDevice = device => {\n if (device.records.length === 0) {\n setError('No device records found');\n return false;\n }\n\n if (!device.records[0].metadata) {\n setError('No device metadata found');\n return false;\n }\n\n if (!device.records[0].metadata.hd271) {\n setError('No data for HD271 board');\n return false;\n }\n\n if (!device.records[0].metadata.hd272) {\n setError('No data for HD272 board');\n return false;\n }\n\n if (!device.records[0].metadata.hd271.hw_baseboard) {\n setError('No hw_baseboard info found for HD271 board');\n return false;\n } else {\n if (device.records[0].metadata.hd271.hw_baseboard.indexOf('0x') === -1) {\n setError('Invalid format for HD271 hw_baseboard');\n return false;\n }\n }\n\n if (!device.records[0].metadata.hd271.device_uuid) {\n setError('No device_uuid info found for HD271 board');\n return false;\n }\n\n if (!device.records[0].metadata.hd272.device_uuid) {\n setError('No device_uuid info found for HD272 board');\n return false;\n }\n\n return true;\n };\n\n useEffect(() => {\n setError(null);\n setDevice(null);\n if (value) {\n setPending(true);\n const handler = setTimeout(async () => {\n setPending(false);\n try {\n const result = await searchDevice(value);\n const valid = validateDevice(result.data);\n setValid(valid);\n return setDevice(result.data);\n } catch (e) {\n setValid(false);\n return setError('No device found for that serial number');\n }\n }, 500);\n return () => {\n clearTimeout(handler);\n };\n }\n }, [value]);\n console.log(device);\n return (\n