@pie-element/multiple-choice 5.8.0 → 5.8.1-beta.587

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +529 -0
  2. package/PRINT.md +35 -0
  3. package/README.md +1 -1
  4. package/configure/CHANGELOG.md +468 -0
  5. package/configure/lib/defaults.js +39 -8
  6. package/configure/lib/defaults.js.map +1 -1
  7. package/configure/lib/index.js +24 -5
  8. package/configure/lib/index.js.map +1 -1
  9. package/configure/lib/main.js +290 -77
  10. package/configure/lib/main.js.map +1 -1
  11. package/configure/lib/utils.js +18 -0
  12. package/configure/lib/utils.js.map +1 -0
  13. package/configure/package.json +5 -5
  14. package/controller/CHANGELOG.md +97 -0
  15. package/controller/lib/defaults.js +4 -2
  16. package/controller/lib/defaults.js.map +1 -1
  17. package/controller/lib/index.js +85 -9
  18. package/controller/lib/index.js.map +1 -1
  19. package/controller/lib/utils.js +9 -1
  20. package/controller/lib/utils.js.map +1 -1
  21. package/controller/package.json +2 -2
  22. package/docs/config-schema.json +158 -1
  23. package/docs/config-schema.json.md +123 -3
  24. package/docs/demo/config.js +2 -2
  25. package/docs/demo/generate.js +18 -11
  26. package/docs/demo/index.html +1 -1
  27. package/docs/demo/session.js +1 -1
  28. package/docs/pie-schema.json +69 -4
  29. package/docs/pie-schema.json.md +57 -2
  30. package/lib/choice-input.js +44 -20
  31. package/lib/choice-input.js.map +1 -1
  32. package/lib/choice.js +157 -0
  33. package/lib/choice.js.map +1 -0
  34. package/lib/feedback-tick.js +1 -1
  35. package/lib/feedback-tick.js.map +1 -1
  36. package/lib/index.js +2 -2
  37. package/lib/index.js.map +1 -1
  38. package/lib/main.js +5 -2
  39. package/lib/main.js.map +1 -1
  40. package/lib/multiple-choice.js +85 -148
  41. package/lib/multiple-choice.js.map +1 -1
  42. package/lib/print.js +129 -0
  43. package/lib/print.js.map +1 -0
  44. package/lib/session-updater.js.map +1 -1
  45. package/package.json +12 -7
@@ -106,7 +106,39 @@
106
106
  }
107
107
  }
108
108
  },
109
- "verticalMode": {
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
+ },
125
+ "choicesLayout": {
126
+ "title": "ConfigureProp",
127
+ "type": "object",
128
+ "properties": {
129
+ "settings": {
130
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
131
+ "type": "boolean",
132
+ "title": "settings"
133
+ },
134
+ "label": {
135
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
136
+ "type": "string",
137
+ "title": "label"
138
+ }
139
+ }
140
+ },
141
+ "gridColumns": {
110
142
  "title": "ConfigureProp",
111
143
  "type": "object",
112
144
  "properties": {
@@ -186,6 +218,11 @@
186
218
  }
187
219
  }
188
220
  },
221
+ "settingsPanelDisabled": {
222
+ "description": "Indicates if the settings panel is not available",
223
+ "type": "boolean",
224
+ "title": "settingsPanelDisabled"
225
+ },
189
226
  "studentInstructions": {
190
227
  "title": "ConfigureProp",
191
228
  "type": "object",
@@ -239,6 +276,100 @@
239
276
  }
240
277
  }
241
278
  },
