@pie-element/multiple-choice 5.9.3-next.135 → 5.9.3-next.1357

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.
@@ -106,6 +106,22 @@
106
106
  }
107
107
  }
108
108
  },
109
+ "spellCheck": {
110
+ "title": "ConfigureProp",
111
+ "type": "object",
112
+ "properties": {
113
+ "settings": {
114
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
115
+ "type": "boolean",
116
+ "title": "settings"
117
+ },
118
+ "label": {
119
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
120
+ "type": "string",
121
+ "title": "label"
122
+ }
123
+ }
124
+ },
109
125
  "choicesLayout": {
110
126
  "title": "ConfigureProp",
111
127
  "type": "object",
@@ -255,6 +271,100 @@
255
271
  }
256
272
  }
257
273
  },
274
+ "accessibility": {
275
+ "title": "ConfigureProp",
276
+ "type": "object",
277
+ "properties": {
278
+ "settings": {
279
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
280
+ "type": "boolean",
281
+ "title": "settings"
282
+ },
283
+ "label": {
284
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
285
+ "type": "string",
286
+ "title": "label"
287
+ }
288
+ }
289
+ },
290
+ "minAnswerChoices": {
291
+ "description": "Minimum number of answer choices",
292
+ "type": "number",
293
+ "title": "minAnswerChoices"
294
+ },
295
+ "maxAnswerChoices": {
296
+ "description": "Maximum number of answer choices",
297
+ "type": "number",
298
+ "title": "maxAnswerChoices"
299
+ },
300
+ "maxImageWidth": {
301
+ "title": "ConfigureMaxImageDimensionsProp",
302
+ "type": "object",
303
+ "properties": {
304
+ "teacherInstructions": {
305
+ "description": "Indicates the max dimension for images in teacher instructions",
306
+ "type": "number",
307
+ "title": "teacherInstructions"
308
+ },
309
+ "prompt": {
310
+ "description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
311
+ "type": "number",
312
+ "title": "prompt"
313
+ },
314
+ "rationale": {
315
+ "description": "Indicates the max dimension for images in rationale",
316
+ "type": "number",
317
+ "title": "rationale"
318
+ },
319
+ "choices": {
320
+ "description": "Indicates the max dimension for images in choices",
321
+ "type": "number",
322
+ "title": "choices"
323
+ }
324
+ }
325
+ },
326
+ "maxImageHeight": {
327
+ "title": "ConfigureMaxImageDimensionsProp",
328
+ "type": "object",
329
+ "properties": {
330
+ "teacherInstructions": {
331
+ "description": "Indicates the max dimension for images in teacher instructions",
332
+ "type": "number",
333
+ "title": "teacherInstructions"
334
+ },
335
+ "prompt": {
336
+ "description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
337
+ "type": "number",
338
+ "title": "prompt"
339
+ },
340
+ "rationale": {
341
+ "description": "Indicates the max dimension for images in rationale",
342
+ "type": "number",
343
+ "title": "rationale"
344
+ },
345
+ "choices": {
346
+ "description": "Indicates the max dimension for images in choices",
347
+ "type": "number",
348
+ "title": "choices"
349
+ }
350
+ }
351
+ },
352
+ "withRubric": {
353
+ "title": "ConfigureProp",
354
+ "type": "object",
355
+ "properties": {
356
+ "settings": {
357
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
358
+ "type": "boolean",
359
+ "title": "settings"
360
+ },
361
+ "label": {
362
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
363
+ "type": "string",
364
+ "title": "label"
365
+ }
366
+ }
367
+ },
258
368
  "showPrompt": {
259
369
  "description": "Determines whether prompt field will be displayed or not",
260
370
  "default": true,
@@ -305,6 +415,32 @@
305
415
  "title": "enabled"
306
416
  }
307
417
  }
