view data fixes

This commit is contained in:
2026-01-23 15:30:23 +01:00
parent e22033be38
commit f8099f04bc
213 changed files with 3466 additions and 3003 deletions

View File

@@ -6,24 +6,23 @@
*/
import { AnalyticsMetricsViewData } from "../view-data/AnalyticsMetricsViewData";
import { ViewModel } from "../contracts/view-models/ViewModel";
import { NumberDisplay } from "../display-objects/NumberDisplay";
import { DurationDisplay } from "../display-objects/DurationDisplay";
import { PercentDisplay } from "../display-objects/PercentDisplay";
import { NumberDisplay } from "@/lib/display-objects/NumberDisplay";
import { DurationDisplay } from "@/lib/display-objects/DurationDisplay";
import { PercentDisplay } from "@/lib/display-objects/PercentDisplay";
export class AnalyticsMetricsViewModel extends ViewModel {
readonly pageViews: number;
readonly uniqueVisitors: number;
readonly averageSessionDuration: number;
readonly bounceRate: number;
private readonly data: AnalyticsMetricsViewData;
constructor(viewData: AnalyticsMetricsViewData) {
constructor(data: AnalyticsMetricsViewData) {
super();
this.pageViews = viewData.pageViews;
this.uniqueVisitors = viewData.uniqueVisitors;
this.averageSessionDuration = viewData.averageSessionDuration;
this.bounceRate = viewData.bounceRate;
this.data = data;
}
get pageViews(): number { return this.data.pageViews; }
get uniqueVisitors(): number { return this.data.uniqueVisitors; }
get averageSessionDuration(): number { return this.data.averageSessionDuration; }
get bounceRate(): number { return this.data.bounceRate; }
/** UI-specific: Formatted page views */
get formattedPageViews(): string {
return NumberDisplay.format(this.pageViews);