{"version":3,"sources":["Components/Header.js","Components/Footer.js","Components/About.js","Components/Resume.js","Components/Seminars.js","Components/Papers.js","Components/Conferences.js","Components/Teaching.js","Components/Training.js","Components/Awards.js","App.js","registerServiceWorker.js","index.js"],"names":["Header","this","props","data","name","occupation","socialRender","social","map","network","key","href","url","className","style","id","title","Component","Footer","networks","About","profilepic","image","bio","phone","email","universityemail","univeristyemail","resumeDownload","resumedownload","universitypersonalpage","universitygrouppage","src","alt","Resume","education","school","degree","graduated","thesissupervisor","thesistitle","work","company","years","description","Seminars","seminarsRender","academy","seminars","seminar","university","subject","days","Papers","papersRender","papers","paper","reference","journal","year","Conferences","conferenceRender","conferences","conference","date","country","where","contribute","Teaching","teachingRender","teaching","lecture","code","Training","console","log","trainingRender","training","course","organization","Awards","awardsRender","awards","award","link","App","state","resumeData","ReactGA","initialize","pageview","window","location","pathname","getResumeData","bind","fetch","headers","method","then","res","parsed","json","setState","catch","err","error","main","resume","isLocalhost","Boolean","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","ReactDOM","render","document","getElementById","URL","process","origin","addEventListener","response","status","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.6aa4eb01.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\n\r\nclass Header extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n var name = this.props.data.name;\r\n var occupation= this.props.data.occupation;\r\n var socialRender= this.props.data.social.map(function(network){\r\n return (\r\n
  • \r\n \r\n \r\n

    {network.name}

    \r\n
    \r\n
  • )\r\n })\r\n }\r\n\r\n return (\r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n

    {name}

    \r\n

    {occupation}

    \r\n
    \r\n
      \r\n {socialRender}\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 Header;\r\n","import React, { Component } from 'react';\r\n\r\nclass Footer extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n var networks= this.props.data.social.map(function(network){\r\n return
  • \r\n })\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Footer;\r\n","import React, { Component } from 'react';\r\n\r\nclass About extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n // console.log(\"ABOUT DATA: \", this.props.data)\r\n var profilepic= \"images/\"+this.props.data.image;\r\n var bio = this.props.data.bio;\r\n var phone= this.props.data.phone;\r\n var email = this.props.data.email;\r\n var universityemail = this.props.data.univeristyemail;\r\n var resumeDownload = this.props.data.resumedownload;\r\n var universitypersonalpage = this.props.data.universitypersonalpage;\r\n var universitygrouppage = this.props.data.universitygrouppage;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"Tim\r\n
    \r\n
    \r\n

    About Me

    \r\n\r\n

    {bio}

    \r\n
    \r\n
    \r\n

    Contact Details

    \r\n \r\n
    \r\n
    \r\n

    \r\n Download Resume\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 About;\r\n","import React, { Component } from 'react';\r\n\r\nclass Resume extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n var education = this.props.data.education.map(function(education){\r\n return (\r\n
    \r\n
    \r\n

    {education.school}

    \r\n
    \r\n {education.degree} {education.graduated}\r\n
    \r\n {education.thesistitle ?
    Thesis title: {education.thesistitle}
    : null}\r\n {education.thesissupervisor ?
    Supervisor: {education.thesissupervisor}
    : null }\r\n
    \r\n
    )\r\n })\r\n var work = this.props.data.work.map(function(work){\r\n return

    {work.company}

    \r\n

    {work.title} {work.years}

    \r\n

    {work.description}

    \r\n
    \r\n })\r\n }\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n
    \r\n

    Education

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {education}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n

    Work

    \r\n
    \r\n\r\n
    \r\n {work}\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n

    Programming

    \r\n
    \r\n\r\n
    \r\n C++, Sage (Python)\r\n\t\t\t
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Resume;\r\n","import React, { Component } from 'react';\r\n\r\nclass Seminars extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n const {academy} = this.props.data;\r\n const seminars = academy.seminars;\r\n var seminarsRender = seminars.map(function(seminar){\r\n return (

    \r\n {seminar.university}, {seminar.subject}, {seminar.days}\r\n

    )\r\n }); \r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Seminars

    \r\n
    \r\n
    \r\n {seminarsRender}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Seminars;\r\n","import React, { Component } from 'react';\r\n\r\nclass Papers extends Component {\r\n render() {\r\n if(this.props.data){\r\n // console.log(\"PAPERS DATA: \", this.props.data)\r\n const {academy} = this.props.data\r\n const papers = academy.papers;\r\n var papersRender = papers.map(function(paper){\r\n return (\r\n
    \r\n
    \r\n \r\n {paper.title}\r\n \r\n
    \r\n
    \r\n
    {paper.name}, {paper.journal}, {paper.year}\r\n \r\n click to open\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Papers

    \r\n
    \r\n
    \r\n {papersRender}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Papers;","import React, { Component } from 'react';\r\n\r\nclass Conferences extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n // console.log(\"CONFERENCE DATA: \", this.props.data)\r\n const {academy} = this.props.data\r\n const conferences = academy.conferences;\r\n var conferenceRender = conferences.map(function(conference){\r\n return (
    \r\n
    {conference.title}
    \r\n {conference.date}\r\n
    {conference.where}, {conference.country}
    \r\n
    Contribute: {conference.contribute}
    \r\n
    )\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Conferences

    \r\n
    \r\n
    \r\n {conferenceRender}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Conferences;\r\n","import React, { Component } from 'react';\r\n\r\nclass Teaching extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n var {academy} = this.props.data;\r\n var teaching = academy.teaching;\r\n var teachingRender = teaching.map(function(lecture) {\r\n return (\r\n
    \r\n
    {lecture.title}
    {lecture.code}\r\n
    )\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Teaching

    \r\n
    \r\n I have tutored the following courses during my PhD candidature at UNSW Canberra:\r\n
    \r\n
    \r\n {teachingRender}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Teaching;\r\n","import React, { Component } from 'react';\r\n\r\nclass Training extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n var {academy} = this.props.data;\r\n console.log(\"ACADEMY: \", academy);\r\n var training = academy.training;\r\n var trainingRender = training.map(function(course) {\r\n return (\r\n
    \r\n
    {course.title}
    \r\n

    {course.organization}, {course.date}

    \r\n
    )\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Training

    \r\n
    \r\n
    \r\n
    \r\n {trainingRender}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Training;\r\n","import React, { Component } from 'react';\r\n\r\nclass Awards extends Component {\r\n render() {\r\n\r\n if(this.props.data){\r\n var {academy} = this.props.data;\r\n var awards = academy.awards;\r\n var awardsRender = awards.map(function(award) {\r\n return (\r\n
    \r\n
    \r\n \r\n {award.title}\r\n \r\n
    \r\n
    \r\n {award.organization}, {award.date}\r\n
    \r\n
    \r\n )\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    Awards

    \r\n
    \r\n
    \r\n {awardsRender}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default Awards;","import React, { Component } from 'react';\r\nimport ReactGA from 'react-ga';\r\nimport './App.css';\r\nimport Header from './Components/Header';\r\nimport Footer from './Components/Footer';\r\nimport About from './Components/About';\r\nimport Resume from './Components/Resume';\r\nimport Seminars from './Components/Seminars';\r\nimport Papers from './Components/Papers';\r\nimport Conferences from './Components/Conferences';\r\nimport Teaching from './Components/Teaching';\r\nimport Training from './Components/Training';\r\nimport Awards from './Components/Awards';\r\n\r\n\r\n\r\nclass App extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n this.state = {\r\n resumeData:{}\r\n };\r\n ReactGA.initialize('UA-110570651-1');\r\n ReactGA.pageview(window.location.pathname);\r\n this.getResumeData = this.getResumeData.bind(this);\r\n }\r\n\r\n // https://storage.cloud.google.com/sitebordi.appspot.com/resumeData.json\r\n // anonymous request\r\n // https://storage.googleapis.com/sitebordi.appspot.com/resumeData.json\r\n getResumeData() {\r\n fetch('https://storage.googleapis.com/sitebordi.appspot.com/resumeData.json',\r\n {\r\n headers : { \r\n 'Content-Type': 'application/json',\r\n 'Accept': 'application/json'\r\n },\r\n method: \"GET\"\r\n })\r\n .then((res) => {\r\n console.log(\"RESPONSE: \", res);\r\n let parsed = res.json();\r\n console.log(\"RESPONSE PARSED: \", parsed);\r\n return parsed;\r\n })\r\n .then((data) => {\r\n console.log(\"RESUME DATA: \", data);\r\n this.setState({resumeData: data});\r\n }\r\n )\r\n .catch((err) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.getResumeData();\r\n }\r\n\r\n\r\n render() {\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\n\r\nexport default App;\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\r\nregisterServiceWorker();\r\n"],"sourceRoot":""}