@pie-element/multiple-choice 7.6.1-beta.2 → 7.6.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.
Files changed (39) hide show
  1. package/configure/lib/defaults.js +0 -1
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/index.js +3 -47
  4. package/configure/lib/index.js.map +1 -1
  5. package/configure/lib/main.js +84 -142
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/lib/utils.js +1 -3
  8. package/configure/lib/utils.js.map +1 -1
  9. package/configure/package.json +3 -3
  10. package/controller/lib/defaults.js.map +1 -1
  11. package/controller/lib/index.js +54 -110
  12. package/controller/lib/index.js.map +1 -1
  13. package/controller/lib/utils.js +0 -8
  14. package/controller/lib/utils.js.map +1 -1
  15. package/lib/choice-input.js +24 -63
  16. package/lib/choice-input.js.map +1 -1
  17. package/lib/choice.js +17 -49
  18. package/lib/choice.js.map +1 -1
  19. package/lib/feedback-tick.js +2 -28
  20. package/lib/feedback-tick.js.map +1 -1
  21. package/lib/index.js +2 -36
  22. package/lib/index.js.map +1 -1
  23. package/lib/main.js +5 -27
  24. package/lib/main.js.map +1 -1
  25. package/lib/multiple-choice.js +13 -45
  26. package/lib/multiple-choice.js.map +1 -1
  27. package/lib/print.js +1 -27
  28. package/lib/print.js.map +1 -1
  29. package/lib/session-updater.js +0 -7
  30. package/lib/session-updater.js.map +1 -1
  31. package/package.json +3 -3
  32. package/configure/lib/__tests__/root.test.js +0 -271
  33. package/controller/lib/__tests__/index.test.js +0 -864
  34. package/controller/lib/__tests__/utils.test.js +0 -8
  35. package/docs/demo/pie.manifest.json +0 -11
  36. package/lib/__tests__/choice-input-test.js +0 -124
  37. package/lib/__tests__/index-test.js +0 -22
  38. package/lib/__tests__/multiple-choice-test.js +0 -237
  39. package/lib/__tests__/session-updater-test.js +0 -72
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["prepareChoice","model","env","defaultFeedback","choice","role","mode","out","label","value","accessibilityLabelsEnabled","accessibility","textContent","rationale","rationaleEnabled","correct","feedbackEnabled","feedbackType","feedback","type","createDefaultModel","Promise","resolve","defaults","normalize","question","verticalMode","choicesLayout","questionProps","session","updateSession","normalizedQuestion","Object","assign","incorrect","choices","map","lockChoiceOrder","disabled","prompt","promptEnabled","gridColumns","choiceMode","keyMode","choicePrefix","responseCorrect","undefined","teacherInstructions","teacherInstructionsEnabled","getScore","config","selectedChoices","correctChoices","filter","ch","score","reduce","acc","selectedChoice","find","length","str","parseFloat","toFixed","outcome","empty","partialScoringEnabled","partialScoring","enabled","createCorrectResponseSession","id","c","validate","minAnswerChoices","maxAnswerChoices","reversedChoices","reverse","choicesErrors","hasCorrectResponse","forEach","index","identicalAnswer","slice","some","errors","nbOfChoices","answerChoicesError","correctResponseError"],"mappings":"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","sourcesContent":["/* eslint-disable no-console */\nimport isEmpty from 'lodash/isEmpty';\nimport { isResponseCorrect, parseHTML } 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 (model.accessibilityLabelsEnabled) {\n out.accessibility = parseHTML(choice.accessibility).textContent || 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 };\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\nexport const validate = (model = {}, config = {}) => {\n const { choices } = model;\n const { minAnswerChoices = 2, maxAnswerChoices } = config;\n const reversedChoices = [...(choices || [])].reverse();\n const choicesErrors = {};\n let hasCorrectResponse = false;\n\n reversedChoices.forEach((choice, index) => {\n const { correct, value, label } = choice;\n\n if (correct) {\n hasCorrectResponse = true;\n }\n\n if (label === '' || label === '<div></div>') {\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\n const errors = {};\n const nbOfChoices = (choices || []).length;\n\n if (nbOfChoices < minAnswerChoices) {\n errors.answerChoicesError = `There should be at least ${minAnswerChoices} choices defined.`;\n } else if (nbOfChoices > maxAnswerChoices) {\n errors.answerChoicesError = `No more than ${maxAnswerChoices} choices should be defined.`;\n }\n\n if (!hasCorrectResponse) {\n errors.correctResponseError = 'No correct response defined.';\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choicesErrors = choicesErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["_isEmpty","_interopRequireDefault","require","_utils","_defaults","_controllerUtils","_excluded","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","prepareChoice","model","env","defaultFeedback","choice","_ref","role","mode","out","label","value","accessibilityLabelsEnabled","accessibility","parseHTML","textContent","rationale","rationaleEnabled","correct","feedbackEnabled","feedbackType","feedback","type","createDefaultModel","undefined","Promise","resolve","defaults","normalize","question","_ref2","verticalMode","choicesLayout","questionProps","_objectWithoutProperties2","exports","_x","_x2","_x3","_x4","_model","_asyncToGenerator2","_regenerator","mark","_callee","session","updateSession","normalizedQuestion","choices","lockChoiceOrder","_ref4","wrap","_callee$","_context","prev","next","assign","incorrect","map","lockChoices","getShuffledChoices","sent","disabled","prompt","promptEnabled","gridColumns","choiceMode","keyMode","choicePrefix","responseCorrect","isResponseCorrect","teacherInstructions","teacherInstructionsEnabled","abrupt","stop","getScore","config","isEmpty","selectedChoices","correctChoices","ch","score","reduce","acc","selectedChoice","find","str","parseFloat","toFixed","outcome","empty","partialScoringEnabled","partialScoring","enabled","createCorrectResponseSession","_ref3","id","c","validate","_config$minAnswerChoi","minAnswerChoices","maxAnswerChoices","reversedChoices","_toConsumableArray2","reverse","choicesErrors","hasCorrectResponse","index","identicalAnswer","slice","some","errors","nbOfChoices","answerChoicesError","concat","correctResponseError"],"sources":["../src/index.js"],"sourcesContent":["/* eslint-disable no-console */\nimport isEmpty from 'lodash/isEmpty';\nimport { isResponseCorrect, parseHTML } 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 (model.accessibilityLabelsEnabled) {\n out.accessibility = parseHTML(choice.accessibility).textContent || 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 };\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\nexport const validate = (model = {}, config = {}) => {\n const { choices } = model;\n const { minAnswerChoices = 2, maxAnswerChoices } = config;\n const reversedChoices = [...(choices || [])].reverse();\n const choicesErrors = {};\n let hasCorrectResponse = false;\n\n reversedChoices.forEach((choice, index) => {\n const { correct, value, label } = choice;\n\n if (correct) {\n hasCorrectResponse = true;\n }\n\n if (label === '' || label === '<div></div>') {\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\n const errors = {};\n const nbOfChoices = (choices || []).length;\n\n if (nbOfChoices < minAnswerChoices) {\n errors.answerChoicesError = `There should be at least ${minAnswerChoices} choices defined.`;\n } else if (nbOfChoices > maxAnswerChoices) {\n errors.answerChoicesError = `No more than ${maxAnswerChoices} choices should be defined.`;\n }\n\n if (!hasCorrectResponse) {\n errors.correctResponseError = 'No correct response defined.';\n }\n\n if (!isEmpty(choicesErrors)) {\n errors.choicesErrors = choicesErrors;\n }\n\n return errors;\n};\n"],"mappings":"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"}
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.parseHTML = exports.isResponseCorrect = exports.getCorrectResponse = void 0;
9
-
10
8
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
11
-
12
9
  var getCorrectResponse = function getCorrectResponse(choices) {
13
10
  return choices.filter(function (c) {
14
11
  return c.correct;
@@ -16,21 +13,16 @@ var getCorrectResponse = function getCorrectResponse(choices) {
16
13
  return c.value;
17
14
  }).sort();
18
15
  };
19
-
20
16
  exports.getCorrectResponse = getCorrectResponse;
21
-
22
17
  var isResponseCorrect = function isResponseCorrect(question, session) {
23
18
  var correctResponse = getCorrectResponse(question.choices);
24
19
  return session && (0, _isEqual["default"])((session.value || []).sort(), correctResponse);
25
20
  };
26
-
27
21
  exports.isResponseCorrect = isResponseCorrect;
28
-
29
22
  var parseHTML = function parseHTML(html) {
30
23
  var template = document.createElement('template');
31
24
  template.innerHTML = html;
32
25
  return template.content;
33
26
  };
34
-
35
27
  exports.parseHTML = parseHTML;
36
28
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["getCorrectResponse","choices","filter","c","correct","map","value","sort","isResponseCorrect","question","session","correctResponse","parseHTML","html","template","document","createElement","innerHTML","content"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,OAAD;AAAA,SAChCA,OAAO,CACJC,MADH,CACU,UAACC,CAAD;AAAA,WAAOA,CAAC,CAACC,OAAT;AAAA,GADV,EAEGC,GAFH,CAEO,UAACF,CAAD;AAAA,WAAOA,CAAC,CAACG,KAAT;AAAA,GAFP,EAGGC,IAHH,EADgC;AAAA,CAA3B;;;;AAMA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAWC,OAAX,EAAuB;AACtD,MAAIC,eAAe,GAAGX,kBAAkB,CAACS,QAAQ,CAACR,OAAV,CAAxC;AACA,SAAOS,OAAO,IAAI,yBAAQ,CAACA,OAAO,CAACJ,KAAR,IAAiB,EAAlB,EAAsBC,IAAtB,EAAR,EAAsCI,eAAtC,CAAlB;AACD,CAHM;;;;AAKA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAU;AACjC,MAAMC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,UAAvB,CAAjB;AACAF,EAAAA,QAAQ,CAACG,SAAT,GAAqBJ,IAArB;AACA,SAAOC,QAAQ,CAACI,OAAhB;AACD,CAJM","sourcesContent":["import isEqual from 'lodash/isEqual';\n\nexport const getCorrectResponse = (choices) =>\n choices\n .filter((c) => c.correct)\n .map((c) => c.value)\n .sort();\n\nexport const isResponseCorrect = (question, session) => {\n let correctResponse = getCorrectResponse(question.choices);\n return session && isEqual((session.value || []).sort(), correctResponse);\n};\n\nexport const parseHTML = (html) => {\n const template = document.createElement('template');\n template.innerHTML = html;\n return template.content;\n};\n"],"file":"utils.js"}
1
+ {"version":3,"file":"utils.js","names":["_isEqual","_interopRequireDefault","require","getCorrectResponse","choices","filter","c","correct","map","value","sort","exports","isResponseCorrect","question","session","correctResponse","isEqual","parseHTML","html","template","document","createElement","innerHTML","content"],"sources":["../src/utils.js"],"sourcesContent":["import isEqual from 'lodash/isEqual';\n\nexport const getCorrectResponse = (choices) =>\n choices\n .filter((c) => c.correct)\n .map((c) => c.value)\n .sort();\n\nexport const isResponseCorrect = (question, session) => {\n let correctResponse = getCorrectResponse(question.choices);\n return session && isEqual((session.value || []).sort(), correctResponse);\n};\n\nexport const parseHTML = (html) => {\n const template = document.createElement('template');\n template.innerHTML = html;\n return template.content;\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,OAAO;EAAA,OACxCA,OAAO,CACJC,MAAM,CAAC,UAACC,CAAC;IAAA,OAAKA,CAAC,CAACC,OAAO;EAAA,EAAC,CACxBC,GAAG,CAAC,UAACF,CAAC;IAAA,OAAKA,CAAC,CAACG,KAAK;EAAA,EAAC,CACnBC,IAAI,CAAC,CAAC;AAAA;AAACC,OAAA,CAAAR,kBAAA,GAAAA,kBAAA;AAEL,IAAMS,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,QAAQ,EAAEC,OAAO,EAAK;EACtD,IAAIC,eAAe,GAAGZ,kBAAkB,CAACU,QAAQ,CAACT,OAAO,CAAC;EAC1D,OAAOU,OAAO,IAAI,IAAAE,mBAAO,EAAC,CAACF,OAAO,CAACL,KAAK,IAAI,EAAE,EAAEC,IAAI,CAAC,CAAC,EAAEK,eAAe,CAAC;AAC1E,CAAC;AAACJ,OAAA,CAAAC,iBAAA,GAAAA,iBAAA;AAEK,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAIC,IAAI,EAAK;EACjC,IAAMC,QAAQ,GAAGC,QAAQ,CAACC,aAAa,CAAC,UAAU,CAAC;EACnDF,QAAQ,CAACG,SAAS,GAAGJ,IAAI;EACzB,OAAOC,QAAQ,CAACI,OAAO;AACzB,CAAC;AAACZ,OAAA,CAAAM,SAAA,GAAAA,SAAA"}
@@ -1,56 +1,32 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.StyledRadio = exports.StyledFormControlLabel = exports.StyledCheckbox = exports.ChoiceInput = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
23
-
24
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
16
  var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
27
-
28
17
  var _react = _interopRequireDefault(require("react"));
29
-
30
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
19
  var _styles = require("@material-ui/core/styles");
33
-
34
20
  var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
35
-
36
21
  var _renderUi = require("@pie-lib/render-ui");
37
-
38
22
  var _feedbackTick = _interopRequireDefault(require("./feedback-tick"));
39
-
40
23
  var _Radio = _interopRequireDefault(require("@material-ui/core/Radio"));
41
-
42
24
  var _classnames = _interopRequireDefault(require("classnames"));
43
-
44
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); }; }
45
-
46
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; } }
47
-
48
27
  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; }
49
-
50
28
  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; }
