UNPKG

@instructure/quiz-interactions

Version:

A React UI component Library for quiz interaction types.

78 lines 2.88 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var generateAnswers = function generateAnswers(n) { var answers = []; for (var i = 0; i < n; i++) { answers.push({ id: "answer-".concat(i), position: i + 1, itemBody: "<i>Answer ".concat(i, "</i>") }); } return answers; }; var generateScoredData = function generateScoredData(_ref) { var answers = _ref.answers, correct = _ref.correct, correctAnswers = _ref.correctAnswers, userAnswers = _ref.userAnswers; return { correct: correct, value: answers.reduce(function (acc, answer, index) { // eslint-disable-next-line no-param-reassign acc[answer.id] = { resultScore: correctAnswers && correctAnswers.includes(index) ? 1 : void 0, userResponded: userAnswers && userAnswers.includes(index) }; return acc; }, {}) }; }; export default { propValues: { data: [{ correct: false, correctAnswers: [0, 1], userAnswers: [1, 2] }, { correct: true, correctAnswers: [0, 1], userAnswers: [0, 1] }, { correct: false, correctAnswers: [1, 2], userAnswers: [] }, { correct: true, correctAnswers: [], userAnswers: [1, 2] }, { correctAnswers: [], userAnswers: [] }, { correctAnswers: [0, 1] }, { correct: true }, { correct: false }, { userAnswers: [] }, {}, null] }, getComponentProps: function getComponentProps(props) { var answers = generateAnswers(4); var data = props.data; return { itemBody: data ? "Question (correct: ".concat(data.correct, " // answers: ").concat(data.correctAnswers, " // user answers: ").concat(data.userAnswers, ")") : 'No scoring data', scoredData: data ? generateScoredData(_objectSpread({ answers: answers }, data)) : { value: null }, interactionData: { choices: answers } }; } };