diff --git a/src/app/seconds.pipe.spec.ts b/src/app/seconds.pipe.spec.ts new file mode 100644 index 0000000..aa60bb9 --- /dev/null +++ b/src/app/seconds.pipe.spec.ts @@ -0,0 +1,8 @@ +import { SecondsPipe } from './seconds.pipe'; + +describe('SecondsPipe', () => { + it('create an instance', () => { + const pipe = new SecondsPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/src/app/seconds.pipe.ts b/src/app/seconds.pipe.ts new file mode 100644 index 0000000..615c3b2 --- /dev/null +++ b/src/app/seconds.pipe.ts @@ -0,0 +1,16 @@ +import {Pipe, PipeTransform} from '@angular/core'; + +@Pipe({ + name: 'seconds' +}) +export class SecondsPipe implements PipeTransform { + + transform(value: any, args?: any): any { + if (value) { + return ((value / 1000) % 60).toFixed(2); + } else { + return null; + } + } + +} diff --git a/src/app/timespan/timespan.component.html b/src/app/timespan/timespan.component.html new file mode 100644 index 0000000..76ee8a7 --- /dev/null +++ b/src/app/timespan/timespan.component.html @@ -0,0 +1,2 @@ +{{prefix}}{{theNumber}}{{theUnit}} + diff --git a/src/app/timespan/timespan.component.scss b/src/app/timespan/timespan.component.scss new file mode 100644 index 0000000..04aedb1 --- /dev/null +++ b/src/app/timespan/timespan.component.scss @@ -0,0 +1,7 @@ + +.unit { + font-size: 60%; +} +span { + font-family: monospace; +} diff --git a/src/app/timespan/timespan.component.spec.ts b/src/app/timespan/timespan.component.spec.ts new file mode 100644 index 0000000..88e418e --- /dev/null +++ b/src/app/timespan/timespan.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TimespanComponent } from './timespan.component'; + +describe('TimespanComponent', () => { + let component: TimespanComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ TimespanComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TimespanComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/timespan/timespan.component.ts b/src/app/timespan/timespan.component.ts new file mode 100644 index 0000000..a3b1cfe --- /dev/null +++ b/src/app/timespan/timespan.component.ts @@ -0,0 +1,25 @@ +import {Component, Input, OnInit} from '@angular/core'; + +@Component({ + selector: 'app-timespan', + templateUrl: './timespan.component.html', + styleUrls: ['./timespan.component.scss'] +}) +export class TimespanComponent implements OnInit { + + @Input() + prefix: string; + + @Input() + theNumber: number; + + @Input() + theUnit: string; + + constructor() { + } + + ngOnInit() { + } + +} diff --git a/src/app/topmenu.service.spec.ts b/src/app/topmenu.service.spec.ts new file mode 100644 index 0000000..88dd971 --- /dev/null +++ b/src/app/topmenu.service.spec.ts @@ -0,0 +1,15 @@ +import { TestBed, inject } from '@angular/core/testing'; + +import { TopmenuService } from './topmenu.service'; + +describe('TopmenuService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [TopmenuService] + }); + }); + + it('should be created', inject([TopmenuService], (service: TopmenuService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/app/topmenu.service.ts b/src/app/topmenu.service.ts new file mode 100644 index 0000000..870d8b8 --- /dev/null +++ b/src/app/topmenu.service.ts @@ -0,0 +1,39 @@ +import {Injectable} from '@angular/core'; +import {BehaviorSubject} from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class TopmenuService { + + public poules$: BehaviorSubject = new BehaviorSubject([]); + public tier$: BehaviorSubject = new BehaviorSubject(null); + public poule$ = new BehaviorSubject(null); + public championship$ = new BehaviorSubject(null); + + constructor() { + } + + setPoules(poules: number[]) { + this.poules$.next(poules); + } + + setTier(tier: number) { + console.log('setting tier...'); + if (this.tier$.value !== tier) { + console.log('overriding tier now.'); + this.tier$.next(tier); + } + } + + setPoule(poule: number) { + if (this.poule$.value !== poule) + this.poule$.next(poule); + } + + setChampionship(championship: number) { + if (this.championship$.value !== championship) + this.championship$.next(championship); + } + +} diff --git a/src/globals.scss b/src/globals.scss new file mode 100644 index 0000000..3a5d1e4 --- /dev/null +++ b/src/globals.scss @@ -0,0 +1 @@ +$reclameheight: 100px;