279
+ "accessibility": {
280
+ "title": "ConfigureProp",
281
+ "type": "object",
282
+ "properties": {
283
+ "settings": {
284
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
285
+ "type": "boolean",
286
+ "title": "settings"
287
+ },
288
+ "label": {
289
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
290
+ "type": "string",
291
+ "title": "label"
292
+ }
293
+ }
294
+ },
295
+ "minAnswerChoices": {
296
+ "description": "Minimum number of answer choices",
297
+ "type": "number",
298
+ "title": "minAnswerChoices"
299
+ },
300
+ "maxAnswerChoices": {
301
+ "description": "Maximum number of answer choices",
302
+ "type": "number",
303
+ "title": "maxAnswerChoices"
304
+ },
305
+ "maxImageWidth": {
306
+ "title": "ConfigureMaxImageDimensionsProp",
307
+ "type": "object",
308
+ "properties": {
309
+ "teacherInstructions": {
310
+ "description": "Indicates the max dimension for images in teacher instructions",
311
+ "type": "number",
312
+ "title": "teacherInstructions"
313
+ },
314
+ "prompt": {
315
+ "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",
316
+ "type": "number",
317
+ "title": "prompt"
318
+ },
319
+ "rationale": {
320
+ "description": "Indicates the max dimension for images in rationale",
321
+ "type": "number",
322
+ "title": "rationale"
323
+ },
324
+ "choices": {
325
+ "description": "Indicates the max dimension for images in choices",
326
+ "type": "number",
327
+ "title": "choices"
328
+ }
329
+ }
330
+ },
331
+ "maxImageHeight": {
332
+ "title": "ConfigureMaxImageDimensionsProp",
333
+ "type": "object",
334
+ "properties": {
335
+ "teacherInstructions": {
336
+ "description": "Indicates the max dimension for images in teacher instructions",
337
+ "type": "number",
338
+ "title": "teacherInstructions"
339
+ },
340
+ "prompt": {
341
+ "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",
342
+ "type": "number",
343
+ "title": "prompt"
344
+ },
345
+ "rationale": {
346
+ "description": "Indicates the max dimension for images in rationale",
347
+ "type": "number",
348
+ "title": "rationale"
349
+ },
350
+ "choices": {
351
+ "description": "Indicates the max dimension for images in choices",
352
+ "type": "number",
353
+ "title": "choices"
354
+ }
355
+ }
356
+ },
357
+ "withRubric": {
358
+ "title": "ConfigureProp",
359
+ "type": "object",
360
+ "properties": {
361
+ "settings": {
362
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
363
+ "type": "boolean",
364
+ "title": "settings"
365
+ },
366
+ "label": {
367
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
368
+ "type": "string",
369
+ "title": "label"
370
+ }
371
+ }
372
+ },
242
373
  "showPrompt": {
243
374
  "description": "Determines whether prompt field will be displayed or not",
244
375
  "default": true,
@@ -289,6 +420,32 @@
289
420
  "title": "enabled"
290
421
  }
291
422
  }
423
+ },
424
+ "ConfigureMaxImageDimensionsProp": {
425
+ "title": "ConfigureMaxImageDimensionsProp",
426
+ "type": "object",
427
+ "properties": {
428
+ "teacherInstructions": {
429
+ "description": "Indicates the max dimension for images in teacher instructions",
430
+ "type": "number",
431
+ "title": "teacherInstructions"
432
+ },
433
+ "prompt": {
434
+ "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",
435
+ "type": "number",
436
+ "title": "prompt"
437
+ },
438
+ "rationale": {
439
+ "description": "Indicates the max dimension for images in rationale",
440
+ "type": "number",
441
+ "title": "rationale"
442
+ },
443
+ "choices": {
444
+ "description": "Indicates the max dimension for images in choices",
445
+ "type": "number",
446
+ "title": "choices"
447
+ }
448
+ }
292
449
  }
293
450
  },
294
451
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -84,9 +84,33 @@ 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
- # `verticalMode` (object)
87
+ # `spellCheck` (object)
88
88
 
89
- Properties of the `verticalMode` object:
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
+
99
+ # `choicesLayout` (object)
100
+
101
+ Properties of the `choicesLayout` object:
102
+
103
+ ## `settings` (boolean)
104
+
105
+ Indicates if the item has to be displayed in the Settings Panel
106
+
107
+ ## `label` (string)
108
+
109
+ Indicates the label for the item that has to be displayed in the Settings Panel
110
+
111
+ # `gridColumns` (object)
112
+
113
+ Properties of the `gridColumns` object:
90
114
 
91
115
  ## `settings` (boolean)
92
116
 
@@ -144,6 +168,10 @@ Indicates if the item has to be displayed in the Settings Panel
144
168
 
145
169
  Indicates the label for the item that has to be displayed in the Settings Panel
146
170
 
171
+ # `settingsPanelDisabled` (boolean)
172
+
173
+ Indicates if the settings panel is not available
174
+
147
175
  # `studentInstructions` (object)
148
176
 
149
177
  Properties of the `studentInstructions` object:
@@ -185,6 +213,78 @@ Indicates the label for the item that has to be displayed in the Settings Panel
185
213
  Indicates the value of the item if it affects config-ui
