@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.
@@ -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>;
@@ -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(pageHistory) {
436
- this.history.addToHistory(pageHistory);
437
- this.eventLog.push(...pageHistory.eventLog);
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
- return { answerFacts, predefinedFacts, eventLog, pagesLeft };
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
- // private elements: PageComponent[] = [];
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) {