@didask/scol-r 2.2.5 → 2.2.6
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/lib/SCORMAdapter.js +31 -16
- package/lib/loadContent.js +3 -0
- package/package.json +1 -1
package/lib/SCORMAdapter.js
CHANGED
|
@@ -253,26 +253,14 @@ var SCORMAdapter = /** @class */ (function () {
|
|
|
253
253
|
}
|
|
254
254
|
};
|
|
255
255
|
SCORMAdapter.prototype.setSessionTime = function (msSessionTime) {
|
|
256
|
-
var CMIVariableName = this._isSCORM2004
|
|
257
|
-
? "cmi.session_time"
|
|
258
|
-
: "cmi.core.session_time";
|
|
259
|
-
var duration;
|
|
260
256
|
if (this._isSCORM2004) {
|
|
261
|
-
duration =
|
|
257
|
+
var duration = convertToTimeInterval(msSessionTime);
|
|
258
|
+
this.LMSSetValue("cmi.session_time", duration);
|
|
262
259
|
}
|
|
263
260
|
else {
|
|
264
|
-
var
|
|
265
|
-
|
|
266
|
-
var minutes = Math.floor(msSessionTime / 1000 / 60);
|
|
267
|
-
msSessionTime -= minutes * 1000 * 60;
|
|
268
|
-
var seconds = Math.floor(msSessionTime / 1000);
|
|
269
|
-
var formattedSeconds = seconds < 10 ? "0" + seconds : seconds;
|
|
270
|
-
var formattedMinutes = minutes < 10 ? "0" + minutes : minutes;
|
|
271
|
-
var formattedHours = hours < 10 ? "0" + hours : hours;
|
|
272
|
-
duration =
|
|
273
|
-
formattedHours + ":" + formattedMinutes + ":" + formattedSeconds;
|
|
261
|
+
var duration = convertMsToCMITimespan(msSessionTime);
|
|
262
|
+
this.LMSSetValue("cmi.core.session_time", duration);
|
|
274
263
|
}
|
|
275
|
-
this.LMSSetValue(CMIVariableName, duration);
|
|
276
264
|
};
|
|
277
265
|
Object.defineProperty(SCORMAdapter.prototype, "objectivesAreAvailable", {
|
|
278
266
|
get: function () {
|
|
@@ -348,3 +336,30 @@ var SCORMAdapter = /** @class */ (function () {
|
|
|
348
336
|
return SCORMAdapter;
|
|
349
337
|
}());
|
|
350
338
|
exports.SCORMAdapter = SCORMAdapter;
|
|
339
|
+
// timeinterval (second,10,2),
|
|
340
|
+
var convertToTimeInterval = function (milliseconds) {
|
|
341
|
+
var data = getDurationData(milliseconds);
|
|
342
|
+
var days = data.days;
|
|
343
|
+
var hours = data.hours % 24;
|
|
344
|
+
var minutes = data.minutes % 60;
|
|
345
|
+
var seconds = data.seconds % 60;
|
|
346
|
+
var cents = data.cents % 100;
|
|
347
|
+
var daysString = days ? days + 'D' : '';
|
|
348
|
+
var hoursString = hours ? hours + 'H' : '';
|
|
349
|
+
var minutesString = minutes ? minutes + 'M' : '';
|
|
350
|
+
var secondsString = seconds || '0' + (cents ? '.' + cents : '') + 'S';
|
|
351
|
+
var hms = [hoursString, minutesString, secondsString].join('');
|
|
352
|
+
return 'P' + daysString + 'T' + hms;
|
|
353
|
+
};
|
|
354
|
+
var convertMsToCMITimespan = function (milliseconds) {
|
|
355
|
+
var _a = getDurationData(milliseconds), seconds = _a.seconds, minutes = _a.minutes, hours = _a.hours;
|
|
356
|
+
return hours + ":" + minutes % 60 + ":" + seconds % 60;
|
|
357
|
+
};
|
|
358
|
+
var getDurationData = function (milliseconds) {
|
|
359
|
+
var cents = Math.floor(milliseconds / 10);
|
|
360
|
+
var seconds = Math.floor(milliseconds / 1000);
|
|
361
|
+
var minutes = Math.floor(seconds / 60);
|
|
362
|
+
var hours = Math.floor(minutes / 60);
|
|
363
|
+
var days = Math.floor(hours / 24);
|
|
364
|
+
return { days: days, hours: hours, minutes: minutes, seconds: seconds, cents: cents };
|
|
365
|
+
};
|
package/lib/loadContent.js
CHANGED
|
@@ -117,7 +117,10 @@ function loadContent() {
|
|
|
117
117
|
}
|
|
118
118
|
var sourceOrigin = sourceUrlParser.protocol + "//" + host;
|
|
119
119
|
new MessageReceiver(window, sourceOrigin, ADAPTER);
|
|
120
|
+
var sessionStart = new Date().getTime();
|
|
120
121
|
window.addEventListener("beforeunload", function (e) {
|
|
122
|
+
var sessionEnd = new Date().getTime();
|
|
123
|
+
ADAPTER.setSessionTime(sessionEnd - sessionStart);
|
|
121
124
|
ADAPTER.LMSTerminate();
|
|
122
125
|
});
|
|
123
126
|
}
|