@pie-element/ebsr 12.3.4-next.3 → 13.0.0-beta.0

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 (101) hide show
  1. package/configure/lib/defaults.js +23 -36
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/index.js +114 -202
  4. package/configure/lib/index.js.map +1 -1
  5. package/configure/lib/main.js +188 -271
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.json +1972 -0
  8. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.md +4213 -0
  9. package/configure/node_modules/@pie-element/multiple-choice/PRINT.md +35 -0
  10. package/configure/node_modules/@pie-element/multiple-choice/README.md +56 -0
  11. package/configure/node_modules/@pie-element/multiple-choice/choice.png +0 -0
  12. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.json +1387 -0
  13. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.md +3351 -0
  14. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/__tests__/root.test.js +248 -0
  15. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js +200 -0
  16. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js.map +1 -0
  17. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js +211 -0
  18. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js.map +1 -0
  19. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js +477 -0
  20. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js.map +1 -0
  21. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js +18 -0
  22. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js.map +1 -0
  23. package/configure/node_modules/@pie-element/multiple-choice/configure/package.json +22 -0
  24. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.json +527 -0
  25. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.md +2316 -0
  26. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/__tests__/index.test.js +520 -0
  27. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/__tests__/utils.test.js +8 -0
  28. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js +33 -0
  29. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js +251 -0
  31. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js.map +1 -0
  32. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js +16 -0
  33. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js.map +1 -0
  34. package/configure/node_modules/@pie-element/multiple-choice/controller/package.json +15 -0
  35. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json +2993 -0
  36. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json.md +2217 -0
  37. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/config.js +8 -0
  38. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/generate.js +61 -0
  39. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/index.html +1 -0
  40. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/pie.manifest.json +11 -0
  41. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/session.js +7 -0
  42. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json +1332 -0
  43. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json.md +1015 -0
  44. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/choice-input-test.js +117 -0
  45. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/index-test.js +151 -0
  46. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/key-events-test.js +95 -0
  47. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/multiple-choice-test.js +223 -0
  48. package/configure/node_modules/@pie-element/multiple-choice/lib/__tests__/session-updater-test.js +70 -0
  49. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js +370 -0
  50. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js.map +1 -0
  51. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js +197 -0
  52. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js.map +1 -0
  53. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js +130 -0
  54. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js.map +1 -0
  55. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js +292 -0
  56. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js.map +1 -0
  57. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js +54 -0
  58. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js.map +1 -0
  59. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js +386 -0
  60. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js.map +1 -0
  61. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js +92 -0
  62. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js.map +1 -0
  63. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js +37 -0
  64. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js.map +1 -0
  65. package/configure/node_modules/@pie-element/multiple-choice/package.json +39 -0
  66. package/configure/package.json +9 -6
  67. package/configure/src/__tests__/index.test.js +99 -108
  68. package/configure/src/index.js +13 -6
  69. package/configure/src/main.jsx +14 -18
  70. package/controller/lib/defaults.js +20 -32
  71. package/controller/lib/defaults.js.map +1 -1
  72. package/controller/lib/index.js +224 -349
  73. package/controller/lib/index.js.map +1 -1
  74. package/controller/lib/utils.js +4 -18
  75. package/controller/lib/utils.js.map +1 -1
  76. package/controller/package.json +3 -3
  77. package/lib/index.js +113 -181
  78. package/lib/index.js.map +1 -1
  79. package/lib/print.js +120 -204
  80. package/lib/print.js.map +1 -1
  81. package/package.json +5 -13
  82. package/src/__tests__/index.test.js +18 -5
  83. package/configure/src/__tests__/__snapshots__/index.test.js.snap +0 -83
  84. package/esm/configure.js +0 -12003
  85. package/esm/configure.js.map +0 -1
  86. package/esm/controller.js +0 -3358
  87. package/esm/controller.js.map +0 -1
  88. package/esm/element.js +0 -2203
  89. package/esm/element.js.map +0 -1
  90. package/esm/package.json +0 -3
  91. package/esm/print.js +0 -4092
  92. package/esm/print.js.map +0 -1
  93. package/module/configure.js +0 -1
  94. package/module/controller.js +0 -6469
  95. package/module/demo.js +0 -77
  96. package/module/element.js +0 -1
  97. package/module/index.html +0 -21
  98. package/module/manifest.json +0 -14
  99. package/module/print-demo.js +0 -115
  100. package/module/print.html +0 -18
  101. package/module/print.js +0 -1
