@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.
- package/CHANGELOG.md +326 -0
- package/PRINT.md +35 -0
- package/configure/CHANGELOG.md +282 -0
- package/configure/lib/defaults.js +24 -7
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +24 -5
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +237 -65
- package/configure/lib/main.js.map +1 -1
- package/configure/lib/utils.js +18 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +86 -0
- package/controller/lib/index.js +81 -18
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/docs/config-schema.json +136 -0
- package/docs/config-schema.json.md +105 -1
- package/docs/demo/generate.js +2 -1
- package/docs/pie-schema.json +44 -0
- package/docs/pie-schema.json.md +32 -0
- package/lib/choice-input.js +30 -16
- package/lib/choice-input.js.map +1 -1
- package/lib/choice.js +157 -0
- package/lib/choice.js.map +1 -0
- package/lib/feedback-tick.js +1 -1
- package/lib/feedback-tick.js.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/main.js +1 -1
- package/lib/main.js.map +1 -1
- package/lib/multiple-choice.js +59 -146
- package/lib/multiple-choice.js.map +1 -1
- package/lib/print.js +129 -0
- package/lib/print.js.map +1 -0
- package/package.json +11 -7
package/docs/config-schema.json
CHANGED
|
@@ -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
|
package/docs/demo/generate.js
CHANGED
|
@@ -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
|
});
|
package/docs/pie-schema.json
CHANGED
|
@@ -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",
|
package/docs/pie-schema.json.md
CHANGED
|
@@ -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:
|
package/lib/choice-input.js
CHANGED
|
@@ -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.
|
|
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 {
|
|
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
|
|
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
|
-
|
|
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:
|
|
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);
|
package/lib/choice-input.js.map
CHANGED
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,UAAU,GAAG,SAAbA,UAAa;AAAA,SAAO;AACxBC,IAAAA,GAAG,EAAE;AACHC,MAAAA,OAAO,EAAE,MADN;AAEHC,MAAAA,UAAU,EAAE,QAFT;AAGHC,MAAAA,eAAe,EAAEC,gBAAMC,UAAN;AAHd,KADmB;AAMxBC,IAAAA,cAAc,EAAE;AACdL,MAAAA,OAAO,EAAE,MADK;AAEdC,MAAAA,UAAU,EAAE,QAFE;AAGdC,MAAAA,eAAe,EAAEC,gBAAMC,UAAN,EAHH;AAIdE,MAAAA,IAAI,EAAE,CAJQ;AAKd,iBAAW;AACTH,QAAAA,KAAK,EAAEA,gBAAMI,IAAN;AADE;AALG;AANQ,GAAP;AAAA,CAAnB;;AAiBA,IAAMC,cAAc,GAAG;AACrBC,EAAAA,KAAK,EAAE;AACLN,IAAAA,KAAK,YAAKA,gBAAMI,IAAN,EAAL,gBADA;AACgC;AACrCL,IAAAA,eAAe,EAAEC,gBAAMC,UAAN;AAFZ;AADc,CAAvB;AAOO,IAAMM,sBAAsB,GAAG,wBAAWF,cAAX,EAA2B;AAC/DG,EAAAA,IAAI,EAAE;AADyD,CAA3B,EAEnC,UAACC,KAAD;AAAA,sBACD,gCAAC,4BAAD,gCAAsBA,KAAtB;AAA6B,IAAA,OAAO,EAAE;AAAEH,MAAAA,KAAK,EAAEG,KAAK,CAACC,OAAN,CAAcJ;AAAvB;AAAtC,KADC;AAAA,CAFmC,CAA/B;;AAMP,IAAMK,UAAU,GAAG,2BAAnB;;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,OAAD,EAAUC,QAAV;AAAA,0DACXH,UADW,GACI;AACnBX,IAAAA,KAAK,+BAAwBa,OAAxB,eAAoCC,QAApC;AADc,GADJ;AAAA,CAAnB;;AAMA,IAAMC,WAAW,GAAG;AAClB,kBAAgBH,UAAU,CAAC,eAAD,EAAkBZ,gBAAMI,IAAN,EAAlB,CADR;AAElB,qBAAmBQ,UAAU,CAAC,wBAAD,EAA2BZ,gBAAMgB,OAAN,EAA3B,CAFX;AAEwD;AAC1E,sBAAoBJ,UAAU,CAAC,wBAAD,EAA2BZ,gBAAMiB,QAAN,EAA3B,CAHZ;AAG0D;AAC5E,oBAAkBL,UAAU,CAAC,iBAAD,EAAoBZ,gBAAMkB,SAAN,EAApB,CAJV;AAKlB,uBAAqBN,UAAU,CAAC,mBAAD,EAAsBZ,gBAAMkB,SAAN,EAAtB,CALb;AAKuD;AACzE,wBAAsBN,UAAU,CAC9B,0BAD8B,EAE9BZ,gBAAMiB,QAAN,EAF8B,CANd;AAUlBE,EAAAA,IAAI,kCACCP,UAAU,CAAC,OAAD,EAAUZ,gBAAMI,IAAN,EAAV,CADX;AAEF,eAAW;AAAEJ,MAAAA,KAAK,YAAKA,gBAAMoB,YAAN,EAAL;AAAP;AAFT,IAVc;AAclBC,EAAAA,OAAO,EAAET,UAAU,CAAC,gBAAD,EAAmBZ,gBAAMsB,OAAN,EAAnB,CAdD;AAelBL,EAAAA,QAAQ,kCACHL,UAAU,CAAC,gBAAD,EAAmBZ,gBAAMI,IAAN,EAAnB,CADP;AAENmB,IAAAA,OAAO,EAAE,GAFH;AAGNC,IAAAA,MAAM,EAAE,wBAHF;AAINC,IAAAA,aAAa,EAAE;AAJT;AAfU,CAApB;AAuBO,IAAMC,cAAc,GAAG,wBAAWX,WAAX,EAAwB,UAACN,KAAD,EAAW;AAAA,MACvDkB,WADuD,GACclB,KADd,CACvDkB,WADuD;AAAA,MAC1CjB,OAD0C,GACcD,KADd,CAC1CC,OAD0C;AAAA,MACjCW,OADiC,GACcZ,KADd,CACjCY,OADiC;AAAA,MACxBO,QADwB,GACcnB,KADd,CACxBmB,QADwB;AAAA,MACdX,QADc,GACcR,KADd,CACdQ,QADc;AAAA,MACJY,aADI,GACcpB,KADd,CACJoB,aADI;;AAE/D,MAAMC,GAAG,GAAG,SAANA,GAAM,CAACC,CAAD;AAAA,WAAQJ,WAAW,aAAMA,WAAN,cAAqBI,CAArB,IAA2BA,CAA9C;AAAA,GAAZ;;AAEA,MAAMC,QAAQ,GAAG;AACfb,IAAAA,IAAI,EAAET,OAAO,CAACoB,GAAG,CAAC,MAAD,CAAJ,CADE;AAEfT,IAAAA,OAAO,EAAEX,OAAO,CAACoB,GAAG,CAAC,SAAD,CAAJ,CAFD;AAGfb,IAAAA,QAAQ,EAAEP,OAAO,CAACoB,GAAG,CAAC,UAAD,CAAJ;AAHF,GAAjB;AAMA,MAAMG,SAAS,GAAG;AAAEZ,IAAAA,OAAO,EAAPA,OAAF;AAAWO,IAAAA,QAAQ,EAARA,QAAX;AAAqBX,IAAAA,QAAQ,EAARA;AAArB,GAAlB;AACA,sBACE,gCAAC,oBAAD;AACE,kBAAYY;AADd,KAEMI,SAFN;AAGE,IAAA,SAAS,EAAEtB,UAHb;AAIE,IAAA,OAAO,EAAE;AACPQ,MAAAA,IAAI,EAAEa,QAAQ,CAACb,IADR;AAEPE,MAAAA,OAAO,EAAEW,QAAQ,CAACX,OAFX;AAGPJ,MAAAA,QAAQ,EAAEe,QAAQ,CAACf;AAHZ;AAJX,KADF;AAYD,CAvB6B,CAAvB;;AAyBA,IAAMiB,WAAW,GAAG,wBAAWnB,WAAX,EAAwB,UAACN,KAAD,EAAW;AAAA,MACpDkB,WADoD,GACiBlB,KADjB,CACpDkB,WADoD;AAAA,MACvCjB,OADuC,GACiBD,KADjB,CACvCC,OADuC;AAAA,MAC9BW,OAD8B,GACiBZ,KADjB,CAC9BY,OAD8B;AAAA,MACrBO,QADqB,GACiBnB,KADjB,CACrBmB,QADqB;AAAA,MACXX,QADW,GACiBR,KADjB,CACXQ,QADW;AAAA,MACDY,aADC,GACiBpB,KADjB,CACDoB,aADC;;AAE5D,MAAMC,GAAG,GAAG,SAANA,GAAM,CAACC,CAAD;AAAA,WAAQJ,WAAW,aAAMA,WAAN,cAAqBI,CAArB,IAA2BA,CAA9C;AAAA,GAAZ;;AAEA,MAAMC,QAAQ,GAAG;AACfb,IAAAA,IAAI,EAAET,OAAO,CAACoB,GAAG,CAAC,MAAD,CAAJ,CADE;AAEfT,IAAAA,OAAO,EAAEX,OAAO,CAACoB,GAAG,CAAC,SAAD,CAAJ,CAFD;AAGfb,IAAAA,QAAQ,EAAEP,OAAO,CAACoB,GAAG,CAAC,UAAD,CAAJ;AAHF,GAAjB;AAMA,MAAMG,SAAS,GAAG;AAAEZ,IAAAA,OAAO,EAAPA,OAAF;AAAWO,IAAAA,QAAQ,EAARA,QAAX;AAAqBX,IAAAA,QAAQ,EAARA;AAArB,GAAlB;AAEA,sBACE,gCAAC,iBAAD;AACE,kBAAYY;AADd,KAEMI,SAFN;AAGE,IAAA,SAAS,EAAEtB,UAHb;AAIE,IAAA,OAAO,EAAE;AACPQ,MAAAA,IAAI,EAAEa,QAAQ,CAACb,IADR;AAEPE,MAAAA,OAAO,EAAEW,QAAQ,CAACX;AAFX;AAJX,KADF;AAWD,CAvB0B,CAApB;;;IAyBMc,W;;;;;AAuBX,uBAAY1B,KAAZ,EAAmB;AAAA;;AAAA;AACjB,8BAAMA,KAAN;AACA,UAAK2B,cAAL,GAAsB,MAAKA,cAAL,CAAoBC,IAApB,gDAAtB;AAFiB;AAGlB;;;;WAED,0BAAiB;AACf,WAAK5B,KAAL,CAAWmB,QAAX,CAAoB;AAClBU,QAAAA,KAAK,EAAE,KAAK7B,KAAL,CAAW6B,KADA;AAElBC,QAAAA,QAAQ,EAAE,CAAC,KAAK9B,KAAL,CAAWY;AAFJ,OAApB;AAID;;;WAED,kBAAS;AAAA,wBAaH,KAAKZ,KAbF;AAAA,UAEL+B,UAFK,eAELA,UAFK;AAAA,UAGLvB,QAHK,eAGLA,QAHK;AAAA,UAILwB,UAJK,eAILA,UAJK;AAAA,UAKLC,QALK,eAKLA,QALK;AAAA,UAMLpC,KANK,eAMLA,KANK;AAAA,UAOLe,OAPK,eAOLA,OAPK;AAAA,UAQLM,WARK,eAQLA,WARK;AAAA,UASLjB,OATK,eASLA,OATK;AAAA,UAULiC,SAVK,eAULA,SAVK;AAAA,UAWLC,SAXK,eAWLA,SAXK;AAAA,UAYLf,aAZK,eAYLA,aAZK;AAeP,UAAMgB,GAAG,GAAGL,UAAU,KAAK,UAAf,GAA4Bd,cAA5B,GAA6CQ,WAAzD;AACA,UAAMY,WAAW,GAAGN,UAAU,KAAK,UAAf,GAA4B,UAA5B,GAAyC,cAA7D;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWG,SAAX,EAAsB,gBAAgBG,WAAtC;AAAhB,sBACE;AAAK,QAAA,SAAS,EAAEpC,OAAO,CAACd;AAAxB,sBACE,gCAAC,wBAAD;AAAc,QAAA,WAAW,EAAE+B;AAA3B,QADF,eAEE;AAAK,QAAA,SAAS,EAAEjB,OAAO,CAACR;AAAxB,sBACE,gCAAC,sBAAD;AACE,QAAA,QAAQ,EAAEe,QADZ;AAEE,QAAA,KAAK,EAAEwB,UAAU,GAAGA,UAAU,GAAG,IAAhB,GAAuB,EAF1C;AAGE,QAAA,OAAO,eACL,gCAAC,GAAD;AACE,UAAA,aAAa,EAAEZ,aADjB;AAEE,UAAA,OAAO,EAAER,OAFX;AAGE,UAAA,WAAW,EAAEM,WAHf;AAIE,UAAA,QAAQ,EAAE,KAAKS;AAJjB;AAJJ,QADF,eAaE,gCAAC,uBAAD;AACE,QAAA,SAAS,EAAC,OADZ;AAEE,QAAA,OAAO,EAAE,KAAKA,cAFhB;AAGE,QAAA,MAAM,EAAE9B,KAHV;AAIE,QAAA,OAAO,EAAC;AAJV,QAbF,CAFF,CADF,EAwBGsC,SAAS,iBACR,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAC,WAAzB;AAAqC,QAAA,MAAM,EAAEA;AAA7C,QAzBJ,eA2BE,gCAAC,kBAAD;AAAU,QAAA,QAAQ,EAAEF,QAApB;AAA8B,QAAA,WAAW,EAAEf;AAA3C,QA3BF,CADF;AA+BD;;;EApF8BoB,kBAAMC,S;;;iCAA1Bb,W,eACQ;AACjBK,EAAAA,UAAU,EAAES,sBAAUC,KAAV,CAAgB,CAAC,OAAD,EAAU,UAAV,CAAhB,CADK;AAEjBT,EAAAA,UAAU,EAAEQ,sBAAUE,MAAV,CAAiBC,UAFZ;AAGjB/B,EAAAA,OAAO,EAAE4B,sBAAUI,IAAV,CAAeD,UAHP;AAIjBzB,EAAAA,WAAW,EAAEsB,sBAAUE,MAJN;AAKjBlC,EAAAA,QAAQ,EAAEgC,sBAAUI,IAAV,CAAeD,UALR;AAMjBV,EAAAA,QAAQ,EAAEO,sBAAUE,MANH;AAOjB7C,EAAAA,KAAK,EAAE2C,sBAAUE,MAAV,CAAiBC,UAPP;AAQjBR,EAAAA,SAAS,EAAEK,sBAAUE,MARJ;AASjBtB,EAAAA,aAAa,EAAEoB,sBAAUE,MATR;AAUjBvB,EAAAA,QAAQ,EAAEqB,sBAAUK,IAAV,CAAeF,UAVR;AAWjBd,EAAAA,KAAK,EAAEW,sBAAUE,MAAV,CAAiBC,UAXP;AAYjB1C,EAAAA,OAAO,EAAEuC,sBAAUM,MAZF;AAajBZ,EAAAA,SAAS,EAAEM,sBAAUE;AAbJ,C;iCADRhB,W,kBAiBW;AACpBS,EAAAA,SAAS,EAAE,IADS;AAEpBf,EAAAA,aAAa,EAAE,IAFK;AAGpBR,EAAAA,OAAO,EAAE;AAHW,C;;eAsET,wBAAW1B,UAAX,EAAuBwC,WAAvB,C","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"}
|