39 changed files with 916 additions and 0 deletions
@ -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 |
@ -0,0 +1,4 @@ |
|||||
|
|
||||
|
node_modules/ |
||||
|
|
||||
|
package-lock\.json |
@ -0,0 +1,128 @@ |
|||||
|
{ |
||||
|
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", |
||||
|
"version": 1, |
||||
|
"newProjectRoot": "projects", |
||||
|
"projects": { |
||||
|
"dslak-website": { |
||||
|
"projectType": "application", |
||||
|
"schematics": { |
||||
|
"@schematics/angular:component": { |
||||
|
"style": "scss" |
||||
|
} |
||||
|
}, |
||||
|
"root": "", |
||||
|
"sourceRoot": "src", |
||||
|
"prefix": "app", |
||||
|
"architect": { |
||||
|
"build": { |
||||
|
"builder": "@angular-devkit/build-angular:browser", |
||||
|
"options": { |
||||
|
"outputPath": "dist/dslak-website", |
||||
|
"index": "src/index.html", |
||||
|
"main": "src/main.ts", |
||||
|
"polyfills": "src/polyfills.ts", |
||||
|
"tsConfig": "tsconfig.app.json", |
||||
|
"aot": true, |
||||
|
"assets": [ |
||||
|
"src/favicon.ico", |
||||
|
"src/assets" |
||||
|
], |
||||
|
"styles": [ |
||||
|
"src/assets/scss/main.scss" |
||||
|
], |
||||
|
"scripts": [] |
||||
|
}, |
||||
|
"configurations": { |
||||
|
"production": { |
||||
|
"fileReplacements": [ |
||||
|
{ |
||||
|
"replace": "src/environments/environment.ts", |
||||
|
"with": "src/environments/environment.prod.ts" |
||||
|
} |
||||
|
], |
||||
|
"optimization": true, |
||||
|
"outputHashing": "all", |
||||
|
"sourceMap": false, |
||||
|
"extractCss": true, |
||||
|
"namedChunks": false, |
||||
|
"extractLicenses": true, |
||||
|
"vendorChunk": false, |
||||
|
"buildOptimizer": true, |
||||
|
"budgets": [ |
||||
|
{ |
||||
|
"type": "initial", |
||||
|
"maximumWarning": "2mb", |
||||
|
"maximumError": "5mb" |
||||
|
}, |
||||
|
{ |
||||
|
"type": "anyComponentStyle", |
||||
|
"maximumWarning": "6kb", |
||||
|
"maximumError": "10kb" |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"serve": { |
||||
|
"builder": "@angular-devkit/build-angular:dev-server", |
||||
|
"options": { |
||||
|
"browserTarget": "dslak-website:build" |
||||
|
}, |
||||
|
"configurations": { |
||||
|
"production": { |
||||
|
"browserTarget": "dslak-website:build:production" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"extract-i18n": { |
||||
|
"builder": "@angular-devkit/build-angular:extract-i18n", |
||||
|
"options": { |
||||
|
"browserTarget": "dslak-website: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.scss" |
||||
|
], |
||||
|
"scripts": [] |
||||
|
} |
||||
|
}, |
||||
|
"lint": { |
||||
|
"builder": "@angular-devkit/build-angular:tslint", |
||||
|
"options": { |
||||
|
"tsConfig": [ |
||||
|
"tsconfig.app.json", |
||||
|
"tsconfig.spec.json", |
||||
|
"e2e/tsconfig.json" |
||||
|
], |
||||
|
"exclude": [ |
||||
|
"**/node_modules/**" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"e2e": { |
||||
|
"builder": "@angular-devkit/build-angular:protractor", |
||||
|
"options": { |
||||
|
"protractorConfig": "e2e/protractor.conf.js", |
||||
|
"devServerTarget": "dslak-website:serve" |
||||
|
}, |
||||
|
"configurations": { |
||||
|
"production": { |
||||
|
"devServerTarget": "dslak-website:serve:production" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}}, |
||||
|
"defaultProject": "dslak-website" |
||||
|
} |
@ -0,0 +1,12 @@ |
|||||
|
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. |
||||
|
# For additional information regarding the format and rule options, please see: |
||||
|
# https://github.com/browserslist/browserslist#queries |
||||
|
|
||||
|
# You can see what browsers were selected by your queries by running: |
||||
|
# npx browserslist |
||||
|
|
||||
|
> 0.5% |
||||
|
last 2 versions |
||||
|
Firefox ESR |
||||
|
not dead |
||||
|
not IE 9-11 # For IE 9-11 support, remove 'not'. |
@ -0,0 +1,32 @@ |
|||||
|
// @ts-check
|
||||
|
// Protractor configuration file, see link for more information
|
||||
|
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||
|
|
||||
|
const { SpecReporter } = require('jasmine-spec-reporter'); |
||||
|
|
||||
|
/** |
||||
|
* @type { import("protractor").Config } |
||||
|
*/ |
||||
|
exports.config = { |
||||
|
allScriptsTimeout: 11000, |
||||
|
specs: [ |
||||
|
'./src/**/*.e2e-spec.ts' |
||||
|
], |
||||
|
capabilities: { |
||||
|
browserName: 'chrome' |
||||
|
}, |
||||
|
directConnect: true, |
||||
|
baseUrl: 'http://localhost:4200/', |
||||
|
framework: 'jasmine', |
||||
|
jasmineNodeOpts: { |
||||
|
showColors: true, |
||||
|
defaultTimeoutInterval: 30000, |
||||
|
print: function() {} |
||||
|
}, |
||||
|
onPrepare() { |
||||
|
require('ts-node').register({ |
||||
|
project: require('path').join(__dirname, './tsconfig.json') |
||||
|
}); |
||||
|
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); |
||||
|
} |
||||
|
}; |
@ -0,0 +1,23 @@ |
|||||
|
import { AppPage } from './app.po'; |
||||
|
import { browser, logging } from 'protractor'; |
||||
|
|
||||
|
describe('workspace-project App', () => { |
||||
|
let page: AppPage; |
||||
|
|
||||
|
beforeEach(() => { |
||||
|
page = new AppPage(); |
||||
|
}); |
||||
|
|
||||
|
it('should display welcome message', () => { |
||||
|
page.navigateTo(); |
||||
|
expect(page.getTitleText()).toEqual('dslak-website app is running!'); |
||||
|
}); |
||||
|
|
||||
|
afterEach(async () => { |
||||
|
// Assert that there are no errors emitted from the browser
|
||||
|
const logs = await browser.manage().logs().get(logging.Type.BROWSER); |
||||
|
expect(logs).not.toContain(jasmine.objectContaining({ |
||||
|
level: logging.Level.SEVERE, |
||||
|
} as logging.Entry)); |
||||
|
}); |
||||
|
}); |
@ -0,0 +1,11 @@ |
|||||
|
import { browser, by, element } from 'protractor'; |
||||
|
|
||||
|
export class AppPage { |
||||
|
navigateTo(): Promise<unknown> { |
||||
|
return browser.get(browser.baseUrl) as Promise<unknown>; |
||||
|
} |
||||
|
|
||||
|
getTitleText(): Promise<string> { |
||||
|
return element(by.css('app-root .content span')).getText() as Promise<string>; |
||||
|
} |
||||
|
} |
@ -0,0 +1,13 @@ |
|||||
|
{ |
||||
|
"extends": "../tsconfig.json", |
||||
|
"compilerOptions": { |
||||
|
"outDir": "../out-tsc/e2e", |
||||
|
"module": "commonjs", |
||||
|
"target": "es5", |
||||
|
"types": [ |
||||
|
"jasmine", |
||||
|
"jasminewd2", |
||||
|
"node" |
||||
|
] |
||||
|
} |
||||
|
} |
@ -0,0 +1,32 @@ |
|||||
|
// 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-istanbul-reporter'), |
||||
|
require('@angular-devkit/build-angular/plugins/karma') |
||||
|
], |
||||
|
client: { |
||||
|
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
||||
|
}, |
||||
|
coverageIstanbulReporter: { |
||||
|
dir: require('path').join(__dirname, './coverage/dslak-website'), |
||||
|
reports: ['html', 'lcovonly', 'text-summary'], |
||||
|
fixWebpackSourcePaths: true |
||||
|
}, |
||||
|
reporters: ['progress', 'kjhtml'], |
||||
|
port: 9876, |
||||
|
colors: true, |
||||
|
logLevel: config.LOG_INFO, |
||||
|
autoWatch: true, |
||||
|
browsers: ['Chrome'], |
||||
|
singleRun: false, |
||||
|
restartOnFileChange: true |
||||
|
}); |
||||
|
}; |
@ -0,0 +1,47 @@ |
|||||
|
{ |
||||
|
"name": "dslak-website", |
||||
|
"version": "0.0.0", |
||||
|
"scripts": { |
||||
|
"ng": "ng", |
||||
|
"start": "ng serve", |
||||
|
"dev": "ng serve", |
||||
|
"build": "ng build", |
||||
|
"test": "ng test", |
||||
|
"lint": "ng lint", |
||||
|
"e2e": "ng e2e" |
||||
|
}, |
||||
|
"private": true, |
||||
|
"dependencies": { |
||||
|
"@angular/animations": "~9.1.7", |
||||
|
"@angular/common": "~9.1.7", |
||||
|
"@angular/compiler": "~9.1.7", |
||||
|
"@angular/core": "~9.1.7", |
||||
|
"@angular/forms": "~9.1.7", |
||||
|
"@angular/platform-browser": "~9.1.7", |
||||
|
"@angular/platform-browser-dynamic": "~9.1.7", |
||||
|
"@angular/router": "~9.1.7", |
||||
|
"rxjs": "~6.5.4", |
||||
|
"tslib": "^1.10.0", |
||||
|
"zone.js": "~0.10.2" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"@angular-devkit/build-angular": "~0.901.6", |
||||
|
"@angular/cli": "~9.1.6", |
||||
|
"@angular/compiler-cli": "~9.1.7", |
||||
|
"@types/jasmine": "~3.5.0", |
||||
|
"@types/jasminewd2": "~2.0.3", |
||||
|
"@types/node": "^12.11.1", |
||||
|
"codelyzer": "^5.1.2", |
||||
|
"jasmine-core": "~3.5.0", |
||||
|
"jasmine-spec-reporter": "~4.2.1", |
||||
|
"karma": "~5.0.0", |
||||
|
"karma-chrome-launcher": "~3.1.0", |
||||
|
"karma-coverage-istanbul-reporter": "~2.1.0", |
||||
|
"karma-jasmine": "~3.0.1", |
||||
|
"karma-jasmine-html-reporter": "^1.4.2", |
||||
|
"protractor": "~5.4.3", |
||||
|
"ts-node": "~8.3.0", |
||||
|
"tslint": "~6.1.0", |
||||
|
"typescript": "~3.8.3" |
||||
|
} |
||||
|
} |
@ -0,0 +1,2 @@ |
|||||
|
<app-header></app-header> |
||||
|
<p>app-layout works!</p> |
@ -0,0 +1,25 @@ |
|||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; |
||||
|
|
||||
|
import { AppLayoutComponent } from './app-layout.component'; |
||||
|
|
||||
|
describe('AppLayoutComponent', () => { |
||||
|
let component: AppLayoutComponent; |
||||
|
let fixture: ComponentFixture<AppLayoutComponent>; |
||||
|
|
||||
|
beforeEach(async(() => { |
||||
|
TestBed.configureTestingModule({ |
||||
|
declarations: [ AppLayoutComponent ] |
||||
|
}) |
||||
|
.compileComponents(); |
||||
|
})); |
||||
|
|
||||
|
beforeEach(() => { |
||||
|
fixture = TestBed.createComponent(AppLayoutComponent); |
||||
|
component = fixture.componentInstance; |
||||
|
fixture.detectChanges(); |
||||
|
}); |
||||
|
|
||||
|
it('should create', () => { |
||||
|
expect(component).toBeTruthy(); |
||||
|
}); |
||||
|
}); |
@ -0,0 +1,15 @@ |
|||||
|
import { Component, OnInit } from '@angular/core'; |
||||
|
|
||||
|
@Component({ |
||||
|
selector: 'app-app-layout', |
||||
|
templateUrl: './app-layout.component.html', |
||||
|
styleUrls: ['./app-layout.component.scss'] |
||||
|
}) |
||||
|
export class AppLayoutComponent implements OnInit { |
||||
|
|
||||
|
constructor() { } |
||||
|
|
||||
|
ngOnInit(): void { |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
import { NgModule } from '@angular/core' |
||||
|
import { Routes, RouterModule } from '@angular/router' |
||||
|
import { AppLayoutComponent } from './app-layout/app-layout.component' |
||||
|
|
||||
|
|
||||
|
const routes: Routes = [ |
||||
|
{ |
||||
|
path: '', |
||||
|
component: AppLayoutComponent, |
||||
|
children: [] |
||||
|
} |
||||
|
] |
||||
|
|
||||
|
@NgModule({ |
||||
|
imports: [RouterModule.forRoot(routes)], |
||||
|
exports: [RouterModule] |
||||
|
}) |
||||
|
export class AppRoutingModule { } |
@ -0,0 +1 @@ |
|||||
|
<router-outlet></router-outlet> |
@ -0,0 +1,35 @@ |
|||||
|
import { TestBed, async } from '@angular/core/testing'; |
||||
|
import { RouterTestingModule } from '@angular/router/testing'; |
||||
|
import { AppComponent } from './app.component'; |
||||
|
|
||||
|
describe('AppComponent', () => { |
||||
|
beforeEach(async(() => { |
||||
|
TestBed.configureTestingModule({ |
||||
|
imports: [ |
||||
|
RouterTestingModule |
||||
|
], |
||||
|
declarations: [ |
||||
|
AppComponent |
||||
|
], |
||||
|
}).compileComponents(); |
||||
|
})); |
||||
|
|
||||
|
it('should create the app', () => { |
||||
|
const fixture = TestBed.createComponent(AppComponent); |
||||
|
const app = fixture.componentInstance; |
||||
|
expect(app).toBeTruthy(); |
||||
|
}); |
||||
|
|
||||
|
it(`should have as title 'dslak-website'`, () => { |
||||
|
const fixture = TestBed.createComponent(AppComponent); |
||||
|
const app = fixture.componentInstance; |
||||
|
expect(app.title).toEqual('dslak-website'); |
||||
|
}); |
||||
|
|
||||
|
it('should render title', () => { |
||||
|
const fixture = TestBed.createComponent(AppComponent); |
||||
|
fixture.detectChanges(); |
||||
|
const compiled = fixture.nativeElement; |
||||
|
expect(compiled.querySelector('.content span').textContent).toContain('dslak-website app is running!'); |
||||
|
}); |
||||
|
}); |
@ -0,0 +1,10 @@ |
|||||
|
import { Component } from '@angular/core'; |
||||
|
|
||||
|
@Component({ |
||||
|
selector: 'app-root', |
||||
|
templateUrl: './app.component.html', |
||||
|
styleUrls: ['./app.component.scss'] |
||||
|
}) |
||||
|
export class AppComponent { |
||||
|
title = 'Dslak | new-media arts'; |
||||
|
} |
@ -0,0 +1,22 @@ |
|||||
|
import { BrowserModule } from '@angular/platform-browser'; |
||||
|
import { NgModule } from '@angular/core'; |
||||
|
|
||||
|
import { AppRoutingModule } from './app-routing.module'; |
||||
|
import { AppComponent } from './app.component'; |
||||
|
import { HeaderComponent } from './header/header.component'; |
||||
|
import { AppLayoutComponent } from './app-layout/app-layout.component'; |
||||
|
|
||||
|
@NgModule({ |
||||
|
declarations: [ |
||||
|
AppComponent, |
||||
|
HeaderComponent, |
||||
|
AppLayoutComponent |
||||
|
], |
||||
|
imports: [ |
||||
|
BrowserModule, |
||||
|
AppRoutingModule |
||||
|
], |
||||
|
providers: [], |
||||
|
bootstrap: [AppComponent] |
||||
|
}) |
||||
|
export class AppModule { } |
@ -0,0 +1,3 @@ |
|||||
|
<header class="component-header"> |
||||
|
|
||||
|
</header> |
@ -0,0 +1,9 @@ |
|||||
|
|
||||
|
.component-header { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
height: 5px; |
||||
|
width: 100%; |
||||
|
background: black; |
||||
|
} |
@ -0,0 +1,25 @@ |
|||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; |
||||
|
|
||||
|
import { HeaderComponent } from './header.component'; |
||||
|
|
||||
|
describe('HeaderComponent', () => { |
||||
|
let component: HeaderComponent; |
||||
|
let fixture: ComponentFixture<HeaderComponent>; |
||||
|
|
||||
|
beforeEach(async(() => { |
||||
|
TestBed.configureTestingModule({ |
||||
|
declarations: [ HeaderComponent ] |
||||
|
}) |
||||
|
.compileComponents(); |
||||
|
})); |
||||
|
|
||||
|
beforeEach(() => { |
||||
|
fixture = TestBed.createComponent(HeaderComponent); |
||||
|
component = fixture.componentInstance; |
||||
|
fixture.detectChanges(); |
||||
|
}); |
||||
|
|
||||
|
it('should create', () => { |
||||
|
expect(component).toBeTruthy(); |
||||
|
}); |
||||
|
}); |
@ -0,0 +1,15 @@ |
|||||
|
import { Component, OnInit } from '@angular/core'; |
||||
|
|
||||
|
@Component({ |
||||
|
selector: 'app-header', |
||||
|
templateUrl: './header.component.html', |
||||
|
styleUrls: ['./header.component.scss'] |
||||
|
}) |
||||
|
export class HeaderComponent implements OnInit { |
||||
|
|
||||
|
constructor() { } |
||||
|
|
||||
|
ngOnInit(): void { |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,6 @@ |
|||||
|
|
||||
|
|
||||
|
body { |
||||
|
padding: 0; |
||||
|
margin: 0; |
||||
|
} |
@ -0,0 +1,2 @@ |
|||||
|
@import "./variables"; |
||||
|
@import "./global"; |
@ -0,0 +1,75 @@ |
|||||
|
// Bootstrap variables |
||||
|
$grid-breakpoints: ( |
||||
|
xs: 0, |
||||
|
sm: 576px, |
||||
|
md: 768px, |
||||
|
lg: 992px, |
||||
|
xl: 1200px |
||||
|
); |
||||
|
|
||||
|
$container-max-widths: ( |
||||
|
sm: 540px, |
||||
|
md: 720px, |
||||
|
lg: 960px, |
||||
|
xl: 1140px |
||||
|
); |
||||
|
|
||||
|
$grid-columns: 12; |
||||
|
$grid-gutter-width: 30px; |
||||
|
|
||||
|
$header-height: 80px; |
||||
|
$breadcrumb-height: 60px; |
||||
|
|
||||
|
// Colors |
||||
|
$white: #fff; |
||||
|
$black: #000; |
||||
|
$gray: #e8e8e8; |
||||
|
$gray2: #666; |
||||
|
$light-gray: #f5f5f5; |
||||
|
$light-gray2: #c3c3c3; |
||||
|
$dark-gray: #47464e; |
||||
|
$dark-gray2: #2c2c2c; |
||||
|
$gold: #f1c060; |
||||
|
$red: #ea2d31; |
||||
|
$green: #55aa2a; |
||||
|
$blue: #3785ff; |
||||
|
|
||||
|
$white-alpha: rgba(255, 255, 255, 0.9); |
||||
|
$white-alpha-light: rgba(255, 255, 255, 0.2); |
||||
|
|
||||
|
// Fonts |
||||
|
$font-primary: 'Akzidenz'; |
||||
|
$font-secondary: 'Akzidenz'; |
||||
|
$font-icon: 'icomoon'; |
||||
|
|
||||
|
// Font-size variables |
||||
|
$font-7: 0.437rem; /* 8px */ |
||||
|
$font-8: 0.5rem; /* 8px */ |
||||
|
$font-10: 0.625rem; /* 10px */ |
||||
|
$font-11: 0.6875rem; /* 11px */ |
||||
|
$font-12: 0.75rem; /* 12px */ |
||||
|
$font-13: 0.812rem; /* 13px */ |
||||
|
$font-14: 0.875rem; /* 14px */ |
||||
|
$font-15: 0.937rem; /* 15px */ |
||||
|
$font-16: 1rem; /* 16px */ |
||||
|
$font-18: 1.125rem; /* 18px */ |
||||
|
$font-20: 1.25rem; /* 20px */ |
||||
|
$font-22: 1.375rem; /* 22px */ |
||||
|
$font-24: 1.5rem; /* 24px */ |
||||
|
$font-26: 1.625rem; /* 26px */ |
||||
|
$font-28: 1.75rem; /* 28px */ |
||||
|
$font-30: 1.875rem; /* 30px */ |
||||
|
$font-32: 2rem; /* 32px */ |
||||
|
$font-34: 2.125rem; /* 34px */ |
||||
|
$font-36: 2.25rem; /* 36px */ |
||||
|
$font-38: 2.375rem; /* 38px */ |
||||
|
$font-40: 2.5rem; /* 40px */ |
||||
|
$font-42: 2.625rem; /* 42px */ |
||||
|
$font-44: 2.75rem; /* 44px */ |
||||
|
$font-46: 2.875rem; /* 46px */ |
||||
|
$font-48: 3rem; /* 48px */ |
||||
|
$font-50: 3.125rem; /* 50px */ |
||||
|
$font-52: 3.25rem; /* 52px */ |
||||
|
$font-54: 3.375rem; /* 54px */ |
||||
|
$font-60: 3.75rem; /* 60px */ |
||||
|
$font-72: 4.5rem; /* 72px */ |
@ -0,0 +1,3 @@ |
|||||
|
export const environment = { |
||||
|
production: true |
||||
|
}; |
@ -0,0 +1,16 @@ |
|||||
|
// This file can be replaced during build by using the `fileReplacements` array.
|
||||
|
// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
|
||||
|
// The list of file replacements can be found in `angular.json`.
|
||||
|
|
||||
|
export const environment = { |
||||
|
production: false |
||||
|
}; |
||||
|
|
||||
|
/* |
||||
|
* For easier debugging in development mode, you can import the following file |
||||
|
* to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. |
||||
|
* |
||||
|
* This import should be commented out in production mode because it will have a negative impact |
||||
|
* on performance if an error is thrown. |
||||
|
*/ |
||||
|
// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
|
After Width: | Height: | Size: 948 B |
@ -0,0 +1,13 @@ |
|||||
|
<!doctype html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<title>DslakWebsite</title> |
||||
|
<base href="/"> |
||||
|
<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> |
@ -0,0 +1,12 @@ |
|||||
|
import { enableProdMode } from '@angular/core'; |
||||
|
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; |
||||
|
|
||||
|
import { AppModule } from './app/app.module'; |
||||
|
import { environment } from './environments/environment'; |
||||
|
|
||||
|
if (environment.production) { |
||||
|
enableProdMode(); |
||||
|
} |
||||
|
|
||||
|
platformBrowserDynamic().bootstrapModule(AppModule) |
||||
|
.catch(err => console.error(err)); |
@ -0,0 +1,63 @@ |
|||||
|
/** |
||||
|
* 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 Safari >= 10, Chrome >= 55 (including Opera), |
||||
|
* Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. |
||||
|
* |
||||
|
* Learn more in https://angular.io/guide/browser-support
|
||||
|
*/ |
||||
|
|
||||
|
/*************************************************************************************************** |
||||
|
* BROWSER POLYFILLS |
||||
|
*/ |
||||
|
|
||||
|
/** IE10 and IE11 requires the following for NgClass support on SVG elements */ |
||||
|
// import 'classlist.js'; // Run `npm install --save classlist.js`.
|
||||
|
|
||||
|
/** |
||||
|
* Web Animations `@angular/platform-browser/animations` |
||||
|
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. |
||||
|
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). |
||||
|
*/ |
||||
|
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
|
||||
|
|
||||
|
/** |
||||
|
* 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/dist/zone'; // Included with Angular CLI.
|
||||
|
|
||||
|
|
||||
|
/*************************************************************************************************** |
||||
|
* APPLICATION IMPORTS |
||||
|
*/ |
@ -0,0 +1,25 @@ |
|||||
|
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
||||
|
|
||||
|
import 'zone.js/dist/zone-testing'; |
||||
|
import { getTestBed } from '@angular/core/testing'; |
||||
|
import { |
||||
|
BrowserDynamicTestingModule, |
||||
|
platformBrowserDynamicTesting |
||||
|
} from '@angular/platform-browser-dynamic/testing'; |
||||
|
|
||||
|
declare const require: { |
||||
|
context(path: string, deep?: boolean, filter?: RegExp): { |
||||
|
keys(): string[]; |
||||
|
<T>(id: string): T; |
||||
|
}; |
||||
|
}; |
||||
|
|
||||
|
// First, initialize the Angular testing environment.
|
||||
|
getTestBed().initTestEnvironment( |
||||
|
BrowserDynamicTestingModule, |
||||
|
platformBrowserDynamicTesting() |
||||
|
); |
||||
|
// Then we find all the tests.
|
||||
|
const context = require.context('./', true, /\.spec\.ts$/); |
||||
|
// And load the modules.
|
||||
|
context.keys().map(context); |
@ -0,0 +1,14 @@ |
|||||
|
{ |
||||
|
"extends": "./tsconfig.json", |
||||
|
"compilerOptions": { |
||||
|
"outDir": "./out-tsc/app", |
||||
|
"types": [] |
||||
|
}, |
||||
|
"files": [ |
||||
|
"src/main.ts", |
||||
|
"src/polyfills.ts" |
||||
|
], |
||||
|
"include": [ |
||||
|
"src/**/*.d.ts" |
||||
|
] |
||||
|
} |
@ -0,0 +1,23 @@ |
|||||
|
{ |
||||
|
"compileOnSave": false, |
||||
|
"compilerOptions": { |
||||
|
"baseUrl": "./", |
||||
|
"outDir": "./dist/out-tsc", |
||||
|
"sourceMap": true, |
||||
|
"declaration": false, |
||||
|
"downlevelIteration": true, |
||||
|
"experimentalDecorators": true, |
||||
|
"module": "esnext", |
||||
|
"moduleResolution": "node", |
||||
|
"importHelpers": true, |
||||
|
"target": "es2015", |
||||
|
"lib": [ |
||||
|
"es2018", |
||||
|
"dom" |
||||
|
] |
||||
|
}, |
||||
|
"angularCompilerOptions": { |
||||
|
"fullTemplateTypeCheck": true, |
||||
|
"strictInjectionParameters": true |
||||
|
} |
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
{ |
||||
|
"extends": "./tsconfig.json", |
||||
|
"compilerOptions": { |
||||
|
"outDir": "./out-tsc/spec", |
||||
|
"types": [ |
||||
|
"jasmine", |
||||
|
"node" |
||||
|
] |
||||
|
}, |
||||
|
"files": [ |
||||
|
"src/test.ts", |
||||
|
"src/polyfills.ts" |
||||
|
], |
||||
|
"include": [ |
||||
|
"src/**/*.spec.ts", |
||||
|
"src/**/*.d.ts" |
||||
|
] |
||||
|
} |
@ -0,0 +1,148 @@ |
|||||
|
{ |
||||
|
"extends": "tslint:recommended", |
||||
|
"rules": { |
||||
|
"align": { |
||||
|
"options": [ |
||||
|
"parameters", |
||||
|
"statements" |
||||
|
] |
||||
|
}, |
||||
|
"array-type": false, |
||||
|
"arrow-return-shorthand": true, |
||||
|
"curly": true, |
||||
|
"deprecation": { |
||||
|
"severity": "warning" |
||||
|
}, |
||||
|
"component-class-suffix": true, |
||||
|
"contextual-lifecycle": true, |
||||
|
"directive-class-suffix": true, |
||||
|
"directive-selector": [ |
||||
|
true, |
||||
|
"attribute", |
||||
|
"app", |
||||
|
"camelCase" |
||||
|
], |
||||
|
"component-selector": [ |
||||
|
true, |
||||
|
"element", |
||||
|
"app", |
||||
|
"kebab-case" |
||||
|
], |
||||
|
"eofline": true, |
||||
|
"import-blacklist": [ |
||||
|
true, |
||||
|
"rxjs/Rx" |
||||
|
], |
||||
|
"import-spacing": true, |
||||
|
"indent": { |
||||
|
"options": [ |
||||
|
"spaces" |
||||
|
] |
||||
|
}, |
||||
|
"max-classes-per-file": false, |
||||
|
"max-line-length": [ |
||||
|
true, |
||||
|
140 |
||||
|
], |
||||
|
"member-ordering": [ |
||||
|
true, |
||||
|
{ |
||||
|
"order": [ |
||||
|
"static-field", |
||||
|
"instance-field", |
||||
|
"static-method", |
||||
|
"instance-method" |
||||
|
] |
||||
|
} |
||||
|
], |
||||
|
"no-console": [ |
||||
|
true, |
||||
|
"debug", |
||||
|
"info", |
||||
|
"time", |
||||
|
"timeEnd", |
||||
|
"trace" |
||||
|
], |
||||
|
"no-empty": false, |
||||
|
"no-inferrable-types": [ |
||||
|
true, |
||||
|
"ignore-params" |
||||
|
], |
||||
|
"no-non-null-assertion": true, |
||||
|
"no-redundant-jsdoc": true, |
||||
|
"no-switch-case-fall-through": true, |
||||
|
"no-var-requires": false, |
||||
|
"object-literal-key-quotes": [ |
||||
|
true, |
||||
|
"as-needed" |
||||
|
], |
||||
|
"quotemark": [ |
||||
|
true, |
||||
|
"single" |
||||
|
], |
||||
|
"semicolon": { |
||||
|
"options": [ |
||||
|
"always" |
||||
|
] |
||||
|
}, |
||||
|
"space-before-function-paren": { |
||||
|
"options": { |
||||
|
"anonymous": "never", |
||||
|
"asyncArrow": "always", |
||||
|
"constructor": "never", |
||||
|
"method": "never", |
||||
|
"named": "never" |
||||
|
} |
||||
|
}, |
||||
|
"typedef-whitespace": { |
||||
|
"options": [ |
||||
|
{ |
||||
|
"call-signature": "nospace", |
||||
|
"index-signature": "nospace", |
||||
|
"parameter": "nospace", |
||||
|
"property-declaration": "nospace", |
||||
|
"variable-declaration": "nospace" |
||||
|
}, |
||||
|
{ |
||||
|
"call-signature": "onespace", |
||||
|
"index-signature": "onespace", |
||||
|
"parameter": "onespace", |
||||
|
"property-declaration": "onespace", |
||||
|
"variable-declaration": "onespace" |
||||
|
} |
||||
|
] |
||||
|
}, |
||||
|
"variable-name": { |
||||
|
"options": [ |
||||
|
"ban-keywords", |
||||
|
"check-format", |
||||
|
"allow-pascal-case" |
||||
|
] |
||||
|
}, |
||||
|
"whitespace": { |
||||
|
"options": [ |
||||
|
"check-branch", |
||||
|
"check-decl", |
||||
|
"check-operator", |
||||
|
"check-separator", |
||||
|
"check-type", |
||||
|
"check-typecast" |
||||
|
] |
||||
|
}, |
||||
|
"no-conflicting-lifecycle": true, |
||||
|
"no-host-metadata-property": true, |
||||
|
"no-input-rename": true, |
||||
|
"no-inputs-metadata-property": true, |
||||
|
"no-output-native": true, |
||||
|
"no-output-on-prefix": true, |
||||
|
"no-output-rename": true, |
||||
|
"no-outputs-metadata-property": true, |
||||
|
"template-banana-in-box": true, |
||||
|
"template-no-negated-async": true, |
||||
|
"use-lifecycle-interface": true, |
||||
|
"use-pipe-transform-interface": true |
||||
|
}, |
||||
|
"rulesDirectory": [ |
||||
|
"codelyzer" |
||||
|
] |
||||
|
} |
Loading…
Reference in new issue