186
214
  (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
187
215
 
216
+ # `accessibility` (object)
217
+
218
+ Properties of the `accessibility` object:
219
+
220
+ ## `settings` (boolean)
221
+
222
+ Indicates if the item has to be displayed in the Settings Panel
223
+
224
+ ## `label` (string)
225
+
226
+ Indicates the label for the item that has to be displayed in the Settings Panel
227
+
228
+ # `minAnswerChoices` (number)
229
+
230
+ Minimum number of answer choices
231
+
232
+ # `maxAnswerChoices` (number)
233
+
234
+ Maximum number of answer choices
235
+
236
+ # `maxImageWidth` (object)
237
+
238
+ Properties of the `maxImageWidth` object:
239
+
240
+ ## `teacherInstructions` (number)
241
+
242
+ Indicates the max dimension for images in teacher instructions
243
+
244
+ ## `prompt` (number)
245
+
246
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
247
+
248
+ ## `rationale` (number)
249
+
250
+ Indicates the max dimension for images in rationale
251
+
252
+ ## `choices` (number)
253
+
254
+ Indicates the max dimension for images in choices
255
+
256
+ # `maxImageHeight` (object)
257
+
258
+ Properties of the `maxImageHeight` object:
259
+
260
+ ## `teacherInstructions` (number)
261
+
262
+ Indicates the max dimension for images in teacher instructions
263
+
264
+ ## `prompt` (number)
265
+
266
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
267
+
268
+ ## `rationale` (number)
269
+
270
+ Indicates the max dimension for images in rationale
271
+
272
+ ## `choices` (number)
273
+
274
+ Indicates the max dimension for images in choices
275
+
276
+ # `withRubric` (object)
277
+
278
+ Properties of the `withRubric` object:
279
+
280
+ ## `settings` (boolean)
281
+
282
+ Indicates if the item has to be displayed in the Settings Panel
283
+
284
+ ## `label` (string)
285
+
286
+ Indicates the label for the item that has to be displayed in the Settings Panel
287
+
188
288
  # `showPrompt` (boolean)
189
289
 
190
290
  Determines whether prompt field will be displayed or not
@@ -230,4 +330,24 @@ Indicates the label for the item that has to be displayed in the Settings Panel
230
330
  ### `enabled` (boolean)
231
331
 
232
332
  Indicates the value of the item if it affects config-ui
233
- (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
333
+ (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
334
+
335
+ ## `ConfigureMaxImageDimensionsProp` (object)
336
+
337
+ Properties of the `ConfigureMaxImageDimensionsProp` object:
338
+
339
+ ### `teacherInstructions` (number)
340
+
341
+ Indicates the max dimension for images in teacher instructions
342
+
343
+ ### `prompt` (number)
344
+
345
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
346
+
347
+ ### `rationale` (number)
348
+
349
+ Indicates the max dimension for images in rationale
350
+
351
+ ### `choices` (number)
352
+
353
+ Indicates the max dimension for images in choices
@@ -2,7 +2,7 @@ const { model } = require('./generate');
2
2
 
3
3
  module.exports = {
4
4
  elements: {
5
- 'multiple-choice': '../..'
5
+ 'multiple-choice': '../..',
6
6
  },
7
- models: [model('1', 'multiple-choice')]
7
+ models: [model('1', 'multiple-choice')],
8
8
  };
@@ -10,26 +10,29 @@ exports.model = (id, element) => ({
10
10
  label: 'Sweden',
11
11
  feedback: {
12
12
  type: 'none',
13
- value: ''
14
- }
13
+ value: '',
14
+ },
15
+ accessibility: 'sweden',
15
16
  },
16
17
  {
17
18
  value: 'iceland',
18
19
  label: 'Iceland',
19
20
  feedback: {
20
21
  type: 'none',
21
- value: ''
22
+ value: '',
22
23
  },
23
- rationale: 'Rationale for Iceland'
24
+ rationale: 'Rationale for Iceland',
25
+ accessibility: 'iceland',
24
26
  },
25
27
  {
26
28
  value: 'norway',
27
29
  label: 'Norway',
28
30
  feedback: {
29
31
  type: 'none',
30
- value: ''
32
+ value: '',
31
33
  },
32
- rationale: 'Rationale for Norway'
34
+ rationale: 'Rationale for Norway',
35
+ accessibility: 'norway',
33
36
  },
34
37
  {
35
38
  correct: true,
@@ -37,11 +40,15 @@ exports.model = (id, element) => ({
37
40
  label: 'Finland',
38
41
  feedback: {
39
42
  type: 'none',
40
- value: ''
43
+ value: '',
41
44
  },
42
- rationale: 'Rationale for Finland'
43
- }
45
+ rationale: 'Rationale for Finland',
46
+ accessibility: 'finland',
47
+ },
44
48
  ],
45
- prompt: 'Which of these northern European countries are EU members? <math><mstack><msrow><mn>111</mn></msrow><msline/></mstack></math>',
46
- promptEnabled: true
49
+ prompt:
50
+ 'Which of these northern European countries are EU members? <math><mstack><msrow><mn>111</mn></msrow><msline/></mstack></math>',
51
+ promptEnabled: true,
52
+ toolbarEditorPosition: 'bottom',
53
+ rubricEnabled: false,
47
54
  });
@@ -1 +1 @@
1
- <multiple-choice pie-id="1"> </multiple-choice>
1
+ <multiple-choice pie-id="1"> </multiple-choice>
@@ -3,5 +3,5 @@ module.exports = [
3
3
  id: '1',
4
4
  element: 'multiple-choice',
5
5
  // value: ['iceland', 'norway']
6
- }
6
+ },
7
7
  ];
