@media-quest/engine 0.0.35 → 0.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/page/Page.ts CHANGED
@@ -20,6 +20,10 @@ export interface VideoPlayerDto {
20
20
  export interface PageDto {
21
21
  readonly id: string;
22
22
  readonly prefix: string;
23
+ /**
24
+ * Page number in the sequence (starts at 1)
25
+ */
26
+ readonly pageNumber: number;
23
27
  readonly tags: string[];
24
28
  background: string;
25
29
  elements: Array<DElementDto>;
@@ -31,6 +35,7 @@ export const PageDto = {
31
35
  createDummy: (id: number): PageDto => {
32
36
  return {
33
37
  id: "id" + id,
38
+ pageNumber: id,
34
39
  prefix: "prefix" + id,
35
40
  tags: [],
36
41
  background: "white",
@@ -51,8 +56,7 @@ export const PageDto = {
51
56
  export class Page {
52
57
  private readonly TAG = "[ DPage ]: ";
53
58
  private elements: DElement<HTMLElement>[] = [];
54
- // private elements: PageComponent[] = [];
55
- // private layoutComponents: PageLayoutComponent[] = [];
59
+ private readonly pageNumber: number;
56
60
  private pageEntered: DTimestamp = DTimestamp.now();
57
61
  private previousState: TaskState | false = false;
58
62
  private eventLog = new Array<MqEvent>();
@@ -63,22 +67,14 @@ export class Page {
63
67
  private readonly scaleService: ScaleService,
64
68
  private readonly onCompleted: (result: PageResult) => void,
65
69
  ) {
70
+ this.pageNumber = dto.pageNumber;
66
71
  dto.elements.forEach((el) => {
67
72
  const element = createDElement(el, scaleService);
68
- // if (element instanceof DDiv) {
69
- // }
70
73
  element.registerClickHandler((action) => {
71
74
  this.handleButtonAction(action);
72
75
  });
73
76
 
74
77
  this.elements.push(element);
75
-
76
- // if(element.)
77
- // element= (action) => {
78
- // console.log("TODO ONCLICK ");
79
- // this.handleButtonAction(action);
80
- // };
81
- // this.elements.push(element);
82
78
  });
83
79
 
84
80
  if (dto.videoPlayer) {
@@ -96,12 +92,13 @@ export class Page {
96
92
  private createPageResult(facts: Fact[]): PageResult {
97
93
  const pageExited = DTimestamp.now();
98
94
  const pageTime = DTimestamp.diff(this.pageEntered, pageExited);
99
- const pageExit = MqEvent.pageLeave(this.dto.id, this.dto.prefix);
95
+ const pageExit = MqEvent.pageLeave(this.dto.id, this.dto.prefix, this.pageNumber);
100
96
  this.eventLog.push(pageExit);
101
97
  const eventLog = [...this.eventLog];
102
98
  return {
103
99
  pagePrefix: this.dto.prefix,
104
100
  pageId: this.dto.id,
101
+ pageNumber: this.pageNumber,
105
102
  eventLog,
106
103
  pageTime,
107
104
  collectedFacts: facts,
@@ -111,6 +108,7 @@ export class Page {
111
108
  const event = MqEvent.userClicked({
112
109
  pageId: this.dto.id,
113
110
  pagePrefix: this.dto.prefix,
111
+ pageNumber: this.pageNumber,
114
112
  action: a.kind,
115
113
  descriptions: ButtonClickAction.describe(a),
116
114
  });
@@ -160,19 +158,12 @@ export class Page {
160
158
  }
161
159
 
162
160
  appendYourself(parent: HTMLElement) {
163
- const pageEnterEvent = MqEvent.pageEnter(this.dto.id, this.dto.prefix);
161
+ const pageEnterEvent = MqEvent.pageEnter(this.dto.id, this.dto.prefix, this.pageNumber);
164
162
  this.pageEntered = DTimestamp.now();
165
163
  this.eventLog.push(pageEnterEvent);
166
164
  this.elements.forEach((el) => {
167
165
  el.appendYourself(parent);
168
166
  });
169
-
170
- // this.components.forEach((comp) => {
171
- // comp.appendToParent(parent);
172
- // });
173
- // this.layoutComponents.forEach((comp) => {
174
- // comp.appendToParent(parent);
175
- // });
176
167
  }
177
168
 
178
169
  destroy() {
@@ -1,11 +1,12 @@
1
- import { DTimestamp } from "../common/DTimestamp";
2
- import { Fact } from "../rules/fact";
3
- import { MqEvent } from "../events/mq-events";
4
-
5
- export interface PageResult {
6
- readonly pageId: string;
7
- readonly pagePrefix: string;
8
- readonly eventLog: ReadonlyArray<MqEvent>;
9
- readonly pageTime: DTimestamp.Diff;
10
- readonly collectedFacts: Fact[];
11
- }
1
+ import { DTimestamp } from "../common/DTimestamp";
2
+ import { Fact } from "../rules/fact";
3
+ import { MqEvent } from "../events/mq-events";
4
+
5
+ export interface PageResult {
6
+ readonly pageId: string;
7
+ readonly pagePrefix: string;
8
+ readonly pageNumber: number;
9
+ readonly eventLog: ReadonlyArray<MqEvent>;
10
+ readonly pageTime: DTimestamp.Diff;
11
+ readonly collectedFacts: Fact[];
12
+ }