(this.webpackJsonpportfolio=this.webpackJsonpportfolio||[]).push([[0],{115:function(e,t,a){e.exports=a(388)},120:function(e,t,a){},122:function(e,t,a){},145:function(e,t,a){},146:function(e,t,a){},149:function(e,t,a){},150:function(e,t,a){},168:function(e,t,a){},169:function(e,t,a){},170:function(e,t,a){},172:function(e,t,a){},383:function(e){e.exports=JSON.parse('{"particles":{"number":{"value":40,"density":{"enable":true,"value_area":800}},"color":{"value":"#ffffff"},"shape":{"type":"circle","stroke":{"width":0,"color":"#000000"},"polygon":{"nb_sides":5},"image":{"src":"img/github.svg","width":100,"height":100}},"opacity":{"value":0.5,"random":true,"anim":{"enable":false,"speed":1,"opacity_min":0.1,"sync":false}},"size":{"value":10,"random":true,"anim":{"enable":false,"speed":80,"size_min":0.1,"sync":false}},"line_linked":{"enable":true,"distance":300,"color":"#ffffff","opacity":0.4,"width":2},"move":{"enable":true,"speed":2,"direction":"none","random":false,"straight":false,"out_mode":"out","bounce":false,"attract":{"enable":false,"rotateX":600,"rotateY":1200}}},"interactivity":{"detect_on":"canvas","events":{"resize":true},"modes":{"connect":{"distance":100,"radius":60,"line_linked":{"opacity":1}},"grab":{"distance":300,"line_linked":{"opacity":1}},"bubble":{"distance":800,"size":80,"duration":2,"opacity":8,"speed":3},"repulse":{"distance":170,"duration":5},"push":{"particles_nb":4},"remove":{"particles_nb":2},"emitter":{"direction":"top-right","life":{"count":1,"duration":5,"delay":0.5},"particles":{},"position":{"x":50,"y":50},"size":{"width":10,"height":10,"mode":"percent"},"rate":{"quantity":1,"delay":0.01}},"absorber":{"color":"#000000","opacity":1,"position":{"x":50,"y":50},"size":{"density":5,"limit":100,"random":true,"value":50}}}},"infection":{"cure":true,"delay":1,"enable":true,"infections":20,"stages":[{"color":"#ffffffff","radius":1,"rate":0.75,"duration":3,"infectedStage":1},{"color":"#d7d7d7ff","radius":1,"rate":0.75,"duration":3,"infectedStage":2},{"color":"#c7c7c7ff","radius":1,"rate":0.75,"duration":3,"infectedStage":3},{"color":"#999999ff","radius":1,"rate":0.75,"duration":3,"infectedStage":4},{"color":"#818181ff","radius":1,"rate":0.75,"duration":3,"infectedStage":0}]}}')},385:function(e,t,a){},388:function(e,t,a){"use strict";a.r(t);var n,i=a(0),l=a.n(i),r=a(24),c=a.n(r),o=a(111),s=a(9),d=(a(120),a(23)),u=a.n(d),m=a(103),f=a(12),p=(a(122),a(123),a(104)),v=a.n(p),E=a(8),b=a(105),g=a(106),h=a(34),S=a(113),y=a(112),O=(a(145),a(14)),w=(a(146),function(e){var t=l.a.useState(e.titleStr),a=Object(f.a)(t,2),n=a[0],r=(a[1],l.a.useState("")),c=Object(f.a)(r,2),o=c[0],s=c[1],d=l.a.useState(!1),u=Object(f.a)(d,2),m=u[0],p=u[1],v=l.a.createRef();return Object(i.useEffect)((function(){if(o!==n){var e=o?O.a.random(60,85):1e3;setTimeout((function(){s(o+n.charAt(o.length))}),e)}o===n&&p(!0)}),[o,n]),Object(i.useEffect)((function(){m&&(O.a.timeline({delay:1500}).add({duration:1e3,targets:".title-text",easing:"easeInOutCirc",translateY:["4vh",0],delay:0},0).add({targets:".subtitle",translateY:{easing:"easeOutQuint",value:["-1vh",0],delay:500,duration:1500},opacity:{value:[0,1],duration:1500,delay:500}},0).add({targets:"#linebreak",width:{easing:"easeOutQuint",value:"45%",delay:500,duration:750}},0).add({targets:"header .social",translateY:{easing:"easeOutQuint",value:["-1vh",0],delay:500,duration:1500},opacity:{value:[0,1],duration:1500,delay:500}},250),!e.skipTitle&&Object(O.a)({targets:".scrollicon",opacity:{value:[0,1],duration:1e3,delay:500},translateY:{value:["4vh",0],easing:"easeOutQuint",duration:1e3,delay:500}}))}),[m]),l.a.createElement("div",{className:"row banner banner-text"},l.a.createElement("div",{className:"title-text"},l.a.createElement("h1",{className:"responsive-headline",id:"title"},o)),l.a.createElement("div",{className:"subtitle",ref:v},l.a.createElement("h3",null," Full-Stack Developer "),l.a.createElement("hr",{id:"linebreak"}),l.a.createElement("ul",{className:"social"},e.networks)))});!function(e){e.SWAP_SLIDE="SWAP_SLIDE",e.PLAY_SLIDE="PLAY_SLIDE",e.REGISTER_SLIDES="REGISTER_SLIDES",e.REGISTER_SLIDE="REGISTER_SLIDE",e.URL_TO_SLIDE="URL_TO_SLIDE",e.SCROLL_SLIDE="SCROLL_SLIDE"}(n||(n={}));var j=function(e){return{type:n.SWAP_SLIDE,activeSlide:e}},N=function(){return{type:n.PLAY_SLIDE,playSlide:void 0}},_=function(e,t){return{type:n.REGISTER_SLIDE,slideName:e,key:t}},k=a(15),T=a(22),C=a.n(T),L=function(e){Object(S.a)(a,e);var t=Object(y.a)(a);function a(e){var n;return Object(b.a)(this,a),(n=t.call(this,e)).showSlider=function(){!C()({tablet:!0})&&n.state.sliderHidden&&(n.setState({skipTitle:!0,sliderHidden:!1}),Object(O.a)({targets:[".banner"],translateX:"-27.5%",duration:1250,easing:"easeOutCirc"}),Object(O.a)({targets:[".scrollicon"],translateY:"10vw",duration:1500,easing:"easeOutCirc"}),Object(O.a)({targets:[".slider"],translateY:["10vh","0"],opacity:[0,1],duration:1500,easing:"easeOutCirc",begin:function(){void 0===n.props.activeSlide&&n.props.swapSlide(0)}}),Object(O.a)({targets:["#navBar"],translateX:["5vw","0"],opacity:[0,1],duration:1500,easing:"easeOutCirc"}))},n.getNetworks.bind(Object(h.a)(n)),n.showSlider.bind(Object(h.a)(n)),n.state={sliderHidden:!0,skipTitle:!1},n}return Object(g.a)(a,[{key:"getNetworks",value:function(){return this.props.data.social?this.props.data.social.map((function(e){return l.a.createElement("li",{key:e.name},l.a.createElement("a",{href:e.url},l.a.createElement("i",{className:e.className})))})):null}},{key:"componentDidMount",value:function(){window.addEventListener("wheel",this.showSlider,{once:!0,passive:!0,capture:!0}),window.addEventListener("click",this.showSlider,{once:!0})}},{key:"componentDidUpdate",value:function(){this.props.skipTitle&&this.showSlider()}},{key:"render",value:function(){return l.a.createElement("header",{id:"home"},l.a.createElement(w,{titleStr:"Hi, I'm ".concat(this.props.data.name,"."),networks:this.getNetworks(),skipTitle:this.state.skipTitle}),C()({tablet:!0})?l.a.createElement("p",{className:"scrolldown"},l.a.createElement("a",{className:"scrollicon",onClick:this.showSlider},l.a.createElement("i",{className:"icon-down-circle"}))):l.a.createElement(i.Fragment,null,this.props.slider,l.a.createElement("p",{className:"scrolldown"},l.a.createElement("a",{className:"scrollicon",onClick:this.showSlider,href:"#about"},l.a.createElement("i",{className:"icon-down-circle"})))))}}]),a}(i.Component),I=Object(k.b)((function(e,t){return Object(E.a)({activeSlide:e.slideState.activeSlide,skipTitle:e.slideState.skipTitle},t)}),{swapSlide:j})(L),D=(a(149),function(e){return l.a.createElement("div",{id:"about"},l.a.createElement("div",{className:"titleDiv"},l.a.createElement("svg",{id:"title",viewBox:"0 0 150 100",className:"svgTitle"},l.a.createElement("text",{x:"50%",y:"60%",textAnchor:"middle",fill:"transparent"}," ABOUT")),l.a.createElement("hr",null)),l.a.createElement("div",{className:"about-text"},l.a.createElement("p",null," ","A new grad from Vancouver, BC. I'm a developer with an affinity for exploring all the industry has to offer. While I'm currently enjoying learning modern front-end technology (like building this site), I'm eager to learn whatever else may interest me and makes me a strong asset in my field."," "),l.a.createElement("br",null),l.a.createElement("p",null,"With work history in two Fortune 500 companies, I have experience in large enterprise development, as well as small scale applications and projects built for private utility to help teams throughout company."," "),l.a.createElement("br",null),l.a.createElement("p",null," ","A majority of my hobbies involve creating and building; currently things such as CGI graphics, computer builds, and cooking.")),l.a.createElement("div",{id:"tools-section"},l.a.createElement("h2",null,"Things I like using:"),l.a.createElement("ul",{id:"tools"},e.data.tools.map((function(e,t){return l.a.createElement("li",{className:"logo",key:t},l.a.createElement("img",{src:e.path,alt:"Trulli"}),l.a.createElement("p",null,e.name.charAt(0).toUpperCase()+e.name.slice(1)))})))))});D.displayName="About";var R=Object(k.b)((function(e,t){return Object(E.a)({slideState:e.slideState},t)}),{resetPlaySlide:N})(D),x=(a(150),a(36)),A=a(108),P=a.n(A),W=Object(k.b)((function(e,t){return Object(E.a)({slideState:e.slideState},t)}),{resetPlaySlide:N,registerSlide:_})((function(e){var t=l.a.useState(),a=Object(f.a)(t,2),n=a[0],i=a[1],r=l.a.useState(),c=Object(f.a)(r,2),o=c[0],s=c[1],d=l.a.useState(),u=Object(f.a)(d,2),m=u[0],p=u[1],v=l.a.useState(),E=Object(f.a)(v,2),b=E[0],g=E[1],h=function(){x.b.error("\u274c Something went wrong, try my email/phone number.(and tell me about my bugs)",{position:"bottom-center",autoClose:5e3,hideProgressBar:!0,closeOnClick:!0,pauseOnHover:!0,draggable:!0,progress:void 0})},S=function(){x.b.success("\ud83d\udc4d Message sent! I'll get to you shortly.",{position:"bottom-center",autoClose:5e3,hideProgressBar:!0,closeOnClick:!0,pauseOnHover:!0,draggable:!0,progress:void 0})};return l.a.createElement("div",{id:"contact"},l.a.createElement("div",{className:"titleDiv"},l.a.createElement("svg",{id:"title",viewBox:"0 0 150 100",className:"svgTitle"},l.a.createElement("text",{x:"50%",y:"60%",textAnchor:"middle",fill:"transparent"}," CONTACT")),l.a.createElement("hr",null)),l.a.createElement("div",{className:"contact-form-div"},l.a.createElement("form",{id:"contact-form",autoComplete:"false",onSubmit:function(e){return function(e){e.preventDefault();var t={name:n,email:o,subject:m,message:b};console.log(t),console.log(Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,REACT_APP_CONTACT_URL:"https://us-central1-portfolio-282821.cloudfunctions.net/portfolio-contact-form"})),P.a.post("https://us-central1-portfolio-282821.cloudfunctions.net/portfolio-contact-form",t).then((function(e){S(),console.log("sent!")})).catch((function(e){console.log("Message not sent: ".concat(e)),h()}))}(e)}},l.a.createElement("ul",null,l.a.createElement("li",{className:"half input"},l.a.createElement("input",{className:"input-field",placeholder:"Name",type:"text",name:"name",required:!0,onChange:function(e){return i(e.target.value)}}),l.a.createElement("div",{className:"border"})),l.a.createElement("li",{className:"half input"},l.a.createElement("input",{className:"input-field",placeholder:"Email",type:"email",name:"email",required:!0,onChange:function(e){return s(e.target.value)}}),l.a.createElement("div",{className:"border"})),l.a.createElement("li",{className:"full input"},l.a.createElement("input",{className:"input-field",placeholder:"Subject",type:"text",name:"subject",required:!0,onChange:function(e){return p(e.target.value)}}),l.a.createElement("div",{className:"border"})),l.a.createElement("li",{className:"box input"},l.a.createElement("textarea",{className:"input-field text-field",placeholder:"Message",name:"msg",required:!0,onChange:function(e){return g(e.target.value)}}),l.a.createElement("div",{className:"border"})),l.a.createElement("li",{className:"submit animated fadeInUp"},l.a.createElement("input",{id:"submit",type:"submit",className:"flat-button",value:"SEND"}))))),l.a.createElement("div",{id:"contact-message"},l.a.createElement("hr",null),l.a.createElement("h3",null,"Other Ways"),l.a.createElement("p",null,"(+1) 778 - 388 - 2376"),l.a.createElement("p",null,"vincentthanhlam@gmail.com")))})),Y=a(390),B=a(61),U=(a(168),a(169),Object(k.b)((function(e,t){return{slides:e.slideState.slides,activeSlide:e.slideState.activeSlide}}),{swapSlide:j})((function(e){return l.a.createElement("div",{id:"navBar"},l.a.createElement("ul",null,Array.from(e.slides.entries(),(function(t){var a=Object(f.a)(t,2),n=a[0],i=a[1];return l.a.createElement("li",{key:n,className:"navEntry "+(e.activeSlide===i?"current":""),onClick:function(){return e.swapSlide(i)}},l.a.createElement("div",{className:"navContent"},l.a.createElement("i",{className:"material-icons"},function(e){switch(e.toLowerCase()){case"about":return"person";case"resume":return"text_snippet";case"contact":return"call";default:return"home"}}(n.toLowerCase())),l.a.createElement("div",null,l.a.createElement("p",null,n.toUpperCase()))))}))))}))),q=(a(170),a(171)),H=Object(k.b)((function(e,t){return Object(E.a)(Object(E.a)({},t),{},{activeSlide:e.slideState.activeSlide})}),{swapSlide:j,registerSlide:_,scrollSlide:function(e){return{type:n.SCROLL_SLIDE,direction:e}}})((function(e){var t=l.a.useState(),a=Object(f.a)(t,2),n=a[0],r=a[1],c=l.a.useState(!1),o=Object(f.a)(c,2),s=o[0],d=o[1],u=l.a.useState(e.slides.map((function(){return!1}))),m=Object(f.a)(u,2),p=m[0],v=(m[1],l.a.createRef()),E=function(e){!p[e]&&function(e){Object(O.a)({targets:".slide-".concat(e," #title text"),opacity:[0,1],strokeDasharray:[{value:["0% 100%","100% 0%"],duration:1e3}],easing:"easeOutCirc"}),Object(O.a)({targets:".titleDiv hr",opacity:[0,1],width:[{value:["0%","15%"],duration:1e3}],easing:"easeOutCirc"})}(e,0),p[e]=!0};return Object(i.useEffect)((function(){var t;(console.log(e.activeSlide,!s),void 0===e.activeSlide||s)?void 0!==e.activeSlide&&function(e){if(n!==e){var t=n?n0?1:-1;e.scrollSlide(a)}),200,{leading:!0,trailing:!1}),{passive:!0})}),1e3),d(!0))}),[e]),l.a.createElement(i.Fragment,null,l.a.createElement(Y.a,{className:"slider"},e.slides.map((function(t,a){return l.a.createElement(B.a,{timeout:500,appear:!0,mountOnEnter:!0,unmountOnExit:!0,key:"slide-".concat(a),nodeRef:v},l.a.createElement("div",{className:"slide-".concat(a," slide ")+(e.activeSlide,""),key:"slide-".concat(a,"-page"),ref:v},l.a.createElement("div",{className:C()({tablet:!0})&&0===a?"main":"",id:"background"},t)))}))),l.a.createElement(U,null))})),M=a(389),Q=(a(172),a(109)),z=a.n(Q),F=a(383),G=function(){var e=l.a.useState(),t=Object(f.a)(e,2),a=t[0],n=t[1],r=l.a.useState(),c=Object(f.a)(r,2),o=c[0],s=c[1],d=function(){n(window.innerHeight),s(window.innerWidth)},u=function(){setTimeout((function(){return O.a.timeline({targets:document.getElementById("_buffering-background")}).add({duration:2500,easing:"easeOutQuad",opacity:[0,1]}).add({duration:2500,easing:"easeInQuad",opacity:[1,0]})}),29500)};return Object(i.useEffect)((function(){window.YT.ready((function(){new YT.Player("YouTubeBackgroundVideoPlayer",{videoId:"qt9jjQqJ3Wc",width:o,height:a,playerVars:{autoplay:1,autohide:1,disablekb:1,controls:0,showinfo:0,modestbranding:1,loop:1,fs:0,rel:0,playlist:"qt9jjQqJ3Wc",enablejsapi:1,cc_load_policy:0,iv_load_policy:3,playsinline:1,origin:"".concat(window.location.origin.toString())},events:{onReady:function(e){e.target.mute(),e.target.setPlaybackQuality("hd1080"),e.target.playVideo(),Object(O.a)({duration:2e3,easing:"easeInQuad",targets:document.getElementById("_buffering-background"),opacity:[1,0],delay:1e3}),u()},onStateChange:function(e){0===e.data&&u()}}})}),[]),window.addEventListener("resize",d)})),l.a.createElement(M.a,{in:!0,timeout:1e4},l.a.createElement("div",{className:"video-background"},l.a.createElement("div",{className:"pattern-overlay"}),l.a.createElement("div",{id:"_buffering-background"}),!C()({tablet:!0})&&l.a.createElement(z.a,{className:"particles",params:F}),l.a.createElement("div",{className:"video-foreground",id:"YouTubeBackgroundVideoPlayer"})))},V=a(110),K=a.n(V),J=(a(384),a(385),a(22)),X=Object(k.b)((function(e,t){return Object(E.a)({slideState:e.slideState},t)}),{resetPlaySlide:N,registerSlide:_})((function(e){return l.a.createElement("div",{id:"resume"},l.a.createElement("div",{className:"titleDiv"},l.a.createElement("svg",{id:"title",viewBox:"0 0 150 100",className:"svgTitle"},l.a.createElement("text",{x:"50%",y:"60%",textAnchor:"middle",fill:"transparent"}," RESUME & WORK")),l.a.createElement("hr",null)),l.a.createElement(K.a,{className:"resume-slider"},l.a.createElement("div",{id:"resumeSlide"},l.a.createElement("div",{id:"pdfDiv"},J({tablet:!0})?l.a.createElement("iframe",{title:"resumePdf",id:"resumePdf",src:"https://drive.google.com/file/d/1tgh9ymwnGOIz2_FtGaaHbu6RNw5Yq33J/preview",onClick:function(){}}):l.a.createElement("embed",{id:"resumePdf",src:"Vincent LAM CMPT August 2020.pdf"}))),l.a.createElement("div",null,l.a.createElement("div",{id:"workDiv"},l.a.createElement("blockquote",{className:"embedly-card","data-card-theme":"dark"},l.a.createElement("h4",null,l.a.createElement("a",{href:"https://medium.com/apache-mxnet/self-driving-remote-control-car-with-apache-mxnet-1919541a83d7"},"Self driving remote-control car with Apache MXNet")),l.a.createElement("p",null,"This is the complete list of parts required to build the car. I've added some additional comments based on my experience buying some of these items, as the availability of parts varies by location. After you have procured all of the components, it's time to assemble the hardware."))))))})),$=(a(386),Object(k.b)((function(e,t){return{b:t}}),{urlToSlide:function(e){return{type:n.URL_TO_SLIDE,slideName:e}},registerSlide:_,swapSlide:j})((function(e){var t=l.a.useState(),a=Object(f.a)(t,2),n=a[0],i=a[1];console.log(Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,REACT_APP_CONTACT_URL:"https://us-central1-portfolio-282821.cloudfunctions.net/portfolio-contact-form"})),l.a.useEffect((function(){console.log(e),r()}),[e]),l.a.useEffect((function(){}));var r=function(){var t=Object(m.a)(u.a.mark((function t(){return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,fetch("/resumeData.json").then((function(e){return e.ok||(console.log(e),alert(e)),e.json()})).then((function(t){var a=l.a.createElement(R,{data:t,name:"About"}),n=l.a.createElement(W,{data:t,name:"Contact"}),r=[a,l.a.createElement(X,{data:t,name:"Resume"}),n];if(Object(T.isMobile)({tablet:!0})){var c=l.a.createElement(I,{name:"Home",data:t});r.unshift(c),i(l.a.createElement(H,{slides:r}))}else{var o=l.a.createElement(H,{slides:r});i(l.a.createElement(I,{name:"Home",data:t,slider:o}))}r.forEach((function(t,a){e.registerSlide(t.props.name,a)}))})).then((function(){e.match.params.slide?e.urlToSlide(e.match.params.slide):Object(T.isMobile)({tablet:!0})&&e.swapSlide(0)}));case 2:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();return n?l.a.createElement("div",{className:"App"},l.a.createElement(G,null),n,l.a.createElement(x.a,{position:"bottom-center",autoClose:5e3,closeOnClick:!0,pauseOnFocusLoss:!0,draggable:!0,pauseOnHover:!0})):l.a.createElement("div",{id:"loader"},l.a.createElement(v.a,{type:"Rings",color:"#00BFFF",height:100,width:100,timeout:3e3}))})));Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var Z=a(31);var ee=Object(Z.b)({slideState:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{slides:new Map},t=arguments.length>1?arguments[1]:void 0;switch(console.log(t,e),t.type){case n.SCROLL_SLIDE:if(void 0===e.activeSlide)return e;var a=e.activeSlide+(t.direction||0);return a<0||a>=e.slides.size||void 0===t.direction?e:Object(E.a)(Object(E.a)({},e),{},{activeSlide:a,playSlide:a});case n.SWAP_SLIDE:return Object(E.a)(Object(E.a)({},e),{},{activeSlide:t.activeSlide,playSlide:t.activeSlide});case n.PLAY_SLIDE:return Object(E.a)(Object(E.a)({},e),{},{playSlide:t.playSlide});case n.REGISTER_SLIDE:var i=new Map(e.slides);return i.set(t.slideName.toLowerCase(),t.key),Object(E.a)(Object(E.a)({},e),{},{slides:i});case n.URL_TO_SLIDE:var l=e.slides.get(t.slideName);return console.log(e,l),Object(E.a)(Object(E.a)({},e),{},{activeSlide:l,skipTitle:!0});default:return e}}}),te=Object(Z.c)(ee);c.a.render(l.a.createElement(l.a.StrictMode,null,l.a.createElement(k.a,{store:te},l.a.createElement(o.a,null,l.a.createElement(s.a,{path:"/:slide?",component:$})))),document.getElementById("root")),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))}},[[115,1,2]]]); //# sourceMappingURL=main.9576bce3.chunk.js.map