{"version":3,"sources":["components lazy /^/.*$/ groupOptions: {} namespace object","MainApp.jsx","theme/GlobalStyles.js","theme/themes.js","App.jsx","index.jsx","constants/endpoints.js","components/FallbackSpinner.jsx","components/NavBar.jsx","components/ThemeToggler.jsx","components/Home.jsx","components/Social.jsx","AppContext.js"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","all","slice","keys","Object","module","exports","MainApp","_useState","useState","_useState2","_slicedToArray","data","setData","useEffect","fetch","endpoints","routes","method","res","json","catch","err","_jsxs","className","children","_jsx","NavBarWithRouter","Switch","Suspense","fallback","FallbackSpinner","Route","exact","path","component","Home","sections","route","SectionComponent","React","lazy","header","headerTitle","GlobalStyles","createGlobalStyle","_templateObject","_taggedTemplateLiteral","_ref","theme","background","_ref2","color","lightTheme","accentColor","chronoTheme","cardBgColor","cardForeColor","titleColor","timelineLineColor","cardBackground","cardFooterBackground","cardBorderColor","navbarTheme","linkColor","linkHoverColor","linkActiveColor","bsPrimaryVariant","bsSecondaryVariant","socialIconBgColor","darkTheme","App","window","matchMedia","darkMode","useDarkMode","value","document","body","classList","remove","add","AppContext","Provider","ThemeProvider","BrowserRouter","ReactDOM","render","StrictMode","getElementById","navbar","home","social","about","skills","education","experiences","projects","resume","styles","spinnerContainerStyle","display","justifyContent","alignItems","height","style","Spinner","animation","logoStyle","width","ExternalNavLink","styled","a","props","InternalNavLink","NavLink","_templateObject2","withRouter","_data$logo","_data$logo2","_data$logo3","_data$logo4","_data$logo5","_data$sections","useContext","ThemeContext","_useState3","_useState4","expanded","setExpanded","Navbar","fixed","expand","bg","variant","Container","logo","Brand","href","src","source","alt","Toggle","onClick","Collapse","Nav","section","index","type","target","rel","title","activeClassName","to","ThemeToggler","_Fragment","Consumer","values","marginBottom","DarkModeToggle","onChange","toggle","checked","size","defaultProps","nameStyle","fontSize","inlineChild","fontWeight","mainContainer","flexDirection","position","Fade","_objectSpread","name","Typewriter","options","loop","autoStart","strings","roles","Social","iconStyle","marginLeft","marginRight","SocialIcon","url","network","bgColor","createContext"],"mappings":"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","file":"static/js/main.c4af61d4.chunk.js","sourcesContent":["var map = {\n\t\"./About\": [\n\t\t92,\n\t\t0,\n\t\t5\n\t],\n\t\"./About.jsx\": [\n\t\t92,\n\t\t0,\n\t\t5\n\t],\n\t\"./Education\": [\n\t\t93,\n\t\t10,\n\t\t2\n\t],\n\t\"./Education.jsx\": [\n\t\t93,\n\t\t10,\n\t\t2\n\t],\n\t\"./Experience\": [\n\t\t94,\n\t\t0,\n\t\t1,\n\t\t3\n\t],\n\t\"./Experience.jsx\": [\n\t\t94,\n\t\t0,\n\t\t1,\n\t\t3\n\t],\n\t\"./FallbackSpinner\": [\n\t\t32\n\t],\n\t\"./FallbackSpinner.jsx\": [\n\t\t32\n\t],\n\t\"./Header\": [\n\t\t88,\n\t\t9\n\t],\n\t\"./Header.jsx\": [\n\t\t88,\n\t\t9\n\t],\n\t\"./Home\": [\n\t\t49\n\t],\n\t\"./Home.jsx\": [\n\t\t49\n\t],\n\t\"./NavBar\": [\n\t\t45\n\t],\n\t\"./NavBar.jsx\": [\n\t\t45\n\t],\n\t\"./Projects\": [\n\t\t97,\n\t\t0,\n\t\t4\n\t],\n\t\"./Projects.jsx\": [\n\t\t97,\n\t\t0,\n\t\t4\n\t],\n\t\"./Resume\": [\n\t\t95,\n\t\t6\n\t],\n\t\"./Resume.jsx\": [\n\t\t95,\n\t\t6\n\t],\n\t\"./Skills\": [\n\t\t96,\n\t\t0,\n\t\t7\n\t],\n\t\"./Skills.jsx\": [\n\t\t96,\n\t\t0,\n\t\t7\n\t],\n\t\"./Social\": [\n\t\t50\n\t],\n\t\"./Social.jsx\": [\n\t\t50\n\t],\n\t\"./ThemeToggler\": [\n\t\t46\n\t],\n\t\"./ThemeToggler.jsx\": [\n\t\t46\n\t],\n\t\"./projects/ProjectCard\": [\n\t\t91,\n\t\t0,\n\t\t8\n\t],\n\t\"./projects/ProjectCard.jsx\": [\n\t\t91,\n\t\t0,\n\t\t8\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 141;\nmodule.exports = webpackAsyncContext;","import React, { useState, useEffect, Suspense } from 'react';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport FallbackSpinner from './components/FallbackSpinner';\r\nimport NavBarWithRouter from './components/NavBar';\r\nimport Home from './components/Home';\r\nimport endpoints from './constants/endpoints';\r\n\r\nfunction MainApp() {\r\n\r\n /** Initializes the state 'data' */\r\n const [data, setData] = useState(null);\r\n\r\n\r\n /** Grabs data from the routes json file which is used for the navbar routes */\r\n useEffect(() => {\r\n fetch(endpoints.routes, {\r\n method: 'GET',\r\n })\r\n .then((res) => res.json())\r\n .then((res) => setData(res))\r\n .catch((err) => err);\r\n }, []);\r\n\r\n\r\n /** Returns HTML for the main components of the app */\r\n return (\r\n
\r\n \r\n
\r\n \r\n }>\r\n \r\n {data\r\n && data.sections.map((route) => {\r\n const SectionComponent = React.lazy(() => import('./components/' + route.component));\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\nexport default MainApp;\r\n","import { createGlobalStyle } from 'styled-components';\r\n\r\nconst GlobalStyles = createGlobalStyle`\r\n body {\r\n background: ${({ theme }) => theme.background};\r\n color: ${({ theme }) => theme.color};\r\n transition: all 0.50s linear; \r\n }\r\n`;\r\n\r\nexport default GlobalStyles;\r\n","export const lightTheme = {\r\n background: '#fff',\r\n color: '#121212',\r\n accentColor: '#05857c',\r\n chronoTheme: {\r\n cardBgColor: 'white',\r\n cardForeColor: 'black',\r\n titleColor: 'black',\r\n },\r\n timelineLineColor: '#ccc',\r\n cardBackground: '#fff',\r\n cardFooterBackground: '#f7f7f7',\r\n cardBorderColor: '#00000020',\r\n navbarTheme: {\r\n linkColor: '#dedede',\r\n linkHoverColor: '#fefefe',\r\n linkActiveColor: '#fefefe',\r\n },\r\n bsPrimaryVariant: 'light',\r\n bsSecondaryVariant: 'dark',\r\n socialIconBgColor: '#121212',\r\n};\r\n\r\n\r\n\r\nexport const darkTheme = {\r\n background: '#121212',\r\n color: '#eee',\r\n accentColor: '#47c9ba',\r\n chronoTheme: {\r\n cardBgColor: '#1B1B1B',\r\n cardForeColor: '#eee',\r\n titleColor: 'white',\r\n },\r\n timelineLineColor: '#444',\r\n cardBackground: '#060606',\r\n cardFooterBackground: '#181818',\r\n cardBorderColor: '#ffffff20',\r\n navbarTheme: {\r\n linkColor: '#dedede',\r\n linkHoverColor: '#fefefe',\r\n linkActiveColor: '#fefefe',\r\n },\r\n bsPrimaryVariant: 'dark',\r\n bsSecondaryVariant: 'light',\r\n socialIconBgColor: '#fefefe',\r\n};\r\n","import React from 'react';\r\nimport './App.css';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { ThemeProvider } from 'styled-components';\r\nimport useDarkMode from 'use-dark-mode';\r\nimport AppContext from './AppContext';\r\nimport MainApp from './MainApp';\r\nimport GlobalStyles from './theme/GlobalStyles';\r\nimport { lightTheme, darkTheme } from './theme/themes';\r\n\r\nlet color = null;\r\n\r\nfunction App() {\r\n window.matchMedia = null;\r\n\r\n /** Default theme is dark mode */\r\n const darkMode = useDarkMode(true);\r\n\r\n /** Sets body's class depending on the theme in order to change the background pictures */\r\n color = darkMode.value ? 'body-dark' : 'body-light';\r\n\r\n if (color === 'body-dark') {\r\n document.body.classList.remove('body-light');\r\n } else {\r\n document.body.classList.remove('body-dark');\r\n }\r\n\r\n document.body.classList.add(color);\r\n\r\n /** Returns the basic structure of the app and provides the context for the theme */\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 App;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\n\r\n\r\n/** Renders elements in the root of the document */\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root'),\r\n);\r\n\r\n\r\n\r\n","/** Endpoints of different json files */\r\nconst endpoints = {\r\n navbar: 'profile/navbar.json',\r\n routes: 'profile/routes.json',\r\n home: 'profile/home.json',\r\n social: 'profile/social.json',\r\n about: 'profile/about.json',\r\n skills: 'profile/skills.json',\r\n education: 'profile/education.json',\r\n experiences: 'profile/experiences.json',\r\n projects: 'profile/projects.json',\r\n resume: 'profile/resume.json',\r\n};\r\n\r\nexport default endpoints;\r\n","import React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\n/** Fallback Spinner is used for when a page is loading */\r\n\r\n/** Styles for the Fallback Spinner */\r\nconst styles = {\r\n spinnerContainerStyle: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n height: '100%',\r\n },\r\n};\r\n\r\n/** Returns HTML for the Fallback Spinner with its CSS Styles */\r\nfunction FallbackSpinner() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default FallbackSpinner;\r\n","import { Navbar, Nav, Container } from 'react-bootstrap';\r\nimport React, { useEffect, useState, useContext } from 'react';\r\nimport { withRouter } from 'react-router';\r\nimport { NavLink } from 'react-router-dom';\r\nimport styled, { ThemeContext } from 'styled-components';\r\nimport endpoints from '../constants/endpoints';\r\nimport ThemeToggler from './ThemeToggler';\r\n\r\n\r\n/** CSS Styles for the Navbar */\r\nconst styles = {\r\n logoStyle: {\r\n width: 50,\r\n height: 40,\r\n },\r\n};\r\n\r\nconst ExternalNavLink = styled.a`\r\n color: ${(props) => props.theme.navbarTheme.linkColor};\r\n &:hover {\r\n color: ${(props) => props.theme.navbarTheme.linkHoverColor};\r\n }\r\n &::after {\r\n background-color: ${(props) => props.theme.accentColor};\r\n }\r\n`;\r\n\r\nconst InternalNavLink = styled(NavLink)`\r\n color: ${(props) => props.theme.navbarTheme.linkColor};\r\n &:hover {\r\n color: ${(props) => props.theme.navbarTheme.linkHoverColor};\r\n }\r\n &::after {\r\n background-color: ${(props) => props.theme.accentColor};\r\n }\r\n &.navbar__link--active {\r\n color: ${(props) => props.theme.navbarTheme.linkActiveColor};\r\n }\r\n`;\r\n\r\n\r\n\r\nconst NavBar = () => {\r\n\r\n /** Grabs theme and sets initial values for the states */\r\n const theme = useContext(ThemeContext);\r\n const [data, setData] = useState(null);\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n\r\n /** Grabs data from the json file for the Navbar when it loads */\r\n useEffect(() => {\r\n fetch(endpoints.navbar, {\r\n method: 'GET',\r\n })\r\n .then((res) => res.json())\r\n .then((res) => setData(res))\r\n .catch((err) => err);\r\n }, []);\r\n\r\n\r\n /** Returns HTML with info about the Navbar and its CSS Styles */\r\n return (\r\n \r\n \r\n {data?.logo && (\r\n \r\n \r\n \r\n )}\r\n setExpanded(!expanded)}\r\n />\r\n \r\n