418
+ },
419
+ "ConfigureMaxImageDimensionsProp": {
420
+ "title": "ConfigureMaxImageDimensionsProp",
421
+ "type": "object",
422
+ "properties": {
423
+ "teacherInstructions": {
424
+ "description": "Indicates the max dimension for images in teacher instructions",
425
+ "type": "number",
426
+ "title": "teacherInstructions"
427
+ },
428
+ "prompt": {
429
+ "description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
430
+ "type": "number",
431
+ "title": "prompt"
432
+ },
433
+ "rationale": {
434
+ "description": "Indicates the max dimension for images in rationale",
435
+ "type": "number",
436
+ "title": "rationale"
437
+ },
438
+ "choices": {
439
+ "description": "Indicates the max dimension for images in choices",
440
+ "type": "number",
441
+ "title": "choices"
442
+ }
443
+ }
308
444
  }
309
445
  },
310
446
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -84,6 +84,18 @@ Indicates if the item has to be displayed in the Settings Panel
84
84
 
85
85
  Indicates the label for the item that has to be displayed in the Settings Panel
86
86
 
87
+ # `spellCheck` (object)
88
+
89
+ Properties of the `spellCheck` object:
90
+
91
+ ## `settings` (boolean)
92
+
93
+ Indicates if the item has to be displayed in the Settings Panel
94
+
95
+ ## `label` (string)
96
+
97
+ Indicates the label for the item that has to be displayed in the Settings Panel
98
+
87
99
  # `choicesLayout` (object)
88
100
 
89
101
  Properties of the `choicesLayout` object:
@@ -197,6 +209,78 @@ Indicates the label for the item that has to be displayed in the Settings Panel
197
209
  Indicates the value of the item if it affects config-ui
198
210
  (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
199
211
 
212
+ # `accessibility` (object)
213
+
214
+ Properties of the `accessibility` object:
215
+
216
+ ## `settings` (boolean)
217
+
218
+ Indicates if the item has to be displayed in the Settings Panel
219
+
220
+ ## `label` (string)
221
+
222
+ Indicates the label for the item that has to be displayed in the Settings Panel
223
+
224
+ # `minAnswerChoices` (number)
225
+
226
+ Minimum number of answer choices
227
+
228
+ # `maxAnswerChoices` (number)
229
+
230
+ Maximum number of answer choices
231
+
232
+ # `maxImageWidth` (object)
233
+
234
+ Properties of the `maxImageWidth` object:
235
+
236
+ ## `teacherInstructions` (number)
237
+
238
+ Indicates the max dimension for images in teacher instructions
239
+
240
+ ## `prompt` (number)
241
+
242
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
243
+
244
+ ## `rationale` (number)
245
+
246
+ Indicates the max dimension for images in rationale
247
+
248
+ ## `choices` (number)
249
+
250
+ Indicates the max dimension for images in choices
251
+
252
+ # `maxImageHeight` (object)
253
+
254
+ Properties of the `maxImageHeight` object:
255
+
256
+ ## `teacherInstructions` (number)
257
+
258
+ Indicates the max dimension for images in teacher instructions
259
+
260
+ ## `prompt` (number)
261
+
262
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
263
+
264
+ ## `rationale` (number)
265
+
266
+ Indicates the max dimension for images in rationale
267
+
268
+ ## `choices` (number)
269
+
270
+ Indicates the max dimension for images in choices
271
+
272
+ # `withRubric` (object)
273
+
274
+ Properties of the `withRubric` object:
275
+
276
+ ## `settings` (boolean)
277
+
278
+ Indicates if the item has to be displayed in the Settings Panel
279
+
280
+ ## `label` (string)
281
+
282
+ Indicates the label for the item that has to be displayed in the Settings Panel
283
+
200
284
  # `showPrompt` (boolean)
201
285
 
202
286
  Determines whether prompt field will be displayed or not
@@ -242,4 +326,24 @@ Indicates the label for the item that has to be displayed in the Settings Panel
242
326
  ### `enabled` (boolean)
243
327
 
244
328
  Indicates the value of the item if it affects config-ui
245
- (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
329
+ (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
330
+
331
+ ## `ConfigureMaxImageDimensionsProp` (object)
332
+
333
+ Properties of the `ConfigureMaxImageDimensionsProp` object:
334
+
335
+ ### `teacherInstructions` (number)
336
+
337
+ Indicates the max dimension for images in teacher instructions
338
+
339
+ ### `prompt` (number)
340
+
341
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
342
+
343
+ ### `rationale` (number)
344
+
345
+ Indicates the max dimension for images in rationale
346
+
347
+ ### `choices` (number)
348
+
349
+ Indicates the max dimension for images in choices
@@ -48,5 +48,6 @@ exports.model = (id, element) => ({
48
48
  ],
49
49
  prompt: 'Which of these northern European countries are EU members? <math><mstack><msrow><mn>111</mn></msrow><msline/></mstack></math>',
50
50
  promptEnabled: true,
51
- toolbarEditorPosition: 'bottom'
51
+ toolbarEditorPosition: 'bottom',
52
+ rubricEnabled: false
52
53
  });
@@ -163,6 +163,11 @@
163
163
  "type": "boolean",
164
164
  "title": "rationaleEnabled"
165
165
  },
166
+ "spellCheckEnabled": {
167
+ "description": "Indicates if spellcheck is enabled for the author. Default value is true",
168
+ "type": "boolean",
169
+ "title": "spellCheckEnabled"
170
+ },
166
171
  "studentInstructionsEnabled": {
167
172
  "description": "Indicates if Student Instructions are enabled",
168
173
  "type": "boolean",
@@ -173,6 +178,16 @@
173
178
  "type": "boolean",
174
179
  "title": "teacherInstructionsEnabled"
175
180
  },
181
+ "accessibilityLabelsEnabled": {
182
+ "description": "Indicates if Accessibility Labels are enabled",
183
+ "type": "boolean",
184
+ "title": "accessibilityLabelsEnabled"
185
+ },
186
+ "rubricEnabled": {
187
+ "description": "Indicates if Rubric is enabled",
188
+ "type": "boolean",
189
+ "title": "rubricEnabled"
190
+ },
176
191
  "id": {
177
192
  "description": "Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.",
178
193
  "type": "string",
@@ -185,11 +200,14 @@
185
200
  }
186
201
  },
