@pie-element/placement-ordering 12.0.2-esm.0 → 12.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/CHANGELOG.md +24 -0
- package/configure/CHANGELOG.md +19 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +19 -0
- package/controller/package.json +4 -4
- package/lib/tile.js +0 -1
- package/lib/tile.js.map +1 -1
- package/package.json +8 -25
- package/esm/configure.css +0 -847
- package/esm/configure.js +0 -4020
- package/esm/configure.js.map +0 -1
- package/esm/controller.css +0 -847
- package/esm/controller.js +0 -924
- package/esm/controller.js.map +0 -1
- package/esm/element.css +0 -847
- package/esm/element.js +0 -3108
- package/esm/element.js.map +0 -1
package/esm/controller.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sources":["../../../node_modules/js-combinatorics/combinatorics.js","../controller/src/scoring.js","../controller/src/defaults.js","../controller/src/index.js"],"sourcesContent":["/*\n * $Id: combinatorics.js,v 0.25 2013/03/11 15:42:14 dankogai Exp dankogai $\n *\n * Licensed under the MIT license.\n * http://www.opensource.org/licenses/mit-license.php\n *\n * References:\n * http://www.ruby-doc.org/core-2.0/Array.html#method-i-combination\n * http://www.ruby-doc.org/core-2.0/Array.html#method-i-permutation\n * http://en.wikipedia.org/wiki/Factorial_number_system\n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.Combinatorics = factory();\n }\n}(this, function () {\n 'use strict';\n var version = \"0.5.5\";\n /* combinatory arithmetics */\n var P = function(m, n) {\n if (n % 1 !== 0) throw new RangeError;\n var p = 1;\n while (n--) p *= m--;\n return p;\n };\n var C = function(m, n) {\n if (n > m) {\n return 0;\n }\n return P(m, n) / P(n, n);\n };\n var factorial = function(n) {\n return P(n, n);\n };\n var factoradic = function(n, d) {\n var f = 1;\n if (!d) {\n for (d = 1; f < n; f *= ++d);\n if (f > n) f /= d--;\n } else {\n f = factorial(d);\n }\n var result = [0];\n for (; d; f /= d--) {\n result[d] = Math.floor(n / f);\n n %= f;\n }\n return result;\n };\n /* common methods */\n var addProperties = function(dst, src) {\n Object.keys(src).forEach(function(p) {\n Object.defineProperty(dst, p, {\n value: src[p],\n configurable: p == 'next'\n });\n });\n };\n var hideProperty = function(o, p) {\n Object.defineProperty(o, p, {\n writable: true\n });\n };\n var toArray = function(f) {\n var e, result = [];\n this.init();\n while (e = this.next()) result.push(f ? f(e) : e);\n this.init();\n return result;\n };\n var common = {\n toArray: toArray,\n map: toArray,\n forEach: function(f) {\n var e;\n this.init();\n while (e = this.next()) f(e);\n this.init();\n },\n filter: function(f) {\n var e, result = [];\n this.init();\n while (e = this.next()) if (f(e)) result.push(e);\n this.init();\n return result;\n },\n find: function(f) {\n var e, result;\n this.init();\n while (e = this.next()) {\n if (f(e)) {\n result = e;\n break;\n }\n }\n this.init();\n return result;\n },\n reduce: function(reducer, result) {\n // return this.toArray().reduce(reducer, init);\n this.init();\n var index = 0;\n if (arguments.length < 2) {\n result = this.next();\n index += 1;\n }\n var length = this.length;\n while(index < length) {\n result = reducer(result, this.next(), index, this);\n index += 1;\n }\n return result;\n },\n lazyMap: function(f) {\n this._lazyMap = f;\n return this;\n },\n lazyFilter: function(f) {\n Object.defineProperty(this, 'next', {\n writable: true\n });\n if (typeof f !== 'function') {\n this.next = this._next;\n } else {\n if (typeof (this._next) !== 'function') {\n this._next = this.next;\n }\n var _next = this._next.bind(this);\n this.next = (function() {\n var e;\n while (e = _next()) {\n if (f(e))\n return e;\n }\n return e;\n }).bind(this);\n }\n Object.defineProperty(this, 'next', {\n writable: false\n });\n return this;\n }\n\n };\n /* power set */\n var power = function(ary, fun) {\n var size = 1 << ary.length,\n sizeOf = function() {\n return size;\n },\n that = Object.create(ary.slice(), {\n length: {\n get: sizeOf\n }\n });\n hideProperty(that, 'index');\n addProperties(that, {\n valueOf: sizeOf,\n init: function() {\n that.index = 0;\n },\n nth: function(n) {\n if (n >= size) return;\n var i = 0,\n result = [];\n for (; n; n >>>= 1, i++) if (n & 1) result.push(this[i]);\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n },\n next: function() {\n return this.nth(this.index++);\n }\n });\n addProperties(that, common);\n that.init();\n return (typeof (fun) === 'function') ? that.map(fun) : that;\n };\n /* combination */\n var nextIndex = function(n) {\n var smallest = n & -n,\n ripple = n + smallest,\n new_smallest = ripple & -ripple,\n ones = ((new_smallest / smallest) >> 1) - 1;\n return ripple | ones;\n };\n var combination = function(ary, nelem, fun) {\n if (!nelem) nelem = ary.length;\n if (nelem < 1) throw new RangeError;\n if (nelem > ary.length) throw new RangeError;\n var first = (1 << nelem) - 1,\n size = C(ary.length, nelem),\n maxIndex = 1 << ary.length,\n sizeOf = function() {\n return size;\n },\n that = Object.create(ary.slice(), {\n length: {\n get: sizeOf\n }\n });\n hideProperty(that, 'index');\n addProperties(that, {\n valueOf: sizeOf,\n init: function() {\n this.index = first;\n },\n next: function() {\n if (this.index >= maxIndex) return;\n var i = 0,\n n = this.index,\n result = [];\n for (; n; n >>>= 1, i++) {\n if (n & 1) result[result.length] = this[i];\n }\n\n this.index = nextIndex(this.index);\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n }\n });\n addProperties(that, common);\n that.init();\n return (typeof (fun) === 'function') ? that.map(fun) : that;\n };\n /* bigcombination */\n var bigNextIndex = function(n, nelem) {\n\n var result = n;\n var j = nelem;\n var i = 0;\n for (i = result.length - 1; i >= 0; i--) {\n if (result[i] == 1) {\n j--;\n } else {\n break;\n }\n } \n if (j == 0) {\n // Overflow\n result[result.length] = 1;\n for (var k = result.length - 2; k >= 0; k--) {\n result[k] = (k < nelem-1)?1:0;\n }\n } else {\n // Normal\n\n // first zero after 1\n var i1 = -1;\n var i0 = -1;\n for (var i = 0; i < result.length; i++) {\n if (result[i] == 0 && i1 != -1) {\n i0 = i;\n }\n if (result[i] == 1) {\n i1 = i;\n }\n if (i0 != -1 && i1 != -1) {\n result[i0] = 1;\n result[i1] = 0;\n break;\n }\n }\n\n j = nelem;\n for (var i = result.length - 1; i >= i1; i--) {\n if (result[i] == 1)\n j--;\n }\n for (var i = 0; i < i1; i++) {\n result[i] = (i < j)?1:0;\n }\n }\n\n return result;\n\n };\n var buildFirst = function(nelem) {\n var result = [];\n for (var i = 0; i < nelem; i++) {\n result[i] = 1;\n }\n result[0] = 1;\n return result;\n };\n var bigCombination = function(ary, nelem, fun) {\n if (!nelem) nelem = ary.length;\n if (nelem < 1) throw new RangeError;\n if (nelem > ary.length) throw new RangeError;\n var first = buildFirst(nelem),\n size = C(ary.length, nelem),\n maxIndex = ary.length,\n sizeOf = function() {\n return size;\n },\n that = Object.create(ary.slice(), {\n length: {\n get: sizeOf\n }\n });\n hideProperty(that, 'index');\n addProperties(that, {\n valueOf: sizeOf,\n init: function() {\n this.index = first.concat();\n },\n next: function() {\n if (this.index.length > maxIndex) return;\n var i = 0,\n n = this.index,\n result = [];\n for (var j = 0; j < n.length; j++, i++) {\n if (n[j])\n result[result.length] = this[i];\n }\n bigNextIndex(this.index, nelem);\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n }\n });\n addProperties(that, common);\n that.init();\n return (typeof (fun) === 'function') ? that.map(fun) : that;\n };\n /* permutation */\n var _permutation = function(ary) {\n var that = ary.slice(),\n size = factorial(that.length);\n that.index = 0;\n that.next = function() {\n if (this.index >= size) return;\n var copy = this.slice(),\n digits = factoradic(this.index, this.length),\n result = [],\n i = this.length - 1;\n for (; i >= 0; --i) result.push(copy.splice(digits[i], 1)[0]);\n this.index++;\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n };\n return that;\n };\n // which is really a permutation of combination\n var permutation = function(ary, nelem, fun) {\n if (!nelem) nelem = ary.length;\n if (nelem < 1) throw new RangeError;\n if (nelem > ary.length) throw new RangeError;\n var size = P(ary.length, nelem),\n sizeOf = function() {\n return size;\n },\n that = Object.create(ary.slice(), {\n length: {\n get: sizeOf\n }\n });\n hideProperty(that, 'cmb');\n hideProperty(that, 'per');\n addProperties(that, {\n valueOf: function() {\n return size;\n },\n init: function() {\n /* combination can only be used for less than 31 elements */\n if (ary.length < 31) {\n this.cmb = combination(ary, nelem);\n } else {\n this.cmb = bigCombination(ary, nelem);\n }\n \n this.per = _permutation(this.cmb.next());\n },\n next: function() {\n var result = this.per.next();\n if (!result) {\n var cmb = this.cmb.next();\n if (!cmb) return;\n this.per = _permutation(cmb);\n return this.next();\n }\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n }\n });\n addProperties(that, common);\n that.init();\n return (typeof (fun) === 'function') ? that.map(fun) : that;\n };\n\n var PC = function(m) {\n var total = 0;\n for (var n = 1; n <= m; n++) {\n var p = P(m,n);\n total += p;\n };\n return total;\n };\n // which is really a permutation of combination\n var permutationCombination = function(ary, fun) {\n // if (!nelem) nelem = ary.length;\n // if (nelem < 1) throw new RangeError;\n // if (nelem > ary.length) throw new RangeError;\n var size = PC(ary.length),\n sizeOf = function() {\n return size;\n },\n that = Object.create(ary.slice(), {\n length: {\n get: sizeOf\n }\n });\n hideProperty(that, 'cmb');\n hideProperty(that, 'per');\n hideProperty(that, 'nelem');\n addProperties(that, {\n valueOf: function() {\n return size;\n },\n init: function() {\n this.nelem = 1;\n // console.log(\"Starting nelem: \" + this.nelem);\n this.cmb = combination(ary, this.nelem);\n this.per = _permutation(this.cmb.next());\n },\n next: function() {\n var result = this.per.next();\n if (!result) {\n var cmb = this.cmb.next();\n if (!cmb) {\n this.nelem++;\n // console.log(\"increment nelem: \" + this.nelem + \" vs \" + ary.length);\n if (this.nelem > ary.length) return;\n this.cmb = combination(ary, this.nelem);\n cmb = this.cmb.next();\n if (!cmb) return;\n }\n this.per = _permutation(cmb);\n return this.next();\n }\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n }\n });\n addProperties(that, common);\n that.init();\n return (typeof (fun) === 'function') ? that.map(fun) : that;\n };\n /* Cartesian Product */\n var arraySlice = Array.prototype.slice;\n var cartesianProduct = function() {\n if (!arguments.length) throw new RangeError;\n var args = arraySlice.call(arguments),\n size = args.reduce(function(p, a) {\n return p * a.length;\n }, 1),\n sizeOf = function() {\n return size;\n },\n dim = args.length,\n that = Object.create(args, {\n length: {\n get: sizeOf\n }\n });\n if (!size) throw new RangeError;\n hideProperty(that, 'index');\n addProperties(that, {\n valueOf: sizeOf,\n dim: dim,\n init: function() {\n this.index = 0;\n },\n get: function() {\n if (arguments.length !== this.length) return;\n var result = [],\n d = 0;\n for (; d < dim; d++) {\n var i = arguments[d];\n if (i >= this[d].length) return;\n result.push(this[d][i]);\n }\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n },\n nth: function(n) {\n var result = [],\n d = 0;\n for (; d < dim; d++) {\n var l = this[d].length;\n var i = n % l;\n result.push(this[d][i]);\n n -= i;\n n /= l;\n }\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n },\n next: function() {\n if (this.index >= size) return;\n var result = this.nth(this.index);\n this.index++;\n return result;\n }\n });\n addProperties(that, common);\n that.init();\n return that;\n };\n /* baseN */\n var baseN = function(ary, nelem, fun) {\n if (!nelem) nelem = ary.length;\n if (nelem < 1) throw new RangeError;\n var base = ary.length,\n size = Math.pow(base, nelem);\n var sizeOf = function() {\n return size;\n },\n that = Object.create(ary.slice(), {\n length: {\n get: sizeOf\n }\n });\n hideProperty(that, 'index');\n addProperties(that, {\n valueOf: sizeOf,\n init: function() {\n that.index = 0;\n },\n nth: function(n) {\n if (n >= size) return;\n var result = [];\n for (var i = 0; i < nelem; i++) {\n var d = n % base;\n result.push(ary[d])\n n -= d; n /= base\n }\n return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;\n },\n next: function() {\n return this.nth(this.index++);\n }\n });\n addProperties(that, common);\n that.init();\n return (typeof (fun) === 'function') ? that.map(fun) : that;\n };\n\n /* export */\n var Combinatorics = Object.create(null);\n addProperties(Combinatorics, {\n C: C,\n P: P,\n factorial: factorial,\n factoradic: factoradic,\n cartesianProduct: cartesianProduct,\n combination: combination,\n bigCombination: bigCombination,\n permutation: permutation,\n permutationCombination: permutationCombination,\n power: power,\n baseN: baseN,\n VERSION: version\n });\n return Combinatorics;\n}));\n","import _ from 'lodash';\nimport { combination } from 'js-combinatorics';\nimport debug from 'debug';\n\nconst log = debug('pie-elements:placement-ordering:controller');\n\nexport const illegalArgumentError = (answer) =>\n new Error(`Cant score answer: ${answer} it has duplicates and allowDuplicates is false`);\nexport const pairwiseCombinationScore = (correct, answer, opts) => {\n opts = { allowDuplicates: false, orderMustBeComplete: false, ...opts };\n\n if (!opts.allowDuplicates && !_.isEqual(_.uniq(correct), correct)) {\n throw illegalArgumentError(answer);\n }\n\n if (opts.allowDuplicates === false && answer.length !== _.uniq(answer).length) {\n return 0;\n }\n\n answer = opts.allowDuplicates !== false ? answer : _.uniq(answer);\n\n log('answer:', answer);\n if (!Array.isArray(correct) || correct.length === 0) {\n throw new Error('correct must be non empty an array');\n }\n\n if (correct.length === 1) {\n return _.isEqual(correct, answer) ? 1 : 0;\n }\n\n if (!Array.isArray(answer) || answer.length < 2) {\n return 0;\n }\n\n if (answer.length > correct.length) {\n return 0;\n }\n\n if (correct.length !== answer.length && opts.orderMustBeComplete) {\n return 0;\n }\n\n const correctCombo = combination(correct, 2).toArray();\n const answerCombo = combination(answer, 2).toArray();\n\n const diff = _.differenceWith(answerCombo, correctCombo, _.isEqual);\n\n const comboLengthDiff = correctCombo.length - answerCombo.length;\n\n const total = correctCombo.length;\n const actual = total - diff.length - comboLengthDiff;\n\n const n = (actual / total).toFixed(2);\n\n return parseFloat(n);\n};\n\n/**\n * Flattens the correctResponse into an array of ordered identifiers representing the\n * correct response.\n */\nexport const flattenCorrect = (question) =>\n question.correctResponse ? question.correctResponse.map((r) => (r && r.id ? r.id : r)) : [];\n\n/**\n * Returns all correct responses for this question\n * @param question - array\n */\nexport const getAllCorrectResponses = (question) => {\n const alternates = (question.alternateResponses || []).map((alternate) => {\n if (Array.isArray(alternate)) {\n return alternate;\n }\n\n return alternate.response;\n }).filter(item => item !== undefined);\n\n return [flattenCorrect(question), ...alternates];\n};\n\n/**\n * Returns the score for a session. If weighted scoring is present in the correctResponse\n * field for the question, this will be used. If partial scoring is present in the question\n * model, this will be used. Otherwise the default scoring mechanism (0 for any incorrect, 1\n * for all correct) will be used.\n */\n\nexport const score = (question, session) => {\n const { value } = session || {};\n\n if (!value) {\n return 0;\n }\n\n const allCorrectResponse = getAllCorrectResponses(question);\n const allowDuplicates = (question.configure && question.configure.removeTilesAfterPlacing) !== false;\n\n /**\n * We require this to be the case - locking\n */\n //const orderMustBeComplete = true;\n\n let bestScore = 0;\n\n allCorrectResponse.forEach((cr) => {\n const currentScore = pairwiseCombinationScore(cr, value, {\n allowDuplicates,\n });\n\n if (currentScore >= bestScore) {\n bestScore = currentScore;\n }\n });\n\n return bestScore;\n};\n","export default {\n choiceLabel: '',\n choiceLabelEnabled: true,\n choices: [],\n correctResponse: [],\n feedbackEnabled: false,\n numberedGuides: false,\n orientation: 'vertical',\n partialScoring: true,\n placementArea: false,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n removeTilesAfterPlacing: true,\n scoringType: 'auto',\n studentInstructionsEnabled: true,\n targetLabel: '',\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n};\n","import { flattenCorrect, getAllCorrectResponses, score } from './scoring';\n\nimport _ from 'lodash';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { partialScoring } from '@pie-lib/controller-utils';\nimport debug from 'debug';\n\nimport defaults from './defaults';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nconst log = debug('@pie-element:placement-ordering:controller');\nimport Translator from '@pie-lib/translator';\n\nconst { translator } = Translator;\n\nexport const questionError = () => new Error('Question is missing required array: correctResponse');\n\nexport function outcome(question, session, env) {\n return new Promise((resolve, reject) => {\n if (!session || _.isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (!question || !question.correctResponse || _.isEmpty(question.correctResponse)) {\n reject(questionError());\n } else {\n try {\n const s = score(question, session);\n const finalScore = partialScoring.enabled(question, env || {}) ? s : s === 1 ? 1 : 0;\n resolve({\n score: finalScore,\n });\n } catch (e) {\n reject(e);\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 = (question) => ({\n ...defaults,\n rationaleEnabled: true,\n feedbackEnabled: false,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport function model(question, session, env) {\n return new Promise(async (resolve) => {\n const normalizedQuestion = normalize(question);\n const base = {};\n\n if (question.alternateResponses && _.every(question.alternateResponses, _.isArray)) {\n log('Deprecated structure of alternateResponses is in use');\n // eslint-disable-next-line no-console\n console.error('Deprecated structure of alternateResponses is in use');\n }\n\n base.env = env;\n base.extraCSSRules = normalizedQuestion.extraCSSRules;\n base.outcomes = [];\n base.completeLength = (normalizedQuestion.correctResponse || []).length;\n base.choices = (normalizedQuestion.choices || []).filter((choice) => choice.label);\n base.note = normalizedQuestion.note;\n base.showNote = normalizedQuestion.alternateResponses && normalizedQuestion.alternateResponses.length > 0;\n base.language = normalizedQuestion.language;\n\n log('[model] removing tileSize for the moment.');\n\n base.prompt = normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null;\n base.config = {\n orientation: normalizedQuestion.orientation || 'vertical',\n includeTargets: normalizedQuestion.placementArea,\n choiceLabelEnabled: normalizedQuestion.choiceLabelEnabled,\n targetLabel: normalizedQuestion.targetLabel,\n choiceLabel: normalizedQuestion.choiceLabel,\n showOrdering: normalizedQuestion.numberedGuides,\n allowSameChoiceInTargets: !normalizedQuestion.removeTilesAfterPlacing,\n };\n\n base.disabled = env.mode !== 'gather';\n\n if (!base.note) {\n base.note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: normalizedQuestion.language });\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = normalizedQuestion.rationaleEnabled ? normalizedQuestion.rationale : null;\n base.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n base.rationale = null;\n base.teacherInstructions = null;\n }\n\n if (env.mode === 'evaluate') {\n const value = (session && session.value) || [];\n const allCorrectResponses = getAllCorrectResponses(normalizedQuestion);\n\n const bestSetOfResponses = allCorrectResponses.reduce(\n (info, cr) => {\n const currentScore = _.reduce(value, (acc, c, idx) => acc + (Array.isArray(cr) && cr[idx] === c ? 1 : 0), 0);\n\n if (currentScore > info.score) {\n return {\n arr: cr,\n score: currentScore,\n };\n }\n\n return info;\n },\n { arr: [], score: 0 },\n );\n\n base.outcomes = _.map(value, (c, idx) => {\n return {\n id: c,\n outcome: bestSetOfResponses.arr[idx] === c ? 'correct' : 'incorrect',\n };\n });\n\n const isResponseCorrect = allCorrectResponses.some((response) => _.isEqual(response, value));\n const responseScore = score(question, session);\n const isCorrect = responseScore === 1;\n const isPartialCorrect =\n !isCorrect && partialScoring.enabled(normalizedQuestion, env || {}) && responseScore !== 0;\n\n base.correctness = isCorrect ? 'correct' : isPartialCorrect ? 'partial' : 'incorrect';\n\n if (!isResponseCorrect) {\n base.correctResponse = flattenCorrect(normalizedQuestion);\n }\n\n // requirement made in PD-2182\n if (!normalizedQuestion.feedback) {\n normalizedQuestion.feedbackEnabled = false;\n }\n\n const fb = normalizedQuestion.feedbackEnabled\n ? getFeedbackForCorrectness(base.correctness, normalizedQuestion.feedback)\n : Promise.resolve(undefined);\n\n fb.then((feedback) => {\n base.feedback = feedback;\n resolve(base);\n });\n } else {\n resolve(base);\n }\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({\n id: '1',\n value: flattenCorrect(question),\n });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { choices, correctResponse } = model;\n const errors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n const reversedChoices = [...(choices || [])].reverse();\n const choicesErrors = {};\n\n reversedChoices.forEach((choice, index) => {\n const { id, label } = choice;\n\n if (!getContent(label)) {\n choicesErrors[id] = 'Content should not be empty.';\n } else {\n const identicalAnswer = reversedChoices.slice(index + 1).some((c) => c.label === label);\n\n if (identicalAnswer) {\n choicesErrors[id] = 'Content should be unique.';\n }\n }\n });\n\n const choicesIds = (choices || []).map((choice) => choice.id);\n const correctResponseIds = (correctResponse || []).map((response) => response.id || response);\n\n if (isEqual(choicesIds, correctResponseIds)) {\n errors.orderError = 'The correct ordering should not be identical to the initial ordering.';\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choicesErrors = choicesErrors;\n }\n\n return errors;\n};\n"],"names":["this","log","debug","illegalArgumentError","answer","Error","pairwiseCombinationScore","correct","opts","allowDuplicates","orderMustBeComplete","_","isEqual","uniq","length","Array","isArray","correctCombo","combination","toArray","answerCombo","diff","differenceWith","comboLengthDiff","total","actual","n","toFixed","parseFloat","flattenCorrect","question","correctResponse","map","r","id","getAllCorrectResponses","alternates","alternateResponses","alternate","response","filter","item","undefined","score","session","value","allCorrectResponse","configure","removeTilesAfterPlacing","bestScore","forEach","cr","currentScore","choiceLabel","choiceLabelEnabled","choices","feedbackEnabled","numberedGuides","orientation","partialScoring","placementArea","prompt","promptEnabled","rationale","rationaleEnabled","scoringType","studentInstructionsEnabled","targetLabel","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","translator","Translator","questionError","outcome","env","Promise","resolve","reject","isEmpty","empty","s","finalScore","enabled","e","createDefaultModel","model","defaults","normalize","normalizedQuestion","base","every","console","error","extraCSSRules","outcomes","completeLength","choice","label","note","showNote","language","config","includeTargets","showOrdering","allowSameChoiceInTargets","disabled","mode","t","lng","role","allCorrectResponses","bestSetOfResponses","reduce","info","acc","c","idx","arr","isResponseCorrect","some","responseScore","isCorrect","isPartialCorrect","correctness","feedback","fb","getFeedbackForCorrectness","then","createCorrectResponseSession","getContent","html","replace","validate","errors","field","required","reversedChoices","reverse","choicesErrors","index","identicalAnswer","slice","choicesIds","correctResponseIds","orderError"],"mappings":"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"}
|