"polyfills": "src/polyfills.ts", | "polyfills": "src/polyfills.ts", | ||||
"assets": [ | "assets": [ | ||||
"src/assets", | "src/assets", | ||||
"src/favicon.ico" | |||||
"src/favicon.ico", | |||||
"src/manifest.webmanifest" | |||||
], | ], | ||||
"styles": [ | "styles": [ | ||||
"node_modules/bootstrap/dist/css/bootstrap.min.css", | "node_modules/bootstrap/dist/css/bootstrap.min.css", | ||||
"fileReplacements": [{ | "fileReplacements": [{ | ||||
"replace": "src/environments/environment.ts", | "replace": "src/environments/environment.ts", | ||||
"with": "src/environments/environment.prod.ts" | "with": "src/environments/environment.prod.ts" | ||||
}] | |||||
}], | |||||
"serviceWorker": true, | |||||
"ngswConfigPath": "ngsw-config.json" | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
], | ], | ||||
"assets": [ | "assets": [ | ||||
"src/assets", | "src/assets", | ||||
"src/favicon.ico" | |||||
"src/favicon.ico", | |||||
"src/manifest.webmanifest" | |||||
] | ] | ||||
} | } | ||||
}, | }, |
{ | |||||
"$schema": "./node_modules/@angular/service-worker/config/schema.json", | |||||
"index": "/index.html", | |||||
"assetGroups": [ | |||||
{ | |||||
"name": "app", | |||||
"installMode": "prefetch", | |||||
"resources": { | |||||
"files": [ | |||||
"/favicon.ico", | |||||
"/index.html", | |||||
"/manifest.webmanifest", | |||||
"/*.css", | |||||
"/*.js" | |||||
] | |||||
} | |||||
}, { | |||||
"name": "assets", | |||||
"installMode": "lazy", | |||||
"updateMode": "prefetch", | |||||
"resources": { | |||||
"files": [ | |||||
"/assets/**", | |||||
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)" | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} |
"@angular/platform-browser": "9.0.6", | "@angular/platform-browser": "9.0.6", | ||||
"@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", | |||||
"@fortawesome/fontawesome-free": "^5.13.0", | "@fortawesome/fontawesome-free": "^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", |
import { ResumePdfComponent } from './pages/resume-pdf/resume-pdf.component'; | import { ResumePdfComponent } from './pages/resume-pdf/resume-pdf.component'; | ||||
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 { environment } from '../environments/environment'; | |||||
@NgModule({ | @NgModule({ | ||||
AppRoutingModule, | AppRoutingModule, | ||||
ComponentsModule, | ComponentsModule, | ||||
PageHeaderModule, | PageHeaderModule, | ||||
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }), | |||||
], | ], | ||||
providers: [], | providers: [], | ||||
bootstrap: [AppComponent] | bootstrap: [AppComponent] |
<div class="row"> | <div class="row"> | ||||
<div class="col-md-8 mr-auto ml-auto"> | <div class="col-md-8 mr-auto ml-auto"> | ||||
<h2 class="text-center">Keep in touch?</h2> | <h2 class="text-center">Keep in touch?</h2> | ||||
<form class="contact-form"> | |||||
<div class="row"> | |||||
<div class="col-md-6"> | |||||
<label>Name</label> | |||||
<div | |||||
class="input-group" | |||||
[ngClass]="{ 'input-group-focus': focus === true }" | |||||
> | |||||
<div class="input-group-prepend"> | |||||
<span class="input-group-text" | |||||
><i class="nc-icon nc-single-02"></i | |||||
></span> | |||||
</div> | |||||
<input | |||||
type="text" | |||||
class="form-control" | |||||
placeholder="Name" | |||||
(focus)="focus = true" | |||||
(blur)="focus = false" | |||||
/> | |||||
</div> | |||||
</div> | |||||
<div class="col-md-6"> | |||||
<label>Email</label> | |||||
<div | |||||
class="input-group" | |||||
[ngClass]="{ 'input-group-focus': focus1 === true }" | |||||
> | |||||
<div class="input-group-prepend"> | |||||
<span class="input-group-text"> | |||||
<i class="nc-icon nc-email-85"></i | |||||
></span> | |||||
</div> | |||||
<input | |||||
type="text" | |||||
class="form-control" | |||||
placeholder="Email" | |||||
(focus)="focus1 = true" | |||||
(blur)="focus1 = false" | |||||
/> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<label>Message</label> | |||||
<textarea | |||||
class="form-control" | |||||
rows="6" | |||||
placeholder="Tell us your thoughts and feelings..." | |||||
></textarea> | |||||
<div class="row"> | |||||
<div class="col-md-4 mr-auto ml-auto"> | |||||
<button class="btn btn-danger btn-lg btn-fill" disabled> | |||||
Send Message | |||||
</button> | |||||
</div> | |||||
</div> | |||||
<div class="row text-center"> | |||||
<div class="col-md-5 mr-auto ml-auto"> | |||||
<a | |||||
class="btn btn-warning btn-lg btn-fill" | |||||
href="mailto:cziermann@mailbox.org" | |||||
>cziermann@mailbox.org</a | |||||
> | |||||
</div> | |||||
<div class="row text-center"> | |||||
<div class="col-md-5 mr-auto ml-auto"> | |||||
<a | |||||
class="btn btn-warning btn-lg btn-fill" | |||||
href="mailto:cziermann@mailbox.org" | |||||
>cziermann@mailbox.org</a | |||||
> | |||||
</div> | </div> | ||||
</form> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> |
<link rel="icon" type="image/png" href="assets/img/favicon.ico"> | <link rel="icon" type="image/png" href="assets/img/favicon.ico"> | ||||
<link rel="apple-touch-icon" sizes="76x76" href="assets/img/apple-icon.png"> | <link rel="apple-touch-icon" sizes="76x76" href="assets/img/apple-icon.png"> | ||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> | |||||
<meta content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' name='viewport' /> | |||||
<meta name="viewport" content="width=device-width" /> | |||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> | |||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/> | |||||
<meta name="viewport" content="width=device-width"/> | |||||
<!-- Fonts and icons --> | <!-- Fonts and icons --> | ||||
<link href='https://fonts.googleapis.com/css?family=Montserrat:400,300,700' rel='stylesheet' type='text/css'> | |||||
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,300,700" rel="stylesheet" type="text/css"> | |||||
<link rel="manifest" href="manifest.webmanifest"> | |||||
<meta name="theme-color" content="#1976d2"> | |||||
</head> | </head> | ||||
<body> | <body> | ||||
<app-root></app-root> | <app-root></app-root> | ||||
<noscript>Please enable JavaScript to continue using this application.</noscript> | |||||
</body> | </body> | ||||
</html> | </html> |
{ | |||||
"name": "pk2-angular", | |||||
"short_name": "pk2-angular", | |||||
"theme_color": "#1976d2", | |||||
"background_color": "#fafafa", | |||||
"display": "standalone", | |||||
"scope": "./", | |||||
"start_url": "./", | |||||
"icons": [ | |||||
{ | |||||
"src": "assets/icons/icon-72x72.png", | |||||
"sizes": "72x72", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-96x96.png", | |||||
"sizes": "96x96", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-128x128.png", | |||||
"sizes": "128x128", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-144x144.png", | |||||
"sizes": "144x144", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-152x152.png", | |||||
"sizes": "152x152", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-192x192.png", | |||||
"sizes": "192x192", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-384x384.png", | |||||
"sizes": "384x384", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
}, | |||||
{ | |||||
"src": "assets/icons/icon-512x512.png", | |||||
"sizes": "512x512", | |||||
"type": "image/png", | |||||
"purpose": "maskable any" | |||||
} | |||||
] | |||||
} |