187
202
  "required": [
203
+ "accessibilityLabelsEnabled",
188
204
  "choices",
189
205
  "element",
190
206
  "feedbackEnabled",
191
207
  "id",
192
208
  "rationaleEnabled",
209
+ "rubricEnabled",
210
+ "spellCheckEnabled",
193
211
  "studentInstructionsEnabled",
194
212
  "teacherInstructionsEnabled"
195
213
  ],
@@ -231,6 +249,32 @@
231
249
  }
232
250
  }
233
251
  },
252
+ "ConfigureMaxImageDimensionsProp": {
253
+ "title": "ConfigureMaxImageDimensionsProp",
254
+ "type": "object",
255
+ "properties": {
256
+ "teacherInstructions": {
257
+ "description": "Indicates the max dimension for images in teacher instructions",
258
+ "type": "number",
259
+ "title": "teacherInstructions"
260
+ },
261
+ "prompt": {
262
+ "description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
263
+ "type": "number",
264
+ "title": "prompt"
265
+ },
266
+ "rationale": {
267
+ "description": "Indicates the max dimension for images in rationale",
268
+ "type": "number",
269
+ "title": "rationale"
270
+ },
271
+ "choices": {
272
+ "description": "Indicates the max dimension for images in choices",
273
+ "type": "number",
274
+ "title": "choices"
275
+ }
276
+ }
277
+ },
234
278
  "Choice": {
235
279
  "title": "Choice",
236
280
  "type": "object",
@@ -142,6 +142,10 @@ Indicates if feedback is enabled
142
142
 
143
143
  Indicates if Rationale are enabled
144
144
 
145
+ # `spellCheckEnabled` (boolean, required)
146
+
147
+ Indicates if spellcheck is enabled for the author. Default value is true
148
+
145
149
  # `studentInstructionsEnabled` (boolean, required)
146
150
 
147
151
  Indicates if Student Instructions are enabled
@@ -150,6 +154,14 @@ Indicates if Student Instructions are enabled
150
154
 
151
155
  Indicates if Teacher Instructions are enabled
152
156
 
157
+ # `accessibilityLabelsEnabled` (boolean, required)
158
+
159
+ Indicates if Accessibility Labels are enabled
160
+
161
+ # `rubricEnabled` (boolean, required)
162
+
163
+ Indicates if Rubric is enabled
164
+
153
165
  # `id` (string, required)
154
166
 
155
167
  Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.
@@ -193,6 +205,26 @@ Indicates the label for the item that has to be displayed in the Settings Panel
193
205
  Indicates the value of the item if it affects config-ui
194
206
  (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
195
207
 
208
+ ## `ConfigureMaxImageDimensionsProp` (object)
209
+
210
+ Properties of the `ConfigureMaxImageDimensionsProp` object:
211
+
212
+ ### `teacherInstructions` (number)
213
+
214
+ Indicates the max dimension for images in teacher instructions
215
+
216
+ ### `prompt` (number)
217
+
218
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
219
+
220
+ ### `rationale` (number)
221
+
222
+ Indicates the max dimension for images in rationale
223
+
224
+ ### `choices` (number)
225
+
226
+ Indicates the max dimension for images in choices
227
+
196
228
  ## `Choice` (object)
197
229
 
198
230
  Properties of the `Choice` object:
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = exports.ChoiceInput = exports.StyledRadio = exports.StyledCheckbox = exports.StyledFormControlLabel = void 0;
8
+ exports["default"] = exports.StyledRadio = exports.StyledFormControlLabel = exports.StyledCheckbox = exports.ChoiceInput = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -19,10 +19,10 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
19
19
 
20
20
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
21
 
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
22
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
25
23
 
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
26
  var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
27
27
 
28
28
  var _react = _interopRequireDefault(require("react"));
@@ -43,11 +43,13 @@ var _classnames = _interopRequireDefault(require("classnames"));
43
43
 
44
44
  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
45
 
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
46
+ 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
+ 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; }
47
49
 
48
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
50
+ 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; }
49
51
 
