{"version":3,"sources":["utils/index2.ts","components/Loader.tsx","reducers/analyticsReducer.ts","contexts/AnalyticsContext.tsx","services/authService.ts","actions/authActions.ts","pages/auth/Page404.tsx","constants/index.ts","theme/variants.ts","theme/typography.ts","theme/overrides.ts","theme/breakpoints.ts","theme/props.ts","theme/index.ts","components/Async.tsx","routes/index.tsx","components/ProjectChooser.tsx","services/projectService.ts","components/UserDropdown.tsx","components/AppBar.tsx","components/Footer.tsx","layouts/Dashboard.tsx","layouts/DashboardCover.tsx","layouts/Auth.tsx","routes/Routes.tsx","App.tsx","reportWebVitals.ts","index.tsx","reducers/authReducer.ts","contexts/AuthContext.tsx","utils/index.ts","contexts/ProjectContext.tsx"],"names":["useUtils","React","useContext","AuthContext","dispatch","handleSignOut","state","a","authSignOutSuccess","authSignOut","axios","_axios","create","baseURL","process","method","headers","responseType","interceptors","response","use","err","status","Promise","reject","dataURLtoFile","dataurl","filename","arr","split","mimeArr","match","mime","bstr","atob","n","length","u8arr","Uint8Array","charCodeAt","File","type","formatNumber","amount","decimalCount","decimal","thousands","Math","abs","isNaN","numericSign","parts","toString","replace","Array","fill","substring","join","isValidDate","d","Date","getUrlParameters","search","sURLVariables","params","i","sParameterName","decodeURI","Root","styled","div","Loader","color","initialState","globalScore","categories","dateRange","moment","day","add","reducer","action","types","global_kpi","AnalyticsContext","createContext","AnalyticsContextProvider","props","analytics","useAnalytics","children","Provider","value","useReducer","Consumer","signIn","credentials","resolve","url","data","JSON","stringify","then","catch","error","signOut","localStorage","removeItem","fetchUser","accessToken","authSignInSuccess","Button","MuiButton","spacing","Wrapper","theme","breakpoints","up","Page404","title","component","variant","align","gutterBottom","Link","to","mt","THEMES","DEFAULT","DARK","LIGHT","BLUE","GREEN","INDIGO","AUTH_SIGN_IN_SUCCESS","AUTH_SIGN_OUT","SET_GLOBAL_KPIS","SET_DATE_RANGE","USER_UPDATE_NAME","customBlue","defaultVariant","name","palette","primary","main","contrastText","secondary","background","default","paper","header","grey","indicator","footer","sidebar","brand","online","green","badge","variants","merge","text","red","indigo","typography","fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","h1","fontWeight","lineHeight","h2","h3","h4","h5","h6","body1","button","textTransform","overrides","MuiCardHeader","marginTop","marginRight","MuiPickersDay","MuiPickersYear","root","height","MuiPickersCalendar","transitionContainer","MuiPickersCalendarHeader","iconButton","backgroundColor","switchHeader","marginBottom","MuiPickersClock","container","margin","MuiPickersClockNumber","clockNumber","left","width","MuiPickerDTHeader","dateHeader","timeHeader","MuiPickersTimePicker","hourMinuteLabel","MuiPickersToolbar","toolbar","MuiChip","borderRadius","MuiFormControl","marginNormal","MuiInputLabel","transform","outlined","MuiFormControlLabel","marginLeft","MuiCheckbox","paddingLeft","paddingTop","MuiOutlinedInput","input","padding","values","xs","sm","md","lg","xl","titleTypographyProps","createTheme","themeConfig","find","console","warn","Error","createMuiTheme","sleep","m","r","setTimeout","asyncComponent","importComponent","this","setState","C","AuthGuard","async","SignIn","Dashboard","AuditMenu","AuditForm","AuditList","AuditDetail","AuditMultimedia","AuditPdfDetail","Analytics","Category","AuditsPerZone","AuditsPerContractor","ContractorsAdvanced","ContinouosImprovement","ObservationMenu","ObservationForm","ObservationList","ObservationDetail","ObservationPDF","FlightsLog","FlightsForm","FlightsList","FlightsAnal","FlightsMultimedia","ZoneFiles","Calendar","Profile","FlightsCalendar","FlightDetail","Ticket","CommentsMenu","CommentsForm","CommentsList","CommentsDetail","DailyReportMenu","DailyReportForm","DailyReportList","DailyReportDetail","ModifyActivities","DailyReportAnalytics","SSPAMenu","SSPAForm","SSPAList","SSPADetail","SSPAAnalytics","SSPAAnalyticsAggregate","DocsManagement","dashboardsRoutesCover","id","path","icon","containsHome","guard","dashboardsRoutes","authRoutes","landingRoutes","dashboardLayoutRoutes","dashboardLayoutCoverRoutes","authLayoutRoutes","presentationLayoutRoutes","ProjectChooser","classes","useStyles","useState","options","setOptions","selectedProject","setSelectedProject","anchorEl","setAnchorEl","open","Boolean","authState","ProjectContext","projectState","useEffect","user","token","log","selected","item","projectID","aria-controls","undefined","aria-haspopup","aria-expanded","disableElevation","onClick","event","currentTarget","endIcon","className","logo","src","Menu","map","option","index","MenuItem","rootPaper","project","payload","makeStyles","fontStyle","boxSizing","maxHeight","maxWidth","IconButton","MuiIconButton","UserDropdown","anchorMenu","setAnchorMenu","useHistory","Tooltip","aria-owns","onClose","AppBar","MuiAppBar","CalendarButton","InputBase","TodayIcon","PersonIcon","Person","withTheme","onDrawerToggle","history","position","elevation","Toolbar","Grid","alignItems","justify","location","pathname","goBack","ArrowBackIos","push","style","Home","ListItem","MuiListItem","ListItemText","MuiListItemText","Footer","List","getFullYear","GlobalStyle","createGlobalStyle","AppContent","Paper","MuiPaper","MainContent","withWidth","routes","mobileOpen","setMobileOpen","CssBaseline","p","isWidthUp","Auth","childRoutes","Layout","Component","Guard","Fragment","_routes","exact","render","forEach","element","Routes","DashboardLayout","DashboardLayoutCover","AuthLayout","jss","jssPreset","insertionPoint","App","Helmet","titleTemplate","defaultTitle","StylesProvider","utils","MomentUtils","maxSnack","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","Sentry","dsn","REACT_APP_SENTRY_DSN","integrations","Integrations","BrowserTracing","tracesSampleRate","ReactDOM","StrictMode","document","getElementById","parse","email","rules","AuthContextProvider","auth","useAuth","setItem","negativeSign","allZeros","array","parseInt","getItem","projectName","lon","lat","ProjectContextProvider","useProject"],"mappings":"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","file":"static/js/main.a8d4efbe.chunk.js","sourcesContent":["import React from 'react';\r\nimport {default as _axios} from 'axios';\r\nimport {\r\n signOut as authSignOutSuccess,\r\n} from \"../services/authService\";\r\nimport { authSignOut } from \"../actions/authActions\";\r\nimport {AuthContext} from '../contexts/AuthContext';\r\n\r\nconst useUtils = () => {\r\n const {dispatch, state: authState} = React.useContext(AuthContext);\r\n\r\n const handleSignOut = async () => {\r\n authSignOutSuccess();\r\n dispatch(authSignOut());\r\n };\r\n\r\n const axios = _axios.create({\r\n // Do something before request is sent\r\n baseURL: process.env.REACT_APP_API_URL,\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n responseType: 'json'\r\n });\r\n \r\n axios.interceptors.response.use(function (response) {\r\n // Do something with response data\r\n return response;\r\n }, function(err) {\r\n if(err.response && err.response.status && err.response.status === 401) {\r\n // handleSignOut();\r\n }\r\n \r\n return Promise.reject(err);\r\n });\r\n\r\n \r\n const dataURLtoFile = (dataurl:string, filename:string) => {\r\n const arr = dataurl.split(',');\r\n const mimeArr = arr[0].match(/:(.*?);/);\r\n\r\n if(mimeArr && mimeArr[1]){\r\n const mime = mimeArr[1];\r\n const bstr = atob(arr[1]);\r\n let n = bstr.length;\r\n const u8arr = new Uint8Array(n);\r\n \r\n // console.log('aca arr', arr);\r\n // console.log('aca mime', mime);\r\n // console.log('aca bstr', bstr);\r\n // console.log('aca u8arr', u8arr);\r\n \r\n while (n) {\r\n u8arr[n-1] = bstr.charCodeAt(n-1)\r\n n -= 1 // to make eslint happy\r\n }\r\n \r\n return new File([u8arr], filename, { type: mime })\r\n } else{\r\n throw \"Cannot get mime of url\";\r\n }\r\n }\r\n\r\nconst formatNumber = (amount=0, decimalCount = 0, decimal = \".\", thousands = \",\") => {\r\n decimalCount = Math.abs(decimalCount);\r\n decimalCount = isNaN(decimalCount) ? 0 : decimalCount;\r\n const numericSign = amount < 0 ? \"-\" : \"\";\r\n const parts = amount.toString().split(decimal);\r\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousands);\r\n\r\n if(parts[1] && decimalCount > 0) {\r\n if(parts[1].length == 1) {\r\n parts[1] = parts[1] + (new Array(decimalCount-1)).fill(\"0\").toString();\r\n } else if(parts[1].length > 1) {\r\n parts[1] = parts[1].substring(0, decimalCount);\r\n } else {\r\n parts[1] = (new Array(decimalCount)).fill(\"0\").toString();\r\n }\r\n\r\n return numericSign + parts.join(decimal);\r\n } else{\r\n return numericSign + parts[0];\r\n }\r\n}\r\n\r\nconst isValidDate = (d:any) => {\r\n return d instanceof Date;\r\n}\r\n\r\nconst getUrlParameters = (search) => {\r\n var sPageURL = search.substring(1);\r\n var sURLVariables = sPageURL.split('&');\r\n var params = [];\r\n\r\n for (var i = 0; i < sURLVariables.length; i++) {\r\n var sParameterName = sURLVariables[i].split('=');\r\n \r\n if(sParameterName[0]) {\r\n params[sParameterName[0]] = decodeURI(sParameterName[1]);\r\n }\r\n }\r\n\r\n return params;\r\n};\r\n\r\n return {\r\n axios,\r\n handleSignOut,\r\n dataURLtoFile,\r\n formatNumber,\r\n isValidDate,\r\n getUrlParameters\r\n }\r\n}\r\n\r\nexport default useUtils;","import React from \"react\";\r\nimport styled from \"styled-components/macro\";\r\n\r\nimport { CircularProgress } from \"@material-ui/core\";\r\n\r\nconst Root = styled.div`\r\n justify-content: center;\r\n align-items: center;\r\n display: flex;\r\n min-height: 100%;\r\n`;\r\n\r\nfunction Loader() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Loader;\r\n","import * as types from \"../constants\";\r\nimport {AnalyticsType } from '../types/analytics';\r\nimport moment from 'moment';\r\n\r\nconst initialState = {\r\n globalScore: 0,\r\n categories: [],\r\n dateRange: [\r\n moment().day(1), moment().day(6).add(1, 'd')\r\n ]\r\n}\r\n\r\nconst reducer = (\r\n state: AnalyticsType, \r\n action: any//AnalyticsType & { type: string }\r\n ):AnalyticsType => {\r\n switch (action.type) {\r\n case types.SET_GLOBAL_KPIS:\r\n return {\r\n ...state,\r\n globalScore: action.global_kpi,\r\n categories: action.categories\r\n };\r\n\r\n case types.SET_DATE_RANGE:\r\n return {\r\n ...state,\r\n dateRange: action.dateRange,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport {\r\n initialState,\r\n reducer\r\n}","import React, { ReactNode } from \"react\";\r\nimport {AnalyticsContextType} from '../types/analytics';\r\nimport { reducer, initialState } from '../reducers/analyticsReducer';\r\n\r\nconst AnalyticsContext = React.createContext({\r\n state: initialState,\r\n dispatch: null\r\n});\r\n\r\nconst AnalyticsContextProvider = (props: {children: ReactNode}) => {\r\n const analytics = useAnalytics();\r\n const {children} = props;\r\n\r\n return ({children});\r\n} \r\n\r\nconst useAnalytics = () : AnalyticsContextType => {\r\n const [state, dispatch] = React.useReducer(reducer, initialState);\r\n\r\n return {\r\n state,\r\n dispatch\r\n }\r\n}\r\n\r\nconst AnalyticsContextConsumer = AnalyticsContext.Consumer;\r\n\r\nexport { \r\n AnalyticsContext, \r\n AnalyticsContextProvider, \r\n AnalyticsContextConsumer,\r\n};","import {axios} from \"../utils\";\r\n\r\nimport { ResetPasswordType, SignInType } from \"../types/auth\";\r\n\r\nexport function signIn(credentials: SignInType) {\r\n return new Promise((resolve, reject) => {\r\n axios({\r\n url: \"auth/local\",\r\n data: JSON.stringify(credentials)\r\n }).then((response) => {\r\n if (response.status === 200) {\r\n resolve(response.data);\r\n }\r\n reject(response.data);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n}\r\n\r\nexport function signOut() {\r\n localStorage.removeItem('user');\r\n localStorage.removeItem('token');\r\n}\r\n\r\nexport function fetchUser(accessToken) {\r\n return new Promise((resolve, reject) => {\r\n axios({\r\n url: '/users/me',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${accessToken}`\r\n },\r\n method: 'GET'\r\n }).then((response) => {\r\n if (response.status === 200) {\r\n resolve(response.data);\r\n }\r\n reject(response.data);\r\n })\r\n .catch((error) => {\r\n reject(error);\r\n });\r\n });\r\n}\r\n\r\n// export function resetPassword(credentials: ResetPasswordType) {\r\n// return new Promise((resolve, reject) => {\r\n// axios\r\n// .post(\"/api/auth/reset-password\", credentials)\r\n// .then((response) => {\r\n// if (response.status === 200) {\r\n// resolve(response.data);\r\n// }\r\n// reject(response.data);\r\n// })\r\n// .catch((error) => {\r\n// reject(error);\r\n// });\r\n// });\r\n// }","import * as types from '../constants';\r\n\r\nexport const authSignInSuccess = (data: any) => {\r\n return ({\r\n type: types.AUTH_SIGN_IN_SUCCESS,\r\n ...data\r\n });\r\n};\r\n\r\nexport const authSignOut = () => {\r\n return ({\r\n type: types.AUTH_SIGN_OUT\r\n });\r\n}","import React from \"react\";\r\nimport styled from \"styled-components/macro\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nimport { Button as MuiButton, Typography } from \"@material-ui/core\";\r\nimport { spacing } from \"@material-ui/system\";\r\n\r\nimport { MuiButtonSpacingType } from \"../../types/styles\";\r\n\r\nconst Button = styled(MuiButton)(spacing);\r\n\r\nconst Wrapper = styled.div`\r\n padding: ${(props) => props.theme.spacing(6)}px;\r\n text-align: center;\r\n background: transparent;\r\n\r\n ${(props) => props.theme.breakpoints.up(\"md\")} {\r\n padding: ${(props) => props.theme.spacing(10)}px;\r\n }\r\n`;\r\n\r\nfunction Page404() {\r\n return (\r\n \r\n \r\n \r\n 404\r\n \r\n \r\n Page not found.\r\n \r\n \r\n The page you are looking for might have been removed.\r\n \r\n\r\n \r\n Return to website\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Page404;\r\n","// Theme\r\nexport const THEME_SET = \"THEME_SET\";\r\nexport const THEMES = {\r\n DEFAULT: \"DEFAULT\",\r\n DARK: \"DARK\",\r\n LIGHT: \"LIGHT\",\r\n BLUE: \"BLUE\",\r\n GREEN: \"GREEN\",\r\n INDIGO: \"INDIGO\",\r\n};\r\n\r\n// Auth\r\nexport const AUTH_SIGN_IN_SUCCESS = \"AUTH_SIGN_IN_SUCCESS\";\r\nexport const AUTH_SIGN_OUT = \"AUTH_SIGN_OUT\";\r\n\r\n\r\n//Analytics\r\nexport const SET_GLOBAL_KPIS = \"SET_GLOBAL_KPIS\";\r\nexport const SET_DATE_RANGE = \"SET_DATE_RANGE\";\r\n\r\n//User Updates\r\nexport const USER_UPDATE_NAME = \"USER_UPDATE_NAME\";","import merge from \"deepmerge\";\r\nimport { green, grey, indigo, red } from \"@material-ui/core/colors\";\r\nimport { THEMES } from \"../constants\";\r\n\r\nconst customBlue = {\r\n 50: \"#e9f0fb\",\r\n 100: \"#c8daf4\",\r\n 200: \"#a3c1ed\",\r\n 300: \"#7ea8e5\",\r\n 400: \"#6395e0\",\r\n 500: \"#4782da\",\r\n 600: \"#407ad6\",\r\n 700: \"#376fd0\",\r\n 800: \"#2f65cb\",\r\n 900: \"#2052c2 \",\r\n};\r\n\r\nconst defaultVariant = {\r\n name: THEMES.DEFAULT,\r\n palette: {\r\n type: \"light\",\r\n primary: {\r\n main: customBlue[700],\r\n contrastText: \"#FFF\",\r\n },\r\n secondary: {\r\n main: '#E91E63',\r\n contrastText: \"#FFF\",\r\n },\r\n background: {\r\n default: \"#F7F9FC\",\r\n paper: \"#FFF\",\r\n },\r\n },\r\n header: {\r\n color: grey[500],\r\n background: \"#FFF\",\r\n search: {\r\n color: grey[800],\r\n },\r\n indicator: {\r\n background: customBlue[600],\r\n },\r\n },\r\n footer: {\r\n color: grey[500],\r\n background: \"#FFF\",\r\n },\r\n sidebar: {\r\n color: grey[200],\r\n background: \"#233044\",\r\n header: {\r\n color: grey[200],\r\n background: \"#233044\",\r\n brand: {\r\n color: customBlue[500],\r\n },\r\n },\r\n footer: {\r\n color: grey[200],\r\n background: \"#1E2A38\",\r\n online: {\r\n background: green[500],\r\n },\r\n },\r\n badge: {\r\n color: \"#FFF\",\r\n background: customBlue[500],\r\n },\r\n },\r\n};\r\n\r\nconst darkVariant = merge(defaultVariant, {\r\n name: THEMES.DARK,\r\n palette: {\r\n type: \"dark\",\r\n primary: {\r\n main: customBlue[600],\r\n contrastText: \"#FFF\",\r\n },\r\n background: {\r\n default: \"#1B2635\",\r\n paper: \"#233044\",\r\n },\r\n text: {\r\n primary: \"rgba(255, 255, 255, 0.95)\",\r\n secondary: \"rgba(255, 255, 255, 0.5)\",\r\n },\r\n },\r\n header: {\r\n color: grey[300],\r\n background: \"#1B2635\",\r\n search: {\r\n color: grey[200],\r\n },\r\n },\r\n footer: {\r\n color: grey[300],\r\n background: \"#233044\",\r\n },\r\n});\r\n\r\nconst lightVariant = merge(defaultVariant, {\r\n name: THEMES.LIGHT,\r\n palette: {\r\n type: \"light\",\r\n },\r\n header: {\r\n color: grey[200],\r\n background: customBlue[800],\r\n search: {\r\n color: grey[100],\r\n },\r\n indicator: {\r\n background: red[700],\r\n },\r\n },\r\n sidebar: {\r\n color: grey[900],\r\n background: \"#FFF\",\r\n header: {\r\n color: \"#FFF\",\r\n background: customBlue[800],\r\n brand: {\r\n color: \"#FFFFFF\",\r\n },\r\n },\r\n footer: {\r\n color: grey[800],\r\n background: \"#F7F7F7\",\r\n online: {\r\n background: green[500],\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst blueVariant = merge(defaultVariant, {\r\n name: THEMES.BLUE,\r\n palette: {\r\n type: \"light\",\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: customBlue[700],\r\n header: {\r\n color: \"#FFF\",\r\n background: customBlue[800],\r\n brand: {\r\n color: \"#FFFFFF\",\r\n },\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: customBlue[800],\r\n online: {\r\n background: \"#FFF\",\r\n },\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\",\r\n },\r\n },\r\n});\r\n\r\nconst greenVariant = merge(defaultVariant, {\r\n name: THEMES.GREEN,\r\n palette: {\r\n primary: {\r\n main: green[800],\r\n contrastText: \"#FFF\",\r\n },\r\n secondary: {\r\n main: green[500],\r\n contrastText: \"#FFF\",\r\n },\r\n },\r\n header: {\r\n indicator: {\r\n background: green[600],\r\n },\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: green[700],\r\n header: {\r\n color: \"#FFF\",\r\n background: green[800],\r\n brand: {\r\n color: \"#FFFFFF\",\r\n },\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: green[800],\r\n online: {\r\n background: \"#FFF\",\r\n },\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\",\r\n },\r\n },\r\n});\r\n\r\nconst indigoVariant = merge(defaultVariant, {\r\n name: THEMES.INDIGO,\r\n palette: {\r\n primary: {\r\n main: indigo[600],\r\n contrastText: \"#FFF\",\r\n },\r\n secondary: {\r\n main: indigo[400],\r\n contrastText: \"#FFF\",\r\n },\r\n },\r\n header: {\r\n indicator: {\r\n background: indigo[600],\r\n },\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: indigo[700],\r\n header: {\r\n color: \"#FFF\",\r\n background: indigo[800],\r\n brand: {\r\n color: \"#FFFFFF\",\r\n },\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: indigo[800],\r\n online: {\r\n background: \"#FFF\",\r\n },\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\",\r\n },\r\n },\r\n});\r\n\r\nconst variants: Array = [\r\n defaultVariant,\r\n darkVariant,\r\n lightVariant,\r\n blueVariant,\r\n greenVariant,\r\n indigoVariant,\r\n];\r\n\r\nexport default variants;\r\n\r\nexport type VariantType = {\r\n name: string;\r\n palette: {\r\n primary: MainContrastTextType;\r\n secondary: MainContrastTextType;\r\n };\r\n header: ColorBgType & {\r\n search: {\r\n color: string;\r\n };\r\n indicator: {\r\n background: string;\r\n };\r\n };\r\n footer: ColorBgType;\r\n sidebar: ColorBgType & {\r\n header: ColorBgType & {\r\n brand: {\r\n color: string;\r\n };\r\n };\r\n footer: ColorBgType & {\r\n online: {\r\n background: string;\r\n };\r\n };\r\n badge: ColorBgType;\r\n };\r\n};\r\n\r\ntype MainContrastTextType = {\r\n main: string;\r\n contrastText: string;\r\n};\r\ntype ColorBgType = {\r\n color: string;\r\n background: string;\r\n};\r\n","import { TypographyOptions } from \"@material-ui/core/styles/createTypography\";\r\n\r\nconst typography: TypographyOptions = {\r\n fontFamily: [\r\n \"Inter\",\r\n \"-apple-system\",\r\n \"BlinkMacSystemFont\",\r\n '\"Segoe UI\"',\r\n \"Roboto\",\r\n '\"Helvetica Neue\"',\r\n \"Arial\",\r\n \"sans-serif\",\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"',\r\n ].join(\",\"),\r\n fontSize: 13,\r\n fontWeightLight: 300,\r\n fontWeightRegular: 400,\r\n fontWeightMedium: 500,\r\n fontWeightBold: 600,\r\n h1: {\r\n fontSize: \"2rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.25,\r\n },\r\n h2: {\r\n fontSize: \"1.75rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.25,\r\n },\r\n h3: {\r\n fontSize: \"1.5rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.25,\r\n },\r\n h4: {\r\n fontSize: \"1.125rem\",\r\n fontWeight: 500,\r\n lineHeight: 1.25,\r\n },\r\n h5: {\r\n fontSize: \"1.0625rem\",\r\n fontWeight: 500,\r\n lineHeight: 1.25,\r\n },\r\n h6: {\r\n fontSize: \"1rem\",\r\n fontWeight: 500,\r\n lineHeight: 1.25,\r\n },\r\n body1: {\r\n fontSize: 13,\r\n },\r\n button: {\r\n textTransform: \"none\",\r\n },\r\n};\r\n\r\nexport default typography;\r\n","const overrides = {\r\n MuiCardHeader: {\r\n action: {\r\n marginTop: \"-4px\",\r\n marginRight: \"-4px\",\r\n },\r\n },\r\n MuiPickersDay: {\r\n day: {\r\n fontWeight: \"300\",\r\n },\r\n },\r\n MuiPickersYear: {\r\n root: {\r\n height: \"64px\",\r\n },\r\n },\r\n MuiPickersCalendar: {\r\n transitionContainer: {\r\n marginTop: \"6px\",\r\n },\r\n },\r\n MuiPickersCalendarHeader: {\r\n iconButton: {\r\n backgroundColor: \"transparent\",\r\n \"& > *\": {\r\n backgroundColor: \"transparent\",\r\n },\r\n },\r\n switchHeader: {\r\n marginTop: \"2px\",\r\n marginBottom: \"4px\",\r\n },\r\n },\r\n MuiPickersClock: {\r\n container: {\r\n margin: `32px 0 4px`,\r\n },\r\n },\r\n MuiPickersClockNumber: {\r\n clockNumber: {\r\n left: `calc(50% - 16px)`,\r\n width: \"32px\",\r\n height: \"32px\",\r\n },\r\n },\r\n MuiPickerDTHeader: {\r\n dateHeader: {\r\n \"& h4\": {\r\n fontSize: \"2.125rem\",\r\n fontWeight: 400,\r\n },\r\n },\r\n timeHeader: {\r\n \"& h3\": {\r\n fontSize: \"3rem\",\r\n fontWeight: 400,\r\n },\r\n },\r\n },\r\n MuiPickersTimePicker: {\r\n hourMinuteLabel: {\r\n \"& h2\": {\r\n fontSize: \"3.75rem\",\r\n fontWeight: 300,\r\n },\r\n },\r\n },\r\n MuiPickersToolbar: {\r\n toolbar: {\r\n \"& h4\": {\r\n fontSize: \"2.125rem\",\r\n fontWeight: 400,\r\n },\r\n },\r\n },\r\n MuiChip: {\r\n root: {\r\n borderRadius: \"6px\",\r\n },\r\n },\r\n\r\n MuiFormControl: {\r\n root: {\r\n width: '100%'\r\n },\r\n marginNormal: {\r\n marginTop: '5px',\r\n marginBottom: '15px'\r\n }\r\n },\r\n\r\n MuiInputLabel: {\r\n root: {\r\n '&$outlined$shrink': {\r\n transform: 'translate(14px, -5px) scale(0.75)'\r\n }\r\n },\r\n\r\n outlined: {\r\n transform: 'translate(10px, 14px) scale(1)'\r\n }\r\n },\r\n\r\n MuiFormControlLabel: {\r\n root: {\r\n marginLeft: '0px',\r\n marginRight: '0px'\r\n }\r\n },\r\n\r\n MuiCheckbox: {\r\n root: {\r\n paddingLeft: '0px',\r\n paddingTop: '0px'\r\n },\r\n },\r\n\r\n MuiOutlinedInput: {\r\n root : {\r\n height: '40px',\r\n background: '#fff',\r\n\r\n '& $notchedOutline': {\r\n borderRadius: '2px'\r\n },\r\n\r\n '&$multiline': {\r\n height: 'auto'\r\n }\r\n },\r\n\r\n input: {\r\n padding: '12px'\r\n }\r\n },\r\n};\r\n\r\nexport default overrides;\r\n","const breakpoints = {\r\n values: {\r\n xs: 0,\r\n sm: 600,\r\n md: 960,\r\n lg: 1280,\r\n xl: 1440,\r\n },\r\n};\r\n\r\nexport default breakpoints;\r\n","import { ComponentsProps } from \"@material-ui/core/styles/props\";\r\n\r\nconst props: ComponentsProps = {\r\n MuiCardHeader: {\r\n titleTypographyProps: { variant: \"h6\" },\r\n },\r\n};\r\n\r\nexport default props;\r\n","import { createMuiTheme } from \"@material-ui/core/styles\";\r\nimport variants from \"./variants\";\r\nimport typography from \"./typography\";\r\nimport overrides from \"./overrides\";\r\nimport breakpoints from \"./breakpoints\";\r\nimport props from \"./props\";\r\n\r\nconst createTheme = (name: string) => {\r\n let themeConfig = variants.find((variant) => variant.name === name);\r\n\r\n if (!themeConfig) {\r\n console.warn(new Error(`The theme ${name} is not valid`));\r\n themeConfig = variants[0];\r\n }\r\n\r\n return createMuiTheme(\r\n {\r\n spacing: 4,\r\n breakpoints: breakpoints,\r\n overrides: overrides,\r\n props: props,\r\n typography: typography,\r\n palette: themeConfig.palette,\r\n },\r\n {\r\n name: themeConfig.name,\r\n header: themeConfig.header,\r\n footer: themeConfig.footer,\r\n sidebar: themeConfig.sidebar,\r\n }\r\n );\r\n};\r\n\r\nexport default createTheme;\r\n","import * as React from \"react\";\r\n\r\nimport Loader from \"./Loader\";\r\n\r\nconst sleep = (m: number) => new Promise((r) => setTimeout(r, m));\r\n\r\ntype componentType = React.ComponentClass | null;\r\n\r\ninterface IAsyncState {\r\n component: componentType;\r\n}\r\n\r\nexport default function asyncComponent(importComponent: any) {\r\n class AsyncComponent extends React.Component {\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n component: null,\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n await sleep(process.env.NODE_ENV === \"development\" ? 150 : 0);\r\n\r\n const { default: component } = await importComponent();\r\n\r\n this.setState({\r\n component: component,\r\n });\r\n }\r\n\r\n render() {\r\n const C: componentType = this.state.component;\r\n\r\n return C ? : ;\r\n }\r\n }\r\n\r\n return AsyncComponent;\r\n}\r\n","import React from \"react\";\r\n\r\nimport async from \"../components/Async\";\r\n\r\nimport {\r\n Calendar as CalendarIcon,\r\n Monitor,\r\n Sliders,\r\n Users,\r\n} from \"react-feather\";\r\n\r\n// Guards\r\nconst AuthGuard = async(() => import(\"../components/AuthGuard\"));\r\n\r\n// Auth components\r\nconst SignIn = async(() => import(\"../pages/auth/SignIn\"));\r\n// const SignUp = async(() => import(\"../pages/auth/SignUp\"));\r\nconst ResetPassword = async(() => import(\"../pages/auth/ResetPassword\"));\r\nconst Page404 = async(() => import(\"../pages/auth/Page404\"));\r\nconst Page500 = async(() => import(\"../pages/auth/Page500\"));\r\n\r\n// Components components\r\n// const Alerts = async(() => import(\"../pages/components/Alerts\"));\r\n// const Avatars = async(() => import(\"../pages/components/Avatars\"));\r\n// const Badges = async(() => import(\"../pages/components/Badges\"));\r\n// const Buttons = async(() => import(\"../pages/components/Buttons\"));\r\n// const Cards = async(() => import(\"../pages/components/Cards\"));\r\n// const Chips = async(() => import(\"../pages/components/Chips\"));\r\n// const Dialogs = async(() => import(\"../pages/components/Dialogs\"));\r\n// const ExpPanels = async(() => import(\"../pages/components/ExpansionPanels\"));\r\n// const Lists = async(() => import(\"../pages/components/Lists\"));\r\n// const Menus = async(() => import(\"../pages/components/Menus\"));\r\n// const Pagination = async(() => import(\"../pages/components/Pagination\"));\r\n// const Progress = async(() => import(\"../pages/components/Progress\"));\r\n// const Snackbars = async(() => import(\"../pages/components/Snackbars\"));\r\n// const Tooltips = async(() => import(\"../pages/components/Tooltips\"));\r\n\r\n// // Dashboards components\r\nconst Dashboard = async(() => import(\"../pages/dashboards\"));\r\n// const Analytics = async(() => import(\"../pages/dashboards/Analytics\"));\r\n// const SaaS = async(() => import(\"../pages/dashboards/SaaS\"));\r\n\r\n//audit routes\r\nconst AuditMenu = async(() => import(\"../pages/dashboards/Audit\"));\r\nconst AuditForm = async(() => import(\"../pages/dashboards/Audit/form\"));\r\nconst AuditList = async(() => import(\"../pages/dashboards/Audit/list\"));\r\nconst AuditDetail = async(() => import(\"../pages/dashboards/Audit/detail\"));\r\nconst AuditMultimedia = async(() => import(\"../pages/dashboards/Audit/Multimedia/index\"));\r\nconst AuditPdfDetail = async(() => import(\"../pages/dashboards/Audit/DetailPdf\"));\r\n\r\n//audit analytics\r\nconst Analytics = async(() => import(\"../pages/dashboards/Audit/analytics\"));\r\nconst Category = async(() => import(\"../pages/dashboards/Audit/analytics/Category\"));\r\nconst AuditsPerZone = async(() => import(\"../pages/dashboards/Audit/analytics/AuditsPerZone\"));\r\nconst AuditsPerContractor = async(() => import(\"../pages/dashboards/Audit/analytics/AuditsPerContractor\"));\r\nconst ContractorsAdvanced = async(() => import(\"../pages/dashboards/Audit/analytics/ContractorsAdvanced\"));\r\nconst ContinouosImprovement = async(() => import(\"../pages/dashboards/Audit/analytics/ContinouosImprovement\"));\r\n\r\n//audit/Observations/SSPA\r\nconst ObservationMenu = async(() => import(\"../pages/dashboards/Audit/Observations\"));\r\nconst ObservationForm = async(() => import(\"../pages/dashboards/Audit/Observations/Form\"));\r\nconst ObservationList = async(() => import(\"../pages/dashboards/Audit/Observations/List\"));\r\nconst ObservationDetail = async(() => import(\"../pages/dashboards/Audit/Observations/Detail\"));\r\nconst ObservationPDF = async(() => import(\"../pages/dashboards/Audit/Observations/PDF\"))\r\n\r\nconst FlightsLog = async(() => import(\"../pages/dashboards/FlightsLog/index\"));\r\nconst FlightsForm = async(() => import(\"../pages/dashboards/FlightsLog/Form\"));\r\nconst FlightsList = async(() => import(\"../pages/dashboards/FlightsLog/List\"));\r\nconst FlightsAnal = async(() => import(\"../pages/dashboards/FlightsLog/Analytics\"));\r\nconst FlightsMultimedia = async(() => import(\"../pages/dashboards/FlightsLog/Multimedia\"));\r\nconst ZoneFiles = async(() => import(\"../pages/dashboards/FlightsLog/Multimedia/ZoneFiles\"));\r\nconst Calendar = async(() => import(\"../pages/dashboards/Calendar\"));\r\nconst Profile = async(() => import(\"../pages/dashboards/Profile/Profile\"));\r\nconst FlightsCalendar = async(() => import(\"../pages/dashboards/FlightsCalendar\"));\r\nconst FlightDetail = async(() => import(\"../pages/dashboards/FlightsLog/Detail\"));\r\n\r\nconst Ticket = async(() => import(\"../pages/dashboards/Ticket\"));\r\n\r\nconst CommentsMenu = async(() => import(\"../pages/dashboards/Comments\"));\r\nconst CommentsForm = async(() => import(\"../pages/dashboards/Comments/form\"));\r\nconst CommentsList = async(() => import(\"../pages/dashboards/Comments/list\"));\r\nconst CommentsDetail = async(() => import(\"../pages/dashboards/Comments/detail\"));\r\n\r\nconst DailyReportMenu = async(() => import(\"../pages/dashboards/DailyReport\"));\r\nconst DailyReportForm = async(() => import(\"../pages/dashboards/DailyReport/Form\"));\r\nconst DailyReportList = async(() => import(\"../pages/dashboards/DailyReport/List\"));\r\nconst DailyReportDetail = async(() => import(\"../pages/dashboards/DailyReport/Detail\"));\r\nconst ModifyActivities = async(() => import(\"../pages/dashboards/DailyReport/ModifyActivity\"));\r\nconst DailyReportAnalytics = async(() => import(\"../pages/dashboards/DailyReport/Analytics\"));\r\n\r\nconst SSPAMenu = async(() => import(\"../pages/dashboards/SSPA\"));\r\nconst SSPAForm = async(() => import(\"../pages/dashboards/SSPA/Form\"));\r\nconst SSPAList = async(() => import(\"../pages/dashboards/SSPA/List\"));\r\nconst SSPADetail = async(() => import(\"../pages/dashboards/SSPA/Detail\"));\r\nconst SSPAAnalytics = async(() => import(\"../pages/dashboards/SSPA/analytics\"));\r\nconst SSPAAnalyticsAggregate = async(() => import(\"../pages/dashboards/SSPA/analytics/Aggregate\"));\r\n\r\nconst DocsManagement = async(() => import(\"../pages/dashboards/DocsManagement\"));\r\n\r\n// // Forms components\r\n// const Pickers = async(() => import(\"../pages/forms/Pickers\"));\r\n// const SelectionCtrls = async(() => import(\"../pages/forms/SelectionControls\"));\r\n// const Selects = async(() => import(\"../pages/forms/Selects\"));\r\n// const TextFields = async(() => import(\"../pages/forms/TextFields\"));\r\n// const Dropzone = async(() => import(\"../pages/forms/Dropzone\"));\r\n// const Editors = async(() => import(\"../pages/forms/Editors\"));\r\n// const Formik = async(() => import(\"../pages/forms/Formik\"));\r\n\r\n// // Icons components\r\n// const MaterialIcons = async(() => import(\"../pages/icons/MaterialIcons\"));\r\n// const FeatherIcons = async(() => import(\"../pages/icons/FeatherIcons\"));\r\n\r\n// // Pages components\r\n// const Blank = async(() => import(\"../pages/pages/Blank\"));\r\n// const InvoiceDetails = async(() => import(\"../pages/pages/InvoiceDetails\"));\r\n// const InvoiceList = async(() => import(\"../pages/pages/InvoiceList\"));\r\n// const Orders = async(() => import(\"../pages/pages/Orders\"));\r\n// const Pricing = async(() => import(\"../pages/pages/Pricing\"));\r\n// const Profile = async(() => import(\"../pages/pages/Profile\"));\r\n// const Settings = async(() => import(\"../pages/pages/Settings\"));\r\n// const Tasks = async(() => import(\"../pages/pages/Tasks\"));\r\n// const Projects = async(() => import(\"../pages/pages/Projects\"));\r\n// const Calendar = async(() => import(\"../pages/pages/Calendar\"));\r\n// const Chat = async(() => import(\"../pages/pages/Chat\"));\r\n\r\n// // Tables components\r\n// const SimpleTable = async(() => import(\"../pages/tables/SimpleTable\"));\r\n// const AdvancedTable = async(() => import(\"../pages/tables/AdvancedTable\"));\r\n// const DataGrid = async(() => import(\"../pages/tables/DataGrid\"));\r\n\r\n// // Chart components\r\n// const Chartjs = async(() => import(\"../pages/charts/Chartjs\"));\r\n\r\n// // Maps components\r\n// const GoogleMaps = async(() => import(\"../pages/maps/GoogleMaps\"));\r\n// const VectorMaps = async(() => import(\"../pages/maps/VectorMaps\"));\r\n\r\n// // Documentation\r\n// const Welcome = async(() => import(\"../pages/docs/Welcome\"));\r\n// const GettingStarted = async(() => import(\"../pages/docs/GettingStarted\"));\r\n// const EnvironmentVariables = async(\r\n// () => import(\"../pages/docs/EnvironmentVariables\")\r\n// );\r\n// const Deployment = async(() => import(\"../pages/docs/Deployment\"));\r\n// const Theming = async(() => import(\"../pages/docs/Theming\"));\r\n// const StateManagement = async(() => import(\"../pages/docs/StateManagement\"));\r\n// const APICalls = async(() => import(\"../pages/docs/APICalls\"));\r\n// const ESLintAndPrettier = async(\r\n// () => import(\"../pages/docs/ESLintAndPrettier\")\r\n// );\r\n// const Support = async(() => import(\"../pages/docs/Support\"));\r\n// const Changelog = async(() => import(\"../pages/docs/Changelog\"));\r\n\r\n// // Landing\r\n// const Landing = async(() => import(\"../pages/presentation/Landing\"));\r\n\r\n// // Protected routes\r\n// const ProtectedPage = async(() => import(\"../pages/protected/ProtectedPage\"));\r\nconst dashboardsRoutesCover = {\r\n id: \"Dashboard\",\r\n path: \"/dashboard\",\r\n header: \"Pages\",\r\n icon: ,\r\n containsHome: true,\r\n children: [\r\n {\r\n path: \"/dashboard/auditorias/detalle/pdf/:id\",\r\n name: \"Auditoria\",\r\n component: AuditPdfDetail,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/observaciones/pdf/:id\",\r\n name: \"Observaciones\",\r\n component: ObservationPDF,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora\",\r\n name: \"Bitácora de vuelos\",\r\n component: FlightsLog,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora/formulario\",\r\n name: \"Crear bitácora\",\r\n component: FlightsForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora/formulario/:id\",\r\n name: \"Editar bitácora\",\r\n component: FlightsForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora/listado\",\r\n name: \"Listado de vuelos\",\r\n component: FlightsList,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora/detalle/:id\",\r\n name: \"Detalle de bitácora\",\r\n component: FlightDetail,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora/analitica\",\r\n name: \"Analitica de vuelos\",\r\n component: FlightsAnal,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora/multimedia\",\r\n name: \"Multimedia de vuelos\",\r\n component: FlightsMultimedia,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-bitacora/multimedia/:id\",\r\n name: \"Multimedia por zona\",\r\n component: ZoneFiles,\r\n guard: AuthGuard\r\n },\r\n ],\r\n component: Dashboard,\r\n guard: AuthGuard\r\n};\r\n\r\nconst dashboardsRoutes = {\r\n id: \"Dashboard\",\r\n path: \"/dashboard\",\r\n header: \"Pages\",\r\n icon: ,\r\n containsHome: true,\r\n children: [\r\n {\r\n path: \"/dashboard/auditorias/menu\",\r\n name: \"Auditoria\",\r\n component: AuditMenu,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/formulario\",\r\n name: \"Auditoria\",\r\n component: AuditForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/formulario/:id\",\r\n name: \"Auditoria\",\r\n component: AuditForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/listado\",\r\n name: \"Auditoria\",\r\n component: AuditList,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/multimedia\",\r\n name: \"Auditoria\",\r\n component: AuditMultimedia,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/detalle/:id\",\r\n name: \"Auditoria\",\r\n component: AuditDetail,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/observaciones\",\r\n name: \"Observaciones\",\r\n component: ObservationMenu,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/observaciones/formulario\",\r\n name: \"Observaciones\",\r\n component: ObservationForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/observaciones/formulario/:id\",\r\n name: \"Observaciones\",\r\n component: ObservationForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/observaciones/listado\",\r\n name: \"Observaciones\",\r\n component: ObservationList,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/observaciones/detalle/:id\",\r\n name: \"Observaciones\",\r\n component: ObservationDetail,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/vuelos-calendario\",\r\n name: \"Calendario de vuelos\",\r\n component: FlightsCalendar,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/calendario\",\r\n name: \"Calendario\",\r\n component: Calendar,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/perfil\",\r\n name: \"Perfil\",\r\n component: Profile,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/ticket\",\r\n name: \"Reporte de situación\",\r\n component: Ticket,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/analitica\",\r\n name: \"Analítica\",\r\n component: Analytics,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/analitica/categoria/:category\",\r\n name: \"Analítica\",\r\n component: Category,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/analitica/frentes\",\r\n name: \"Analítica\",\r\n component: AuditsPerZone,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/analitica/contratistas\",\r\n name: \"Analítica\",\r\n component: AuditsPerContractor,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/analitica/contratistas/:id\",\r\n name: \"Analítica\",\r\n component: ContractorsAdvanced,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/auditorias/analitica/mejora-continua\",\r\n name: \"Analítica\",\r\n component: ContinouosImprovement,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/comentarios/menu\",\r\n name: \"Comentarios\",\r\n component: CommentsMenu,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/comentarios/formulario\",\r\n name: \"Comentarios\",\r\n component: CommentsForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/comentarios/listado\",\r\n name: \"Comentarios\",\r\n component: CommentsList,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/comentarios/detalle/:id\",\r\n name: \"Comentario\",\r\n component: CommentsDetail,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/reporte-diario\",\r\n name: \"Menu Reporte Diario\",\r\n component: DailyReportMenu,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/reporte-diario/formulario\",\r\n name: \"Formulario Reporte Diario\",\r\n component: DailyReportForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/reporte-diario/formulario/:id\",\r\n name: \"Formulario Reporte Diario\",\r\n component: DailyReportForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/reporte-diario/listado\",\r\n name: \"Listado Reporte Diario\",\r\n component: DailyReportList,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/reporte-diario/detalle/:id\",\r\n name: \"Detalle Reporte Diario\",\r\n component: DailyReportDetail,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/reporte-diario/modificar-actividades\",\r\n name: \"Modificar Actividades\",\r\n component: ModifyActivities,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/reporte-diario/analitica\",\r\n name: \"Analítica Reporte Diario\",\r\n component: DailyReportAnalytics,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/sspa\",\r\n name: \"Menu SSPA\",\r\n component: SSPAMenu,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/sspa/formulario\",\r\n name: \"Formulario SSPA\",\r\n component: SSPAForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/sspa/formulario/:id\",\r\n name: \"Formulario SSPA\",\r\n component: SSPAForm,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/sspa/listado\",\r\n name: \"Listado SSPA\",\r\n component: SSPAList,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/sspa/detalle/:id\",\r\n name: \"Detalle SSPA\",\r\n component: SSPADetail,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/sspa/analytics\",\r\n name: \"Analítica SSPA\",\r\n component: SSPAAnalytics,\r\n guard: AuthGuard\r\n },\r\n {\r\n path: \"/dashboard/sspa/analytics/acumulado\",\r\n name: \"Analítica SSPA\",\r\n component: SSPAAnalyticsAggregate,\r\n guard: AuthGuard\r\n },\r\n // {\r\n // path: \"/dashboard/analytics\",\r\n // name: \"Analytics\",\r\n // component: Analytics,\r\n // },\r\n // {\r\n // path: \"/dashboard/saas\",\r\n // name: \"SaaS\",\r\n // component: SaaS,\r\n // },\r\n {\r\n path: \"/dashboard/docs-management\",\r\n name: \"Analítica SSPA\",\r\n component: DocsManagement,\r\n guard: AuthGuard\r\n },\r\n ],\r\n component: Dashboard,\r\n guard: AuthGuard\r\n};\r\n\r\n// const pagesRoutes = {\r\n// id: \"Pages\",\r\n// path: \"/pages\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/pages/profile\",\r\n// name: \"Profile\",\r\n// component: Profile,\r\n// },\r\n// {\r\n// path: \"/pages/settings\",\r\n// name: \"Settings\",\r\n// component: Settings,\r\n// },\r\n// {\r\n// path: \"/pages/pricing\",\r\n// name: \"Pricing\",\r\n// component: Pricing,\r\n// },\r\n// {\r\n// path: \"/pages/chat\",\r\n// name: \"Chat\",\r\n// component: Chat,\r\n// },\r\n// {\r\n// path: \"/pages/blank\",\r\n// name: \"Blank Page\",\r\n// component: Blank,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\n// const projectsRoutes = {\r\n// id: \"Projects\",\r\n// path: \"/projects\",\r\n// icon: ,\r\n// badge: \"8\",\r\n// component: Projects,\r\n// children: null,\r\n// };\r\n\r\n// const invoiceRoutes = {\r\n// id: \"Invoices\",\r\n// path: \"/invoices\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/invoices\",\r\n// name: \"List\",\r\n// component: InvoiceList,\r\n// },\r\n// {\r\n// path: \"/invoices/detail\",\r\n// name: \"Details\",\r\n// component: InvoiceDetails,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\n// const orderRoutes = {\r\n// id: \"Orders\",\r\n// path: \"/orders\",\r\n// icon: ,\r\n// component: Orders,\r\n// children: null,\r\n// };\r\n\r\n// const tasksRoutes = {\r\n// id: \"Tasks\",\r\n// path: \"/tasks\",\r\n// icon: ,\r\n// badge: \"17\",\r\n// component: Tasks,\r\n// children: null,\r\n// };\r\n\r\n// const calendarRoutes = {\r\n// id: \"Calendar\",\r\n// path: \"/calendar\",\r\n// icon: ,\r\n// component: Calendar,\r\n// children: null,\r\n// };\r\n\r\nconst authRoutes = {\r\n id: \"Auth\",\r\n path: \"/auth\",\r\n icon: ,\r\n children: [\r\n {\r\n path: \"/auth/sign-in\",\r\n name: \"Sign In\",\r\n component: SignIn,\r\n },\r\n // {\r\n // path: \"/auth/sign-up\",\r\n // name: \"Sign Up\",\r\n // component: SignUp,\r\n // },\r\n // {\r\n // path: \"/auth/reset-password\",\r\n // name: \"Reset Password\",\r\n // component: ResetPassword,\r\n // },\r\n // {\r\n // path: \"/auth/404\",\r\n // name: \"404 Page\",\r\n // component: Page404,\r\n // },\r\n // {\r\n // path: \"/auth/500\",\r\n // name: \"500 Page\",\r\n // component: Page500,\r\n // },\r\n ],\r\n component: null,\r\n};\r\n\r\n// const componentsRoutes = {\r\n// id: \"Components\",\r\n// path: \"/components\",\r\n// header: \"Elements\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/components/alerts\",\r\n// name: \"Alerts\",\r\n// component: Alerts,\r\n// },\r\n// {\r\n// path: \"/components/avatars\",\r\n// name: \"Avatars\",\r\n// component: Avatars,\r\n// },\r\n// {\r\n// path: \"/components/badges\",\r\n// name: \"Badges\",\r\n// component: Badges,\r\n// },\r\n// {\r\n// path: \"/components/buttons\",\r\n// name: \"Buttons\",\r\n// component: Buttons,\r\n// },\r\n// {\r\n// path: \"/components/cards\",\r\n// name: \"Cards\",\r\n// component: Cards,\r\n// },\r\n// {\r\n// path: \"/components/chips\",\r\n// name: \"Chips\",\r\n// component: Chips,\r\n// },\r\n// {\r\n// path: \"/components/dialogs\",\r\n// name: \"Dialogs\",\r\n// component: Dialogs,\r\n// },\r\n// {\r\n// path: \"/components/expansion-panels\",\r\n// name: \"Expansion Panels\",\r\n// component: ExpPanels,\r\n// },\r\n// {\r\n// path: \"/components/lists\",\r\n// name: \"Lists\",\r\n// component: Lists,\r\n// },\r\n// {\r\n// path: \"/components/menus\",\r\n// name: \"Menus\",\r\n// component: Menus,\r\n// },\r\n// {\r\n// path: \"/components/pagination\",\r\n// name: \"Pagination\",\r\n// component: Pagination,\r\n// },\r\n// {\r\n// path: \"/components/progress\",\r\n// name: \"Progress\",\r\n// component: Progress,\r\n// },\r\n// {\r\n// path: \"/components/snackbars\",\r\n// name: \"Snackbars\",\r\n// component: Snackbars,\r\n// },\r\n// {\r\n// path: \"/components/tooltips\",\r\n// name: \"Tooltips\",\r\n// component: Tooltips,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\n// const formsRoutes = {\r\n// id: \"Forms\",\r\n// path: \"/forms\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/forms/pickers\",\r\n// name: \"Pickers\",\r\n// component: Pickers,\r\n// },\r\n// {\r\n// path: \"/forms/selection-controls\",\r\n// name: \"Selection Controls\",\r\n// component: SelectionCtrls,\r\n// },\r\n// {\r\n// path: \"/forms/selects\",\r\n// name: \"Selects\",\r\n// component: Selects,\r\n// },\r\n// {\r\n// path: \"/forms/text-fields\",\r\n// name: \"Text Fields\",\r\n// component: TextFields,\r\n// },\r\n// {\r\n// path: \"/forms/dropzone\",\r\n// name: \"Dropzone\",\r\n// component: Dropzone,\r\n// },\r\n// {\r\n// path: \"/forms/editors\",\r\n// name: \"Editors\",\r\n// component: Editors,\r\n// },\r\n// {\r\n// path: \"/forms/formik\",\r\n// name: \"Formik\",\r\n// component: Formik,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\n// const tablesRoutes = {\r\n// id: \"Tables\",\r\n// path: \"/tables\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/tables/simple-table\",\r\n// name: \"Simple Table\",\r\n// component: SimpleTable,\r\n// },\r\n// {\r\n// path: \"/tables/advanced-table\",\r\n// name: \"Advanced Table\",\r\n// component: AdvancedTable,\r\n// },\r\n// {\r\n// path: \"/tables/data-grid\",\r\n// name: \"Data Grid\",\r\n// component: DataGrid,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\n// const iconsRoutes = {\r\n// id: \"Icons\",\r\n// path: \"/icons\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/icons/material-icons\",\r\n// name: \"Material Icons\",\r\n// component: MaterialIcons,\r\n// },\r\n// {\r\n// path: \"/icons/feather-icons\",\r\n// name: \"Feather Icons\",\r\n// component: FeatherIcons,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\n// const chartRoutes = {\r\n// id: \"Charts\",\r\n// path: \"/charts\",\r\n// icon: ,\r\n// component: Chartjs,\r\n// children: null,\r\n// };\r\n\r\n// const mapsRoutes = {\r\n// id: \"Maps\",\r\n// path: \"/maps\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/maps/google-maps\",\r\n// name: \"Google Maps\",\r\n// component: GoogleMaps,\r\n// },\r\n// {\r\n// path: \"/maps/vector-maps\",\r\n// name: \"Vector Maps\",\r\n// component: VectorMaps,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\nconst landingRoutes = {\r\n id: \"Landing Page\",\r\n header: \"Docs\",\r\n icon: ,\r\n children: null,\r\n path: \"/\",\r\n name: \"Sign In\",\r\n component: SignIn,\r\n};\r\n\r\n// const documentationRoutes = {\r\n// id: \"Documentation\",\r\n// path: \"/documentation\",\r\n// header: \"Material App\",\r\n// icon: ,\r\n// children: [\r\n// {\r\n// path: \"/documentation/welcome\",\r\n// name: \"Welcome\",\r\n// component: Welcome,\r\n// },\r\n// {\r\n// path: \"/documentation/getting-started\",\r\n// name: \"Getting Started\",\r\n// component: GettingStarted,\r\n// },\r\n// {\r\n// path: \"/documentation/environment-variables\",\r\n// name: \"Environment Variables\",\r\n// component: EnvironmentVariables,\r\n// },\r\n// {\r\n// path: \"/documentation/deployment\",\r\n// name: \"Deployment\",\r\n// component: Deployment,\r\n// },\r\n// {\r\n// path: \"/documentation/theming\",\r\n// name: \"Theming\",\r\n// component: Theming,\r\n// },\r\n// {\r\n// path: \"/documentation/state-management\",\r\n// name: \"State Management\",\r\n// component: StateManagement,\r\n// },\r\n// {\r\n// path: \"/documentation/api-calls\",\r\n// name: \"API Calls\",\r\n// component: APICalls,\r\n// },\r\n// {\r\n// path: \"/documentation/eslint-and-prettier\",\r\n// name: \"ESLint & Prettier\",\r\n// component: ESLintAndPrettier,\r\n// },\r\n// {\r\n// path: \"/documentation/support\",\r\n// name: \"Support\",\r\n// component: Support,\r\n// },\r\n// ],\r\n// component: null,\r\n// };\r\n\r\n// const changelogRoutes = {\r\n// id: \"Changelog\",\r\n// path: \"/changelog\",\r\n// badge: \"v2.0.0\",\r\n// icon: ,\r\n// component: Changelog,\r\n// children: null,\r\n// };\r\n\r\n// // This route is only visible while signed in\r\n// const protectedPageRoutes = {\r\n// id: \"Private\",\r\n// path: \"/private\",\r\n// component: ProtectedPage,\r\n// children: null,\r\n// guard: AuthGuard,\r\n// };\r\n\r\n// Routes using the Dashboard layout\r\nexport const dashboardLayoutRoutes = [\r\n dashboardsRoutes,\r\n // pagesRoutes,\r\n // projectsRoutes,\r\n // orderRoutes,\r\n // invoiceRoutes,\r\n // tasksRoutes,\r\n // calendarRoutes,\r\n // componentsRoutes,\r\n // chartRoutes,\r\n // formsRoutes,\r\n // tablesRoutes,\r\n // iconsRoutes,\r\n // mapsRoutes,\r\n // documentationRoutes,\r\n // changelogRoutes,\r\n];\r\n\r\nexport const dashboardLayoutCoverRoutes = [\r\n dashboardsRoutesCover,\r\n];\r\n\r\n// Routes using the Auth layout\r\nexport const authLayoutRoutes = [authRoutes];\r\n\r\n// // Routes using the Presentation layout\r\nexport const presentationLayoutRoutes = [landingRoutes];\r\n\r\n// // Routes that are protected\r\n// export const protectedRoutes = [protectedPageRoutes];\r\n\r\n// // Routes visible in the sidebar\r\nexport const sidebarRoutes = [\r\n dashboardsRoutes,\r\n // pagesRoutes,\r\n // projectsRoutes,\r\n // orderRoutes,\r\n // invoiceRoutes,\r\n // tasksRoutes,\r\n // calendarRoutes,\r\n authRoutes,\r\n // componentsRoutes,\r\n // chartRoutes,\r\n // formsRoutes,\r\n // tablesRoutes,\r\n // iconsRoutes,\r\n // mapsRoutes,\r\n // documentationRoutes,\r\n // changelogRoutes,\r\n];\r\n","import { useState, useEffect, useContext } from 'react';\r\nimport { Menu, MenuItem, Button } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { ProjectContext } from \"../contexts/ProjectContext\";\r\nimport { fetchProjects } from '../services/projectService';\r\nimport { AuthContext } from \"../contexts/AuthContext\";\r\nimport ApartmentIcon from '@material-ui/icons/Apartment';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\n\r\nconst ProjectChooser = () => {\r\n const classes = useStyles();\r\n const [options, setOptions] = useState([]);\r\n const [selectedProject, setSelectedProject] = useState(null);\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const { state: authState } = useContext(AuthContext);\r\n const { state: projectState, dispatch} = useContext(ProjectContext);\r\n\r\n useEffect(()=> {\r\n if(authState.user) {\r\n fetchProjects(authState.token).then((data:any)=>{\r\n setOptions(data);\r\n let selected = data.find(item => item.id == projectState.projectID);\r\n if(selected){\r\n setSelectedProject(selected)\r\n }\r\n })\r\n }\r\n }, [authState])\r\n \r\n const onChangeProject = (project) => (event:any) => {\r\n setAnchorEl(null);\r\n setSelectedProject(project);\r\n\r\n dispatch({\r\n type: 'ID_CHANGED',\r\n payload: project\r\n })\r\n }\r\n\r\n if(!selectedProject) return null\r\n\r\n console.log('aca', anchorEl);\r\n\r\n return (\r\n <>\r\n }\r\n className={classes.button}\r\n >\r\n {selectedProject.logo? \r\n \r\n :}\r\n {selectedProject.name}\r\n \r\n \r\n {options.length > 0 && (\r\n options.map((option, index) => (\r\n \r\n {option.logo? \r\n \r\n :}\r\n {option['name']}\r\n \r\n ))\r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ProjectChooser;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n padding:'6px 10px',\r\n background: 'rgba(255, 255, 255, 0.15)',\r\n borderRadius: '8px',\r\n color: 'inherit'\r\n },\r\n rootPaper: {\r\n fontFamily: 'Open Sans',\r\n fontStyle: 'normal',\r\n padding:'6px 10px',\r\n fontSize: \"1rem\",\r\n color: 'rgba(0, 0, 0, 0.54)',\r\n height: '3rem',\r\n boxSizing: 'border-box',\r\n [theme.breakpoints.up('sm')]: {\r\n fontSize: '1.2rem',\r\n },\r\n },\r\n\r\n logo: {\r\n maxHeight: '1rem',\r\n maxWidth: '2.5rem',\r\n marginRight: \"5px\"\r\n }\r\n}));","import {axios} from \"../utils\";\r\n\r\nexport function fetchProjects(accessToken: string) {\r\n return new Promise((resolve, reject) => {\r\n axios({\r\n url: \"/projects\",\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${accessToken}`,\r\n },\r\n method: 'GET'\r\n }).then((response) => {\r\n console.log(\"response: \", response);\r\n if (response.status === 200) {\r\n resolve(response.data);\r\n }\r\n reject(response.data);\r\n }).catch((error) => {\r\n console.log(\"dashboard service daily notes error: \", error);\r\n reject(error);\r\n });\r\n });\r\n}","import * as React from \"react\";\r\nimport styled from \"styled-components/macro\";\r\nimport { Power } from \"react-feather\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport useUtils from '../utils/index2';\r\n\r\nimport {\r\n Tooltip,\r\n Menu,\r\n MenuItem,\r\n IconButton as MuiIconButton,\r\n} from \"@material-ui/core\";\r\n\r\nconst IconButton = styled(MuiIconButton)`\r\n svg {\r\n width: 22px;\r\n height: 22px;\r\n }\r\n`;\r\n\r\nfunction UserDropdown() {\r\n const [anchorMenu, setAnchorMenu] = React.useState(null);\r\n const history = useHistory();\r\n const {handleSignOut} = useUtils();\r\n\r\n const toggleMenu = (event: React.SyntheticEvent) => {\r\n setAnchorMenu(event.currentTarget);\r\n };\r\n\r\n const closeMenu = () => {\r\n setAnchorMenu(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Cerrar sesión\r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserDropdown;\r\n","import * as React from \"react\";\r\nimport styled, { withTheme } from \"styled-components/macro\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport {\r\n Grid,\r\n InputBase,\r\n AppBar as MuiAppBar,\r\n IconButton as MuiIconButton,\r\n Toolbar,\r\n Button,\r\n Box\r\n} from \"@material-ui/core\";\r\nimport {ArrowBackIos as ArrowBackIosIcon, Today as TodayIcon, Home, Person } from \"@material-ui/icons\";\r\nimport ProjectChooser from './ProjectChooser';\r\n\r\n// import NotificationsDropdown from \"./NotificationsDropdown\";\r\n// import MessagesDropdown from \"./MessagesDropdown\";\r\n// import LanguagesDropdown from \"./LanguagesDropdown\";\r\nimport UserDropdown from \"./UserDropdown\";\r\n\r\nconst AppBar = styled(MuiAppBar)`\r\n background: ${(props) => props.theme.header.background};\r\n color: ${(props) => props.theme.header.color};\r\n`;\r\n\r\nconst IconButton = styled(MuiIconButton)`\r\n svg {\r\n width: 22px;\r\n height: 22px;\r\n }\r\n`;\r\n\r\nconst Search = styled.div`\r\n background: rgba(255, 255, 255, 0.15);\r\n border-radius: 4px;\r\n position: relative;\r\n`;\r\n\r\nconst SearchIconWrapper = styled.div`\r\n width: 50px;\r\n height: 100%;\r\n position: absolute;\r\n pointer-events: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n svg {\r\n width: 22px;\r\n height: 22px;\r\n }\r\n`;\r\n\r\nconst Input = styled(InputBase)`\r\n color: inherit;\r\n width: 100%;\r\n\r\n > input {\r\n color: #fff;\r\n padding-top: ${(props) => props.theme.spacing(2.5)}px;\r\n padding-right: ${(props) => props.theme.spacing(2.5)}px;\r\n padding-bottom: ${(props) => props.theme.spacing(2.5)}px;\r\n padding-left: ${(props) => props.theme.spacing(12)}px;\r\n font-size: 1rem;\r\n height: 1.8rem;\r\n }\r\n`;\r\n\r\nconst CalendarButton = styled(TodayIcon)`\r\n color: #fff;\r\n`\r\nconst PersonIcon = styled(Person)`\r\n color: #fff;\r\n`\r\n\r\ntype AppBarProps = {\r\n theme: {};\r\n onDrawerToggle: React.MouseEventHandler;\r\n};\r\n\r\nconst AppBarComponent: React.FC = ({ onDrawerToggle }) => {\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {history.length > 0 && history.location.pathname != \"/dashboard\"?\r\n history.goBack()}\r\n >\r\n \r\n \r\n :null}\r\n {history.location.pathname != \"/dashboard\"?\r\n \r\n :null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n};\r\n\r\nexport default withTheme(AppBarComponent);\r\n","import * as React from \"react\";\r\nimport styled from \"styled-components/macro\";\r\n\r\nimport {\r\n Grid,\r\n Hidden,\r\n List,\r\n ListItemText as MuiListItemText,\r\n ListItem as MuiListItem,\r\n ListItemProps as MuiListItemProps,\r\n} from \"@material-ui/core\";\r\n\r\ninterface ListItemProps extends MuiListItemProps {\r\n component?: string;\r\n href?: string;\r\n button: boolean | undefined;\r\n}\r\n\r\nconst Wrapper = styled.div`\r\n padding: ${(props) => props.theme.spacing(1) / 4}px\r\n ${(props) => props.theme.spacing(4)}px;\r\n background: ${(props) => props.theme.footer.background};\r\n position: relative;\r\n`;\r\n\r\nconst ListItem = styled(MuiListItem)`\r\n display: inline-block;\r\n width: auto;\r\n padding-left: ${(props) => props.theme.spacing(2)}px;\r\n padding-right: ${(props) => props.theme.spacing(2)}px;\r\n\r\n &,\r\n &:hover,\r\n &:active {\r\n color: #ff0000;\r\n }\r\n`;\r\n\r\nconst ListItemText = styled(MuiListItemText)`\r\n span {\r\n color: ${(props) => props.theme.footer.color};\r\n }\r\n`;\r\n\r\nfunction Footer() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Footer;\r\n","import React, { useState } from \"react\";\r\nimport styled, { createGlobalStyle } from \"styled-components/macro\";\r\nimport { GlobalStyleProps } from \"../types/styles\";\r\nimport { RouteType } from \"../types/routes\";\r\nimport Header from \"../components/AppBar\";\r\nimport Footer from \"../components/Footer\";\r\n\r\nimport { spacing } from \"@material-ui/system\";\r\nimport {\r\n Hidden,\r\n CssBaseline,\r\n Paper as MuiPaper,\r\n withWidth,\r\n} from \"@material-ui/core\";\r\n\r\nimport { isWidthUp } from \"@material-ui/core/withWidth\";\r\n\r\nconst drawerWidth = 258;\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n html,\r\n body,\r\n #root {\r\n height: 100%;\r\n }\r\n\r\n body {\r\n background: ${(props) => props.theme.palette.background.default};\r\n }\r\n\r\n .MuiCardHeader-action .MuiIconButton-root {\r\n padding: 4px;\r\n width: 28px;\r\n height: 28px;\r\n }\r\n`;\r\n\r\nconst Root = styled.div`\r\n display: flex;\r\n min-height: 100vh;\r\n`;\r\n\r\nconst Drawer = styled.div`\r\n ${(props) => props.theme.breakpoints.up(\"md\")} {\r\n width: ${drawerWidth}px;\r\n flex-shrink: 0;\r\n }\r\n`;\r\n\r\nconst AppContent = styled.div`\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%\r\n`;\r\n\r\nconst Paper = styled(MuiPaper)(spacing);\r\n\r\nconst MainContent = styled(Paper)`\r\n flex: 1;\r\n background: ${(props) => props.theme.palette.background.default} !important;\r\n\r\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n flex: none;\r\n }\r\n\r\n .MuiPaper-root .MuiPaper-root {\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\ntype DashboardPropsType = {\r\n routes: Array;\r\n width: \"md\" | \"xs\" | \"sm\" | \"lg\" | \"xl\";\r\n};\r\n\r\nconst Dashboard: React.FC = ({\r\n children,\r\n routes,\r\n width,\r\n}) => {\r\n const [mobileOpen, setMobileOpen] = useState(false);\r\n\r\n const handleDrawerToggle = () => {\r\n setMobileOpen(!mobileOpen);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {children}\r\n \r\n