view data fixes
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user