51
-
52
29
  var CLASS_NAME = 'multiple-choice-component';
53
-
54
30
  var styleSheet = function styleSheet() {
55
31
  return {
56
32
  row: {
@@ -72,7 +48,6 @@ var styleSheet = function styleSheet() {
72
48
  })
73
49
  };
74
50
  };
75
-
76
51
  var formStyleSheet = {
77
52
  label: {
78
53
  color: "".concat(_renderUi.color.text(), " !important"),
@@ -90,13 +65,11 @@ var StyledFormControlLabel = (0, _styles.withStyles)(formStyleSheet, {
90
65
  }));
91
66
  });
92
67
  exports.StyledFormControlLabel = StyledFormControlLabel;
93
-
94
68
  var colorStyle = function colorStyle(varName, fallback) {
95
69
  return (0, _defineProperty2["default"])({}, "&.".concat(CLASS_NAME), {
96
70
  color: "var(--choice-input-".concat(varName, ", ").concat(fallback, ") !important")
97
71
  });
98
72
  };
99
-
100
73
  var inputStyles = {
101
74
  'correct-root': colorStyle('correct-color', _renderUi.color.text()),
102
75
  'correct-checked': colorStyle('correct-selected-color', _renderUi.color.correct()),
@@ -121,16 +94,14 @@ var inputStyles = {
121
94
  };
122
95
  var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
123
96
  var correctness = props.correctness,
124
- classes = props.classes,
125
- checked = props.checked,
126
- onChange = props.onChange,
127
- disabled = props.disabled,
128
- accessibility = props.accessibility;
129
-
97
+ classes = props.classes,
98
+ checked = props.checked,
99
+ onChange = props.onChange,
100
+ disabled = props.disabled,
101
+ accessibility = props.accessibility;
130
102
  var key = function key(k) {
131
103
  return correctness ? "".concat(correctness, "-").concat(k) : k;
132
104
  };
133
-
134
105
  var resolved = {
135
106
  root: classes[key('root')],
136
107
  checked: classes[key('checked')],
@@ -155,16 +126,14 @@ var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
155
126
  exports.StyledCheckbox = StyledCheckbox;
156
127
  var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
157
128
  var correctness = props.correctness,
158
- classes = props.classes,
159
- checked = props.checked,
160
- onChange = props.onChange,
161
- disabled = props.disabled,
162
- accessibility = props.accessibility;
163
-
129
+ classes = props.classes,
130
+ checked = props.checked,
131
+ onChange = props.onChange,
132
+ disabled = props.disabled,
133
+ accessibility = props.accessibility;
164
134
  var key = function key(k) {
165
135
  return correctness ? "".concat(correctness, "-").concat(k) : k;
166
136
  };
167
-
168
137
  var resolved = {
169
138
  root: classes[key('root')],
170
139
  checked: classes[key('checked')],
@@ -187,21 +156,16 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
187
156
  }));