@@ -97,11 +97,32 @@
97
97
  "type": "boolean",
98
98
  "title": "promptEnabled"
99
99
  },
100
- "verticalMode": {
100
+ "choicesLayout": {
101
101
  "description": "Indicates the layout of choices for player",
102
- "default": ": true",
103
- "type": "boolean",
104
- "title": "verticalMode"
102
+ "default": ": 'vertical'",
103
+ "enum": [
104
+ "grid",
105
+ "horizontal",
106
+ "vertical"
107
+ ],
108
+ "type": "string",
109
+ "title": "choicesLayout"
110
+ },
111
+ "gridColumns": {
112
+ "description": "Indicates the number of columns for the grid layout",
113
+ "default": ": 2",
114
+ "type": "number",
115
+ "title": "gridColumns"
116
+ },
117
+ "toolbarEditorPosition": {
118
+ "description": "Indicates the editor's toolbar position which can be 'bottom' or 'top'",
119
+ "default": ": 'bottom'",
120
+ "enum": [
121
+ "bottom",
122
+ "top"
123
+ ],
124
+ "type": "string",
125
+ "title": "toolbarEditorPosition"
105
126
  },
106
127
  "lockChoiceOrder": {
107
128
  "description": "Indicates the order of choices should be randomly ordered when presented to user",
@@ -142,6 +163,11 @@
142
163
  "type": "boolean",
143
164
  "title": "rationaleEnabled"
144
165
  },
166
+ "spellCheckEnabled": {
167
+ "description": "Indicates if spellcheck is enabled for the author. Default value is true",
168
+ "type": "boolean",
169
+ "title": "spellCheckEnabled"
170
+ },
145
171
  "studentInstructionsEnabled": {
146
172
  "description": "Indicates if Student Instructions are enabled",
147
173
  "type": "boolean",
@@ -152,6 +178,16 @@
152
178
  "type": "boolean",
153
179
  "title": "teacherInstructionsEnabled"
154
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
+ },
155
191
  "id": {
156
192
  "description": "Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.",
157
193
  "type": "string",
@@ -164,11 +200,14 @@
164
200
  }
165
201
  },
166
202
  "required": [
203
+ "accessibilityLabelsEnabled",
167
204
  "choices",
168
205
  "element",
169
206
  "feedbackEnabled",
170
207
  "id",
171
208
  "rationaleEnabled",
209
+ "rubricEnabled",
210
+ "spellCheckEnabled",
172
211
  "studentInstructionsEnabled",
173
212
  "teacherInstructionsEnabled"
174
213
  ],
@@ -210,6 +249,32 @@
210
249
  }
211
250
  }
212
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
+ },
213
278
  "Choice": {
214
279
  "title": "Choice",
215
280
  "type": "object",
@@ -80,11 +80,34 @@ The question prompt or item stem
80
80
 
81
81
  Determines if prompt should show
82
82
 
83
- # `verticalMode` (boolean)
83
+ # `choicesLayout` (string, enum)
84
84
 
85
85
  Indicates the layout of choices for player
86
86
 
87
- Default: `": true"`
87
+ This element must be one of the following enum values:
88
+
89
+ * `grid`
90
+ * `horizontal`
91
+ * `vertical`
92
+
93
+ Default: `": 'vertical'"`
94
+
95
+ # `gridColumns` (number)
96
+
97
+ Indicates the number of columns for the grid layout
98
+
99
+ Default: `": 2"`
100
+
101
+ # `toolbarEditorPosition` (string, enum)
102
+
103
+ Indicates the editor's toolbar position which can be 'bottom' or 'top'
104
+
105
+ This element must be one of the following enum values:
106
+
107
+ * `bottom`
108
+ * `top`
109
+
110
+ Default: `": 'bottom'"`
88
111
 
89
112
  # `lockChoiceOrder` (boolean)
90
113
 
@@ -119,6 +142,10 @@ Indicates if feedback is enabled
119
142
 
120
143
  Indicates if Rationale are enabled
121
144
 
145
+ # `spellCheckEnabled` (boolean, required)
146
+
147
+ Indicates if spellcheck is enabled for the author. Default value is true
148
+
122
149
  # `studentInstructionsEnabled` (boolean, required)
123
150
 
124
151
  Indicates if Student Instructions are enabled
@@ -127,6 +154,14 @@ Indicates if Student Instructions are enabled
127
154
 
128
155
  Indicates if Teacher Instructions are enabled
129
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
+
130
165
  # `id` (string, required)
131
166
 
132
167
  Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.
@@ -170,6 +205,26 @@ Indicates the label for the item that has to be displayed in the Settings Panel
170
205
  Indicates the value of the item if it affects config-ui
171
206
  (eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)
172
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
+
173
228
  ## `Choice` (object)
174
229
 
175
230
  Properties of the `Choice` object: