@pie-element/multiple-choice 12.1.2-next.6 → 12.2.0-next.1
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 +16 -0
- package/controller/CHANGELOG.md +10 -0
- package/controller/lib/index.js +42 -5
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/lib/choice-input.js +6 -0
- package/lib/choice-input.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [12.2.0-next.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@12.2.0-next.0...@pie-element/multiple-choice@12.2.0-next.1) (2026-03-18)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **multiple-choice:** adjust margin and padding for CheckboxHolder to maintain consistency with previous versions PD-5579 ([f786617](https://github.com/pie-framework/pie-elements/commit/f7866172fbdad2868b16fe87a5c87516a09915d2))
|
|
11
|
+
|
|
12
|
+
# [12.2.0-next.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@12.1.2-next.6...@pie-element/multiple-choice@12.2.0-next.0) (2026-03-18)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- test ([be07920](https://github.com/pie-framework/pie-elements/commit/be07920477def42dc240d032783be437400b7e93))
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- **multiple-choice:** add trace log for scoring in outcome function PD-5434 ([0f49930](https://github.com/pie-framework/pie-elements/commit/0f49930da8d4098ad0bec74fc462942ddf031172))
|
|
21
|
+
|
|
6
22
|
## [12.1.2-next.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@12.1.2-next.5...@pie-element/multiple-choice@12.1.2-next.6) (2026-03-12)
|
|
7
23
|
|
|
8
24
|
### Bug Fixes
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [7.2.0-next.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@7.1.1-next.1...@pie-element/multiple-choice-controller@7.2.0-next.0) (2026-03-18)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- test ([be07920](https://github.com/pie-framework/pie-elements/commit/be07920477def42dc240d032783be437400b7e93))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **multiple-choice:** add trace log for scoring in outcome function PD-5434 ([0f49930](https://github.com/pie-framework/pie-elements/commit/0f49930da8d4098ad0bec74fc462942ddf031172))
|
|
15
|
+
|
|
6
16
|
## [7.1.1-next.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@7.1.0-next.1...@pie-element/multiple-choice-controller@7.1.1-next.1) (2026-02-26)
|
|
7
17
|
|
|
8
18
|
**Note:** Version bump only for package @pie-element/multiple-choice-controller
|
package/controller/lib/index.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.createCorrectResponseSession = void 0;
|
|
8
8
|
exports.createDefaultModel = createDefaultModel;
|
|
9
|
-
exports.getScore = void 0;
|
|
9
|
+
exports.getScore = exports.getLogTrace = void 0;
|
|
10
10
|
exports.model = model;
|
|
11
11
|
exports.normalize = void 0;
|
|
12
12
|
exports.outcome = outcome;
|
|
@@ -139,6 +139,40 @@ const getScore = (config, session) => {
|
|
|
139
139
|
return parseFloat(str.toFixed(2));
|
|
140
140
|
};
|
|
141
141
|
|
|
142
|
+
/**
|
|
143
|
+
* Generates detailed trace log for scoring evaluation
|
|
144
|
+
* @param {Object} model - the question model
|
|
145
|
+
* @param {Object} session - the student session
|
|
146
|
+
* @param {Object} env - the environment
|
|
147
|
+
* @returns {Array} traceLog - array of trace messages
|
|
148
|
+
*/
|
|
149
|
+
exports.getScore = getScore;
|
|
150
|
+
const getLogTrace = (model, session, env) => {
|
|
151
|
+
const traceLog = [];
|
|
152
|
+
const selected = session?.value || [];
|
|
153
|
+
const questionType = model.choiceMode === 'radio' ? 'multiple-choice (radio)' : 'multiple-select (checkbox)';
|
|
154
|
+
traceLog.push(`Question type: ${questionType}.`);
|
|
155
|
+
if (selected.length) {
|
|
156
|
+
traceLog.push(`Student selected ${selected.length} answer(s): ${selected.join(', ')}.`);
|
|
157
|
+
} else {
|
|
158
|
+
traceLog.push('Student did not select any answers.');
|
|
159
|
+
}
|
|
160
|
+
const correctChoices = (model.choices || []).filter(c => c.correct);
|
|
161
|
+
const correctValues = correctChoices.map(c => c.value);
|
|
162
|
+
traceLog.push(`${correctChoices.length} correct answer(s) are defined for this question.`);
|
|
163
|
+
if (selected.length) {
|
|
164
|
+
const correctSelected = selected.filter(v => correctValues.includes(v));
|
|
165
|
+
const incorrectSelected = selected.filter(v => !correctValues.includes(v));
|
|
166
|
+
traceLog.push(`Student selected ${correctSelected.length} correct and ${incorrectSelected.length} incorrect answer(s).`);
|
|
167
|
+
}
|
|
168
|
+
const partialScoringEnabled = _controllerUtils.partialScoring.enabled(model, env) && model.choiceMode !== 'radio';
|
|
169
|
+
const scoringMethod = partialScoringEnabled ? 'partial scoring' : 'all-or-nothing scoring';
|
|
170
|
+
traceLog.push(`Score calculated using ${scoringMethod}.`);
|
|
171
|
+
const score = getScore(model, session);
|
|
172
|
+
traceLog.push(`Final score: ${score}.`);
|
|
173
|
+
return traceLog;
|
|
174
|
+
};
|
|
175
|
+
|
|
142
176
|
/**
|
|
143
177
|
*
|
|
144
178
|
* The score is partial by default for checkbox mode, allOrNothing for radio mode.
|
|
@@ -148,20 +182,23 @@ const getScore = (config, session) => {
|
|
|
148
182
|
* @param {*} session
|
|
149
183
|
* @param {Object} env
|
|
150
184
|
*/
|
|
151
|
-
exports.
|
|
185
|
+
exports.getLogTrace = getLogTrace;
|
|
152
186
|
function outcome(model, session, env) {
|
|
153
187
|
return new Promise(resolve => {
|
|
154
188
|
if (!session || (0, _lodashEs.isEmpty)(session)) {
|
|
155
189
|
resolve({
|
|
156
190
|
score: 0,
|
|
157
|
-
empty: true
|
|
191
|
+
empty: true,
|
|
192
|
+
traceLog: ['Student did not select any answers. Score is 0.']
|
|
158
193
|
});
|
|
159
194
|
} else {
|
|
160
|
-
const
|
|
195
|
+
const traceLog = getLogTrace(model, session, env);
|
|
161
196
|
const score = getScore(model, session);
|
|
197
|
+
const partialScoringEnabled = _controllerUtils.partialScoring.enabled(model, env) && model.choiceMode !== 'radio';
|
|
162
198
|
resolve({
|
|
163
199
|
score: partialScoringEnabled ? score : score === 1 ? 1 : 0,
|
|
164
|
-
empty: false
|
|
200
|
+
empty: false,
|
|
201
|
+
traceLog
|
|
165
202
|
});
|
|
166
203
|
}
|
|
167
204
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_lodashEs","require","_utils","_defaults","_interopRequireDefault","_controllerUtils","prepareChoice","model","env","defaultFeedback","choice","role","mode","out","label","value","rationale","rationaleEnabled","correct","feedbackEnabled","feedbackType","feedback","type","createDefaultModel","Promise","resolve","defaults","normalize","question","verticalMode","choicesLayout","questionProps","exports","session","updateSession","normalizedQuestion","Object","assign","incorrect","choices","map","lockChoiceOrder","lockChoices","getShuffledChoices","disabled","prompt","promptEnabled","gridColumns","choiceMode","keyMode","choicePrefix","responseCorrect","isResponseCorrect","undefined","language","extraCSSRules","fontSizeFactor","isSelectionButtonBelow","selectedAnswerBackgroundColor","selectedAnswerStrokeColor","selectedAnswerStrokeWidth","hoverAnswerBackgroundColor","hoverAnswerStrokeColor","hoverAnswerStrokeWidth","minSelections","maxSelections","keyboardEventsEnabled","autoplayAudioEnabled","completeAudioEnabled","customAudioButton","teacherInstructions","teacherInstructionsEnabled","getScore","config","isEmpty","selectedChoices","correctChoices","filter","ch","score","reduce","acc","selectedChoice","find","length","str","parseFloat","toFixed","outcome","empty","partialScoringEnabled","partialScoring","enabled","createCorrectResponseSession","id","c","getInnerText","html","replaceAll","getContent","replace","validate","minAnswerChoices","maxAnswerChoices","reversedChoices","reverse","choicesErrors","rationaleErrors","errors","forEach","field","required","hasCorrectResponse","index","identicalAnswer","slice","some","nbOfChoices","answerChoices","correctResponse"],"sources":["../src/index.js"],"sourcesContent":["/* eslint-disable no-console */\nimport { isEmpty } from 'lodash-es';\nimport { isResponseCorrect } from './utils';\nimport defaults from './defaults';\nimport { lockChoices, partialScoring, getShuffledChoices } from '@pie-lib/controller-utils';\n\nconst prepareChoice = (model, env, defaultFeedback) => (choice) => {\n const { role, mode } = env || {};\n const out = {\n label: choice.label,\n value: choice.value,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.rationale = model.rationaleEnabled ? choice.rationale : null;\n } else {\n out.rationale = null;\n }\n\n if (mode === 'evaluate') {\n out.correct = !!choice.correct;\n\n if (model.feedbackEnabled) {\n const feedbackType = (choice.feedback && choice.feedback.type) || 'none';\n\n if (feedbackType === 'default') {\n out.feedback = defaultFeedback[choice.correct ? 'correct' : 'incorrect'];\n } else if (feedbackType === 'custom') {\n out.feedback = choice.feedback.value;\n }\n }\n }\n\n return out;\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => {\n const { verticalMode, choicesLayout, ...questionProps } = question || {};\n\n return {\n ...defaults,\n ...questionProps,\n // This is used for offering support for old models which have the property verticalMode\n // Same thing is set in authoring : packages/multiple-choice/configure/src/index.jsx - createDefaultModel\n choicesLayout: choicesLayout || (verticalMode === false && 'horizontal') || defaults.choicesLayout,\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 async function model(question, session, env, updateSession) {\n const normalizedQuestion = normalize(question);\n\n const defaultFeedback = Object.assign(\n { correct: 'Correct', incorrect: 'Incorrect' },\n normalizedQuestion.defaultFeedback,\n );\n\n let choices = (normalizedQuestion.choices || []).map(prepareChoice(normalizedQuestion, env, defaultFeedback));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'value');\n }\n\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choicesLayout: normalizedQuestion.choicesLayout,\n gridColumns: normalizedQuestion.gridColumns,\n choiceMode: normalizedQuestion.choiceMode,\n keyMode: normalizedQuestion.choicePrefix,\n choices,\n responseCorrect: env.mode === 'evaluate' ? isResponseCorrect(normalizedQuestion, session) : undefined,\n language: normalizedQuestion.language,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n fontSizeFactor: normalizedQuestion.fontSizeFactor,\n isSelectionButtonBelow: normalizedQuestion.isSelectionButtonBelow,\n selectedAnswerBackgroundColor: normalizedQuestion.selectedAnswerBackgroundColor || 'initial',\n selectedAnswerStrokeColor: normalizedQuestion.selectedAnswerStrokeColor || 'initial',\n selectedAnswerStrokeWidth: normalizedQuestion.selectedAnswerStrokeWidth || 'initial',\n hoverAnswerBackgroundColor: normalizedQuestion.hoverAnswerBackgroundColor || 'initial',\n hoverAnswerStrokeColor: normalizedQuestion.hoverAnswerStrokeColor || 'initial',\n hoverAnswerStrokeWidth: normalizedQuestion.hoverAnswerStrokeWidth || 'initial',\n minSelections: normalizedQuestion.minSelections,\n maxSelections: normalizedQuestion.maxSelections,\n keyboardEventsEnabled: normalizedQuestion.keyboardEventsEnabled,\n autoplayAudioEnabled: normalizedQuestion.autoplayAudioEnabled,\n completeAudioEnabled: normalizedQuestion.completeAudioEnabled,\n customAudioButton: normalizedQuestion.customAudioButton,\n };\n\n const { role, mode } = env || {};\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n return out;\n}\n\nexport const getScore = (config, session) => {\n if (!session || isEmpty(session)) {\n return 0;\n }\n\n const selectedChoices = session.value || [];\n const correctChoices = (config.choices || []).filter((ch) => ch.correct);\n\n let score = selectedChoices.reduce(\n (acc, selectedChoice) => acc + (correctChoices.find((ch) => ch.value === selectedChoice) ? 1 : 0),\n 0,\n );\n\n if (correctChoices.length < selectedChoices.length) {\n score -= selectedChoices.length - correctChoices.length;\n\n if (score < 0) {\n score = 0;\n }\n }\n\n const str = correctChoices.length ? score / correctChoices.length : 0;\n\n return parseFloat(str.toFixed(2));\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring = false. the value in `env` will\n * override the value in `model`.\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n } else {\n const partialScoringEnabled = partialScoring.enabled(model, env) && model.choiceMode !== 'radio';\n const score = getScore(model, session);\n\n resolve({ score: partialScoringEnabled ? score : score === 1 ? 1 : 0, empty: false });\n }\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { choices } = question || { choices: [] };\n\n resolve({\n id: '1',\n value: choices.filter((c) => c.correct).map((c) => c.value),\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 } = model;\n const { minAnswerChoices = 2, maxAnswerChoices } = config;\n const reversedChoices = [...(choices || [])].reverse();\n const choicesErrors = {};\n const rationaleErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n let hasCorrectResponse = false;\n\n reversedChoices.forEach((choice, index) => {\n const { correct, value, label, rationale } = choice;\n\n if (correct) {\n hasCorrectResponse = true;\n }\n\n if (!getContent(label)) {\n choicesErrors[value] = '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[value] = 'Content should be unique.';\n }\n }\n\n if (config.rationale?.required && !getContent(rationale)) {\n rationaleErrors[value] = 'This field is required.';\n }\n });\n\n const nbOfChoices = (choices || []).length;\n\n if (nbOfChoices < minAnswerChoices) {\n errors.answerChoices = `There should be at least ${minAnswerChoices} choices defined.`;\n } else if (nbOfChoices > maxAnswerChoices) {\n errors.answerChoices = `No more than ${maxAnswerChoices} choices should be defined.`;\n }\n\n if (!hasCorrectResponse) {\n errors.correctResponse = 'No correct response defined.';\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choices = choicesErrors;\n }\n\n if (!isEmpty(rationaleErrors)) {\n errors.rationale = rationaleErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodashEs","require","_utils","_defaults","_interopRequireDefault","_controllerUtils","prepareChoice","model","env","defaultFeedback","choice","role","mode","out","label","value","rationale","rationaleEnabled","correct","feedbackEnabled","feedbackType","feedback","type","createDefaultModel","Promise","resolve","defaults","normalize","question","verticalMode","choicesLayout","questionProps","exports","session","updateSession","normalizedQuestion","Object","assign","incorrect","choices","map","lockChoiceOrder","lockChoices","getShuffledChoices","disabled","prompt","promptEnabled","gridColumns","choiceMode","keyMode","choicePrefix","responseCorrect","isResponseCorrect","undefined","language","extraCSSRules","fontSizeFactor","isSelectionButtonBelow","selectedAnswerBackgroundColor","selectedAnswerStrokeColor","selectedAnswerStrokeWidth","hoverAnswerBackgroundColor","hoverAnswerStrokeColor","hoverAnswerStrokeWidth","minSelections","maxSelections","keyboardEventsEnabled","autoplayAudioEnabled","completeAudioEnabled","customAudioButton","teacherInstructions","teacherInstructionsEnabled","getScore","config","isEmpty","selectedChoices","correctChoices","filter","ch","score","reduce","acc","selectedChoice","find","length","str","parseFloat","toFixed","getLogTrace","traceLog","selected","questionType","push","join","c","correctValues","correctSelected","v","includes","incorrectSelected","partialScoringEnabled","partialScoring","enabled","scoringMethod","outcome","empty","createCorrectResponseSession","id","getInnerText","html","replaceAll","getContent","replace","validate","minAnswerChoices","maxAnswerChoices","reversedChoices","reverse","choicesErrors","rationaleErrors","errors","forEach","field","required","hasCorrectResponse","index","identicalAnswer","slice","some","nbOfChoices","answerChoices","correctResponse"],"sources":["../src/index.js"],"sourcesContent":["/* eslint-disable no-console */\nimport { isEmpty } from 'lodash-es';\nimport { isResponseCorrect } from './utils';\nimport defaults from './defaults';\nimport { lockChoices, partialScoring, getShuffledChoices } from '@pie-lib/controller-utils';\n\nconst prepareChoice = (model, env, defaultFeedback) => (choice) => {\n const { role, mode } = env || {};\n const out = {\n label: choice.label,\n value: choice.value,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.rationale = model.rationaleEnabled ? choice.rationale : null;\n } else {\n out.rationale = null;\n }\n\n if (mode === 'evaluate') {\n out.correct = !!choice.correct;\n\n if (model.feedbackEnabled) {\n const feedbackType = (choice.feedback && choice.feedback.type) || 'none';\n\n if (feedbackType === 'default') {\n out.feedback = defaultFeedback[choice.correct ? 'correct' : 'incorrect'];\n } else if (feedbackType === 'custom') {\n out.feedback = choice.feedback.value;\n }\n }\n }\n\n return out;\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => {\n const { verticalMode, choicesLayout, ...questionProps } = question || {};\n\n return {\n ...defaults,\n ...questionProps,\n // This is used for offering support for old models which have the property verticalMode\n // Same thing is set in authoring : packages/multiple-choice/configure/src/index.jsx - createDefaultModel\n choicesLayout: choicesLayout || (verticalMode === false && 'horizontal') || defaults.choicesLayout,\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 async function model(question, session, env, updateSession) {\n const normalizedQuestion = normalize(question);\n\n const defaultFeedback = Object.assign(\n { correct: 'Correct', incorrect: 'Incorrect' },\n normalizedQuestion.defaultFeedback,\n );\n\n let choices = (normalizedQuestion.choices || []).map(prepareChoice(normalizedQuestion, env, defaultFeedback));\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n choices = await getShuffledChoices(choices, session, updateSession, 'value');\n }\n\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n choicesLayout: normalizedQuestion.choicesLayout,\n gridColumns: normalizedQuestion.gridColumns,\n choiceMode: normalizedQuestion.choiceMode,\n keyMode: normalizedQuestion.choicePrefix,\n choices,\n responseCorrect: env.mode === 'evaluate' ? isResponseCorrect(normalizedQuestion, session) : undefined,\n language: normalizedQuestion.language,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n fontSizeFactor: normalizedQuestion.fontSizeFactor,\n isSelectionButtonBelow: normalizedQuestion.isSelectionButtonBelow,\n selectedAnswerBackgroundColor: normalizedQuestion.selectedAnswerBackgroundColor || 'initial',\n selectedAnswerStrokeColor: normalizedQuestion.selectedAnswerStrokeColor || 'initial',\n selectedAnswerStrokeWidth: normalizedQuestion.selectedAnswerStrokeWidth || 'initial',\n hoverAnswerBackgroundColor: normalizedQuestion.hoverAnswerBackgroundColor || 'initial',\n hoverAnswerStrokeColor: normalizedQuestion.hoverAnswerStrokeColor || 'initial',\n hoverAnswerStrokeWidth: normalizedQuestion.hoverAnswerStrokeWidth || 'initial',\n minSelections: normalizedQuestion.minSelections,\n maxSelections: normalizedQuestion.maxSelections,\n keyboardEventsEnabled: normalizedQuestion.keyboardEventsEnabled,\n autoplayAudioEnabled: normalizedQuestion.autoplayAudioEnabled,\n completeAudioEnabled: normalizedQuestion.completeAudioEnabled,\n customAudioButton: normalizedQuestion.customAudioButton,\n };\n\n const { role, mode } = env || {};\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n return out;\n}\n\nexport const getScore = (config, session) => {\n if (!session || isEmpty(session)) {\n return 0;\n }\n\n const selectedChoices = session.value || [];\n const correctChoices = (config.choices || []).filter((ch) => ch.correct);\n\n let score = selectedChoices.reduce(\n (acc, selectedChoice) => acc + (correctChoices.find((ch) => ch.value === selectedChoice) ? 1 : 0),\n 0,\n );\n\n if (correctChoices.length < selectedChoices.length) {\n score -= selectedChoices.length - correctChoices.length;\n\n if (score < 0) {\n score = 0;\n }\n }\n\n const str = correctChoices.length ? score / correctChoices.length : 0;\n\n return parseFloat(str.toFixed(2));\n};\n\n/**\n * Generates detailed trace log for scoring evaluation\n * @param {Object} model - the question model\n * @param {Object} session - the student session\n * @param {Object} env - the environment\n * @returns {Array} traceLog - array of trace messages\n */\nexport const getLogTrace = (model, session, env) => {\n const traceLog = [];\n const selected = session?.value || [];\n \n const questionType = model.choiceMode === 'radio' ? 'multiple-choice (radio)' : 'multiple-select (checkbox)';\n traceLog.push(`Question type: ${questionType}.`);\n \n if (selected.length) {\n traceLog.push(`Student selected ${selected.length} answer(s): ${selected.join(', ')}.`);\n } else {\n traceLog.push('Student did not select any answers.');\n }\n\n const correctChoices = (model.choices || []).filter((c) => c.correct);\n const correctValues = correctChoices.map((c) => c.value);\n traceLog.push(`${correctChoices.length} correct answer(s) are defined for this question.`);\n \n if (selected.length) {\n const correctSelected = selected.filter((v) => correctValues.includes(v));\n const incorrectSelected = selected.filter((v) => !correctValues.includes(v));\n traceLog.push(\n `Student selected ${correctSelected.length} correct and ${incorrectSelected.length} incorrect answer(s).`\n );\n }\n\n const partialScoringEnabled = partialScoring.enabled(model, env) && model.choiceMode !== 'radio';\n const scoringMethod = partialScoringEnabled ? 'partial scoring' : 'all-or-nothing scoring';\n traceLog.push(`Score calculated using ${scoringMethod}.`);\n\n const score = getScore(model, session);\n traceLog.push(`Final score: ${score}.`);\n\n return traceLog;\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring = false. the value in `env` will\n * override the value in `model`.\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true, traceLog: ['Student did not select any answers. Score is 0.'] });\n } else {\n const traceLog = getLogTrace(model, session, env);\n const score = getScore(model, session);\n const partialScoringEnabled = partialScoring.enabled(model, env) && model.choiceMode !== 'radio';\n\n resolve({ \n score: partialScoringEnabled ? score : score === 1 ? 1 : 0, \n empty: false, \n traceLog \n });\n }\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { choices } = question || { choices: [] };\n\n resolve({\n id: '1',\n value: choices.filter((c) => c.correct).map((c) => c.value),\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 } = model;\n const { minAnswerChoices = 2, maxAnswerChoices } = config;\n const reversedChoices = [...(choices || [])].reverse();\n const choicesErrors = {};\n const rationaleErrors = {};\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n let hasCorrectResponse = false;\n\n reversedChoices.forEach((choice, index) => {\n const { correct, value, label, rationale } = choice;\n\n if (correct) {\n hasCorrectResponse = true;\n }\n\n if (!getContent(label)) {\n choicesErrors[value] = '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[value] = 'Content should be unique.';\n }\n }\n\n if (config.rationale?.required && !getContent(rationale)) {\n rationaleErrors[value] = 'This field is required.';\n }\n });\n\n const nbOfChoices = (choices || []).length;\n\n if (nbOfChoices < minAnswerChoices) {\n errors.answerChoices = `There should be at least ${minAnswerChoices} choices defined.`;\n } else if (nbOfChoices > maxAnswerChoices) {\n errors.answerChoices = `No more than ${maxAnswerChoices} choices should be defined.`;\n }\n\n if (!hasCorrectResponse) {\n errors.correctResponse = 'No correct response defined.';\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choices = choicesErrors;\n }\n\n if (!isEmpty(rationaleErrors)) {\n errors.rationale = rationaleErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/controller/package.json
CHANGED
package/lib/choice-input.js
CHANGED
|
@@ -28,10 +28,16 @@ const CheckboxHolder = (0, _styles.styled)(_Box.default)({
|
|
|
28
28
|
alignItems: 'center',
|
|
29
29
|
backgroundColor: _renderUi.color.background(),
|
|
30
30
|
flex: 1,
|
|
31
|
+
'& .MuiFormControlLabel-root': {
|
|
32
|
+
marginLeft: '-14px' // to be consistent to previous versions before MUI v5 upgrade
|
|
33
|
+
},
|
|
31
34
|
'& label': {
|
|
32
35
|
color: _renderUi.color.text(),
|
|
33
36
|
'& > span': {
|
|
34
37
|
fontSize: 'inherit'
|
|
38
|
+
},
|
|
39
|
+
'& > .MuiButtonBase-root': {
|
|
40
|
+
padding: '12px' // to be consistent to previous versions before MUI v5 upgrade
|
|
35
41
|
}
|
|
36
42
|
}
|
|
37
43
|
});
|
package/lib/choice-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice-input.js","names":["_FormControlLabel","_interopRequireDefault","require","_react","_propTypes","_styles","_Box","_Checkbox","_renderUi","_Radio","_classnames","_feedbackTick","CLASS_NAME","Row","styled","Box","display","alignItems","backgroundColor","color","background","CheckboxHolder","flex","text","fontSize","BelowSelectionComponent","theme","marginLeft","spacing","SrOnly","position","left","top","width","height","overflow","StyledFormControlLabel","exports","FormControlLabel","letterSpacing","cursor","colorStyle","varName","fallback","getInputStyles","correctness","key","k","primaryLight","incorrect","correct","primary","disabled","opacity","pointerEvents","focusVisibleUnchecked","outline","focusUncheckedBorder","focusUnchecked","focusVisibleChecked","focusCheckedBorder","focusChecked","StyledCheckboxBase","Checkbox","shouldForwardProp","prop","styles","StyledCheckbox","props","checked","onChange","value","id","onKeyDown","inputRef","miniProps","default","createElement","_extends2","slotProps","input","ref","disableRipple","className","StyledRadioBase","Radio","StyledRadio","tagName","name","ChoiceInput","React","Component","constructor","_defineProperty2","event","choiceMode","isArrowDown","isArrowUp","preventDefault","currentEl","document","getElementById","choiceId","fieldset","closest","groupCheckboxes","Array","from","querySelectorAll","currentIndex","findIndex","el","nextIndex","nextEl","focus","onToggleChoice","bind","generateChoiceId","descId","Math","random","toFixed","render","displayKey","feedback","label","rationale","hideTick","isEvaluateMode","choicesLayout","isSelectionButtonBelow","Tag","classSuffix","holderSx","padding","margin","justifyContent","choicelabel","Fragment","component","PreviewPrompt","prompt","screenReaderLabel","tagProps","handleKeyDown","hasMathOrImage","includes","control","style","autoFocusRef","classNames","sx","htmlFor","labelPlacement","undefined","defaultClassName","Feedback","PropTypes","oneOf","string","bool","isRequired","func","_default"],"sources":["../src/choice-input.jsx"],"sourcesContent":["import FormControlLabel from '@mui/material/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\nimport Checkbox from '@mui/material/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport Radio from '@mui/material/Radio';\nimport classNames from 'classnames';\n\nimport FeedbackTick from './feedback-tick';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst Row = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n});\n\nconst CheckboxHolder = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n '& > span': {\n fontSize: 'inherit',\n },\n },\n});\n\nconst BelowSelectionComponent = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n '& > span': {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n marginLeft: `-${theme.spacing(1)}px`,\n },\n}));\n\nconst SrOnly = styled('span')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nexport const StyledFormControlLabel = styled(FormControlLabel)({\n '& .MuiFormControlLabel-label': {\n color: `${color.text()} !important`,\n backgroundColor: color.background(),\n letterSpacing: 'normal',\n },\n '&.Mui-disabled *': {\n cursor: 'not-allowed !important',\n },\n});\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst getInputStyles = (correctness) => {\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n \n return {\n [key('root')]: {\n ...colorStyle('color', color.text()),\n ...(correctness ? {} : {\n '&:hover': { color: `${color.primaryLight()} !important` },\n }),\n ...(correctness === 'correct' ? colorStyle('correct-color', color.text()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-color', color.incorrect()) : {}),\n },\n [key('checked')]: {\n ...(correctness === 'correct' ? colorStyle('correct-selected-color', color.correct()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-checked', color.incorrect()) : {}),\n ...(!correctness ? colorStyle('selected-color', color.primary()) : {}),\n },\n [key('disabled')]: {\n ...colorStyle('disabled-color', color.text()),\n ...(correctness === 'correct' ? colorStyle('correct-disabled-color', color.disabled()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-disabled-color', color.disabled()) : {}),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n focusVisibleUnchecked: {\n outline: `2px solid ${color.focusUncheckedBorder()}`,\n backgroundColor: color.focusUnchecked(),\n },\n focusVisibleChecked: {\n outline: `2px solid ${color.focusCheckedBorder()}`,\n backgroundColor: color.focusChecked(),\n },\n };\n};\n\nconst StyledCheckboxBase = styled(Checkbox, {\n shouldForwardProp: (prop) => prop !== 'correctness',\n})(({ correctness }) => {\n const styles = getInputStyles(correctness);\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n \n return {\n [`&.${CLASS_NAME}`]: {\n ...styles[key('root')],\n '&.Mui-checked': styles[key('checked')],\n '&.Mui-disabled': correctness ? {} : styles[key('disabled')],\n },\n '&.Mui-focusVisible': {\n '&:not(.Mui-checked)': styles.focusVisibleUnchecked,\n '&.Mui-checked': styles.focusVisibleChecked,\n },\n };\n});\n\nexport const StyledCheckbox = (props) => {\n const { correctness, checked, onChange, disabled, value, id, onKeyDown, inputRef } = props;\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <StyledCheckboxBase\n id={id}\n slotProps={{ input: { ref: inputRef } }}\n onKeyDown={onKeyDown}\n disableRipple\n {...miniProps}\n correctness={correctness}\n className={CLASS_NAME}\n />\n );\n};\n\nconst StyledRadioBase = styled(Radio, {\n shouldForwardProp: (prop) => prop !== 'correctness',\n})(({ correctness }) => {\n const styles = getInputStyles(correctness);\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n \n return {\n [`&.${CLASS_NAME}`]: {\n ...styles[key('root')],\n '&.Mui-checked': styles[key('checked')],\n '&.Mui-disabled': correctness ? {} : styles[key('disabled')],\n },\n '&.Mui-focusVisible': {\n '&:not(.Mui-checked)': styles.focusVisibleUnchecked,\n '&.Mui-checked': styles.focusVisibleChecked,\n },\n };\n});\n\nexport const StyledRadio = (props) => {\n const { correctness, checked, onChange, disabled, value, id, tagName, inputRef } = props;\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <StyledRadioBase\n id={id}\n slotProps={{ input: { ref: inputRef } }}\n disableRipple\n {...miniProps}\n correctness={correctness}\n className={CLASS_NAME}\n name={tagName}\n />\n );\n};\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n className: PropTypes.string,\n tagName: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n isSelectionButtonBelow: PropTypes.bool,\n };\n\n static defaultProps = {\n rationale: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n this.choiceId = this.generateChoiceId();\n this.descId = `${this.choiceId}-desc`;\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n }\n\n generateChoiceId() {\n return 'choice-' + (Math.random() * 10000).toFixed();\n }\n\n handleKeyDown = (event) => {\n const { choiceMode } = this.props;\n\n if (choiceMode !== 'checkbox') return;\n\n const isArrowDown = event.key === 'ArrowDown';\n const isArrowUp = event.key === 'ArrowUp';\n\n if (!isArrowDown && !isArrowUp) return;\n\n event.preventDefault();\n\n const currentEl = document.getElementById(this.choiceId);\n if (!currentEl) return;\n\n const fieldset = currentEl.closest('fieldset');\n if (!fieldset) return;\n\n const groupCheckboxes = Array.from(fieldset.querySelectorAll('input[type=\"checkbox\"]'));\n\n const currentIndex = groupCheckboxes.findIndex((el) => el === currentEl);\n if (currentIndex === -1) return;\n\n const nextIndex = isArrowDown ? currentIndex + 1 : currentIndex - 1;\n const nextEl = groupCheckboxes[nextIndex];\n\n if (nextEl) {\n nextEl.focus();\n }\n };\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n className,\n rationale,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n tagName,\n isSelectionButtonBelow,\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderSx = {\n ...(choicesLayout === 'horizontal' && {\n [`& .${CLASS_NAME}`]: {\n padding: '8px',\n margin: '4px 0 4px 4px',\n },\n }),\n ...(isSelectionButtonBelow && choicesLayout !== 'grid' && {\n '& > label': {\n alignItems: 'flex-start',\n },\n }),\n ...(isSelectionButtonBelow && choicesLayout === 'grid' && {\n justifyContent: 'center',\n '& > label': {\n alignItems: 'center',\n },\n }),\n };\n\n const choicelabel = (\n <>\n {displayKey && !isSelectionButtonBelow ? (\n <Row component=\"span\">\n {displayKey}.{'\\u00A0'}\n <PreviewPrompt className=\"prompt-label\" prompt={label} tagName=\"span\" />\n </Row>\n ) : (\n <PreviewPrompt className=\"prompt-label\" prompt={label} tagName=\"span\" />\n )}\n </>\n );\n\n const screenReaderLabel = (\n <SrOnly id={this.descId}>\n {choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below'}\n </SrOnly>\n );\n\n const tagProps = {\n disabled,\n checked,\n correctness,\n tagName,\n value,\n id: this.choiceId,\n onChange: this.onToggleChoice,\n onKeyDown: this.handleKeyDown,\n 'aria-describedby': this.descId,\n };\n\n const hasMathOrImage =\n typeof label === 'string' &&\n (label.includes('<math') ||\n label.includes('\\\\(') ||\n label.includes('\\\\[') ||\n label.includes('<img') ||\n label.includes('data-latex') ||\n label.includes('data-raw') ||\n label.includes('<mjx-container'));\n\n const control = isSelectionButtonBelow ? (\n <BelowSelectionComponent>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} style={{ padding: 0 }} />\n {displayKey ? `${displayKey}.` : ''}\n </BelowSelectionComponent>\n ) : (\n <>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} slotProps={{ input: { ref: this.props.autoFocusRef } }} />\n </>\n );\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <Row>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <CheckboxHolder className=\"checkbox-holder\" sx={holderSx}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n htmlFor={this.choiceId}\n labelPlacement={isSelectionButtonBelow ? 'top' : undefined}\n control={control}\n />\n </CheckboxHolder>\n </Row>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default ChoiceInput;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"choice-input.js","names":["_FormControlLabel","_interopRequireDefault","require","_react","_propTypes","_styles","_Box","_Checkbox","_renderUi","_Radio","_classnames","_feedbackTick","CLASS_NAME","Row","styled","Box","display","alignItems","backgroundColor","color","background","CheckboxHolder","flex","marginLeft","text","fontSize","padding","BelowSelectionComponent","theme","spacing","SrOnly","position","left","top","width","height","overflow","StyledFormControlLabel","exports","FormControlLabel","letterSpacing","cursor","colorStyle","varName","fallback","getInputStyles","correctness","key","k","primaryLight","incorrect","correct","primary","disabled","opacity","pointerEvents","focusVisibleUnchecked","outline","focusUncheckedBorder","focusUnchecked","focusVisibleChecked","focusCheckedBorder","focusChecked","StyledCheckboxBase","Checkbox","shouldForwardProp","prop","styles","StyledCheckbox","props","checked","onChange","value","id","onKeyDown","inputRef","miniProps","default","createElement","_extends2","slotProps","input","ref","disableRipple","className","StyledRadioBase","Radio","StyledRadio","tagName","name","ChoiceInput","React","Component","constructor","_defineProperty2","event","choiceMode","isArrowDown","isArrowUp","preventDefault","currentEl","document","getElementById","choiceId","fieldset","closest","groupCheckboxes","Array","from","querySelectorAll","currentIndex","findIndex","el","nextIndex","nextEl","focus","onToggleChoice","bind","generateChoiceId","descId","Math","random","toFixed","render","displayKey","feedback","label","rationale","hideTick","isEvaluateMode","choicesLayout","isSelectionButtonBelow","Tag","classSuffix","holderSx","margin","justifyContent","choicelabel","Fragment","component","PreviewPrompt","prompt","screenReaderLabel","tagProps","handleKeyDown","hasMathOrImage","includes","control","style","autoFocusRef","classNames","sx","htmlFor","labelPlacement","undefined","defaultClassName","Feedback","PropTypes","oneOf","string","bool","isRequired","func","_default"],"sources":["../src/choice-input.jsx"],"sourcesContent":["import FormControlLabel from '@mui/material/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\nimport Checkbox from '@mui/material/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport Radio from '@mui/material/Radio';\nimport classNames from 'classnames';\n\nimport FeedbackTick from './feedback-tick';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst Row = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n});\n\nconst CheckboxHolder = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& .MuiFormControlLabel-root': {\n marginLeft: '-14px', // to be consistent to previous versions before MUI v5 upgrade \n },\n '& label': {\n color: color.text(),\n '& > span': {\n fontSize: 'inherit',\n },\n '& > .MuiButtonBase-root': {\n padding: '12px', // to be consistent to previous versions before MUI v5 upgrade \n },\n },\n});\n\nconst BelowSelectionComponent = styled('span')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n '& > span': {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n marginLeft: `-${theme.spacing(1)}px`,\n },\n}));\n\nconst SrOnly = styled('span')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nexport const StyledFormControlLabel = styled(FormControlLabel)({\n '& .MuiFormControlLabel-label': {\n color: `${color.text()} !important`,\n backgroundColor: color.background(),\n letterSpacing: 'normal',\n },\n '&.Mui-disabled *': {\n cursor: 'not-allowed !important',\n },\n});\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst getInputStyles = (correctness) => {\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n return {\n [key('root')]: {\n ...colorStyle('color', color.text()),\n ...(correctness ? {} : {\n '&:hover': { color: `${color.primaryLight()} !important` },\n }),\n ...(correctness === 'correct' ? colorStyle('correct-color', color.text()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-color', color.incorrect()) : {}),\n },\n [key('checked')]: {\n ...(correctness === 'correct' ? colorStyle('correct-selected-color', color.correct()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-checked', color.incorrect()) : {}),\n ...(!correctness ? colorStyle('selected-color', color.primary()) : {}),\n },\n [key('disabled')]: {\n ...colorStyle('disabled-color', color.text()),\n ...(correctness === 'correct' ? colorStyle('correct-disabled-color', color.disabled()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-disabled-color', color.disabled()) : {}),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n focusVisibleUnchecked: {\n outline: `2px solid ${color.focusUncheckedBorder()}`,\n backgroundColor: color.focusUnchecked(),\n },\n focusVisibleChecked: {\n outline: `2px solid ${color.focusCheckedBorder()}`,\n backgroundColor: color.focusChecked(),\n },\n };\n};\n\nconst StyledCheckboxBase = styled(Checkbox, {\n shouldForwardProp: (prop) => prop !== 'correctness',\n})(({ correctness }) => {\n const styles = getInputStyles(correctness);\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n return {\n [`&.${CLASS_NAME}`]: {\n ...styles[key('root')],\n '&.Mui-checked': styles[key('checked')],\n '&.Mui-disabled': correctness ? {} : styles[key('disabled')],\n },\n '&.Mui-focusVisible': {\n '&:not(.Mui-checked)': styles.focusVisibleUnchecked,\n '&.Mui-checked': styles.focusVisibleChecked,\n },\n };\n});\n\nexport const StyledCheckbox = (props) => {\n const { correctness, checked, onChange, disabled, value, id, onKeyDown, inputRef } = props;\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <StyledCheckboxBase\n id={id}\n slotProps={{ input: { ref: inputRef } }}\n onKeyDown={onKeyDown}\n disableRipple\n {...miniProps}\n correctness={correctness}\n className={CLASS_NAME}\n />\n );\n};\n\nconst StyledRadioBase = styled(Radio, {\n shouldForwardProp: (prop) => prop !== 'correctness',\n})(({ correctness }) => {\n const styles = getInputStyles(correctness);\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n return {\n [`&.${CLASS_NAME}`]: {\n ...styles[key('root')],\n '&.Mui-checked': styles[key('checked')],\n '&.Mui-disabled': correctness ? {} : styles[key('disabled')],\n },\n '&.Mui-focusVisible': {\n '&:not(.Mui-checked)': styles.focusVisibleUnchecked,\n '&.Mui-checked': styles.focusVisibleChecked,\n },\n };\n});\n\nexport const StyledRadio = (props) => {\n const { correctness, checked, onChange, disabled, value, id, tagName, inputRef } = props;\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <StyledRadioBase\n id={id}\n slotProps={{ input: { ref: inputRef } }}\n disableRipple\n {...miniProps}\n correctness={correctness}\n className={CLASS_NAME}\n name={tagName}\n />\n );\n};\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n className: PropTypes.string,\n tagName: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n isSelectionButtonBelow: PropTypes.bool,\n };\n\n static defaultProps = {\n rationale: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n this.choiceId = this.generateChoiceId();\n this.descId = `${this.choiceId}-desc`;\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n }\n\n generateChoiceId() {\n return 'choice-' + (Math.random() * 10000).toFixed();\n }\n\n handleKeyDown = (event) => {\n const { choiceMode } = this.props;\n\n if (choiceMode !== 'checkbox') return;\n\n const isArrowDown = event.key === 'ArrowDown';\n const isArrowUp = event.key === 'ArrowUp';\n\n if (!isArrowDown && !isArrowUp) return;\n\n event.preventDefault();\n\n const currentEl = document.getElementById(this.choiceId);\n if (!currentEl) return;\n\n const fieldset = currentEl.closest('fieldset');\n if (!fieldset) return;\n\n const groupCheckboxes = Array.from(fieldset.querySelectorAll('input[type=\"checkbox\"]'));\n\n const currentIndex = groupCheckboxes.findIndex((el) => el === currentEl);\n if (currentIndex === -1) return;\n\n const nextIndex = isArrowDown ? currentIndex + 1 : currentIndex - 1;\n const nextEl = groupCheckboxes[nextIndex];\n\n if (nextEl) {\n nextEl.focus();\n }\n };\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n className,\n rationale,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n tagName,\n isSelectionButtonBelow,\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderSx = {\n ...(choicesLayout === 'horizontal' && {\n [`& .${CLASS_NAME}`]: {\n padding: '8px',\n margin: '4px 0 4px 4px',\n },\n }),\n ...(isSelectionButtonBelow && choicesLayout !== 'grid' && {\n '& > label': {\n alignItems: 'flex-start',\n },\n }),\n ...(isSelectionButtonBelow && choicesLayout === 'grid' && {\n justifyContent: 'center',\n '& > label': {\n alignItems: 'center',\n },\n }),\n };\n\n const choicelabel = (\n <>\n {displayKey && !isSelectionButtonBelow ? (\n <Row component=\"span\">\n {displayKey}.{'\\u00A0'}\n <PreviewPrompt className=\"prompt-label\" prompt={label} tagName=\"span\" />\n </Row>\n ) : (\n <PreviewPrompt className=\"prompt-label\" prompt={label} tagName=\"span\" />\n )}\n </>\n );\n\n const screenReaderLabel = (\n <SrOnly id={this.descId}>\n {choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below'}\n </SrOnly>\n );\n\n const tagProps = {\n disabled,\n checked,\n correctness,\n tagName,\n value,\n id: this.choiceId,\n onChange: this.onToggleChoice,\n onKeyDown: this.handleKeyDown,\n 'aria-describedby': this.descId,\n };\n\n const hasMathOrImage =\n typeof label === 'string' &&\n (label.includes('<math') ||\n label.includes('\\\\(') ||\n label.includes('\\\\[') ||\n label.includes('<img') ||\n label.includes('data-latex') ||\n label.includes('data-raw') ||\n label.includes('<mjx-container'));\n\n const control = isSelectionButtonBelow ? (\n <BelowSelectionComponent>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} style={{ padding: 0 }} />\n {displayKey ? `${displayKey}.` : ''}\n </BelowSelectionComponent>\n ) : (\n <>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} slotProps={{ input: { ref: this.props.autoFocusRef } }} />\n </>\n );\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <Row>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <CheckboxHolder className=\"checkbox-holder\" sx={holderSx}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n htmlFor={this.choiceId}\n labelPlacement={isSelectionButtonBelow ? 'top' : undefined}\n control={control}\n />\n </CheckboxHolder>\n </Row>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default ChoiceInput;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/multiple-choice",
|
|
3
3
|
"repository": "pie-framework/pie-elements",
|
|
4
|
-
"version": "12.
|
|
4
|
+
"version": "12.2.0-next.1",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"react-dom": "18.3.1",
|
|
24
24
|
"react-transition-group": "^4.4.5"
|
|
25
25
|
},
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "5052ddbf1c97a5a414330a25b453455ae56977e9",
|
|
27
27
|
"scripts": {
|
|
28
28
|
"postpublish": "../../scripts/postpublish"
|
|
29
29
|
},
|