188
157
  });
189
158
  exports.StyledRadio = StyledRadio;
190
-
191
159
  var ChoiceInput = /*#__PURE__*/function (_React$Component) {
192
160
  (0, _inherits2["default"])(ChoiceInput, _React$Component);
193
-
194
161
  var _super = _createSuper(ChoiceInput);
195
-
196
162
  function ChoiceInput(props) {
197
163
  var _this;
198
-
199
164
  (0, _classCallCheck2["default"])(this, ChoiceInput);
200
165
  _this = _super.call(this, props);
201
166
  _this.onToggleChoice = _this.onToggleChoice.bind((0, _assertThisInitialized2["default"])(_this));
202
167
  return _this;
203
168
  }
204
-
205
169
  (0, _createClass2["default"])(ChoiceInput, [{
206
170
  key: "onToggleChoice",
207
171
  value: function onToggleChoice() {
@@ -214,20 +178,20 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
214
178
  key: "render",
215
179
  value: function render() {
216
180
  var _this$props = this.props,
217
- choiceMode = _this$props.choiceMode,
218
- disabled = _this$props.disabled,
219
- displayKey = _this$props.displayKey,
220
- feedback = _this$props.feedback,
221
- label = _this$props.label,
222
- checked = _this$props.checked,
223
- correctness = _this$props.correctness,
224
- classes = _this$props.classes,
225
- className = _this$props.className,
226
- rationale = _this$props.rationale,
227
- accessibility = _this$props.accessibility,
228
- hideTick = _this$props.hideTick,
229
- isEvaluateMode = _this$props.isEvaluateMode,
230
- choicesLayout = _this$props.choicesLayout;
181
+ choiceMode = _this$props.choiceMode,
182
+ disabled = _this$props.disabled,
183
+ displayKey = _this$props.displayKey,
184
+ feedback = _this$props.feedback,
185
+ label = _this$props.label,
186
+ checked = _this$props.checked,
187
+ correctness = _this$props.correctness,
188
+ classes = _this$props.classes,
189
+ className = _this$props.className,
190
+ rationale = _this$props.rationale,
191
+ accessibility = _this$props.accessibility,
192
+ hideTick = _this$props.hideTick,
193
+ isEvaluateMode = _this$props.isEvaluateMode,
194
+ choicesLayout = _this$props.choicesLayout;
231
195
  var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
232
196
  var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
233
197
  var holderClassNames = (0, _classnames["default"])(classes.checkboxHolder, (0, _defineProperty2["default"])({}, classes.horizontalLayout, choicesLayout === 'horizontal'));
@@ -265,7 +229,6 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
265
229
  }]);
266
230
  return ChoiceInput;
267
231
  }(_react["default"].Component);
268
-
269
232
  exports.ChoiceInput = ChoiceInput;
270
233
  (0, _defineProperty2["default"])(ChoiceInput, "propTypes", {
271
234
  choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
@@ -291,8 +254,6 @@ exports.ChoiceInput = ChoiceInput;
291
254
  checked: false,
292
255
  isEvaluateMode: false
293
256
  });
294
-
295
257
  var _default = (0, _styles.withStyles)(styleSheet)(ChoiceInput);
296
-
297
258
  exports["default"] = _default;
298
259
  //# sourceMappingURL=choice-input.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","value","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","Tag","classSuffix","holderClassNames","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst styleSheet = () => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: '8px',\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n return (\n <Checkbox\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n\n return (\n <Radio\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\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 accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice() {\n this.props.onChange({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n checked,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n disabled={disabled}\n label={displayKey ? displayKey + '. ' : ''}\n control={\n <Tag\n accessibility={accessibility}\n checked={checked}\n correctness={correctness}\n onChange={this.onToggleChoice}\n />\n }\n />\n <PreviewPrompt className=\"label\" onClick={this.onToggleChoice} prompt={label} tagName=\"span\" />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
1
+ {"version":3,"file":"choice-input.js","names":["_FormControlLabel","_interopRequireDefault","require","_react","_propTypes","_styles","_Checkbox","_renderUi","_feedbackTick","_Radio","_classnames","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","CLASS_NAME","styleSheet","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","concat","paddingRight","formStyleSheet","label","StyledFormControlLabel","withStyles","name","props","createElement","_extends2","classes","exports","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","k","resolved","miniProps","className","StyledRadio","ChoiceInput","_React$Component","_inherits2","_super","_this","_classCallCheck2","onToggleChoice","bind","_assertThisInitialized2","_createClass2","value","selected","render","_this$props","choiceMode","displayKey","feedback","rationale","hideTick","isEvaluateMode","choicesLayout","Tag","classSuffix","holderClassNames","classNames","control","PreviewPrompt","onClick","prompt","tagName","defaultClassName","Feedback","React","Component","PropTypes","oneOf","string","isRequired","bool","func","_default"],"sources":["../src/choice-input.jsx"],"sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst styleSheet = () => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: '8px',\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n return (\n <Checkbox\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled };\n\n return (\n <Radio\n aria-label={accessibility}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\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 accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice() {\n this.props.onChange({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n checked,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n disabled={disabled}\n label={displayKey ? displayKey + '. ' : ''}\n control={\n <Tag\n accessibility={accessibility}\n checked={checked}\n correctness={correctness}\n onChange={this.onToggleChoice}\n />\n }\n />\n <PreviewPrompt className=\"label\" onClick={this.onToggleChoice} prompt={label} tagName=\"span\" />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"mappings":"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"}
package/lib/choice.js CHANGED
@@ -1,95 +1,67 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.Choice = void 0;
9
-
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
11
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
13
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
15
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
16
  var _react = _interopRequireDefault(require("react"));
27
-
28
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
18
  var _styles = require("@material-ui/core/styles");
31
-
32
19
  var _classnames = _interopRequireDefault(require("classnames"));
33
-
34
20
  var _choiceInput = _interopRequireDefault(require("./choice-input"));
35
-
36
21
  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; }
37
-
38
22
  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; }
39
-
40
23
  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); }; }
