{"version":3,"sources":["./$_lazy_route_resources|lazy|groupOptions: {}|namespace object","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/components/about/about.component.ts","./src/app/components/about/about.component.html","./src/app/components/blogread/blogread.component.html","./src/app/components/blogread/blogread.component.ts","./src/app/components/codeexamples/codeexamples.component.ts","./src/app/components/codeexamples/codeexamples.component.html","./src/app/components/codeexamples/examples/angularforms/angularforms.component.ts","./src/app/components/codeexamples/examples/angularforms/angularforms.component.html","./src/app/components/codeexamples/examples/angularforms/overlay/angularforms-overlay.component.ts","./src/app/components/codeexamples/examples/angularforms/overlay/angularforms-overlay.component.html","./src/app/components/codeexamples/examples/blog/blog.component.ts","./src/app/components/codeexamples/examples/blog/blog.component.html","./src/app/components/codeexamples/examples/blog/overlay/blog-overlay.component.ts","./src/app/components/codeexamples/examples/blog/overlay/blog-overlay.component.html","./src/app/components/codeexamples/examples/games/games.component.ts","./src/app/components/codeexamples/examples/games/games.component.html","./src/app/components/codeexamples/examples/games/games/snake/snake.component.ts","./src/app/components/codeexamples/examples/games/games/snake/snake.component.html","./src/app/components/codeexamples/examples/games/games/snake/snake.constants.ts","./src/app/components/codeexamples/examples/games/games/tetris/tetris.component.ts","./src/app/components/codeexamples/examples/games/games/tetris/tetris.component.html","./src/app/components/codeexamples/examples/games/games/tetris/tetris.constants.ts","./src/app/components/codeexamples/examples/games/games/tetris/tetris.service.ts","./src/app/components/codeexamples/examples/games/games/tetris/tetrispiece.component.ts","./src/app/components/codeexamples/examples/games/overlay/games-overlay.component.ts","./src/app/components/codeexamples/examples/games/overlay/games-overlay.component.html","./src/app/components/codeexamples/examples/googlemap/googlemap.component.ts","./src/app/components/codeexamples/examples/googlemap/googlemap.component.html","./src/app/components/codeexamples/examples/googlemap/overlay/googlemap-overlay.component.ts","./src/app/components/codeexamples/examples/googlemap/overlay/googlemap-overlay.component.html","./src/app/components/codeexamples/examples/polygonio/overlay/polygon-overlay.component.ts","./src/app/components/codeexamples/examples/polygonio/overlay/polygon-overlay.component.html","./src/app/components/codeexamples/examples/polygonio/polygonio.component.ts","./src/app/components/codeexamples/examples/polygonio/polygonio.component.html","./src/app/components/codeexamples/examples/twitter/overlay/twitter-overlay.component.ts","./src/app/components/codeexamples/examples/twitter/overlay/twitter-overlay.component.html","./src/app/components/codeexamples/examples/twitter/twitter.component.ts","./src/app/components/codeexamples/examples/twitter/twitter.component.html","./src/app/components/contactme/contactme.component.ts","./src/app/components/contactme/contactme.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/components/header/header.component.ts","./src/app/components/header/header.component.html","./src/app/components/navigation/navigation.component.ts","./src/app/components/navigation/navigation.component.html","./src/app/components/pagenotfound/pagenotfound.component.ts","./src/app/components/pagenotfound/pagenotfound.component.html","./src/app/components/welcome/welcome.component.ts","./src/app/components/welcome/welcome.component.html","./src/app/models/email_models.ts","./src/app/services/blogapi.service.ts","./src/app/services/chartapi.service.ts","./src/app/services/emailapi.service.ts","./src/app/services/googlemarkerapi.service.ts","./src/app/services/polygon-io.service.ts","./src/app/services/snake-score.service.ts","./src/app/services/twitterapi.service.ts","./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;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { Component } from '@angular/core';\n\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'App';\n}\n\n\n","\n
\n\n\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NguiMapModule, NguiMapComponent} from '@ngui/map';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http'\r\n\r\nimport { AppRoutingModule } from './app.routing';\r\n\r\nimport { ChartapiService } from './services/chartapi.service';\r\nimport { BlogapiService } from './services/blogapi.service';\r\nimport { GooglemarkerapiService } from './services/googlemarkerapi.service';\r\nimport { EmailapiService } from './services/emailapi.service';\r\nimport { SnakeScore } from './services/snake-score.service';\r\nimport { PolygonIOService } from './services/polygon-io.service';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { GooglemapComponent } from './components/codeexamples/examples/googlemap/googlemap.component';\r\nimport { AboutComponent } from './components/about/about.component';\r\nimport { BlogComponent } from './components/codeexamples/examples/blog/blog.component';\r\nimport { TwitterComponent } from './components/codeexamples/examples/twitter/twitter.component';\r\nimport { WelcomeComponent } from './components/welcome/welcome.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { GooglemapOverlayComponent } from './components/codeexamples/examples/googlemap/overlay/googlemap-overlay.component';\r\nimport { BlogOverlayComponent } from './components/codeexamples/examples/blog/overlay/blog-overlay.component';\r\nimport { TwitterOverlayComponent } from './components/codeexamples/examples/twitter/overlay/twitter-overlay.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { GamesComponent } from './components/codeexamples/examples/games/games.component';\r\nimport { SnakeComponent } from './components/codeexamples/examples/games/games/snake/snake.component';\r\nimport { GamesOverlayComponent } from './components/codeexamples/examples/games/overlay/games-overlay.component';\r\nimport { PagenotfoundComponent } from './components/pagenotfound/pagenotfound.component';\r\nimport { TetrisComponent } from './components/codeexamples/examples/games/games/tetris/tetris.component';\r\nimport { CodeexamplesComponent } from './components/codeexamples/codeexamples.component';\r\nimport { ContactmeComponent } from './components/contactme/contactme.component';\r\nimport { NavigationComponent } from './components/navigation/navigation.component';\r\nimport { BlogreadComponent } from './components/blogread/blogread.component';\r\nimport { PolygonioComponent } from './components/codeexamples/examples/polygonio/polygonio.component';\r\nimport { PolygonOverlayComponent } from './components/codeexamples/examples/polygonio/overlay/polygon-overlay.component';\r\nimport { AngularformsComponent } from './components/codeexamples/examples/angularforms/angularforms.component';\r\nimport { AngularformsOverlayComponent } from './components/codeexamples/examples/angularforms/overlay/angularforms-overlay.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n GooglemapComponent,\r\n BlogComponent,\r\n AboutComponent,\r\n TwitterComponent,\r\n WelcomeComponent,\r\n HeaderComponent,\r\n GooglemapOverlayComponent,\r\n BlogOverlayComponent,\r\n TwitterOverlayComponent,\r\n FooterComponent,\r\n GamesComponent,\r\n SnakeComponent,\r\n GamesOverlayComponent,\r\n PagenotfoundComponent,\r\n TetrisComponent,\r\n CodeexamplesComponent,\r\n ContactmeComponent,\r\n NavigationComponent,\r\n BlogreadComponent,\r\n PolygonioComponent,\r\n PolygonOverlayComponent,\r\n AngularformsComponent,\r\n AngularformsOverlayComponent,\r\n ],\r\n imports: [\r\n AppRoutingModule,\r\n HttpClientModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n ReactiveFormsModule,\r\n NgbModule,\r\n FormsModule,\r\n NguiMapModule.forRoot({apiUrl: 'https://maps.google.com/maps/api/js?key=AIzaSyAxxfyjYdOzrowqzqEzPOZ7qDjRYBmjI_8&libraries=drawing'}),\r\n ],\r\n providers: [\r\n NguiMapComponent\r\n ,ChartapiService\r\n ,BlogapiService\r\n ,GooglemarkerapiService\r\n ,EmailapiService\r\n ,SnakeScore\r\n ,PolygonIOService\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { GooglemapComponent } from './components/codeexamples/examples/googlemap/googlemap.component';\r\nimport { AboutComponent } from './components/about/about.component';\r\nimport { TwitterComponent } from './components/codeexamples/examples/twitter/twitter.component';\r\nimport { GamesComponent } from './components/codeexamples/examples/games/games.component';\r\nimport { SnakeComponent } from './components/codeexamples/examples/games/games/snake/snake.component';\r\nimport { PagenotfoundComponent } from './components/pagenotfound/pagenotfound.component';\r\nimport { TetrisComponent } from './components/codeexamples/examples/games/games/tetris/tetris.component';\r\nimport { BlogComponent } from './components/codeexamples/examples/blog/blog.component';\r\nimport { CodeexamplesComponent } from './components/codeexamples/codeexamples.component';\r\nimport { ContactmeComponent } from './components/contactme/contactme.component';\r\nimport { WelcomeComponent } from './components/welcome/welcome.component';\r\nimport { BlogreadComponent } from './components/blogread/blogread.component';\r\nimport { PolygonioComponent } from './components/codeexamples/examples/polygonio/polygonio.component';\r\nimport { AngularformsComponent } from './components/codeexamples/examples/angularforms/angularforms.component';\r\n\r\nconst appRoutes: Routes = [\r\n { path: '', component: WelcomeComponent },\r\n { path: 'home', component: WelcomeComponent },\r\n { path: 'contact', component: ContactmeComponent },\r\n { path: 'examples', component: CodeexamplesComponent },\r\n { path: 'google', component: GooglemapComponent },\r\n { path: 'poly', component: PolygonioComponent },\r\n { path: 'about', component: AboutComponent },\r\n { path: 'blog', component: BlogComponent },\r\n { path: 'blogread', component: BlogreadComponent },\r\n { path: 'twitter/:userid', component: TwitterComponent },\r\n { path: 'twitter', component: TwitterComponent },\r\n { path: 'games', component: GamesComponent },\r\n { path: 'snake', component: SnakeComponent },\r\n { path: 'tetris', component: TetrisComponent },\r\n { path: 'angularforms', component: AngularformsComponent},\r\n { path: '**', component: PagenotfoundComponent},\r\n];\r\n\r\n@NgModule({\r\n imports:[\r\n RouterModule.forRoot(appRoutes, {\r\n useHash: true,\r\n relativeLinkResolution: 'legacy'\r\n})\r\n ],\r\n exports:[\r\n RouterModule\r\n ]\r\n})\r\n\r\nexport class AppRoutingModule{}","import { Component, OnInit, NgZone, OnDestroy } from '@angular/core';\n//@ts-ignore\nimport * as am4core from \"@amcharts/amcharts4/core\";\n//@ts-ignore\nimport * as am4charts from '@amcharts/amcharts4/charts'; \nimport { ChartapiService } from '../../services/chartapi.service';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'about',\n templateUrl: './about.component.html',\n styleUrls: ['./about.component.css']\n})\n\nexport class AboutComponent implements OnInit {\n\n public codingChart: am4charts.XYChart;\n public softSkillsChart: am4charts.XYChart;\n public infoLoaded: boolean;\n\n constructor(private zone: NgZone, private chartService: ChartapiService, public router: Router) { \n ga('set', 'page', 'About');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(){\n this.zone.runOutsideAngular(() => {\n let codingChart = am4core.create(\"skills\", am4charts.XYChart);\n this.chartService.getSkills().subscribe(response =>{\n codingChart.data = response;\n let cscategoryAxis = codingChart.yAxes.push(new am4charts.CategoryAxis());\n cscategoryAxis.dataFields.category = \"skill\";\n cscategoryAxis.renderer.grid.template.location = 0;\n cscategoryAxis.renderer.minGridDistance = 30;\n let csvalueAxis = codingChart.xAxes.push(new am4charts.ValueAxis());\n csvalueAxis.hidden = true;\n let csseries = codingChart.series.push(new am4charts.ColumnSeries());\n csseries.dataFields.valueX = \"value\";\n csseries.dataFields.categoryY = \"skill\";\n csseries.name = \"Value\";\n csseries.columns.template.tooltipText = \"{categoryY}: {valueX}\";\n csseries.columns.template.fillOpacity = .8;\n csseries.fill = am4core.color(\"#333\");\n csseries.stroke = am4core.color(\"#9f00ff\");\n let cscolumnTemplate = csseries.columns.template;\n cscolumnTemplate.strokeWidth = 2;\n cscolumnTemplate.strokeOpacity = 1;\n });\n });\n }\n ngOnDestroy()\n {\n am4core.disposeAllCharts();\n }\n}\n","\n
\n

About Me

\n

\n My name is Jeff Heldridge, I am currently a Software Engineer and have been coding for over 7 years. I have pretty much been in the Financial Service Industry for most of that time and would be excited to branch out from it a bit. Although I do really enjoy coding outside of work to learn new things, it’s also a hobby for me.\n

\n

\n I wanted to make a site for myself to keep me busy as well as learn some new stuff like Azure hosting and Mongo. For most of my seven years I have been a full stack developer primarily working in Angular/Angular.js and .Net. My current job though has me coding in Java in a Spring framework using Maven, and Eclipse with a Dojo/JavaScript frontend.\n

\n

\n I got started in coding by originally getting tired of my data entry job and learned how to program Excel Macros in .VBA and was able to automate a lot of my job. I realized I needed to learn how to create web applications to automate even more things so I ended up going to school for an associate’s degree in web design from Metro Community College, and then eventually a bachelor’s degree from Bellevue University in Computer Science.\n

\n

\n Beyond coding I have been able to develop some good soft skills as well. I have been able to work for some really great people who have taught me to be a good influence on others, as well as good communicator, leader, and someone who is able to work well with other groups.\n

\n
\n
\n
\n

Work Experiance

\n
\n
\n
06/2021-Present
\n
Manager - Software Developement & Engineering
\n
Charles Schwab
\n
    \n
  • In a dev 4 role supporting the Securities Lending group with a native app written in Java on a spring framework to lend securities through DTCC/Loanet.
  • \n
  • Skills used/learned: STS, Java, MQ messaging, UNIX, Oracle DB, Linux, Jenkins, JavaScript, Dojo, Bitbucket
  • \n
\n
\n
\n
\n
\n
02/2020-06/2021
\n
Software Engineer
\n
TD Ameritrade
\n
    \n
  • Supported the Securities Lending group with a native app written in Java on a spring framework to lend securities through DTCC/Loanet.
  • \n
  • Skills used/learned: STS, Java, MQ messaging, UNIX, Oracle DB, Linux, Jenkins, JavaScript, Dojo, Bitbucket
  • \n
\n
\n
\n
\n
\n
09/2017 – 02/2020
\n
Senior Developer
\n
TD Ameritrade
\n
    \n
  • Supported and built applications for the Retail group to make client interaction easier as well as Risk and Supervision more transparent.
  • \n
  • Skills used/learned: ASP.Net, .Net, .Netcore, Internet Information Services(IIS), SQL Server Integration Services(SSIS), Angular, Javascript, SQL Server, SQL Server Managment Studio, Visual Studio, VS Code, Bitbucket
  • \n
\n
\n
\n
\n
\n
04/2016 – 9/2017
\n
Developer II
\n
TD Ameritrade
\n
    \n
  • Supported and built applications for the Risk group to provide automation of risk assesments, classifications, and rankings. In addition to automation of end user tasks.
  • \n
  • Skills used/learned: .Net, Angular, Javascript, SQL Server, SQL Server Managment Studio, Visual Studio, VS Code
  • \n
\n
\n
\n
\n
\n
03/2015 – 4/2016
\n
Developer II
\n
TD Ameritrade
\n
    \n
  • Supported and built applications to automate back office user's tasks using multiple data sets to increase productivity and reduce risk from FINRA and SEC rules.
  • \n
  • Skills used/learned: .Net, Angular.JS, Javascript, SQL Server, SQL Server Managment Studio, Visual Studio, VBA - Excel Macros
  • \n
\n
\n
\n
\n
\n
08/2013 – 3/2015
\n
Specialist
\n
TD Ameritrade
\n
    \n
  • Produced KRI's, KPI's to provide insite into stock record processes to determine risk to the firm. Also produced reports for FINRA and SEC to show compliance with industry standards.
  • \n
  • Skills used/learned: Javascript, SQL Server, SQL Server Managment Studio, Visual Studio, VBA - Excel Macros, Tableau
  • \n
\n
\n
\n
\n
\n

Skills and Competences

\n
\n

Education

\n
\n
\n
10/2016 – 8/2018
\n
Bellevue University
\n
Bachelor of Science in Computer Information Systems
\n
\n
\n
\n
\n
8/2014 – 8/2016
\n
Metropolitan Community College
\n
Associates of IT in Web Design
\n
\n
\n

Achievements and Certifications

\n
\n
\n
Series 7
\n
    \n
  • Passed Series 7 exam to become a registered representative by FINRA
  • \n
\n
Series 63
\n
    \n
  • Passed NASAA exam for state registration
  • \n
\n
Dev Up 2018
\n
    \n
  • Participated in DevUp conference in St. Louis with focuses on C#, Angular, Blazor, and .Net
  • \n
\n
Azure Days 2018
\n
    \n
  • Participated in Azure Days Kansas City with topics covering at range of Azure functions
  • \n
\n
\n
\n

Interests

\n
\n
\n Physics | Science | Astronomy | Gaming | Programming | Astrophotography | Music | College Football | Animals | Family | Friends\n
\n
\n
\n
\n
","
\n
\n
\n Loading...\n
\n
Loading Please Wait...\n
\n
\n

Developer Blog

\n
\n
{{blog.createDate}}
\n {{blog.blogEntry}}\n
\n
\n
\n
","import { Component, OnInit} from '@angular/core';\nimport { BlogapiService } from '../../services/blogapi.service';\nimport { blog } from '../../models/blog_models';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { trigger, transition, animate, style} from '@angular/animations';\n\ndeclare let ga: Function;\n@Component({\n selector: 'blogread',\n templateUrl: './blogread.component.html',\n styleUrls: ['./blogread.component.css']\n})\nexport class BlogreadComponent implements OnInit {\n\n public blogList: blog[];\n public infoLoaded: boolean;\n\n constructor(private blogService:BlogapiService, public router: Router) {\n ga('set', 'page', 'BlogRead');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n this.infoLoaded = false;\n this.blogService.getBlogList().subscribe(response =>{\n this.blogList = response;\n this.blogList.reverse();\n this.infoLoaded = true;\n });\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\ndeclare let ga: Function;\n@Component({\n selector: 'codeexamples',\n templateUrl: './codeexamples.component.html',\n styleUrls: ['./codeexamples.component.css']\n})\nexport class CodeexamplesComponent implements OnInit {\n\n constructor() {\n ga('set', 'page', 'CodeExamples');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

\n Code Examples\n

\n

\n Below are a few things I have built to hightlight some of my dev knowledge. I added some icons at the bottom of each card so that you can see the\n skills used so you can quickly get to what that page pertains to as well as a info overlay (accessable on top right of the page) on each page that \n really talks about the concepts \n I am using on the page.\n

\n
\n
\n
\n \"Card\n
\n

Google Maps

\n

Shows a lot of examples of using different options in Google Maps API

\n See Example\n
\n \n \n \n
\n
\n
\n
\n \"Card\n
\n

Twitter API

\n

A page to pull my Tweets as well as let you search for others

\n See Example\n
\n \n \n
\n
\n
\n
\n \"Card\n
\n

My Dev Blog

\n

Pulls blog entries from MongoDB database from .NetCore backend

\n See Example\n
\n \n \n
\n
\n
\n
\n
\n
\n \"Card\n
\n

Polygon.IO API

\n

Provides some real time market data from Polygon.IO on symbols entered.

\n See Example\n
\n \n \n
\n
\n
\n
\n \"Card\n
\n

Angular Forms

\n

Just a page with some simple charts, tables and form items.

\n See Example\n
\n \n \n \n
\n
\n
\n
\n \"Card\n
\n

Games

\n

Some games I found written in Angular that I ported into my app for a little fun.

\n See Example\n
\n \n \n \n
\n
\n
\n
\n
\n

\n Other Websites\n

\n

\n Below are a few other websites I either own or had a part in building. I think these give the best examples of building a whole web app from writing the code to creating your own domian and hosting as well as getting SSL certs to work. \n

\n
\n
\n
\n \"Card\n
\n

SmallGuyPromo.com

\n

This is a wordpress site I made for a friend at work. He has taken ownership of it but I got it off the ground and built some of the core elements of the site as well as the themes.

\n See Site\n
\n \n \n
\n
\n
\n
\n \"Card\n
\n

AmateurAstronomer.net

\n

I built another website for my hobby in astronomy, but more blog focused. (will take you out of this site)

\n See Site\n
\n \n \n \n \n
\n
\n
\n
\n \"Card\n
\n

Next.net

\n

Left this as a place holder for my next app, to keep pushing myself to create.

\n

Next

\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport * as am4core from \"@amcharts/amcharts4/core\";\nimport * as am4charts from \"@amcharts/amcharts4/charts\";\nimport am4themes_animated from \"@amcharts/amcharts4/themes/animated\";\nimport { ChartapiService } from 'src/app/services/chartapi.service';\nimport { trigger, transition, animate, style} from '@angular/animations';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'angularforms',\n templateUrl: './angularforms.component.html',\n styleUrls: ['./angularforms.component.css'],\n animations:[\n trigger('slideInOut', [\n transition(':enter', [\n style({transform: 'translateX(100%)'}),\n animate('750ms ease-in', style({transform: 'translateX(0%)'}))\n ]),\n transition(':leave', [\n animate('750ms ease-in', style({transform: 'translateX(500%)'}))\n ]),\n ])\n ]\n})\nexport class AngularformsComponent implements OnInit {\n\n public selectInput: string = \"\";\n public textInput: string;\n public passwordInput: string;\n public radioInput: string = \"1\";\n public ckboxOneInput: boolean;\n public ckboxTwoInput: boolean = true;\n public ckboxThreeInput: boolean;\n public textAreaInput: string;\n public allAPIData: object;\n public showForms: boolean;\n public angularFormsOverlay: boolean;\n public toolActive: boolean;\n\n constructor(private chartService: ChartapiService) { \n ga('set', 'page', 'Angular_Forms');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n am4core.useTheme(am4themes_animated);\n this.chartService.getRaceChart().subscribe(response =>{\n this.allAPIData = response;\n this.buildRaceChart();\n this.buildRadialChart();\n });\n this.hideAll();\n }\n buildRaceChart(){\n let chart = am4core.create(\"racechartdiv\", am4charts.XYChart);\n chart.padding(40, 40, 40, 40);\n\n chart.numberFormatter.bigNumberPrefixes = [\n { \"number\": 1e+3, \"suffix\": \"K\" },\n { \"number\": 1e+6, \"suffix\": \"M\" },\n { \"number\": 1e+9, \"suffix\": \"B\" }\n ];\n\n let label = chart.plotContainer.createChild(am4core.Label);\n label.x = am4core.percent(97);\n label.y = am4core.percent(95);\n label.horizontalCenter = \"right\";\n label.verticalCenter = \"middle\";\n label.dx = -15;\n label.fontSize = 50;\n\n let playButton = chart.plotContainer.createChild(am4core.PlayButton);\n playButton.x = am4core.percent(97);\n playButton.y = am4core.percent(95);\n playButton.dy = -2;\n playButton.verticalCenter = \"middle\";\n playButton.events.on(\"toggled\", function(event) {\n if (event.target.isActive) {\n play();\n }\n else {\n stop();\n }\n })\n\n let stepDuration = 4000;\n\n let categoryAxis = chart.yAxes.push(new am4charts.CategoryAxis());\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.dataFields.category = \"network\";\n categoryAxis.renderer.minGridDistance = 1;\n categoryAxis.renderer.inversed = true;\n categoryAxis.renderer.grid.template.disabled = true;\n\n let valueAxis = chart.xAxes.push(new am4charts.ValueAxis());\n valueAxis.min = 0;\n valueAxis.rangeChangeEasing = am4core.ease.linear;\n valueAxis.rangeChangeDuration = stepDuration;\n valueAxis.extraMax = 0.1;\n\n let series = chart.series.push(new am4charts.ColumnSeries());\n series.dataFields.categoryY = \"network\";\n series.dataFields.valueX = \"MAU\";\n series.tooltipText = \"{valueX.value}\"\n series.columns.template.strokeOpacity = 0;\n series.columns.template.column.cornerRadiusBottomRight = 5;\n series.columns.template.column.cornerRadiusTopRight = 5;\n series.interpolationDuration = stepDuration;\n series.interpolationEasing = am4core.ease.linear;\n\n let labelBullet = series.bullets.push(new am4charts.LabelBullet())\n labelBullet.label.horizontalCenter = \"right\";\n labelBullet.label.text = \"{values.valueX.workingValue.formatNumber('#.0as')}\";\n labelBullet.label.textAlign = \"end\";\n labelBullet.label.dx = -10;\n\n chart.zoomOutButton.disabled = true;\n\n // as by default columns of the same series are of the same color, we add adapter which takes colors from chart.colors color set\n series.columns.template.adapter.add(\"fill\", function(fill, target){\n return chart.colors.getIndex(target.dataItem.index);\n });\n\n let year = 2003;\n label.text = year.toString();\n\n let interval;\n\n function play() {\n interval = setInterval(function(){\n nextYear();\n }, stepDuration)\n nextYear();\n }\n\n function stop() {\n if (interval) {\n clearInterval(interval);\n }\n }\n\n function nextYear() {\n year++\n\n if (year > 2020) {\n year = 2003;\n }\n\n let newData = allData[year];\n let itemsWithNonZero = 0;\n for (var i = 0; i < chart.data.length; i++) {\n chart.data[i].MAU = newData[i].MAU;\n if (chart.data[i].MAU > 0) {\n itemsWithNonZero++;\n }\n }\n\n if (year == 2003) {\n series.interpolationDuration = stepDuration / 4;\n valueAxis.rangeChangeDuration = stepDuration / 4;\n }\n else {\n series.interpolationDuration = stepDuration;\n valueAxis.rangeChangeDuration = stepDuration;\n }\n\n chart.invalidateRawData();\n label.text = year.toString();\n\n categoryAxis.zoom({ start: 0, end: itemsWithNonZero / categoryAxis.dataItems.length });\n }\n\n\n categoryAxis.sortBySeries = series;\n\n let allData = this.allAPIData;\n chart.data = JSON.parse(JSON.stringify(allData[year]));\n categoryAxis.zoom({ start: 0, end: 1 / chart.data.length });\n series.events.on(\"inited\", function() {\n setTimeout(function() {\n playButton.isActive = true; // this starts interval\n }, 2000)\n })\n }\n\n\n buildRadialChart(){\n let chart = am4core.create(\"radialchartdiv\", am4charts.RadarChart);\n chart.hiddenState.properties.opacity = 0; // this creates initial fade-in\n chart.data = [\n {\n category: \"One\",\n value1: 8,\n value2: 2,\n value3: 4,\n value4: 3\n },\n {\n category: \"Two\",\n value1: 11,\n value2: 4,\n value3: 2,\n value4: 4\n },\n {\n category: \"Three\",\n value1: 7,\n value2: 6,\n value3: 6,\n value4: 2\n },\n {\n category: \"Four\",\n value1: 13,\n value2: 8,\n value3: 3,\n value4: 2\n },\n {\n category: \"Five\",\n value1: 12,\n value2: 10,\n value3: 5,\n value4: 1\n },\n {\n category: \"Six\",\n value1: 15,\n value2: 12,\n value3: 4,\n value4: 4\n }\n ];\n\n //chart.padding(20, 20, 20, 20);\n chart.colors.step = 4;\n\n let categoryAxis = chart.yAxes.push(new am4charts.CategoryAxis());\n categoryAxis.dataFields.category = \"category\";\n categoryAxis.renderer.labels.template.location = 0.5;\n categoryAxis.renderer.labels.template.horizontalCenter = \"right\";\n categoryAxis.renderer.grid.template.location = 0;\n categoryAxis.renderer.tooltipLocation = 0.5;\n categoryAxis.renderer.grid.template.strokeOpacity = 0.07;\n categoryAxis.renderer.axisFills.template.disabled = true;\n categoryAxis.interactionsEnabled = false;\n categoryAxis.renderer.minGridDistance = 10;\n\n let valueAxis = chart.xAxes.push(new am4charts.ValueAxis());\n valueAxis.tooltip.disabled = true;\n valueAxis.renderer.labels.template.horizontalCenter = \"left\";\n valueAxis.min = 0;\n valueAxis.max = 60;\n valueAxis.strictMinMax = true;\n valueAxis.renderer.maxLabelPosition = 0.99;\n valueAxis.renderer.minGridDistance = 10;\n valueAxis.renderer.grid.template.strokeOpacity = 0.07;\n valueAxis.renderer.axisFills.template.disabled = true;\n valueAxis.interactionsEnabled = false;\n\n let series1 = chart.series.push(new am4charts.RadarColumnSeries());\n series1.columns.template.tooltipText = \"{name}: {valueX.value}\";\n series1.name = \"Series 1\";\n series1.dataFields.categoryY = \"category\";\n series1.dataFields.valueX = \"value1\";\n series1.stacked = true;\n\n let series2 = chart.series.push(new am4charts.RadarColumnSeries());\n series2.columns.template.tooltipText = \"{name}: {valueX.value}\";\n series2.name = \"Series 2\";\n series2.dataFields.categoryY = \"category\";\n series2.dataFields.valueX = \"value2\";\n series2.stacked = true;\n\n let series3 = chart.series.push(new am4charts.RadarColumnSeries());\n series3.columns.template.tooltipText = \"{name}: {valueX.value}\";\n series3.name = \"Series 3\";\n series3.dataFields.categoryY = \"category\";\n series3.dataFields.valueX = \"value3\";\n series3.stacked = true;\n\n let series4 = chart.series.push(new am4charts.RadarColumnSeries());\n series4.columns.template.tooltipText = \"{name}: {valueX.value}\";\n series4.name = \"Series 4\";\n series4.dataFields.categoryY = \"category\";\n series4.dataFields.valueX = \"value4\";\n series4.stacked = true;\n\n chart.seriesContainer.zIndex = -1;\n\n chart.scrollbarX = new am4core.Scrollbar();\n chart.scrollbarX.exportable = false;\n chart.scrollbarY = new am4core.Scrollbar();\n chart.scrollbarY.exportable = false;\n\n chart.cursor = new am4charts.RadarCursor();\n chart.cursor.lineY.disabled = true;\n }\n //overlay functions\n hideAll(){\n this.toolActive = false;\n this.showForms = false;\n }\n toolAction(selected: string): void {\n this.hideAll();\n this.angularFormsOverlay = false;\n this.toolActive = true;\n switch(selected)\n {\n case \"angular\":\n this.showForms = true;\n setTimeout(() => {\n this.angularFormsOverlay = true;\n }, 725);\n break;\n }\n }\n toolClose(): void {\n this.angularFormsOverlay = false;\n setTimeout(() => {\n this.toolActive = false;\n }, 725)\n }\n}\n","
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n

Angular forms

\n

This page is just to show some basic angular forms on a page. You can pretty much build anything with the forms you will see here.

\n

Inputs

\n \n \n \n \n \n \n
\n \n
\n \n \n \n
\n \n
\n \n \n \n
\n \n
\n \n

Buttons

\n
\n \n \n \n \n \n \n \n
\n

Spinners

\n
\n
\n Loading...\n
\n
\n Loading...\n
\n
\n

Cards

\n
\n
\n
\n \"Card\n
\n

John Doe

\n

Some example text.

\n See Profile\n
\n
\n
\n
\n

Jane Doe

\n

Some example text.

\n See Profile\n
\n \"Card\n
\n
\n
\n

Charts

\n
\n
\n
\n

Tables

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Text InputPassword InputDropdown InputRadio InputCheck Box One InputCheck Box Two InputCheck Box Three InputText Area
{{this.textInput}}{{this.passwordInput}}{{this.selectInput}}{{this.radioInput}}{{this.textAreaInput}}
\n
\n
\n Tables just look terriable on mobile, you can only do so much. So I have hidden them, to see hold phone sideways or look on desktop site.\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angularforms-overlay',\n templateUrl: './angularforms-overlay.component.html',\n styleUrls: ['./angularforms-overlay.component.css']\n})\nexport class AngularformsOverlayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
Angular Forms\n \n
\n

\n Just some generic HTML forms tied to ngModel with Angular. They are styled with bootstrap and if you enter some values you will be able to see them populated in the table below via ngModel. \n

\n
\n
Charts\n \n \n \n
\n

\n The charts are built using amCharts4 for Angular or Typescript even though most the code is straight Javascript. amCharts 4 is fairly easy to use, in the social networks chart I flipped the data to an api call and added two years, so you can tell after you figure out the structure of the data for the chart its pretty easy to make your own. \n

\n

\n AmCharts4 \n
\n

\n
API Calls\n \n
\n

\n The data for the Socail Networks chart was flipped to C# because its a lot to just store a object that big on the front end.\n

\n","import { Component, OnInit} from '@angular/core';\nimport { BlogapiService } from '../../../../services/blogapi.service';\nimport { blog } from '../../../../models/blog_models';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { trigger, transition, animate, style} from '@angular/animations';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'blog',\n templateUrl: './blog.component.html',\n styleUrls: ['./blog.component.css'],\n animations:[\n trigger('slideInOut', [\n transition(':enter', [\n style({transform: 'translateX(100%)'}),\n animate('750ms ease-in', style({transform: 'translateX(0%)'}))\n ]),\n transition(':leave', [\n animate('750ms ease-in', style({transform: 'translateX(500%)'}))\n ]),\n ])\n ]\n})\n\nexport class BlogComponent implements OnInit {\n\n public blogList: blog[];\n public blogOverlay: boolean;\n public toolActive: boolean;\n public showBlog: boolean;\n public infoLoaded: boolean;\n\n constructor(private blogService:BlogapiService, public router: Router) {\n ga('set', 'page', 'Blog');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n this.infoLoaded = false;\n this.hideAll();\n this.blogService.getBlogList().subscribe(response =>{\n this.blogList = response;\n this.blogList.reverse();\n this.infoLoaded = true;\n });\n }\n //overlay functions\n hideAll(){\n this.toolActive = false;\n this.showBlog = false;\n }\n toolAction(selected: string): void {\n this.hideAll();\n this.blogOverlay = false;\n this.toolActive = true;\n switch(selected)\n {\n case \"blog\":\n this.showBlog = true;\n setTimeout(() => {\n this.blogOverlay = true;\n }, 725);\n break;\n }\n }\n toolClose(): void {\n this.blogOverlay = false;\n setTimeout(() => {\n this.toolActive = false;\n }, 725)\n }\n}\n","
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n Loading...\n
\n
Loading Please Wait...\n
\n
\n

Developer Blog

\n
\n
{{blog.createDate}}
\n {{blog.blogEntry}}\n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'blog-overlay',\n templateUrl: './blog-overlay.component.html',\n styleUrls: ['./blog-overlay.component.css']\n})\nexport class BlogOverlayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
Mongo DB\n \n
\n

\n I am using a Mongo DB here to store the blog entries, I wanted to show that I have good experience using databases in an app. I am pretty new to mongo and most of my experiance has been in SQL server and Oracle but I do like Mongo and would love more exposure to it.\n

\n
\n
API Calls\n \n
\n

\n So my backend makes calls to my database and then sends them to the frontend. I think there are ways of hitting the DB with just the UI but wanted to show how to create a API with database calls. You can see all the calls on the swagger page and that is how I make entries with the post on swagger.\n

\n","import { Component, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { trigger, transition, animate, style} from '@angular/animations';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'games',\n templateUrl: './games.component.html',\n styleUrls: ['./games.component.css'],\n animations:[\n trigger('slideInOut', [\n transition(':enter', [\n style({transform: 'translateX(100%)'}),\n animate('750ms ease-in', style({transform: 'translateX(0%)'}))\n ]),\n transition(':leave', [\n animate('750ms ease-in', style({transform: 'translateX(500%)'}))\n ]),\n ])\n ]\n})\nexport class GamesComponent implements OnInit {\n\n public gamesOverlay: boolean;\n public toolActive: boolean;\n public showGames: boolean;\n\n constructor(public router: Router){ \n ga('set', 'page', 'Games');\n ga('send', 'pageview');\n }\n\n ngOnInit(){\n this.hideAll();\n }\n\n //overlay functions\n hideAll(){\n this.toolActive = false;\n this.showGames = false;\n }\n toolAction(selected: string): void {\n this.hideAll();\n this.gamesOverlay = false;\n this.toolActive = true;\n switch(selected)\n {\n case \"games\":\n this.showGames = true;\n setTimeout(() => {\n this.gamesOverlay = true;\n }, 725);\n break;\n }\n }\n toolClose(): void {\n this.gamesOverlay = false;\n setTimeout(() => {\n this.toolActive = false;\n }, 725)\n }\n\n}\n","\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n ngxSnake\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n Tetris\n
\n
\n
\n","import { Component } from '@angular/core';\r\nimport { CONTROLS, COLORS, BOARD_SIZE, GAME_MODES } from './snake.constants';\r\nimport { SnakeScore } from '../../../../../../services/snake-score.service';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n\r\ndeclare let ga: Function;\r\n\r\n@Component({\r\n selector: 'snake',\r\n templateUrl: './snake.component.html',\r\n styleUrls: ['./snake.component.css'],\r\n host: {\r\n '(document:keydown)': 'handleKeyboardEvents($event)'\r\n }\r\n})\r\nexport class SnakeComponent {\r\n\r\n private interval: number;\r\n private tempDirection: number;\r\n private default_mode = 'classic';\r\n private isGameOver = false;\r\n public all_modes = GAME_MODES;\r\n public getKeys = Object.keys;\r\n public board = [];\r\n public obstacles = [];\r\n public score = 0;\r\n public showMenuChecker = false;\r\n public gameStarted = false;\r\n public newBestScore = false;\r\n public best_score = this.bestScoreService.retrieve();\r\n\r\n private snake = {\r\n direction: CONTROLS.LEFT,\r\n parts: [\r\n {\r\n x: -1,\r\n y: -1\r\n }\r\n ]\r\n };\r\n\r\n private fruit = {\r\n x: -1,\r\n y: -1\r\n };\r\n\r\n constructor(\r\n private bestScoreService: SnakeScore,\r\n public router: Router\r\n ) {\r\n this.setBoard();\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationEnd) {\r\n ga('set', 'page', event.urlAfterRedirects);\r\n ga('send', 'pageview');\r\n }\r\n });\r\n }\r\n\r\n handleKeyboardEvents(e: KeyboardEvent) {\r\n if (e.keyCode === CONTROLS.LEFT && this.snake.direction !== CONTROLS.RIGHT) {\r\n this.tempDirection = CONTROLS.LEFT;\r\n } else if (e.keyCode === CONTROLS.UP && this.snake.direction !== CONTROLS.DOWN) {\r\n this.tempDirection = CONTROLS.UP;\r\n } else if (e.keyCode === CONTROLS.RIGHT && this.snake.direction !== CONTROLS.LEFT) {\r\n this.tempDirection = CONTROLS.RIGHT;\r\n } else if (e.keyCode === CONTROLS.DOWN && this.snake.direction !== CONTROLS.UP) {\r\n this.tempDirection = CONTROLS.DOWN;\r\n }\r\n }\r\n handleButtonClicks(direction: string){\r\n switch(direction)\r\n {\r\n case \"left\":\r\n this.tempDirection = CONTROLS.LEFT;\r\n break;\r\n case \"right\":\r\n this.tempDirection = CONTROLS.RIGHT;\r\n break;\r\n case \"up\":\r\n this.tempDirection = CONTROLS.UP;\r\n break;\r\n case \"down\":\r\n this.tempDirection = CONTROLS.DOWN;\r\n break;\r\n }\r\n }\r\n\r\n setColors(col: number, row: number): string {\r\n if (this.isGameOver) {\r\n return COLORS.GAME_OVER;\r\n } else if (this.fruit.x === row && this.fruit.y === col) {\r\n return COLORS.FRUIT;\r\n } else if (this.snake.parts[0].x === row && this.snake.parts[0].y === col) {\r\n return COLORS.HEAD;\r\n } else if (this.board[col][row] === true) {\r\n return COLORS.BODY;\r\n } else if (this.default_mode === 'obstacles' && this.checkObstacles(row, col)) {\r\n return COLORS.OBSTACLE;\r\n }\r\n return COLORS.BOARD;\r\n };\r\n\r\n updatePositions(): void {\r\n let newHead = this.repositionHead();\r\n let me = this;\r\n if (this.default_mode === 'classic' && this.boardCollision(newHead)) {\r\n return this.gameOver();\r\n } else if (this.default_mode === 'no_walls') {\r\n this.noWallsTransition(newHead);\r\n } else if (this.default_mode === 'obstacles') {\r\n this.noWallsTransition(newHead);\r\n if (this.obstacleCollision(newHead)) {\r\n return this.gameOver();\r\n }\r\n }\r\n if (this.selfCollision(newHead)) {\r\n return this.gameOver();\r\n } else if (this.fruitCollision(newHead)) {\r\n this.eatFruit();\r\n }\r\n let oldTail = this.snake.parts.pop();\r\n this.board[oldTail.y][oldTail.x] = false;\r\n this.snake.parts.unshift(newHead);\r\n this.board[newHead.y][newHead.x] = true;\r\n this.snake.direction = this.tempDirection;\r\n setTimeout(() => {\r\n me.updatePositions();\r\n }, this.interval);\r\n }\r\n repositionHead(): any {\r\n let newHead = Object.assign({}, this.snake.parts[0]);\r\n if (this.tempDirection === CONTROLS.LEFT) {\r\n newHead.x -= 1;\r\n } else if (this.tempDirection === CONTROLS.RIGHT) {\r\n newHead.x += 1;\r\n } else if (this.tempDirection === CONTROLS.UP) {\r\n newHead.y -= 1;\r\n } else if (this.tempDirection === CONTROLS.DOWN) {\r\n newHead.y += 1;\r\n }\r\n return newHead;\r\n }\r\n noWallsTransition(part: any): void {\r\n if (part.x === BOARD_SIZE) {\r\n part.x = 0;\r\n } else if (part.x === -1) {\r\n part.x = BOARD_SIZE - 1;\r\n }\r\n if (part.y === BOARD_SIZE) {\r\n part.y = 0;\r\n } else if (part.y === -1) {\r\n part.y = BOARD_SIZE - 1;\r\n }\r\n }\r\n addObstacles(): void {\r\n let x = this.randomNumber();\r\n let y = this.randomNumber();\r\n if (this.board[y][x] === true || y === 8) {\r\n return this.addObstacles();\r\n }\r\n this.obstacles.push({\r\n x: x,\r\n y: y\r\n });\r\n }\r\n\r\n checkObstacles(x, y): boolean {\r\n let res = false;\r\n this.obstacles.forEach((val) => {\r\n if (val.x === x && val.y === y) {\r\n res = true;\r\n }\r\n });\r\n return res;\r\n }\r\n\r\n obstacleCollision(part: any): boolean {\r\n return this.checkObstacles(part.x, part.y);\r\n }\r\n boardCollision(part: any): boolean {\r\n return part.x === BOARD_SIZE || part.x === -1 || part.y === BOARD_SIZE || part.y === -1;\r\n }\r\n selfCollision(part: any): boolean {\r\n return this.board[part.y][part.x] === true;\r\n }\r\n fruitCollision(part: any): boolean {\r\n return part.x === this.fruit.x && part.y === this.fruit.y;\r\n }\r\n\r\n resetFruit(): void {\r\n let x = this.randomNumber();\r\n let y = this.randomNumber();\r\n if (this.board[y][x] === true || this.checkObstacles(x, y)) {\r\n return this.resetFruit();\r\n }\r\n this.fruit = {\r\n x: x,\r\n y: y\r\n };\r\n }\r\n\r\n eatFruit(): void {\r\n this.score++;\r\n let tail = Object.assign({}, this.snake.parts[this.snake.parts.length - 1]);\r\n this.snake.parts.push(tail);\r\n this.resetFruit();\r\n if (this.score % 5 === 0) {\r\n this.interval -= 15;\r\n }\r\n }\r\n\r\n gameOver(): void {\r\n this.isGameOver = true;\r\n this.gameStarted = false;\r\n let me = this;\r\n if (this.score > this.best_score) {\r\n this.bestScoreService.store(this.score);\r\n this.best_score = this.score;\r\n this.newBestScore = true;\r\n }\r\n setTimeout(() => {\r\n me.isGameOver = false;\r\n }, 500);\r\n this.setBoard();\r\n }\r\n\r\n randomNumber(): any {\r\n return Math.floor(Math.random() * BOARD_SIZE);\r\n }\r\n\r\n setBoard(): void {\r\n this.board = [];\r\n\r\n for (let i = 0; i < BOARD_SIZE; i++) {\r\n this.board[i] = [];\r\n for (let j = 0; j < BOARD_SIZE; j++) {\r\n this.board[i][j] = false;\r\n }\r\n }\r\n }\r\n\r\n showMenu(): void {\r\n this.showMenuChecker = !this.showMenuChecker;\r\n }\r\n\r\n newGame(mode: string): void {\r\n this.default_mode = mode || 'classic';\r\n this.showMenuChecker = false;\r\n this.newBestScore = false;\r\n this.gameStarted = true;\r\n this.score = 0;\r\n this.tempDirection = CONTROLS.LEFT;\r\n this.isGameOver = false;\r\n this.interval = 150;\r\n this.snake = {\r\n direction: CONTROLS.LEFT,\r\n parts: []\r\n };\r\n\r\n for (let i = 0; i < 3; i++) {\r\n this.snake.parts.push({ x: 8 + i, y: 8 });\r\n }\r\n\r\n if (mode === 'obstacles') {\r\n this.obstacles = [];\r\n let j = 1;\r\n do {\r\n this.addObstacles();\r\n } while (j++ < 9);\r\n }\r\n\r\n this.resetFruit();\r\n this.updatePositions();\r\n }\r\n}\r\n","
\r\n Please use the keyboard arrows to play game.\r\n
\r\n
\r\n
\r\n

ngx-Snake

\r\n
\r\n

Score: {{score}}

\r\n

Best Score: {{best_score}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Start Game
\r\n
\r\n Select Mode\r\n
{{all_modes[mode]}}
\r\n
\r\n
","export const BOARD_SIZE = 18;\r\n\r\nexport const CONTROLS = {\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40\r\n};\r\n\r\nexport const COLORS = {\r\n GAME_OVER: '#D24D57',\r\n FRUIT: '#EC644B',\r\n HEAD: '#336E7B',\r\n BODY: '#C8F7C5',\r\n BOARD: '#86B5BD',\r\n OBSTACLE: '#383522'\r\n};\r\n\r\nexport const GAME_MODES = {\r\n classic: 'Classic',\r\n no_walls: 'No Walls',\r\n obstacles: 'Obstacles'\r\n};","import { Component, ViewChild, ElementRef, OnInit, HostListener } from '@angular/core';\nimport { COLS, BLOCK_SIZE, ROWS, COLORS, LINES_PER_LEVEL, LEVEL, POINTS, KEY } from './tetris.constants';\nimport { Piece, IPiece } from './tetrispiece.component';\nimport { GameService } from './tetris.service';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'tetris',\n templateUrl: './tetris.component.html',\n styleUrls: ['./tetris.component.css']\n})\nexport class TetrisComponent implements OnInit {\n\n @ViewChild('board', { static: true })\n canvas: ElementRef;\n @ViewChild('next', { static: true })\n canvasNext: ElementRef;\n ctx: CanvasRenderingContext2D;\n ctxNext: CanvasRenderingContext2D;\n board: number[][];\n piece: Piece;\n next: Piece;\n requestId: number;\n time: { start: number; elapsed: number; level: number };\n points: number;\n lines: number;\n level: number;\n moves = {\n [KEY.NONE]: (p: IPiece): IPiece => ({ ...p, x: p.x }),\n [KEY.LEFT]: (p: IPiece): IPiece => ({ ...p, x: p.x - 1 }),\n [KEY.RIGHT]: (p: IPiece): IPiece => ({ ...p, x: p.x + 1 }),\n [KEY.DOWN]: (p: IPiece): IPiece => ({ ...p, y: p.y + 1 }),\n [KEY.SPACE]: (p: IPiece): IPiece => ({ ...p, y: p.y + 1 }),\n [KEY.UP]: (p: IPiece): IPiece => this.service.rotate(p)\n };\n\n @HostListener('window:keydown', ['$event'])\n keyEvent(event: KeyboardEvent) {\n if (event.keyCode === KEY.ESC) {\n this.gameOver();\n } else if (this.moves[event.keyCode]) {\n event.preventDefault();\n // Get new state\n let p = this.moves[event.keyCode](this.piece);\n if (event.keyCode === KEY.SPACE) {\n // Hard drop\n while (this.service.valid(p, this.board)) {\n this.points += POINTS.HARD_DROP;\n this.piece.move(p);\n p = this.moves[KEY.DOWN](this.piece);\n }\n } else if (this.service.valid(p, this.board)) {\n this.piece.move(p);\n if (event.keyCode === KEY.DOWN) {\n this.points += POINTS.SOFT_DROP;\n }\n }\n }\n }\n\n constructor(private service: GameService, public router: Router) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n ga('set', 'page', event.urlAfterRedirects);\n ga('send', 'pageview');\n }\n });\n }\n\n ngOnInit() {\n this.initBoard();\n this.initNext();\n this.resetGame();\n }\n buttonclicks(event: string)\n {\n let p = this.moves[KEY.NONE](this.piece);\n switch(event)\n {\n case \"toggle\":\n p = this.moves[KEY.UP](this.piece);\n this.piece.move(p);\n break;\n case \"left\":\n p = this.moves[KEY.LEFT](this.piece);\n this.piece.move(p);\n break;\n case \"right\":\n p = this.moves[KEY.RIGHT](this.piece);\n this.piece.move(p);\n break;\n case \"down\":\n while (this.service.valid(p, this.board)) {\n this.points += POINTS.HARD_DROP;\n this.piece.move(p);\n p = this.moves[KEY.DOWN](this.piece);\n }\n }\n }\n\n initBoard() {\n this.ctx = this.canvas.nativeElement.getContext('2d');\n\n // Calculate size of canvas from constants.\n this.ctx.canvas.width = COLS * BLOCK_SIZE;\n this.ctx.canvas.height = ROWS * BLOCK_SIZE;\n\n // Scale so we don't need to give size on every draw.\n this.ctx.scale(BLOCK_SIZE, BLOCK_SIZE);\n }\n\n initNext() {\n this.ctxNext = this.canvasNext.nativeElement.getContext('2d');\n\n // Calculate size of canvas from constants.\n this.ctxNext.canvas.width = 4 * BLOCK_SIZE;\n this.ctxNext.canvas.height = 4 * BLOCK_SIZE;\n\n this.ctxNext.scale(BLOCK_SIZE, BLOCK_SIZE);\n }\n\n play() {\n this.resetGame();\n this.next = new Piece(this.ctx);\n this.piece = new Piece(this.ctx);\n this.next.drawNext(this.ctxNext);\n this.time.start = performance.now();\n\n // If we have an old game running a game then cancel the old\n if (this.requestId) {\n cancelAnimationFrame(this.requestId);\n }\n\n this.animate();\n }\n\n resetGame() {\n this.points = 0;\n this.lines = 0;\n this.level = 0;\n this.board = this.getEmptyBoard();\n this.time = { start: 0, elapsed: 0, level: LEVEL[this.level] };\n }\n\n animate(now = 0) {\n this.time.elapsed = now - this.time.start;\n if (this.time.elapsed > this.time.level) {\n this.time.start = now;\n if (!this.drop()) {\n this.gameOver();\n return;\n }\n }\n this.draw();\n this.requestId = requestAnimationFrame(this.animate.bind(this));\n }\n\n draw() {\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.piece.draw();\n this.drawBoard();\n }\n\n drop(): boolean {\n let p = this.moves[KEY.DOWN](this.piece);\n if (this.service.valid(p, this.board)) {\n this.piece.move(p);\n } else {\n this.freeze();\n this.clearLines();\n if (this.piece.y === 0) {\n // Game over\n return false;\n }\n this.piece = this.next;\n this.next = new Piece(this.ctx);\n this.next.drawNext(this.ctxNext);\n }\n return true;\n }\n\n clearLines() {\n let lines = 0;\n this.board.forEach((row, y) => {\n if (row.every(value => value !== 0)) {\n lines++;\n this.board.splice(y, 1);\n this.board.unshift(Array(COLS).fill(0));\n }\n });\n if (lines > 0) {\n this.points += this.service.getLinesClearedPoints(lines, this.level);\n this.lines += lines;\n if (this.lines >= LINES_PER_LEVEL) {\n this.level++;\n this.lines -= LINES_PER_LEVEL;\n this.time.level = LEVEL[this.level];\n }\n }\n }\n\n freeze() {\n this.piece.shape.forEach((row, y) => {\n row.forEach((value, x) => {\n if (value > 0) {\n this.board[y + this.piece.y][x + this.piece.x] = value;\n }\n });\n });\n }\n\n drawBoard() {\n this.board.forEach((row, y) => {\n row.forEach((value, x) => {\n if (value > 0) {\n this.ctx.fillStyle = COLORS[value];\n this.ctx.fillRect(x, y, 1, 1);\n }\n });\n });\n }\n\n gameOver() {\n cancelAnimationFrame(this.requestId);\n this.ctx.fillStyle = 'black';\n this.ctx.fillRect(1, 3, 8, 1.2);\n this.ctx.font = '1px Arial';\n this.ctx.fillStyle = 'red';\n this.ctx.fillText(' END', 1.8, 4);\n }\n\n getEmptyBoard(): number[][] {\n return Array.from({ length: ROWS }, () => Array(COLS).fill(0));\n }\n}\n","
\n

TETRIS

\n \n

Score: {{ points }} Lines: {{ lines }} Level: {{ level }}

\n \n \n
\n \n \n \n \n
","export const COLS = 10;\r\nexport const ROWS = 20;\r\nexport const BLOCK_SIZE = 30;\r\nexport const LINES_PER_LEVEL = 10;\r\nexport const COLORS = [\r\n 'none',\r\n 'cyan',\r\n 'blue',\r\n 'orange',\r\n 'yellow',\r\n 'green',\r\n 'purple',\r\n 'red'\r\n];\r\nexport const SHAPES = [\r\n [],\r\n [[0, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 0], [0, 0, 0, 0]],\r\n [[2, 0, 0], [2, 2, 2], [0, 0, 0]],\r\n [[0, 0, 3], [3, 3, 3], [0, 0, 0]],\r\n [[4, 4], [4, 4]],\r\n [[0, 5, 5], [5, 5, 0], [0, 0, 0]],\r\n [[0, 6, 0], [6, 6, 6], [0, 0, 0]],\r\n [[7, 7, 0], [0, 7, 7], [0, 0, 0]]\r\n];\r\n\r\nexport class KEY {\r\n static readonly ESC = 27;\r\n static readonly SPACE = 32;\r\n static readonly LEFT = 37;\r\n static readonly UP = 38;\r\n static readonly RIGHT = 39;\r\n static readonly DOWN = 40;\r\n static readonly NONE = 0\r\n}\r\n\r\nexport class POINTS {\r\n static readonly SINGLE = 100;\r\n static readonly DOUBLE = 300;\r\n static readonly TRIPLE = 500;\r\n static readonly TETRIS = 800;\r\n static readonly SOFT_DROP = 1;\r\n static readonly HARD_DROP = 2;\r\n}\r\n\r\nexport class LEVEL {\r\n static readonly 0 = 800;\r\n static readonly 1 = 720;\r\n static readonly 2 = 630;\r\n static readonly 3 = 550;\r\n static readonly 4 = 470;\r\n static readonly 5 = 380;\r\n static readonly 6 = 300;\r\n static readonly 7 = 220;\r\n static readonly 8 = 130;\r\n static readonly 9 = 100;\r\n static readonly 10 = 80;\r\n static readonly 11 = 80;\r\n static readonly 12 = 80;\r\n static readonly 13 = 70;\r\n static readonly 14 = 70;\r\n static readonly 15 = 70;\r\n static readonly 16 = 50;\r\n static readonly 17 = 50;\r\n static readonly 18 = 50;\r\n static readonly 19 = 30;\r\n static readonly 20 = 30;\r\n // 29+ is 20ms\r\n}","import { Injectable } from '@angular/core';\r\nimport { IPiece } from './tetrispiece.component';\r\nimport { COLS, ROWS, POINTS } from './tetris.constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class GameService {\r\n valid(p: IPiece, board: number[][]): boolean {\r\n return p.shape.every((row, dy) => {\r\n return row.every((value, dx) => {\r\n let x = p.x + dx;\r\n let y = p.y + dy;\r\n return (\r\n this.isEmpty(value) ||\r\n (this.insideWalls(x) &&\r\n this.aboveFloor(y) &&\r\n this.notOccupied(board, x, y))\r\n );\r\n });\r\n });\r\n }\r\n\r\n isEmpty(value: number): boolean {\r\n return value === 0;\r\n }\r\n\r\n insideWalls(x: number): boolean {\r\n return x >= 0 && x < COLS;\r\n }\r\n\r\n aboveFloor(y: number): boolean {\r\n return y <= ROWS;\r\n }\r\n\r\n notOccupied(board: number[][], x: number, y: number): boolean {\r\n return board[y] && board[y][x] === 0;\r\n }\r\n\r\n rotate(piece: IPiece): IPiece {\r\n let p: IPiece = JSON.parse(JSON.stringify(piece));\r\n for (let y = 0; y < p.shape.length; ++y) {\r\n for (let x = 0; x < y; ++x) {\r\n [p.shape[x][y], p.shape[y][x]] = [p.shape[y][x], p.shape[x][y]];\r\n }\r\n }\r\n p.shape.forEach(row => row.reverse());\r\n return p;\r\n }\r\n\r\n getLinesClearedPoints(lines: number, level: number): number {\r\n const lineClearPoints =\r\n lines === 1\r\n ? POINTS.SINGLE\r\n : lines === 2\r\n ? POINTS.DOUBLE\r\n : lines === 3\r\n ? POINTS.TRIPLE\r\n : lines === 4\r\n ? POINTS.TETRIS\r\n : 0;\r\n\r\n return (level + 1) * lineClearPoints;\r\n }\r\n}","import { COLORS, SHAPES } from './tetris.constants';\r\n\r\nexport interface IPiece {\r\n x: number;\r\n y: number;\r\n color: string;\r\n shape: number[][];\r\n}\r\n\r\nexport class Piece implements IPiece {\r\n x: number;\r\n y: number;\r\n color: string;\r\n shape: number[][];\r\n\r\n constructor(private ctx: CanvasRenderingContext2D) {\r\n this.spawn();\r\n }\r\n\r\n spawn() {\r\n const typeId = this.randomizeTetrominoType(COLORS.length - 1);\r\n this.shape = SHAPES[typeId];\r\n this.color = COLORS[typeId];\r\n this.x = typeId === 4 ? 4 : 3;\r\n this.y = 0;\r\n }\r\n\r\n draw() {\r\n this.ctx.fillStyle = this.color;\r\n this.shape.forEach((row, y) => {\r\n row.forEach((value, x) => {\r\n if (value > 0) {\r\n this.ctx.fillRect(this.x + x, this.y + y, 1, 1);\r\n }\r\n });\r\n });\r\n }\r\n\r\n drawNext(ctxNext: CanvasRenderingContext2D) {\r\n ctxNext.clearRect(0, 0, ctxNext.canvas.width, ctxNext.canvas.height);\r\n ctxNext.fillStyle = this.color;\r\n this.shape.forEach((row, y) => {\r\n row.forEach((value, x) => {\r\n if (value > 0) {\r\n ctxNext.fillRect(x, y, 1, 1);\r\n }\r\n });\r\n });\r\n }\r\n\r\n move(p: IPiece) {\r\n this.x = p.x;\r\n this.y = p.y;\r\n this.shape = p.shape;\r\n }\r\n\r\n randomizeTetrominoType(noOfTypes: number): number {\r\n return Math.floor(Math.random() * noOfTypes + 1);\r\n }\r\n}","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'games-overlay',\n templateUrl: './games-overlay.component.html',\n styleUrls: ['./games-overlay.component.css']\n})\nexport class GamesOverlayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
Angular Games\n \n \n \n
\n

\n I didnt build any of these but did want to provide a little fun on the app, so you can pick from a few different games that are built into this app and are all in Angular.\n

\n

\n The only coding take-away here is that I can use other peoples code natively in app and plus got to see a few tricks in how they built these.\n

\n

\n I ll make one caveat that I did add buttons to both of these games so they work on mobile.\n

\n
\n
ngx-Snake
\n

\n This is a cool game I found all in Angular (Desktop preferred). Please check out the info below if curious where I got it from.\n

\n\n \n \n \n \n \n \n \n \n
\n Developer:\n \n Samir Hodzic \n
\n Repo:\n \n GitHub \n
\n
\n
ng-tetris
\n

\n Another neat game I found all in Angular (Desktop preferred). Please check out the info below if curious where I got it from.\n

\n\n \n \n \n \n \n \n \n \n
\n Developer:\n \n Michael Karén \n
\n Repo:\n \n GitHub \n
","import { Component, OnInit } from '@angular/core';\nimport { marker, mapmarker } from '../../../../models/googlemap_models';\nimport { truncateWithEllipsis } from '@amcharts/amcharts4/.internal/core/utils/Utils';\nimport { GooglemarkerapiService } from '../../../../services/googlemarkerapi.service';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { trigger, transition, animate, style} from '@angular/animations';\n\ndeclare var markerCheck: boolean;\ndeclare var markers: marker[];\ndeclare var google: any;\ndeclare let ga: Function;\n\n@Component({\n selector: 'googlemap',\n templateUrl: './googlemap.component.html',\n styleUrls: ['./googlemap.component.css'],\n animations:[\n trigger('slideInOut', [\n transition(':enter', [\n style({transform: 'translateX(100%)'}),\n animate('750ms ease-in', style({transform: 'translateX(0%)'}))\n ]),\n transition(':leave', [\n animate('750ms ease-in', style({transform: 'translateX(500%)'}))\n ]),\n ])\n ]\n})\nexport class GooglemapComponent implements OnInit {\n\n public mapMarkers: google.maps.Marker[];\n public userMarkers: google.maps.Marker[];\n public drawnPolys: google.maps.Polyline[];\n public drawnCircles: google.maps.Circle[];\n public apiMarkers: mapmarker[];\n public info_details: string;\n public marker: google.maps.Marker;\n public geo_coder: google.maps.Geocoder;\n public kmlURL: string;\n public googleMap: any;\n public is_marker: boolean;\n public is_user_marker: boolean;\n public is_traffic: boolean;\n public is_noaa: boolean;\n public is_airQ: boolean;\n public is_fire: boolean;\n public is_drawing: boolean;\n public trafficLayer: google.maps.TrafficLayer;\n public noaaKMLLayer: google.maps.KmlLayer;\n public airKMLLayer: google.maps.KmlLayer;\n public fireKMLLayer: google.maps.KmlLayer;\n public mapDrawing: google.maps.drawing.DrawingManager;\n public directionService: google.maps.DirectionsService;\n public directionsRenderer: google.maps.DirectionsRenderer;\n public addressTo: string;\n public addressFrom: string;\n public is_directions: boolean;\n public radioData: string;\n public searchValue: string;\n public R: number;\n public LatLng: google.maps.LatLng;\n public showGoogle: boolean;\n public googleMapOverlay: boolean;\n public toolActive: boolean;\n\n constructor(public markerService: GooglemarkerapiService, public router: Router) {\n ga('set', 'page', 'Google_Maps');\n ga('send', 'pageview');\n }\n\n ngOnInit() {\n this.is_marker = false;\n this.is_user_marker = false;\n this.is_traffic = false;\n this.is_noaa = false;\n this.is_airQ = false;\n this.is_drawing = false;\n this.is_fire = false;\n this.mapMarkers = [];\n this.userMarkers = [];\n this.drawnPolys = [];\n this.drawnCircles = [];\n this.searchValue = '';\n this.info_details = '';\n this.R = 6378137;\n this.hideAll();\n }\n //overlay functions\n hideAll(){\n this.toolActive = false;\n this.showGoogle = false;\n }\n toolAction(selected: string): void {\n this.hideAll();\n this.googleMapOverlay = false;\n this.toolActive = true;\n switch(selected)\n {\n case \"google\":\n this.showGoogle = true;\n setTimeout(() => {\n this.googleMapOverlay = true;\n }, 725);\n break;\n }\n }\n toolClose(): void {\n this.googleMapOverlay = false;\n setTimeout(() => {\n this.toolActive = false;\n }, 725)\n }\n //when map loads\n onMapReady(map) {\n this.googleMap = map;\n this.geo_coder = new google.maps.Geocoder();\n this.directionService = new google.maps.DirectionsService();\n this.directionsRenderer = new google.maps.DirectionsRenderer;\n this.radioData = \"1\";\n this.setStyle(this.radioData);\n }\n ////////////////////////////////////////////////////\n /// Get Directions ///\n ////////////////////////////////////////////////////\n enableDirections(): void {\n if(this.is_directions){\n this.is_directions = false;\n this.directionsRenderer.setMap(null);\n this.info_details = '';\n }\n else\n {\n this.is_directions = true;\n }\n }\n getDirections(): void {\n const thisComponent = this;\n thisComponent.directionService.route({\n origin: this.addressFrom,\n destination: this.addressTo,\n travelMode: google.maps.TravelMode['DRIVING']\n }, function(response, status){\n if(status.toString() === 'OK')\n {\n thisComponent.directionsRenderer.setDirections(response);\n thisComponent.directionsRenderer.setMap(thisComponent.googleMap);\n thisComponent.info_details = '

Direction Info:

';\n thisComponent.info_details += '
Duration: \"' + response.routes[0].legs[0].duration.text;\n thisComponent.info_details += '
Distance: \"' + response.routes[0].legs[0].distance.text;\n thisComponent.info_details += '
Steps:
\"';\n response.routes[0].legs[0].steps.forEach(item => {\n thisComponent.info_details += 'Go: ' + item.distance.text + ' For: ' + item.duration.text + ' - ' + item.instructions + '
'\n });\n }\n else\n {\n window.alert(\"Not enough info for Google to find route, please try adding state, city or zip\")\n }\n });\n }\n ////////////////////////////////////////////////////\n /// Marker Creation ///\n ////////////////////////////////////////////////////\n setMarkers() {\n if(this.is_marker == false)\n {\n this.markerService.getMapMarkers().subscribe(response =>{\n this.apiMarkers = response;\n this.apiMarkers.forEach(item => {\n const marker = new google.maps.Marker({\n ceo: item.ceo\n });\n marker.setPosition(new google.maps.LatLng(item.lat, item.lng));\n marker.setTitle(item.title);\n marker.setIcon(\"../../assets/media/\" + item.icon);\n marker.setMap(this.googleMap);\n this.mapMarkers.push(marker);\n });\n this.is_marker = true\n });\n }\n else\n {\n this.mapMarkers.forEach(marker =>{\n marker.setMap(null);\n });\n this.mapMarkers = [];\n this.is_marker = false;\n }\n }\n ////////////////////////////////////////////////////\n /// Find User Loc ///\n ////////////////////////////////////////////////////\n //function to find users location\n findMe()\n {\n console.log(this.is_user_marker);\n if(!this.is_user_marker)\n {\n this.is_user_marker = true;\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition((position) => {\n this.showPosition(position);\n });\n } else {\n alert(\"Geolocation is not supported by this browser.\");\n }\n }\n else\n {\n this.userMarkers.forEach(marker =>{\n marker.setMap(null);\n });\n this.userMarkers = [];\n this.is_user_marker = false;\n }\n }\n showPosition(position) {\n let location = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);\n this.googleMap.panTo(location);\n if (!this.marker) {\n const marker = new google.maps.Marker();\n marker.setPosition(new google.maps.LatLng(position.coords.latitude, position.coords.longitude));\n marker.setTitle('You');\n marker.setMap(this.googleMap);\n marker.setIcon(\"../../assets/media/User.png\");\n this.userMarkers.push(marker);\n }\n else {\n this.marker.setPosition(location);\n }\n }\n ////////////////////////////////////////////////////\n /// Drawing Tools ///\n ////////////////////////////////////////////////////\n //function for the drawing objects controller, driven off flag is_drawing\n enableDrawing(): void{\n const thisComponent = this;\n if(this.is_drawing == false)\n {\n this.mapDrawing = new google.maps.drawing.DrawingManager({\n drawingMode: google.maps.drawing.OverlayType.MARKER,\n drawingControl: true,\n drawingControlOptions: {\n position: google.maps.ControlPosition.TOP_CENTER,\n drawingModes: ['marker', 'circle', 'polyline']\n },\n markerOptions: { icon: '../../assets/media/airplane.png'},\n });\n //javascript for polyline complete Event\n google.maps.event.addListener(this.mapDrawing, 'polylinecomplete', function (polyline) {\n //add poly to array for removal later\n thisComponent.drawnPolys.push(polyline);\n //figure out miles between points on the line\n if(polyline.getPath().getArray().length == 2){\n thisComponent.findMiles(polyline.getPath().getArray());\n }\n //or count markers in side polyline\n else {\n thisComponent.countPolyMarkers(polyline);\n }\n });\n //javascript for circle complete\n google.maps.event.addListener(this.mapDrawing, 'circlecomplete', function (circle) {\n thisComponent.drawnCircles.push(circle);\n let ne = circle.getBounds().getNorthEast();\n let sw = circle.getBounds().getSouthWest();\n let theta = 0;\n let drawnCords = [];\n let radi = Math.abs(ne.lng() - sw.lng()) / 2;\n for (theta = 0; theta < 360; theta += 1){\n let cos = Math.cos(theta) * radi + circle.getCenter().lat();\n let sin = Math.sin(theta) * radi + circle.getCenter().lng();\n drawnCords.push(new google.maps.LatLng(cos, sin));\n };\n let drawnPoly = new google.maps.Polygon({\n paths: drawnCords\n });\n thisComponent.countPolyMarkers(drawnPoly);\n });\n\n this.mapDrawing.setMap(this.googleMap);\n this.is_drawing = true;\n }\n else\n {\n this.drawnPolys.forEach(item => {\n item.setMap(null);\n });\n this.drawnCircles.forEach(item => {\n item.setMap(null);\n });\n this.drawnPolys = [];\n this.drawnCircles = [];\n this.mapDrawing.setMap(null);\n this.is_drawing = false;\n this.info_details = '';\n }\n }\n //find miles from polyline and display it\n findMiles(polylineVal): void{\n let polylineLatValA = polylineVal[0].lat();\n let polylineLngValA = polylineVal[0].lng();\n let polylineLatValB = polylineVal[1].lat();\n let polylineLngValB = polylineVal[1].lng();\n let X = this.findSinandCos(\n this.findRad(polylineLatValB - polylineLatValA),\n this.findRad(polylineLngValB - polylineLngValA),\n polylineLatValA,\n polylineLatValB\n );\n let Y = 2 * Math.atan2(Math.sqrt(X), Math.sqrt(1 - X));\n let Z = this.R * Y;\n this.info_details = '

Distance

The Last Line Drawn in Miles: ' + (Z / 1609.344).toFixed(2);\n }\n //count marker items in a polyline\n countPolyMarkers(drawnPoly): void{\n console.log(\"I am here\");\n let companyCount = 0;\n let companyList = \"\" +\n \"\" + \n \"\"+\n \"\";\n this.info_details = '';\n //Count Companies\n if(this.mapMarkers != [] && this.mapMarkers != undefined){\n this.mapMarkers.forEach(item =>{\n let Lat = item.getPosition().lat();\n let Lng = item.getPosition().lng();\n this.LatLng = new google.maps.LatLng(Lat, Lng);\n if(google.maps.geometry.poly.containsLocation(this.LatLng, drawnPoly)){\n companyList += \"\" + \n \"\";\n companyCount += 1;\n }\n });\n this.info_details += '

Companies: ' + companyCount + '

';\n this.info_details += companyList + \"
Company LocationCEO
\" + item.get('title') + \"\" + item.get('ceo') + \"
\";\n }\n }\n //some math functions\n findRad(x: number): number{\n return x * Math.PI / 100;\n }\n findSinandCos(a: number,b: number,x: number,y: number){\n let SinCos = Math.sin(a/2) * Math.sin(a/2) + Math.cos(this.findRad(x)) * Math.cos(this.findRad(y)) * Math.sin(b / 2) * Math.sin(b / 2);\n return SinCos;\n }\n ////////////////////////////////////////////////////\n /// KML Layers and Search ///\n ////////////////////////////////////////////////////\n //function for the NOAA Weather Layer button, driven off flag is_noaa\n setNOAAKML(): void{\n if(this.is_noaa == false)\n {\n this.noaaKMLLayer = new google.maps.KmlLayer({\n url: \"http://www.wpc.ncep.noaa.gov/kml/noaa_chart/WPC_Day1_SigWx.kml\",\n map: this.googleMap,\n });\n this.is_noaa = true;\n }\n else\n {\n this.noaaKMLLayer.setMap(null);\n this.is_noaa = false;\n }\n }\n //function for the Air Now Layer button, driven off flag is_airQ\n setAirQualityKML(): void{\n if(this.is_airQ == false)\n {\n this.airKMLLayer = new google.maps.KmlLayer({\n url: \"http://files.airnowtech.org/airnow/today/airnow_conditions.kml\",\n map: this.googleMap,\n });\n this.is_airQ = true;\n }\n else\n {\n this.airKMLLayer.setMap(null);\n this.is_airQ = false;\n }\n }\n //function for the Fire Layer button, driven off flag is_fire\n setFireKML(): void{\n if(this.is_fire == false)\n {\n this.fireKMLLayer = new google.maps.KmlLayer({\n url: \"https://fsapps.nwcg.gov/data/kml/conus_latest_lg_incidents.kml\",\n map: this.googleMap,\n });\n this.is_fire = true;\n }\n else\n {\n this.fireKMLLayer.setMap(null);\n this.is_fire = false;\n }\n }\n //function for the traffic layer button, driven off flag is_traffic\n setTrafficLayer(): void{\n if (this.is_traffic == false)\n {\n this.trafficLayer = new google.maps.TrafficLayer({map: this.googleMap});\n this.is_traffic = true;\n }\n else\n {\n this.trafficLayer.setMap(null);\n this.is_traffic = false;\n }\n }\n //search function\n findSearch(): void{\n const thisComponent = this;\n thisComponent.marker = new google.maps.Marker;\n thisComponent.geo_coder.geocode({'address' : thisComponent.searchValue }, function(results, status) {\n if(status.toString() == \"OK\"){\n thisComponent.googleMap.setCenter(new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()));\n thisComponent.marker.setIcon('./assets/media/marker.png');\n thisComponent.marker.setPosition(new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()));\n thisComponent.marker.setMap(thisComponent.googleMap);\n } else {\n alert('Geocode was not successful for the following reason: ' + status);\n }\n });\n }\n ////////////////////////////////////////////////////\n /// Set Map Style ///\n ////////////////////////////////////////////////////\n setStyle(value: string): void{\n switch(value)\n {\n case \"1\":\n this.googleMap.setOptions({styles:\n [\n {\n elementType: 'geometry',\n stylers: [{color: '#f5f5f5'}]\n },\n {\n elementType: 'labels.icon',\n stylers: [{visibility: 'off'}]\n },\n {\n elementType: 'labels.text.fill',\n stylers: [{color: '#616161'}]\n },\n {\n elementType: 'labels.text.stroke',\n stylers: [{color: '#f5f5f5'}]\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels.text.fill',\n stylers: [{color: '#bdbdbd'}]\n },\n {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [{color: '#eeeeee'}]\n },\n {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [{color: '#757575'}]\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry',\n stylers: [{color: '#e5e5e5'}]\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [{color: '#9e9e9e'}]\n },\n {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [{color: '#ffffff'}]\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels.text.fill',\n stylers: [{color: '#757575'}]\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [{color: '#dadada'}]\n },\n {\n featureType: 'road.highway',\n elementType: 'labels.text.fill',\n stylers: [{color: '#616161'}]\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text.fill',\n stylers: [{color: '#9e9e9e'}]\n },\n {\n featureType: 'transit.line',\n elementType: 'geometry',\n stylers: [{color: '#e5e5e5'}]\n },\n {\n featureType: 'transit.station',\n elementType: 'geometry',\n stylers: [{color: '#eeeeee'}]\n },\n {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{color: '#c9c9c9'}]\n },\n {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [{color: '#9e9e9e'}]\n }\n ],\n });\n break;\n case \"2\":\n this.googleMap.setOptions({styles:\n [\n {elementType: 'geometry', stylers: [{color: '#242f3e'}]},\n {elementType: 'labels.text.stroke', stylers: [{color: '#242f3e'}]},\n {elementType: 'labels.text.fill', stylers: [{color: '#746855'}]},\n {\n featureType: 'administrative.locality',\n elementType: 'labels.text.fill',\n stylers: [{color: '#d59563'}]\n },\n {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [{color: '#d59563'}]\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry',\n stylers: [{color: '#263c3f'}]\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [{color: '#6b9a76'}]\n },\n {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [{color: '#38414e'}]\n },\n {\n featureType: 'road',\n elementType: 'geometry.stroke',\n stylers: [{color: '#212a37'}]\n },\n {\n featureType: 'road',\n elementType: 'labels.text.fill',\n stylers: [{color: '#9ca5b3'}]\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [{color: '#746855'}]\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [{color: '#1f2835'}]\n },\n {\n featureType: 'road.highway',\n elementType: 'labels.text.fill',\n stylers: [{color: '#f3d19c'}]\n },\n {\n featureType: 'transit',\n elementType: 'geometry',\n stylers: [{color: '#2f3948'}]\n },\n {\n featureType: 'transit.station',\n elementType: 'labels.text.fill',\n stylers: [{color: '#d59563'}]\n },\n {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [{color: '#17263c'}]\n },\n {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [{color: '#515c6d'}]\n },\n {\n featureType: 'water',\n elementType: 'labels.text.stroke',\n stylers: [{color: '#17263c'}]\n }\n ]\n });\n break;\n case \"3\":\n this.googleMap.setOptions({styles: null});\n break;\n }\n }\n}\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Submit\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
    \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n \r\n Submit\r\n
\r\n
\r\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'googlemap-overlay',\n templateUrl: './googlemap-overlay.component.html',\n styleUrls: ['./googlemap-overlay.component.css']\n})\nexport class GooglemapOverlayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
Google Map API\n \n
\n

\n Chart Themes - at the top you can select Silver, Night, and Normal\n
Google GeoLocation API - at the top you can search for an address and see that marker show up using the Google API\n
\n
\n Markers - Displays a few company HQ markers on the the map with logos from the GoogleMaps API controller on the backend\n
\n
\n Find You - If you accept letting the site use your location, will display a user icon on your location and pan to it\n
\n
\n Traffic - Displays Traffic Layer from Google Map API\n
\n
\n Weather - Displays NOAA wearger KML Layer\n
\n
\n Air Quality - Displays Air Quality KML Layer\n
\n
\n Fire - Displays Fire KML Layer from USDA Forest Service\n
\n
\n Drawing - Allows Map drawing through Google API, I recommend adding the markers and then drawing a circle that encapsulates them for a discription under the map\n
\n
\n Also If you use the line and click and then double click you will get a distance calculation in miles below the map\n
\n
\n Directions - Allows To and From address. Direction will display on map as well as step by step under the map\n

\n
\n
API Calls\n \n
\n

\n Google Maps is basically all API calls, with special notes for the GeoLocation stuff. The Markers are also brought in with the API project in the Google Controller\n

\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'polygon-overlay',\n templateUrl: './polygon-overlay.component.html',\n styleUrls: ['./polygon-overlay.component.css']\n})\nexport class PolygonOverlayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
Polygon.IO\n \n
\n

\n I am using the Polygon.IO API to pull back some financial data on stocks by symbol. Its a really cool API and easy to use, \n they dont offer the current quote/price for free and I didnt want to pay $199.00 a month for it so sorry this is just for \n demo purposes. Below are a few example symbols to help if you dont have any handy:\n

\n
    \n
  • F : Ford
  • \n
  • TSLA : Tesla
  • \n
  • MSFT : Microsoft
  • \n
  • AAPL : Apple
  • \n
  • GOOG : Google
  • \n
  • FB : Facebook
  • \n
\n
\n
API Calls\n \n
\n

\n So my backend makes the calls, I could do it from the front end but then my key would be exposed so just put it all in the backend \n so I could hide my credentials a little better.\n

\n

\n Its a pretty neat API for financial data if you are interested:\n
Polygon.IO \n

","import { Component, OnInit } from '@angular/core';\nimport { PolygonIOService } from '../../../../services/polygon-io.service';\nimport { info, news, close, financials } from '../../../../models/polygon_models';\nimport { trigger, transition, animate, style} from '@angular/animations';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'polygonio',\n templateUrl: './polygonio.component.html',\n styleUrls: ['./polygonio.component.css'],\n animations:[\n trigger('slideInOut', [\n transition(':enter', [\n style({transform: 'translateX(100%)'}),\n animate('750ms ease-in', style({transform: 'translateX(0%)'}))\n ]),\n transition(':leave', [\n animate('750ms ease-in', style({transform: 'translateX(500%)'}))\n ]),\n ])\n ]\n})\nexport class PolygonioComponent implements OnInit {\n\n tickerInfo: info[];\n tickerNews: news[];\n tickerClose: close[];\n tickerFinancials: financials[];\n tickerFinancialsCheck: financials[];\n public infoloaded: boolean;\n public searchValue: string\n public polyOverlay: boolean;\n public toolActive: boolean;\n public showPoly: boolean;\n\n constructor(private polyService:PolygonIOService) { \n ga('set', 'page', 'Poly');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n this.hideAll();\n this.infoloaded = false;\n this.getTickerInfo(\"msft\");\n }\n\n getTickerInfo(symbol: string) {\n this.polyService.getTickerInfo(symbol).subscribe(response =>{\n this.tickerInfo = response;\n if (this.tickerInfo != null)\n {\n this.polyService.getTickerFinancials(symbol).subscribe(response => {\n this.tickerFinancials = response;\n });\n this.polyService.getTickerNews(symbol).subscribe(response => {\n this.tickerNews = response;\n });\n this.polyService.getTickerClose(symbol).subscribe(response => {\n this.tickerClose = response;\n this.infoloaded = true;\n });\n }\n });\n }\n\n //overlay functions\n hideAll(){\n this.toolActive = false;\n this.showPoly = false;\n }\n toolAction(selected: string): void {\n this.hideAll();\n this.polyOverlay = false;\n this.toolActive = true;\n switch(selected)\n {\n case \"poly\":\n this.showPoly = true;\n setTimeout(() => {\n this.polyOverlay = true;\n }, 725);\n break;\n }\n }\n toolClose(): void {\n this.polyOverlay = false;\n setTimeout(() => {\n this.toolActive = false;\n }, 725)\n }\n}\n","
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n Submit\n
\n
\n \n
\n
\n
\n
\n Loading...\n
\n
Loading Please Wait...\n
\n
\n
\n
\n

{{tickerInfo[0].name}}

\n
Info:
\n Type: {{tickerInfo[0].market}}\n
Primary Exchange: {{tickerInfo[0].primary_exchange}}\n
Location: {{tickerInfo[0].locale}}\n

\n
Previous Close:
\n Open: {{tickerClose[0].o}}\n
Close: tickerClose[0].c}\"> {{tickerClose[0].c}}\n
Low: {{tickerClose[0].l}}\n

\n
Financials (as of {{tickerFinancials[0].updated}}):
\n Assets NonCurrent: {{tickerFinancials[0].assetsNonCurrent | number}}\n
Debit NonCurrent: {{tickerFinancials[0].debtNonCurrent | number}}\n
Book Value Per Share: {{tickerFinancials[0].bookValuePerShare}}\n
Ratio: {{tickerFinancials[0].currentRatio}}\n
Debit to Equity Ratio: {{tickerFinancials[0].debtToEquityRatio}}\n
Earnings Per Share: {{tickerFinancials[0].earningsPerBasicShareUSD}}\n
Gross Profit: {{tickerFinancials[0].grossProfit | number}}\n
Dividends Per Share: {{tickerFinancials[0].dividendsPerBasicCommonShare}}\n
Dividend Yield: {{tickerFinancials[0].dividendYield}}\n
\n
\n
\n \"Card\n
\n
{{artical.title}}
\n

{{artical.description}}

\n \n   View on {{artical.publisher.name}}\n \n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'twitter-overlay',\n templateUrl: './twitter-overlay.component.html',\n styleUrls: ['./twitter-overlay.component.css']\n})\nexport class TwitterOverlayComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
Twitter API\n \n \n
\n

