generated from nhcarrigan/template
feat: migrate from github
This commit is contained in:
commit
84061b75e7
16
.editorconfig
Normal file
16
.editorconfig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Editor configuration, see https://editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.ts]
|
||||||
|
quote_type = single
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
max_line_length = off
|
||||||
|
trim_trailing_whitespace = false
|
3
.eslintrc.json
Normal file
3
.eslintrc.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "@nhcarrigan/eslint-config-angular"
|
||||||
|
}
|
42
.gitignore
vendored
Normal file
42
.gitignore
vendored
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# Compiled output
|
||||||
|
/dist
|
||||||
|
/tmp
|
||||||
|
/out-tsc
|
||||||
|
/bazel-out
|
||||||
|
|
||||||
|
# Node
|
||||||
|
/node_modules
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
|
||||||
|
# IDEs and editors
|
||||||
|
.idea/
|
||||||
|
.project
|
||||||
|
.classpath
|
||||||
|
.c9/
|
||||||
|
*.launch
|
||||||
|
.settings/
|
||||||
|
*.sublime-workspace
|
||||||
|
|
||||||
|
# Visual Studio Code
|
||||||
|
.vscode/*
|
||||||
|
!.vscode/settings.json
|
||||||
|
!.vscode/tasks.json
|
||||||
|
!.vscode/launch.json
|
||||||
|
!.vscode/extensions.json
|
||||||
|
.history/*
|
||||||
|
|
||||||
|
# Miscellaneous
|
||||||
|
/.angular/cache
|
||||||
|
.sass-cache/
|
||||||
|
/connect.lock
|
||||||
|
/coverage
|
||||||
|
/libpeerconnection.log
|
||||||
|
testem.log
|
||||||
|
/typings
|
||||||
|
|
||||||
|
# System files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
1
.prettierrc.json
Normal file
1
.prettierrc.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
"@nhcarrigan/prettier-config"
|
3
CODE_OF_CONDUCT.md
Normal file
3
CODE_OF_CONDUCT.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Code of Conduct
|
||||||
|
|
||||||
|
Our Code of Conduct can be found here: https://docs.nhcarrigan.com/#/coc
|
3
CONTRIBUTING.md
Normal file
3
CONTRIBUTING.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Contributing
|
||||||
|
|
||||||
|
Our contributing guidelines can be found here: https://docs.nhcarrigan.com/#/contributing
|
5
LICENSE.md
Normal file
5
LICENSE.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# License
|
||||||
|
|
||||||
|
This software is licensed under our [global software license](https://docs.nhcarrigan.com/#/license).
|
||||||
|
|
||||||
|
Copyright held by Naomi Carrigan.
|
27
README.md
Normal file
27
README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Nhcarrigan
|
||||||
|
|
||||||
|
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.2.
|
||||||
|
|
||||||
|
## Development server
|
||||||
|
|
||||||
|
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
|
||||||
|
|
||||||
|
## Code scaffolding
|
||||||
|
|
||||||
|
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
|
||||||
|
|
||||||
|
## Running unit tests
|
||||||
|
|
||||||
|
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
||||||
|
|
||||||
|
## Running end-to-end tests
|
||||||
|
|
||||||
|
Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
|
||||||
|
|
||||||
|
## Further help
|
||||||
|
|
||||||
|
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
3
SECURITY.md
Normal file
3
SECURITY.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
Our security policy can be found here: https://docs.nhcarrigan.com/#/security
|
3
TERMS.md
Normal file
3
TERMS.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Terms of Service
|
||||||
|
|
||||||
|
Our Terms of Service can be found here: https://docs.nhcarrigan.com/#/terms
|
100
angular.json
Normal file
100
angular.json
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||||
|
"version": 1,
|
||||||
|
"newProjectRoot": "projects",
|
||||||
|
"projects": {
|
||||||
|
"nhcarrigan": {
|
||||||
|
"projectType": "application",
|
||||||
|
"schematics": {},
|
||||||
|
"root": "",
|
||||||
|
"sourceRoot": "src",
|
||||||
|
"prefix": "app",
|
||||||
|
"architect": {
|
||||||
|
"build": {
|
||||||
|
"builder": "@angular-devkit/build-angular:browser-esbuild",
|
||||||
|
"options": {
|
||||||
|
"outputPath": "dist/nhcarrigan",
|
||||||
|
"index": "src/index.html",
|
||||||
|
"main": "src/main.ts",
|
||||||
|
"polyfills": ["zone.js"],
|
||||||
|
"tsConfig": "tsconfig.app.json",
|
||||||
|
"assets": ["src/favicon.ico", "src/assets"],
|
||||||
|
"styles": ["src/styles.css"],
|
||||||
|
"scripts": []
|
||||||
|
},
|
||||||
|
"configurations": {
|
||||||
|
"production": {
|
||||||
|
"budgets": [
|
||||||
|
{
|
||||||
|
"type": "initial",
|
||||||
|
"maximumWarning": "500kb",
|
||||||
|
"maximumError": "1mb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "anyComponentStyle",
|
||||||
|
"maximumWarning": "2kb",
|
||||||
|
"maximumError": "4kb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"outputHashing": "all"
|
||||||
|
},
|
||||||
|
"development": {
|
||||||
|
"optimization": false,
|
||||||
|
"extractLicenses": false,
|
||||||
|
"sourceMap": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultConfiguration": "production"
|
||||||
|
},
|
||||||
|
"serve": {
|
||||||
|
"builder": "@angular-devkit/build-angular:dev-server",
|
||||||
|
"configurations": {
|
||||||
|
"production": {
|
||||||
|
"buildTarget": "nhcarrigan:build:production"
|
||||||
|
},
|
||||||
|
"development": {
|
||||||
|
"buildTarget": "nhcarrigan:build:development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultConfiguration": "development"
|
||||||
|
},
|
||||||
|
"extract-i18n": {
|
||||||
|
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||||
|
"options": {
|
||||||
|
"buildTarget": "nhcarrigan:build"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"test": {
|
||||||
|
"builder": "@angular-devkit/build-angular:karma",
|
||||||
|
"options": {
|
||||||
|
"main": "src/test.ts",
|
||||||
|
"polyfills": "src/polyfills.ts",
|
||||||
|
"tsConfig": "tsconfig.spec.json",
|
||||||
|
"karmaConfig": "karma.conf.js",
|
||||||
|
"assets": ["src/favicon.ico", "src/assets"],
|
||||||
|
"styles": ["src/styles.css"],
|
||||||
|
"scripts": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"deploy": {
|
||||||
|
"builder": "angular-cli-ghpages:deploy",
|
||||||
|
"options": {
|
||||||
|
"baseHref": "https://nhcarrigan.com",
|
||||||
|
"cname": "nhcarrigan.com",
|
||||||
|
"name": "Naomi Carrigan",
|
||||||
|
"email": "nhcarrigan@gmail.com"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lint": {
|
||||||
|
"builder": "@angular-eslint/builder:lint",
|
||||||
|
"options": {
|
||||||
|
"lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cli": {
|
||||||
|
"analytics": "7b13e4ca-046c-4eec-a791-b4c316f294e5"
|
||||||
|
}
|
||||||
|
}
|
47
karma.conf.js
Normal file
47
karma.conf.js
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// Karma configuration file, see link for more information
|
||||||
|
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
||||||
|
|
||||||
|
module.exports = function (config) {
|
||||||
|
config.set({
|
||||||
|
basePath: "",
|
||||||
|
frameworks: ["jasmine", "@angular-devkit/build-angular"],
|
||||||
|
plugins: [
|
||||||
|
require("karma-jasmine"),
|
||||||
|
require("karma-chrome-launcher"),
|
||||||
|
require("karma-jasmine-html-reporter"),
|
||||||
|
require("karma-coverage"),
|
||||||
|
require("@angular-devkit/build-angular/plugins/karma"),
|
||||||
|
],
|
||||||
|
client: {
|
||||||
|
jasmine: {
|
||||||
|
// you can add configuration options for Jasmine here
|
||||||
|
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
|
||||||
|
// for example, you can disable the random execution with `random: false`
|
||||||
|
// or set a specific seed with `seed: 4321`
|
||||||
|
},
|
||||||
|
clearContext: false, // leave Jasmine Spec Runner output visible in browser
|
||||||
|
},
|
||||||
|
jasmineHtmlReporter: {
|
||||||
|
suppressAll: true, // removes the duplicated traces
|
||||||
|
},
|
||||||
|
coverageReporter: {
|
||||||
|
dir: require("path").join(__dirname, "./coverage/profile"),
|
||||||
|
subdir: ".",
|
||||||
|
reporters: [{ type: "html" }, { type: "text-summary" }],
|
||||||
|
},
|
||||||
|
reporters: ["progress", "kjhtml"],
|
||||||
|
port: 9876,
|
||||||
|
colors: true,
|
||||||
|
logLevel: config.LOG_INFO,
|
||||||
|
autoWatch: true,
|
||||||
|
browsers: ["Chrome", "ChromeHeadless", "ChromeHeadlessCI"],
|
||||||
|
customLaunchers: {
|
||||||
|
ChromeHeadlessCI: {
|
||||||
|
base: "ChromeHeadless",
|
||||||
|
flags: ["--no-sandbox"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
singleRun: false,
|
||||||
|
restartOnFileChange: true,
|
||||||
|
});
|
||||||
|
};
|
50
package.json
Normal file
50
package.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"name": "nhcarrigan",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"ng": "ng",
|
||||||
|
"start": "ng serve",
|
||||||
|
"build": "ng build",
|
||||||
|
"watch": "ng build --watch --configuration development",
|
||||||
|
"lint": "ng lint && prettier src --check",
|
||||||
|
"test": "ng test --no-watch --no-progress --browsers=ChromeHeadlessCI",
|
||||||
|
"deploy": "ng deploy"
|
||||||
|
},
|
||||||
|
"private": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@angular/animations": "17.3.5",
|
||||||
|
"@angular/common": "17.3.5",
|
||||||
|
"@angular/compiler": "17.3.5",
|
||||||
|
"@angular/core": "17.3.5",
|
||||||
|
"@angular/forms": "17.3.5",
|
||||||
|
"@angular/platform-browser": "17.3.5",
|
||||||
|
"@angular/platform-browser-dynamic": "17.3.5",
|
||||||
|
"@angular/router": "17.3.5",
|
||||||
|
"@fortawesome/angular-fontawesome": "0.14.1",
|
||||||
|
"@fortawesome/fontawesome-svg-core": "6.5.2",
|
||||||
|
"@fortawesome/free-brands-svg-icons": "6.5.2",
|
||||||
|
"@fortawesome/free-regular-svg-icons": "6.5.2",
|
||||||
|
"@fortawesome/free-solid-svg-icons": "6.5.2",
|
||||||
|
"rxjs": "7.8.1",
|
||||||
|
"tslib": "2.6.2",
|
||||||
|
"zone.js": "0.14.4"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@angular-devkit/build-angular": "17.3.7",
|
||||||
|
"@angular/cli": "17.3.7",
|
||||||
|
"@angular/compiler-cli": "17.3.5",
|
||||||
|
"@nhcarrigan/eslint-config-angular": "1.0.1",
|
||||||
|
"@nhcarrigan/prettier-config": "3.2.0",
|
||||||
|
"@types/jasmine": "5.1.4",
|
||||||
|
"angular-cli-ghpages": "1.0.7",
|
||||||
|
"eslint": "8.57.0",
|
||||||
|
"jasmine-core": "5.1.2",
|
||||||
|
"karma": "6.4.3",
|
||||||
|
"karma-chrome-launcher": "3.2.0",
|
||||||
|
"karma-coverage": "2.2.1",
|
||||||
|
"karma-jasmine": "5.1.0",
|
||||||
|
"karma-jasmine-html-reporter": "2.1.0",
|
||||||
|
"prettier": "3.2.5",
|
||||||
|
"typescript": "5.4.5"
|
||||||
|
}
|
||||||
|
}
|
9609
pnpm-lock.yaml
generated
Normal file
9609
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
10
src/app/app.component.css
Normal file
10
src/app/app.component.css
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
.glow {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 1;
|
||||||
|
pointer-events: none;
|
||||||
|
height: 250px;
|
||||||
|
width: 250px;
|
||||||
|
background: radial-gradient(circle, #00eeffaa 0%, #00eeff00 50%);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
}
|
7
src/app/app.component.html
Normal file
7
src/app/app.component.html
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<div class="content"><router-outlet></router-outlet></div>
|
||||||
|
<div
|
||||||
|
class="glow"
|
||||||
|
[style.left.px]="glowX"
|
||||||
|
[style.top.px]="glowY"
|
||||||
|
[style.display]="display"
|
||||||
|
></div>
|
27
src/app/app.component.spec.ts
Normal file
27
src/app/app.component.spec.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
import { ComponentFixture, TestBed } from "@angular/core/testing";
|
||||||
|
|
||||||
|
import { AppComponent } from "./app.component";
|
||||||
|
|
||||||
|
describe("AppComponent", () => {
|
||||||
|
let component: AppComponent;
|
||||||
|
let fixture: ComponentFixture<AppComponent>;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [AppComponent]
|
||||||
|
}).compileComponents();
|
||||||
|
fixture = TestBed.createComponent(AppComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should create the app", () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it(`should have the 'nhcarrigan' title`, () => {
|
||||||
|
const fixture = TestBed.createComponent(AppComponent);
|
||||||
|
const app = fixture.componentInstance;
|
||||||
|
expect(app.title).toEqual("nhcarrigan");
|
||||||
|
});
|
||||||
|
});
|
40
src/app/app.component.ts
Normal file
40
src/app/app.component.ts
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import { CommonModule } from "@angular/common";
|
||||||
|
import { Component, HostListener } from "@angular/core";
|
||||||
|
import { RouterOutlet } from "@angular/router";
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: "app-root",
|
||||||
|
standalone: true,
|
||||||
|
imports: [CommonModule, RouterOutlet],
|
||||||
|
templateUrl: "./app.component.html",
|
||||||
|
styleUrl: "./app.component.css"
|
||||||
|
})
|
||||||
|
export class AppComponent {
|
||||||
|
title = "nhcarrigan";
|
||||||
|
glowX = 0;
|
||||||
|
glowY = 0;
|
||||||
|
display = "none";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Moves the sun when the mouse moves.
|
||||||
|
*
|
||||||
|
* @param {MouseEvent} e The mouse event.
|
||||||
|
*/
|
||||||
|
@HostListener("document:mousemove", ["$event"])
|
||||||
|
onMouseMove(e: MouseEvent) {
|
||||||
|
this.display = "block";
|
||||||
|
this.glowX = e.clientX - 125;
|
||||||
|
this.glowY = e.clientY - 125;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hides the sun when the mouse leaves.
|
||||||
|
*/
|
||||||
|
@HostListener("document:mouseout", ["$event"])
|
||||||
|
onMouseOut() {
|
||||||
|
this.display = "none";
|
||||||
|
}
|
||||||
|
}
|
8
src/app/app.config.ts
Normal file
8
src/app/app.config.ts
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import { ApplicationConfig } from "@angular/core";
|
||||||
|
import { provideRouter } from "@angular/router";
|
||||||
|
|
||||||
|
import { routes } from "./app.routes";
|
||||||
|
|
||||||
|
export const appConfig: ApplicationConfig = {
|
||||||
|
providers: [provideRouter(routes)]
|
||||||
|
};
|
5
src/app/app.routes.ts
Normal file
5
src/app/app.routes.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { Routes } from "@angular/router";
|
||||||
|
|
||||||
|
import { HomeComponent } from "./home/home.component";
|
||||||
|
|
||||||
|
export const routes: Routes = [{ path: "", component: HomeComponent }];
|
205
src/app/home/home.component.css
Normal file
205
src/app/home/home.component.css
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: "vt323";
|
||||||
|
src: url("../../assets/fonts/vt323.woff");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "odudo";
|
||||||
|
src: url("../../assets/fonts/odudo.otf");
|
||||||
|
font-display: swap;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: 2px solid var(--text);
|
||||||
|
margin: 1rem auto;
|
||||||
|
max-width: 1125px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.smaller {
|
||||||
|
font-size: 1rem;
|
||||||
|
max-width: 1125px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-container {
|
||||||
|
margin: auto;
|
||||||
|
max-width: 1125px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.socials {
|
||||||
|
font-size: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.socials a {
|
||||||
|
margin: auto 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend {
|
||||||
|
display: flex;
|
||||||
|
max-width: 1125px;
|
||||||
|
margin: auto;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend p {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend .current {
|
||||||
|
color: #8cff98;
|
||||||
|
font-family: "odudo";
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend .former {
|
||||||
|
color: #b48cff;
|
||||||
|
font-family: "vt323";
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend .volunteer {
|
||||||
|
padding: 2px;
|
||||||
|
border: 2px dashed var(--text);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline {
|
||||||
|
position: relative;
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
width: 6px;
|
||||||
|
background-color: var(--text);
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
padding: 10px 40px;
|
||||||
|
position: relative;
|
||||||
|
width: 50%;
|
||||||
|
background-color: transparent;
|
||||||
|
color: var(--bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
color: var(--text);
|
||||||
|
border-radius: 1rem;
|
||||||
|
border: 2px solid var(--text);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
width: 25px;
|
||||||
|
height: 25px;
|
||||||
|
right: -12.5px;
|
||||||
|
background-color: var(--text);
|
||||||
|
border-radius: 50%;
|
||||||
|
top: 30px;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hypothetical .info {
|
||||||
|
border-color: white;
|
||||||
|
border-style: dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hypothetical .info,
|
||||||
|
.hypothetical a,
|
||||||
|
.hypothetical a:visited {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hypothetical::after {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.current .info {
|
||||||
|
border-color: #8cff98;
|
||||||
|
font-family: "odudo";
|
||||||
|
}
|
||||||
|
|
||||||
|
.current .info,
|
||||||
|
.current a,
|
||||||
|
.current a:visited {
|
||||||
|
color: #8cff98;
|
||||||
|
}
|
||||||
|
|
||||||
|
.current::after {
|
||||||
|
background-color: #8cff98;
|
||||||
|
}
|
||||||
|
|
||||||
|
.former .info {
|
||||||
|
border-color: #b48cff;
|
||||||
|
font-family: "vt323";
|
||||||
|
}
|
||||||
|
.former .info,
|
||||||
|
.former a,
|
||||||
|
.former a:visited {
|
||||||
|
color: #b48cff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.former::after {
|
||||||
|
background-color: #b48cff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.volunteer .info {
|
||||||
|
border-style: dashed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.company {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
left: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right::after {
|
||||||
|
left: -12.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 600px) {
|
||||||
|
.container {
|
||||||
|
width: 100%;
|
||||||
|
padding-left: 70px;
|
||||||
|
padding-right: 25px;
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
.left::after,
|
||||||
|
.right::after {
|
||||||
|
left: 17.5px;
|
||||||
|
}
|
||||||
|
.timeline::after {
|
||||||
|
left: 31px;
|
||||||
|
}
|
||||||
|
}
|
335
src/app/home/home.component.html
Normal file
335
src/app/home/home.component.html
Normal file
@ -0,0 +1,335 @@
|
|||||||
|
<h1>Naomi Carrigan</h1>
|
||||||
|
<p>Software Engineer | Community Manager</p>
|
||||||
|
<p class="smaller">
|
||||||
|
Creative professional with a focus on developing unique Discord bots and
|
||||||
|
fostering engaged online communities. Eager to leverage technical and
|
||||||
|
interpersonal skills to drive impactful, user-centric projects. Seeking
|
||||||
|
clients where my expertise in designing user-centric solutions and managing
|
||||||
|
vibrant digital spaces can drive engagement and growth.
|
||||||
|
</p>
|
||||||
|
<hr />
|
||||||
|
<h2>Contact</h2>
|
||||||
|
<div class="socials">
|
||||||
|
<a
|
||||||
|
href="https://chat.naomi.lgbt"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="Discord"
|
||||||
|
><fa-icon alt="Discord Logo" [icon]="discord"></fa-icon
|
||||||
|
></a>
|
||||||
|
<a
|
||||||
|
href="https://linkedin.com/in/naomi-lgbt"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="LinkedIn"
|
||||||
|
><fa-icon alt="LinkedIn Logo" [icon]="linkedIn"></fa-icon
|
||||||
|
></a>
|
||||||
|
<a
|
||||||
|
href="https://reddit.com/r/nhcarrigan"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="Reddit"
|
||||||
|
><fa-icon alt="Reddit Logo" [icon]="reddit"></fa-icon
|
||||||
|
></a>
|
||||||
|
<a
|
||||||
|
href="https://blog.nhcarrigan.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="Hashnode Blog"
|
||||||
|
><fa-icon alt="Hashnode Logo" [icon]="blog"></fa-icon
|
||||||
|
></a>
|
||||||
|
<a
|
||||||
|
href="https://resume.nhcarrigan.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="Peerlist Resume"
|
||||||
|
><fa-icon alt="Peerlist Logo" [icon]="peerlist"></fa-icon
|
||||||
|
></a>
|
||||||
|
<a
|
||||||
|
href="https://www.polywork.com/nhcarrigan"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
aria-label="Polywork"
|
||||||
|
><fa-icon alt="Polywork Logo" [icon]="polywork"></fa-icon
|
||||||
|
></a>
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
<h2>Featured Clients</h2>
|
||||||
|
<div class="logo-container">
|
||||||
|
<a href="https://freecodecamp.org" target="_blank" rel="noopener noreferrer">
|
||||||
|
<img
|
||||||
|
class="logo"
|
||||||
|
src="../../assets/img/fcc_primary_large.svg"
|
||||||
|
alt="freeCodeCamp"
|
||||||
|
height="50px"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
<a href="https://rythm.fm" target="_blank" rel="noopener noreferrer">
|
||||||
|
<img
|
||||||
|
class="logo"
|
||||||
|
src="../../assets/img/rythm.svg"
|
||||||
|
alt="Rythm"
|
||||||
|
height="50px"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
<a href="https://deepgram.com" target="_blank" rel="noopener noreferrer">
|
||||||
|
<img
|
||||||
|
class="logo"
|
||||||
|
src="../../assets/img/deepgram.svg"
|
||||||
|
alt="Deepgram AI"
|
||||||
|
height="50px"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<hr />
|
||||||
|
<h2>All Work</h2>
|
||||||
|
<div class="legend">
|
||||||
|
<p class="current">Current</p>
|
||||||
|
<p class="former">Former</p>
|
||||||
|
<p class="volunteer">Volunteer</p>
|
||||||
|
</div>
|
||||||
|
<div class="timeline">
|
||||||
|
<div class="container left hypothetical">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://docs.nhcarrigan.com/#/hire"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Consultant</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">Today</p>
|
||||||
|
<p class="company">Your Company!</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right current volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://art4palestine.org/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Development Lead</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">November 2023</p>
|
||||||
|
<p class="company">Art 4 Palestine</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left current volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://discord.gg/kYpjgEB"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Community Moderator</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">September 2023</p>
|
||||||
|
<p class="company">AngelRose</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right current">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a href="https://deepgram.com" target="_blank" rel="noopener noreferrer"
|
||||||
|
>Community Bot Engineer</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">July 2023</p>
|
||||||
|
<p class="company">Deepgram</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left former">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://linktr.ee/bigbadbeaver"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Twitch Integration Engineer</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">October 2022</p>
|
||||||
|
<p class="company">BigBadBeaver Productions</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right former">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://www.semasoftware.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Community Manager and Open-Source Engineer</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">May 2023</p>
|
||||||
|
<p class="company">Sema Software</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left former">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://discord.gg/kYpjgEB"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Community Manager</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">May 2023</p>
|
||||||
|
<p class="company">4C</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right current">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a href="https://rythm.fm/" target="_blank" rel="noopener noreferrer"
|
||||||
|
>Senior Integrations Engineer</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">April 2022</p>
|
||||||
|
<p class="company">Rythm</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left former">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://tweetshift.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Community Manager</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">January 2022</p>
|
||||||
|
<p class="company">TweetShift</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right current">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://streamcord.io/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Community Manager and Infrastructure Engineer</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">August 2021</p>
|
||||||
|
<p class="company">Streamcord</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left former volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://play.battlesnake.com/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Community Moderator</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">June 2021</p>
|
||||||
|
<p class="company">Battlesnake</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right current volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://discord.gg/infinite"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Discord Administrator and Platform Engineering Manager</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">June 2021</p>
|
||||||
|
<p class="company">Caylus Crew</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left former volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="http://discord.gg/U3jQVYNbJt"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Integrations Engineer</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">April 2021</p>
|
||||||
|
<p class="company">Xcentric Collective</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right current volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://hacktoberfest.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Hacktoberfest Community Moderator</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">April 2021</p>
|
||||||
|
<p class="company">DigitalOcean</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left former volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://www.eddiehub.org/"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Discord Administrator</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">January 2021</p>
|
||||||
|
<p class="company">EddieHub</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right current volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://discord.gg/StwJYeq"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Discord Administrator and Lead Integrations Engineer</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">December 2020</p>
|
||||||
|
<p class="company">Commit Your Code</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container left current volunteer">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a
|
||||||
|
href="https://freecodecamp.org"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
>Educational Developer and Community Manager</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">December 2020</p>
|
||||||
|
<p class="company">freeCodeCamp</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="container right hypothetical">
|
||||||
|
<div class="info">
|
||||||
|
<h2>
|
||||||
|
<a href="https://naomi.lgbt" target="_blank" rel="noopener noreferrer"
|
||||||
|
>Began Development Journey</a
|
||||||
|
>
|
||||||
|
</h2>
|
||||||
|
<p class="date">April 2020</p>
|
||||||
|
<p class="company">nhcarrigan</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
29
src/app/home/home.component.spec.ts
Normal file
29
src/app/home/home.component.spec.ts
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import { ComponentFixture, TestBed } from "@angular/core/testing";
|
||||||
|
|
||||||
|
import { HomeComponent } from "./home.component";
|
||||||
|
|
||||||
|
describe("HomeComponent", () => {
|
||||||
|
let component: HomeComponent;
|
||||||
|
let fixture: ComponentFixture<HomeComponent>;
|
||||||
|
let compiled: HTMLElement;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
await TestBed.configureTestingModule({
|
||||||
|
imports: [HomeComponent]
|
||||||
|
}).compileComponents();
|
||||||
|
|
||||||
|
fixture = TestBed.createComponent(HomeComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
compiled = fixture.nativeElement;
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should create", () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should render correctly", () => {
|
||||||
|
const header = compiled.querySelector("h1");
|
||||||
|
expect(header?.innerText.trim()).toBe("Naomi Carrigan");
|
||||||
|
});
|
||||||
|
});
|
226
src/app/home/home.component.ts
Normal file
226
src/app/home/home.component.ts
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
import { CommonModule } from "@angular/common";
|
||||||
|
import { Component } from "@angular/core";
|
||||||
|
import { FontAwesomeModule } from "@fortawesome/angular-fontawesome";
|
||||||
|
import {
|
||||||
|
faDiscord,
|
||||||
|
faReddit,
|
||||||
|
faLinkedinIn,
|
||||||
|
faHashnode,
|
||||||
|
IconDefinition
|
||||||
|
} from "@fortawesome/free-brands-svg-icons";
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: "app-home",
|
||||||
|
standalone: true,
|
||||||
|
imports: [CommonModule, FontAwesomeModule],
|
||||||
|
templateUrl: "./home.component.html",
|
||||||
|
styleUrl: "./home.component.css"
|
||||||
|
})
|
||||||
|
export class HomeComponent {
|
||||||
|
discord = faDiscord;
|
||||||
|
reddit = faReddit;
|
||||||
|
linkedIn = faLinkedinIn;
|
||||||
|
blog = faHashnode;
|
||||||
|
peerlist: IconDefinition = {
|
||||||
|
prefix: "xxx",
|
||||||
|
iconName: "yyy",
|
||||||
|
icon: [
|
||||||
|
512,
|
||||||
|
512,
|
||||||
|
[],
|
||||||
|
"U+E002",
|
||||||
|
`M 214.00,0.14
|
||||||
|
C 214.00,0.14 243.00,0.14 243.00,0.14
|
||||||
|
243.00,0.14 291.00,0.14 291.00,0.14
|
||||||
|
291.00,0.14 301.00,1.00 301.00,1.00
|
||||||
|
301.00,1.00 311.00,1.00 311.00,1.00
|
||||||
|
311.00,1.00 328.00,2.83 328.00,2.83
|
||||||
|
375.51,7.58 421.85,17.89 457.91,51.42
|
||||||
|
483.50,75.23 497.13,112.43 503.80,146.00
|
||||||
|
507.93,166.77 510.12,187.89 511.04,209.00
|
||||||
|
511.04,209.00 512.00,220.00 512.00,220.00
|
||||||
|
512.59,270.71 513.41,322.24 502.42,372.00
|
||||||
|
495.29,404.31 483.17,434.75 459.72,458.83
|
||||||
|
437.47,481.67 407.37,493.82 377.00,501.37
|
||||||
|
326.73,513.88 274.38,512.08 223.00,512.00
|
||||||
|
223.00,512.00 208.00,511.00 208.00,511.00
|
||||||
|
208.00,511.00 204.00,511.00 204.00,511.00
|
||||||
|
204.00,511.00 166.00,507.13 166.00,507.13
|
||||||
|
125.75,501.54 81.42,488.74 52.28,458.83
|
||||||
|
18.32,423.96 7.84,375.75 2.84,329.00
|
||||||
|
2.84,329.00 0.91,302.00 0.91,302.00
|
||||||
|
0.91,302.00 0.00,290.00 0.00,290.00
|
||||||
|
0.00,290.00 0.00,253.00 0.00,253.00
|
||||||
|
0.00,253.00 0.00,223.00 0.00,223.00
|
||||||
|
0.00,223.00 1.00,205.00 1.00,205.00
|
||||||
|
1.00,205.00 6.59,155.00 6.59,155.00
|
||||||
|
11.95,123.04 22.32,89.63 42.81,64.00
|
||||||
|
74.31,24.60 121.91,10.61 170.00,4.28
|
||||||
|
170.00,4.28 201.00,1.09 201.00,1.09
|
||||||
|
201.00,1.09 214.00,0.14 214.00,0.14 Z
|
||||||
|
M 234.00,18.14
|
||||||
|
C 227.52,19.22 223.42,18.99 217.00,19.00
|
||||||
|
217.00,19.00 205.00,20.04 205.00,20.04
|
||||||
|
205.00,20.04 197.00,20.04 197.00,20.04
|
||||||
|
149.57,24.69 92.98,33.42 60.44,72.00
|
||||||
|
34.70,102.51 25.98,143.28 21.84,182.00
|
||||||
|
21.84,182.00 19.00,224.00 19.00,224.00
|
||||||
|
19.00,224.00 18.00,241.00 18.00,241.00
|
||||||
|
18.00,241.00 18.00,273.00 18.00,273.00
|
||||||
|
18.00,273.00 18.96,283.00 18.96,283.00
|
||||||
|
18.96,283.00 18.96,297.00 18.96,297.00
|
||||||
|
18.96,297.00 19.91,307.00 19.91,307.00
|
||||||
|
19.91,307.00 24.92,353.00 24.92,353.00
|
||||||
|
30.18,384.75 40.74,418.98 63.09,443.00
|
||||||
|
93.04,475.19 139.93,485.66 182.00,490.16
|
||||||
|
182.00,490.16 205.00,492.09 205.00,492.09
|
||||||
|
205.00,492.09 215.00,493.04 215.00,493.04
|
||||||
|
215.00,493.04 229.00,493.04 229.00,493.04
|
||||||
|
229.00,493.04 241.00,494.00 241.00,494.00
|
||||||
|
241.00,494.00 271.00,494.00 271.00,494.00
|
||||||
|
271.00,494.00 283.00,493.04 283.00,493.04
|
||||||
|
283.00,493.04 295.00,493.04 295.00,493.04
|
||||||
|
295.00,493.04 307.00,492.09 307.00,492.09
|
||||||
|
327.86,490.66 348.55,488.59 369.00,483.88
|
||||||
|
398.65,477.06 426.42,466.49 447.96,444.00
|
||||||
|
469.93,421.06 480.00,389.49 486.00,359.00
|
||||||
|
490.02,338.59 492.97,308.77 493.00,288.00
|
||||||
|
493.00,288.00 494.00,271.00 494.00,271.00
|
||||||
|
494.00,271.00 494.00,241.00 494.00,241.00
|
||||||
|
494.00,241.00 493.04,229.00 493.04,229.00
|
||||||
|
493.04,229.00 493.04,217.00 493.04,217.00
|
||||||
|
493.04,217.00 492.09,205.00 492.09,205.00
|
||||||
|
490.82,186.52 489.06,168.22 485.40,150.00
|
||||||
|
478.89,117.63 467.20,84.85 442.00,62.17
|
||||||
|
412.18,35.33 368.80,25.99 330.00,21.84
|
||||||
|
330.00,21.84 307.00,19.91 307.00,19.91
|
||||||
|
307.00,19.91 295.00,18.96 295.00,18.96
|
||||||
|
295.00,18.96 283.00,18.96 283.00,18.96
|
||||||
|
283.00,18.96 271.00,18.14 271.00,18.14
|
||||||
|
271.00,18.14 234.00,18.14 234.00,18.14 Z
|
||||||
|
M 156.00,101.00
|
||||||
|
C 156.00,101.00 231.00,101.00 231.00,101.00
|
||||||
|
231.00,101.00 270.00,101.00 270.00,101.00
|
||||||
|
304.65,101.05 338.60,117.93 361.91,143.00
|
||||||
|
370.38,152.10 378.11,164.62 383.14,176.00
|
||||||
|
398.86,211.57 395.05,254.17 374.58,287.00
|
||||||
|
365.39,301.73 358.75,306.40 347.28,318.17
|
||||||
|
331.52,334.35 322.21,343.76 301.00,353.14
|
||||||
|
279.20,362.77 264.27,364.00 241.00,364.00
|
||||||
|
241.00,364.00 241.00,411.00 241.00,411.00
|
||||||
|
241.00,411.00 223.00,411.00 223.00,411.00
|
||||||
|
223.00,411.00 223.00,429.00 223.00,429.00
|
||||||
|
223.00,429.00 138.00,429.00 138.00,429.00
|
||||||
|
138.00,429.00 138.00,119.00 138.00,119.00
|
||||||
|
138.00,119.00 156.00,119.00 156.00,119.00
|
||||||
|
156.00,119.00 156.00,101.00 156.00,101.00 Z
|
||||||
|
M 223.00,329.00
|
||||||
|
C 263.91,329.00 301.86,332.36 336.00,304.54
|
||||||
|
349.16,293.81 359.70,280.51 366.69,265.00
|
||||||
|
374.05,248.67 375.20,234.53 375.00,217.00
|
||||||
|
374.56,179.46 346.33,143.35 313.00,128.31
|
||||||
|
291.09,118.42 270.44,118.00 247.00,118.00
|
||||||
|
247.00,118.00 207.00,118.00 207.00,118.00
|
||||||
|
207.00,118.00 182.00,118.00 182.00,118.00
|
||||||
|
180.01,118.00 176.19,117.77 174.60,119.02
|
||||||
|
172.62,120.59 173.00,124.70 173.00,127.00
|
||||||
|
173.00,127.00 173.00,332.00 173.00,332.00
|
||||||
|
173.00,332.00 173.00,385.00 173.00,385.00
|
||||||
|
173.02,393.64 173.36,393.98 182.00,394.00
|
||||||
|
182.00,394.00 223.00,394.00 223.00,394.00
|
||||||
|
223.00,394.00 223.00,329.00 223.00,329.00 Z
|
||||||
|
M 223.00,166.00
|
||||||
|
C 223.00,166.00 266.00,166.00 266.00,166.00
|
||||||
|
306.49,166.06 336.49,205.40 321.39,244.00
|
||||||
|
319.11,249.82 315.95,255.30 311.82,260.00
|
||||||
|
300.28,273.13 284.59,280.92 267.00,281.00
|
||||||
|
267.00,281.00 253.00,281.00 253.00,281.00
|
||||||
|
253.00,281.00 223.00,281.00 223.00,281.00
|
||||||
|
223.00,281.00 223.00,166.00 223.00,166.00 Z
|
||||||
|
M 241.00,202.00
|
||||||
|
C 241.00,202.00 241.00,255.00 241.00,255.00
|
||||||
|
241.02,263.64 241.36,263.98 250.00,264.00
|
||||||
|
258.53,264.02 277.96,264.47 284.58,259.01
|
||||||
|
289.25,255.16 289.06,244.57 289.00,239.00
|
||||||
|
288.79,221.67 275.23,207.53 259.00,203.16
|
||||||
|
253.08,201.56 247.07,202.00 241.00,202.00 Z`
|
||||||
|
]
|
||||||
|
} as never;
|
||||||
|
polywork: IconDefinition = {
|
||||||
|
prefix: "xxx",
|
||||||
|
iconName: "yyy",
|
||||||
|
icon: [
|
||||||
|
225, // SVG view box width
|
||||||
|
225, // SVG view box height
|
||||||
|
[],
|
||||||
|
"U+E002", // probably not important for SVG and JS approach
|
||||||
|
`M 153.00,155.00
|
||||||
|
C 153.00,177.49 155.16,201.18 134.00,215.78
|
||||||
|
117.90,226.88 101.50,224.00 83.00,224.00
|
||||||
|
83.00,224.00 57.00,224.00 57.00,224.00
|
||||||
|
36.75,224.00 21.13,223.75 8.22,205.00
|
||||||
|
5.78,201.46 3.67,197.12 2.44,193.00
|
||||||
|
0.64,186.98 0.01,182.25 0.00,176.00
|
||||||
|
0.00,176.00 0.00,49.00 0.00,49.00
|
||||||
|
0.05,19.44 19.43,0.05 49.00,0.00
|
||||||
|
49.00,0.00 176.00,0.00 176.00,0.00
|
||||||
|
203.99,0.04 223.96,18.67 224.00,47.00
|
||||||
|
224.00,47.00 224.00,89.00 224.00,89.00
|
||||||
|
224.00,112.86 226.74,132.44 204.00,147.95
|
||||||
|
200.27,150.49 196.33,152.29 192.00,153.56
|
||||||
|
182.70,156.30 170.69,156.05 161.00,156.00
|
||||||
|
157.55,155.98 156.36,155.95 153.00,155.00 Z
|
||||||
|
M 70.00,11.00
|
||||||
|
C 52.54,11.00 34.21,8.10 21.09,22.01
|
||||||
|
17.77,25.54 15.22,29.35 13.77,34.00
|
||||||
|
11.01,42.87 12.00,61.03 12.00,71.00
|
||||||
|
12.00,71.00 70.00,71.00 70.00,71.00
|
||||||
|
70.00,71.00 70.00,11.00 70.00,11.00 Z
|
||||||
|
M 141.00,71.00
|
||||||
|
C 141.00,71.00 141.00,19.00 141.00,19.00
|
||||||
|
140.94,10.87 139.73,11.02 132.00,11.00
|
||||||
|
132.00,11.00 82.94,11.00 82.94,11.00
|
||||||
|
82.94,11.00 82.94,65.00 82.94,65.00
|
||||||
|
82.65,71.56 84.51,70.99 91.00,71.00
|
||||||
|
91.00,71.00 141.00,71.00 141.00,71.00 Z
|
||||||
|
M 212.00,71.00
|
||||||
|
C 212.00,71.00 212.00,46.00 212.00,46.00
|
||||||
|
211.99,40.91 212.06,38.94 210.30,34.00
|
||||||
|
200.99,7.84 175.95,12.00 154.00,12.00
|
||||||
|
154.00,12.00 154.00,71.00 154.00,71.00
|
||||||
|
154.00,71.00 212.00,71.00 212.00,71.00 Z
|
||||||
|
M 70.00,84.00
|
||||||
|
C 70.00,84.00 11.00,84.00 11.00,84.00
|
||||||
|
11.00,84.00 11.00,136.00 11.00,136.00
|
||||||
|
11.02,144.64 11.36,144.98 20.00,145.00
|
||||||
|
20.00,145.00 70.00,145.00 70.00,145.00
|
||||||
|
70.00,145.00 70.00,84.00 70.00,84.00 Z
|
||||||
|
M 141.00,84.00
|
||||||
|
C 141.00,84.00 83.00,84.00 83.00,84.00
|
||||||
|
83.00,84.00 83.00,144.00 83.00,144.00
|
||||||
|
83.00,144.00 141.00,144.00 141.00,144.00
|
||||||
|
141.00,144.00 141.00,84.00 141.00,84.00 Z
|
||||||
|
M 212.00,84.00
|
||||||
|
C 212.00,84.00 154.00,84.00 154.00,84.00
|
||||||
|
154.00,84.00 154.00,145.00 154.00,145.00
|
||||||
|
176.30,145.00 201.22,148.17 210.45,122.00
|
||||||
|
212.02,117.55 211.99,114.59 212.00,110.00
|
||||||
|
212.00,110.00 212.00,84.00 212.00,84.00 Z
|
||||||
|
M 70.00,157.00
|
||||||
|
C 70.00,157.00 11.00,157.00 11.00,157.00
|
||||||
|
11.00,177.94 8.44,201.56 33.00,210.30
|
||||||
|
37.94,212.06 39.91,211.99 45.00,212.00
|
||||||
|
45.00,212.00 70.00,212.00 70.00,212.00
|
||||||
|
70.00,212.00 70.00,157.00 70.00,157.00 Z
|
||||||
|
M 141.00,158.00
|
||||||
|
C 141.00,158.00 83.00,158.00 83.00,158.00
|
||||||
|
83.00,158.00 83.00,213.00 83.00,213.00
|
||||||
|
83.00,213.00 106.00,213.00 106.00,213.00
|
||||||
|
110.59,212.99 113.55,213.02 118.00,211.45
|
||||||
|
143.85,202.34 141.00,180.01 141.00,158.00 Z`
|
||||||
|
]
|
||||||
|
} as never;
|
||||||
|
}
|
0
src/assets/.gitkeep
Normal file
0
src/assets/.gitkeep
Normal file
BIN
src/assets/fonts/odudo.otf
Normal file
BIN
src/assets/fonts/odudo.otf
Normal file
Binary file not shown.
BIN
src/assets/fonts/vt323.woff
Normal file
BIN
src/assets/fonts/vt323.woff
Normal file
Binary file not shown.
94
src/assets/img/deepgram.svg
Normal file
94
src/assets/img/deepgram.svg
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="45.6871mm" height="8.8199mm" viewBox="0 0 259 50">
|
||||||
|
<path id="Selection" fill="#ff94fd" stroke="black" stroke-width="1" stroke-opacity="0" d="M 0.00,0.00
|
||||||
|
C 6.77,0.00 19.27,-1.03 24.99,2.05
|
||||||
|
36.43,8.22 39.43,26.63 26.99,35.15
|
||||||
|
19.43,40.32 8.80,39.00 0.00,39.00
|
||||||
|
2.13,36.04 4.45,32.92 8.00,31.60
|
||||||
|
11.21,30.40 17.85,31.66 22.78,26.78
|
||||||
|
28.64,20.96 26.82,14.03 20.00,10.09
|
||||||
|
16.14,7.86 12.27,8.01 8.00,8.00
|
||||||
|
8.00,8.00 8.00,21.00 8.00,21.00
|
||||||
|
8.00,21.00 0.00,21.00 0.00,21.00
|
||||||
|
0.00,21.00 0.00,0.00 0.00,0.00 Z
|
||||||
|
M 65.00,29.00
|
||||||
|
C 62.63,40.09 49.59,41.43 43.19,36.35
|
||||||
|
38.88,32.94 37.57,27.25 38.11,22.00
|
||||||
|
39.26,10.60 52.90,7.73 59.90,12.72
|
||||||
|
65.00,16.37 64.98,21.39 65.00,27.00
|
||||||
|
65.00,27.00 46.00,27.00 46.00,27.00
|
||||||
|
50.50,35.50 54.58,30.75 58.28,29.51
|
||||||
|
60.20,28.88 62.96,29.01 65.00,29.00 Z
|
||||||
|
M 96.00,29.00
|
||||||
|
C 92.82,43.92 69.87,41.91 69.04,26.00
|
||||||
|
68.13,8.49 85.75,8.02 91.66,13.43
|
||||||
|
95.74,17.16 95.95,21.90 96.00,27.00
|
||||||
|
96.00,27.00 76.00,27.00 76.00,27.00
|
||||||
|
82.93,35.49 84.45,31.13 89.28,29.51
|
||||||
|
91.20,28.88 93.96,29.01 96.00,29.00 Z
|
||||||
|
M 109.00,13.00
|
||||||
|
C 126.25,0.73 137.33,31.29 121.00,37.99
|
||||||
|
118.90,38.85 116.25,39.10 114.00,38.89
|
||||||
|
111.35,38.65 110.33,38.08 108.00,37.00
|
||||||
|
108.00,37.00 108.00,50.00 108.00,50.00
|
||||||
|
108.00,50.00 101.02,48.40 101.02,48.40
|
||||||
|
101.02,48.40 100.00,41.00 100.00,41.00
|
||||||
|
100.00,41.00 100.00,11.00 100.00,11.00
|
||||||
|
104.11,11.01 105.54,10.53 109.00,13.00 Z
|
||||||
|
M 152.00,37.00
|
||||||
|
C 148.66,38.55 146.77,39.22 143.00,38.89
|
||||||
|
129.80,37.76 131.09,21.05 133.17,17.02
|
||||||
|
136.52,10.52 145.36,8.21 151.00,13.00
|
||||||
|
154.46,10.53 155.89,11.01 160.00,11.00
|
||||||
|
160.00,11.00 160.00,38.00 160.00,38.00
|
||||||
|
159.94,41.76 159.91,44.72 156.77,47.35
|
||||||
|
152.24,51.15 140.90,50.00 135.00,50.00
|
||||||
|
140.86,38.04 149.88,49.96 152.00,37.00 Z
|
||||||
|
M 186.00,21.00
|
||||||
|
C 188.17,8.02 203.28,8.27 208.30,14.34
|
||||||
|
212.19,19.05 211.00,32.75 211.00,39.00
|
||||||
|
207.15,38.99 204.61,39.88 203.00,36.00
|
||||||
|
193.53,42.24 184.84,37.41 186.29,29.02
|
||||||
|
188.09,18.66 198.04,25.75 203.00,18.00
|
||||||
|
192.55,14.35 197.53,20.60 186.00,21.00 Z
|
||||||
|
M 223.00,14.00
|
||||||
|
C 230.14,8.80 233.45,9.36 240.00,15.00
|
||||||
|
245.00,9.48 253.73,8.31 257.35,16.02
|
||||||
|
259.69,21.01 259.00,33.09 259.00,39.00
|
||||||
|
259.00,39.00 251.00,39.00 251.00,39.00
|
||||||
|
251.00,34.48 252.85,18.20 246.00,18.20
|
||||||
|
239.15,18.20 241.00,34.48 241.00,39.00
|
||||||
|
241.00,39.00 233.00,39.00 233.00,39.00
|
||||||
|
233.00,34.50 234.84,18.20 228.02,18.20
|
||||||
|
225.53,18.20 224.01,20.92 223.21,23.00
|
||||||
|
222.76,25.42 223.00,35.81 223.21,39.00
|
||||||
|
223.21,39.00 215.00,39.00 215.00,39.00
|
||||||
|
215.00,39.00 215.00,11.00 215.00,11.00
|
||||||
|
218.85,11.01 221.39,10.12 223.00,14.00 Z
|
||||||
|
M 166.00,11.00
|
||||||
|
C 170.11,11.01 171.54,10.53 175.00,13.00
|
||||||
|
175.00,13.00 184.00,11.00 184.00,11.00
|
||||||
|
184.00,11.00 184.00,17.00 184.00,17.00
|
||||||
|
170.90,17.77 174.00,29.35 174.00,39.00
|
||||||
|
174.00,39.00 166.00,39.00 166.00,39.00
|
||||||
|
166.00,39.00 166.00,11.00 166.00,11.00 Z
|
||||||
|
M 57.00,21.00
|
||||||
|
C 53.77,14.97 49.18,14.83 46.00,21.00
|
||||||
|
46.00,21.00 57.00,21.00 57.00,21.00 Z
|
||||||
|
M 88.00,21.00
|
||||||
|
C 84.91,15.23 79.58,14.32 77.00,21.00
|
||||||
|
77.00,21.00 88.00,21.00 88.00,21.00 Z
|
||||||
|
M 113.04,17.70
|
||||||
|
C 105.69,21.66 107.40,30.41 113.04,31.67
|
||||||
|
122.24,33.71 124.93,17.02 113.04,17.70 Z
|
||||||
|
M 145.04,17.54
|
||||||
|
C 135.47,21.27 139.98,33.59 147.89,31.55
|
||||||
|
153.87,30.01 155.20,17.81 145.04,17.54 Z
|
||||||
|
M 203.00,27.03
|
||||||
|
C 203.00,27.03 199.02,27.03 199.02,27.03
|
||||||
|
190.18,27.85 196.44,36.30 201.28,30.69
|
||||||
|
202.34,29.46 202.50,28.42 203.00,27.03 Z" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.4 KiB |
1
src/assets/img/fcc_primary_large.svg
Normal file
1
src/assets/img/fcc_primary_large.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 38 KiB |
29
src/assets/img/rythm.svg
Normal file
29
src/assets/img/rythm.svg
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||||
|
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||||
|
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="0.326667in" height="0.333333in" viewBox="0 0 98 100">
|
||||||
|
<path id="Selection" fill="#ff94fd" stroke="black" stroke-width="1" stroke-opacity="0" d="M 43.00,72.00
|
||||||
|
C 43.00,78.52 44.63,91.02 39.77,95.72
|
||||||
|
36.51,98.89 22.15,101.16 18.99,97.26
|
||||||
|
17.75,95.72 18.00,91.94 18.00,90.00
|
||||||
|
18.00,90.00 18.00,53.00 18.00,53.00
|
||||||
|
18.01,49.59 17.74,46.03 19.74,43.06
|
||||||
|
24.77,35.57 40.02,37.47 47.00,41.00
|
||||||
|
52.45,43.75 54.79,47.76 59.00,48.67
|
||||||
|
64.19,49.80 69.33,45.62 71.14,41.00
|
||||||
|
73.68,34.54 68.03,28.14 62.00,26.56
|
||||||
|
58.95,25.75 51.50,26.00 48.00,26.00
|
||||||
|
48.00,26.00 22.00,26.00 22.00,26.00
|
||||||
|
14.11,25.90 8.90,23.58 4.22,16.96
|
||||||
|
2.05,13.89 -1.49,5.07 2.47,2.17
|
||||||
|
4.39,0.77 8.65,1.00 11.00,1.00
|
||||||
|
11.00,1.00 47.00,1.00 47.00,1.00
|
||||||
|
60.80,1.00 71.06,0.22 83.00,8.79
|
||||||
|
105.58,24.98 98.99,62.70 77.00,70.00
|
||||||
|
77.00,70.00 91.00,85.01 91.00,85.01
|
||||||
|
92.96,87.11 96.79,91.14 97.29,93.98
|
||||||
|
98.20,99.09 92.36,98.98 89.00,99.00
|
||||||
|
83.00,99.04 73.11,99.82 68.00,96.91
|
||||||
|
62.86,93.99 48.49,77.49 43.00,72.00 Z" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/favicon.ico
Normal file
BIN
src/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
51
src/index.html
Normal file
51
src/index.html
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>Naomi Carrigan | Software Engineer and Community Manager</title>
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="Creative professional with a focus on developing unique Discord bots and fostering engaged online communities. Eager to leverage technical and interpersonal skills to drive impactful, user-centric projects. Seeking clients where my expertise in designing user-centric solutions and managing vibrant digital spaces can drive engagement and growth."
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- Facebook Meta Tags -->
|
||||||
|
<meta property="og:url" content="https://nhcarrigan.com/" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta
|
||||||
|
property="og:title"
|
||||||
|
content="Naomi Carrigan | Software Engineer and Community Manager"
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
property="og:description"
|
||||||
|
content="Creative professional with a focus on developing unique Discord bots and fostering engaged online communities. Eager to leverage technical and interpersonal skills to drive impactful, user-centric projects. Seeking clients where my expertise in designing user-centric solutions and managing vibrant digital spaces can drive engagement and growth."
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
property="og:image"
|
||||||
|
content="https://cdn.nhcarrigan.com/banners/nhcarrigan.png"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- Twitter Meta Tags -->
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
<meta property="twitter:domain" content="nhcarrigan.com" />
|
||||||
|
<meta property="twitter:url" content="https://nhcarrigan.com/" />
|
||||||
|
<meta
|
||||||
|
name="twitter:title"
|
||||||
|
content="Naomi Carrigan | Software Engineer and Community Manager"
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
name="twitter:description"
|
||||||
|
content="Creative professional with a focus on developing unique Discord bots and fostering engaged online communities. Eager to leverage technical and interpersonal skills to drive impactful, user-centric projects. Seeking clients where my expertise in designing user-centric solutions and managing vibrant digital spaces can drive engagement and growth."
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
name="twitter:image"
|
||||||
|
content="https://cdn.nhcarrigan.com/banners/nhcarrigan.png"
|
||||||
|
/>
|
||||||
|
<meta name="twitter:creator" content="@nhcarrigan" />
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<app-root></app-root>
|
||||||
|
</body>
|
||||||
|
</html>
|
6
src/main.ts
Normal file
6
src/main.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { bootstrapApplication } from "@angular/platform-browser";
|
||||||
|
|
||||||
|
import { AppComponent } from "./app/app.component";
|
||||||
|
import { appConfig } from "./app/app.config";
|
||||||
|
|
||||||
|
bootstrapApplication(AppComponent, appConfig).catch((err) => alert(err));
|
52
src/polyfills.ts
Normal file
52
src/polyfills.ts
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/**
|
||||||
|
* This file includes polyfills needed by Angular and is loaded before the app.
|
||||||
|
* You can add your own extra polyfills to this file.
|
||||||
|
*
|
||||||
|
* This file is divided into 2 sections:
|
||||||
|
* 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
|
||||||
|
* 2. Application imports. Files imported after ZoneJS that should be loaded before your main
|
||||||
|
* file.
|
||||||
|
*
|
||||||
|
* The current setup is for so-called "evergreen" browsers; the last versions of browsers that
|
||||||
|
* automatically update themselves. This includes recent versions of Safari, Chrome (including
|
||||||
|
* Opera), Edge on the desktop, and iOS and Chrome on mobile.
|
||||||
|
*
|
||||||
|
* Learn more in https://angular.io/guide/browser-support.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************************************
|
||||||
|
* BROWSER POLYFILLS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* By default, zone.js will patch all possible macroTask and DomEvents
|
||||||
|
* user can disable parts of macroTask/DomEvents patch by setting following flags
|
||||||
|
* because those flags need to be set before `zone.js` being loaded, and webpack
|
||||||
|
* will put import in the top of bundle, so user need to create a separate file
|
||||||
|
* in this directory (for example: zone-flags.ts), and put the following flags
|
||||||
|
* into that file, and then add the following code before importing zone.js.
|
||||||
|
* Import './zone-flags';
|
||||||
|
*
|
||||||
|
* The flags allowed in zone-flags.ts are listed here.
|
||||||
|
*
|
||||||
|
* The following flags will work for all browsers.
|
||||||
|
*
|
||||||
|
* (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
|
||||||
|
* (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
|
||||||
|
* (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames.
|
||||||
|
*
|
||||||
|
* In IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
|
||||||
|
* with the following flag, it will bypass `zone.js` patch for IE/Edge.
|
||||||
|
*
|
||||||
|
* (window as any).__Zone_enable_cross_context_check = true;.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***************************************************************************************************
|
||||||
|
* Zone JS is required by default for Angular itself.
|
||||||
|
*/
|
||||||
|
import "zone.js"; // Included with Angular CLI.
|
||||||
|
|
||||||
|
/***************************************************************************************************
|
||||||
|
* APPLICATION IMPORTS
|
||||||
|
*/
|
33
src/styles.css
Normal file
33
src/styles.css
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
:root {
|
||||||
|
--bg: #000c0f;
|
||||||
|
--text: #ff94fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
a:visited {
|
||||||
|
color: var(--text);
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
background-color: var(--bg);
|
||||||
|
color: var(--text);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
14
src/test.ts
Normal file
14
src/test.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
||||||
|
|
||||||
|
import "zone.js/testing";
|
||||||
|
import { getTestBed } from "@angular/core/testing";
|
||||||
|
import {
|
||||||
|
BrowserDynamicTestingModule,
|
||||||
|
platformBrowserDynamicTesting
|
||||||
|
} from "@angular/platform-browser-dynamic/testing";
|
||||||
|
|
||||||
|
// First, initialize the Angular testing environment.
|
||||||
|
getTestBed().initTestEnvironment(
|
||||||
|
BrowserDynamicTestingModule,
|
||||||
|
platformBrowserDynamicTesting()
|
||||||
|
);
|
10
tsconfig.app.json
Normal file
10
tsconfig.app.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
||||||
|
{
|
||||||
|
"extends": "./tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "./out-tsc/app",
|
||||||
|
"types": []
|
||||||
|
},
|
||||||
|
"files": ["src/main.ts", "src/polyfills.ts"],
|
||||||
|
"include": ["src/**/*.d.ts"]
|
||||||
|
}
|
32
tsconfig.json
Normal file
32
tsconfig.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
||||||
|
{
|
||||||
|
"compileOnSave": false,
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "./dist/out-tsc",
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"strict": true,
|
||||||
|
"noImplicitOverride": true,
|
||||||
|
"noPropertyAccessFromIndexSignature": true,
|
||||||
|
"noImplicitReturns": true,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"declaration": false,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"importHelpers": true,
|
||||||
|
"target": "ES2022",
|
||||||
|
"module": "ES2022",
|
||||||
|
"useDefineForClassFields": false,
|
||||||
|
"lib": [
|
||||||
|
"ES2022",
|
||||||
|
"dom"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"angularCompilerOptions": {
|
||||||
|
"enableI18nLegacyMessageIdFormat": false,
|
||||||
|
"strictInjectionParameters": true,
|
||||||
|
"strictInputAccessModifiers": true,
|
||||||
|
"strictTemplates": true
|
||||||
|
}
|
||||||
|
}
|
10
tsconfig.spec.json
Normal file
10
tsconfig.spec.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
||||||
|
{
|
||||||
|
"extends": "./tsconfig.json",
|
||||||
|
"compilerOptions": {
|
||||||
|
"outDir": "./out-tsc/spec",
|
||||||
|
"types": ["jasmine"]
|
||||||
|
},
|
||||||
|
"files": ["src/test.ts", "src/polyfills.ts"],
|
||||||
|
"include": ["src/**/*.spec.ts", "src/**/*.d.ts"]
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user