@media-quest/engine 0.0.35 → 0.0.37
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/public-api.ts +1 -0
package/dist/public-api.d.ts
CHANGED
|
@@ -40,39 +40,53 @@ type MqEventEngineStart = _MqEvent<"engine-start", {
|
|
|
40
40
|
}>;
|
|
41
41
|
interface MqEventPageEnter extends _MqEvent<"page-enter", {
|
|
42
42
|
readonly pageId: string;
|
|
43
|
+
readonly pageNumber: number;
|
|
43
44
|
readonly pagePrefix: string;
|
|
44
45
|
}> {
|
|
45
46
|
}
|
|
46
47
|
interface MqEventPageLeave extends _MqEvent<"page-leave", {
|
|
47
48
|
readonly pageId: string;
|
|
49
|
+
readonly pageNumber: number;
|
|
48
50
|
readonly pagePrefix: string;
|
|
49
51
|
}> {
|
|
50
52
|
}
|
|
51
53
|
type MqEventUserClicked = _MqEvent<"user-clicked", {
|
|
52
54
|
readonly pageId: string;
|
|
53
|
-
pagePrefix: string;
|
|
55
|
+
readonly pagePrefix: string;
|
|
56
|
+
readonly pageNumber: number;
|
|
54
57
|
action: string;
|
|
55
58
|
descriptions: string;
|
|
56
59
|
}>;
|
|
57
60
|
type MqEvent = MqEventPageEnter | MqEventPageLeave | MqEventEngineStart | MqEventUserClicked;
|
|
58
61
|
declare const MqEvent: {
|
|
59
62
|
readonly engineStart: (schemaId: string, schemaPrefix: string) => MqEventEngineStart;
|
|
60
|
-
readonly pageEnter: (pageId: string, pagePrefix: string) => MqEventPageEnter;
|
|
61
|
-
readonly pageLeave: (pageId: string, pagePrefix: string) => MqEventPageLeave;
|
|
63
|
+
readonly pageEnter: (pageId: string, pagePrefix: string, pageNumber: number) => MqEventPageEnter;
|
|
64
|
+
readonly pageLeave: (pageId: string, pagePrefix: string, pageNumber: number) => MqEventPageLeave;
|
|
62
65
|
readonly userClicked: (data: {
|
|
63
66
|
pageId: string;
|
|
64
67
|
pagePrefix: string;
|
|
68
|
+
pageNumber: number;
|
|
65
69
|
action: string;
|
|
66
70
|
descriptions: string;
|
|
67
71
|
}) => MqEventUserClicked;
|
|
68
72
|
};
|
|
69
73
|
|
|
74
|
+
interface PageResult {
|
|
75
|
+
readonly pageId: string;
|
|
76
|
+
readonly pagePrefix: string;
|
|
77
|
+
readonly pageNumber: number;
|
|
78
|
+
readonly eventLog: ReadonlyArray<MqEvent>;
|
|
79
|
+
readonly pageTime: DTimestamp.Diff;
|
|
80
|
+
readonly collectedFacts: Fact[];
|
|
81
|
+
}
|
|
82
|
+
|
|
70
83
|
interface SchemaResult {
|
|
71
84
|
readonly schemaId: string;
|
|
72
85
|
readonly pagesLeft: number;
|
|
73
86
|
readonly predefinedFacts: ReadonlyArray<Fact>;
|
|
74
87
|
readonly eventLog: ReadonlyArray<MqEvent>;
|
|
75
88
|
readonly answers: ReadonlyArray<Fact>;
|
|
89
|
+
readonly pageResults?: ReadonlyArray<PageResult>;
|
|
76
90
|
}
|
|
77
91
|
|
|
78
92
|
type Condition = Condition.String | Condition.Numeric | Condition.Complex;
|
|
@@ -438,6 +452,10 @@ interface VideoPlayerDto {
|
|
|
438
452
|
interface PageDto {
|
|
439
453
|
readonly id: string;
|
|
440
454
|
readonly prefix: string;
|
|
455
|
+
/**
|
|
456
|
+
* Page number in the sequence (starts at 1)
|
|
457
|
+
*/
|
|
458
|
+
readonly pageNumber: number;
|
|
441
459
|
readonly tags: string[];
|
|
442
460
|
background: string;
|
|
443
461
|
elements: Array<DElementDto>;
|
package/dist/public-api.js
CHANGED
|
@@ -46,6 +46,9 @@ var HistoryQue = class {
|
|
|
46
46
|
const answers = this.history.map((h) => h.collectedFacts).flat(1);
|
|
47
47
|
return answers;
|
|
48
48
|
}
|
|
49
|
+
getPageResults() {
|
|
50
|
+
return [...this.history];
|
|
51
|
+
}
|
|
49
52
|
addToHistory(result) {
|
|
50
53
|
this.history.push(result);
|
|
51
54
|
}
|
|
@@ -432,9 +435,9 @@ var DPlayer = class {
|
|
|
432
435
|
saveEvent(event) {
|
|
433
436
|
this.eventLog.push(event);
|
|
434
437
|
}
|
|
435
|
-
saveHistory(
|
|
436
|
-
this.history.addToHistory(
|
|
437
|
-
this.eventLog.push(...
|
|
438
|
+
saveHistory(pageResult) {
|
|
439
|
+
this.history.addToHistory(pageResult);
|
|
440
|
+
this.eventLog.push(...pageResult.eventLog);
|
|
438
441
|
const userGeneratedFact = this.history.getFacts();
|
|
439
442
|
const predefinedFacts = this.predefinedFacts;
|
|
440
443
|
const facts = [...userGeneratedFact, ...predefinedFacts];
|
|
@@ -463,7 +466,8 @@ var DPlayer = class {
|
|
|
463
466
|
const answerFacts = this.history.getFacts();
|
|
464
467
|
const predefinedFacts = this.predefinedFacts;
|
|
465
468
|
const eventLog = [...this.eventLog];
|
|
466
|
-
|
|
469
|
+
const pageResults = this.history.getPageResults();
|
|
470
|
+
return { answerFacts, predefinedFacts, eventLog, pagesLeft, pageResults };
|
|
467
471
|
}
|
|
468
472
|
insertSequence(sequenceId) {
|
|
469
473
|
this.insertSequenceById(sequenceId);
|
|
@@ -1178,26 +1182,26 @@ var MqEvent = {
|
|
|
1178
1182
|
payload: { schemaId, schemaPrefix }
|
|
1179
1183
|
};
|
|
1180
1184
|
},
|
|
1181
|
-
pageEnter(pageId, pagePrefix) {
|
|
1185
|
+
pageEnter(pageId, pagePrefix, pageNumber) {
|
|
1182
1186
|
return {
|
|
1183
1187
|
kind: "page-enter",
|
|
1184
1188
|
timestamp: DTimestamp.now(),
|
|
1185
|
-
payload: { pageId, pagePrefix }
|
|
1189
|
+
payload: { pageId, pagePrefix, pageNumber }
|
|
1186
1190
|
};
|
|
1187
1191
|
},
|
|
1188
|
-
pageLeave(pageId, pagePrefix) {
|
|
1192
|
+
pageLeave(pageId, pagePrefix, pageNumber) {
|
|
1189
1193
|
return {
|
|
1190
1194
|
kind: "page-leave",
|
|
1191
1195
|
timestamp: DTimestamp.now(),
|
|
1192
|
-
payload: { pageId, pagePrefix }
|
|
1196
|
+
payload: { pageId, pagePrefix, pageNumber }
|
|
1193
1197
|
};
|
|
1194
1198
|
},
|
|
1195
1199
|
userClicked(data) {
|
|
1196
|
-
const { pageId, pagePrefix, action, descriptions } = data;
|
|
1200
|
+
const { pageId, pageNumber, pagePrefix, action, descriptions } = data;
|
|
1197
1201
|
return {
|
|
1198
1202
|
kind: "user-clicked",
|
|
1199
1203
|
timestamp: DTimestamp.now(),
|
|
1200
|
-
payload: { pageId, pagePrefix, action, descriptions }
|
|
1204
|
+
payload: { pageId, pagePrefix, action, descriptions, pageNumber }
|
|
1201
1205
|
};
|
|
1202
1206
|
}
|
|
1203
1207
|
};
|
|
@@ -1207,6 +1211,7 @@ var PageDto = {
|
|
|
1207
1211
|
createDummy: (id) => {
|
|
1208
1212
|
return {
|
|
1209
1213
|
id: "id" + id,
|
|
1214
|
+
pageNumber: id,
|
|
1210
1215
|
prefix: "prefix" + id,
|
|
1211
1216
|
tags: [],
|
|
1212
1217
|
background: "white",
|
|
@@ -1228,6 +1233,7 @@ var Page = class {
|
|
|
1228
1233
|
this.taskManager = taskManager;
|
|
1229
1234
|
this.scaleService = scaleService;
|
|
1230
1235
|
this.onCompleted = onCompleted;
|
|
1236
|
+
this.pageNumber = dto.pageNumber;
|
|
1231
1237
|
dto.elements.forEach((el) => {
|
|
1232
1238
|
const element = createDElement(el, scaleService);
|
|
1233
1239
|
element.registerClickHandler((action) => {
|
|
@@ -1247,20 +1253,20 @@ var Page = class {
|
|
|
1247
1253
|
}
|
|
1248
1254
|
TAG = "[ DPage ]: ";
|
|
1249
1255
|
elements = [];
|
|
1250
|
-
|
|
1251
|
-
// private layoutComponents: PageLayoutComponent[] = [];
|
|
1256
|
+
pageNumber;
|
|
1252
1257
|
pageEntered = DTimestamp.now();
|
|
1253
1258
|
previousState = false;
|
|
1254
1259
|
eventLog = new Array();
|
|
1255
1260
|
createPageResult(facts) {
|
|
1256
1261
|
const pageExited = DTimestamp.now();
|
|
1257
1262
|
const pageTime = DTimestamp.diff(this.pageEntered, pageExited);
|
|
1258
|
-
const pageExit = MqEvent.pageLeave(this.dto.id, this.dto.prefix);
|
|
1263
|
+
const pageExit = MqEvent.pageLeave(this.dto.id, this.dto.prefix, this.pageNumber);
|
|
1259
1264
|
this.eventLog.push(pageExit);
|
|
1260
1265
|
const eventLog = [...this.eventLog];
|
|
1261
1266
|
return {
|
|
1262
1267
|
pagePrefix: this.dto.prefix,
|
|
1263
1268
|
pageId: this.dto.id,
|
|
1269
|
+
pageNumber: this.pageNumber,
|
|
1264
1270
|
eventLog,
|
|
1265
1271
|
pageTime,
|
|
1266
1272
|
collectedFacts: facts
|
|
@@ -1270,6 +1276,7 @@ var Page = class {
|
|
|
1270
1276
|
const event = MqEvent.userClicked({
|
|
1271
1277
|
pageId: this.dto.id,
|
|
1272
1278
|
pagePrefix: this.dto.prefix,
|
|
1279
|
+
pageNumber: this.pageNumber,
|
|
1273
1280
|
action: a.kind,
|
|
1274
1281
|
descriptions: ButtonClickAction.describe(a)
|
|
1275
1282
|
});
|
|
@@ -1316,7 +1323,7 @@ var Page = class {
|
|
|
1316
1323
|
}
|
|
1317
1324
|
}
|
|
1318
1325
|
appendYourself(parent) {
|
|
1319
|
-
const pageEnterEvent = MqEvent.pageEnter(this.dto.id, this.dto.prefix);
|
|
1326
|
+
const pageEnterEvent = MqEvent.pageEnter(this.dto.id, this.dto.prefix, this.pageNumber);
|
|
1320
1327
|
this.pageEntered = DTimestamp.now();
|
|
1321
1328
|
this.eventLog.push(pageEnterEvent);
|
|
1322
1329
|
this.elements.forEach((el) => {
|
|
@@ -1652,6 +1659,7 @@ var SchemaEngine = class {
|
|
|
1652
1659
|
const currentResults = this.player.getResults();
|
|
1653
1660
|
const a = {
|
|
1654
1661
|
schemaId: this.schema.id,
|
|
1662
|
+
pageResults: currentResults.pageResults,
|
|
1655
1663
|
pagesLeft: currentResults.pagesLeft,
|
|
1656
1664
|
predefinedFacts: currentResults.predefinedFacts,
|
|
1657
1665
|
eventLog: currentResults.eventLog,
|
|
@@ -1705,6 +1713,9 @@ var SchemaEngine = class {
|
|
|
1705
1713
|
this.currentPage.destroy();
|
|
1706
1714
|
this.uiLayer.innerHTML = "";
|
|
1707
1715
|
}
|
|
1716
|
+
if (this.tickerRef) {
|
|
1717
|
+
window.clearInterval(this.tickerRef);
|
|
1718
|
+
}
|
|
1708
1719
|
}
|
|
1709
1720
|
_onProgress = false;
|
|
1710
1721
|
onProgress(handler) {
|