Main purpose here is to show I can use basic authorization to get data from outside vendors, in this case Twitter.

\n

I am getting all this data from my backend API in the Twitter Controller. I actually built another for search by GeoLocations that I was going to use with the map but felt like it would be overkill.

\n","import { Component, OnInit } from '@angular/core';\nimport { TwitterapiService } from '../../../../services/twitterapi.service';\nimport { tweets } from '../../../../models/twitter_models';\nimport { ActivatedRoute } from '@angular/router';\nimport { trigger, transition, animate, style} from '@angular/animations';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'twitter',\n templateUrl: './twitter.component.html',\n styleUrls: ['./twitter.component.css'],\n animations:[\n trigger('slideInOut', [\n transition(':enter', [\n style({transform: 'translateX(100%)'}),\n animate('750ms ease-in', style({transform: 'translateX(0%)'}))\n ]),\n transition(':leave', [\n animate('750ms ease-in', style({transform: 'translateX(500%)'}))\n ]),\n ])\n ]\n})\nexport class TwitterComponent implements OnInit {\n\n public tweets: tweets[];\n public searchSelection: string;\n public searchValue: string;\n public twitterOverlay: boolean;\n public toolActive: boolean;\n public showTwitter: boolean;\n public infoLoaded: boolean;\n public userID: string;\n\n constructor(public twitterService: TwitterapiService, private route: ActivatedRoute) { \n ga('set', 'page', 'Twitter');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n this.userID = this.route.snapshot.paramMap.get('userid');\n if(this.userID == null)\n {\n this.userID = \"jmheldridge\";\n }\n this.getTweetsbyUser(this.userID, 50);\n this.infoLoaded = false;\n this.searchSelection = \"user\";\n this.hideAll();\n }\n\n submitbtn() {\n if(this.searchSelection == \"user\")\n {\n this.getTweetsbyUser(this.searchValue,50);\n }\n else\n {\n this.getTweetsbyKeyword(this.searchValue, 50);\n }\n }\n\n getTweetsbyUser(userName: string, count: number){\n this.twitterService.getTweetsbyUser(userName, count).subscribe(response =>{\n this.tweets = response;\n this.infoLoaded = true;\n });\n }\n getTweetsbyKeyword(keyword: string, count: number){\n this.twitterService.getTweetsKeyword(keyword, count).subscribe(response =>{\n this.tweets = response;\n });\n }\n\n //overlay functions\n hideAll(){\n this.toolActive = false;\n this.showTwitter = false;\n }\n toolAction(selected: string): void {\n this.hideAll();\n this.twitterOverlay = false;\n this.toolActive = true;\n switch(selected)\n {\n case \"twitter\":\n this.showTwitter = true;\n setTimeout(() => {\n this.twitterOverlay = true;\n }, 725);\n break;\n }\n }\n toolClose(): void {\n this.twitterOverlay = false;\n setTimeout(() => {\n this.toolActive = false;\n }, 725)\n }\n}\n","\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n Loading...\n
\n
Loading Please Wait...\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n Submit\n
\n
\n
\n
\n \n \n \"Card\n
\n
{{tweet.user.name}}
\n \n
@{{tweet.user.screen_name}}
\n {{tweet.full_text}}\n
\n {{tweet.user.location}} - {{tweet.created_at}}\n
\n
\n
\n
\n\n","import { Component, OnInit } from '@angular/core';\nimport { EmailapiService } from '../../services/emailapi.service';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { email } from '../../models/email_models';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare let ga: Function;\n@Component({\n selector: 'contactme',\n templateUrl: './contactme.component.html',\n styleUrls: ['./contactme.component.css']\n})\nexport class ContactmeComponent implements OnInit {\n\n public emailForm: FormGroup;\n public postForm: email;\n public alert: boolean;\n\n constructor(private emailService: EmailapiService, private formBuilder: FormBuilder, public router: Router) {\n ga('set', 'page', 'Contact');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n this.alert = false;\n this.createEmailForm();\n }\n\n createEmailForm(){\n this.emailForm = this.formBuilder.group({\n fname: \"\",\n lname: \"\",\n company: \"\",\n reason: \"\",\n email: \"\",\n reciept: \"no\",\n message: \"\"\n });\n }\n submit(){\n console.log(this.emailForm.value.email.indexOf(\".\"));\n if(this.emailForm.value.email.indexOf(\"@\") == -1 || this.emailForm.value.email.indexOf(\".\") == -1)\n {\n alert(\"Please enter a valid email address.\");\n this.alert = true;\n }\n else\n {\n this.postForm = new email();\n this.postForm.fName = this.emailForm.value.fname;\n this.postForm.lName = this.emailForm.value.lname;\n this.postForm.fromEmail = this.emailForm.value.email;\n this.postForm.company = this.emailForm.value.company;\n this.postForm.reason = this.emailForm.value.reason;\n this.postForm.reciept = this.emailForm.value.reciept;\n this.postForm.message = this.emailForm.value.message;\n this.emailService.postEmail(this.postForm).subscribe(response =>{\n let stringResponse = response;\n if(stringResponse = \"success\")\n {\n alert(\"Thanks for taking the time, I have sent the email!\")\n this.alert = false;\n this.createEmailForm();\n }\n });\n }\n }\n dismissAlert()\n {\n this.alert = false;\n }\n}\n","
\n

Please use the form below to send me an email about the site.

\n
\n \n \n \n \n \n \n
\n \n Oh snap! Please enter a valid email address.\n
\n I will not save or distribute your email.
\n \n \n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n \n
\n
\n Submit\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: '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","
\n
\n
\n
Links
\n \n
\n
\n
Pages in this APP:
\n \n
\n
\n
","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n

Console.WriteLine(\"Welcome!\")

\n
A Coding Site for Jeffrey Heldridge
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { Route, Router, NavigationStart } from '@angular/router';\n\n@Component({\n selector: 'navigation',\n templateUrl: './navigation.component.html',\n styleUrls: ['./navigation.component.css']\n})\nexport class NavigationComponent implements OnInit {\n\n navbarOpen = false;\n public homeActivated: boolean;\n public aboutActivated: boolean;\n public contactActivated: boolean;\n public examplesActivated: boolean;\n public blogreadActivated: boolean;\n public activatedRoute: string;\n\n constructor(private router: Router) { \n this.router.events.subscribe(value => {\n if (value instanceof NavigationStart) {\n this.homeActivated = false;\n this.aboutActivated = false;\n this.contactActivated = false;\n this.examplesActivated = false;\n this.blogreadActivated = false;\n switch(value.url)\n {\n case \"/home\":\n this.homeActivated = true;\n break; \n case \"/about\":\n this.aboutActivated = true;\n break; \n case \"/contact\":\n this.contactActivated = true;\n break; \n case \"/examples\":\n this.examplesActivated = true;\n break; \n case \"/blogread\":\n this.blogreadActivated = true;\n break; \n }\n }\n });\n }\n\n ngOnInit(): void {\n\n }\n\n toggleNavbar() {\n this.navbarOpen = !this.navbarOpen;\n }\n\n}\n","","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router, NavigationEnd } from '@angular/router'\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'pagenotfound',\n templateUrl: './pagenotfound.component.html',\n styleUrls: ['./pagenotfound.component.css']\n})\nexport class PagenotfoundComponent implements OnInit {\n\n public routeName: string;\n\n constructor(private route: ActivatedRoute,\n private router: Router\n ) { \n this.router.events.forEach((event) => {\n if(event instanceof NavigationEnd)\n {\n this.ngOnInit();\n }\n });\n ga('set', 'page', 'Page_Not_Found');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n this.routeName = this.route.snapshot.url[0].path;\n }\n\n}\n","
\n

Navigation Error

\n

Unable to find a page called \"{{this.routeName}}\", please click here to get back to the home page

\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\ndeclare let ga: Function;\n\n@Component({\n selector: 'welcome',\n templateUrl: './welcome.component.html',\n styleUrls: ['./welcome.component.css']\n})\nexport class WelcomeComponent implements OnInit {\n\n constructor(public router: Router) { \n ga('set', 'page', 'Welcome');\n ga('send', 'pageview');\n }\n\n ngOnInit(): void {\n }\n\n}\n","
\n

This Website:

\n

\n Hello, and welcome to my site. This is a webapp I made to occupy some time with the corona virus going around and me self-isolating. Plus I can potentially use this to show off some skills as well as have a good reference for myself later on. The hope also is that one day might be able to use this in an interview setting, where it should be a good example of my code as I can just say go to my URL and look at my github.\n

\n

\n Most of the good stuff in this site is on the code example pages, in them at least on desktop there is a tool overlay on the right that gives an explaination of what is being used. Its hidden on mobile as it takes up a lot of screen.\n

\n

\n Stack used in this site:\n
\n \n \n \n \n
\n Some of the services used:\n
\n \n \n \n
\n Some of the languages used:\n
\n \n \n \n

\n

\n I also hope you can get a sense of my overall style as all of this site is my HTML and CSS.\n

\n

\n Current build is running an Angular 12.0 UI with a .Net/Core 6.0 backend, hosted on a Azure webservice.\n

\n
","export class email {\r\n fromEmail: string;\r\n message: string;\r\n fName: string;\r\n lName: string;\r\n reason: string;\r\n company: string;\r\n reciept: string;\r\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http'\nimport { blog } from '../models/blog_models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BlogapiService {\n\n constructor(private http: HttpClient) { }\n\n public getBlogList()\n {\n return this.http.get('api/blog');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http'\nimport { chart } from '../models/chart_models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChartapiService {\n\n constructor(private http: HttpClient) { }\n\n public getSkills()\n {\n return this.http.get('api/charts/skills');\n }\n public getRaceChart()\n {\n return this.http.get('api/charts/race');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { email } from '../models/email_models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EmailapiService {\n\n constructor(private http: HttpClient) { }\n\n public postEmail(email: email)\n {\n return this.http.post('api/email', email, {responseType: 'text'});\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http'\nimport { mapmarker } from '../models/googlemap_models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GooglemarkerapiService {\n\n constructor(private http: HttpClient) { }\n public getMapMarkers()\n {\n return this.http.get('api/google/markers');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { info, news, close, financials } from '../models/polygon_models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PolygonIOService {\n\n constructor(private http: HttpClient) { }\n\n public getTickerInfo(symbol: string)\n {\n return this.http.get('api/polygon/tickerinfo?symbol=' + symbol);\n }\n public getTickerNews(symbol: string)\n {\n return this.http.get('api/polygon/tickernews?symbol=' + symbol);\n }\n public getTickerClose(symbol: string)\n {\n return this.http.get('api/polygon/tickerclose?symbol=' + symbol);\n }\n public getTickerFinancials(symbol: string)\n {\n return this.http.get('api/polygon/tickerfinancials?symbol=' + symbol);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SnakeScore {\n\n private ngxSnake = 'ngx_snake';\n\n public store(score: number) {\n localStorage.setItem(this.ngxSnake, JSON.stringify({ 'best_score': score }));\n }\n\n public retrieve() {\n let storage = this.parse();\n if (!storage) {\n this.store(0);\n storage = this.parse();\n }\n\n return storage.best_score;\n }\n\n private parse() {\n return JSON.parse(localStorage.getItem(this.ngxSnake));\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { tweets } from '../models/twitter_models';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TwitterapiService {\n\n constructor(private http: HttpClient) { }\n public getTweetsbyUser(twitterUser: string, tweetCount: number)\n {\n return this.http.get('api/twitter/byuser?userName=' + twitterUser + \"&tweetCount=\" + tweetCount);\n }\n public getTweetsKeyword(keyword: string, tweetCount: number)\n {\n return this.http.get('api/twitter/byterm?keyword=' + keyword + \"&tweetCount=\" + tweetCount);\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/plugins/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:///"}