{"version":3,"sources":["resources/images/profielfoto.jpg","ui/components/PageBarItem.tsx","hooks/UseScrollOffset.tsx","state/redux/actions/AbstractReduxAction.ts","state/redux/actions/OnActiveAnchorIdChanged.tsx","ui/generic/AbstractHigherOrderComponent.tsx","state/redux/ReduxState.ts","state/redux/reducers/ReducerInitial.ts","state/redux/middleware/MiddlewareClassConversion.ts","state/redux/stores/ReduxStoreDefault.ts","ui/generic/scroll_anchor/WithScrollableAnchor.tsx","ui/generic/feedback/WithSnackbar.tsx","ui/components/PageDrawer.tsx","resources/icons/EducationIcon.tsx","ui/components/PageBar.tsx","ui/components/PageContainer.tsx","ui/components/SpeechBubble.tsx","ui/components/profile/InfoItem.tsx","resources/icons/LinkedInIcon.tsx","resources/icons/MailIcon.tsx","ui/components/profile/FooterActionIcon.tsx","ui/components/profile/ProfileCard.tsx","ui/components/introduction/Introduction.tsx","ui/components/download_resume/DownloadResume.tsx","ui/components/score_cards/ScoreItem.tsx","ui/components/score_cards/ScoreCard.tsx","ui/components/score_cards/instances/PlatformScoreCard.tsx","ui/components/score_cards/instances/LanguageScoreCard.tsx","ui/components/proficiencies/ProficiencyTabs.tsx","ui/components/proficiencies/ProficiencyCard.tsx","resources/logos/LogoDiamondAgile.tsx","resources/logos/LogoHiEfficiency.tsx","resources/logos/LogoInnovum.tsx","resources/logos/LogoSilvesterConsultancy.tsx","resources/logos/LogoGemCloud.tsx","resources/logos/LogoEquineInstruments.tsx","resources/logos/LogoNwo.tsx","resources/logos/LogoGemboxx.tsx","ui/components/timelines/instances/experiences/ExperienceTimelineCardContent.tsx","ui/components/timelines/TimelineCard.tsx","ui/components/timelines/Timeline.tsx","ui/components/timelines/instances/experiences/ExperienceTimeline.tsx","ui/components/timelines/instances/educations/EducationTimelineCardContent.tsx","ui/components/timelines/instances/educations/EducationTimeline.tsx","resources/values/strings.tsx","ui/generic/inputs/TextInput.tsx","ui/components/contact_me/ContactForm.tsx","ui/components/contact_me/ContactFormApi.tsx","ui/components/contact_me/ContactFormCard.tsx","ui/pages/home/HomePage.tsx","resources/themes/DefaultTheme.tsx","App.js","registerServiceWorker.js","index.js","resources/images/header_image.jpg"],"names":["module","exports","__webpack_require__","p","connect","state","activeAnchorId","navigation","props","isActive","classes","id","makeStyles","theme","createStyles","root","marginLeft","& :hover","cursor","&:hover $underline_wrapper","width","underlineWidth","position","title","textTransform","whiteSpace","fontSize","fontWeight","paddingLeft","paddingRight","paddingBottom","marginBottom","lineHeight","underline_wrapper","borderRadius","transition","borderBottom","palette","primary","main","react_default","a","createElement","className","onClick","useScrollOffset","direction","getCurrentWindowOffset","window","pageXOffset","pageYOffset","_useState","useState","_useState2","Object","slicedToArray","scrollOffset","setScrollOffset","onScroll","offset","useEffect","addEventListener","removeEventListener","AbstractReduxAction","type","_this","this","classCallCheck","toPlainObject","assign","OnActiveAnchorIdChanged","anchorId","possibleConstructorReturn","getPrototypeOf","call","TYPE","AbstractHigherOrderComponent","getInjectedProps","getWrappedComponent","getAdditionalChildren","WrappedComponent","objectSpread","style","React","Component","ReduxState","InitialReducer","obj","arguments","length","undefined","action","update","$set","MiddlewareClassConversion","_store","next","ReduxStoreDefault","store","createStore","applyMiddleware","instance","SCROLLABLE_ANCHOR_CLASS_NAME","withScrollableAnchor","_AbstractHigherOrderC","WithScrollableAnchor","_getPrototypeOf2","_len","args","Array","_key","apply","concat","setActiveAnchorId","dispatch","inherits","PageDrawer","list_item","list","icon","color","marginRight","marginTop","textAlign","subtitle","useStyles","Typography","variant","List","items","map","item","ListItem","button","key","onItemClick","Icon","renderIcon","ListItemText","EducationIcon","SvgIcon","x","y","height","viewBox","enable-background","points","getVerticalPadding","side","windowIsScrolledDown","getHorizontalPadding","currentlyActiveAnchorId","activeId","bar_root","top","zIndex","left","backgroundColor","boxShadow","bar_root_wrapper","maxWidth","display","flexDirection","flex","justifyContent","padding","text","&:hover","alignSelf","T","fontFamily","S","menuButton","border","isDrawerOpen","setIsDrawerOpen","itemClasses","element","document","getElementById","offsetTop","getAnchorTop","scrollTo","behavior","anchors","getElementsByClassName","highestAnchorOnScreen","i","anchor","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","findActiveAnchorId","ANCHOR_ABOUT","InfoIcon","ANCHOR_RESUME","AssignmentIcon","ANCHOR_PROFICIENCY","StarIcon","ANCHOR_EXPERIENCE","TimelineIcon","ANCHOR_EDUCATION","ANCHOR_CONTACT","QuestionAnswerIcon","Grid","container","Hidden","smDown","implementation","components_PageBarItem","mdUp","IconButton","aria-label","edge","Menu_default","Drawer","open","onClose","ModalProps","keepMounted","components_PageDrawer","PageContainer","getScrollOffset","header","backgroundImage","BackgroundImage","backgroundPosition","backgroundSize","backgroundRepeat","opacity","overlay","content","paddingTop","grid","bar","components_PageBar","xs","md","children","ProfileCard","bubble","background","flexShrink","float","&:after","bottom","borderTopColor","borderLegt","InfoItem","value","grid_item","sm","LinkedInIcon","d","cx","cy","r","defineProperty","minHeight","breakpoints","down","image","ProfilePicture","right","bold","footer","alignItems","Card","elevation","SpeechBubble","profile_InfoItem","FooterActionIcon","MailIcon","Introduction","textDecoration","Button","href","download","introduction_Introduction","ScoreItem","progress","LinearProgress","percentage","ScoreCard","up","&:nth-child(odd)","&:nth-child(even)","component","score_cards_ScoreItem","PlatformScoreCard","score_cards_ScoreCard","LanguageScoreCard","ProficiencyTabs","tab","tab_selected","indicator","_React$useState","_React$useState2","setValue","AppBar","Tabs","onChange","event","newValue","Tab","selected","label","lib_default","axis","index","onChangeIndex","newIndex","instances_PlatformScoreCard","instances_LanguageScoreCard","proficiencies_ProficiencyTabs","LogoDiamondAgile","fill","LogoHiEfficiency","LogoInnovum","transform","font-family","font-size","LogoSilvesterConsultancy","LogoGemCloud","stroke","stroke-miterlimit","x1","y1","x2","y2","LogoEquineInstruments","overflow","clip-path","LogoNwo","LogoGemboxx","ExperienceTimelineCardContent","function","letterSpacing","description","timespan","chips","chip","Logo","logo","renderLogo","Chip","size","TimelineCard","card","isLargeWindow","borderTop","arrow","arrowSize","borderLeft","borderRight","&:before","offset_top","dot","dotSize","timeline_large_window","light","totalAmount","timeline_small_window","translate","Timeline","timeline","useTheme","useMediaQuery","renderLargeCard","timelines_TimelineCard","filter","_","experience","experiences_ExperienceTimelineCardContent","timelines_Timeline","EducationTimelineCardContent","institution","education","educations_EducationTimelineCardContent","DEFAULT_LEGAL_INPUT_CHARACTERS","control","TextInput","useRef","initialValue","error","setError","onValueChange","shouldSetError","current","validator","validate","toLowerCase","onFieldChange","hasError","FormControl","InputLabel","htmlFor","Input","multiline","defaultValue","rows","numberOfLines","target","aria-describedby","FormHelperText","ContactForm","size_half","inputs_TextInput","AbstractValidatorBuilder","required","maximum","legal","build","email","minimum","ContactFormApi","endpointUrl","onSetHeaders","headers","csrfToken","Cookies","get","sendContactForm","_ref","asyncToGenerator","regenerator_default","mark","_callee","data","response","wrap","_context","prev","sendGetRequest","sent","clone","json","abrupt","t0","t1","success","stop","_x","AbstractApi","DEFAULT_SNACKBAR_ERROR_MESSAGE","card_title","errors","onSubmit","api","hasErrors","showSnackbar","keys","e","contact_me_ContactForm","WithSnackbar","shouldShowSnackbar","snackbarMessage","componentDidMount","message","setState","closeSnackbar","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","Close_default","HomePage","components_PageContainer","profile_ProfileCard","download_resume_DownloadResume","proficiencies_ProficiencyCard","experiences_ExperienceTimeline","educations_EducationTimeline","contact_me_ContactFormCard","font","DefaultTheme","createMuiTheme","dark","contrastText","secondary","overrides","MuiCard","MuiTabs","MuiTypography","h1","h2","h3","h4","h5","h6","body1","body2","caption","subtitle1","subtitle2","overline","App","es","ThemeProvider","Route","exact","path","displayName","name","isLocalhost","Boolean","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","catch","baseUrl","getElementsByTagName","getAttribute","rootElement","ReactDOM","render","BrowserRouter","basename","App_App","URL","process","origin","fetch","status","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.39b15cbe.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/profielfoto.82e93428.jpg\";","import React from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport { ClassNameMap } from \"@material-ui/styles/withStyles\";\nimport ReduxState from \"../../state/redux/ReduxState\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@material-ui/core\";\n\nconst padding = 10;\nconst underlineWidth = \"calc(100% - \" + (2 * padding) + \"px)\";\n\nconst mapStateToProps = (state: ReduxState) => ({\n activeAnchorId: state.navigation.activeAnchorId\n})\n\nconst useStyles = (isActive: boolean, props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n marginLeft: 12,\n \"& :hover\": {\n cursor: \"pointer\",\n \n },\n \"&:hover $underline_wrapper\": {\n width: underlineWidth + \"!important\"\n },\n position: \"relative\",\n },\n title: {\n textTransform: \"uppercase\", \n whiteSpace: \"nowrap\",\n fontSize: 13,\n fontWeight: 700,\n paddingLeft: padding,\n paddingRight: padding,\n paddingBottom: 8,\n marginBottom: 0,\n position: \"relative\",\n lineHeight: 1,\n },\n underline_wrapper: {\n borderRadius: 1,\n transition: \"transform 400ms ease-out 100ms, width 300ms ease-out\",\n marginLeft: padding,\n width: isActive ? underlineWidth : 0,\n borderBottom: \"3px solid \" + theme.palette.primary.main\n }\n}));\n\ninterface Props {\n id: string,\n onClick: (id: string) => void,\n title: string,\n classes?: ClassNameMap,\n activeAnchorId?: string\n}\n\nconst PageBarItem = (props: Props) => {\n const classes = useStyles(props.activeAnchorId === props.id, props)(props);\n\n const onClick = () => {\n props.onClick(props.id);\n }\n\n return (\n
\n

{props.title}

\n
\n
\n );\n}\n\nexport default connect(mapStateToProps)(PageBarItem);","import { useState, useEffect } from \"react\";\n\nconst useScrollOffset = (direction: \"horizontal\" | \"vertical\") => {\n\n const getCurrentWindowOffset = () => {\n return direction === \"horizontal\" ? window.pageXOffset : window.pageYOffset;\n }\n\n const [scrollOffset, setScrollOffset] = useState(getCurrentWindowOffset());\n\n const onScroll = () => {\n const offset = getCurrentWindowOffset();\n setScrollOffset(offset);\n };\n\n useEffect(() => {\n window.addEventListener('scroll', onScroll);\n return () => {\n window.removeEventListener(\"scroll\", onScroll);\n }\n });\n\n return () => scrollOffset;\n}\n\nexport default useScrollOffset;","import { Action } from \"redux\";\n\nexport default class AbstractReduxAction implements Action\n{\n public readonly type: string;\n\n constructor(type: string)\n {\n this.type = type;\n }\n\n public toPlainObject = (): Action =>\n {\n return Object.assign({}, this);\n }\n}","import AbstractReduxAction from './AbstractReduxAction';\n\nexport default class OnActiveAnchorIdChanged extends AbstractReduxAction\n{\n public static readonly TYPE = \"on_active_anchor_id_changed\";\n public readonly anchorId: string;\n\n constructor(anchorId: string)\n {\n super(OnActiveAnchorIdChanged.TYPE);\n this.anchorId = anchorId;\n }\n}","import React from \"react\";\nimport { Omit } from \"@material-ui/core\";\n\nexport default abstract class AbstractHigherOrderComponent extends React.Component, State>\n{\n public abstract getInjectedProps: () => InjectedProps\n public abstract getWrappedComponent: () => React.ComponentType\n public abstract getAdditionalChildren: () => React.ReactNode | null;\n\n public render() {\n const WrappedComponent = this.getWrappedComponent();\n const props: ChildProps & InjectedProps = { ...this.props, ...this.getInjectedProps() } as unknown as ChildProps & InjectedProps\n\n return (\n
\n \n {this.getAdditionalChildren()}\n
\n )\n }\n}","import ReduxNavigationEntity from \"./entities/ReduxNavigationEntity\";\n\nexport default class ReduxState\n{\n navigation: ReduxNavigationEntity\n\n constructor()\n {\n this.navigation = { }\n }\n}\n","import { Action } from 'redux';\nimport ReduxState from '../ReduxState';\nimport OnActiveAnchorIdChanged from '../actions/OnActiveAnchorIdChanged';\nimport update from \"immutability-helper\";\n\nconst actionIs = (obj: Action, type: string): obj is T => {\n return obj.type === type;\n}\n\nconst InitialReducer = (state = new ReduxState(), action: Action): ReduxState =>\n{\n if (actionIs(action, OnActiveAnchorIdChanged.TYPE))\n {\n return update(state, { navigation: { activeAnchorId: { $set: action.anchorId } } });\n }\n\n return state;\n};\n\nexport default InitialReducer;","import AbstractReduxAction from \"../actions/AbstractReduxAction\";\nimport { Action, MiddlewareAPI, Dispatch } from \"redux\";\nimport ReduxState from \"../ReduxState\";\n\nexport default (_store: MiddlewareAPI) => (next: Dispatch) => (action: Action) => \n{\n if (action instanceof AbstractReduxAction)\n { action = action.toPlainObject(); }\n\n return next(action);\n}\n","\nimport { createStore, Store, Action, applyMiddleware} from 'redux';\nimport InitialReducer from '../reducers/ReducerInitial';\nimport ReduxState from '../ReduxState';\nimport MiddlewareClassConversion from \"../middleware/MiddlewareClassConversion\";\n\nexport default class ReduxStoreDefault \n{\n public static readonly instance = new ReduxStoreDefault();\n\n public readonly store: Store>\n\n private constructor()\n {\n this.store = createStore(InitialReducer, applyMiddleware(MiddlewareClassConversion));\n }\n}","import React from \"react\";\nimport AbstractHigherOrderComponent from \"../AbstractHigherOrderComponent\";\nimport OnActiveAnchorIdChanged from \"../../../state/redux/actions/OnActiveAnchorIdChanged\";\nimport ReduxStoreDefault from \"../../../state/redux/stores/ReduxStoreDefault\";\n\nexport interface WithScrollableAnchor_Props_Injected\n{\n setActiveAnchorId: (anchorId: string) => void,\n}\n\ninterface WithScrollableAnchor_Props_Additional {\n anchorId: string\n}\n\ninterface State\n{\n}\nexport const SCROLLABLE_ANCHOR_CLASS_NAME = \"scrollable_anchor\";\nexport const withScrollableAnchor = (Component: React.ComponentType) =>\n{\n return class WithScrollableAnchor extends AbstractHigherOrderComponent<\n ChildProps,\n WithScrollableAnchor_Props_Injected, \n WithScrollableAnchor_Props_Additional,\n State>\n {\n\n\n public setActiveAnchorId = (anchorId: string) => {\n ReduxStoreDefault.instance.store.dispatch(new OnActiveAnchorIdChanged(anchorId));\n }\n\n public getInjectedProps = () =>\n {\n return {\n setActiveAnchorId: this.setActiveAnchorId\n }\n }\n\n public getWrappedComponent = () =>\n {\n return (\n (props: ChildProps) => \n
\n \n \n \n
\n );\n }\n \n public getAdditionalChildren = () =>\n {\n return null;\n }\n }\n\n\n}\n","import React from \"react\";\nimport { Snackbar, IconButton } from \"@material-ui/core\";\nimport CloseIcon from '@material-ui/icons/Close';\nimport AbstractHigherOrderComponent from \"../AbstractHigherOrderComponent\";\n\nexport interface WithSnackbar_Props_Injected\n{\n showSnackbar: (message: string) => void\n}\n\nexport interface WithSnackbar_Props_Additional\n{\n\n}\n\ninterface State\n{\n shouldShowSnackbar: boolean,\n snackbarMessage: string\n}\n\nconst DEFAULT_SNACKBAR_ERROR_MESSAGE = \"Something went wrong, please try again.\";\n\nexport const withSnackbar = (Component: React.ComponentType) =>\n{\n return class WithSnackbar extends AbstractHigherOrderComponent<\n ChildProps,\n WithSnackbar_Props_Injected,\n WithSnackbar_Props_Additional,\n State>\n {\n state: State =\n {\n shouldShowSnackbar: false,\n snackbarMessage: DEFAULT_SNACKBAR_ERROR_MESSAGE\n }\n\n componentDidMount = async () =>\n {\n \n }\n\n private showSnackbar = (message: string) =>\n {\n this.setState({ snackbarMessage: message, shouldShowSnackbar: true });\n }\n\n public getInjectedProps = () =>\n {\n return {\n showSnackbar: this.showSnackbar\n }\n }\n\n public getWrappedComponent = () =>\n {\n return Component;\n }\n \n public getAdditionalChildren = () =>\n {\n const closeSnackbar = () => this.setState({ shouldShowSnackbar: false });\n\n return (\n {this.state.snackbarMessage}}\n action={[\n \n \n \n ]}\n />\n );\n }\n }\n}\n","import React from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport { Theme, List, ListItem, ListItemText, Typography } from \"@material-ui/core\";\nimport { SvgIconProps } from \"@material-ui/core/SvgIcon\";\n\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: 320,\n },\n list_item: {\n width: \"100%\"\n },\n list: {\n width: \"100%\"\n }, \n icon: {\n color: \"#C1C1C1\",\n marginRight: 20\n },\n title: {\n marginTop: 20,\n fontSize: 30,\n fontWeight: 600,\n lineHeight: 1.1,\n textAlign: \"center\",\n marginBottom: 10\n }, \n subtitle: {\n fontSize: 16,\n lineHeight: 1.1,\n paddingBottom: 20,\n fontWeight: 400,\n textAlign: \"center\",\n borderBottom: \"1px solid #EDEDED\"\n }\n}));\n\ninterface Item {\n id: string,\n title: string,\n icon: React.ComponentType\n}\n\ninterface Props {\n onClick: (id: string) => void,\n items: Array\n}\n\nconst PageDrawer = (props: Props) => {\n const classes = useStyles(props)(props);\n \n const onItemClick = (item: Item) => {\n props.onClick(item.id);\n }\n\n const renderIcon = (item: Item) => {\n const Icon = item.icon;\n return \n }\n\n return (\n
\n Teun Kooijman\n Experienced Software Engineer\n\n \n {props.items.map(item => (\n onItemClick(item)}>\n {renderIcon(item)}\n \n \n ))}\n \n
\n );\n}\n\nexport default PageDrawer;","import React from \"react\";\nimport { SvgIcon } from \"@material-ui/core\";\nimport { SvgIconProps } from \"@material-ui/core/SvgIcon\";\n\nconst EducationIcon = (props: SvgIconProps) => {\n\n return (\n \n \n \n \n ); \n}\n\nexport default EducationIcon;","import React, { useState} from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport { Grid, Theme, Hidden, Drawer, IconButton } from \"@material-ui/core\";\nimport PageBarItem from \"./PageBarItem\";\nimport useScrollOffset from \"../../hooks/UseScrollOffset\";\nimport { ANCHOR_ABOUT, ANCHOR_RESUME, ANCHOR_PROFICIENCY, ANCHOR_EXPERIENCE, ANCHOR_EDUCATION, ANCHOR_CONTACT } from \"../pages/home/HomePage\";\nimport Redux, { Action } from \"redux\";\nimport OnActiveAnchorIdChanged from \"../../state/redux/actions/OnActiveAnchorIdChanged\";\nimport { connect } from \"react-redux\";\nimport { SCROLLABLE_ANCHOR_CLASS_NAME } from \"../generic/scroll_anchor/WithScrollableAnchor\";\nimport ReduxState from \"../../state/redux/ReduxState\";\nimport PageDrawer from \"./PageDrawer\";\nimport MenuIcon from '@material-ui/icons/Menu';\nimport AssignmentIcon from '@material-ui/icons/Assignment';\nimport StarIcon from '@material-ui/icons/StarBorder';\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\n\nimport InfoIcon from '@material-ui/icons/Info';\nimport TimelineIcon from '@material-ui/icons/Timeline';\nimport EducationIcon from \"../../resources/icons/EducationIcon\";\n\nconst getVerticalPadding = (side: \"left\" | \"right\", props: Props) => {\n if (side === \"left\") {\n return props.windowIsScrolledDown ? 30 : 50;\n }\n else {\n return props.windowIsScrolledDown ? 18 : 22;\n }\n}\n\nconst getHorizontalPadding = (props: Props) => {\n return props.windowIsScrolledDown ? 15 : 30;\n}\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\"\n },\n bar_root: {\n \n width: \"100%\",\n top: 0,\n zIndex: 1000,\n left: 0,\n\n backgroundColor: props.windowIsScrolledDown ? \"white\" : \"transparent\",\n position: props.windowIsScrolledDown ? \"fixed\": \"relative\",\n boxShadow: props.windowIsScrolledDown ? \"0 10px 30px rgba(0, 0, 0, 0.19), 0 6px 10px rgba(0, 0, 0, 0.23)\" : \"none\",\n transition: \"box-shadow 300ms ease-out, background-color 300ms ease-out\",\n },\n bar_root_wrapper: {\n maxWidth: 1550,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n marginLeft: \"auto\",\n marginRight: \"auto\",\n },\n items: {\n flex: 1,\n justifyContent: \"flex-end\",\n display: \"flex\",\n flexDirection: \"row\",\n padding: getHorizontalPadding(props) + \"px \" + getVerticalPadding(\"right\", props) + \"px \" + getHorizontalPadding(props) + \"px \" + getVerticalPadding(\"left\", props) + \"px\",\n transition: \"padding 300ms ease-out\",\n },\n text: {\n color: props.windowIsScrolledDown ? \"#444444\" : \"rgba(255, 255, 255, 0.5)\",\n transition: \"color 300ms ease-out\",\n },\n primary: {\n \"&:hover\": {\n cursor: \"pointer\"\n },\n padding: 6,\n alignSelf: \"center\",\n paddingLeft: getHorizontalPadding(props),\n transition: \"padding 300ms ease-out\"\n },\n T: {\n fontFamily: \"Fredoka One\",\n fontSize: 30,\n color: theme.palette.primary.main\n },\n S: {\n fontFamily: \"Fredoka One\",\n fontSize: 30, \n color: \"#919da2\"\n },\n menuButton: {\n border: props.windowIsScrolledDown ? \"none\" : \"1px solid rgba(255, 255, 255, 0.1)\",\n borderRadius: 2,\n padding: 6, \n color: props.windowIsScrolledDown ? \"#444444\" : \"rgba(255, 255, 255, 0.5)\"\n }\n}));\n\nconst mapStateToProps = (state: ReduxState) => ({\n currentlyActiveAnchorId: state.navigation.activeAnchorId\n});\n\nconst mapDispatchToProps = (dispatch: Redux.Dispatch>) => ({\n setActiveAnchorId : (anchorId: string) => dispatch(new OnActiveAnchorIdChanged(anchorId))\n});\n\ninterface Props {\n windowIsScrolledDown?: boolean,\n setActiveAnchorId: (anchorId: string) => void,\n currentlyActiveAnchorId?: string\n}\n\nconst PageBar = (props: Props) => {\n const classes = useStyles(props)(props);\n const getScrollOffset = useScrollOffset(\"vertical\");\n const [isDrawerOpen, setIsDrawerOpen] = useState(false);\n\n const itemClasses = {\n title: classes.text\n }\n\n const scrollToTop = () => {\n window.scrollTo({\n top: 0,\n left: 0,\n behavior: \"smooth\"\n });\n }\n\n const getAnchorTop = (id: string) => {\n const element = document.getElementById(id);\n if (element) {\n return element.offsetTop - 90;\n }\n }\n\n const onItemClick = (id: string) => {\n\n setIsDrawerOpen(false);\n const offset = getAnchorTop(id);\n if (offset) {\n window.scrollTo({\n top: offset,\n left: 0,\n behavior: \"smooth\"\n });\n }\n }\n\n const findActiveAnchorId = () => {\n const anchors = document.getElementsByClassName(SCROLLABLE_ANCHOR_CLASS_NAME);\n var highestAnchorOnScreen: Element | undefined = undefined;\n for (var i = 0; i < anchors.length; i ++) {\n const anchor = anchors.item(i);\n if (anchor) {\n const rect = anchor.getBoundingClientRect();\n\n const windowHeight = (window.innerHeight || document.documentElement.clientHeight);\n\n const isOnScreen = (rect.top - 80 <= windowHeight) && ((rect.top - 80 + rect.height) >= 0);\n if (isOnScreen && (highestAnchorOnScreen === undefined || rect.top < highestAnchorOnScreen.getBoundingClientRect().top)) {\n highestAnchorOnScreen = anchor;\n }\n }\n }\n\n if (highestAnchorOnScreen) {\n return highestAnchorOnScreen.id;\n } else {\n return null;\n }\n }\n\n const setActiveAnchorId = (activeId: string | null) => {\n if (activeId != null && props.currentlyActiveAnchorId !== activeId) {\n props.setActiveAnchorId(activeId);\n }\n \n }\n setActiveAnchorId(findActiveAnchorId())\n\n const items = [\n { id: ANCHOR_ABOUT, title: \"About\", icon: InfoIcon },\n { id: ANCHOR_RESUME, title: \"Resume\", icon: AssignmentIcon },\n { id: ANCHOR_PROFICIENCY, title: \"Proficiencies\", icon: StarIcon},\n { id: ANCHOR_EXPERIENCE, title: \"Work Experience\", icon: TimelineIcon},\n { id: ANCHOR_EDUCATION, title: \"Education\", icon: EducationIcon },\n { id: ANCHOR_CONTACT, title: \"Contact\", icon: QuestionAnswerIcon },\n ];\n\n return (\n
\n\n \n
\n
\n T\n S\n
\n \n
\n {items.map(item => )}\n
\n
\n \n
\n setIsDrawerOpen(!isDrawerOpen)}\n className={classes.menuButton}\n >\n \n \n
\n
\n
\n
\n \n\n \n setIsDrawerOpen(false)}\n ModalProps={{\n keepMounted: true\n }}\n >\n \n \n \n
\n );\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PageBar);","import React from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport BackgroundImage from \"../../resources/images/header_image.jpg\";\nimport { Grid } from \"@material-ui/core\";\nimport PageBar from \"./PageBar\";\nimport useScrollOffset from \"../../hooks/UseScrollOffset\";\n\nconst useStyles = () => makeStyles(theme => createStyles({\n root: {\n position: \"relative\",\n height: \"100%\",\n width: \"100%\",\n },\n header: {\n backgroundImage: `url(${BackgroundImage})`,\n width: \"100%\",\n height: \"40vh\",\n position: \"absolute\",\n backgroundPosition: 'center',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n opacity: 0.75,\n zIndex: 0\n },\n overlay: {\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n },\n content: {\n zIndex: 100,\n position: \"relative\",\n width: \"100%\",\n paddingTop: 200,\n paddingBottom: 50\n },\n grid: {\n marginLeft: \"auto\",\n marginRight: \"auto\",\n width: \"100%\",\n maxWidth: 1080,\n paddingRight: 20,\n paddingLeft: 20\n },\n bar: {\n width: \"100%\",\n zIndex: 105,\n position: \"fixed\"\n }\n}));\n\ninterface Props {\n children: React.ReactNode\n}\n\nconst PageContainer = (props: Props) =>\n{\n const getScrollOffset = useScrollOffset(\"vertical\");\n const classes = useStyles()(props); \n\n return (\n
\n
\n
\n\n
\n
\n
\n = 1} />\n
\n
\n \n {props.children}\n \n
\n
\n );\n}\n\nexport default PageContainer;","import React from \"react\";\nimport { makeStyles, Theme, createStyles} from \"@material-ui/core\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n \n },\n text: {\n fontWeight: \"bold\",\n fontSize: \"14px\",\n marginBottom: 0\n },\n bubble: {\n position: \"relative\",\n background: theme.palette.primary.main,\n flexShrink: 1,\n display: \"flex\",\n float: \"left\",\n paddingLeft: 10,\n paddingRight: 10,\n paddingTop: 5,\n paddingBottom: 5, \n color: \"#FFFFFF\",\n borderRadius: 2,\n width: \"inherit\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n width: 0,\n left: 10,\n height: 0,\n border: \"8px solid transparent\",\n borderTopColor: theme.palette.primary.main,\n borderBottom: 0,\n borderLegt: 0,\n marginBottom: -8\n }\n },\n}));\n\n\ninterface Props {\n text: string\n}\n\nconst ProfileCard = (props: Props) => {\n const classes = useStyles(props)();\n\n return (\n
\n

