scorm-again 2.1.0 → 2.2.0

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/scorm12.js CHANGED
@@ -1044,6 +1044,7 @@ var DefaultSettings = {
1044
1044
  logLevel: api_constants.global.LOG_LEVEL_ERROR,
1045
1045
  selfReportSessionTime: false,
1046
1046
  alwaysSendTotalTime: false,
1047
+ renderCommonCommitFields: false,
1047
1048
  strict_errors: true,
1048
1049
  xhrHeaders: {},
1049
1050
  xhrWithCredentials: false,
@@ -3017,6 +3018,26 @@ var NAV = (function (_super) {
3017
3018
  }(BaseCMI));
3018
3019
 
3019
3020
 
3021
+ ;// ./src/constants/enums.ts
3022
+ var NAVBoolean;
3023
+ (function (NAVBoolean) {
3024
+ NAVBoolean["unknown"] = "unknown";
3025
+ NAVBoolean["true"] = "true";
3026
+ NAVBoolean["false"] = "false";
3027
+ })(NAVBoolean || (NAVBoolean = {}));
3028
+ var SuccessStatus;
3029
+ (function (SuccessStatus) {
3030
+ SuccessStatus["passed"] = "passed";
3031
+ SuccessStatus["failed"] = "failed";
3032
+ SuccessStatus["unknown"] = "unknown";
3033
+ })(SuccessStatus || (SuccessStatus = {}));
3034
+ var CompletionStatus;
3035
+ (function (CompletionStatus) {
3036
+ CompletionStatus["completed"] = "completed";
3037
+ CompletionStatus["incomplete"] = "incomplete";
3038
+ CompletionStatus["unknown"] = "unknown";
3039
+ })(CompletionStatus || (CompletionStatus = {}));
3040
+
3020
3041
  ;// ./src/Scorm12API.ts
3021
3042
 
3022
3043
 
@@ -3028,6 +3049,8 @@ var NAV = (function (_super) {
3028
3049
 
3029
3050
 
3030
3051
 
3052
+
3053
+
3031
3054
  var Scorm12API = (function (_super) {
3032
3055
  __extends(Scorm12API, _super);
3033
3056
  function Scorm12API(settings) {
@@ -3201,9 +3224,53 @@ var Scorm12API = (function (_super) {
3201
3224
  return cmiExport;
3202
3225
  }
3203
3226
  };
3227
+ Scorm12API.prototype.renderCommitObject = function (terminateCommit) {
3228
+ var cmiExport = this.renderCommitCMI(terminateCommit);
3229
+ var totalTimeHHMMSS = this.cmi.getCurrentTotalTime();
3230
+ var totalTimeSeconds = getTimeAsSeconds(totalTimeHHMMSS, regex.scorm12.CMITimespan);
3231
+ var lessonStatus = this.cmi.core.lesson_status;
3232
+ var completionStatus = CompletionStatus.unknown;
3233
+ var successStatus = SuccessStatus.unknown;
3234
+ if (lessonStatus) {
3235
+ completionStatus =
3236
+ lessonStatus === "completed" || lessonStatus === "passed"
3237
+ ? CompletionStatus.completed
3238
+ : CompletionStatus.incomplete;
3239
+ if (lessonStatus === "passed") {
3240
+ successStatus = SuccessStatus.passed;
3241
+ }
3242
+ else if (lessonStatus === "failed") {
3243
+ successStatus = SuccessStatus.failed;
3244
+ }
3245
+ }
3246
+ var score = this.cmi.core.score;
3247
+ var scoreObject = null;
3248
+ if (score) {
3249
+ scoreObject = {};
3250
+ if (!Number.isNaN(Number.parseFloat(score.raw))) {
3251
+ scoreObject.raw = Number.parseFloat(score.raw);
3252
+ }
3253
+ if (!Number.isNaN(Number.parseFloat(score.min))) {
3254
+ scoreObject.min = Number.parseFloat(score.min);
3255
+ }
3256
+ if (!Number.isNaN(Number.parseFloat(score.max))) {
3257
+ scoreObject.max = Number.parseFloat(score.max);
3258
+ }
3259
+ }
3260
+ var commitObject = {
3261
+ successStatus: successStatus,
3262
+ completionStatus: completionStatus,
3263
+ runtimeData: cmiExport,
3264
+ totalTimeSeconds: totalTimeSeconds,
3265
+ };
3266
+ if (scoreObject) {
3267
+ commitObject.score = scoreObject;
3268
+ }
3269
+ return commitObject;
3270
+ };
3204
3271
  Scorm12API.prototype.storeData = function (terminateCommit) {
3205
3272
  return __awaiter(this, void 0, void 0, function () {
3206
- var originalStatus, commitObject;
3273
+ var originalStatus, shouldTerminateCommit, commitObject;
3207
3274
  var _a, _b, _c;
3208
3275
  return __generator(this, function (_d) {
3209
3276
  switch (_d.label) {
@@ -3235,7 +3302,10 @@ var Scorm12API = (function (_super) {
3235
3302
  }
3236
3303
  }
3237
3304
  }
3238
- commitObject = this.renderCommitCMI(terminateCommit || this.settings.alwaysSendTotalTime);
3305
+ shouldTerminateCommit = terminateCommit || this.settings.alwaysSendTotalTime;
3306
+ commitObject = this.settings.renderCommonCommitFields
3307
+ ? this.renderCommitObject(shouldTerminateCommit)
3308
+ : this.renderCommitCMI(shouldTerminateCommit);
3239
3309
  if (this.apiLogLevel === api_constants.global.LOG_LEVEL_DEBUG) {
3240
3310
  console.debug("Commit (terminated: " + (terminateCommit ? "yes" : "no") + "): ");
3241
3311
  console.debug(commitObject);