@pie-element/match-list 5.3.4-next.3 → 6.0.0-beta.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.
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
7
- var _default = {
6
+ exports.default = void 0;
7
+ var _default = exports.default = {
8
8
  config: {
9
9
  answers: [],
10
10
  prompt: '',
@@ -12,5 +12,4 @@ var _default = {
12
12
  shuffled: false
13
13
  }
14
14
  };
15
- exports["default"] = _default;
16
15
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["config","answers","prompt","prompts","shuffled"],"mappings":";;;;;;eAAe;AACbA,EAAAA,MAAM,EAAE;AACNC,IAAAA,OAAO,EAAE,EADH;AAENC,IAAAA,MAAM,EAAE,EAFF;AAGNC,IAAAA,OAAO,EAAE,EAHH;AAINC,IAAAA,QAAQ,EAAE;AAJJ;AADK,C","sourcesContent":["export default {\n config: {\n answers: [],\n prompt: '',\n prompts: [],\n shuffled: false,\n },\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"file":"defaults.js","names":["config","answers","prompt","prompts","shuffled"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n config: {\n answers: [],\n prompt: '',\n prompts: [],\n shuffled: false,\n },\n};\n"],"mappings":";;;;;;iCAAe;EACbA,MAAM,EAAE;IACNC,OAAO,EAAE,EAAE;IACXC,MAAM,EAAE,EAAE;IACVC,OAAO,EAAE,EAAE;IACXC,QAAQ,EAAE;EACZ;AACF,CAAC","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
@@ -9,41 +8,20 @@ exports.createCorrectResponseSession = void 0;
9
8
  exports.createDefaultModel = createDefaultModel;
10
9
  exports.model = model;
11
10
  exports.outcome = exports.normalize = void 0;
12
-
13
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
-
15
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
16
-
17
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
-
19
11
  var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
20
-
21
12
  var _feedback = require("@pie-lib/feedback");
22
-
23
13
  var _controllerUtils = require("@pie-lib/controller-utils");
24
-
25
14
  var _debug = _interopRequireDefault(require("debug"));
26
-
27
15
  var _defaults = _interopRequireDefault(require("./defaults"));
28
-
29
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
-
31
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
32
-
33
- var log = (0, _debug["default"])('@pie-element:match-list:controller');
34
-
35
- var getResponseCorrectness = function getResponseCorrectness(model, answers, env) {
36
- var isPartialScoring = _controllerUtils.partialScoring.enabled(model, env);
37
-
38
- var prompts = model.prompts;
39
-
16
+ const log = (0, _debug.default)('@pie-element:match-list:controller');
17
+ const getResponseCorrectness = (model, answers, env) => {
18
+ const isPartialScoring = _controllerUtils.partialScoring.enabled(model, env);
19
+ const prompts = model.prompts;
40
20
  if (!answers || Object.keys(answers).length === 0) {
41
21
  return 'unanswered';
42
22
  }
43
-
44
- var totalCorrectAnswers = getTotalCorrect(model);
45
- var correctAnswers = getCorrectSelected(prompts, answers);
46
-
23
+ const totalCorrectAnswers = getTotalCorrect(model);
24
+ const correctAnswers = getCorrectSelected(prompts, answers);
47
25
  if (totalCorrectAnswers === correctAnswers) {
48
26
  return 'correct';
49
27
  } else if (correctAnswers === 0) {
@@ -51,58 +29,49 @@ var getResponseCorrectness = function getResponseCorrectness(model, answers, env
51
29
  } else if (isPartialScoring) {
52
30
  return 'partial';
53
31
  }
54
-
55
32
  return 'incorrect';
56
33
  };
57
-
58
- var getCorrectness = function getCorrectness(question, env, answers) {
34
+ const getCorrectness = (question, env, answers) => {
59
35
  if (env.mode === 'evaluate') {
60
36
  return getResponseCorrectness(question, answers, env);
61
37
  }
62
38
  };
63
-
64
- var getCorrectSelected = function getCorrectSelected() {
65
- var prompts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
66
- var answers = arguments.length > 1 ? arguments[1] : undefined;
67
- var correctAnswers = 0;
68
- prompts.forEach(function (p) {
39
+ const getCorrectSelected = (prompts = [], answers) => {
40
+ let correctAnswers = 0;
41
+ prompts.forEach(p => {
69
42
  if (p.relatedAnswer === answers[p.id]) {
70
43
  correctAnswers += 1;
71
44
  }
72
45
  });
73
46
  return correctAnswers;
74
47
  };
75
-
76
- var getTotalCorrect = function getTotalCorrect(question) {
48
+ const getTotalCorrect = question => {
77
49
  return question && question.prompts ? question.prompts.length : 0;
78
50
  };
79
-
80
- var getPartialScore = function getPartialScore(question, answers) {
81
- var count = getCorrectSelected(question && question.prompts, answers);
82
- var totalCorrect = getTotalCorrect(question);
51
+ const getPartialScore = (question, answers) => {
52
+ const count = getCorrectSelected(question && question.prompts, answers);
53
+ const totalCorrect = getTotalCorrect(question);
83
54
  return parseFloat((count / totalCorrect).toFixed(2));
84
55
  };
85
-
86
- var getOutComeScore = function getOutComeScore(question, env, answers) {
87
- var correctness = getCorrectness(question, env, answers);
56
+ const getOutComeScore = (question, env, answers) => {
57
+ const correctness = getCorrectness(question, env, answers);
88
58
  return correctness === 'correct' ? 1 : correctness === 'partial' && true ? getPartialScore(question, answers) : 0;
89
59
  };
90
-
91
- var outcome = function outcome(question, session, env) {
92
- return new Promise(function (resolve) {
60
+ const outcome = (question, session, env) => {
61
+ return new Promise(resolve => {
93
62
  if (env.mode !== 'evaluate') {
94
63
  resolve({
95
64
  score: undefined,
96
65
  completed: undefined
97
66
  });
98
67
  } else {
99
- if (!session || (0, _isEmpty["default"])(session)) {
68
+ if (!session || (0, _isEmpty.default)(session)) {
100
69
  resolve({
101
70
  score: 0,
102
71
  empty: true
103
72
  });
104
73
  } else {
105
- var out = {
74
+ const out = {
106
75
  score: getOutComeScore(question, env, session.value)
107
76
  };
108
77
  resolve(out);
@@ -110,19 +79,20 @@ var outcome = function outcome(question, session, env) {
110
79
  }
111
80
  });
112
81
  };
113
-
114
82
  exports.outcome = outcome;
115
-
116
- function createDefaultModel() {
117
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
118
- return new Promise(function (resolve) {
119
- resolve(_objectSpread(_objectSpread({}, _defaults["default"]), model));
83
+ function createDefaultModel(model = {}) {
84
+ return new Promise(resolve => {
85
+ resolve({
86
+ ..._defaults.default,
87
+ ...model
88
+ });
120
89
  });
121
90
  }
91
+ const normalize = model => ({
92
+ ..._defaults.default,
93
+ ...model
94
+ });
122
95
 
123
- var normalize = function normalize(model) {
124
- return _objectSpread(_objectSpread({}, _defaults["default"]), model);
125
- };
126
96
  /**
127
97
  *
128
98
  * @param {*} question
@@ -130,133 +100,86 @@ var normalize = function normalize(model) {
130
100
  * @param {*} env
131
101
  * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.
132
102
  */
133
-
134
-
135
103
  exports.normalize = normalize;
136
-
137
- function model(question, session, env, updateSession) {
138
- return new Promise( /*#__PURE__*/function () {
139
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(resolve) {
140
- var correctness, correctResponse, score, correctInfo, shuffledValues, prompts, answers, us, lockChoiceOrder, fb;
141
- return _regenerator["default"].wrap(function _callee$(_context) {
142
- while (1) {
143
- switch (_context.prev = _context.next) {
144
- case 0:
145
- question = normalize(question);
146
- correctness = getCorrectness(question, env, session && session.value);
147
- correctResponse = {};
148
- score = "".concat(getOutComeScore(question, env, session && session.value) * 100, "%");
149
- correctInfo = {
150
- score: score,
151
- correctness: correctness
152
- };
153
- shuffledValues = {};
154
- prompts = question.prompts;
155
- answers = question.answers;
156
-
157
- us = function us(part) {
158
- return function (id, element, update) {
159
- return new Promise(function (resolve) {
160
- shuffledValues[part] = update.shuffledValues;
161
- resolve();
162
- });
163
- };
164
- };
165
-
166
- lockChoiceOrder = (0, _controllerUtils.lockChoices)(question, session, env);
167
-
168
- if (lockChoiceOrder) {
169
- _context.next = 17;
170
- break;
171
- }
172
-
173
- _context.next = 13;
174
- return (0, _controllerUtils.getShuffledChoices)(prompts, {
175
- shuffledValues: (session && session.shuffledValues || {}).prompts
176
- }, us('prompts'), 'id');
177
-
178
- case 13:
179
- prompts = _context.sent;
180
- _context.next = 16;
181
- return (0, _controllerUtils.getShuffledChoices)(answers, {
182
- shuffledValues: (session && session.shuffledValues || {}).answers
183
- }, us('answers'), 'id');
184
-
185
- case 16:
186
- answers = _context.sent;
187
-
188
- case 17:
189
- if (!(0, _isEmpty["default"])(shuffledValues)) {
190
- if (updateSession && typeof updateSession === 'function') {
191
- updateSession(session.id, session.element, {
192
- shuffledValues: shuffledValues
193
- })["catch"](function (e) {
194
- // eslint-disable-next-line no-console
195
- console.error('update session failed', e);
196
- });
197
- }
198
- }
199
-
200
- if (question && prompts) {
201
- prompts.forEach(function (prompt) {
202
- correctResponse[prompt.id] = prompt.relatedAnswer;
203
- });
204
- }
205
-
206
- fb = env.mode === 'evaluate' ? (0, _feedback.getFeedbackForCorrectness)(correctInfo.correctness, question.feedback) : Promise.resolve(undefined);
207
- fb.then(function (feedback) {
208
- var base = {
209
- config: _objectSpread(_objectSpread({}, question), {}, {
210
- prompts: prompts,
211
- answers: answers
212
- }),
213
- correctness: correctInfo,
214
- feedback: feedback,
215
- mode: env.mode
216
- };
217
-
218
- if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
219
- base.rationale = question.rationale;
220
- } else {
221
- base.rationale = null;
222
- }
223
-
224
- var out = Object.assign(base, {
225
- correctResponse: correctResponse
226
- });
227
- log('out: ', out);
228
- resolve(out);
229
- });
230
-
231
- case 21:
232
- case "end":
233
- return _context.stop();
234
- }
235
- }
236
- }, _callee);
237
- }));
238
-
239
- return function (_x) {
240
- return _ref.apply(this, arguments);
241
- };
242
- }());
104
+ async function model(question, session, env, updateSession) {
105
+ question = normalize(question);
106
+ const correctness = getCorrectness(question, env, session && session.value);
107
+ const correctResponse = {};
108
+ const score = `${getOutComeScore(question, env, session && session.value) * 100}%`;
109
+ const correctInfo = {
110
+ score,
111
+ correctness
112
+ };
113
+ const shuffledValues = {};
114
+ let prompts = question.prompts;
115
+ let answers = question.answers;
116
+ const us = part => (id, element, update) => {
117
+ return new Promise(resolve => {
118
+ shuffledValues[part] = update.shuffledValues;
119
+ resolve();
120
+ });
121
+ };
122
+ const lockChoiceOrder = (0, _controllerUtils.lockChoices)(question, session, env);
123
+ if (!lockChoiceOrder) {
124
+ prompts = await (0, _controllerUtils.getShuffledChoices)(prompts, {
125
+ shuffledValues: (session && session.shuffledValues || {}).prompts
126
+ }, us('prompts'), 'id');
127
+ answers = await (0, _controllerUtils.getShuffledChoices)(answers, {
128
+ shuffledValues: (session && session.shuffledValues || {}).answers
129
+ }, us('answers'), 'id');
130
+ }
131
+ if (!(0, _isEmpty.default)(shuffledValues)) {
132
+ if (updateSession && typeof updateSession === 'function') {
133
+ updateSession(session.id, session.element, {
134
+ shuffledValues
135
+ }).catch(e => {
136
+ // eslint-disable-next-line no-console
137
+ console.error('update session failed', e);
138
+ });
139
+ }
140
+ }
141
+ if (question && prompts) {
142
+ prompts.forEach(prompt => {
143
+ correctResponse[prompt.id] = prompt.relatedAnswer;
144
+ });
145
+ }
146
+ const feedback = env.mode === 'evaluate' ? await (0, _feedback.getFeedbackForCorrectness)(correctInfo.correctness, question.feedback) : undefined;
147
+ const base = {
148
+ config: {
149
+ ...question,
150
+ prompts,
151
+ answers
152
+ },
153
+ correctness: correctInfo,
154
+ feedback,
155
+ mode: env.mode
156
+ };
157
+ if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
158
+ base.rationale = question.rationale;
159
+ } else {
160
+ base.rationale = null;
161
+ }
162
+ const out = Object.assign(base, {
163
+ correctResponse
164
+ });
165
+ log('out: ', out);
166
+ return out;
243
167
  }
244
-
245
- var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
246
- return new Promise(function (resolve) {
168
+ const createCorrectResponseSession = (question, env) => {
169
+ return new Promise(resolve => {
247
170
  if (env.mode !== 'evaluate' && env.role === 'instructor') {
248
- var prompts = question.prompts,
249
- answers = question.answers;
250
- var value = {};
251
- prompts.forEach(function (p) {
252
- if (answers.filter(function (a) {
253
- return a.id === p.relatedAnswer;
254
- }).length) {
171
+ const {
172
+ prompts,
173
+ answers
174
+ } = question;
175
+ const value = {};
176
+ prompts.forEach(p => {
177
+ if (answers.filter(a => a.id === p.relatedAnswer).length) {
255
178
  value[p.id] = p.relatedAnswer;
256
179
  }
257
180
  });
258
181
  resolve({
259
- value: value,
182
+ value,
260
183
  id: '1'
261
184
  });
262
185
  } else {
@@ -264,6 +187,5 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
264
187
  }
265
188
  });
266
189
  };
267
-
268
190
  exports.createCorrectResponseSession = createCorrectResponseSession;
269
191
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","getResponseCorrectness","model","answers","env","isPartialScoring","partialScoring","enabled","prompts","Object","keys","length","totalCorrectAnswers","getTotalCorrect","correctAnswers","getCorrectSelected","getCorrectness","question","mode","forEach","p","relatedAnswer","id","getPartialScore","count","totalCorrect","parseFloat","toFixed","getOutComeScore","correctness","outcome","session","Promise","resolve","score","undefined","completed","empty","out","value","createDefaultModel","defaults","normalize","updateSession","correctResponse","correctInfo","shuffledValues","us","part","element","update","lockChoiceOrder","e","console","error","prompt","fb","feedback","then","base","config","role","rationale","assign","createCorrectResponseSession","filter","a"],"mappings":"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","sourcesContent":["import isEmpty from 'lodash/isEmpty';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:match-list:controller');\n\nimport defaults from './defaults';\n\nconst getResponseCorrectness = (model, answers, env) => {\n const isPartialScoring = partialScoring.enabled(model, env);\n const prompts = model.prompts;\n\n if (!answers || Object.keys(answers).length === 0) {\n return 'unanswered';\n }\n\n const totalCorrectAnswers = getTotalCorrect(model);\n const correctAnswers = getCorrectSelected(prompts, answers);\n\n if (totalCorrectAnswers === correctAnswers) {\n return 'correct';\n } else if (correctAnswers === 0) {\n return 'incorrect';\n } else if (isPartialScoring) {\n return 'partial';\n }\n\n return 'incorrect';\n};\n\nconst getCorrectness = (question, env, answers) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, answers, env);\n }\n};\n\nconst getCorrectSelected = (prompts = [], answers) => {\n let correctAnswers = 0;\n\n prompts.forEach((p) => {\n if (p.relatedAnswer === answers[p.id]) {\n correctAnswers += 1;\n }\n });\n\n return correctAnswers;\n};\n\nconst getTotalCorrect = (question) => {\n return question && question.prompts ? question.prompts.length : 0;\n};\n\nconst getPartialScore = (question, answers) => {\n const count = getCorrectSelected(question && question.prompts, answers);\n const totalCorrect = getTotalCorrect(question);\n\n return parseFloat((count / totalCorrect).toFixed(2));\n};\n\nconst getOutComeScore = (question, env, answers) => {\n const correctness = getCorrectness(question, env, answers);\n\n return correctness === 'correct' ? 1 : correctness === 'partial' && true ? getPartialScore(question, answers) : 0;\n};\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n } else {\n const out = {\n score: getOutComeScore(question, env, session.value),\n };\n\n resolve(out);\n }\n }\n });\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n}\n\nexport const normalize = (model) => ({ ...defaults, ...model });\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async (resolve) => {\n question = normalize(question);\n const correctness = getCorrectness(question, env, session && session.value);\n const correctResponse = {};\n const score = `${getOutComeScore(question, env, session && session.value) * 100}%`;\n const correctInfo = {\n score,\n correctness,\n };\n\n const shuffledValues = {};\n let prompts = question.prompts;\n let answers = question.answers;\n\n const us = (part) => (id, element, update) => {\n return new Promise((resolve) => {\n shuffledValues[part] = update.shuffledValues;\n resolve();\n });\n };\n\n const lockChoiceOrder = lockChoices(question, session, env);\n\n if (!lockChoiceOrder) {\n prompts = await getShuffledChoices(\n prompts,\n { shuffledValues: ((session && session.shuffledValues) || {}).prompts },\n us('prompts'),\n 'id',\n );\n answers = await getShuffledChoices(\n answers,\n { shuffledValues: ((session && session.shuffledValues) || {}).answers },\n us('answers'),\n 'id',\n );\n }\n\n if (!isEmpty(shuffledValues)) {\n if (updateSession && typeof updateSession === 'function') {\n updateSession(session.id, session.element, {\n shuffledValues,\n }).catch((e) => {\n // eslint-disable-next-line no-console\n console.error('update session failed', e);\n });\n }\n }\n\n if (question && prompts) {\n prompts.forEach((prompt) => {\n correctResponse[prompt.id] = prompt.relatedAnswer;\n });\n }\n\n const fb =\n env.mode === 'evaluate'\n ? getFeedbackForCorrectness(correctInfo.correctness, question.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedback) => {\n const base = {\n config: {\n ...question,\n prompts,\n answers,\n },\n correctness: correctInfo,\n feedback,\n mode: env.mode,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = question.rationale;\n } else {\n base.rationale = null;\n }\n\n const out = Object.assign(base, {\n correctResponse,\n });\n\n log('out: ', out);\n resolve(out);\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { prompts, answers } = question;\n const value = {};\n\n prompts.forEach((p) => {\n if (answers.filter((a) => a.id === p.relatedAnswer).length) {\n value[p.id] = p.relatedAnswer;\n }\n });\n\n resolve({\n value,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_isEmpty","_interopRequireDefault","require","_feedback","_controllerUtils","_debug","_defaults","log","debug","getResponseCorrectness","model","answers","env","isPartialScoring","partialScoring","enabled","prompts","Object","keys","length","totalCorrectAnswers","getTotalCorrect","correctAnswers","getCorrectSelected","getCorrectness","question","mode","forEach","p","relatedAnswer","id","getPartialScore","count","totalCorrect","parseFloat","toFixed","getOutComeScore","correctness","outcome","session","Promise","resolve","score","undefined","completed","isEmpty","empty","out","value","exports","createDefaultModel","defaults","normalize","updateSession","correctResponse","correctInfo","shuffledValues","us","part","element","update","lockChoiceOrder","lockChoices","getShuffledChoices","catch","e","console","error","prompt","feedback","getFeedbackForCorrectness","base","config","role","rationale","assign","createCorrectResponseSession","filter","a"],"sources":["../src/index.js"],"sourcesContent":["import isEmpty from 'lodash/isEmpty';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { lockChoices, getShuffledChoices, partialScoring } from '@pie-lib/controller-utils';\nimport debug from 'debug';\n\nconst log = debug('@pie-element:match-list:controller');\n\nimport defaults from './defaults';\n\nconst getResponseCorrectness = (model, answers, env) => {\n const isPartialScoring = partialScoring.enabled(model, env);\n const prompts = model.prompts;\n\n if (!answers || Object.keys(answers).length === 0) {\n return 'unanswered';\n }\n\n const totalCorrectAnswers = getTotalCorrect(model);\n const correctAnswers = getCorrectSelected(prompts, answers);\n\n if (totalCorrectAnswers === correctAnswers) {\n return 'correct';\n } else if (correctAnswers === 0) {\n return 'incorrect';\n } else if (isPartialScoring) {\n return 'partial';\n }\n\n return 'incorrect';\n};\n\nconst getCorrectness = (question, env, answers) => {\n if (env.mode === 'evaluate') {\n return getResponseCorrectness(question, answers, env);\n }\n};\n\nconst getCorrectSelected = (prompts = [], answers) => {\n let correctAnswers = 0;\n\n prompts.forEach((p) => {\n if (p.relatedAnswer === answers[p.id]) {\n correctAnswers += 1;\n }\n });\n\n return correctAnswers;\n};\n\nconst getTotalCorrect = (question) => {\n return question && question.prompts ? question.prompts.length : 0;\n};\n\nconst getPartialScore = (question, answers) => {\n const count = getCorrectSelected(question && question.prompts, answers);\n const totalCorrect = getTotalCorrect(question);\n\n return parseFloat((count / totalCorrect).toFixed(2));\n};\n\nconst getOutComeScore = (question, env, answers) => {\n const correctness = getCorrectness(question, env, answers);\n\n return correctness === 'correct' ? 1 : correctness === 'partial' && true ? getPartialScore(question, answers) : 0;\n};\n\nexport const outcome = (question, session, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n } else {\n const out = {\n score: getOutComeScore(question, env, session.value),\n };\n\n resolve(out);\n }\n }\n });\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n}\n\nexport const normalize = (model) => ({ ...defaults, ...model });\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport async function model(question, session, env, updateSession) {\n question = normalize(question);\n const correctness = getCorrectness(question, env, session && session.value);\n const correctResponse = {};\n const score = `${getOutComeScore(question, env, session && session.value) * 100}%`;\n const correctInfo = {\n score,\n correctness,\n };\n\n const shuffledValues = {};\n let prompts = question.prompts;\n let answers = question.answers;\n\n const us = (part) => (id, element, update) => {\n return new Promise((resolve) => {\n shuffledValues[part] = update.shuffledValues;\n resolve();\n });\n };\n\n const lockChoiceOrder = lockChoices(question, session, env);\n\n if (!lockChoiceOrder) {\n prompts = await getShuffledChoices(\n prompts,\n { shuffledValues: ((session && session.shuffledValues) || {}).prompts },\n us('prompts'),\n 'id',\n );\n answers = await getShuffledChoices(\n answers,\n { shuffledValues: ((session && session.shuffledValues) || {}).answers },\n us('answers'),\n 'id',\n );\n }\n\n if (!isEmpty(shuffledValues)) {\n if (updateSession && typeof updateSession === 'function') {\n updateSession(session.id, session.element, {\n shuffledValues,\n }).catch((e) => {\n // eslint-disable-next-line no-console\n console.error('update session failed', e);\n });\n }\n }\n\n if (question && prompts) {\n prompts.forEach((prompt) => {\n correctResponse[prompt.id] = prompt.relatedAnswer;\n });\n }\n\n const feedback =\n env.mode === 'evaluate'\n ? await getFeedbackForCorrectness(correctInfo.correctness, question.feedback)\n : undefined;\n\n const base = {\n config: {\n ...question,\n prompts,\n answers,\n },\n correctness: correctInfo,\n feedback,\n mode: env.mode,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = question.rationale;\n } else {\n base.rationale = null;\n }\n\n const out = Object.assign(base, {\n correctResponse,\n });\n\n log('out: ', out);\n return out;\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { prompts, answers } = question;\n const value = {};\n\n prompts.forEach((p) => {\n if (answers.filter((a) => a.id === p.relatedAnswer).length) {\n value[p.id] = p.relatedAnswer;\n }\n });\n\n resolve({\n value,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAIA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AAFA,MAAMK,GAAG,GAAG,IAAAC,cAAK,EAAC,oCAAoC,CAAC;AAIvD,MAAMC,sBAAsB,GAAGA,CAACC,KAAK,EAAEC,OAAO,EAAEC,GAAG,KAAK;EACtD,MAAMC,gBAAgB,GAAGC,+BAAc,CAACC,OAAO,CAACL,KAAK,EAAEE,GAAG,CAAC;EAC3D,MAAMI,OAAO,GAAGN,KAAK,CAACM,OAAO;EAE7B,IAAI,CAACL,OAAO,IAAIM,MAAM,CAACC,IAAI,CAACP,OAAO,CAAC,CAACQ,MAAM,KAAK,CAAC,EAAE;IACjD,OAAO,YAAY;EACrB;EAEA,MAAMC,mBAAmB,GAAGC,eAAe,CAACX,KAAK,CAAC;EAClD,MAAMY,cAAc,GAAGC,kBAAkB,CAACP,OAAO,EAAEL,OAAO,CAAC;EAE3D,IAAIS,mBAAmB,KAAKE,cAAc,EAAE;IAC1C,OAAO,SAAS;EAClB,CAAC,MAAM,IAAIA,cAAc,KAAK,CAAC,EAAE;IAC/B,OAAO,WAAW;EACpB,CAAC,MAAM,IAAIT,gBAAgB,EAAE;IAC3B,OAAO,SAAS;EAClB;EAEA,OAAO,WAAW;AACpB,CAAC;AAED,MAAMW,cAAc,GAAGA,CAACC,QAAQ,EAAEb,GAAG,EAAED,OAAO,KAAK;EACjD,IAAIC,GAAG,CAACc,IAAI,KAAK,UAAU,EAAE;IAC3B,OAAOjB,sBAAsB,CAACgB,QAAQ,EAAEd,OAAO,EAAEC,GAAG,CAAC;EACvD;AACF,CAAC;AAED,MAAMW,kBAAkB,GAAGA,CAACP,OAAO,GAAG,EAAE,EAAEL,OAAO,KAAK;EACpD,IAAIW,cAAc,GAAG,CAAC;EAEtBN,OAAO,CAACW,OAAO,CAAEC,CAAC,IAAK;IACrB,IAAIA,CAAC,CAACC,aAAa,KAAKlB,OAAO,CAACiB,CAAC,CAACE,EAAE,CAAC,EAAE;MACrCR,cAAc,IAAI,CAAC;IACrB;EACF,CAAC,CAAC;EAEF,OAAOA,cAAc;AACvB,CAAC;AAED,MAAMD,eAAe,GAAII,QAAQ,IAAK;EACpC,OAAOA,QAAQ,IAAIA,QAAQ,CAACT,OAAO,GAAGS,QAAQ,CAACT,OAAO,CAACG,MAAM,GAAG,CAAC;AACnE,CAAC;AAED,MAAMY,eAAe,GAAGA,CAACN,QAAQ,EAAEd,OAAO,KAAK;EAC7C,MAAMqB,KAAK,GAAGT,kBAAkB,CAACE,QAAQ,IAAIA,QAAQ,CAACT,OAAO,EAAEL,OAAO,CAAC;EACvE,MAAMsB,YAAY,GAAGZ,eAAe,CAACI,QAAQ,CAAC;EAE9C,OAAOS,UAAU,CAAC,CAACF,KAAK,GAAGC,YAAY,EAAEE,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAMC,eAAe,GAAGA,CAACX,QAAQ,EAAEb,GAAG,EAAED,OAAO,KAAK;EAClD,MAAM0B,WAAW,GAAGb,cAAc,CAACC,QAAQ,EAAEb,GAAG,EAAED,OAAO,CAAC;EAE1D,OAAO0B,WAAW,KAAK,SAAS,GAAG,CAAC,GAAGA,WAAW,KAAK,SAAS,IAAI,IAAI,GAAGN,eAAe,CAACN,QAAQ,EAAEd,OAAO,CAAC,GAAG,CAAC;AACnH,CAAC;AAEM,MAAM2B,OAAO,GAAGA,CAACb,QAAQ,EAAEc,OAAO,EAAE3B,GAAG,KAAK;EACjD,OAAO,IAAI4B,OAAO,CAAEC,OAAO,IAAK;IAC9B,IAAI7B,GAAG,CAACc,IAAI,KAAK,UAAU,EAAE;MAC3Be,OAAO,CAAC;QAAEC,KAAK,EAAEC,SAAS;QAAEC,SAAS,EAAED;MAAU,CAAC,CAAC;IACrD,CAAC,MAAM;MACL,IAAI,CAACJ,OAAO,IAAI,IAAAM,gBAAO,EAACN,OAAO,CAAC,EAAE;QAChCE,OAAO,CAAC;UAAEC,KAAK,EAAE,CAAC;UAAEI,KAAK,EAAE;QAAK,CAAC,CAAC;MACpC,CAAC,MAAM;QACL,MAAMC,GAAG,GAAG;UACVL,KAAK,EAAEN,eAAe,CAACX,QAAQ,EAAEb,GAAG,EAAE2B,OAAO,CAACS,KAAK;QACrD,CAAC;QAEDP,OAAO,CAACM,GAAG,CAAC;MACd;IACF;EACF,CAAC,CAAC;AACJ,CAAC;AAACE,OAAA,CAAAX,OAAA,GAAAA,OAAA;AAEK,SAASY,kBAAkBA,CAACxC,KAAK,GAAG,CAAC,CAAC,EAAE;EAC7C,OAAO,IAAI8B,OAAO,CAAEC,OAAO,IAAK;IAC9BA,OAAO,CAAC;MACN,GAAGU,iBAAQ;MACX,GAAGzC;IACL,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEO,MAAM0C,SAAS,GAAI1C,KAAK,KAAM;EAAE,GAAGyC,iBAAQ;EAAE,GAAGzC;AAAM,CAAC,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AANAuC,OAAA,CAAAG,SAAA,GAAAA,SAAA;AAOO,eAAe1C,KAAKA,CAACe,QAAQ,EAAEc,OAAO,EAAE3B,GAAG,EAAEyC,aAAa,EAAE;EACjE5B,QAAQ,GAAG2B,SAAS,CAAC3B,QAAQ,CAAC;EAC9B,MAAMY,WAAW,GAAGb,cAAc,CAACC,QAAQ,EAAEb,GAAG,EAAE2B,OAAO,IAAIA,OAAO,CAACS,KAAK,CAAC;EAC3E,MAAMM,eAAe,GAAG,CAAC,CAAC;EAC1B,MAAMZ,KAAK,GAAG,GAAGN,eAAe,CAACX,QAAQ,EAAEb,GAAG,EAAE2B,OAAO,IAAIA,OAAO,CAACS,KAAK,CAAC,GAAG,GAAG,GAAG;EAClF,MAAMO,WAAW,GAAG;IAClBb,KAAK;IACLL;EACF,CAAC;EAED,MAAMmB,cAAc,GAAG,CAAC,CAAC;EACzB,IAAIxC,OAAO,GAAGS,QAAQ,CAACT,OAAO;EAC9B,IAAIL,OAAO,GAAGc,QAAQ,CAACd,OAAO;EAE9B,MAAM8C,EAAE,GAAIC,IAAI,IAAK,CAAC5B,EAAE,EAAE6B,OAAO,EAAEC,MAAM,KAAK;IAC5C,OAAO,IAAIpB,OAAO,CAAEC,OAAO,IAAK;MAC9Be,cAAc,CAACE,IAAI,CAAC,GAAGE,MAAM,CAACJ,cAAc;MAC5Cf,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;EACJ,CAAC;EAED,MAAMoB,eAAe,GAAG,IAAAC,4BAAW,EAACrC,QAAQ,EAAEc,OAAO,EAAE3B,GAAG,CAAC;EAE3D,IAAI,CAACiD,eAAe,EAAE;IACpB7C,OAAO,GAAG,MAAM,IAAA+C,mCAAkB,EAChC/C,OAAO,EACP;MAAEwC,cAAc,EAAE,CAAEjB,OAAO,IAAIA,OAAO,CAACiB,cAAc,IAAK,CAAC,CAAC,EAAExC;IAAQ,CAAC,EACvEyC,EAAE,CAAC,SAAS,CAAC,EACb,IACF,CAAC;IACD9C,OAAO,GAAG,MAAM,IAAAoD,mCAAkB,EAChCpD,OAAO,EACP;MAAE6C,cAAc,EAAE,CAAEjB,OAAO,IAAIA,OAAO,CAACiB,cAAc,IAAK,CAAC,CAAC,EAAE7C;IAAQ,CAAC,EACvE8C,EAAE,CAAC,SAAS,CAAC,EACb,IACF,CAAC;EACH;EAEA,IAAI,CAAC,IAAAZ,gBAAO,EAACW,cAAc,CAAC,EAAE;IAC5B,IAAIH,aAAa,IAAI,OAAOA,aAAa,KAAK,UAAU,EAAE;MACxDA,aAAa,CAACd,OAAO,CAACT,EAAE,EAAES,OAAO,CAACoB,OAAO,EAAE;QACzCH;MACF,CAAC,CAAC,CAACQ,KAAK,CAAEC,CAAC,IAAK;QACd;QACAC,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEF,CAAC,CAAC;MAC3C,CAAC,CAAC;IACJ;EACF;EAEA,IAAIxC,QAAQ,IAAIT,OAAO,EAAE;IACvBA,OAAO,CAACW,OAAO,CAAEyC,MAAM,IAAK;MAC1Bd,eAAe,CAACc,MAAM,CAACtC,EAAE,CAAC,GAAGsC,MAAM,CAACvC,aAAa;IACnD,CAAC,CAAC;EACJ;EAEA,MAAMwC,QAAQ,GACZzD,GAAG,CAACc,IAAI,KAAK,UAAU,GACnB,MAAM,IAAA4C,mCAAyB,EAACf,WAAW,CAAClB,WAAW,EAAEZ,QAAQ,CAAC4C,QAAQ,CAAC,GAC3E1B,SAAS;EAEf,MAAM4B,IAAI,GAAG;IACXC,MAAM,EAAE;MACN,GAAG/C,QAAQ;MACXT,OAAO;MACPL;IACF,CAAC;IACD0B,WAAW,EAAEkB,WAAW;IACxBc,QAAQ;IACR3C,IAAI,EAAEd,GAAG,CAACc;EACZ,CAAC;EAED,IAAId,GAAG,CAAC6D,IAAI,KAAK,YAAY,KAAK7D,GAAG,CAACc,IAAI,KAAK,MAAM,IAAId,GAAG,CAACc,IAAI,KAAK,UAAU,CAAC,EAAE;IACjF6C,IAAI,CAACG,SAAS,GAAGjD,QAAQ,CAACiD,SAAS;EACrC,CAAC,MAAM;IACLH,IAAI,CAACG,SAAS,GAAG,IAAI;EACvB;EAEA,MAAM3B,GAAG,GAAG9B,MAAM,CAAC0D,MAAM,CAACJ,IAAI,EAAE;IAC9BjB;EACF,CAAC,CAAC;EAEF/C,GAAG,CAAC,OAAO,EAAEwC,GAAG,CAAC;EACjB,OAAOA,GAAG;AACZ;AAEO,MAAM6B,4BAA4B,GAAGA,CAACnD,QAAQ,EAAEb,GAAG,KAAK;EAC7D,OAAO,IAAI4B,OAAO,CAAEC,OAAO,IAAK;IAC9B,IAAI7B,GAAG,CAACc,IAAI,KAAK,UAAU,IAAId,GAAG,CAAC6D,IAAI,KAAK,YAAY,EAAE;MACxD,MAAM;QAAEzD,OAAO;QAAEL;MAAQ,CAAC,GAAGc,QAAQ;MACrC,MAAMuB,KAAK,GAAG,CAAC,CAAC;MAEhBhC,OAAO,CAACW,OAAO,CAAEC,CAAC,IAAK;QACrB,IAAIjB,OAAO,CAACkE,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAAChD,EAAE,KAAKF,CAAC,CAACC,aAAa,CAAC,CAACV,MAAM,EAAE;UAC1D6B,KAAK,CAACpB,CAAC,CAACE,EAAE,CAAC,GAAGF,CAAC,CAACC,aAAa;QAC/B;MACF,CAAC,CAAC;MAEFY,OAAO,CAAC;QACNO,KAAK;QACLlB,EAAE,EAAE;MACN,CAAC,CAAC;IACJ,CAAC,MAAM;MACLW,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,CAAC;AACJ,CAAC;AAACQ,OAAA,CAAA2B,4BAAA,GAAAA,4BAAA","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/match-list-controller",
3
3
  "private": true,
4
- "version": "4.3.3",
4
+ "version": "5.0.0-beta.0",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -9,16 +9,16 @@
9
9
  "test": "./node_modules/.bin/jest"
10
10
  },
11
11
  "dependencies": {
12
- "@pie-lib/controller-utils": "0.22.2",
13
- "@pie-lib/feedback": "0.24.1",
12
+ "@pie-lib/controller-utils": "0.22.4-next.0",
13
+ "@pie-lib/feedback": "0.24.3-next.0",
14
14
  "debug": "^3.1.0",
15
15
  "lodash": "^4.17.15"
16
16
  },
17
17
  "devDependencies": {
18
- "babel-jest": "^22.4.0",
18
+ "babel-jest": "^29.7.0",
19
19
  "babel-preset-env": "^1.6.1",
20
20
  "babel-preset-stage-0": "^6.24.1",
21
- "jest": "^22.4.0"
21
+ "jest": "^29.7.0"
22
22
  },
23
23
  "author": "",
24
24
  "license": "ISC"