{props.text}

\n
\n);\n}\n\nexport default ProfileCard;","import React from \"react\";\nimport {makeStyles, Theme, createStyles, Grid, Typography } from \"@material-ui/core\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\",\n padding: 10\n },\n title: {\n fontWeight: \"bold\",\n padding: 10,\n paddingLeft: 0,\n paddingRight: 70,\n color: \"#555555\",\n textTransform: \"uppercase\",\n fontSize: \"14px\"\n },\n value: {\n fontSize: \"14px\",\n color: \"#9da0a7\"\n },\n grid_item: {\n width: \"100%\",\n alignSelf: \"center\"\n }\n}));\n\n\ninterface Props {\n title: string,\n value: string\n}\n\nconst InfoItem = (props: Props) => {\n const classes = useStyles(props)();\n\n return (\n \n \n {props.title}\n \n \n {props.value}\n \n \n );\n}\n\nexport default InfoItem;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport IconProps from \"./IconProps\";\n\n\nconst useStyles = (props: IconProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n color: props.color\n }\n}));\n\nconst LinkedInIcon = (props: IconProps) => {\n const classes = useStyles(props)();\n\n return (\n \n \n\t \n\t \n\t \n \n \n ); \n}\n\nexport default LinkedInIcon;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { IconProps } from \"@material-ui/core/Icon\";\n\n\nconst useStyles = (props: IconProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n color: props.color\n }\n}));\n\nconst LinkedInIcon = (props: IconProps) => {\n const classes = useStyles(props)();\n\n return (\n \n \n \n );\n}\n\nexport default LinkedInIcon;","import React from \"react\";\nimport { makeStyles, Theme, createStyles, IconButton } from \"@material-ui/core\";\nimport IconProps from \"../../../resources/icons/IconProps\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n paddingLeft: 20,\n }\n}));\n\n\ninterface Props extends IconProps {\n icon: React.ComponentType,\n onClick: () => void\n}\n\nconst InfoItem = (props: Props) => {\n const classes = useStyles(props)();\n\n const renderIcon = () => {\n const Icon = props.icon;\n return ;\n }\n\n return (\n
\n \n {renderIcon()}\n \n
\n );\n}\n\nexport default InfoItem;","import React from \"react\";\nimport { Card, makeStyles, Theme, createStyles, Grid, Typography } from \"@material-ui/core\";\nimport ProfilePicture from \"../../../resources/images/profielfoto.jpg\";\nimport SpeechBubble from \"../SpeechBubble\";\nimport InfoItem from \"./InfoItem\";\nimport LinkedInIcon from \"../../../resources/icons/LinkedInIcon\";\nimport MailIcon from \"../../../resources/icons/MailIcon\";\nimport FooterActionIcon from \"./FooterActionIcon\";\nimport { withScrollableAnchor } from \"../../generic/scroll_anchor/WithScrollableAnchor\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\"\n },\n left: {\n padding: 30,\n minHeight: 410,\n [theme.breakpoints.down(\"sm\")]: {\n paddingLeft: 0,\n paddingRight: 0,\n marginRight: 30,\n marginLeft: 30,\n paddingBottom: 30,\n borderBottom: \"1px solid #DEDEDE\",\n }\n },\n image: {\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n flex: 1,\n backgroundImage: `url(${ProfilePicture})`,\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\",\n \n },\n right: {\n padding: 30,\n display: \"flex\",\n flexDirection: \"column\",\n fontSize: \"36px\"\n },\n bold: {\n fontWeight: \"bold\"\n },\n content: {\n color: \"#3d4451\",\n width: \"100%\"\n },\n title: {\n fontSize: \"28px\",\n marginTop: 40\n }, \n subtitle: {\n marginTop: 6,\n width: \"100%\",\n paddingBottom: 30,\n marginBottom: 20,\n marginRight: 0,\n borderBottom: \"1px solid #DEDEDE\",\n fontSize: \"18px\"\n },\n footer: {\n backgroundColor: theme.palette.primary.main,\n height: 75,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n }\n}));\n\n\ninterface Props {\n\n}\n\nconst ProfileCard = (props: Props) => {\n const classes = useStyles(props)();\n\n const onLinkedInClicked = () => {\n window.open(\"https://www.linkedin.com/in/teun-kooijman-52a806ba/\", \"_blank\")\n }\n\n const onMailClicked = () => {\n window.open(\"mailto:teun.kooijman@gmail.com\", \"_blank\")\n }\n\n return (\n \n
\n \n \n
\n
\n
\n \n \n
\n I'm Teun Kooijman\n Experienced Software Engineer\n \n \n \n \n \n
\n
\n
\n \n \n \n \n
\n
\n );\n}\n\nexport default withScrollableAnchor(ProfileCard);","import React from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport { Typography, Theme } from \"@material-ui/core\";\n\nconst padding = 10;\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\",\n marginTop: 15,\n marginBottom: 55\n },\n text: {\n textAlign: \"center\",\n fontSize: \"18px\",\n fontWeight: \"normal\",\n color: \"#777777\",\n lineHeight: 1.8\n }\n}));\n\ninterface Props {\n}\n\nconst Introduction = (props: Props) => {\n const classes = useStyles(props)();\n\n return (\n
\n Hello! I am Teun Kooijman, an experienced software engineer specializing in back-end development. Experienced with all stages of the development cycle for web- and mobile projects, and with a strong background in software development and project management. Well-versed in numerous languages and frameworks, including ASP.NET, Spring Boot, React and Android.\n
\n );\n}\n\nexport default Introduction;","import React from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport { Theme, Button } from \"@material-ui/core\";\nimport { withScrollableAnchor, WithScrollableAnchor_Props_Injected } from \"../../generic/scroll_anchor/WithScrollableAnchor\";\nimport Introduction from \"../introduction/Introduction\";\n\nconst padding = 10;\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\",\n paddingTop: 60,\n paddingBottom: 20,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexDirection: \"column\"\n },\n button: {\n padding: 15,\n marginBottom: 30,\n paddingLeft: 70,\n paddingRight: 70\n },\n anchor: {\n fontWeight: \"bold\",\n color: \"#444444\",\n \"&:hover\": {\n textDecoration: \"none\"\n }\n }\n}));\n\ninterface Props extends WithScrollableAnchor_Props_Injected {\n}\n\nconst DownloadResume = (props: Props) => {\n const classes = useStyles(props)();\n\n const onClick = () => {\n }\n\n return (\n
\n \n \n
\n );\n}\n\nexport default withScrollableAnchor(DownloadResume);","import React from \"react\";\nimport { makeStyles, Theme, createStyles, Typography, LinearProgress } from \"@material-ui/core\";\nimport { ClassNameMap } from \"@material-ui/styles/withStyles\";\n\nconst useStyles = (props: ScoreItem_Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\",\n paddingTop: 20,\n paddingBottom: 20\n },\n title: {\n color: \"#8d9097\"\n },\n progress: {\n height: 5,\n borderRadius: 2\n }\n}));\n\n\nexport interface ScoreItem_Props {\n title: string,\n percentage: number,\n classes?: ClassNameMap\n}\n\nconst ScoreItem = (props: ScoreItem_Props) => {\n const classes = useStyles(props)(props);\n\n return (\n
\n {props.title}\n \n
\n );\n}\n\nexport default ScoreItem;","import React from \"react\";\nimport { Card, makeStyles, Theme, createStyles, Grid } from \"@material-ui/core\";\nimport ScoreItem, { ScoreItem_Props } from \"./ScoreItem\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\",\n padding: 30\n },\n item: {\n [theme.breakpoints.up('sm')]: {\n \"&:nth-child(odd)\": {\n paddingRight: 20\n },\n \"&:nth-child(even)\": {\n paddingLeft: 20\n }\n }\n }\n}));\n\n\ninterface Props {\n items: ScoreItem_Props[],\n component?: \"card\" | \"div\"\n}\n\nconst ScoreCard = (props: Props) => {\n const classes = useStyles(props)();\n\n const getComponent = (children: React.ReactNode) => {\n if (props.component == \"div\") {\n return
{children}
\n }\n else {\n return {children}\n }\n }\n const Component = props.component == \"div\" ? Grid : Card;\n\n return (\n \n \n {props.items.map(item => {\n return (\n \n \n \n );\n })}\n \n \n );\n}\n\nexport default ScoreCard;","import React from \"react\";\nimport { makeStyles, Theme, createStyles} from \"@material-ui/core\";\nimport ScoreCard from \"../ScoreCard\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\"\n },\n title: {\n textAlign: \"center\",\n marginBottom: 30\n }\n}));\n\n\ninterface Props {\n component?: \"card\" | \"div\"\n}\n\nconst PlatformScoreCard = (props: Props) => {\n const classes = useStyles(props)();\n\n const getItems = () => {\n return [\n {title: \".NET Core\", percentage: 90},\n { title: \"React\", percentage: 70 },\n {title: \".NET Framework\", percentage: 75},\n { title: \"React Native\", percentage: 55 },\n { title: \"Azure\", percentage: 30 },\n { title: \"Spring Boot\", percentage: 55 },\n { title: \"Android Native\", percentage: 60 },\n { title: \"iOS\", percentage: 30 },\n { title: \"Docker\", percentage: 40 },\n ];\n }\n\n return (\n \n );\n}\n\nexport default PlatformScoreCard;","import React from \"react\";\nimport { makeStyles, Theme, createStyles} from \"@material-ui/core\";\nimport ScoreCard from \"../ScoreCard\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\"\n },\n title: {\n textAlign: \"center\",\n marginBottom: 30\n }\n}));\n\n\ninterface Props {\n component?: \"card\" | \"div\"\n}\n\nconst LanguageScoreCard = (props: Props) => {\n const classes = useStyles(props)();\n\n const getItems = () => {\n return [\n { title: \"C#\", percentage: 95 },\n { title: \"Java\", percentage: 85 },\n { title: \"JavaScript\", percentage: 60 },\n { title: \"TypeScript\", percentage: 75 },\n { title: \"SQL\", percentage: 50 },\n { title: \"HTML/CSS\", percentage: 85 },\n { title: \"Swift\", percentage: 25 },\n ];\n }\n\n return (\n \n );\n}\n\nexport default LanguageScoreCard;","import React from \"react\";\nimport { makeStyles, Theme, createStyles, AppBar, Tabs, Tab } from \"@material-ui/core\";\nimport SwipeableViews from \"react-swipeable-views\";\nimport PlatformScoreCard from \"../score_cards/instances/PlatformScoreCard\";\nimport LanguageScoreCard from \"../score_cards/instances/LanguageScoreCard\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n },\n bar: {\n \n },\n tab: {\n paddingTop: 20,\n paddingBottom: 20,\n backgroundColor: theme.palette.primary.main,\n color: \"#FFFFFF\",\n opacity: 1\n },\n tab_selected: {\n backgroundColor: theme.palette.primary.main,\n color: \"#FFFFFF\",\n opacity: 1\n },\n indicator: {\n backgroundColor: \"#FFFFFF\",\n opacity: 0.55,\n height: 3,\n width: \"50% !important\"\n }\n}));\n\n\ninterface Props {\n\n}\n\nconst ProficiencyTabs = (props: Props) => {\n const classes = useStyles(props)();\n const [value, setValue] = React.useState(0);\n\n const onTabPressed = (event: React.ChangeEvent<{}>, newValue: any) => {\n setValue(newValue);\n }\n\n const onTabSwiped = (newIndex: number) => {\n setValue(newIndex);\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default ProficiencyTabs;","import React from \"react\";\nimport { Card, makeStyles, Theme, createStyles, Typography } from \"@material-ui/core\";\nimport ProficiencyTabs from \"./ProficiencyTabs\";\nimport { withScrollableAnchor, WithScrollableAnchor_Props_Injected } from \"../../generic/scroll_anchor/WithScrollableAnchor\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n },\n title: {\n textAlign: \"center\",\n marginBottom: 30\n }\n}));\n\n\ninterface Props extends WithScrollableAnchor_Props_Injected {\n\n}\n\nconst ProficiencyCard = (props: Props) => {\n const classes = useStyles(props)();\n\n return (\n
\n Proficiencies\n \n \n \n
\n );\n}\n\nexport default withScrollableAnchor(ProficiencyCard);","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\"; \n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize, \n height: \"auto\"\n }\n})); \n\nconst LogoDiamondAgile = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n \n ); \n}\n\nexport default LogoDiamondAgile;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\";\n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n height: \"auto\"\n }\n})); \n\nconst LogoHiEfficiency = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n \n ); \n}\n\nexport default LogoHiEfficiency;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\";\n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n height: \"auto\"\n }\n})); \n\nconst LogoInnovum = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t \n Impact & Innovatie\n\t \n\t\t \n\t \n\t \n\t \n \n ); \n}\n\nexport default LogoInnovum;\n","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\";\n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n height: \"auto\"\n }\n})); \n\nconst LogoSilvesterConsultancy = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t\t\n\t\t\t\n\t\t\t\n \n ); \n}\n\nexport default LogoSilvesterConsultancy;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\";\n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n height: \"auto\"\n }\n})); \n\nconst LogoGemCloud = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t \n\t \n\t \n\t \n\t \n\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n\t \n \n ); \n}\n\nexport default LogoGemCloud;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\";\n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n height: \"auto\"\n }\n})); \n\nconst LogoEquineInstruments = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t \n\t\t\t \n\t\t \n\t\t \n\t\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n \n ); \n}\n\nexport default LogoEquineInstruments;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\";\n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n height: \"auto\"\n }\n})); \n\nconst LogoNwo = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t \n\t\t \n\t\t \n\t \n \n ); \n}\n\nexport default LogoNwo;","import React from \"react\";\nimport { SvgIcon, makeStyles, createStyles, Theme } from \"@material-ui/core\";\nimport { LogoProps } from \"./LogoProps\";\n\n\n\nconst useStyles = (props: LogoProps) => makeStyles((theme: Theme) => createStyles({\n root: {\n fontSize: props.fontSize,\n height: \"auto\"\n }\n})); \n\nconst LogoGemboxx = (props: LogoProps) => {\n const classes = useStyles(props)();\n\n return (\n \n\t\t \n\t\t\t\n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n \n ); \n}\n\nexport default LogoGemboxx;","import React from \"react\";\nimport { makeStyles, Theme, createStyles, Typography, Chip } from \"@material-ui/core\";\nimport { LogoProps } from \"../../../../../resources/logos/LogoProps\";\n\nexport const offset_top = 40;\n\nconst useStyles = (props: ExperienceTimelineCardContent_Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n\n },\n function: {\n marginBottom: 20,\n textTransform: \"uppercase\",\n color: \"#878787\",\n fontSize: 14,\n fontWeight: 600,\n lineHeight: 1.5,\n letterSpacing: \"0.01em\"\n },\n description: {\n marginTop: 25,\n fontSize: 15,\n textAlign: \"justify\"\n },\n timespan: {\n color: theme.palette.primary.main,\n fontSize: 16,\n fontWeight: 700,\n lineHeight: 1,\n textAlign: \"center\",\n paddingBottom: 6\n },\n chips: {\n marginTop: 30,\n textAlign: \"left\"\n },\n chip: {\n marginRight: 8,\n backgroundColor: theme.palette.primary.main,\n opacity: 0.7,\n marginBottom: 8,\n color: \"white\"\n }\n}));\n\n\nexport interface ExperienceTimelineCardContent_Props {\n timespan: string,\n function: string,\n description: string,\n chips: Array,\n logo: React.ComponentType,\n}\n\nconst ExperienceTimelineCardContent = (props: ExperienceTimelineCardContent_Props) => {\n const classes = useStyles(props)();\n\n const renderLogo = () => { \n const Logo = props.logo; \n return \n }\n\n return (\n
\n {props.timespan}\n {props.function}\n {renderLogo()}\n {props.description}\n
\n {props.chips.map(chip => )}\n
\n
\n );\n}\n\nexport default ExperienceTimelineCardContent;","import React from \"react\";\nimport { makeStyles, Theme, createStyles, Card } from \"@material-ui/core\";\n\nconst arrowSize = 15;\nconst side = 45;\nexport const offset_top = 40;\nconst dotSize = 8;\nconst timelineWidth = 4;\n\nconst useStyles = (props: TimelineCard_Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"row\",\n textAlign: \"center\",\n width: \"100%\",\n paddingBottom: 30,\n },\n card: {\n marginRight: props.position === \"left\" && props.isLargeWindow ? 60 : 0,\n marginLeft: props.position === \"right\" && props.isLargeWindow ? 60 : 0,\n padding: 20,\n width: \"100%\",\n borderTop: \"5px solid \" + theme.palette.primary.main\n },\n arrow: {\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n top: offset_top,\n right: props.position === \"left\" ? side : \"auto\",\n left: props.position === \"right\" ? side : \"auto\",\n borderTop: arrowSize + \"px solid transparent\",\n borderBottom: arrowSize + \"px solid transparent\",\n borderLeft: arrowSize + \"px solid transparent\",\n borderRight: arrowSize + \"px solid transparent\",\n transform: \"rotate(45deg)\",\n backgroundColor: \"white\",\n },\n \"&:before\": {\n content: '\"\"',\n position: \"absolute\",\n top: offset_top - 3,\n zIndex: -1,\n transform: \"rotate(45deg)\",\n right: props.position === \"left\" ? side - 1 : \"auto\",\n left: props.position === \"right\" ? side + 1 : \"auto\",\n borderTop: (arrowSize + 1) + \"px solid transparent\",\n borderBottom: (arrowSize + 1) + \"px solid transparent\",\n borderLeft: (arrowSize + 1) + \"px solid transparent\",\n borderRight: (arrowSize + 1) + \"px solid transparent\",\n boxShadow: \"1px 1px 3px 0px rgba(0,0,0,0.2)\",\n }\n },\n dot: {\n backgroundColor: theme.palette.primary.main,\n borderRadius: \"50%\",\n width: dotSize,\n height: dotSize,\n position: \"absolute\",\n top: offset_top + 10,\n zIndex: 100,\n right: props.position === \"left\" ? dotSize / -2 : \"auto\",\n left: props.position === \"right\" ? dotSize / -2 : \"auto\"\n },\n timeline_large_window: {\n backgroundColor: theme.palette.primary.light,\n top: props.index == 0 ? offset_top + 10 : 0,\n right: props.position === \"left\" ? -2 : \"auto\",\n left: props.position === \"right\" ? -2 : \"auto\",\n position: \"absolute\",\n height: props.index > 0 && props.index < props.totalAmount - 2 ? \"100%\" : offset_top + 10,\n width: timelineWidth,\n },\n timeline_small_window: {\n backgroundColor: theme.palette.primary.light,\n width: timelineWidth,\n position: \"absolute\",\n top: 0,\n height: props.index < props.totalAmount - 1 ? \"100%\" : \"50%\",\n right: \"50%\",\n zIndex: -110,\n translate: \"transformX(-50%)\"\n }\n}));\n\nexport interface TimelineCard_Props {\n index: number,\n position: \"left\" | \"right\" | \"middle\",\n totalAmount: number,\n content: React.ReactNode,\n isLargeWindow: boolean\n}\n\nconst TimelineCard = (props: TimelineCard_Props) => {\n const classes = useStyles(props)();\n\n return (\n
\n \n {props.content}\n \n {\n props.isLargeWindow &&
\n \n \n \n
\n }\n {\n props.isLargeWindow == false &&
\n \n
\n }\n
\n );\n}\n\nexport default TimelineCard;","import React from \"react\";\nimport { makeStyles, Theme, createStyles, Grid, Typography, Hidden, useMediaQuery } from \"@material-ui/core\";\nimport { useTheme } from \"@material-ui/core/styles\";\nimport LogoDiamondAgile from \"../../../resources/logos/LogoDiamondAgile\"\nimport { Omit } from \"react-router\";\nimport LogoHiEfficiency from \"../../../resources/logos/LogoHiEfficiency\";\nimport LogoInnovum from \"../../../resources/logos/LogoInnovum\";\nimport LogoSilvesterConsultancy from \"../../../resources/logos/LogoSilvesterConsultancy\";\nimport LogoGemCloud from \"../../../resources/logos/LogoGemCloud\";\nimport LogoEquineInstruments from \"../../../resources/logos/LogoEquineInstruments\";\nimport LogoNwo from \"../../../resources/logos/LogoNwo\";\nimport LogoGemboxx from \"../../../resources/logos/LogoGemboxx\";\nimport TimelineCard, { TimelineCard_Props, offset_top } from \"./TimelineCard\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n position: \"relative\",\n marginTop: 40\n },\n content: {\n height: \"100%\",\n width: \"100%\",\n position: \"relative\"\n },\n right: {\n marginTop: 90\n },\n timeline: {\n height: \"100%\",\n position: \"absolute\", \n left: \"50%\",\n top: offset_top + 10,\n transform: \"translateX(-50%)\",\n width: 3,\n backgroundColor: theme.palette.primary.light\n },\n grid: {\n width: \"100%\"\n },\n title: {\n textAlign: \"center\",\n marginBottom: 30\n }\n}));\n\n\ninterface Props {\n items: Array,\n title: string\n}\n\nconst Timeline = (props: Props) => {\n const classes = useStyles(props)();\n\n const theme = useTheme();\n const isLargeWindow = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n const renderLargeCard = (position: \"left\" | \"right\" | \"middle\", index: number) => (content: React.ReactNode) =>\n {\n return \n }\n\n return (\n
\n {props.title}\n \n \n \n {props.items.filter((_, index) => index % 2 == 0).map((content, index) => renderLargeCard(\"left\", index * 2)(content))}\n \n \n {props.items.filter((_, index) => index % 2 != 0).map((content, index) => renderLargeCard(\"right\", index * 2 + 1)(content))}\n \n \n \n \n {props.items.map((content, index) => renderLargeCard(\"middle\", index)(content))}\n \n \n \n
\n );\n}\n\nexport default Timeline;","import React from \"react\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core\";\nimport LogoDiamondAgile from \"../../../../../resources/logos/LogoDiamondAgile\"\nimport LogoHiEfficiency from \"../../../../../resources/logos/LogoHiEfficiency\";\nimport LogoInnovum from \"../../../../../resources/logos/LogoInnovum\";\nimport LogoSilvesterConsultancy from \"../../../../../resources/logos/LogoSilvesterConsultancy\";\nimport LogoGemCloud from \"../../../../../resources/logos/LogoGemCloud\";\nimport LogoEquineInstruments from \"../../../../../resources/logos/LogoEquineInstruments\";\nimport LogoNwo from \"../../../../../resources/logos/LogoNwo\";\nimport LogoGemboxx from \"../../../../../resources/logos/LogoGemboxx\";\nimport ExperienceTimelineCardContent, { ExperienceTimelineCardContent_Props } from \"./ExperienceTimelineCardContent\";\nimport Timeline from \"../../Timeline\";\nimport { withScrollableAnchor, WithScrollableAnchor_Props_Injected } from \"../../../../generic/scroll_anchor/WithScrollableAnchor\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\"\n },\n}));\n\n\ninterface Props extends WithScrollableAnchor_Props_Injected {\n\n}\n\nconst CHIP_DOTNET_CORE = \".NET Core\";\nconst CHIP_DOTNET_FRAMEWORK = \".NET Framework\";\nconst CHIP_REACT = \"React\";\nconst CHIP_SPRING_BOOT = \"Spring Boot\";\nconst CHIP_REACT_NATIVE = \"React Native\";\nconst CHIP_NATIVE_ANDROID = \"Native Android\";\nconst CHIP_NATIVE_IOS = \"Native iOS\";\nconst CHIP_GREXX = \"Grexx\";\nconst CHIP_AZURE = \"Azure\";\n\nconst ExperienceTimeline = (props: Props) => {\n const classes = useStyles(props)();\n\n const experiences: Array = [\n { chips: [CHIP_DOTNET_CORE, CHIP_REACT, CHIP_SPRING_BOOT], logo: LogoDiamondAgile, timespan: \"February 2019 - Now\", function: \"Full Stack Developer\", description: \"Lead developer on the Lightning Assessment web applications, a large ETL product used to assess the agility of a software development process. During development we were able to rapidly prototype using Docker, Heroku and CI/CD pipelines deploying all the way to production. This large greenfield project made it from inception to market in four months time.\" },\n { chips: [CHIP_REACT_NATIVE], logo: LogoHiEfficiency, timespan: \"July 2018 - February 2019\", function: \"Hybrid Mobile Developer\", description: \"Lead developer on the on the Hi Efficiency application, a mobile application used to measure Process Efficiency in software development teams. After I joined the development team, I introduced a new underlying architecture, design- and development philosophy, increasing velocity many times over.\" },\n { chips: [CHIP_DOTNET_FRAMEWORK, CHIP_DOTNET_CORE], logo: LogoInnovum, timespan: \"April 2017 - August 2018\", function: \"Back-End Developer\", description: \"Lead devleoper on the company's implementation of governmental data provisioning systems, which store data from and provide queryable interfaces for all 11 basic governmental data registration systems. In this solution we stored billions of records and automatically kept them up to date by processing governmental transaction messages, while providing an extensible OData REST API for our clients.\" },\n { chips: [CHIP_NATIVE_ANDROID, CHIP_NATIVE_IOS, CHIP_REACT, CHIP_DOTNET_CORE], logo: LogoSilvesterConsultancy, timespan: \"April 2017 - August 2017\", function: \"Full Stack Developer\", description: \"Core developer of a mobile veterinary formulary, assisting veterinarians with diagnosing the animal, devising and executing a treatment plan, and calculating medicinal dosages. The application, as well as the back-end management portal, is now used daily by hundreds of veterinarians across the country.\" },\n { chips: [CHIP_DOTNET_FRAMEWORK, CHIP_GREXX], logo: LogoGemCloud, timespan: \"March 2016 - July 2017\", function: \"Scrum Master & Back-End Developer\", description: \"Scrum Master and active part of the development team for a new municipal subsidy system, allowing the government to process and monitor subsidy accountability processes from different business domains. The acquisition was met with a lot of resistance from within many different levels of within the organization, but made its debut at the start of the 2018/2019 subsidy year.\" },\n { chips: [CHIP_NATIVE_ANDROID, CHIP_NATIVE_IOS], logo: LogoEquineInstruments, timespan: \"February 2015 - June 2015\", function: \"Native Mobile Developer\", description: \"The development of an equine gait classification algorithm, employing signal processing over the accelerometer, gyroscope and magnetometer within the IMU of a modern smartphone. The resulting algorithm turned out to determine the gait of a horse with 99.96% accuracy. This algorithm was then used in a smartphone application that assisted equestrians with their training routines.\" },\n { chips: [CHIP_NATIVE_ANDROID, CHIP_NATIVE_IOS, CHIP_DOTNET_FRAMEWORK, CHIP_REACT, CHIP_AZURE], logo: LogoEquineInstruments, timespan: \"October 2015 - August 2018\", function: \"Founder & Full Stack Developer\", description: \"Founder of a subsidiary in which we developed software and hardware for use within the world of equestrian sports. In the project I was responsible for designing and implementing the entire web- and mobile architecture, and was responsible for keeping in contact with our external partners.\" },\n { chips: [CHIP_NATIVE_ANDROID], logo: LogoNwo, timespan: \"December 2014 - August 2016\", function: \"Native Android Developer\", description: \"One of two core developers for the Smart View Through Glass (SVTG) platform, allowing developers to easily couple performance sensors to an Android smartphone and various smartglasses such as Google Glass and Recon Jet. Using the library, we've created applications for rowing, horseback riding, (ice-) skating, medical rehabilitation, robotics and cycling.\" },\n { chips: [CHIP_DOTNET_FRAMEWORK, CHIP_GREXX], logo: LogoGemboxx, timespan: \"December 2013 - November 2016\", function: \"Full Stack Developer\", description: \"Part of a development team for various information systems for Dutch governments and municipalities, such as systems for civil affairs offices, appeal- and objection offices, and youth care institutions. Since the end of 2014 I have also been responsible for managing various teams who work on these systems, while remaining an active part of the development team.\" },\n ];\n\n const items = experiences.map(experience => )\n\n return (\n
\n \n
\n );\n}\n\nexport default withScrollableAnchor(ExperienceTimeline);","import React from \"react\";\nimport { makeStyles, Theme, createStyles, Typography } from \"@material-ui/core\";\n\nexport const offset_top = 40;\n\nconst useStyles = (props: EducationTimelineCardContent_Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\",\n },\n title: {\n paddingTop: 10,\n fontSize: 22,\n fontWeight: 400,\n textAlign: \"left\",\n lineHeight: 1.1,\n color: \"#414141\"\n },\n institution: {\n paddingTop: 40,\n textAlign: \"left\",\n textTransform: \"uppercase\",\n color: \"#878787\",\n fontWeight: 500,\n lineHeight: 1.1, \n fontSize: 13\n },\n timespan: {\n color: theme.palette.primary.main,\n fontSize: 16,\n textAlign: \"left\",\n fontWeight: 700,\n lineHeight: 1,\n paddingBottom: 6\n }\n}));\n\n\nexport interface EducationTimelineCardContent_Props {\n timespan: string,\n title: string,\n institution: string,\n}\n\nconst EducationTimelineCardContent = (props: EducationTimelineCardContent_Props) => {\n const classes = useStyles(props)();\n\n return (\n
\n {props.timespan}\n {props.title}\n {props.institution}\n
\n );\n}\n\nexport default EducationTimelineCardContent;","import React from \"react\";\nimport { makeStyles, Theme, createStyles, Grid, Typography } from \"@material-ui/core\";\nimport LogoDiamondAgile from \"../../../../../resources/logos/LogoDiamondAgile\"\nimport { Omit } from \"react-router\";\nimport LogoHiEfficiency from \"../../../../../resources/logos/LogoHiEfficiency\";\nimport LogoInnovum from \"../../../../../resources/logos/LogoInnovum\";\nimport LogoSilvesterConsultancy from \"../../../../../resources/logos/LogoSilvesterConsultancy\";\nimport LogoGemCloud from \"../../../../../resources/logos/LogoGemCloud\";\nimport LogoEquineInstruments from \"../../../../../resources/logos/LogoEquineInstruments\";\nimport LogoNwo from \"../../../../../resources/logos/LogoNwo\";\nimport Timeline from \"../../Timeline\";\nimport EducationTimelineCardContent, { EducationTimelineCardContent_Props } from \"./EducationTimelineCardContent\";\nimport { withScrollableAnchor, WithScrollableAnchor_Props_Injected } from \"../../../../generic/scroll_anchor/WithScrollableAnchor\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\"\n },\n}));\n\n\ninterface Props extends WithScrollableAnchor_Props_Injected {\n\n}\n\nconst EducationTimeline = (props: Props) => {\n const classes = useStyles(props)();\n\n const educations: Array = [\n { timespan:\"2016 - 2019\", title:\"Master of Business Informatics\", institution:\"Utrecht University\" },\n { timespan:\"2016\", title:\"Minor Informatics\", institution:\"Utrecht University\" },\n { timespan: \"2013 - 2016\", title: \"Bachelor of Information Sciences\", institution: \"Utrecht University\" },\n { timespan: \"2006 - 2012\", title: \"Atheneum\", institution: \"Marnix College\" },\n ];\n\n const items = educations.map(education => )\n\n return (\n
\n \n
\n );\n}\n\nexport default withScrollableAnchor(EducationTimeline);","export const DEFAULT_LEGAL_INPUT_CHARACTERS = \"\\r\\nαβγδεζηθικλμμῦνξοπρστυφχψωΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-=!?@#$€%^&*(){}[]<^>_+,./|\\\\`~‘’“'\\\"<>℗©®:;•±:ïöüäëéíóáúèùìòàêûîôâ\";","import React, { useState, useRef, useEffect } from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport { Grid, FormControl, InputLabel, FormHelperText, Input } from \"@material-ui/core\";\nimport { AbstractValidator } from \"@silvester/utility-validation\";\nimport { GridSize } from \"@material-ui/core/Grid\";\n\nconst useStyles = makeStyles(theme => createStyles({\n root: {\n width: \"100%\",\n padding: 20\n },\n control: {\n width: \"100%\"\n }\n}));\n\ninterface Props {\n id: string,\n initialValue?: string,\n label: string,\n validator: AbstractValidator,\n onFieldChange: (id: string, value: string, error: string | null) => void, \n multiline?: boolean,\n numberOfLines?: number,\n size: Size\n}\n\nexport interface Size {\n xs?: GridSize,\n sm?: GridSize,\n md?: GridSize,\n lg?: GridSize,\n xl?: GridSize\n}\n\nconst TextInput = (props: Props) => {\n const classes = useStyles();\n const value = useRef(props.initialValue || \"\");\n\n const [error, setError] = useState(null);\n\n const onInputChange = (event: React.ChangeEvent) => {\n onValueChange(event.target.value || \"\", true);\n }\n\n const onValueChange = (newValue: string, shouldSetError: boolean) => {\n value.current = newValue;\n\n const error = props.validator.validate(newValue, props.label.toLowerCase());\n props.onFieldChange(props.id, newValue, error);\n if (shouldSetError) {\n setError(error);\n }\n }\n\n useEffect(() =>\n {\n onValueChange(props.initialValue || \"\", false);\n })\n\n \n const hasError = () => {\n return error !== undefined;\n }\n\n return (\n \n \n {props.label}\n \n {hasError() && {error}}\n \n \n );\n}\n\nexport default TextInput;","import React from \"react\";\nimport { makeStyles, createStyles } from \"@material-ui/styles\";\nimport { Grid } from \"@material-ui/core\";\nimport { AbstractValidatorBuilder } from \"@silvester/utility-validation\";\nimport { DEFAULT_LEGAL_INPUT_CHARACTERS } from \"../../../resources/values/strings\";\nimport TextInput, { Size } from \"../../generic/inputs/TextInput\";\n\nconst useStyles = makeStyles(theme => createStyles({\n root: {\n \n }\n}));\n\nconst FIELD_NAME = \"name\";\nconst FIELD_EMAIL = \"email\";\nconst FIELD_MESSAGE = \"message\";\n\ninterface Props {\n onFieldChange: (id: string, value: string, error: string | null) => void\n}\n\nexport interface ContactForm_Data {\n [FIELD_NAME]?: string,\n [FIELD_EMAIL]?: string,\n [FIELD_MESSAGE]?: string\n}\n\nconst ContactForm = (props: Props) => {\n const classes = useStyles();\n\n const onFieldChange = (id: string, value: string, error: string | null) => {\n props.onFieldChange(id, value, error);\n }\n\n const size_half: Size = { xs: 12, sm: 6 }\n const size_full: Size = { xs: 12} \n\n return (\n
\n \n \n \n \n \n
\n );\n}\n\nexport default ContactForm;","import { AbstractApi } from \"@silvester/utility-auth\"\nimport { ContactForm_Data } from \"./ContactForm\";\nimport Cookies from \"js-cookie\";\n\nexport interface ContactFormApi_ResponseType {\n success: boolean,\n content: object\n}\n\nexport default class ContactFormApi extends AbstractApi\n{\n constructor(endpointUrl: string) {\n super(endpointUrl);\n }\n\n private onSetHeaders = (headers: Record) => {\n const csrfToken = Cookies.get(\"X-CSRF-TOKEN\");\n if (csrfToken) {\n headers[\"RequestVerificationToken\"] = csrfToken;\n }\n }\n\n public sendContactForm = async (data: ContactForm_Data) =>\n {\n const response = await this.sendGetRequest(\"/api/contact/submit\", data as { [key: string]: string }, undefined, undefined, this.onSetHeaders);\n try {\n return await response.clone().json() as ContactFormApi_ResponseType;\n }\n catch (e) {\n return { success: false, content: await response.clone().text() };\n }\n }\n}","import React, { useRef } from \"react\";\nimport { Card, makeStyles, Theme, createStyles, Typography, Button} from \"@material-ui/core\";\nimport ContactForm, { ContactForm_Data } from \"./ContactForm\";\nimport update from \"immutability-helper\";\nimport ContactFormApi from \"./ContactFormApi\";\nimport { WithSnackbar_Props_Injected, withSnackbar } from \"../../generic/feedback/WithSnackbar\";\nimport { withScrollableAnchor, WithScrollableAnchor_Props_Injected} from \"../../generic/scroll_anchor/WithScrollableAnchor\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n width: \"100%\"\n },\n title: {\n textAlign: \"center\",\n marginBottom: 30\n },\n card: {\n padding: 20,\n width: \"100%\"\n },\n card_title: {\n textAlign: \"center\",\n fontSize: 24, \n color: \"#3d4451\",\n fontWeight: 400,\n paddingBottom: 12,\n marginLeft: \"20%\",\n marginRight: \"20%\",\n borderBottom: \"1px solid #E7E7E7\"\n },\n footer: {\n textAlign: \"right\",\n paddingRight: 20\n },\n button: {\n\n }\n}));\n\n\ntype Props = WithSnackbar_Props_Injected & WithScrollableAnchor_Props_Injected & {\n\n}\n \nconst ContactFormCard = (props: Props) => {\n const classes = useStyles(props)();\n const data = useRef({});\n const errors = useRef({});\n\n const onFieldChange = (id: string, value: string | null, error: string | null) => {\n if (error === undefined || error === null) {\n data.current = update(data.current, { [id]: { $set: value } });\n }\n errors.current = update(errors.current, { [id]: { $set: error } });\n }\n\n const onSubmit = async () => {\n if (hasErrors())\n {\n props.showSnackbar(\"The data you have entered contains errors.\");\n return;\n }\n\n const api = new ContactFormApi(\"\");\n const response = await api.sendContactForm(data.current);\n if (response.success) {\n props.showSnackbar(\"The message has been successfully sent! We'll be in contact soon!\");\n }\n else {\n props.showSnackbar(\"Something went wrong while trying to send the message. The server says: '\" + response.content + \"'.\");\n }\n }\n\n const getErrors = () => {\n return Object\n .keys(errors.current)\n .filter(e => (errors.current as any)[e] !== undefined && (errors.current as any)[e] !== null);\n }\n\n const hasErrors = () => {\n return getErrors().length > 0;\n }\n\n return (\n
\n Contact Me\n \n Feel free to reach out to me!\n \n
\n \n
\n
\n
\n );\n}\n\nexport default withScrollableAnchor(withSnackbar(ContactFormCard));","import React from \"react\";\nimport PageContainer from \"../../components/PageContainer\";\nimport { makeStyles, Theme, createStyles } from \"@material-ui/core\";\nimport ProfileCard from \"../../components/profile/ProfileCard\";\nimport DownloadResume from \"../../components/download_resume/DownloadResume\";\nimport ProficiencyCard from \"../../components/proficiencies/ProficiencyCard\";\nimport ExperienceTimeline from \"../../components/timelines/instances/experiences/ExperienceTimeline\";\nimport EducationTimeline from \"../../components/timelines/instances/educations/EducationTimeline\";\nimport ContactFormCard from \"../../components/contact_me/ContactFormCard\";\n\nconst useStyles = (props: Props) => makeStyles((theme: Theme) => createStyles({\n root: {\n backgroundColor: \"#efefef\",\n }\n}));\n\n\nexport const ANCHOR_ABOUT = \"about\";\nexport const ANCHOR_RESUME = \"resume\";\nexport const ANCHOR_PROFICIENCY = \"proficiency\";\nexport const ANCHOR_EXPERIENCE = \"experience\";\nexport const ANCHOR_EDUCATION = \"education\";\nexport const ANCHOR_CONTACT = \"contact\";\n\ninterface Props {\n\n}\n\nconst HomePage = (props: Props) => {\n const classes = useStyles(props)();\n\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default HomePage;\n","import { createMuiTheme } from \"@material-ui/core/styles\";\n\nconst font = \"Open Sans\";\n\nexport const DefaultTheme = createMuiTheme({\n palette:\n {\n primary: {\n light: \"rgb(255, 197, 191)\",\n main: \"#e8676b\",\n dark: \"#bb101d\",\n contrastText: \"#FFFFFF\"\n },\n secondary: {\n light: \"#ffc947\",\n main: \"#ff9800\",\n dark: \"#c66900\",\n contrastText: \"#FFFFFF\"\n }\n },\n overrides:\n {\n MuiCard:\n {\n root:\n {\n borderRadius: 1\n }\n },\n MuiTabs: {\n indicator: {\n color: \"white\",\n backgroundColor: \"white\"\n }\n },\n MuiTypography:\n {\n root: {\n fontFamily: font\n }, \n h1: {\n fontFamily: font\n },\n h2: {\n fontFamily: font\n },\n h3: {\n fontWeight: 600,\n fontSize: 34,\n lineHeight: 1.2,\n fontFamily: font\n },\n h4: {\n fontFamily: font\n },\n h5: {\n fontFamily: font\n },\n h6: {\n fontFamily: font\n },\n body1: {\n fontFamily: font\n },\n body2: {\n fontFamily: font\n },\n caption: {\n fontFamily: font\n },\n button: {\n fontFamily: font\n },\n subtitle1: {\n fontFamily: font\n },\n subtitle2: {\n fontFamily: font\n },\n overline: {\n fontFamily: font\n }\n }\n }\n}); \n ","import React, { Component } from 'react';\nimport { Route } from 'react-router';\nimport HomePage from './ui/pages/home/HomePage';\nimport { ThemeProvider as MuiThemeProvider} from '@material-ui/styles';\nimport { DefaultTheme } from './resources/themes/DefaultTheme';\nimport { Provider as ReduxStoreProvider } from \"react-redux\";\nimport ReduxStoreDefault from './state/redux/stores/ReduxStoreDefault';\n\n\n\n\nexport default class App extends Component {\n static displayName = App.name;\n\n render() {\n return (\n \n \n \n \n \n );\n }\n}\n ","// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register () {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW (swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker (swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'bootstrap/dist/css/bootstrap.css';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom';\nimport App from './App';\nimport registerServiceWorker from './registerServiceWorker';\n\n\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\nconst rootElement = document.getElementById('root');\n\nReactDOM.render(\n \n \n ,\n rootElement);\n\nregisterServiceWorker();\n","module.exports = __webpack_public_path__ + \"static/media/header_image.d801e403.jpg\";"],"sourceRoot":""}