"src/manifest.webmanifest" | "src/manifest.webmanifest" | ||||
], | ], | ||||
"styles": [ | "styles": [ | ||||
"node_modules/@fortawesome/fontawesome-free/css/brands.min.css", | |||||
"node_modules/@fortawesome/fontawesome-free/css/solid.min.css", | |||||
"node_modules/bootstrap/dist/css/bootstrap.min.css", | "node_modules/bootstrap/dist/css/bootstrap.min.css", | ||||
"src/assets/sass/paper-kit.scss", | "src/assets/sass/paper-kit.scss", | ||||
"src/assets/css/demo.css", | "src/assets/css/demo.css", | ||||
"src/assets/css/nucleo-icons.css" | "src/assets/css/nucleo-icons.css" | ||||
], | ], | ||||
"scripts": [ | "scripts": [ | ||||
"node_modules/@fortawesome/fontawesome-free/js/brands.min.js", | |||||
"node_modules/@fortawesome/fontawesome-free/js/solid.min.js" | |||||
] | ] | ||||
}, | }, | ||||
"configurations": { | "configurations": { | ||||
"polyfills": "src/polyfills.ts", | "polyfills": "src/polyfills.ts", | ||||
"tsConfig": "src/tsconfig.spec.json", | "tsConfig": "src/tsconfig.spec.json", | ||||
"scripts": [ | "scripts": [ | ||||
"node_modules/@fortawesome/fontawesome-free/js/brands.min.js", | |||||
"node_modules/@fortawesome/fontawesome-free/js/solid.min.js" | |||||
], | ], | ||||
"styles": [ | "styles": [ | ||||
"node_modules/bootstrap/dist/css/bootstrap.min.css", | "node_modules/bootstrap/dist/css/bootstrap.min.css", | ||||
"node_modules/@fortawesome/fontawesome-free/css/brands.min.css", | |||||
"node_modules/@fortawesome/fontawesome-free/css/solid.min.css", | |||||
"src/assets/sass/paper-kit.scss", | "src/assets/sass/paper-kit.scss", | ||||
"src/assets/css/demo.css", | "src/assets/css/demo.css", | ||||
"src/assets/css/nucleo-icons.css" | "src/assets/css/nucleo-icons.css" |
"@angular/platform-browser-dynamic": "9.0.6", | "@angular/platform-browser-dynamic": "9.0.6", | ||||
"@angular/router": "9.0.6", | "@angular/router": "9.0.6", | ||||
"@angular/service-worker": "9.0.6", | "@angular/service-worker": "9.0.6", | ||||
"@fortawesome/angular-fontawesome": "~0.6.1", | |||||
"@fortawesome/fontawesome-free": "^5.13.0", | "@fortawesome/fontawesome-free": "^5.13.0", | ||||
"@fortawesome/fontawesome-svg-core": "^1.2.28", | |||||
"@fortawesome/free-brands-svg-icons": "^5.13.0", | |||||
"@fortawesome/free-regular-svg-icons": "^5.13.0", | |||||
"@fortawesome/free-solid-svg-icons": "^5.13.0", | |||||
"@ng-bootstrap/ng-bootstrap": "6.0.0", | "@ng-bootstrap/ng-bootstrap": "6.0.0", | ||||
"bootstrap": "^4.5.0", | "bootstrap": "^4.5.0", | ||||
"core-js": "3.6.4", | "core-js": "3.6.4", | ||||
"zone.js": "0.10.2" | "zone.js": "0.10.2" | ||||
}, | }, | ||||
"devDependencies": { | "devDependencies": { | ||||
"@angular-devkit/build-angular": "0.900.6", | |||||
"@angular-devkit/build-angular": "^0.901.7", | |||||
"@angular/cli": "9.0.6", | "@angular/cli": "9.0.6", | ||||
"@angular/compiler-cli": "9.0.6", | "@angular/compiler-cli": "9.0.6", | ||||
"@angular/language-service": "9.0.6", | "@angular/language-service": "9.0.6", |
import { Component, OnInit, Inject, Renderer2, ElementRef, ViewChild } from '@angular/core'; | |||||
import { Router, NavigationEnd } from '@angular/router'; | |||||
import { Subscription } from 'rxjs/Subscription'; | |||||
import { DOCUMENT, Location } from '@angular/common'; | |||||
import { Component, ElementRef, Inject, OnInit, Renderer2, ViewChild } from '@angular/core'; | |||||
import { NavigationEnd, Router } from '@angular/router'; | |||||
import 'rxjs/add/operator/filter'; | import 'rxjs/add/operator/filter'; | ||||
import { DOCUMENT } from '@angular/common'; | |||||
import { LocationStrategy, PlatformLocation, Location } from '@angular/common'; | |||||
import { Subscription } from 'rxjs/Subscription'; | |||||
import { NavbarComponent } from './shared/navbar/navbar.component'; | import { NavbarComponent } from './shared/navbar/navbar.component'; | ||||
@Component({ | @Component({ | ||||
private _router: Subscription; | private _router: Subscription; | ||||
@ViewChild(NavbarComponent) navbar: NavbarComponent; | @ViewChild(NavbarComponent) navbar: NavbarComponent; | ||||
constructor( private renderer : Renderer2, private router: Router, @Inject(DOCUMENT,) private document: any, private element : ElementRef, public location: Location) {} | |||||
constructor(private renderer: Renderer2, private router: Router, @Inject(DOCUMENT) private document: any, private element: ElementRef, public location: Location) { } | |||||
ngOnInit() { | ngOnInit() { | ||||
var navbar : HTMLElement = this.element.nativeElement.children[0].children[0]; | |||||
let navbar: HTMLElement = this.element.nativeElement.children[0].children[0]; | |||||
this._router = this.router.events.filter(event => event instanceof NavigationEnd).subscribe((event: NavigationEnd) => { | this._router = this.router.events.filter(event => event instanceof NavigationEnd).subscribe((event: NavigationEnd) => { | ||||
if (window.outerWidth > 991) { | if (window.outerWidth > 991) { | ||||
window.document.children[0].scrollTop = 0; | window.document.children[0].scrollTop = 0; | ||||
}else{ | |||||
} else { | |||||
window.document.activeElement.scrollTop = 0; | window.document.activeElement.scrollTop = 0; | ||||
} | } | ||||
this.navbar.sidebarClose(); | this.navbar.sidebarClose(); | ||||
navbar.classList.add('navbar-transparent'); | navbar.classList.add('navbar-transparent'); | ||||
} | } | ||||
}); | }); | ||||
var ua = window.navigator.userAgent; | |||||
var trident = ua.indexOf('Trident/'); | |||||
let ua = window.navigator.userAgent; | |||||
let trident = ua.indexOf('Trident/'); | |||||
if (trident > 0) { | if (trident > 0) { | ||||
// IE 11 => return version number | // IE 11 => return version number | ||||
var rv = ua.indexOf('rv:'); | |||||
let rv = ua.indexOf('rv:'); | |||||
var version = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); | var version = parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10); | ||||
} | } | ||||
if (version) { | if (version) { | ||||
var body = document.getElementsByTagName('body')[0]; | |||||
let body = document.getElementsByTagName('body')[0]; | |||||
body.classList.add('ie-background'); | body.classList.add('ie-background'); | ||||
} | } | ||||
} | } | ||||
removeFooter() { | removeFooter() { | ||||
var titlee = this.location.prepareExternalUrl(this.location.path()); | |||||
titlee = titlee.slice( 1 ); | |||||
if(titlee === 'signup' || titlee === 'nucleoicons'){ | |||||
let titlee = this.location.prepareExternalUrl(this.location.path()); | |||||
titlee = titlee.slice(1); | |||||
if (titlee === 'signup' || titlee === 'nucleoicons') { | |||||
return false; | return false; | ||||
} | } | ||||
else { | else { |
import { PdfHeaderComponent } from './page-header/pdf-header/pdf-header.component'; | import { PdfHeaderComponent } from './page-header/pdf-header/pdf-header.component'; | ||||
import { MusicHeaderComponent } from './page-header/music-header/music-header.component'; | import { MusicHeaderComponent } from './page-header/music-header/music-header.component'; | ||||
import { ServiceWorkerModule } from '@angular/service-worker'; | import { ServiceWorkerModule } from '@angular/service-worker'; | ||||
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome'; | |||||
@NgModule({ | @NgModule({ | ||||
ComponentsModule, | ComponentsModule, | ||||
PageHeaderModule, | PageHeaderModule, | ||||
ServiceWorkerModule.register('ngsw-worker.js', { enabled: true }), | ServiceWorkerModule.register('ngsw-worker.js', { enabled: true }), | ||||
FontAwesomeModule, | |||||
], | ], | ||||
providers: [], | providers: [], | ||||
bootstrap: [AppComponent] | bootstrap: [AppComponent] |
<div class="col-sm-4 offset-md-4"> | <div class="col-sm-4 offset-md-4"> | ||||
<div class="info text-center"> | <div class="info text-center"> | ||||
<div class="icon icon-danger"> | <div class="icon icon-danger"> | ||||
<i class="fab fa-itch-io"></i> | |||||
<fa-icon [icon]="icons.faItchIo" ></fa-icon> | |||||
</div> | </div> | ||||
<div class="description"> | <div class="description"> | ||||
<h4 class="info-title">Mini Beans Jam Games</h4> | <h4 class="info-title">Mini Beans Jam Games</h4> | ||||
>Play Now!</a | >Play Now!</a | ||||
> | > | ||||
<a href="https://karotofel.itch.io/mrq" class="btn btn-primary"> | <a href="https://karotofel.itch.io/mrq" class="btn btn-primary"> | ||||
Check out on <i class="fab fa-itch-io"></i> | |||||
Check out on <fa-icon [icon]="icons.faItchIo" ></fa-icon> | |||||
</a> | </a> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
href="https://karotofel.itch.io/wtfungi" | href="https://karotofel.itch.io/wtfungi" | ||||
class="btn btn-primary" | class="btn btn-primary" | ||||
> | > | ||||
Check out on <i class="fab fa-itch-io"></i> | |||||
Check out on <fa-icon [icon]="icons.faItchIo" ></fa-icon> | |||||
</a> | </a> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
href="https://karotofel.itch.io/laser-blues" | href="https://karotofel.itch.io/laser-blues" | ||||
class="btn btn-primary" | class="btn btn-primary" | ||||
> | > | ||||
Check out on <i class="fab fa-itch-io"></i> | |||||
Check out on <fa-icon [icon]="icons.faItchIo" ></fa-icon> | |||||
</a> | </a> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
href="https://karotofel.itch.io/salty-piranha" | href="https://karotofel.itch.io/salty-piranha" | ||||
class="btn btn-primary" | class="btn btn-primary" | ||||
> | > | ||||
Check out on <i class="fab fa-itch-io"></i> | |||||
Check out on <fa-icon [icon]="icons.faItchIo" ></fa-icon> | |||||
</a> | </a> | ||||
</div> | </div> | ||||
</div> | </div> |
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
import { IconServiceService } from 'app/service/icon-service.service'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-games-dashboard', | selector: 'app-games-dashboard', | ||||
templateUrl: './games-dashboard.component.html', | templateUrl: './games-dashboard.component.html', | ||||
styleUrls: ['./games-dashboard.component.css'] | styleUrls: ['./games-dashboard.component.css'] | ||||
}) | }) | ||||
export class GamesDashboardComponent implements OnInit { | export class GamesDashboardComponent implements OnInit { | ||||
public icons = IconServiceService; | |||||
constructor() { } | constructor() { } | ||||
ngOnInit(): void { | ngOnInit(): void { |
<div class="col-sm-12"> | <div class="col-sm-12"> | ||||
<div class="info text-center"> | <div class="info text-center"> | ||||
<div class="icon icon-danger"> | <div class="icon icon-danger"> | ||||
<i class="fas fa-music"></i> | |||||
<fa-icon [icon]="icons.faMusic"></fa-icon> | |||||
</div> | </div> | ||||
<h4 class="info-title">My favorite Music</h4> | <h4 class="info-title">My favorite Music</h4> | ||||
<div class="info-separator separator"></div> | <div class="info-separator separator"></div> |
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
import { IconServiceService } from 'app/service/icon-service.service'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-music', | selector: 'app-music', | ||||
styleUrls: ['./music.component.css'] | styleUrls: ['./music.component.css'] | ||||
}) | }) | ||||
export class MusicComponent implements OnInit { | export class MusicComponent implements OnInit { | ||||
public icons = IconServiceService; | |||||
constructor() { } | constructor() { } | ||||
ngOnInit(): void { | ngOnInit(): void { |
<div class="row text-center title"> | <div class="row text-center title"> | ||||
<div class="col-sm-4 offset-md-4"> | <div class="col-sm-4 offset-md-4"> | ||||
<div class="info text-center logo"> | <div class="info text-center logo"> | ||||
<i class="fas fa-globe"></i> | |||||
<fa-icon [icon]="icons.faGlobe"></fa-icon> | |||||
</div> | </div> | ||||
<div class="description"> | <div class="description"> | ||||
<h4 class="info-title">Web Projects</h4> | <h4 class="info-title">Web Projects</h4> | ||||
<div class="col-sm-6"> | <div class="col-sm-6"> | ||||
<div class="info text-center"> | <div class="info text-center"> | ||||
<div class="icon icon-danger"> | <div class="icon icon-danger"> | ||||
<i class="fab fa-github"></i> | |||||
<fa-icon [icon]="icons.faGithub" ></fa-icon> | |||||
</div> | </div> | ||||
<div class="description"> | <div class="description"> | ||||
<h4 class="info-title"> | <h4 class="info-title"> | ||||
<div class="col-sm-6"> | <div class="col-sm-6"> | ||||
<div class="info text-center"> | <div class="info text-center"> | ||||
<div class="icon icon-danger"> | <div class="icon icon-danger"> | ||||
<i class="fab fa-npm"></i> | |||||
<fa-icon [icon]="icons.faNpm" ></fa-icon> | |||||
</div> | </div> | ||||
<div class="description"> | <div class="description"> | ||||
<h4 class="info-title"> | <h4 class="info-title"> |
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
import { IconServiceService } from 'app/service/icon-service.service'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-project-dashboard', | selector: 'app-project-dashboard', | ||||
styleUrls: ['./project-dashboard.component.css'] | styleUrls: ['./project-dashboard.component.css'] | ||||
}) | }) | ||||
export class ProjectDashboardComponent implements OnInit { | export class ProjectDashboardComponent implements OnInit { | ||||
public icons = IconServiceService; | |||||
constructor() { } | constructor() { } | ||||
ngOnInit(): void { | ngOnInit(): void { |
class="text-center skill col-sm-3" | class="text-center skill col-sm-3" | ||||
> | > | ||||
<div class="text-center skill-logo"> | <div class="text-center skill-logo"> | ||||
<div [innerHTML]="skill.iconHtml"></div> | |||||
<fa-icon | |||||
*ngIf="skill.isFaIcon; else noIcon" | |||||
[icon]="skill.icon" | |||||
></fa-icon> | |||||
<ng-template #noIcon> | |||||
<div [innerHTML]="skill.icon"></div> | |||||
</ng-template> | |||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
{{ skill.name }} | {{ skill.name }} | ||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
<i class="{{ getStarClass(skill.starCount, 0) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 1) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 2) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 3) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 4) }}"></i> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 0)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 1)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 2)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 3)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 4)"></fa-icon> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
class="text-center skill col-sm-6" | class="text-center skill col-sm-6" | ||||
> | > | ||||
<div class="text-center skill-logo"> | <div class="text-center skill-logo"> | ||||
<div [innerHTML]="skill.iconHtml"></div> | |||||
<fa-icon | |||||
*ngIf="skill.isFaIcon; else noIcon" | |||||
[icon]="skill.icon" | |||||
></fa-icon> | |||||
<ng-template #noIcon> | |||||
<div [innerHTML]="skill.icon"></div> | |||||
</ng-template> | |||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
{{ skill.name }} | {{ skill.name }} | ||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
<i class="{{ getStarClass(skill.starCount, 0) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 1) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 2) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 3) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 4) }}"></i> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 0)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 1)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 2)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 3)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 4)"></fa-icon> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
class="text-center skill col-sm-6" | class="text-center skill col-sm-6" | ||||
> | > | ||||
<div class="text-center skill-logo"> | <div class="text-center skill-logo"> | ||||
<div [innerHTML]="skill.iconHtml"></div> | |||||
<fa-icon | |||||
*ngIf="skill.isFaIcon; else noIcon" | |||||
[icon]="skill.icon" | |||||
></fa-icon> | |||||
<ng-template #noIcon> | |||||
<div [innerHTML]="skill.icon"></div> | |||||
</ng-template> | |||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
{{ skill.name }} | {{ skill.name }} | ||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
<i class="{{ getStarClass(skill.starCount, 0) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 1) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 2) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 3) }}"></i> | |||||
<i class="{{ getStarClass(skill.starCount, 4) }}"></i> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 0)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 1)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 2)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 3)"></fa-icon> | |||||
<fa-icon [icon]="getStarIcon(skill.starCount, 4)"></fa-icon> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
class="text-center skill col-sm-6" | class="text-center skill col-sm-6" | ||||
> | > | ||||
<div class="text-center skill-logo"> | <div class="text-center skill-logo"> | ||||
<div [innerHTML]="skill.iconHtml"></div> | |||||
<fa-icon | |||||
*ngIf="skill.isFaIcon; else noIcon" | |||||
[icon]="skill.icon" | |||||
></fa-icon> | |||||
<ng-template #noIcon> | |||||
<div [innerHTML]="skill.icon"></div> | |||||
</ng-template> | |||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
{{ skill.name }} | {{ skill.name }} | ||||
<div class="col-md-6 text-center"> | <div class="col-md-6 text-center"> | ||||
<div class="info"> | <div class="info"> | ||||
<div class="icon icon-danger"> | <div class="icon icon-danger"> | ||||
<i class="fas fa-gamepad"></i> | |||||
<fa-icon [icon]="icons.faGamepad"></fa-icon> | |||||
</div> | </div> | ||||
<div class="description"> | <div class="description"> | ||||
<h4 class="info-title">Games</h4> | <h4 class="info-title">Games</h4> | ||||
<div class="col-md-6 text-center"> | <div class="col-md-6 text-center"> | ||||
<div class="info"> | <div class="info"> | ||||
<div class="icon icon-danger"> | <div class="icon icon-danger"> | ||||
<i class="fas fa-code"></i> | |||||
<fa-icon [icon]="icons.faCode"></fa-icon> | |||||
</div> | </div> | ||||
<div class="description"> | <div class="description"> | ||||
<h4 class="info-title">Projects</h4> | <h4 class="info-title">Projects</h4> | ||||
<div class="row"> | <div class="row"> | ||||
<div *ngFor="let skill of hobbys" class="text-center skill col-sm-6"> | <div *ngFor="let skill of hobbys" class="text-center skill col-sm-6"> | ||||
<div class="text-center skill-logo"> | <div class="text-center skill-logo"> | ||||
<div [innerHTML]="skill.iconHtml"></div> | |||||
<fa-icon | |||||
*ngIf="skill.isFaIcon; else noIcon" | |||||
[icon]="skill.icon" | |||||
></fa-icon> | |||||
<ng-template #noIcon> | |||||
<div [innerHTML]="skill.icon"></div> | |||||
</ng-template> | |||||
</div> | </div> | ||||
<div class="text-center"> | <div class="text-center"> | ||||
{{ skill.name }} | {{ skill.name }} |
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
import { IconServiceService } from 'app/service/icon-service.service'; | |||||
export type Star = 0 | 0.5 | 1 | 1.5 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5; | export type Star = 0 | 0.5 | 1 | 1.5 | 2 | 2.5 | 3 | 3.5 | 4 | 4.5 | 5; | ||||
export const STAR_CLASS_MAP = { | export const STAR_CLASS_MAP = { | ||||
0: 'far fa-star', | |||||
0.5: 'fas fa-star-half', | |||||
1: 'fas fa-star', | |||||
0: IconServiceService.farStar, | |||||
0.5: IconServiceService.faStarHalfAlt, | |||||
1: IconServiceService.fasStar, | |||||
} | } | ||||
export const MAX_STARS = 5; | export const MAX_STARS = 5; | ||||
} | } | ||||
export interface Skill { | export interface Skill { | ||||
name: string; | name: string; | ||||
iconHtml: string; | |||||
icon: any; | |||||
starCount?: Star; | starCount?: Star; | ||||
isFaIcon: boolean; | |||||
description?: { | description?: { | ||||
text?: string; | text?: string; | ||||
links?: Link[]; | links?: Link[]; | ||||
public softSkills: Skill[] = [ | public softSkills: Skill[] = [ | ||||
{ | { | ||||
name: 'Teamwork', | name: 'Teamwork', | ||||
iconHtml: '<i class="fas fa-users"></i>', | |||||
icon: IconServiceService.faUsers, | |||||
isFaIcon: true, | |||||
starCount: 4 | starCount: 4 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Communication', | name: 'Communication', | ||||
iconHtml: '<i class="fas fa-comments"></i>', | |||||
icon: IconServiceService.faComments, | |||||
isFaIcon: true, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
]; | ]; | ||||
public likeToLearn: Skill[] = [ | public likeToLearn: Skill[] = [ | ||||
{ | { | ||||
name: 'IoT', | name: 'IoT', | ||||
iconHtml: '<i class="fas fa-microchip"></i>', | |||||
icon: IconServiceService.faMicrochip, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
{ | { | ||||
name: 'Deep Learning', | name: 'Deep Learning', | ||||
iconHtml: '<i class="fas fa-cogs"></i>', | |||||
icon: IconServiceService.faCogs, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
{ | { | ||||
name: 'Game Development', | name: 'Game Development', | ||||
iconHtml: '<i class="fas fa-gamepad"></i>', | |||||
icon: IconServiceService.faGamepad, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
{ | { | ||||
name: 'Vuejs', | name: 'Vuejs', | ||||
iconHtml: '<i class="fab fa-vuejs"></i>', | |||||
icon: IconServiceService.faVuejs, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
]; | ]; | ||||
public hobbys: Skill[] = [ | public hobbys: Skill[] = [ | ||||
{ | { | ||||
name: 'Gaming', | name: 'Gaming', | ||||
iconHtml: '<i class="fas fa-gamepad"></i>', | |||||
icon: IconServiceService.faGamepad, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
{ | { | ||||
name: 'Music', | name: 'Music', | ||||
iconHtml: '<i class="fas fa-music"></i>', | |||||
icon: IconServiceService.faMusic, | |||||
isFaIcon: true, | |||||
description: { | description: { | ||||
links: [ | links: [ | ||||
{ | { | ||||
}, | }, | ||||
{ | { | ||||
name: 'Programming', | name: 'Programming', | ||||
iconHtml: '<i class="fas fa-code"></i>', | |||||
icon: IconServiceService.faCode, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
{ | { | ||||
name: 'Cooking', | name: 'Cooking', | ||||
iconHtml: '<i class="fas fa-utensils"></i>', | |||||
icon: IconServiceService.faUtensils, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
{ | { | ||||
name: 'Skating', | name: 'Skating', | ||||
iconHtml: '<i class="fas fa-snowboarding"></i>', | |||||
icon: IconServiceService.faSnowboarding, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
{ | { | ||||
name: 'Pen & Paper', | name: 'Pen & Paper', | ||||
iconHtml: '<i class="far fa-edit"></i>', | |||||
icon: IconServiceService.faEdit, | |||||
isFaIcon: true, | |||||
}, | }, | ||||
]; | ]; | ||||
public languages: Skill[] = [ | public languages: Skill[] = [ | ||||
{ | { | ||||
name: 'German (native language)', | name: 'German (native language)', | ||||
iconHtml: '<img height="30" src="/assets/icons/flags/german.png" alt="German">', | |||||
icon: '<img height="30" src="/assets/icons/flags/german.png" alt="German">', | |||||
isFaIcon: false, | |||||
starCount: 5 | starCount: 5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'English', | name: 'English', | ||||
iconHtml: '<img height="30" src="/assets/icons/flags/english.png" alt="English">', | |||||
icon: '<img height="30" src="/assets/icons/flags/english.png" alt="English">', | |||||
isFaIcon: false, | |||||
starCount: 3.5 | starCount: 3.5 | ||||
}, | }, | ||||
]; | ]; | ||||
public skills: Skill[] = [ | public skills: Skill[] = [ | ||||
{ | { | ||||
name: 'Unit-testing', | name: 'Unit-testing', | ||||
iconHtml: '<i class="fas fa-vial"></i>', | |||||
icon: IconServiceService.faVial, | |||||
isFaIcon: true, | |||||
starCount: 3 | starCount: 3 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Jira', | name: 'Jira', | ||||
iconHtml: '<i class="fab fa-jira"></i> ', | |||||
icon: IconServiceService.faJira, | |||||
isFaIcon: true, | |||||
starCount: 4 | starCount: 4 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Apache', | name: 'Apache', | ||||
iconHtml: '<img height="30" src="/assets/icons/apache.png" alt="Apache">', | |||||
icon: '<img height="30" src="/assets/icons/apache.png" alt="Apache">', | |||||
isFaIcon: false, | |||||
starCount: 2.5 | starCount: 2.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Nginx', | name: 'Nginx', | ||||
iconHtml: '<img height="30" src="/assets/icons/nginx.svg" alt="Nginx">', | |||||
icon: '<img height="30" src="/assets/icons/nginx.svg" alt="Nginx">', | |||||
isFaIcon: false, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Jenkins', | name: 'Jenkins', | ||||
iconHtml: '<i class="fab fa-jenkins"></i>', | |||||
icon: IconServiceService.faJenkins, | |||||
isFaIcon: true, | |||||
starCount: 3 | starCount: 3 | ||||
}, | }, | ||||
{ | { | ||||
name: 'SQL', | name: 'SQL', | ||||
iconHtml: '<i class="fas fa-database"></i>', | |||||
icon: IconServiceService.faDatabase, | |||||
isFaIcon: true, | |||||
starCount: 3.5 | starCount: 3.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Python', | name: 'Python', | ||||
iconHtml: '<i class="fab fa-python"></i>', | |||||
icon: IconServiceService.faPython, | |||||
isFaIcon: true, | |||||
starCount: 2 | starCount: 2 | ||||
}, | }, | ||||
{ | { | ||||
name: 'PHP', | name: 'PHP', | ||||
iconHtml: '<i class="fab fa-php"></i>', | |||||
icon: IconServiceService.faPhp, | |||||
isFaIcon: true, | |||||
starCount: 4 | starCount: 4 | ||||
}, | }, | ||||
{ | { | ||||
name: 'HTML & CSS', | name: 'HTML & CSS', | ||||
iconHtml: '<i class="fab fa-html5"></i>', | |||||
icon: IconServiceService.faHtml5, | |||||
isFaIcon: true, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Angular 2+ & AngularJS', | name: 'Angular 2+ & AngularJS', | ||||
iconHtml: '<i class="fab fa-angular"></i>', | |||||
icon: IconServiceService.faAngular, | |||||
isFaIcon: true, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'NestJs', | name: 'NestJs', | ||||
iconHtml: '<img height="30" src="/assets/icons/nestjs.svg" alt="NestJs">', | |||||
icon: '<img height="30" src="/assets/icons/nestjs.svg" alt="NestJs">', | |||||
isFaIcon: false, | |||||
starCount: 4 | starCount: 4 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Twig', | name: 'Twig', | ||||
iconHtml: '<img height="30" src="/assets/icons/twig.svg" alt="Twig">', | |||||
icon: '<img height="30" src="/assets/icons/twig.svg" alt="Twig">', | |||||
isFaIcon: false, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Electron', | name: 'Electron', | ||||
iconHtml: '<i class="fas fa-atom"></i>', | |||||
icon: IconServiceService.faAtom, | |||||
isFaIcon: true, | |||||
starCount: 4 | starCount: 4 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Typescript', | name: 'Typescript', | ||||
iconHtml: '<img height="30" color="white" class="skill-logo" src="/assets/icons/typescript.svg" alt="Typescript">', | |||||
icon: '<img height="30" color="white" class="skill-logo" src="/assets/icons/typescript.svg" alt="Typescript">', | |||||
isFaIcon: false, | |||||
starCount: 4 | starCount: 4 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Ubuntu', | name: 'Ubuntu', | ||||
iconHtml: '<i class="fab fa-ubuntu"></i>', | |||||
icon: IconServiceService.faUbuntu, | |||||
isFaIcon: true, | |||||
starCount: 4 | starCount: 4 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Docker', | name: 'Docker', | ||||
iconHtml: '<i class="fab fa-docker"></i>', | |||||
icon: IconServiceService.faDocker, | |||||
isFaIcon: true, | |||||
starCount: 3 | starCount: 3 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Kubernetes', | name: 'Kubernetes', | ||||
iconHtml: '<img height="30" src="/assets/icons/kubernetes.png" alt="Kubernetes">', | |||||
icon: '<img height="30" src="/assets/icons/kubernetes.png" alt="Kubernetes">', | |||||
isFaIcon: false, | |||||
starCount: 2 | starCount: 2 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Git', | name: 'Git', | ||||
iconHtml: '<i class="fab fa-git"></i>', | |||||
icon: IconServiceService.faGit, | |||||
isFaIcon: true, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'NPM', | name: 'NPM', | ||||
iconHtml: '<i class="fab fa-npm"></i>', | |||||
icon: IconServiceService.faNpm, | |||||
isFaIcon: true, | |||||
starCount: 5 | starCount: 5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Unity', | name: 'Unity', | ||||
iconHtml: '<i class="fab fa-unity"></i>', | |||||
icon: IconServiceService.faUnity, | |||||
isFaIcon: true, | |||||
starCount: 2 | starCount: 2 | ||||
}, | }, | ||||
{ | { | ||||
name: 'Godot', | name: 'Godot', | ||||
iconHtml: '<img height="30" src="/assets/icons/kubernetes.png" alt="Godot">', | |||||
icon: '<img height="30" src="/assets/icons/kubernetes.png" alt="Godot">', | |||||
isFaIcon: false, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
{ | { | ||||
name: 'C#', | name: 'C#', | ||||
iconHtml: '<div height="30">C#</div>', | |||||
icon: '<div height="30">C#</div>', | |||||
isFaIcon: false, | |||||
starCount: 4.5 | starCount: 4.5 | ||||
}, | }, | ||||
]; | ]; | ||||
public icons = IconServiceService; | |||||
constructor() { } | constructor() { } | ||||
ngOnInit(): void { | ngOnInit(): void { | ||||
} | } | ||||
getStarClass(starCount: Star, starIndex: number) { | |||||
getStarIcon(starCount: Star, starIndex: number) { | |||||
const starSizes: number[] = []; | const starSizes: number[] = []; | ||||
let starCountWorker = starCount; | let starCountWorker = starCount; | ||||
for (let starIterator = 1; starIterator <= MAX_STARS; starIterator++) { | for (let starIterator = 1; starIterator <= MAX_STARS; starIterator++) { |
import { TestBed } from '@angular/core/testing'; | |||||
import { IconServiceService } from './icon-service.service'; | |||||
describe('IconServiceService', () => { | |||||
let service: IconServiceService; | |||||
beforeEach(() => { | |||||
TestBed.configureTestingModule({}); | |||||
service = TestBed.inject(IconServiceService); | |||||
}); | |||||
it('should be created', () => { | |||||
expect(service).toBeTruthy(); | |||||
}); | |||||
}); |
import { Injectable } from '@angular/core'; | |||||
import { faStar as farStar } from '@fortawesome/free-regular-svg-icons'; | |||||
import { faEdit, faHeart, faStar as fasStar, faStarHalfAlt, faMusic, faGlobe, faGamepad, faCode, faUsers, faComments, faCogs, faUtensils, faSnowboarding, faVial, faDatabase, faAtom, faMicrochip, faAddressCard } from '@fortawesome/free-solid-svg-icons'; | |||||
import { faItchIo, faVuejs, faJira, faJenkins, faPython, faPhp, faHtml5, faAngular, faUbuntu, faDocker, faGit, faNpm, faUnity, faGithub, faXing } from '@fortawesome/free-brands-svg-icons'; | |||||
@Injectable({ | |||||
providedIn: 'root' | |||||
}) | |||||
export class IconServiceService { | |||||
static faEdit = faEdit; | |||||
static farStar = farStar; | |||||
static fasStar = fasStar; | |||||
static faStarHalfAlt = faStarHalfAlt; | |||||
static faHeart = faHeart; | |||||
static faItchIo = faItchIo; | |||||
static faMusic = faMusic; | |||||
static faGlobe = faGlobe; | |||||
static faGamepad = faGamepad; | |||||
static faCode = faCode; | |||||
static faUsers = faUsers; | |||||
static faComments = faComments; | |||||
static faCogs = faCogs; | |||||
static faUtensils = faUtensils; | |||||
static faSnowboarding = faSnowboarding; | |||||
static faVial = faVial; | |||||
static faDatabase = faDatabase; | |||||
static faAtom = faAtom; | |||||
static faMicrochip = faMicrochip; | |||||
static faAddressCard = faAddressCard; | |||||
static faVuejs = faVuejs; | |||||
static faJira = faJira; | |||||
static faJenkins = faJenkins; | |||||
static faPython = faPython; | |||||
static faPhp = faPhp; | |||||
static faHtml5 = faHtml5; | |||||
static faAngular = faAngular; | |||||
static faUbuntu = faUbuntu; | |||||
static faDocker = faDocker; | |||||
static faGit = faGit; | |||||
static faNpm = faNpm; | |||||
static faUnity = faUnity; | |||||
static faGithub = faGithub; | |||||
static faXing = faXing; | |||||
constructor() { } | |||||
} |
</nav> | </nav> | ||||
<div class="credits ml-auto"> | <div class="credits ml-auto"> | ||||
<span class="copyright"> | <span class="copyright"> | ||||
made with <i class="fa fa-heart heart"></i> by cziermann with help of | |||||
made with <fa-icon [icon]="icons.faHeart"></fa-icon> by cziermann with help of | |||||
<a href="https://www.creative-tim.com/product/paper-kit-2-angular" | <a href="https://www.creative-tim.com/product/paper-kit-2-angular" | ||||
>paper-kit-2</a | >paper-kit-2</a | ||||
> | > |
import { Component, OnInit } from '@angular/core'; | import { Component, OnInit } from '@angular/core'; | ||||
import { IconServiceService } from 'app/service/icon-service.service'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-footer', | selector: 'app-footer', | ||||
styleUrls: ['./footer.component.scss'] | styleUrls: ['./footer.component.scss'] | ||||
}) | }) | ||||
export class FooterComponent implements OnInit { | export class FooterComponent implements OnInit { | ||||
test : Date = new Date(); | |||||
public icons = IconServiceService; | |||||
constructor() { } | constructor() { } | ||||
ngOnInit() {} | ngOnInit() {} |
href="https://github.com/JackWolfskind" | href="https://github.com/JackWolfskind" | ||||
target="_blank" | target="_blank" | ||||
> | > | ||||
<i class="fab fa-github"></i> | |||||
<fa-icon [icon]="icons.faGithub" ></fa-icon> | |||||
<p class="d-lg-none">GitHub</p> | <p class="d-lg-none">GitHub</p> | ||||
</a> | </a> | ||||
</li> | </li> | ||||
href="https://www.npmjs.com/~cziermann" | href="https://www.npmjs.com/~cziermann" | ||||
target="_blank" | target="_blank" | ||||
> | > | ||||
<i class="fab fa-npm"></i> | |||||
<fa-icon [icon]="icons.faNpm" ></fa-icon> | |||||
<p class="d-lg-none">NPM</p> | <p class="d-lg-none">NPM</p> | ||||
</a> | </a> | ||||
</li> | </li> | ||||
href="https://www.xing.com/profile/Christian_Ziermann3" | href="https://www.xing.com/profile/Christian_Ziermann3" | ||||
target="_blank" | target="_blank" | ||||
> | > | ||||
<i class="fab fa-xing"></i> | |||||
<fa-icon [icon]="icons.faXing" ></fa-icon> | |||||
<p class="d-lg-none">Xing</p> | <p class="d-lg-none">Xing</p> | ||||
</a> | </a> | ||||
</li> | </li> | ||||
data-placement="bottom" | data-placement="bottom" | ||||
[routerLink]="['/resume']" | [routerLink]="['/resume']" | ||||
> | > | ||||
<i class="fas fa-address-card"></i> | |||||
<fa-icon [icon]="icons.faAddressCard"></fa-icon> | |||||
<p class="d-lg-none">About Me</p> | <p class="d-lg-none">About Me</p> | ||||
</a> | </a> | ||||
</li> | </li> | ||||
data-placement="bottom" | data-placement="bottom" | ||||
[routerLink]="['/games']" | [routerLink]="['/games']" | ||||
> | > | ||||
<i class="fas fa-gamepad"></i> | |||||
<fa-icon [icon]="icons.faGamepad"></fa-icon> | |||||
<p class="d-lg-none">Games</p> | <p class="d-lg-none">Games</p> | ||||
</a> | </a> | ||||
</li> | </li> | ||||
data-placement="bottom" | data-placement="bottom" | ||||
[routerLink]="['/projects']" | [routerLink]="['/projects']" | ||||
> | > | ||||
<i class="fas fa-code"></i> | |||||
<fa-icon [icon]="icons.faCode"></fa-icon> | |||||
<p class="d-lg-none">Projects</p> | <p class="d-lg-none">Projects</p> | ||||
</a> | </a> | ||||
</li> | </li> |
import { Component, OnInit, ElementRef } from '@angular/core'; | import { Component, OnInit, ElementRef } from '@angular/core'; | ||||
import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common'; | import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common'; | ||||
import { IconServiceService } from 'app/service/icon-service.service'; | |||||
@Component({ | @Component({ | ||||
selector: 'app-navbar', | selector: 'app-navbar', | ||||
export class NavbarComponent implements OnInit { | export class NavbarComponent implements OnInit { | ||||
private toggleButton: any; | private toggleButton: any; | ||||
private sidebarVisible: boolean; | private sidebarVisible: boolean; | ||||
constructor(public location: Location, private element : ElementRef) { | |||||
public icons = IconServiceService; | |||||
constructor(public location: Location, private element: ElementRef, ) { | |||||
this.sidebarVisible = false; | this.sidebarVisible = false; | ||||
} | } | ||||
// console.log(html); | // console.log(html); | ||||
// console.log(toggleButton, 'toggle'); | // console.log(toggleButton, 'toggle'); | ||||
setTimeout(function(){ | |||||
setTimeout(function () { | |||||
toggleButton.classList.add('toggled'); | toggleButton.classList.add('toggled'); | ||||
}, 500); | }, 500); | ||||
html.classList.add('nav-open'); | html.classList.add('nav-open'); | ||||
} | } | ||||
}; | }; | ||||
isHome() { | isHome() { | ||||
var titlee = this.location.prepareExternalUrl(this.location.path()); | |||||
if(titlee.charAt(0) === '#'){ | |||||
titlee = titlee.slice( 1 ); | |||||
} | |||||
if( titlee === '/home' ) { | |||||
let titlee = this.location.prepareExternalUrl(this.location.path()); | |||||
if (titlee.charAt(0) === '#') { | |||||
titlee = titlee.slice(1); | |||||
} | |||||
if (titlee === '/home') { | |||||
return true; | return true; | ||||
} | } | ||||
else { | else { | ||||
} | } | ||||
} | } | ||||
isDocumentation() { | isDocumentation() { | ||||
var titlee = this.location.prepareExternalUrl(this.location.path()); | |||||
if(titlee.charAt(0) === '#'){ | |||||
titlee = titlee.slice( 1 ); | |||||
} | |||||
if( titlee === '/documentation' ) { | |||||
let titlee = this.location.prepareExternalUrl(this.location.path()); | |||||
if (titlee.charAt(0) === '#') { | |||||
titlee = titlee.slice(1); | |||||
} | |||||
if (titlee === '/documentation') { | |||||
return true; | return true; | ||||
} | } | ||||
else { | else { |