@@ -0,0 +1,1332 @@
1
+ {
2
+ "description": "Model for the Choice Interaction",
3
+ "additionalProperties": false,
4
+ "type": "object",
5
+ "properties": {
6
+ "choiceMode": {
7
+ "description": "Indicates the choices are single or multiple selection",
8
+ "enum": [
9
+ "checkbox",
10
+ "radio"
11
+ ],
12
+ "type": "string",
13
+ "title": "choiceMode"
14
+ },
15
+ "choicePrefix": {
16
+ "description": "What key should be displayed before choices. If undefined no key will be displayed.",
17
+ "default": ": 'letters'",
18
+ "enum": [
19
+ "letters",
20
+ "numbers"
21
+ ],
22
+ "type": "string",
23
+ "title": "choicePrefix"
24
+ },
25
+ "choices": {
26
+ "description": "The choice options for the question",
27
+ "type": "array",
28
+ "items": {
29
+ "title": "Choice",
30
+ "type": "object",
31
+ "properties": {
32
+ "correct": {
33
+ "description": "Indicates if the choice is correct",
34
+ "type": "boolean",
35
+ "title": "correct"
36
+ },
37
+ "value": {
38
+ "description": "the value that will be stored if this choice is selected",
39
+ "type": "string",
40
+ "title": "value"
41
+ },
42
+ "label": {
43
+ "description": "the text label that will be presented to the user for this choice",
44
+ "type": "string",
45
+ "title": "label"
46
+ },
47
+ "feedback": {
48
+ "description": "The type of feedback to use:\n `default` = a standard feedback message\n `custom` = a customized feedback message",
49
+ "title": "Feedback",
50
+ "type": "object",
51
+ "properties": {
52
+ "type": {
53
+ "default": "default",
54
+ "enum": [
55
+ "custom",
56
+ "default",
57
+ "none"
58
+ ],
59
+ "type": "string",
60
+ "title": "type"
61
+ },
62
+ "value": {
63
+ "description": "Value for feedback",
64
+ "type": "string",
65
+ "title": "value"
66
+ },
67
+ "custom": {
68
+ "description": "Custom value for feedback",
69
+ "type": "string",
70
+ "title": "custom"
71
+ }
72
+ },
73
+ "required": [
74
+ "type"
75
+ ]
76
+ },
77
+ "rationale": {
78
+ "description": "Rationale for the Choice",
79
+ "type": "string",
80
+ "title": "rationale"
81
+ }
82
+ },
83
+ "required": [
84
+ "label",
85
+ "value"
86
+ ]
87
+ },
88
+ "title": "choices"
89
+ },
90
+ "prompt": {
91
+ "description": "The question prompt or item stem",
92
+ "type": "string",
93
+ "title": "prompt"
94
+ },
95
+ "promptEnabled": {
96
+ "description": "Determines if prompt should show",
97
+ "type": "boolean",
98
+ "title": "promptEnabled"
99
+ },
100
+ "choicesLayout": {
101
+ "description": "Indicates the layout of choices for player",
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"
126
+ },
127
+ "selectedAnswerBackgroundColor": {
128
+ "description": "Indicates the background color for selected choices",
129
+ "default": ": 'initial'",
130
+ "type": "string",
131
+ "title": "selectedAnswerBackgroundColor"
132
+ },
133
+ "selectedAnswerStrokeColor": {
134
+ "description": "Indicates the border color for selected choices",
135
+ "default": ": 'initial'",
136
+ "type": "string",
137
+ "title": "selectedAnswerStrokeColor"
138
+ },
139
+ "selectedAnswerStrokeWidth": {
140
+ "description": "Indicates the border width for selected choices if selectedAnswerBackgroundColor is set",
141
+ "default": ": '2px'",
142
+ "type": "string",
143
+ "title": "selectedAnswerStrokeWidth"
144
+ },
145
+ "hoverAnswerBackgroundColor": {
146
+ "description": "Indicates the background color for choices on hover",
147
+ "default": ": 'initial'",
148
+ "type": "string",
149
+ "title": "hoverAnswerBackgroundColor"
150
+ },
151
+ "hoverAnswerStrokeColor": {
152
+ "description": "Indicates the border color for choices on hover",
153
+ "default": ": 'initial'",
154
+ "type": "string",
155
+ "title": "hoverAnswerStrokeColor"
156
+ },
157
+ "hoverAnswerStrokeWidth": {
158
+ "description": "Indicates the border width for choices on hover if hoverAnswerBackgroundColor is set",
159
+ "default": ": '2px'",
160
+ "type": "string",
161
+ "title": "hoverAnswerStrokeWidth"
162
+ },
163
+ "lockChoiceOrder": {
164
+ "description": "Indicates the order of choices presented to user\nif true, answer choices will be presented in the order they are defined in the model\nIf false, answer choices may be presented in a random order (depending upon the value of the lockChoiceOrder environment variable)",
165
+ "type": "boolean",
166
+ "title": "lockChoiceOrder"
167
+ },
168
+ "minSelections": {
169
+ "description": "Indicates that minimum selections that should be made (only for choice mode 'checkbox')",
170
+ "type": "number",
171
+ "title": "minSelections"
172
+ },
173
+ "maxSelections": {
174
+ "description": "Indicates that maximum selections that should be made (only for choice mode 'checkbox')",
175
+ "type": "number",
176
+ "title": "maxSelections"
177
+ },
178
+ "partialScoring": {
179
+ "description": "Indicates that the item should use partial scoring",
180
+ "type": "boolean",
181
+ "title": "partialScoring"
182
+ },
183
+ "scoringType": {
184
+ "description": "Indicates scoring type",
185
+ "enum": [
186
+ "auto",
187
+ "rubric"
188
+ ],
189
+ "type": "string",
190
+ "title": "scoringType"
191
+ },
192
+ "studentInstructions": {
193
+ "description": "Indicates student instructions",
194
+ "type": "string",
195
+ "title": "studentInstructions"
196
+ },
197
+ "teacherInstructions": {
198
+ "description": "Indicates teacher instructions",
199
+ "type": "string",
200
+ "title": "teacherInstructions"
201
+ },
202
+ "feedbackEnabled": {
203
+ "description": "Indicates if feedback is enabled",
204
+ "type": "boolean",
205
+ "title": "feedbackEnabled"
206
+ },
207
+ "rationaleEnabled": {
208
+ "description": "Indicates if Rationale are enabled",
209
+ "type": "boolean",
210
+ "title": "rationaleEnabled"
211
+ },
212
+ "spellCheckEnabled": {
213
+ "description": "Indicates if spellcheck is enabled for the author. Default value is true",
214
+ "type": "boolean",
215
+ "title": "spellCheckEnabled"
216
+ },
217
+ "studentInstructionsEnabled": {
218
+ "description": "Indicates if Student Instructions are enabled",
219
+ "type": "boolean",
220
+ "title": "studentInstructionsEnabled"
221
+ },
222
+ "teacherInstructionsEnabled": {
223
+ "description": "Indicates if Teacher Instructions are enabled",
224
+ "type": "boolean",
225
+ "title": "teacherInstructionsEnabled"
226
+ },
227
+ "accessibilityLabelsEnabled": {
228
+ "description": "Indicates if Accessibility Labels are enabled",
229
+ "type": "boolean",
230
+ "title": "accessibilityLabelsEnabled"
231
+ },
232
+ "rubricEnabled": {
233
+ "description": "Indicates if Rubric is enabled",
234
+ "type": "boolean",
235
+ "title": "rubricEnabled"
236
+ },
237
+ "language": {
238
+ "description": "Indicates the language of the component\nSupported options: en, es, en_US, en-US, es_ES, es-ES, es_MX, es-MX",
239
+ "type": "string",
240
+ "title": "language"
241
+ },
242
+ "isSelectionButtonBelow": {
243
+ "description": "Indicates if the selection button and choice prefix should be positioned below the corresponding answer choice",
244
+ "type": "boolean",
245
+ "title": "isSelectionButtonBelow"
246
+ },
247
+ "fontSizeFactor": {
248
+ "description": "Indicates font size adjustment factor",
249
+ "type": "number",
250
+ "title": "fontSizeFactor"
251
+ },
252
+ "autoplayAudioEnabled": {
253
+ "description": "Indicates if the audio for the prompt should autoplay",
254
+ "type": "boolean",
255
+ "title": "autoplayAudioEnabled"
256
+ },
257
+ "completeAudioEnabled": {
258
+ "description": "Indicates if the audio should reach the end before the item can be marked as 'complete'",
259
+ "type": "boolean",
260
+ "title": "completeAudioEnabled"
261
+ },
262
+ "customAudioButton": {
263
+ "description": "Indicates if the audio should be replaced with a custom audio button\n playImage: image url for the play state\n pauseImage: image url for the pause state",
264
+ "type": "object",
265
+ "properties": {
266
+ "playImage": {
267
+ "type": "string",
268
+ "title": "playImage"
269
+ },
270
+ "pauseImage": {
271
+ "type": "string",
272
+ "title": "pauseImage"
273
+ }
274
+ },
275
+ "required": [
276
+ "pauseImage",
277
+ "playImage"
278
+ ],
279
+ "title": "customAudioButton"
280
+ },
281
+ "id": {
282
+ "description": "Identifier to identify the Pie Element in html markup, Must be unique within a pie item config.",
283
+ "type": "string",
284
+ "title": "id"
285
+ },
286
+ "element": {
287
+ "description": "The html Element tag name",
288
+ "type": "string",
289
+ "title": "element"
290
+ }
291
+ },
292
+ "required": [
293
+ "accessibilityLabelsEnabled",
294
+ "choices",
295
+ "element",
296
+ "feedbackEnabled",
297
+ "id",
298
+ "rationaleEnabled",
299
+ "rubricEnabled",
300
+ "spellCheckEnabled",
301
+ "studentInstructionsEnabled",
302
+ "teacherInstructionsEnabled"
303
+ ],
304
+ "definitions": {
305
+ "ConfigureProp": {
306
+ "title": "ConfigureProp",
307
+ "type": "object",
308
+ "properties": {
309
+ "settings": {
310
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
311
+ "type": "boolean",
312
+ "title": "settings"
313
+ },
314
+ "label": {
315
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
316
+ "type": "string",
317
+ "title": "label"
318
+ }
319
+ }
320
+ },
321
+ "EditableHtmlConfigureProp": {
322
+ "title": "EditableHtmlConfigureProp",
323
+ "type": "object",
324
+ "properties": {
325
+ "math": {
326
+ "title": "EditableHtmlButtonConfigure",
327
+ "type": "object",
328
+ "properties": {
329
+ "disabled": {
330
+ "description": "Indicates if the plugin is disabled or not",
331
+ "type": "boolean",
332
+ "title": "disabled"
333
+ }
334
+ }
335
+ },
336
+ "audio": {
337
+ "title": "EditableHtmlButtonConfigure",
338
+ "type": "object",
339
+ "properties": {
340
+ "disabled": {
341
+ "description": "Indicates if the plugin is disabled or not",
342
+ "type": "boolean",
343
+ "title": "disabled"
344
+ }
345
+ }
346
+ },
347
+ "video": {
348
+ "title": "EditableHtmlButtonConfigure",
349
+ "type": "object",
350
+ "properties": {
351
+ "disabled": {
352
+ "description": "Indicates if the plugin is disabled or not",
353
+ "type": "boolean",
354
+ "title": "disabled"
355
+ }
356
+ }
357
+ },
358
+ "image": {
359
+ "title": "EditableHtmlButtonConfigure",
360
+ "type": "object",
361
+ "properties": {
362
+ "disabled": {
363
+ "description": "Indicates if the plugin is disabled or not",
364
+ "type": "boolean",
365
+ "title": "disabled"
366
+ }
367
+ }
368
+ },
369
+ "customPlugins": {
370
+ "description": "An array of objects that determine custom plugins.\nA custom plugin is an object which determines how the button will look like (icon) and the event name that will be triggered when button gets pressed (event).\nExample can be found at https://github.com/pie-framework/pie-lib/blob/develop/packages/demo/pages/editable-html.js#L425.",
371
+ "type": "array",
372
+ "items": {
373
+ "title": "CustomPlugin",
374
+ "type": "object",
375
+ "properties": {
376
+ "event": {
377
+ "description": "The name of the custom event. It needs to be valid (only letters, numbers and \"_\" can be used).\nPIE will emit the event prefixed with \"PIE-\".\nEg: event = 'client_custom_event_A' => the emitted event will be \"PIE-client_custom_event_A\"",
378
+ "type": "string",
379
+ "title": "event"
380
+ },
381
+ "iconAlt": {
382
+ "description": "The alt for the custom button icon",
383
+ "type": "string",
384
+ "title": "iconAlt"
385
+ },
386
+ "iconType": {
387
+ "description": "The icon type.\nCurrently, only \"SVG\" is supported.",
388
+ "type": "string",
389
+ "title": "iconType"
390
+ },
391
+ "icon": {
392
+ "description": "The icon string. Currently, only \"SVG\" is supported, so it needs to be a valid svg.",
393
+ "type": "string",
394
+ "title": "icon"
395
+ }
396
+ },
397
+ "required": [
398
+ "event",
399
+ "icon",
400
+ "iconAlt",
401
+ "iconType"
402
+ ]
403
+ },
404
+ "title": "customPlugins"
405
+ },
406
+ "blockquote": {
407
+ "title": "EditableHtmlButtonConfigure",
408
+ "type": "object",
409
+ "properties": {
410
+ "disabled": {
411
+ "description": "Indicates if the plugin is disabled or not",
412
+ "type": "boolean",
413
+ "title": "disabled"
414
+ }
415
+ }
416
+ },
417
+ "h3": {
418
+ "title": "EditableHtmlButtonConfigure",
419
+ "type": "object",
420
+ "properties": {
421
+ "disabled": {
422
+ "description": "Indicates if the plugin is disabled or not",
423
+ "type": "boolean",
424
+ "title": "disabled"
425
+ }
426
+ }
427
+ },
428
+ "characters": {
429
+ "title": "EditableHtmlButtonConfigure",
430
+ "type": "object",
431
+ "properties": {
432
+ "disabled": {
433
+ "description": "Indicates if the plugin is disabled or not",
434
+ "type": "boolean",
435
+ "title": "disabled"
436
+ }
437
+ }
438
+ },
439
+ "bold": {
440
+ "title": "EditableHtmlButtonConfigure",
441
+ "type": "object",
442
+ "properties": {
443
+ "disabled": {
444
+ "description": "Indicates if the plugin is disabled or not",
445
+ "type": "boolean",
446
+ "title": "disabled"
447
+ }
448
+ }
449
+ },
450
+ "html": {
451
+ "title": "EditableHtmlButtonConfigure",
452
+ "type": "object",
453
+ "properties": {
454
+ "disabled": {
455
+ "description": "Indicates if the plugin is disabled or not",
456
+ "type": "boolean",
457
+ "title": "disabled"
458
+ }
459
+ }
460
+ },
461
+ "italic": {
462
+ "title": "EditableHtmlButtonConfigure",
463
+ "type": "object",
464
+ "properties": {
465
+ "disabled": {
466
+ "description": "Indicates if the plugin is disabled or not",
467
+ "type": "boolean",
468
+ "title": "disabled"
469
+ }
470
+ }
471
+ },
472
+ "ol_list": {
473
+ "title": "EditableHtmlButtonConfigure",
474
+ "type": "object",
475
+ "properties": {
476
+ "disabled": {
477
+ "description": "Indicates if the plugin is disabled or not",
478
+ "type": "boolean",
479
+ "title": "disabled"
480
+ }
481
+ }
482
+ },
483
+ "redo": {
484
+ "title": "EditableHtmlButtonConfigure",
485
+ "type": "object",
486
+ "properties": {
487
+ "disabled": {
488
+ "description": "Indicates if the plugin is disabled or not",
489
+ "type": "boolean",
490
+ "title": "disabled"
491
+ }
492
+ }
493
+ },
494
+ "strikethrough": {
495
+ "title": "EditableHtmlButtonConfigure",
496
+ "type": "object",
497
+ "properties": {
498
+ "disabled": {
499
+ "description": "Indicates if the plugin is disabled or not",
500
+ "type": "boolean",
501
+ "title": "disabled"
502
+ }
503
+ }
504
+ },
505
+ "sub": {
506
+ "title": "EditableHtmlButtonConfigure",
507
+ "type": "object",
508
+ "properties": {
509
+ "disabled": {
510
+ "description": "Indicates if the plugin is disabled or not",
511
+ "type": "boolean",
512
+ "title": "disabled"
513
+ }
514
+ }
515
+ },
516
+ "sup": {
517
+ "title": "EditableHtmlButtonConfigure",
518
+ "type": "object",
519
+ "properties": {
520
+ "disabled": {
521
+ "description": "Indicates if the plugin is disabled or not",
522
+ "type": "boolean",
523
+ "title": "disabled"
524
+ }
525
+ }
526
+ },
527
+ "table": {
528
+ "title": "EditableHtmlButtonConfigure",
529
+ "type": "object",
530
+ "properties": {
531
+ "disabled": {
532
+ "description": "Indicates if the plugin is disabled or not",
533
+ "type": "boolean",
534
+ "title": "disabled"
535
+ }
536
+ }
537
+ },
538
+ "ul_list": {
539
+ "title": "EditableHtmlButtonConfigure",
540
+ "type": "object",
541
+ "properties": {
542
+ "disabled": {
543
+ "description": "Indicates if the plugin is disabled or not",
544
+ "type": "boolean",
545
+ "title": "disabled"
546
+ }
547
+ }
548
+ },
549
+ "underline": {
550
+ "title": "EditableHtmlButtonConfigure",
551
+ "type": "object",
552
+ "properties": {
553
+ "disabled": {
554
+ "description": "Indicates if the plugin is disabled or not",
555
+ "type": "boolean",
556
+ "title": "disabled"
557
+ }
558
+ }
559
+ },
560
+ "undo": {
561
+ "title": "EditableHtmlButtonConfigure",
562
+ "type": "object",
563
+ "properties": {
564
+ "disabled": {
565
+ "description": "Indicates if the plugin is disabled or not",
566
+ "type": "boolean",
567
+ "title": "disabled"
568
+ }
569
+ }
570
+ }
571
+ }
572
+ },
573
+ "EditableHtmlButtonConfigure": {
574
+ "title": "EditableHtmlButtonConfigure",
575
+ "type": "object",
576
+ "properties": {
577
+ "disabled": {
578
+ "description": "Indicates if the plugin is disabled or not",
579
+ "type": "boolean",
580
+ "title": "disabled"
581
+ }
582
+ }
583
+ },
584
+ "CustomPlugin": {
585
+ "title": "CustomPlugin",
586
+ "type": "object",
587
+ "properties": {
588
+ "event": {
589
+ "description": "The name of the custom event. It needs to be valid (only letters, numbers and \"_\" can be used).\nPIE will emit the event prefixed with \"PIE-\".\nEg: event = 'client_custom_event_A' => the emitted event will be \"PIE-client_custom_event_A\"",
590
+ "type": "string",
591
+ "title": "event"
592
+ },
593
+ "iconAlt": {
594
+ "description": "The alt for the custom button icon",
595
+ "type": "string",
596
+ "title": "iconAlt"
597
+ },
598
+ "iconType": {
599
+ "description": "The icon type.\nCurrently, only \"SVG\" is supported.",
600
+ "type": "string",
601
+ "title": "iconType"
602
+ },
603
+ "icon": {
604
+ "description": "The icon string. Currently, only \"SVG\" is supported, so it needs to be a valid svg.",
605
+ "type": "string",
606
+ "title": "icon"
607
+ }
608
+ },
609
+ "required": [
610
+ "event",
611
+ "icon",
612
+ "iconAlt",
613
+ "iconType"
614
+ ]
615
+ },
616
+ "EditableHtmlPluginConfigure": {
617
+ "title": "EditableHtmlPluginConfigure",
618
+ "type": "object",
619
+ "properties": {
620
+ "inputConfiguration": {
621
+ "title": "EditableHtmlConfigureProp",
622
+ "type": "object",
623
+ "properties": {
624
+ "math": {
625
+ "title": "EditableHtmlButtonConfigure",
626
+ "type": "object",
627
+ "properties": {
628
+ "disabled": {
629
+ "description": "Indicates if the plugin is disabled or not",
630
+ "type": "boolean",
631
+ "title": "disabled"
632
+ }
633
+ }
634
+ },
635
+ "audio": {
636
+ "title": "EditableHtmlButtonConfigure",
637
+ "type": "object",
638
+ "properties": {
639
+ "disabled": {
640
+ "description": "Indicates if the plugin is disabled or not",
641
+ "type": "boolean",
642
+ "title": "disabled"
643
+ }
644
+ }
645
+ },
646
+ "video": {
647
+ "title": "EditableHtmlButtonConfigure",
648
+ "type": "object",
649
+ "properties": {
650
+ "disabled": {
651
+ "description": "Indicates if the plugin is disabled or not",
652
+ "type": "boolean",
653
+ "title": "disabled"
654
+ }
655
+ }
656
+ },
657
+ "image": {
658
+ "title": "EditableHtmlButtonConfigure",
659
+ "type": "object",
660
+ "properties": {
661
+ "disabled": {
662
+ "description": "Indicates if the plugin is disabled or not",
663
+ "type": "boolean",
664
+ "title": "disabled"
665
+ }
666
+ }
667
+ },
668
+ "customPlugins": {
669
+ "description": "An array of objects that determine custom plugins.\nA custom plugin is an object which determines how the button will look like (icon) and the event name that will be triggered when button gets pressed (event).\nExample can be found at https://github.com/pie-framework/pie-lib/blob/develop/packages/demo/pages/editable-html.js#L425.",
670
+ "type": "array",
671
+ "items": {
672
+ "title": "CustomPlugin",
673
+ "type": "object",
674
+ "properties": {
675
+ "event": {
676
+ "description": "The name of the custom event. It needs to be valid (only letters, numbers and \"_\" can be used).\nPIE will emit the event prefixed with \"PIE-\".\nEg: event = 'client_custom_event_A' => the emitted event will be \"PIE-client_custom_event_A\"",
677
+ "type": "string",
678
+ "title": "event"
679
+ },
680
+ "iconAlt": {
681
+ "description": "The alt for the custom button icon",
682
+ "type": "string",
683
+ "title": "iconAlt"
684
+ },
685
+ "iconType": {
686
+ "description": "The icon type.\nCurrently, only \"SVG\" is supported.",
687
+ "type": "string",
688
+ "title": "iconType"
689
+ },
690
+ "icon": {
691
+ "description": "The icon string. Currently, only \"SVG\" is supported, so it needs to be a valid svg.",
692
+ "type": "string",
693
+ "title": "icon"
694
+ }
695
+ },
696
+ "required": [
697
+ "event",
698
+ "icon",
699
+ "iconAlt",
700
+ "iconType"
701
+ ]
702
+ },
703
+ "title": "customPlugins"
704
+ },
705
+ "blockquote": {
706
+ "title": "EditableHtmlButtonConfigure",
707
+ "type": "object",
708
+ "properties": {
709
+ "disabled": {
710
+ "description": "Indicates if the plugin is disabled or not",
711
+ "type": "boolean",
712
+ "title": "disabled"
713
+ }
714
+ }
715
+ },
716
+ "h3": {
717
+ "title": "EditableHtmlButtonConfigure",
718
+ "type": "object",
719
+ "properties": {
720
+ "disabled": {
721
+ "description": "Indicates if the plugin is disabled or not",
722
+ "type": "boolean",
723
+ "title": "disabled"
724
+ }
725
+ }
726
+ },
727
+ "characters": {
728
+ "title": "EditableHtmlButtonConfigure",
729
+ "type": "object",
730
+ "properties": {
731
+ "disabled": {
732
+ "description": "Indicates if the plugin is disabled or not",
733
+ "type": "boolean",
734
+ "title": "disabled"
735
+ }
736
+ }
737
+ },
738
+ "bold": {
739
+ "title": "EditableHtmlButtonConfigure",
740
+ "type": "object",
741
+ "properties": {
742
+ "disabled": {
743
+ "description": "Indicates if the plugin is disabled or not",
744
+ "type": "boolean",
745
+ "title": "disabled"
746
+ }
747
+ }
748
+ },
749
+ "html": {
750
+ "title": "EditableHtmlButtonConfigure",
751
+ "type": "object",
752
+ "properties": {
753
+ "disabled": {
754
+ "description": "Indicates if the plugin is disabled or not",
755
+ "type": "boolean",
756
+ "title": "disabled"
757
+ }
758
+ }
759
+ },
760
+ "italic": {
761
+ "title": "EditableHtmlButtonConfigure",
762
+ "type": "object",
763
+ "properties": {
764
+ "disabled": {
765
+ "description": "Indicates if the plugin is disabled or not",
766
+ "type": "boolean",
767
+ "title": "disabled"
768
+ }
769
+ }
770
+ },
771
+ "ol_list": {
772
+ "title": "EditableHtmlButtonConfigure",
773
+ "type": "object",
774
+ "properties": {
775
+ "disabled": {
776
+ "description": "Indicates if the plugin is disabled or not",
777
+ "type": "boolean",
778
+ "title": "disabled"
779
+ }
780
+ }
781
+ },
782
+ "redo": {
783
+ "title": "EditableHtmlButtonConfigure",
784
+ "type": "object",
785
+ "properties": {
786
+ "disabled": {
787
+ "description": "Indicates if the plugin is disabled or not",
788
+ "type": "boolean",
789
+ "title": "disabled"
790
+ }
791
+ }
792
+ },
793
+ "strikethrough": {
794
+ "title": "EditableHtmlButtonConfigure",
795
+ "type": "object",
796
+ "properties": {
797
+ "disabled": {
798
+ "description": "Indicates if the plugin is disabled or not",
799
+ "type": "boolean",
800
+ "title": "disabled"
801
+ }
802
+ }
803
+ },
804
+ "sub": {
805
+ "title": "EditableHtmlButtonConfigure",
806
+ "type": "object",
807
+ "properties": {
808
+ "disabled": {
809
+ "description": "Indicates if the plugin is disabled or not",
810
+ "type": "boolean",
811
+ "title": "disabled"
812
+ }
813
+ }
814
+ },
815
+ "sup": {
816
+ "title": "EditableHtmlButtonConfigure",
817
+ "type": "object",
818
+ "properties": {
819
+ "disabled": {
820
+ "description": "Indicates if the plugin is disabled or not",
821
+ "type": "boolean",
822
+ "title": "disabled"
823
+ }
824
+ }
825
+ },
826
+ "table": {
827
+ "title": "EditableHtmlButtonConfigure",
828
+ "type": "object",
829
+ "properties": {
830
+ "disabled": {
831
+ "description": "Indicates if the plugin is disabled or not",
832
+ "type": "boolean",
833
+ "title": "disabled"
834
+ }
835
+ }
836
+ },
837
+ "ul_list": {
838
+ "title": "EditableHtmlButtonConfigure",
839
+ "type": "object",
840
+ "properties": {
841
+ "disabled": {
842
+ "description": "Indicates if the plugin is disabled or not",
843
+ "type": "boolean",
844
+ "title": "disabled"
845
+ }
846
+ }
847
+ },
848
+ "underline": {
849
+ "title": "EditableHtmlButtonConfigure",
850
+ "type": "object",
851
+ "properties": {
852
+ "disabled": {
853
+ "description": "Indicates if the plugin is disabled or not",
854
+ "type": "boolean",
855
+ "title": "disabled"
856
+ }
857
+ }
858
+ },
859
+ "undo": {
860
+ "title": "EditableHtmlButtonConfigure",
861
+ "type": "object",
862
+ "properties": {
863
+ "disabled": {
864
+ "description": "Indicates if the plugin is disabled or not",
865
+ "type": "boolean",
866
+ "title": "disabled"
867
+ }
868
+ }
869
+ }
870
+ }
871
+ },
872
+ "settings": {
873
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
874
+ "type": "boolean",
875
+ "title": "settings"
876
+ },
877
+ "label": {
878
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
879
+ "type": "string",
880
+ "title": "label"
881
+ }
882
+ }
883
+ },
884
+ "EditableHtmlPluginConfigureRequired": {
885
+ "title": "EditableHtmlPluginConfigureRequired",
886
+ "type": "object",
887
+ "properties": {
888
+ "inputConfiguration": {
889
+ "title": "EditableHtmlConfigureProp",
890
+ "type": "object",
891
+ "properties": {
892
+ "math": {
893
+ "title": "EditableHtmlButtonConfigure",
894
+ "type": "object",
895
+ "properties": {
896
+ "disabled": {
897
+ "description": "Indicates if the plugin is disabled or not",
898
+ "type": "boolean",
899
+ "title": "disabled"
900
+ }
901
+ }
902
+ },
903
+ "audio": {
904
+ "title": "EditableHtmlButtonConfigure",
905
+ "type": "object",
906
+ "properties": {
907
+ "disabled": {
908
+ "description": "Indicates if the plugin is disabled or not",
909
+ "type": "boolean",
910
+ "title": "disabled"
911
+ }
912
+ }
913
+ },
914
+ "video": {
915
+ "title": "EditableHtmlButtonConfigure",
916
+ "type": "object",
917
+ "properties": {
918
+ "disabled": {
919
+ "description": "Indicates if the plugin is disabled or not",
920
+ "type": "boolean",
921
+ "title": "disabled"
922
+ }
923
+ }
924
+ },
925
+ "image": {
926
+ "title": "EditableHtmlButtonConfigure",
927
+ "type": "object",
928
+ "properties": {
929
+ "disabled": {
930
+ "description": "Indicates if the plugin is disabled or not",
931
+ "type": "boolean",
932
+ "title": "disabled"
933
+ }
934
+ }
935
+ },
936
+ "customPlugins": {
937
+ "description": "An array of objects that determine custom plugins.\nA custom plugin is an object which determines how the button will look like (icon) and the event name that will be triggered when button gets pressed (event).\nExample can be found at https://github.com/pie-framework/pie-lib/blob/develop/packages/demo/pages/editable-html.js#L425.",
938
+ "type": "array",
939
+ "items": {
940
+ "title": "CustomPlugin",
941
+ "type": "object",
942
+ "properties": {
943
+ "event": {
944
+ "description": "The name of the custom event. It needs to be valid (only letters, numbers and \"_\" can be used).\nPIE will emit the event prefixed with \"PIE-\".\nEg: event = 'client_custom_event_A' => the emitted event will be \"PIE-client_custom_event_A\"",
945
+ "type": "string",
946
+ "title": "event"
947
+ },
948
+ "iconAlt": {
949
+ "description": "The alt for the custom button icon",
950
+ "type": "string",
951
+ "title": "iconAlt"
952
+ },
953
+ "iconType": {
954
+ "description": "The icon type.\nCurrently, only \"SVG\" is supported.",
955
+ "type": "string",
956
+ "title": "iconType"
957
+ },
958
+ "icon": {
959
+ "description": "The icon string. Currently, only \"SVG\" is supported, so it needs to be a valid svg.",
960
+ "type": "string",
961
+ "title": "icon"
962
+ }
963
+ },
964
+ "required": [
965
+ "event",
966
+ "icon",
967
+ "iconAlt",
968
+ "iconType"
969
+ ]
970
+ },
971
+ "title": "customPlugins"
972
+ },
973
+ "blockquote": {
974
+ "title": "EditableHtmlButtonConfigure",
975
+ "type": "object",
976
+ "properties": {
977
+ "disabled": {
978
+ "description": "Indicates if the plugin is disabled or not",
979
+ "type": "boolean",
980
+ "title": "disabled"
981
+ }
982
+ }
983
+ },
984
+ "h3": {
985
+ "title": "EditableHtmlButtonConfigure",
986
+ "type": "object",
987
+ "properties": {
988
+ "disabled": {
989
+ "description": "Indicates if the plugin is disabled or not",
990
+ "type": "boolean",
991
+ "title": "disabled"
992
+ }
993
+ }
994
+ },
995
+ "characters": {
996
+ "title": "EditableHtmlButtonConfigure",
997
+ "type": "object",
998
+ "properties": {
999
+ "disabled": {
1000
+ "description": "Indicates if the plugin is disabled or not",
1001
+ "type": "boolean",
1002
+ "title": "disabled"
1003
+ }
1004
+ }
1005
+ },
1006
+ "bold": {
1007
+ "title": "EditableHtmlButtonConfigure",
1008
+ "type": "object",
1009
+ "properties": {
1010
+ "disabled": {
1011
+ "description": "Indicates if the plugin is disabled or not",
1012
+ "type": "boolean",
1013
+ "title": "disabled"
1014
+ }
1015
+ }
1016
+ },
1017
+ "html": {
1018
+ "title": "EditableHtmlButtonConfigure",
1019
+ "type": "object",
1020
+ "properties": {
1021
+ "disabled": {
1022
+ "description": "Indicates if the plugin is disabled or not",
1023
+ "type": "boolean",
1024
+ "title": "disabled"
1025
+ }
1026
+ }
1027
+ },
1028
+ "italic": {
1029
+ "title": "EditableHtmlButtonConfigure",
1030
+ "type": "object",
1031
+ "properties": {
1032
+ "disabled": {
1033
+ "description": "Indicates if the plugin is disabled or not",
1034
+ "type": "boolean",
1035
+ "title": "disabled"
1036
+ }
1037
+ }
1038
+ },
1039
+ "ol_list": {
1040
+ "title": "EditableHtmlButtonConfigure",
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "disabled": {
1044
+ "description": "Indicates if the plugin is disabled or not",
1045
+ "type": "boolean",
1046
+ "title": "disabled"
1047
+ }
1048
+ }
1049
+ },
1050
+ "redo": {
1051
+ "title": "EditableHtmlButtonConfigure",
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "disabled": {
1055
+ "description": "Indicates if the plugin is disabled or not",
1056
+ "type": "boolean",
1057
+ "title": "disabled"
1058
+ }
1059
+ }
1060
+ },
1061
+ "strikethrough": {
1062
+ "title": "EditableHtmlButtonConfigure",
1063
+ "type": "object",
1064
+ "properties": {
1065
+ "disabled": {
1066
+ "description": "Indicates if the plugin is disabled or not",
1067
+ "type": "boolean",
1068
+ "title": "disabled"
1069
+ }
1070
+ }
1071
+ },
1072
+ "sub": {
1073
+ "title": "EditableHtmlButtonConfigure",
1074
+ "type": "object",
1075
+ "properties": {
1076
+ "disabled": {
1077
+ "description": "Indicates if the plugin is disabled or not",
1078
+ "type": "boolean",
1079
+ "title": "disabled"
1080
+ }
1081
+ }
1082
+ },
1083
+ "sup": {
1084
+ "title": "EditableHtmlButtonConfigure",
1085
+ "type": "object",
1086
+ "properties": {
1087
+ "disabled": {
1088
+ "description": "Indicates if the plugin is disabled or not",
1089
+ "type": "boolean",
1090
+ "title": "disabled"
1091
+ }
1092
+ }
1093
+ },
1094
+ "table": {
1095
+ "title": "EditableHtmlButtonConfigure",
1096
+ "type": "object",
1097
+ "properties": {
1098
+ "disabled": {
1099
+ "description": "Indicates if the plugin is disabled or not",
1100
+ "type": "boolean",
1101
+ "title": "disabled"
1102
+ }
1103
+ }
1104
+ },
1105
+ "ul_list": {
1106
+ "title": "EditableHtmlButtonConfigure",
1107
+ "type": "object",
1108
+ "properties": {
1109
+ "disabled": {
1110
+ "description": "Indicates if the plugin is disabled or not",
1111
+ "type": "boolean",
1112
+ "title": "disabled"
1113
+ }
1114
+ }
1115
+ },
1116
+ "underline": {
1117
+ "title": "EditableHtmlButtonConfigure",
1118
+ "type": "object",
1119
+ "properties": {
1120
+ "disabled": {
1121
+ "description": "Indicates if the plugin is disabled or not",
1122
+ "type": "boolean",
1123
+ "title": "disabled"
1124
+ }
1125
+ }
1126
+ },
1127
+ "undo": {
1128
+ "title": "EditableHtmlButtonConfigure",
1129
+ "type": "object",
1130
+ "properties": {
1131
+ "disabled": {
1132
+ "description": "Indicates if the plugin is disabled or not",
1133
+ "type": "boolean",
1134
+ "title": "disabled"
1135
+ }
1136
+ }
1137
+ }
1138
+ }
1139
+ },
1140
+ "required": {
1141
+ "description": "Indicates if the item is required and the value cannot be empty",
1142
+ "type": "boolean",
1143
+ "title": "required"
1144
+ },
1145
+ "settings": {
1146
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
1147
+ "type": "boolean",
1148
+ "title": "settings"
1149
+ },
1150
+ "label": {
1151
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
1152
+ "type": "string",
1153
+ "title": "label"
1154
+ }
1155
+ }
1156
+ },
1157
+ "ConfigurePropWithEnabled": {
1158
+ "title": "ConfigurePropWithEnabled",
1159
+ "type": "object",
1160
+ "properties": {
1161
+ "enabled": {
1162
+ "description": "Indicates the value of the item if it affects config-ui\n(eg.: if item is a switch and displaying an input on the config-ui depends on the switch value: on/off)",
1163
+ "type": "boolean",
1164
+ "title": "enabled"
1165
+ },
1166
+ "settings": {
1167
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
1168
+ "type": "boolean",
1169
+ "title": "settings"
1170
+ },
1171
+ "label": {
1172
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
1173
+ "type": "string",
1174
+ "title": "label"
1175
+ }
1176
+ }
1177
+ },
1178
+ "ConfigureMaxImageDimensionsProp": {
1179
+ "title": "ConfigureMaxImageDimensionsProp",
1180
+ "type": "object",
1181
+ "properties": {
1182
+ "teacherInstructions": {
1183
+ "description": "Indicates the max dimension for images in teacher instructions",
1184
+ "type": "number",
1185
+ "title": "teacherInstructions"
1186
+ },
1187
+ "prompt": {
1188
+ "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",
1189
+ "type": "number",
1190
+ "title": "prompt"
1191
+ },
1192
+ "rationale": {
1193
+ "description": "Indicates the max dimension for images in rationale",
1194
+ "type": "number",
1195
+ "title": "rationale"
1196
+ },
1197
+ "choices": {
1198
+ "description": "Indicates the max dimension for images in choices",
1199
+ "type": "number",
1200
+ "title": "choices"
1201
+ }
1202
+ }
1203
+ },
1204
+ "ConfigureMathMLProp": {
1205
+ "title": "ConfigureMathMLProp",
1206
+ "type": "object",
1207
+ "properties": {
1208
+ "mmlOutput": {
1209
+ "description": "Indicates if model should have mathML output instead of latex",
1210
+ "type": "number",
1211
+ "title": "mmlOutput"
1212
+ },
1213
+ "mmlEditing": {
1214
+ "description": "Indicates if mathML that's already in model should be editable",
1215
+ "type": "number",
1216
+ "title": "mmlEditing"
1217
+ }
1218
+ }
1219
+ },
1220
+ "ConfigureLanguageOptionsProp": {
1221
+ "title": "ConfigureLanguageOptionsProp",
1222
+ "type": "object",
1223
+ "properties": {
1224
+ "value": {
1225
+ "description": "Value of the language option",
1226
+ "type": "string",
1227
+ "title": "value"
1228
+ },
1229
+ "label": {
1230
+ "description": "Label of the language option",
1231
+ "type": "string",
1232
+ "title": "label"
1233
+ }
1234
+ },
1235
+ "required": [
1236
+ "label",
1237
+ "value"
1238
+ ]
1239
+ },
1240
+ "Choice": {
1241
+ "title": "Choice",
1242
+ "type": "object",
1243
+ "properties": {
1244
+ "correct": {
1245
+ "description": "Indicates if the choice is correct",
1246
+ "type": "boolean",
1247
+ "title": "correct"
1248
+ },
1249
+ "value": {
1250
+ "description": "the value that will be stored if this choice is selected",
1251
+ "type": "string",
1252
+ "title": "value"
1253
+ },
1254
+ "label": {
1255
+ "description": "the text label that will be presented to the user for this choice",
1256
+ "type": "string",
1257
+ "title": "label"
1258
+ },
1259
+ "feedback": {
1260
+ "description": "The type of feedback to use:\n `default` = a standard feedback message\n `custom` = a customized feedback message",
1261
+ "title": "Feedback",
1262
+ "type": "object",
1263
+ "properties": {
1264
+ "type": {
1265
+ "default": "default",
1266
+ "enum": [
1267
+ "custom",
1268
+ "default",
1269
+ "none"
1270
+ ],
1271
+ "type": "string",
1272
+ "title": "type"
1273
+ },
1274
+ "value": {
1275
+ "description": "Value for feedback",
1276
+ "type": "string",
1277
+ "title": "value"
1278
+ },
1279
+ "custom": {
1280
+ "description": "Custom value for feedback",
1281
+ "type": "string",
1282
+ "title": "custom"
1283
+ }
1284
+ },
1285
+ "required": [
1286
+ "type"
1287
+ ]
1288
+ },
1289
+ "rationale": {
1290
+ "description": "Rationale for the Choice",
1291
+ "type": "string",
1292
+ "title": "rationale"
1293
+ }
1294
+ },
1295
+ "required": [
1296
+ "label",
1297
+ "value"
1298
+ ]
1299
+ },
1300
+ "Feedback": {
1301
+ "description": "The type of feedback to use:\n `default` = a standard feedback message\n `custom` = a customized feedback message",
1302
+ "title": "Feedback",
1303
+ "type": "object",
1304
+ "properties": {
1305
+ "type": {
1306
+ "default": "default",
1307
+ "enum": [
1308
+ "custom",
1309
+ "default",
1310
+ "none"
1311
+ ],
1312
+ "type": "string",
1313
+ "title": "type"
1314
+ },
1315
+ "value": {
1316
+ "description": "Value for feedback",
1317
+ "type": "string",
1318
+ "title": "value"
1319
+ },
1320
+ "custom": {
1321
+ "description": "Custom value for feedback",
1322
+ "type": "string",
1323
+ "title": "custom"
1324
+ }
1325
+ },
1326
+ "required": [
1327
+ "type"
1328
+ ]
1329
+ }
1330
+ },
1331
+ "$schema": "http://json-schema.org/draft-07/schema#"
1332
+ }