@pie-element/multiple-choice 7.10.3-next.71 → 8.0.0-beta

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.
@@ -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,"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,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice-controller",
3
3
  "private": true,
4
- "version": "3.7.0",
4
+ "version": "3.6.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -381,56 +381,6 @@
381
381
  "default": "Item Stemm",
382
382
  "type": "string",
383
383
  "title": "promptLabel"
384
- },
385
- "contentDimensions": {
386
- "description": "Indicates the dimensions configuration for the authoring container\nNote: Some items have a default minimum width because of their content, but if\nthe minWidth is lower than this, the overflow behavior will take care of that",
387
- "default": ": {}",
388
- "type": "object",
389
- "properties": {
390
- "maxHeight": {
391
- "description": "Indicates the max height of the authoring container",
392
- "default": "undefined",
393
- "type": [
394
- "string",
395
- "number"
396
- ],
397
- "title": "maxHeight"
398
- },
399
- "maxWidth": {
400
- "description": "Indicates the max width of the authoring container",
401
- "default": "undefined",
402
- "type": [
403
- "string",
404
- "number"
405
- ],
406
- "title": "maxWidth"
407
- },
408
- "minHeight": {
409
- "description": "Indicates the min height of the authoring container",
410
- "default": "undefined",
411
- "type": [
412
- "string",
413
- "number"
414
- ],
415
- "title": "minHeight"
416
- },
417
- "minWidth": {
418
- "description": "Indicates the min width of the authoring container",
419
- "default": "undefined",
420
- "type": [
421
- "string",
422
- "number"
423
- ],
424
- "title": "minWidth"
425
- }
426
- },
427
- "title": "contentDimensions"
428
- },
429
- "settingsPartialScoring": {
430
- "description": "Indicates whether the settings panel wil allow the author to modify settings for partial scoring",
431
- "default": true,
432
- "type": "boolean",
433
- "title": "settingsPartialScoring"
434
384
  }
435
385
  },