41
-
42
24
  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; } }
43
-
44
25
  var Choice = /*#__PURE__*/function (_React$Component) {
45
26
  (0, _inherits2["default"])(Choice, _React$Component);
46
-
47
27
  var _super = _createSuper(Choice);
48
-
49
28
  function Choice() {
50
29
  var _this;
51
-
52
30
  (0, _classCallCheck2["default"])(this, Choice);
53
-
54
31
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
55
32
  args[_key] = arguments[_key];
56
33
  }
57
-
58
34
  _this = _super.call.apply(_super, [this].concat(args));
59
35
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (choice) {
60
36
  var _this$props = _this.props,
61
- disabled = _this$props.disabled,
62
- onChoiceChanged = _this$props.onChoiceChanged;
63
-
37
+ disabled = _this$props.disabled,
38
+ onChoiceChanged = _this$props.onChoiceChanged;
64
39
  if (!disabled) {
65
40
  onChoiceChanged(choice);
66
41
  }
67
42
  });
68
43
  return _this;
69
44
  }
70
-
71
45
  (0, _createClass2["default"])(Choice, [{
72
46
  key: "render",
73
47
  value: function render() {
74
48
  var _classNames;
75
-
76
49
  var _this$props2 = this.props,
77
- choice = _this$props2.choice,
78
- index = _this$props2.index,
79
- choicesLength = _this$props2.choicesLength,
80
- showCorrect = _this$props2.showCorrect,
81
- isEvaluateMode = _this$props2.isEvaluateMode,
82
- choiceMode = _this$props2.choiceMode,
83
- disabled = _this$props2.disabled,
84
- checked = _this$props2.checked,
85
- correctness = _this$props2.correctness,
86
- displayKey = _this$props2.displayKey,
87
- classes = _this$props2.classes,
88
- choicesLayout = _this$props2.choicesLayout,
89
- gridColumns = _this$props2.gridColumns;
50
+ choice = _this$props2.choice,
51
+ index = _this$props2.index,
52
+ choicesLength = _this$props2.choicesLength,
53
+ showCorrect = _this$props2.showCorrect,
54
+ isEvaluateMode = _this$props2.isEvaluateMode,
55
+ choiceMode = _this$props2.choiceMode,
56
+ disabled = _this$props2.disabled,
57
+ checked = _this$props2.checked,
58
+ correctness = _this$props2.correctness,
59
+ displayKey = _this$props2.displayKey,
60
+ classes = _this$props2.classes,
61
+ choicesLayout = _this$props2.choicesLayout,
62
+ gridColumns = _this$props2.gridColumns;
90
63
  var choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
91
64
  var feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
92
-
93
65
  var choiceProps = _objectSpread(_objectSpread({}, choice), {}, {
94
66
  checked: checked,
95
67
  choiceMode: choiceMode,
@@ -102,7 +74,6 @@ var Choice = /*#__PURE__*/function (_React$Component) {
102
74
  onChange: this.onChange,
103
75
  isEvaluateMode: isEvaluateMode
104
76
  });
105
-
106
77
  var names = (0, _classnames["default"])(classes.choice, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.noBorder, index === choicesLength - 1 || choicesLayout !== 'vertical'), (0, _defineProperty2["default"])(_classNames, classes.horizontalLayout, choicesLayout === 'horizontal'), _classNames));
107
78
  return /*#__PURE__*/_react["default"].createElement("div", {
108
79
  className: choiceClass,
@@ -114,7 +85,6 @@ var Choice = /*#__PURE__*/function (_React$Component) {
114
85
  }]);
115
86
  return Choice;
116
87
  }(_react["default"].Component);
117
-
118
88
  exports.Choice = Choice;
119
89
  Choice.propTypes = {
120
90
  choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
@@ -132,7 +102,6 @@ Choice.propTypes = {
132
102
  choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
133
103
  gridColumns: _propTypes["default"].string
134
104
  };
135
-
136
105
  var _default = (0, _styles.withStyles)({
137
106
  choice: {
138
107
  paddingTop: '20px',
@@ -145,13 +114,12 @@ var _default = (0, _styles.withStyles)({
145
114
  horizontalLayout: {
146
115
  paddingRight: '20px',
147
116
  '& label': {
148
- marginRight: '8px' // '& span:first-child': {
117
+ marginRight: '8px'
118
+ // '& span:first-child': {
149
119
  // paddingRight: 0
150
120
  // }
151
-
152
121
  }
153
122
  }
154
123
  })(Choice);
155
-
156
124
  exports["default"] = _default;
157
125
  //# sourceMappingURL=choice.js.map
package/lib/choice.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice.jsx"],"names":["Choice","choice","props","disabled","onChoiceChanged","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","checked","correctness","displayKey","classes","choicesLayout","gridColumns","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","React","Component","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","paddingTop","paddingBottom","borderBottom","paddingRight","marginRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoiceInput from './choice-input';\n\nexport class Choice extends React.Component {\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n classes,\n choicesLayout,\n gridColumns,\n } = this.props;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n choicesLayout,\n gridColumns,\n onChange: this.onChange,\n isEvaluateMode,\n };\n\n const names = classNames(classes.choice, {\n [classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={choiceClass} key={index}>\n <ChoiceInput {...choiceProps} className={names} />\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n};\n\nexport default withStyles({\n choice: {\n paddingTop: '20px',\n paddingBottom: '10px',\n borderBottom: '1px solid #E0DEE0',\n },\n noBorder: {\n borderBottom: 'none',\n },\n horizontalLayout: {\n paddingRight: '20px',\n '& label': {\n marginRight: '8px',\n // '& span:first-child': {\n // paddingRight: 0\n // }\n },\n },\n})(Choice);\n"],"file":"choice.js"}
1
+ {"version":3,"file":"choice.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_classnames","_choiceInput","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","Choice","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","choice","_this$props","props","disabled","onChoiceChanged","_createClass2","value","render","_classNames","_this$props2","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","checked","correctness","displayKey","classes","choicesLayout","gridColumns","choiceClass","feedback","choiceProps","onChange","names","classNames","noBorder","horizontalLayout","createElement","className","_extends2","React","Component","exports","propTypes","PropTypes","oneOf","bool","isRequired","func","number","string","_default","withStyles","paddingTop","paddingBottom","borderBottom","paddingRight","marginRight"],"sources":["../src/choice.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoiceInput from './choice-input';\n\nexport class Choice extends React.Component {\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n classes,\n choicesLayout,\n gridColumns,\n } = this.props;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n choicesLayout,\n gridColumns,\n onChange: this.onChange,\n isEvaluateMode,\n };\n\n const names = classNames(classes.choice, {\n [classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={choiceClass} key={index}>\n <ChoiceInput {...choiceProps} className={names} />\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n};\n\nexport default withStyles({\n choice: {\n paddingTop: '20px',\n paddingBottom: '10px',\n borderBottom: '1px solid #E0DEE0',\n },\n noBorder: {\n borderBottom: 'none',\n },\n horizontalLayout: {\n paddingRight: '20px',\n '& label': {\n marginRight: '8px',\n // '& span:first-child': {\n // paddingRight: 0\n // }\n },\n },\n})(Choice);\n"],"mappings":"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"}