50
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
52
+ var CLASS_NAME = 'multiple-choice-component';
51
53
 
52
54
  var styleSheet = function styleSheet() {
53
55
  return {
@@ -64,7 +66,10 @@ var styleSheet = function styleSheet() {
64
66
  '& label': {
65
67
  color: _renderUi.color.text()
66
68
  }
67
- }
69
+ },
70
+ horizontalLayout: (0, _defineProperty2["default"])({}, "& .".concat(CLASS_NAME), {
71
+ paddingRight: '8px'
72
+ })
68
73
  };
69
74
  };
70
75
 
@@ -85,7 +90,6 @@ var StyledFormControlLabel = (0, _styles.withStyles)(formStyleSheet, {
85
90
  }));
86
91
  });
87
92
  exports.StyledFormControlLabel = StyledFormControlLabel;
88
- var CLASS_NAME = 'multiple-choice-component';
89
93
 
90
94
  var colorStyle = function colorStyle(varName, fallback) {
91
95
  return (0, _defineProperty2["default"])({}, "&.".concat(CLASS_NAME), {
@@ -144,7 +148,7 @@ var StyledCheckbox = (0, _styles.withStyles)(inputStyles)(function (props) {
144
148
  classes: {
145
149
  root: resolved.root,
146
150
  checked: resolved.checked,
147
- disabled: resolved.disabled
151
+ disabled: "".concat(correctness ? '' : resolved.disabled)
148
152
  }
149
153
  }));
150
154
  });
@@ -177,7 +181,8 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
177
181
  className: CLASS_NAME,
178
182
  classes: {
179
183
  root: resolved.root,
180
- checked: resolved.checked
184
+ checked: resolved.checked,
185
+ disabled: "".concat(correctness ? '' : resolved.disabled)
181
186
  }
182
187
  }));
183
188
  });
@@ -219,17 +224,21 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
219
224
  classes = _this$props.classes,
220
225
  className = _this$props.className,
221
226
  rationale = _this$props.rationale,
222
- accessibility = _this$props.accessibility;
227
+ accessibility = _this$props.accessibility,
228
+ hideTick = _this$props.hideTick,
229
+ isEvaluateMode = _this$props.isEvaluateMode,
230
+ choicesLayout = _this$props.choicesLayout;
223
231
  var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