436
386
  "definitions": {
@@ -297,46 +297,6 @@ The label for the item stem/prompt field
297
297
 
298
298
  Default: `"Item Stemm"`
299
299
 
300
- # `contentDimensions` (object)
301
-
302
- Indicates the dimensions configuration for the authoring container
303
- Note: Some items have a default minimum width because of their content, but if
304
- the minWidth is lower than this, the overflow behavior will take care of that
305
-
306
- Properties of the `contentDimensions` object:
307
-
308
- ## `maxHeight` (string,number)
309
-
310
- Indicates the max height of the authoring container
311
-
312
- Default: `"undefined"`
313
-
314
- ## `maxWidth` (string,number)
315
-
316
- Indicates the max width of the authoring container
317
-
318
- Default: `"undefined"`
319
-
320
- ## `minHeight` (string,number)
321
-
322
- Indicates the min height of the authoring container
323
-
324
- Default: `"undefined"`
325
-
326
- ## `minWidth` (string,number)
327
-
328
- Indicates the min width of the authoring container
329
-
330
- Default: `"undefined"`
331
-
332
- Default: `": {}"`
333
-
334
- # `settingsPartialScoring` (boolean)
335
-
336
- Indicates whether the settings panel wil allow the author to modify settings for partial scoring
337
-
338
- Default: `true`
339
-
340
300
  ---
341
301
 
342
302
  # Sub Schemas
@@ -51,7 +51,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
51
51
 
52
52
  var CLASS_NAME = 'multiple-choice-component';
53
53
 
54
- var styleSheet = function styleSheet(theme) {
54
+ var styleSheet = function styleSheet() {
55
55
  return {
56
56
  row: {
57
57
  display: 'flex',
@@ -68,7 +68,7 @@ var styleSheet = function styleSheet(theme) {
68
68
  }
69
69
  },
70
70
  horizontalLayout: (0, _defineProperty2["default"])({}, "& .".concat(CLASS_NAME), {
71
- paddingRight: theme.spacing.unit
71
+ paddingRight: '8px'
72
72
  })
73
73
  };
74
74
  };
@@ -125,9 +125,7 @@ var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
125
125
  checked = props.checked,
126
126
  onChange = props.onChange,
127
127
  disabled = props.disabled,
128
- accessibility = props.accessibility,
129
- value = props.value,
130
- id = props.id;
128
+ accessibility = props.accessibility;
131
129
 
132
130
  var key = function key(k) {
133
131
  return correctness ? "".concat(correctness, "-").concat(k) : k;
@@ -141,13 +139,10 @@ var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
141
139
  var miniProps = {
142
140
  checked: checked,
143
141
  onChange: onChange,
144
- disabled: disabled,
145
- value: value
142
+ disabled: disabled
146
143
  };
147
144
  return /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], (0, _extends2["default"])({
148
- id: id,
149
- "aria-label": accessibility,
150
- "aria-checked": checked
145
+ "aria-label": accessibility
151
146
  }, miniProps, {
152
147
  className: CLASS_NAME,
153
148
  classes: {
@@ -164,9 +159,7 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
164
159
  checked = props.checked,
165
160
  onChange = props.onChange,
166
161
  disabled = props.disabled,
167
- accessibility = props.accessibility,
168
- value = props.value,
169
- id = props.id;
162
+ accessibility = props.accessibility;
170
163
 
171
164
  var key = function key(k) {
172
165
  return correctness ? "".concat(correctness, "-").concat(k) : k;
@@ -180,13 +173,10 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
180
173
  var miniProps = {
181
174
  checked: checked,
182
175
  onChange: onChange,
183
- disabled: disabled,
184
- value: value
176
+ disabled: disabled
185
177
  };
186
178
  return /*#__PURE__*/_react["default"].createElement(_Radio["default"], (0, _extends2["default"])({
187
- id: id,
188
- "aria-label": accessibility,
189
- "aria-checked": checked
179
+ "aria-label": accessibility
190
180
  }, miniProps, {
191
181
  className: CLASS_NAME,
192
182
  classes: {
@@ -214,9 +204,8 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
214
204
 
215
205
  (0, _createClass2["default"])(ChoiceInput, [{
216
206
  key: "onToggleChoice",
217
- value: function onToggleChoice(event) {
218
- this.props.onChange(event);
219
- this.props.updateSession({
207
+ value: function onToggleChoice() {
208
+ this.props.onChange({
220
209
  value: this.props.value,
221
210
  selected: !this.props.checked
222
211
  });
@@ -230,6 +219,7 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
230
219
  displayKey = _this$props.displayKey,
231
220
  feedback = _this$props.feedback,
232
221
  label = _this$props.label,
222
+ checked = _this$props.checked,
233
223
  correctness = _this$props.correctness,
234
224
  classes = _this$props.classes,
235
225
  className = _this$props.className,
@@ -237,20 +227,10 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
237
227
  accessibility = _this$props.accessibility,
238
228
  hideTick = _this$props.hideTick,
239
229
  isEvaluateMode = _this$props.isEvaluateMode,
240
- choicesLayout = _this$props.choicesLayout,
241
- value = _this$props.value,
242
- checked = _this$props.checked,
243
- index = _this$props.index;
230
+ choicesLayout = _this$props.choicesLayout;
244
231
  var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
245
232
  var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
246
233
  var holderClassNames = (0, _classnames["default"])(classes.checkboxHolder, (0, _defineProperty2["default"])({}, classes.horizontalLayout, choicesLayout === 'horizontal'));
247
-
248
- var choicelabel = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
249
- className: "label",
250
- prompt: displayKey ? "".concat(displayKey, ".&nbsp ").concat(label) : label,
251
- tagName: "span"
252
- });
253
-
254
234
  return /*#__PURE__*/_react["default"].createElement("div", {
255
235
  className: (0, _classnames["default"])(className, 'corespring-' + classSuffix, 'choice-input')
256
236
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -260,18 +240,19 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
260
240
  }), /*#__PURE__*/_react["default"].createElement("div", {
261
241
  className: (0, _classnames["default"])(holderClassNames, 'checkbox-holder')
262
242
  }, /*#__PURE__*/_react["default"].createElement(StyledFormControlLabel, {
263
- label: choicelabel,
264
- value: value,
265
- htmlFor: "choice-".concat(index),
243
+ disabled: disabled,
244
+ label: displayKey ? displayKey + '. ' : '',
266
245
  control: /*#__PURE__*/_react["default"].createElement(Tag, {
267
246
  accessibility: accessibility,
268
- disabled: disabled,
269
247
  checked: checked,
270
248
  correctness: correctness,
271
- value: value,
272
- id: "choice-".concat(index),
273
249
  onChange: this.onToggleChoice
274
250
  })
251
+ }), /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
252
+ className: "label",
253
+ onClick: this.onToggleChoice,
254
+ prompt: label,
255
+ tagName: "span"
275
256
  }))), rationale && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
276
257
  className: "rationale",
277
258
  defaultClassName: "rationale",
@@ -293,7 +274,6 @@ exports.ChoiceInput = ChoiceInput;
293
274
  correctness: _propTypes["default"].string,
294
275
  disabled: _propTypes["default"].bool.isRequired,
295
276
  feedback: _propTypes["default"].string,
296
- index: _propTypes["default"].number,
297
277
  label: _propTypes["default"].string.isRequired,
298
278
  rationale: _propTypes["default"].string,
299
279
  accessibility: _propTypes["default"].string,
@@ -303,8 +283,7 @@ exports.ChoiceInput = ChoiceInput;
303
283
  className: _propTypes["default"].string,
304
284
  hideTick: _propTypes["default"].bool,
305
285
  isEvaluateMode: _propTypes["default"].bool,
306
- choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
307
- updateSession: _propTypes["default"].func
286
+ choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal'])
308
287
  });
309
288
  (0, _defineProperty2["default"])(ChoiceInput, "defaultProps", {
310
289
  rationale: null,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","spacing","unit","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","value","id","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","event","updateSession","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","index","Tag","classSuffix","holderClassNames","choicelabel","React","Component","PropTypes","oneOf","string","isRequired","bool","number","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 = (theme) => ({\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: theme.spacing.unit,\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, value, id } = 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, value };\n\n return (\n <Checkbox\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\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, value, id } = 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, value };\n\n return (\n <Radio\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\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 index: PropTypes.number,\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 updateSession: PropTypes.func,\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(event) {\n this.props.onChange(event);\n this.props.updateSession({\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 correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n index\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 const choicelabel = (\n <PreviewPrompt className=\"label\" prompt={displayKey ? `${displayKey}.&nbsp ${label}` : label} tagName=\"span\" />\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 label={choicelabel}\n value={value}\n htmlFor={`choice-${index}`}\n control={\n <Tag\n accessibility={accessibility}\n disabled={disabled}\n checked={checked}\n correctness={correctness}\n value={value}\n id={`choice-${index}`}\n onChange={this.onToggleChoice}\n />\n }\n />\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,"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"}
package/lib/choice.js CHANGED
@@ -86,8 +86,7 @@ var Choice = /*#__PURE__*/function (_React$Component) {
86
86
  displayKey = _this$props2.displayKey,
87
87
  classes = _this$props2.classes,
88
88
  choicesLayout = _this$props2.choicesLayout,
89
- gridColumns = _this$props2.gridColumns,
90
- updateSession = _this$props2.updateSession;
89
+ gridColumns = _this$props2.gridColumns;
91
90
  var choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
92
91
  var feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
93
92
 
@@ -98,10 +97,8 @@ var Choice = /*#__PURE__*/function (_React$Component) {
98
97
  feedback: feedback,
99
98
  correctness: correctness,
100
99
  displayKey: displayKey,
101
- index: index,
102
100
  choicesLayout: choicesLayout,
103
101
  gridColumns: gridColumns,
104
- updateSession: updateSession,
105
102
  onChange: this.onChange,
106
103
  isEvaluateMode: isEvaluateMode
107
104
  });
@@ -119,9 +116,6 @@ var Choice = /*#__PURE__*/function (_React$Component) {
119
116
  }(_react["default"].Component);
120
117
 
121
118
  exports.Choice = Choice;
122
- (0, _defineProperty2["default"])(Choice, "propTypes", {
123
- updateSession: _propTypes["default"].func
124
- });
125
119
  Choice.propTypes = {
126
120
  choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
127
121
  choice: _propTypes["default"].object,
@@ -139,26 +133,24 @@ Choice.propTypes = {
139
133
  gridColumns: _propTypes["default"].string
140
134
  };
141
135
 
142
- var _default = (0, _styles.withStyles)(function (theme) {
143
- return {
144
- choice: {
145
- paddingTop: theme.spacing.unit * 2.5,
146
- paddingBottom: theme.spacing.unit + 2,
147
- borderBottom: "1px solid ".concat(theme.palette.grey[300])
148
- },
149
- noBorder: {
150
- borderBottom: 'none'
151
- },
152
- horizontalLayout: {
153
- paddingRight: theme.spacing.unit * 2.5,
154
- '& label': {
155
- marginRight: theme.spacing.unit // '& span:first-child': {
156
- // paddingRight: 0
157
- // }
136
+ var _default = (0, _styles.withStyles)({
137
+ choice: {
138
+ paddingTop: '20px',
139
+ paddingBottom: '10px',
140
+ borderBottom: '1px solid #E0DEE0'
141
+ },
142
+ noBorder: {
143
+ borderBottom: 'none'
144
+ },
145
+ horizontalLayout: {
146
+ paddingRight: '20px',
147
+ '& label': {
148
+ marginRight: '8px' // '& span:first-child': {
149
+ // paddingRight: 0
150
+ // }
158
151
 
159
- }
160
152
  }
161
- };
153
+ }
162
154
  })(Choice);
163
155
 
164
156
  exports["default"] = _default;
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","updateSession","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","React","Component","PropTypes","func","propTypes","oneOf","object","bool","isRequired","number","string","theme","paddingTop","spacing","unit","paddingBottom","borderBottom","palette","grey","paddingRight","marginRight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,M;;;;;;;;;;;;;;;iGAKA,UAACC,MAAD,EAAY;AACrB,wBAAsC,MAAKC,KAA3C;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,eAAlB,eAAkBA,eAAlB;;AAEA,UAAI,CAACD,QAAL,EAAe;AACbC,QAAAA,eAAe,CAACH,MAAD,CAAf;AACD;AACF,K;;;;;;WAED,kBAAS;AAAA;;AACP,yBAeI,KAAKC,KAfT;AAAA,UACED,MADF,gBACEA,MADF;AAAA,UAEEI,KAFF,gBAEEA,KAFF;AAAA,UAGEC,aAHF,gBAGEA,aAHF;AAAA,UAIEC,WAJF,gBAIEA,WAJF;AAAA,UAKEC,cALF,gBAKEA,cALF;AAAA,UAMEC,UANF,gBAMEA,UANF;AAAA,UAOEN,QAPF,gBAOEA,QAPF;AAAA,UAQEO,OARF,gBAQEA,OARF;AAAA,UASEC,WATF,gBASEA,WATF;AAAA,UAUEC,UAVF,gBAUEA,UAVF;AAAA,UAWEC,OAXF,gBAWEA,OAXF;AAAA,UAYEC,aAZF,gBAYEA,aAZF;AAAA,UAaEC,WAbF,gBAaEA,WAbF;AAAA,UAcEC,aAdF,gBAcEA,aAdF;AAgBA,UAAMC,WAAW,GAAG,YAAYZ,KAAK,KAAKC,aAAa,GAAG,CAA1B,GAA8B,OAA9B,GAAwC,EAApD,CAApB;AAEA,UAAMY,QAAQ,GAAG,CAACV,cAAD,IAAmBD,WAAnB,GAAiC,EAAjC,GAAsCN,MAAM,CAACiB,QAA9D;;AAEA,UAAMC,WAAW,mCACZlB,MADY;AAEfS,QAAAA,OAAO,EAAPA,OAFe;AAGfD,QAAAA,UAAU,EAAVA,UAHe;AAIfN,QAAAA,QAAQ,EAARA,QAJe;AAKfe,QAAAA,QAAQ,EAARA,QALe;AAMfP,QAAAA,WAAW,EAAXA,WANe;AAOfC,QAAAA,UAAU,EAAVA,UAPe;AAQfP,QAAAA,KAAK,EAALA,KARe;AASfS,QAAAA,aAAa,EAAbA,aATe;AAUfC,QAAAA,WAAW,EAAXA,WAVe;AAWfC,QAAAA,aAAa,EAAbA,aAXe;AAYfI,QAAAA,QAAQ,EAAE,KAAKA,QAZA;AAafZ,QAAAA,cAAc,EAAdA;AAbe,QAAjB;;AAgBA,UAAMa,KAAK,GAAG,4BAAWR,OAAO,CAACZ,MAAnB,mEACXY,OAAO,CAACS,QADG,EACQjB,KAAK,KAAKC,aAAa,GAAG,CAA1B,IAA+BQ,aAAa,KAAK,UADzD,iDAEXD,OAAO,CAACU,gBAFG,EAEgBT,aAAa,KAAK,YAFlC,gBAAd;AAKA,0BACE;AAAK,QAAA,SAAS,EAAEG,WAAhB;AAA6B,QAAA,GAAG,EAAEZ;AAAlC,sBACE,gCAAC,uBAAD,gCAAiBc,WAAjB;AAA8B,QAAA,SAAS,EAAEE;AAAzC,SADF,CADF;AAKD;;;EA5DyBG,kBAAMC,S;;;iCAArBzB,M,eACQ;AAClBgB,EAAAA,aAAa,EAAEU,sBAAUC;AADP,C;AA8DrB3B,MAAM,CAAC4B,SAAP,GAAmB;AACjBnB,EAAAA,UAAU,EAAEiB,sBAAUG,KAAV,CAAgB,CAAC,OAAD,EAAU,UAAV,CAAhB,CADK;AAEjB5B,EAAAA,MAAM,EAAEyB,sBAAUI,MAFD;AAGjB3B,EAAAA,QAAQ,EAAEuB,sBAAUK,IAAV,CAAeC,UAHR;AAIjB5B,EAAAA,eAAe,EAAEsB,sBAAUC,IAJV;AAKjBd,EAAAA,OAAO,EAAEa,sBAAUI,MAAV,CAAiBE,UALT;AAMjB3B,EAAAA,KAAK,EAAEqB,sBAAUO,MANA;AAOjB3B,EAAAA,aAAa,EAAEoB,sBAAUO,MAPR;AAQjB1B,EAAAA,WAAW,EAAEmB,sBAAUK,IARN;AASjBvB,EAAAA,cAAc,EAAEkB,sBAAUK,IATT;AAUjBrB,EAAAA,OAAO,EAAEgB,sBAAUK,IAVF;AAWjBpB,EAAAA,WAAW,EAAEe,sBAAUQ,MAXN;AAYjBtB,EAAAA,UAAU,EAAEc,sBAAUQ,MAZL;AAajBpB,EAAAA,aAAa,EAAEY,sBAAUG,KAAV,CAAgB,CAAC,UAAD,EAAa,MAAb,EAAqB,YAArB,CAAhB,CAbE;AAcjBd,EAAAA,WAAW,EAAEW,sBAAUQ;AAdN,CAAnB;;eAiBe,wBAAW,UAACC,KAAD;AAAA,SAAY;AACpClC,IAAAA,MAAM,EAAE;AACNmC,MAAAA,UAAU,EAAED,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,GAD3B;AAENC,MAAAA,aAAa,EAAEJ,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,CAF9B;AAGNE,MAAAA,YAAY,sBAAeL,KAAK,CAACM,OAAN,CAAcC,IAAd,CAAmB,GAAnB,CAAf;AAHN,KAD4B;AAMpCpB,IAAAA,QAAQ,EAAE;AACRkB,MAAAA,YAAY,EAAE;AADN,KAN0B;AASpCjB,IAAAA,gBAAgB,EAAE;AAChBoB,MAAAA,YAAY,EAAER,KAAK,CAACE,OAAN,CAAcC,IAAd,GAAqB,GADnB;AAEhB,iBAAW;AACTM,QAAAA,WAAW,EAAET,KAAK,CAACE,OAAN,CAAcC,IADlB,CAET;AACA;AACA;;AAJS;AAFK;AATkB,GAAZ;AAAA,CAAX,EAkBXtC,MAlBW,C","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 static propTypes = {\n updateSession: PropTypes.func,\n };\n\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 updateSession,\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 index,\n choicesLayout,\n gridColumns,\n updateSession,\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((theme) => ({\n choice: {\n paddingTop: theme.spacing.unit * 2.5,\n paddingBottom: theme.spacing.unit + 2,\n borderBottom: `1px solid ${theme.palette.grey[300]}`,\n },\n noBorder: {\n borderBottom: 'none',\n },\n horizontalLayout: {\n paddingRight: theme.spacing.unit * 2.5,\n '& label': {\n marginRight: theme.spacing.unit,\n // '& span:first-child': {\n // paddingRight: 0\n // }\n },\n },\n}))(Choice);\n"],"file":"choice.js"}
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"}
package/lib/index.js CHANGED
@@ -65,12 +65,7 @@ var MultipleChoice = /*#__PURE__*/function (_HTMLElement) {
65
65
  model: _this._model,
66
66
  session: _this._session,
67
67
  onChoiceChanged: _this._onChange.bind((0, _assertThisInitialized2["default"])(_this))
68
- }); //TODO: aria-label is set in the _rerender because we need to change it when the model.choiceMode is updated. Consider revisiting the placement of the aria-label setting in the _rerender
69
-
70
-
71
- _this.setAttribute('aria-label', _this._model.choiceMode === 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question');
72
-
73
- _this.setAttribute('role', 'region');
68
+ });
74
69
 
75
70
  _reactDom["default"].render(element, (0, _assertThisInitialized2["default"])(_this), function () {
76
71
  log('render complete - render math');
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","isComplete","session","value","length","MultipleChoice","_model","_session","_rerender","element","React","createElement","Main","model","onChoiceChanged","_onChange","bind","setAttribute","choiceMode","ReactDOM","render","leading","trailing","_dispatchResponseChanged","event","CustomEvent","bubbles","composed","detail","complete","component","tagName","toLowerCase","dispatchEvent","_dispatchModelSet","hasModel","undefined","s","data","HTMLElement"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { updateSessionValue } from './session-updater';\n\nconst log = debug('pie-ui:multiple-choice');\n\nexport const isComplete = (session) => !!(session && session.value && session.value.length);\n\nexport default class MultipleChoice extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n var element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onChoiceChanged: this._onChange.bind(this),\n });\n\n //TODO: aria-label is set in the _rerender because we need to change it when the model.choiceMode is updated. Consider revisiting the placement of the aria-label setting in the _rerender\n this.setAttribute(\n 'aria-label',\n this._model.choiceMode === 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question',\n ); \n this.setAttribute('role', 'region');\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n\n this._dispatchResponseChanged = debounce(() => {\n var event = new CustomEvent('session-changed', {\n bubbles: true,\n composed: true,\n detail: {\n complete: isComplete(this._session),\n component: this.tagName.toLowerCase(),\n },\n });\n\n this.dispatchEvent(event);\n });\n\n this._dispatchModelSet = debounce(\n () => {\n this.dispatchEvent(\n new CustomEvent('model-set', {\n bubbles: true,\n composed: true,\n detail: {\n complete: isComplete(this._session),\n component: this.tagName.toLowerCase(),\n hasModel: this._model !== undefined,\n },\n }),\n );\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n this._dispatchModelSet();\n }\n\n get session() {\n return this._session;\n }\n\n set session(s) {\n this._session = s;\n this._rerender();\n //TODO: remove this session-changed should only be emit on user change\n this._dispatchResponseChanged();\n }\n\n _onChange(data) {\n updateSessionValue(this._session, this._model.choiceMode, data);\n this._dispatchResponseChanged();\n this._rerender();\n }\n\n connectedCallback() {\n this._rerender();\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","isComplete","session","value","length","MultipleChoice","_model","_session","_rerender","element","React","createElement","Main","model","onChoiceChanged","_onChange","bind","ReactDOM","render","leading","trailing","_dispatchResponseChanged","event","CustomEvent","bubbles","composed","detail","complete","component","tagName","toLowerCase","dispatchEvent","_dispatchModelSet","hasModel","undefined","s","data","choiceMode","HTMLElement"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash/debounce';\nimport debug from 'debug';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { updateSessionValue } from './session-updater';\n\nconst log = debug('pie-ui:multiple-choice');\n\nexport const isComplete = (session) => !!(session && session.value && session.value.length);\n\nexport default class MultipleChoice extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n var element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onChoiceChanged: this._onChange.bind(this),\n });\n\n ReactDOM.render(element, this, () => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n\n this._dispatchResponseChanged = debounce(() => {\n var event = new CustomEvent('session-changed', {\n bubbles: true,\n composed: true,\n detail: {\n complete: isComplete(this._session),\n component: this.tagName.toLowerCase(),\n },\n });\n\n this.dispatchEvent(event);\n });\n\n this._dispatchModelSet = debounce(\n () => {\n this.dispatchEvent(\n new CustomEvent('model-set', {\n bubbles: true,\n composed: true,\n detail: {\n complete: isComplete(this._session),\n component: this.tagName.toLowerCase(),\n hasModel: this._model !== undefined,\n },\n }),\n );\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n this._dispatchModelSet();\n }\n\n get session() {\n return this._session;\n }\n\n set session(s) {\n this._session = s;\n this._rerender();\n //TODO: remove this session-changed should only be emit on user change\n this._dispatchResponseChanged();\n }\n\n _onChange(data) {\n updateSessionValue(this._session, this._model.choiceMode, data);\n this._dispatchResponseChanged();\n this._rerender();\n }\n\n connectedCallback() {\n this._rerender();\n }\n}\n"],"file":"index.js"}
package/lib/main.js CHANGED
@@ -27,6 +27,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
27
27
 
28
28
  var _styles = require("@material-ui/core/styles");
29
29
 
30
+ var _classnames = _interopRequireDefault(require("classnames"));
31
+
30
32
  var _renderUi = require("@pie-lib/render-ui");
31
33
 
32
34
  var _multipleChoice = _interopRequireDefault(require("./multiple-choice"));
@@ -35,10 +37,6 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
35
37
 
36
38
  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; } }
37
39
 
38
- var styles = function styles() {
39
- return {};
40
- };
41
-
42
40
  var Main = /*#__PURE__*/function (_React$Component) {
43
41
  (0, _inherits2["default"])(Main, _React$Component);
44
42
 
@@ -55,12 +53,18 @@ var Main = /*#__PURE__*/function (_React$Component) {
55
53
  var _this$props = this.props,
56
54
  model = _this$props.model,
57
55
  onChoiceChanged = _this$props.onChoiceChanged,
58
- session = _this$props.session; // model.partLabel is a property used for ebsr
59
-
60
- return /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewLayout, null, /*#__PURE__*/_react["default"].createElement(_multipleChoice["default"], (0, _extends2["default"])({}, model, {
56
+ session = _this$props.session,
57
+ classes = _this$props.classes; // model.partLabel is a property used for ebsr
58
+
59
+ return /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewLayout, {
60
+ ariaLabel: model.choiceMode == 'radio' ? 'Multiple Choice Question' : 'Multiple Correct Answer Question',
61
+ role: "region"
62
+ }, model.partLabel && /*#__PURE__*/_react["default"].createElement("p", null, model.partLabel), /*#__PURE__*/_react["default"].createElement("div", {
63
+ className: (0, _classnames["default"])(classes.root, classes[model.className])
64
+ }, /*#__PURE__*/_react["default"].createElement(_multipleChoice["default"], (0, _extends2["default"])({}, model, {
61
65
  session: session,
62
66
  onChoiceChanged: onChoiceChanged
63
- })));
67
+ }))));
64
68
  }
65
69
  }]);
66
70
  return Main;
@@ -76,7 +80,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
76
80
  model: {},
77
81
  session: {}
78
82
  });
79
- var Styled = (0, _styles.withStyles)(styles, {
83
+ var Styled = (0, _styles.withStyles)({}, {
80
84
  name: 'Main'
81
85
  })(Main);
82
86
  var theme = (0, _styles.createMuiTheme)({