import * as Moment from 'moment'; import { TournamentBranding, TournamentSummary } from 'tournee.businesslogic'; import { Font } from 'ngx-font-picker'; export class EventPage { url: string; name: string; description : string; branding: TournamentBranding; future_tournaments: Array = []; current_tournament: TournamentSummary; past_tournaments: Array = []; global_font: Font; banner_font: Font; constructor(jsonObject = null) { if (!jsonObject) { return; } this.url = jsonObject.url; this.name = jsonObject.name; this.description = jsonObject.description; this.branding = new TournamentBranding(jsonObject.branding); this.IsRepeating = jsonObject.tournaments.length > 1; const tournaments = jsonObject.tournaments.map((t) => { return new TournamentSummary(t); }); this.past_tournaments = tournaments.filter((t: TournamentSummary) => { return t.days[t.days.length - 1].date.add(1, 'day').isBefore(Moment()); }); this.current_tournament = tournaments.find((t: TournamentSummary) => { return Moment().isBetween(t.days[0].date, t.days[t.days.length - 1].date.add(1, 'day')); }); this.future_tournaments = tournaments.filter((t: TournamentSummary) => { return t.days[0].date.isAfter(Moment()); }); this.global_font = new Font(this.branding.global_font).getStyles(); this.banner_font = new Font(this.branding.banner_font).getStyles(); } IsRepeating: boolean; }