224
232
  var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
233
+ var holderClassNames = (0, _classnames["default"])(classes.checkboxHolder, (0, _defineProperty2["default"])({}, classes.horizontalLayout, choicesLayout === 'horizontal'));
225
234
  return /*#__PURE__*/_react["default"].createElement("div", {
226
- className: (0, _classnames["default"])(className, 'corespring-' + classSuffix)
235
+ className: (0, _classnames["default"])(className, 'corespring-' + classSuffix, 'choice-input')
227
236
  }, /*#__PURE__*/_react["default"].createElement("div", {
228
237
  className: classes.row
229
- }, /*#__PURE__*/_react["default"].createElement(_feedbackTick["default"], {
238
+ }, !hideTick && isEvaluateMode && /*#__PURE__*/_react["default"].createElement(_feedbackTick["default"], {
230
239
  correctness: correctness
231
240
  }), /*#__PURE__*/_react["default"].createElement("div", {
232
- className: classes.checkboxHolder
241
+ className: (0, _classnames["default"])(holderClassNames, 'checkbox-holder')
233
242
  }, /*#__PURE__*/_react["default"].createElement(StyledFormControlLabel, {
234
243
  disabled: disabled,
235
244
  label: displayKey ? displayKey + '. ' : '',
@@ -246,6 +255,7 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
246
255
  tagName: "span"
247
256
  }))), rationale && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
248
257
  className: "rationale",
258
+ defaultClassName: "rationale",
249
259
  prompt: rationale
250
260
  }), /*#__PURE__*/_react["default"].createElement(_renderUi.Feedback, {
251
261
  feedback: feedback,
@@ -270,12 +280,16 @@ exports.ChoiceInput = ChoiceInput;
270
280
  onChange: _propTypes["default"].func.isRequired,
271
281
  value: _propTypes["default"].string.isRequired,
272
282
  classes: _propTypes["default"].object,
273
- className: _propTypes["default"].string
283
+ className: _propTypes["default"].string,
284
+ hideTick: _propTypes["default"].bool,
285
+ isEvaluateMode: _propTypes["default"].bool,
286
+ choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal'])
274
287
  });
275
288
  (0, _defineProperty2["default"])(ChoiceInput, "defaultProps", {
276
289
  rationale: null,
277
290
  accessibility: null,
278
- checked: false
291
+ checked: false,
292
+ isEvaluateMode: false
279
293
  });
280
294
 
281
295
  var _default = (0, _styles.withStyles)(styleSheet)(ChoiceInput);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice-input.jsx"],"names":["styleSheet","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","formStyleSheet","label","StyledFormControlLabel","name","props","classes","CLASS_NAME","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","Tag","classSuffix","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 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});\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) => (\n <FormControlLabel {...props} classes={{ label: props.classes.label }} />\n));\n\nconst CLASS_NAME = 'multiple-choice-component';\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(\n 'incorrect-disabled-color',\n color.disabled()\n ),\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: 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 }}\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 };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: 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 } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix)}>\n <div className={classes.row}>\n <FeedbackTick correctness={correctness} />\n <div className={classes.checkboxHolder}>\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\n className=\"label\"\n onClick={this.onToggleChoice}\n prompt={label}\n tagName=\"span\"\n />\n </div>\n </div>\n {rationale && (\n <PreviewPrompt className=\"rationale\" prompt={rationale} />\n )}\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) => (\n <FormControlLabel {...props} classes={{ label: props.classes.label }} />\n));\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(\n 'incorrect-disabled-color',\n color.disabled()\n ),\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 {\n correctness,\n classes,\n checked,\n onChange,\n disabled,\n accessibility,\n } = 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 {\n correctness,\n classes,\n checked,\n onChange,\n disabled,\n accessibility,\n } = 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\n className=\"label\"\n onClick={this.onToggleChoice}\n prompt={label}\n tagName=\"span\"\n />\n </div>\n </div>\n {rationale && (\n <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />\n )}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}