{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/enums/views.enum.ts","./src/app/footer/footer.component.ts","./src/app/footer/footer.component.html","./src/app/header/header.component.ts","./src/app/header/header.component.html","./src/app/link-list/link-list.component.ts","./src/app/link-list/link-list.component.html","./src/app/links-view/links-view.component.ts","./src/app/links-view/links-view.component.html","./src/app/portfolio-item/portfolio-item.component.ts","./src/app/portfolio-item/portfolio-item.component.html","./src/app/portfolio/portfolio.component.ts","./src/app/portfolio/portfolio.component.html","./src/app/sidebar/sidebar.component.ts","./src/app/sidebar/sidebar.component.html","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","import { Component } from '@angular/core';\nimport { Views } from './enums/views.enum';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Turbid Water';\n currentView = Views.PORTFOLIO;\n\n constructor() {\n const urlParts = location.href.split(\"?\");\n const queryString = urlParts.length === 2 ? urlParts[1] : '';\n const queryParams = new URLSearchParams(queryString);\n this.currentView = queryParams.get(\"view\") === Views.LINKS ? Views.LINKS : Views.PORTFOLIO;\n }\n\n public onCurrentViewClick( view: Views ): void {\n this.currentView = view;\n }\n}\n","
\n \n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n
\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { AppComponent } from './app.component';\nimport { PortfolioComponent } from './portfolio/portfolio.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { HeaderComponent } from './header/header.component';\nimport { PortfolioItemComponent } from './portfolio-item/portfolio-item.component';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { LinksViewComponent } from './links-view/links-view.component';\nimport { LinkListComponent } from './link-list/link-list.component';\n\n@NgModule({\n declarations: [\n AppComponent,\n PortfolioComponent,\n FooterComponent,\n HeaderComponent,\n PortfolioItemComponent,\n SidebarComponent,\n LinksViewComponent,\n LinkListComponent\n ],\n imports: [\n BrowserModule, FlexLayoutModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","export enum Views {\n PORTFOLIO = \"portfolio\",\n LINKS = \"links\"\n}","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { Views } from '../enums/views.enum';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n @Input() public title: string;\n @Input() public currentView: Views;\n\n @Output() public currentViewClick: EventEmitter = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public onLinksClicked() {\n this.onViewChanged( Views.LINKS );\n }\n\n public onPortfolioClicked() {\n this.onViewChanged( Views.PORTFOLIO );\n }\n\n private onViewChanged( view: Views ): void {\n this.currentView = view;\n console.log('#### view is ' + view );\n this.currentViewClick.emit( this.currentView );\n }\n}\n","
\n

{{title}}

\n \n
 
\n
","import { Component, OnInit, Input } from '@angular/core';\nimport { ILink } from '../links-view/links-view.component';\n\n@Component({\n selector: 'app-link-list',\n templateUrl: './link-list.component.html',\n styleUrls: ['./link-list.component.css']\n})\nexport class LinkListComponent implements OnInit {\n @Input() title: string;\n @Input() links: ILink[];\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

{{title}}

\n\n","import { Component, OnInit } from '@angular/core';\nimport linksData from '../../assets/links.json';\n\nexport enum LinkStatus {\n ACTIVE = 'active',\n INCOMPLETE = 'incomplete',\n COMPLETE = 'complete',\n BORED = 'bored',\n HIATUS = 'hiatus',\n}\n\nexport interface ILink {\n name: string;\n url: string;\n status: string;\n updates?: string;\n recommended?: boolean;\n}\n\nconst DAYS = String('UMTWHFS').split('');\nconst INTERMITTENT = 'I';\n\n@Component({\n selector: 'app-links-view',\n templateUrl: './links-view.component.html',\n styleUrls: ['./links-view.component.css']\n})\nexport class LinksViewComponent implements OnInit {\n\n public comics: ILink[] = linksData.comics;\n public blogs: ILink[] = linksData.blogs.sort( this.sortLinks );\n public updatedToday: ILink[] = [];\n public activeLinks: ILink[] = [];\n public completeLinks: ILink[] = [];\n public incompleteLinks: ILink[] = [];\n public boringLinks: ILink[] = [];\n\n private dayCode = DAYS[ new Date().getDay() ];\n\n constructor() {}\n\n ngOnInit(): void {\n this.updatedToday = this.comics.concat( this.blogs ).filter( this.filterByDayOfWeek.bind(this) ).sort( this.sortLinks );\n this.activeLinks = this.comics.filter( link => this.filterByStatus(link, LinkStatus.ACTIVE) ).sort( this.sortLinks );\n this.activeLinks = this.activeLinks.concat( this.comics.filter( link => this.filterByStatus(link, LinkStatus.HIATUS) ).sort( this.sortLinks ) );\n this.completeLinks = this.comics.filter( link => this.filterByStatus(link, LinkStatus.COMPLETE) ).sort( this.sortLinks );\n this.incompleteLinks = this.comics.filter( link => this.filterByStatus(link, LinkStatus.INCOMPLETE) ).sort( this.sortLinks );\n this.boringLinks = this.comics.filter( link => this.filterByStatus(link, LinkStatus.BORED) ).sort( this.sortLinks );\n }\n\n private filterByDayOfWeek( link: ILink ): boolean {\n let showToday: boolean = false;\n const today = new Date();\n const firstWeek = today.getDate() < 8;\n if (link.updates.indexOf(this.dayCode) > -1) {\n if (link.status === LinkStatus.ACTIVE) {\n showToday = true;\n } else if (link.status === LinkStatus.HIATUS) {\n // For links on hiatus, only return true if it is the first week of every other month\n showToday = firstWeek && today.getMonth() % 2 === 0;\n }\n } else if (link.updates === INTERMITTENT) {\n // Check every first Monday for intermittent comics\n showToday = this.dayCode === \"M\" && firstWeek;\n }\n\n return showToday\n }\n\n private filterByStatus( link: ILink, status: LinkStatus ): boolean {\n return link.status === status;\n }\n\n private sortLinks( linkA: ILink, linkB: ILink ): number {\n if (linkA.recommended && !linkB.recommended) {\n return -1;\n } else if (!linkA.recommended && linkB.recommended) {\n return 1;\n } else {\n return linkA.name > linkB.name ? 1 : -1;\n }\n }\n\n}\n","
\n
\n 0\" [title]=\"'Updated Today'\" [links]=\"updatedToday\">\n \n
\n
\n \n \n \n \n
\n
\n \n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { IPortfolioItem } from './portfolio-item.model';\n\n@Component({\n selector: 'app-portfolio-item',\n templateUrl: './portfolio-item.component.html',\n styleUrls: ['./portfolio-item.component.css']\n})\nexport class PortfolioItemComponent implements OnInit {\n\n @Input() public item: IPortfolioItem; \n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n \n
\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { IPortfolioItem } from '../portfolio-item/portfolio-item.model';\n\n@Component({\n selector: 'app-portfolio',\n templateUrl: './portfolio.component.html',\n styleUrls: ['./portfolio.component.css'],\n})\nexport class PortfolioComponent implements OnInit {\n public items: Array = [\n {\n title: 'Soundboard',\n description:\n 'A soundboard program written in Python to turn a Raspberry Pi with a keyboard into a configurable soundboard. Each key press plays a different sound, with key combinations to switch the set of sounds being used. Supports text-to-speech. Also has volume control and the ability for some minor audio manipulation. This was built as a present for my son who loves pushing buttons that do things. It also was an excuse for me to learn Python.',\n url: 'https://github.com/turbidwater/soundboard',\n imageUrl: 'assets/soundboard.png',\n },\n {\n title: 'Commute Tracker',\n description:\n 'I wanted to track how long taking different routes on my commute fared over time. In order to do that, I built an Android application that used geolocation to track this. I incorporated voice commands for hands free interactions. It was built with ActionScript, Flex, and Java. The Java part was creating Android Native Extensions for sending long emails and detecting the geo capabilities available. I also even made the logo in Illustrator.',\n url: 'https://play.google.com/store/apps/details?id=air.com.turbidwater.commutetracker.CommuteTrackerFlex',\n imageUrl: 'assets/commuteTracker.png',\n },\n {\n title: 'The Life of God in the Soul of Man',\n description:\n \"I made two copies of the book The Life of God in the Soul of Man by Henry Scougal. When I say I made them, I really did. I typeset the books, printed them, built the cases, sewed the signatures together and made the physical book. The text is a public domain book from the 1600s that was inspiration for the book called The Pleasures of God by John Piper. This was made as a gift for my wife.\",\n url: 'http://www.turbidwater.com/portfolio/downloads/TheLifeOfGodInTheSoulOfMan.pdf',\n imageUrl: 'assets/lifeOfGod.png',\n },\n {\n title: 'The Little Book of Origins',\n description:\n 'I made a book from scratch for an Advanced Typography class. It is more of an art book exploring two different systems of thought on how our current world came to be. I created the images and content for book, typeset it, and physically created the book. This site serves as a companion for the book. It displays the evolution of the creative process of the book.',\n url: 'http://www.turbidwater.com/portfolio/lboo/creation.htm',\n imageUrl: 'assets/lboo.png',\n },\n {\n title: 'Ragnars Saga LoĆ°brokar',\n description:\n \"The translation of an Icelandic edda by Chris VanDyke. The story is about a family of crazy warriors. It involves war cows, boneless archers, armor made from wooly breeches, and SPOILER: death by snake pit. I typeset and bound 3 copies of the book, which contains among other things, a glossary of proper names and many, many translator's notes. This is the non-impositioned PDF of the text.\",\n url: 'http://www.turbidwater.com/portfolio/downloads/RagnarsSaga.pdf',\n imageUrl: 'assets/ragnar.png',\n },\n ];\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-sidebar',\n templateUrl: './sidebar.component.html',\n styleUrls: ['./sidebar.component.css']\n})\nexport class SidebarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n \n
\n
\n

My name is Nils Thingvall. I'm a staff engineer at Dolby Laboratories. I do work on video-centric applications on a variety of platforms (web, Node, Roku, Chromecast, and Android).

\n

Outside of work, I focus on cooking, board games, and watching the good cartoons. Oh, and my kids. They're around here somewhere...

\n
\n
\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"sourceRoot":"webpack:///"}