@media-quest/engine 0.0.34 → 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/dist/public-api.d.ts +21 -3
- package/dist/public-api.js +25 -14
- package/dist/public-api.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/SchemaEngine.ts +5 -0
- package/src/engine/SchemaResult.ts +12 -10
- package/src/engine/dplayer.spec.ts +92 -91
- package/src/engine/dplayer.ts +6 -4
- package/src/engine/history-que.spec.ts +4 -2
- package/src/engine/history-que.ts +21 -17
- package/src/engine/next-que.spec.ts +1 -0
- package/src/engine/next-que.ts +101 -101
- package/src/events/mq-events.ts +76 -63
- package/src/page/Page.ts +11 -20
- package/src/page/page-result.ts +12 -11
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
|
-
|
|
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() {
|
package/src/page/page-result.ts
CHANGED
|
@@ -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
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
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
|
+
}
|