@pie-element/match-list 1.15.1-beta.1 → 1.15.1-beta.4
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/controller/lib/defaults.js +23 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +217 -0
- package/controller/lib/index.js.map +1 -0
- package/lib/answer-area.js +203 -0
- package/lib/answer-area.js.map +1 -0
- package/lib/answer.js +246 -0
- package/lib/answer.js.map +1 -0
- package/lib/arrow.js +80 -0
- package/lib/arrow.js.map +1 -0
- package/lib/choices-list.js +110 -0
- package/lib/choices-list.js.map +1 -0
- package/lib/index.js +100 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +158 -0
- package/lib/main.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _default = {
|
|
8
|
+
config: {
|
|
9
|
+
rows: [{
|
|
10
|
+
id: 1,
|
|
11
|
+
title: 'Question Text 1',
|
|
12
|
+
values: [false, false]
|
|
13
|
+
}, {
|
|
14
|
+
id: 2,
|
|
15
|
+
title: 'Question Text 2',
|
|
16
|
+
values: [false, false]
|
|
17
|
+
}],
|
|
18
|
+
layout: 3,
|
|
19
|
+
headers: ['Column 1', 'Column 2', 'Column 3']
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
exports["default"] = _default;
|
|
23
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","names":["config","rows","id","title","values","layout","headers","exports","_default"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n config: {\n rows: [\n {\n id: 1,\n title: 'Question Text 1',\n values: [false, false],\n },\n {\n id: 2,\n title: 'Question Text 2',\n values: [false, false],\n },\n ],\n layout: 3,\n headers: ['Column 1', 'Column 2', 'Column 3'],\n },\n};\n"],"mappings":";;;;;;eAAe;EACbA,MAAM,EAAE;IACNC,IAAI,EAAE,CACJ;MACEC,EAAE,EAAE,CAAC;MACLC,KAAK,EAAE,iBAAiB;MACxBC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK;IACvB,CAAC,EACD;MACEF,EAAE,EAAE,CAAC;MACLC,KAAK,EAAE,iBAAiB;MACxBC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK;IACvB,CAAC,CACF;IACDC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU;EAC9C;AACF,CAAC;AAAAC,OAAA,cAAAC,QAAA"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.createCorrectResponseSession = void 0;
|
|
8
|
+
exports.createDefaultModel = createDefaultModel;
|
|
9
|
+
exports.model = model;
|
|
10
|
+
exports.outcome = void 0;
|
|
11
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
15
|
+
var _feedback = require("@pie-lib/feedback");
|
|
16
|
+
var _controllerUtils = require("@pie-lib/controller-utils");
|
|
17
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
18
|
+
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
var log = (0, _debug["default"])('@pie-element:match-list:controller');
|
|
22
|
+
var getResponseCorrectness = function getResponseCorrectness(model, answers, env) {
|
|
23
|
+
var isPartialScoring = _controllerUtils.partialScoring.enabled(model, env);
|
|
24
|
+
var prompts = model.prompts;
|
|
25
|
+
if (!answers || Object.keys(answers).length === 0) {
|
|
26
|
+
return 'unanswered';
|
|
27
|
+
}
|
|
28
|
+
var totalCorrectAnswers = getTotalCorrect(model);
|
|
29
|
+
var correctAnswers = getCorrectSelected(prompts, answers);
|
|
30
|
+
if (totalCorrectAnswers === correctAnswers) {
|
|
31
|
+
return 'correct';
|
|
32
|
+
} else if (correctAnswers === 0) {
|
|
33
|
+
return 'incorrect';
|
|
34
|
+
} else if (isPartialScoring) {
|
|
35
|
+
return 'partial';
|
|
36
|
+
}
|
|
37
|
+
return 'incorrect';
|
|
38
|
+
};
|
|
39
|
+
var getCorrectness = function getCorrectness(question, env, answers) {
|
|
40
|
+
if (env.mode === 'evaluate') {
|
|
41
|
+
return getResponseCorrectness(question, answers, env);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
var getCorrectSelected = function getCorrectSelected() {
|
|
45
|
+
var prompts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
46
|
+
var answers = arguments.length > 1 ? arguments[1] : undefined;
|
|
47
|
+
var correctAnswers = 0;
|
|
48
|
+
prompts.forEach(function (p) {
|
|
49
|
+
if (p.relatedAnswer === answers[p.id]) {
|
|
50
|
+
correctAnswers += 1;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return correctAnswers;
|
|
54
|
+
};
|
|
55
|
+
var getTotalCorrect = function getTotalCorrect(question) {
|
|
56
|
+
return question && question.prompts ? question.prompts.length : 0;
|
|
57
|
+
};
|
|
58
|
+
var getPartialScore = function getPartialScore(question, answers) {
|
|
59
|
+
var count = getCorrectSelected(question && question.prompts, answers);
|
|
60
|
+
var totalCorrect = getTotalCorrect(question);
|
|
61
|
+
return parseFloat((count / totalCorrect).toFixed(2));
|
|
62
|
+
};
|
|
63
|
+
var getOutComeScore = function getOutComeScore(question, env, answers) {
|
|
64
|
+
var correctness = getCorrectness(question, env, answers);
|
|
65
|
+
return correctness === 'correct' ? 1 : correctness === 'partial' && true ? getPartialScore(question, answers) : 0;
|
|
66
|
+
};
|
|
67
|
+
var outcome = function outcome(question, session, env) {
|
|
68
|
+
return new Promise(function (resolve) {
|
|
69
|
+
if (env.mode !== 'evaluate') {
|
|
70
|
+
resolve({
|
|
71
|
+
score: undefined,
|
|
72
|
+
completed: undefined
|
|
73
|
+
});
|
|
74
|
+
} else {
|
|
75
|
+
if (!session || (0, _isEmpty["default"])(session)) {
|
|
76
|
+
resolve({
|
|
77
|
+
score: 0,
|
|
78
|
+
empty: true
|
|
79
|
+
});
|
|
80
|
+
} else {
|
|
81
|
+
var out = {
|
|
82
|
+
score: getOutComeScore(question, env, session.value)
|
|
83
|
+
};
|
|
84
|
+
resolve(out);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
exports.outcome = outcome;
|
|
90
|
+
function createDefaultModel() {
|
|
91
|
+
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
92
|
+
return new Promise(function (resolve) {
|
|
93
|
+
resolve(_objectSpread(_objectSpread({}, _defaults["default"]), model));
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
*
|
|
99
|
+
* @param {*} question
|
|
100
|
+
* @param {*} session
|
|
101
|
+
* @param {*} env
|
|
102
|
+
* @param {*} updateSession - optional - a function that will set the properties passed into it on the session.
|
|
103
|
+
*/
|
|
104
|
+
function model(question, session, env, updateSession) {
|
|
105
|
+
return new Promise( /*#__PURE__*/function () {
|
|
106
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(resolve) {
|
|
107
|
+
var correctness, correctResponse, score, correctInfo, shuffledValues, prompts, answers, us, lockChoiceOrder, fb;
|
|
108
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
109
|
+
while (1) switch (_context.prev = _context.next) {
|
|
110
|
+
case 0:
|
|
111
|
+
correctness = getCorrectness(question, env, session && session.value);
|
|
112
|
+
correctResponse = {};
|
|
113
|
+
score = "".concat(getOutComeScore(question, env, session && session.value) * 100, "%");
|
|
114
|
+
correctInfo = {
|
|
115
|
+
score: score,
|
|
116
|
+
correctness: correctness
|
|
117
|
+
};
|
|
118
|
+
shuffledValues = {};
|
|
119
|
+
prompts = question.prompts;
|
|
120
|
+
answers = question.answers;
|
|
121
|
+
us = function us(part) {
|
|
122
|
+
return function (id, element, update) {
|
|
123
|
+
return new Promise(function (resolve) {
|
|
124
|
+
shuffledValues[part] = update.shuffledValues;
|
|
125
|
+
resolve();
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
lockChoiceOrder = (0, _controllerUtils.lockChoices)(question, session, env);
|
|
130
|
+
if (lockChoiceOrder) {
|
|
131
|
+
_context.next = 16;
|
|
132
|
+
break;
|
|
133
|
+
}
|
|
134
|
+
_context.next = 12;
|
|
135
|
+
return (0, _controllerUtils.getShuffledChoices)(prompts, {
|
|
136
|
+
shuffledValues: (session && session.shuffledValues || {}).prompts
|
|
137
|
+
}, us('prompts'), 'id');
|
|
138
|
+
case 12:
|
|
139
|
+
prompts = _context.sent;
|
|
140
|
+
_context.next = 15;
|
|
141
|
+
return (0, _controllerUtils.getShuffledChoices)(answers, {
|
|
142
|
+
shuffledValues: (session && session.shuffledValues || {}).answers
|
|
143
|
+
}, us('answers'), 'id');
|
|
144
|
+
case 15:
|
|
145
|
+
answers = _context.sent;
|
|
146
|
+
case 16:
|
|
147
|
+
if (!(0, _isEmpty["default"])(shuffledValues)) {
|
|
148
|
+
if (updateSession && typeof updateSession === 'function') {
|
|
149
|
+
updateSession(session.id, session.element, {
|
|
150
|
+
shuffledValues: shuffledValues
|
|
151
|
+
})["catch"](function (e) {
|
|
152
|
+
console.error('update session failed', e);
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (question && prompts) {
|
|
157
|
+
prompts.forEach(function (prompt) {
|
|
158
|
+
correctResponse[prompt.id] = prompt.relatedAnswer;
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
fb = env.mode === 'evaluate' ? (0, _feedback.getFeedbackForCorrectness)(correctInfo.correctness, question.feedback) : Promise.resolve(undefined);
|
|
162
|
+
fb.then(function (feedback) {
|
|
163
|
+
var base = {
|
|
164
|
+
config: _objectSpread(_objectSpread({}, question), {}, {
|
|
165
|
+
prompts: prompts,
|
|
166
|
+
answers: answers
|
|
167
|
+
}),
|
|
168
|
+
correctness: correctInfo,
|
|
169
|
+
feedback: feedback,
|
|
170
|
+
mode: env.mode
|
|
171
|
+
};
|
|
172
|
+
if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
|
|
173
|
+
base.rationale = question.rationale;
|
|
174
|
+
} else {
|
|
175
|
+
base.rationale = null;
|
|
176
|
+
}
|
|
177
|
+
var out = Object.assign(base, {
|
|
178
|
+
correctResponse: correctResponse
|
|
179
|
+
});
|
|
180
|
+
log('out: ', out);
|
|
181
|
+
resolve(out);
|
|
182
|
+
});
|
|
183
|
+
case 20:
|
|
184
|
+
case "end":
|
|
185
|
+
return _context.stop();
|
|
186
|
+
}
|
|
187
|
+
}, _callee);
|
|
188
|
+
}));
|
|
189
|
+
return function (_x) {
|
|
190
|
+
return _ref.apply(this, arguments);
|
|
191
|
+
};
|
|
192
|
+
}());
|
|
193
|
+
}
|
|
194
|
+
var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
|
|
195
|
+
return new Promise(function (resolve) {
|
|
196
|
+
if (env.mode !== 'evaluate' && env.role === 'instructor') {
|
|
197
|
+
var prompts = question.prompts,
|
|
198
|
+
answers = question.answers;
|
|
199
|
+
var value = {};
|
|
200
|
+
prompts.forEach(function (p) {
|
|
201
|
+
if (answers.filter(function (a) {
|
|
202
|
+
return a.id === p.relatedAnswer;
|
|
203
|
+
}).length) {
|
|
204
|
+
value[p.id] = p.relatedAnswer;
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
resolve({
|
|
208
|
+
value: value,
|
|
209
|
+
id: '1'
|
|
210
|
+
});
|
|
211
|
+
} else {
|
|
212
|
+
resolve(null);
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
exports.createCorrectResponseSession = createCorrectResponseSession;
|
|
217
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_isEmpty","_interopRequireDefault","require","_feedback","_controllerUtils","_debug","_defaults","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","getResponseCorrectness","model","answers","env","isPartialScoring","partialScoring","enabled","prompts","totalCorrectAnswers","getTotalCorrect","correctAnswers","getCorrectSelected","getCorrectness","question","mode","undefined","p","relatedAnswer","id","getPartialScore","count","totalCorrect","parseFloat","toFixed","getOutComeScore","correctness","outcome","session","Promise","resolve","score","completed","isEmpty","empty","out","value","exports","createDefaultModel","defaults","updateSession","_ref","_asyncToGenerator2","_regenerator","mark","_callee","correctResponse","correctInfo","shuffledValues","us","lockChoiceOrder","fb","wrap","_callee$","_context","prev","next","concat","part","element","update","lockChoices","getShuffledChoices","sent","e","console","error","prompt","getFeedbackForCorrectness","feedback","then","base","config","role","rationale","assign","stop","_x","createCorrectResponseSession","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\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 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 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"],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = exports.AnswerArea = void 0;
|
|
8
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
11
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
var _react = _interopRequireDefault(require("react"));
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
var _styles = require("@material-ui/core/styles");
|
|
18
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
19
|
+
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
20
|
+
var _reduce = _interopRequireDefault(require("lodash/reduce"));
|
|
21
|
+
var _arrow = _interopRequireDefault(require("./arrow"));
|
|
22
|
+
var _answer = _interopRequireDefault(require("./answer"));
|
|
23
|
+
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; }
|
|
24
|
+
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; }
|
|
25
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
26
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
27
|
+
var AnswerArea = /*#__PURE__*/function (_React$Component) {
|
|
28
|
+
(0, _inherits2["default"])(AnswerArea, _React$Component);
|
|
29
|
+
var _super = _createSuper(AnswerArea);
|
|
30
|
+
function AnswerArea() {
|
|
31
|
+
var _this;
|
|
32
|
+
(0, _classCallCheck2["default"])(this, AnswerArea);
|
|
33
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
34
|
+
args[_key] = arguments[_key];
|
|
35
|
+
}
|
|
36
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
37
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getAnswerFromSession", function (promptId) {
|
|
38
|
+
var _this$props = _this.props,
|
|
39
|
+
model = _this$props.model,
|
|
40
|
+
session = _this$props.session,
|
|
41
|
+
showCorrect = _this$props.showCorrect;
|
|
42
|
+
var config = model.config;
|
|
43
|
+
var answerId = showCorrect ? config.prompts.find(function (p) {
|
|
44
|
+
return p.id === promptId;
|
|
45
|
+
}).relatedAnswer : session.value && session.value[promptId];
|
|
46
|
+
var answer = config.answers.find(function (answer) {
|
|
47
|
+
return answer.id === answerId;
|
|
48
|
+
});
|
|
49
|
+
return answer || {};
|
|
50
|
+
});
|
|
51
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getCorrectOrIncorrectMap", function () {
|
|
52
|
+
var _this$props2 = _this.props,
|
|
53
|
+
model = _this$props2.model,
|
|
54
|
+
session = _this$props2.session,
|
|
55
|
+
showCorrect = _this$props2.showCorrect;
|
|
56
|
+
var config = model.config;
|
|
57
|
+
var sessionValue = session.value || config.prompts.reduce(function (obj, prompt) {
|
|
58
|
+
obj[prompt.id] = undefined;
|
|
59
|
+
return obj;
|
|
60
|
+
}, {});
|
|
61
|
+
if (model.mode !== 'evaluate') {
|
|
62
|
+
return {};
|
|
63
|
+
}
|
|
64
|
+
if (showCorrect) {
|
|
65
|
+
return config.prompts.reduce(function (obj, prompt) {
|
|
66
|
+
obj[prompt.id] = true;
|
|
67
|
+
return obj;
|
|
68
|
+
}, {});
|
|
69
|
+
}
|
|
70
|
+
var correctPromptMap = config.prompts.reduce(function (obj, prompt) {
|
|
71
|
+
if (!(0, _isUndefined["default"])(prompt.relatedAnswer)) {
|
|
72
|
+
obj[prompt.id] = prompt.relatedAnswer;
|
|
73
|
+
}
|
|
74
|
+
return obj;
|
|
75
|
+
}, {});
|
|
76
|
+
return (0, _reduce["default"])(sessionValue, function (obj, val, key) {
|
|
77
|
+
obj[key] = correctPromptMap[key] === sessionValue[key];
|
|
78
|
+
return obj;
|
|
79
|
+
}, {});
|
|
80
|
+
});
|
|
81
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "buildRows", function () {
|
|
82
|
+
var model = _this.props.model;
|
|
83
|
+
var config = model.config;
|
|
84
|
+
var prompts = config.prompts || [];
|
|
85
|
+
return prompts.map(function (prompt) {
|
|
86
|
+
var sessionAnswer = _this.getAnswerFromSession(prompt.id);
|
|
87
|
+
return _objectSpread(_objectSpread({}, prompt), {}, {
|
|
88
|
+
sessionAnswer: sessionAnswer
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
return _this;
|
|
93
|
+
}
|
|
94
|
+
(0, _createClass2["default"])(AnswerArea, [{
|
|
95
|
+
key: "render",
|
|
96
|
+
value: function render() {
|
|
97
|
+
var _this$props3 = this.props,
|
|
98
|
+
classes = _this$props3.classes,
|
|
99
|
+
disabled = _this$props3.disabled,
|
|
100
|
+
_onPlaceAnswer = _this$props3.onPlaceAnswer,
|
|
101
|
+
instanceId = _this$props3.instanceId,
|
|
102
|
+
onRemoveAnswer = _this$props3.onRemoveAnswer;
|
|
103
|
+
var rows = this.buildRows();
|
|
104
|
+
var correctnessMap = this.getCorrectOrIncorrectMap();
|
|
105
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
106
|
+
className: classes.itemList
|
|
107
|
+
}, rows.map(function (_ref, index) {
|
|
108
|
+
var sessionAnswer = _ref.sessionAnswer,
|
|
109
|
+
title = _ref.title,
|
|
110
|
+
id = _ref.id;
|
|
111
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
112
|
+
className: classes.row,
|
|
113
|
+
style: {
|
|
114
|
+
display: 'flex'
|
|
115
|
+
},
|
|
116
|
+
key: index
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
118
|
+
className: classes.promptEntry,
|
|
119
|
+
dangerouslySetInnerHTML: {
|
|
120
|
+
__html: title
|
|
121
|
+
}
|
|
122
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
123
|
+
className: classes.arrowEntry
|
|
124
|
+
}, /*#__PURE__*/_react["default"].createElement(_arrow["default"], {
|
|
125
|
+
direction: "left"
|
|
126
|
+
}), /*#__PURE__*/_react["default"].createElement(_arrow["default"], null)), /*#__PURE__*/_react["default"].createElement(_answer["default"], {
|
|
127
|
+
key: index,
|
|
128
|
+
className: classes.answer,
|
|
129
|
+
index: index,
|
|
130
|
+
promptId: id,
|
|
131
|
+
correct: correctnessMap[id],
|
|
132
|
+
draggable: !(0, _isEmpty["default"])(sessionAnswer),
|
|
133
|
+
disabled: disabled,
|
|
134
|
+
instanceId: instanceId,
|
|
135
|
+
id: sessionAnswer.id,
|
|
136
|
+
onPlaceAnswer: function onPlaceAnswer(place, id) {
|
|
137
|
+
return _onPlaceAnswer(place, id);
|
|
138
|
+
},
|
|
139
|
+
title: sessionAnswer.title,
|
|
140
|
+
type: 'target',
|
|
141
|
+
onRemoveChoice: function onRemoveChoice() {
|
|
142
|
+
return onRemoveAnswer(id);
|
|
143
|
+
}
|
|
144
|
+
}));
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
}]);
|
|
148
|
+
return AnswerArea;
|
|
149
|
+
}(_react["default"].Component);
|
|
150
|
+
exports.AnswerArea = AnswerArea;
|
|
151
|
+
(0, _defineProperty2["default"])(AnswerArea, "propTypes", {
|
|
152
|
+
classes: _propTypes["default"].object,
|
|
153
|
+
session: _propTypes["default"].object.isRequired,
|
|
154
|
+
showCorrect: _propTypes["default"].bool.isRequired,
|
|
155
|
+
disabled: _propTypes["default"].bool.isRequired,
|
|
156
|
+
onSessionChange: _propTypes["default"].func,
|
|
157
|
+
onRemoveAnswer: _propTypes["default"].func,
|
|
158
|
+
onPlaceAnswer: _propTypes["default"].func.isRequired,
|
|
159
|
+
instanceId: _propTypes["default"].string.isRequired,
|
|
160
|
+
model: _propTypes["default"].object.isRequired,
|
|
161
|
+
prompt: _propTypes["default"].string
|
|
162
|
+
});
|
|
163
|
+
var styles = function styles() {
|
|
164
|
+
return {
|
|
165
|
+
answer: {
|
|
166
|
+
flex: 1
|
|
167
|
+
},
|
|
168
|
+
arrowEntry: {
|
|
169
|
+
alignItems: 'normal',
|
|
170
|
+
display: 'flex',
|
|
171
|
+
height: 40,
|
|
172
|
+
margin: '10px 20px'
|
|
173
|
+
},
|
|
174
|
+
itemList: {
|
|
175
|
+
alignItems: 'flex-start',
|
|
176
|
+
display: 'flex',
|
|
177
|
+
flex: 1,
|
|
178
|
+
flexDirection: 'column',
|
|
179
|
+
justifyContent: 'space-between'
|
|
180
|
+
},
|
|
181
|
+
promptEntry: {
|
|
182
|
+
border: '1px solid #c2c2c2',
|
|
183
|
+
boxSizing: 'border-box',
|
|
184
|
+
flex: 1,
|
|
185
|
+
margin: '10px 0',
|
|
186
|
+
minHeight: 40,
|
|
187
|
+
overflow: 'hidden',
|
|
188
|
+
padding: 10,
|
|
189
|
+
textAlign: 'center',
|
|
190
|
+
width: '100%',
|
|
191
|
+
wordBreak: 'break-word'
|
|
192
|
+
},
|
|
193
|
+
row: {
|
|
194
|
+
alignItems: 'center',
|
|
195
|
+
display: 'flex',
|
|
196
|
+
justifyContent: 'space-between',
|
|
197
|
+
width: '100%'
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
var _default = (0, _styles.withStyles)(styles)(AnswerArea);
|
|
202
|
+
exports["default"] = _default;
|
|
203
|
+
//# sourceMappingURL=answer-area.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer-area.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_isEmpty","_isUndefined","_reduce","_arrow","_answer","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","AnswerArea","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","promptId","_this$props","props","model","session","showCorrect","config","answerId","prompts","find","p","id","relatedAnswer","value","answer","answers","_this$props2","sessionValue","reduce","obj","prompt","undefined","mode","correctPromptMap","isUndefined","val","map","sessionAnswer","getAnswerFromSession","_createClass2","render","_this$props3","classes","disabled","onPlaceAnswer","instanceId","onRemoveAnswer","rows","buildRows","correctnessMap","getCorrectOrIncorrectMap","createElement","className","itemList","_ref","index","title","row","style","display","promptEntry","dangerouslySetInnerHTML","__html","arrowEntry","direction","correct","draggable","isEmpty","place","type","onRemoveChoice","React","Component","exports","PropTypes","isRequired","bool","onSessionChange","func","string","styles","flex","alignItems","height","margin","flexDirection","justifyContent","border","boxSizing","minHeight","overflow","padding","textAlign","width","wordBreak","_default","withStyles"],"sources":["../src/answer-area.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport isEmpty from 'lodash/isEmpty';\nimport isUndefined from 'lodash/isUndefined';\nimport reduce from 'lodash/reduce';\n\nimport Arrow from './arrow';\nimport DragAndDropAnswer from './answer';\n\nexport class AnswerArea extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n session: PropTypes.object.isRequired,\n showCorrect: PropTypes.bool.isRequired,\n disabled: PropTypes.bool.isRequired,\n onSessionChange: PropTypes.func,\n onRemoveAnswer: PropTypes.func,\n onPlaceAnswer: PropTypes.func.isRequired,\n instanceId: PropTypes.string.isRequired,\n model: PropTypes.object.isRequired,\n prompt: PropTypes.string,\n };\n\n getAnswerFromSession = (promptId) => {\n const { model, session, showCorrect } = this.props;\n const { config } = model;\n const answerId = showCorrect\n ? config.prompts.find((p) => p.id === promptId).relatedAnswer\n : session.value && session.value[promptId];\n const answer = config.answers.find((answer) => answer.id === answerId);\n\n return answer || {};\n };\n\n getCorrectOrIncorrectMap = () => {\n const { model, session, showCorrect } = this.props;\n const { config } = model;\n const sessionValue =\n session.value ||\n config.prompts.reduce((obj, prompt) => {\n obj[prompt.id] = undefined;\n return obj;\n }, {});\n\n if (model.mode !== 'evaluate') {\n return {};\n }\n\n if (showCorrect) {\n return config.prompts.reduce((obj, prompt) => {\n obj[prompt.id] = true;\n\n return obj;\n }, {});\n }\n\n const correctPromptMap = config.prompts.reduce((obj, prompt) => {\n if (!isUndefined(prompt.relatedAnswer)) {\n obj[prompt.id] = prompt.relatedAnswer;\n }\n\n return obj;\n }, {});\n\n return reduce(\n sessionValue,\n (obj, val, key) => {\n obj[key] = correctPromptMap[key] === sessionValue[key];\n\n return obj;\n },\n {},\n );\n };\n\n buildRows = () => {\n const { model } = this.props;\n const { config } = model;\n const prompts = config.prompts || [];\n\n return prompts.map((prompt) => {\n const sessionAnswer = this.getAnswerFromSession(prompt.id);\n\n return {\n ...prompt,\n sessionAnswer,\n };\n });\n };\n\n render() {\n const { classes, disabled, onPlaceAnswer, instanceId, onRemoveAnswer } = this.props;\n const rows = this.buildRows();\n const correctnessMap = this.getCorrectOrIncorrectMap();\n\n return (\n <div className={classes.itemList}>\n {rows.map(({ sessionAnswer, title, id }, index) => {\n return (\n <div\n className={classes.row}\n style={{\n display: 'flex',\n }}\n key={index}\n >\n <div className={classes.promptEntry} dangerouslySetInnerHTML={{ __html: title }} />\n <div className={classes.arrowEntry}>\n <Arrow direction=\"left\" />\n <Arrow />\n </div>\n <DragAndDropAnswer\n key={index}\n className={classes.answer}\n index={index}\n promptId={id}\n correct={correctnessMap[id]}\n draggable={!isEmpty(sessionAnswer)}\n disabled={disabled}\n instanceId={instanceId}\n id={sessionAnswer.id}\n onPlaceAnswer={(place, id) => onPlaceAnswer(place, id)}\n title={sessionAnswer.title}\n type={'target'}\n onRemoveChoice={() => onRemoveAnswer(id)}\n />\n </div>\n );\n })}\n </div>\n );\n }\n}\n\nconst styles = () => ({\n answer: {\n flex: 1,\n },\n arrowEntry: {\n alignItems: 'normal',\n display: 'flex',\n height: 40,\n margin: '10px 20px',\n },\n itemList: {\n alignItems: 'flex-start',\n display: 'flex',\n flex: 1,\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n promptEntry: {\n border: '1px solid #c2c2c2',\n boxSizing: 'border-box',\n flex: 1,\n margin: '10px 0',\n minHeight: 40,\n overflow: 'hidden',\n padding: 10,\n textAlign: 'center',\n width: '100%',\n wordBreak: 'break-word',\n },\n row: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n});\n\nexport default withStyles(styles)(AnswerArea);\n"],"mappings":"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"}
|