@pie-element/ebsr 7.0.22 → 7.0.24-next.2

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 (144) hide show
  1. package/CHANGELOG.md +0 -16
  2. package/configure/CHANGELOG.md +0 -16
  3. package/configure/lib/main.js +6 -4
  4. package/configure/lib/main.js.map +1 -1
  5. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.json +1972 -0
  6. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.md +1793 -0
  7. package/{LICENSE.md → configure/node_modules/@pie-element/multiple-choice/LICENSE.md} +0 -0
  8. package/configure/node_modules/@pie-element/multiple-choice/PRINT.md +35 -0
  9. package/configure/node_modules/@pie-element/multiple-choice/README.md +56 -0
  10. package/configure/node_modules/@pie-element/multiple-choice/choice.png +0 -0
  11. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.json +1387 -0
  12. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.md +1334 -0
  13. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js +104 -0
  14. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js.map +1 -0
  15. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js +198 -0
  16. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js.map +1 -0
  17. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js +599 -0
  18. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js.map +1 -0
  19. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js +18 -0
  20. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js.map +1 -0
  21. package/configure/node_modules/@pie-element/multiple-choice/configure/package.json +20 -0
  22. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.json +527 -0
  23. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.md +768 -0
  24. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js +18 -0
  25. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js.map +1 -0
  26. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js +305 -0
  27. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js.map +1 -0
  28. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js +36 -0
  29. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multiple-choice/controller/package.json +15 -0
  31. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json +353 -0
  32. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json.md +277 -0
  33. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/config.js +8 -0
  34. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/generate.js +52 -0
  35. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/index.html +1 -0
  36. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/session.js +7 -0
  37. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json +338 -0
  38. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json.md +274 -0
  39. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js +298 -0
  40. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js.map +1 -0
  41. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js +157 -0
  42. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js.map +1 -0
  43. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js +174 -0
  44. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js.map +1 -0
  45. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js +151 -0
  46. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js.map +1 -0
  47. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js +97 -0
  48. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js.map +1 -0
  49. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js +254 -0
  50. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js.map +1 -0
  51. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js +129 -0
  52. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js.map +1 -0
  53. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js +35 -0
  54. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js.map +1 -0
  55. package/configure/node_modules/@pie-element/multiple-choice/module/configure.js +843 -0
  56. package/{module → configure/node_modules/@pie-element/multiple-choice/module}/controller.js +17304 -17374
  57. package/configure/node_modules/@pie-element/multiple-choice/module/demo.js +77 -0
  58. package/{module → configure/node_modules/@pie-element/multiple-choice/module}/element.js +42 -171
  59. package/{module → configure/node_modules/@pie-element/multiple-choice/module}/index.html +1 -1
  60. package/{module → configure/node_modules/@pie-element/multiple-choice/module}/manifest.json +4 -4
  61. package/{module → configure/node_modules/@pie-element/multiple-choice/module}/print-demo.js +46 -46
  62. package/{module → configure/node_modules/@pie-element/multiple-choice/module}/print.html +1 -1
  63. package/{module → configure/node_modules/@pie-element/multiple-choice/module}/print.js +70 -259
  64. package/configure/node_modules/@pie-element/multiple-choice/package.json +34 -0
  65. package/configure/node_modules/@pie-lib/math-rendering/CHANGELOG.json +672 -0
  66. package/configure/node_modules/@pie-lib/math-rendering/CHANGELOG.md +427 -0
  67. package/configure/node_modules/@pie-lib/math-rendering/LICENSE.md +5 -0
  68. package/configure/node_modules/@pie-lib/math-rendering/lib/index.js +30 -0
  69. package/configure/node_modules/@pie-lib/math-rendering/lib/index.js.map +1 -0
  70. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/chtml.js +316 -0
  71. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/chtml.js.map +1 -0
  72. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/index.js +23 -0
  73. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/index.js.map +1 -0
  74. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/mml.js +123 -0
  75. package/configure/node_modules/@pie-lib/math-rendering/lib/mstack/mml.js.map +1 -0
  76. package/configure/node_modules/@pie-lib/math-rendering/lib/normalization.js +103 -0
  77. package/configure/node_modules/@pie-lib/math-rendering/lib/normalization.js.map +1 -0
  78. package/configure/node_modules/@pie-lib/math-rendering/lib/render-math.js +275 -0
  79. package/configure/node_modules/@pie-lib/math-rendering/lib/render-math.js.map +1 -0
  80. package/configure/node_modules/@pie-lib/math-rendering/package.json +19 -0
  81. package/configure/node_modules/@pie-lib/math-rendering/playground/demo.html +872 -0
  82. package/configure/node_modules/@pie-lib/math-rendering/playground/demo.js +108 -0
  83. package/configure/node_modules/@pie-lib/math-rendering/playground/main.html +156 -0
  84. package/configure/node_modules/@pie-lib/math-rendering/playground/main.js +16 -0
  85. package/configure/node_modules/@pie-lib/math-rendering/playground/webpack.config.js +29 -0
  86. package/configure/node_modules/@pie-lib/math-rendering/src/index.js +4 -0
  87. package/configure/node_modules/@pie-lib/math-rendering/src/mstack/chtml.js +215 -0
  88. package/configure/node_modules/@pie-lib/math-rendering/src/mstack/index.js +13 -0
  89. package/configure/node_modules/@pie-lib/math-rendering/src/mstack/mml.js +24 -0
  90. package/configure/node_modules/@pie-lib/math-rendering/src/normalization.js +69 -0
  91. package/configure/node_modules/@pie-lib/math-rendering/src/render-math.js +234 -0
  92. package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.json +937 -0
  93. package/configure/node_modules/@pie-lib/render-ui/CHANGELOG.md +602 -0
  94. package/configure/node_modules/@pie-lib/render-ui/LICENSE.md +5 -0
  95. package/configure/node_modules/@pie-lib/render-ui/README.md +33 -0
  96. package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js +146 -0
  97. package/configure/node_modules/@pie-lib/render-ui/lib/collapsible/index.js.map +1 -0
  98. package/configure/node_modules/@pie-lib/render-ui/lib/color.js +134 -0
  99. package/configure/node_modules/@pie-lib/render-ui/lib/color.js.map +1 -0
  100. package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js +160 -0
  101. package/configure/node_modules/@pie-lib/render-ui/lib/feedback.js.map +1 -0
  102. package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js +24 -0
  103. package/configure/node_modules/@pie-lib/render-ui/lib/has-text.js.map +1 -0
  104. package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js +102 -0
  105. package/configure/node_modules/@pie-lib/render-ui/lib/html-and-math.js.map +1 -0
  106. package/configure/node_modules/@pie-lib/render-ui/lib/index.js +104 -0
  107. package/configure/node_modules/@pie-lib/render-ui/lib/index.js.map +1 -0
  108. package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js +60 -0
  109. package/configure/node_modules/@pie-lib/render-ui/lib/input-container.js.map +1 -0
  110. package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js +133 -0
  111. package/configure/node_modules/@pie-lib/render-ui/lib/preview-layout.js.map +1 -0
  112. package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js +162 -0
  113. package/configure/node_modules/@pie-lib/render-ui/lib/preview-prompt.js.map +1 -0
  114. package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js +28 -0
  115. package/configure/node_modules/@pie-lib/render-ui/lib/purpose.js.map +1 -0
  116. package/configure/node_modules/@pie-lib/render-ui/lib/readable.js +28 -0
  117. package/configure/node_modules/@pie-lib/render-ui/lib/readable.js.map +1 -0
  118. package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js +160 -0
  119. package/configure/node_modules/@pie-lib/render-ui/lib/response-indicators.js.map +1 -0
  120. package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js +206 -0
  121. package/configure/node_modules/@pie-lib/render-ui/lib/withUndoReset.js.map +1 -0
  122. package/configure/node_modules/@pie-lib/render-ui/package.json +30 -0
  123. package/configure/node_modules/@pie-lib/render-ui/src/collapsible/index.jsx +68 -0
  124. package/configure/node_modules/@pie-lib/render-ui/src/color.js +48 -0
  125. package/configure/node_modules/@pie-lib/render-ui/src/feedback.jsx +100 -0
  126. package/configure/node_modules/@pie-lib/render-ui/src/has-text.js +14 -0
  127. package/configure/node_modules/@pie-lib/render-ui/src/html-and-math.js +40 -0
  128. package/configure/node_modules/@pie-lib/render-ui/src/index.js +27 -0
  129. package/configure/node_modules/@pie-lib/render-ui/src/input-container.jsx +41 -0
  130. package/configure/node_modules/@pie-lib/render-ui/src/preview-layout.jsx +77 -0
  131. package/configure/node_modules/@pie-lib/render-ui/src/preview-prompt.jsx +90 -0
  132. package/configure/node_modules/@pie-lib/render-ui/src/purpose.jsx +19 -0
  133. package/configure/node_modules/@pie-lib/render-ui/src/readable.jsx +19 -0
  134. package/configure/node_modules/@pie-lib/render-ui/src/response-indicators.jsx +89 -0
  135. package/configure/node_modules/@pie-lib/render-ui/src/withUndoReset.jsx +118 -0
  136. package/configure/package.json +3 -3
  137. package/configure/src/__tests__/index.test.js +4 -2
  138. package/configure/src/main.jsx +8 -3
  139. package/controller/lib/index.js +79 -3
  140. package/controller/lib/index.js.map +1 -1
  141. package/controller/src/index.js +55 -0
  142. package/package.json +3 -3
  143. package/module/configure.js +0 -472
  144. package/module/demo.js +0 -77
@@ -1,472 +0,0 @@
1
- import {_dll_react, _dll_prop_types, _dll_material_ui__core_styles, _dll_lodash, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.4.13/module/index.js";
2
- import MultipleChoiceConfigure from '@pie-element/multiple-choice/configure/lib';
3
- import {_dll_pie_lib__config_ui} from "../../../@pie-lib/config-module@^1.2.0/module/index.js";
4
- var lib = {};
5
- Object.defineProperty(lib, "__esModule", {
6
- value: true
7
- });
8
- class ModelUpdatedEvent extends CustomEvent {
9
- constructor(update, reset = false) {
10
- super(ModelUpdatedEvent.TYPE, {
11
- bubbles: true,
12
- detail: {
13
- update,
14
- reset
15
- }
16
- });
17
- this.update = update;
18
- this.reset = reset;
19
- }
20
- }
21
- ModelUpdatedEvent.TYPE = 'model.updated';
22
- var ModelUpdatedEvent_1 = lib.ModelUpdatedEvent = ModelUpdatedEvent;
23
- class DeleteImageEvent extends CustomEvent {
24
- constructor(src, done) {
25
- super(DeleteImageEvent.TYPE, {
26
- bubbles: true,
27
- detail: {
28
- src,
29
- done
30
- }
31
- });
32
- this.src = src;
33
- this.done = done;
34
- }
35
- }
36
- DeleteImageEvent.TYPE = 'delete.image';
37
- lib.DeleteImageEvent = DeleteImageEvent;
38
- class InsertImageEvent extends CustomEvent {
39
- constructor(handler) {
40
- super(InsertImageEvent.TYPE, {
41
- bubbles: true,
42
- detail: handler
43
- });
44
- this.handler = handler;
45
- }
46
- }
47
- InsertImageEvent.TYPE = 'insert.image';
48
- lib.InsertImageEvent = InsertImageEvent;
49
- const React$1 = _dll_react;
50
- const PropTypes = _dll_prop_types;
51
- const {withStyles: withStyles} = _dll_material_ui__core_styles;
52
- const {cloneDeep: cloneDeep$1} = _dll_lodash;
53
- const {settings: settings} = _dll_pie_lib__config_ui;
54
- const {layout: layout} = _dll_pie_lib__config_ui;
55
- const _jsxFileName = "/home/circleci/repo/packages/ebsr/configure/src/main.jsx";
56
- const {Panel, toggle, radio, dropdown} = settings;
57
- const styles = theme => ({
58
- design: {
59
- paddingTop: theme.spacing.unit * 3
60
- },
61
- part: {
62
- display: 'flex',
63
- flexDirection: 'column',
64
- padding: '16px 0 32px'
65
- }
66
- });
67
- class Main extends React$1.Component {
68
- constructor(...args) {
69
- super(...args);
70
- Main.prototype.__init.call(this);
71
- Main.prototype.__init2.call(this);
72
- }
73
- static __initStatic() {
74
- this.propTypes = {
75
- classes: PropTypes.object,
76
- configuration: PropTypes.object,
77
- model: PropTypes.object,
78
- onModelChanged: PropTypes.func,
79
- onConfigurationChanged: PropTypes.func
80
- };
81
- }
82
- __init() {
83
- this.removeExtraChoices = choices => {
84
- let correctFound = false;
85
- return (choices || []).map(choice => {
86
- if (correctFound) {
87
- choice.correct = false;
88
- return choice;
89
- }
90
- if (choice.correct) {
91
- correctFound = true;
92
- }
93
- return choice;
94
- });
95
- };
96
- }
97
- __init2() {
98
- this.onModelChanged = (model, key) => {
99
- const {onModelChanged} = this.props;
100
- if (key === 'partA.choiceMode' && model.partA.choiceMode === 'radio') {
101
- model.partA.choices = this.removeExtraChoices(model.partA.choices);
102
- return onModelChanged(model, true);
103
- }
104
- if (key === 'partB.choiceMode' && model.partB.choiceMode === 'radio') {
105
- model.partB.choices = this.removeExtraChoices(model.partB.choices);
106
- return onModelChanged(model, true);
107
- }
108
- return onModelChanged(model);
109
- };
110
- }
111
- render() {
112
- const {classes, model, configuration, onConfigurationChanged} = this.props;
113
- const {partLabelType, partA: modelPartA, partB: modelPartB} = model;
114
- const {partA, partB, partialScoring, scoringType, ...generalConfiguration} = configuration;
115
- const {feedback: feedbackA = {}, choiceMode: choiceModeA = {}, choicePrefix: choicePrefixA = {}, lockChoiceOrder: lockChoiceOrderA = {}, prompt: promptA = {}, teacherInstructions: teacherInstructionsA = {}, studentInstructions: studentInstructionsA = {}, choicesLayout: choicesLayoutA = {}, gridColumns: gridColumnsA = {}, rationale: rationaleA = {}, spellCheck: spellCheckA = {}} = partA || ({});
116
- const {feedback: feedbackB = {}, choiceMode: choiceModeB = {}, choicePrefix: choicePrefixB = {}, lockChoiceOrder: lockChoiceOrderB = {}, prompt: promptB = {}, teacherInstructions: teacherInstructionsB = {}, studentInstructions: studentInstructionsB = {}, choicesLayout: choicesLayoutB = {}, gridColumns: gridColumnsB = {}, rationale: rationaleB = {}, spellCheck: spellCheckB = {}} = partB || ({});
117
- const type = partLabelType || 'Numbers';
118
- const typeIsNumber = type === 'Numbers';
119
- const firstPart = `Part ${typeIsNumber ? '1' : 'A'}`;
120
- const secondPart = `Part ${typeIsNumber ? '2' : 'B'}`;
121
- const nrOfColumnsAvailable = {
122
- partA: modelPartA.choices && modelPartA.choices.length ? Array.from({
123
- length: modelPartA.choices.length
124
- }, (_, i) => `${i + 1}`) : [],
125
- partB: modelPartB.choices && modelPartB.choices.length ? Array.from({
126
- length: modelPartB.choices.length
127
- }, (_, i) => `${i + 1}`) : []
128
- };
129
- return React$1.createElement('div', {
130
- className: classes.design,
131
- __self: this,
132
- __source: {
133
- fileName: _jsxFileName,
134
- lineNumber: 111
135
- }
136
- }, React$1.createElement(layout.ConfigLayout, {
137
- settings: React$1.createElement(Panel, {
138
- model: model,
139
- onChangeModel: this.onModelChanged,
140
- configuration: configuration,
141
- onChangeConfiguration: onConfigurationChanged,
142
- groups: {
143
- 'Settings for both': {
144
- partLabels: generalConfiguration.partLabels.settings && toggle(generalConfiguration.partLabels.label),
145
- partLabelType: model.partLabels && dropdown('', ['Numbers', 'Letters']),
146
- partialScoring: partialScoring.settings && toggle(partialScoring.label),
147
- scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
148
- },
149
- [`Settings ${firstPart}`]: {
150
- 'partA.choiceMode': choiceModeA.settings && radio(choiceModeA.label, ['checkbox', 'radio']),
151
- 'partA.choicePrefix': choicePrefixA.settings && radio(choicePrefixA.label, ['numbers', 'letters']),
152
- 'partA.lockChoiceOrder': lockChoiceOrderA.settings && toggle(lockChoiceOrderA.label),
153
- 'partA.choicesLayout': choicesLayoutA.settings && dropdown(choicesLayoutA.label, ['vertical', 'grid', 'horizontal']),
154
- 'partA.gridColumns': choicesLayoutA.settings && modelPartA.choicesLayout === 'grid' && nrOfColumnsAvailable.partA.length > 0 && dropdown(gridColumnsA.label, nrOfColumnsAvailable.partA)
155
- },
156
- [`Properties ${firstPart}`]: {
157
- 'partA.feedbackEnabled': feedbackA.settings && toggle(feedbackA.label),
158
- 'partA.promptEnabled': promptA.settings && toggle(promptA.label),
159
- 'partA.teacherInstructionsEnabled': teacherInstructionsA.settings && toggle(teacherInstructionsA.label),
160
- 'partA.studentInstructionsEnabled': studentInstructionsA.settings && toggle(studentInstructionsA.label),
161
- 'partA.rationaleEnabled': rationaleA.settings && toggle(rationaleA.label),
162
- 'partA.spellCheckEnabled': spellCheckA.settings && toggle(spellCheckA.label)
163
- },
164
- [`Settings ${secondPart}`]: {
165
- 'partB.choiceMode': choiceModeB.settings && radio(choiceModeB.label, ['checkbox', 'radio']),
166
- 'partB.choicePrefix': choicePrefixB.settings && radio(choicePrefixB.label, ['numbers', 'letters']),
167
- 'partB.lockChoiceOrder': lockChoiceOrderB.settings && toggle(lockChoiceOrderB.label),
168
- 'partB.choicesLayout': choicesLayoutB.settings && dropdown(choicesLayoutB.label, ['vertical', 'grid', 'horizontal']),
169
- 'partB.gridColumns': choicesLayoutB.settings && modelPartB.choicesLayout === 'grid' && nrOfColumnsAvailable.partB.length > 0 && dropdown(gridColumnsB.label, nrOfColumnsAvailable.partB)
170
- },
171
- [`Properties ${secondPart}`]: {
172
- 'partB.feedbackEnabled': feedbackB.settings && toggle(feedbackB.label),
173
- 'partB.promptEnabled': promptB.settings && toggle(promptB.label),
174
- 'partB.teacherInstructionsEnabled': teacherInstructionsB.settings && toggle(teacherInstructionsB.label),
175
- 'partB.studentInstructionsEnabled': studentInstructionsB.settings && toggle(studentInstructionsB.label),
176
- 'partB.rationaleEnabled': rationaleB.settings && toggle(rationaleB.label),
177
- 'partB.spellCheckEnabled': spellCheckB.settings && toggle(spellCheckB.label)
178
- }
179
- },
180
- __self: this,
181
- __source: {
182
- fileName: _jsxFileName,
183
- lineNumber: 114
184
- }
185
- }),
186
- __self: this,
187
- __source: {
188
- fileName: _jsxFileName,
189
- lineNumber: 112
190
- }
191
- }, React$1.createElement('div', {
192
- __self: this,
193
- __source: {
194
- fileName: _jsxFileName,
195
- lineNumber: 201
196
- }
197
- }, React$1.createElement('div', {
198
- className: classes.part,
199
- __self: this,
200
- __source: {
201
- fileName: _jsxFileName,
202
- lineNumber: 202
203
- }
204
- }, model.partLabels && React$1.createElement('p', {
205
- __self: this,
206
- __source: {
207
- fileName: _jsxFileName,
208
- lineNumber: 203
209
- }
210
- }, firstPart), React$1.createElement('ebsr-multiple-choice-configure', {
211
- id: "A",
212
- key: "partA",
213
- ref: ref => {
214
- if (ref) {
215
- this.partA = ref;
216
- this.partA._model = cloneDeep$1(this.props.model.partA);
217
- this.partA.configuration = {
218
- ...partA,
219
- ...generalConfiguration
220
- };
221
- }
222
- },
223
- __self: this,
224
- __source: {
225
- fileName: _jsxFileName,
226
- lineNumber: 204
227
- }
228
- })), React$1.createElement('div', {
229
- className: classes.part,
230
- __self: this,
231
- __source: {
232
- fileName: _jsxFileName,
233
- lineNumber: 221
234
- }
235
- }, model.partLabels && React$1.createElement('p', {
236
- __self: this,
237
- __source: {
238
- fileName: _jsxFileName,
239
- lineNumber: 222
240
- }
241
- }, secondPart), React$1.createElement('ebsr-multiple-choice-configure', {
242
- id: "B",
243
- key: "partB",
244
- ref: ref => {
245
- if (ref) {
246
- this.partB = ref;
247
- this.partB._model = cloneDeep$1(this.props.model.partB);
248
- this.partB.configuration = {
249
- ...partB,
250
- ...generalConfiguration
251
- };
252
- }
253
- },
254
- __self: this,
255
- __source: {
256
- fileName: _jsxFileName,
257
- lineNumber: 223
258
- }
259
- })))));
260
- }
261
- }
262
- Main.__initStatic();
263
- const Styled = withStyles(styles)(Main);
264
- const {cloneDeep: cloneDeep} = _dll_lodash;
265
- const defaultConfig = {
266
- addChoiceButton: {
267
- settings: true,
268
- label: 'Add a Choice'
269
- },
270
- choiceMode: {
271
- settings: true,
272
- label: 'Response Type'
273
- },
274
- choicePrefix: {
275
- settings: true,
276
- label: 'Choice Labels'
277
- },
278
- deleteChoice: {
279
- settings: true
280
- },
281
- feedback: {
282
- settings: true,
283
- label: 'Feedback'
284
- },
285
- lockChoiceOrder: {
286
- settings: true,
287
- label: 'Lock Choice Order'
288
- },
289
- prompt: {
290
- settings: true,
291
- label: 'Prompt'
292
- },
293
- rationale: {
294
- settings: true,
295
- label: 'Rationale'
296
- },
297
- studentInstructions: {
298
- settings: false,
299
- label: 'Student Instructions'
300
- },
301
- teacherInstructions: {
302
- settings: true,
303
- label: 'Teacher Instructions'
304
- },
305
- choicesLayout: {
306
- settings: false,
307
- label: 'Choices Layout'
308
- },
309
- gridColumns: {
310
- label: 'Grid columns'
311
- },
312
- spellCheck: {
313
- label: 'Spellcheck',
314
- settings: false,
315
- enabled: true
316
- }
317
- };
318
- const partModel = base => ({
319
- choiceMode: 'radio',
320
- choices: [],
321
- choicePrefix: 'numbers',
322
- prompt: 'Prompt',
323
- rationaleEnabled: true,
324
- feedbackEnabled: true,
325
- promptEnabled: true,
326
- teacherInstructions: '',
327
- rationale: '',
328
- teacherInstructionsEnabled: true,
329
- studentInstructionsEnabled: true,
330
- spellCheckEnabled: true,
331
- choicesLayout: 'vertical',
332
- gridColumns: '2',
333
- ...base
334
- });
335
- var sensibleDefaults = {
336
- model: {
337
- partLabels: true,
338
- partLabelType: 'Letters',
339
- partialScoring: false,
340
- partA: partModel({
341
- prompt: 'Prompt A'
342
- }),
343
- partB: partModel({
344
- prompt: 'Prompt B'
345
- })
346
- },
347
- configuration: {
348
- partialScoring: {
349
- label: 'Allow Partial Scoring',
350
- settings: false
351
- },
352
- scoringType: {
353
- settings: false,
354
- label: 'Scoring Type'
355
- },
356
- partA: cloneDeep(defaultConfig),
357
- partB: cloneDeep(defaultConfig),
358
- partLabels: {
359
- settings: true,
360
- label: 'Part Labels'
361
- },
362
- settingsPanelDisabled: true
363
- }
364
- };
365
- const React = _dll_react;
366
- const ReactDOM = _dll_react_dom;
367
- const {defaults: defaults} = _dll_lodash;
368
- const MODEL_UPDATED = ModelUpdatedEvent_1.TYPE;
369
- const MC_TAG_NAME = 'ebsr-multiple-choice-configure';
370
- class EbsrMCConfigure extends MultipleChoiceConfigure {}
371
- const defineMultipleChoice = () => {
372
- if (!customElements.get(MC_TAG_NAME)) {
373
- customElements.define(MC_TAG_NAME, EbsrMCConfigure);
374
- }
375
- };
376
- defineMultipleChoice();
377
- const prepareCustomizationObject = (config, model) => {
378
- const configuration = defaults(config, sensibleDefaults.configuration);
379
- configuration.settingsPanelDisabled = true;
380
- return {
381
- configuration,
382
- model
383
- };
384
- };
385
- const {model: modelDefault} = sensibleDefaults || ({});
386
- class EbsrConfigure extends HTMLElement {
387
- static __initStatic() {
388
- this.createDefaultModel = ({partA = {}, partB = {}, ...model} = {}, defaults = modelDefault) => ({
389
- ...defaults,
390
- ...model,
391
- partA: {
392
- ...defaults.partA,
393
- ...partA,
394
- choicesLayout: partA.choicesLayout || partA.verticalMode === false && 'horizontal' || defaults.partA.choicesLayout
395
- },
396
- partB: {
397
- ...defaults.partB,
398
- ...partB,
399
- choicesLayout: partB.choicesLayout || partB.verticalMode === false && 'horizontal' || defaults.partB.choicesLayout
400
- }
401
- });
402
- }
403
- constructor() {
404
- super();
405
- EbsrConfigure.prototype.__init.call(this);
406
- EbsrConfigure.prototype.__init2.call(this);
407
- this._model = EbsrConfigure.createDefaultModel();
408
- this._configuration = sensibleDefaults.configuration;
409
- this.onConfigurationChanged = this.onConfigurationChanged.bind(this);
410
- }
411
- set model(m) {
412
- this._model = EbsrConfigure.createDefaultModel(m, this._model);
413
- this._render();
414
- }
415
- dispatchModelUpdated(reset) {
416
- const resetValue = !!reset;
417
- this.dispatchEvent(new ModelUpdatedEvent_1(this._model, resetValue));
418
- }
419
- __init() {
420
- this.onModelChanged = (m, reset) => {
421
- this._model = EbsrConfigure.createDefaultModel(m, this._model);
422
- this.dispatchModelUpdated(reset);
423
- this._render();
424
- };
425
- }
426
- set configuration(c) {
427
- const info = prepareCustomizationObject(c, this._model);
428
- this._configuration = info.configuration;
429
- this._render();
430
- }
431
- onConfigurationChanged(c) {
432
- this._configuration = prepareCustomizationObject(c, this._model).configuration;
433
- if (this._model) {
434
- this.onModelChanged(this._model);
435
- }
436
- this._render();
437
- }
438
- __init2() {
439
- this.onModelUpdated = e => {
440
- if (e.target === this) {
441
- return;
442
- }
443
- e.preventDefault();
444
- e.stopImmediatePropagation();
445
- const id = e.target && e.target.getAttribute('id');
446
- if (id) {
447
- if (e.update) {
448
- this._model[`part${id}`] = e.update;
449
- }
450
- this.dispatchEvent(new ModelUpdatedEvent_1(this._model));
451
- }
452
- };
453
- }
454
- connectedCallback() {
455
- this.addEventListener(MODEL_UPDATED, this.onModelUpdated);
456
- this._render();
457
- }
458
- disconnectedCallback() {
459
- this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);
460
- }
461
- _render() {
462
- let element = React.createElement(Styled, {
463
- model: this._model,
464
- configuration: this._configuration,
465
- onModelChanged: this.onModelChanged,
466
- onConfigurationChanged: this.onConfigurationChanged
467
- });
468
- ReactDOM.render(element, this);
469
- }
470
- }
471
- EbsrConfigure.__initStatic();
472
- export {EbsrConfigure as default};
package/module/demo.js DELETED
@@ -1,77 +0,0 @@
1
- import Configure from './configure.js';
2
- import Element from './element.js';
3
- import * as controller from './controller.js';
4
-
5
- var generate = {};
6
-
7
- generate.model = (id, element) => ({
8
- id,
9
- element,
10
- partA: {
11
- choiceMode: 'radio',
12
- choices: [
13
- {
14
- value: 'yellow',
15
- label: 'Yellow',
16
- },
17
- {
18
- value: 'green',
19
- label: 'Green',
20
- },
21
- {
22
- correct: true,
23
- value: 'blue',
24
- label: 'Blue',
25
- },
26
- ],
27
- choicePrefix: 'numbers',
28
- partialScoring: false,
29
- prompt: 'What color is the sky?',
30
- promptEnabled: true
31
- },
32
- partB: {
33
- choiceMode: 'radio',
34
- choices: [
35
- {
36
- value: 'orange',
37
- label: 'Orange',
38
- },
39
- {
40
- correct: true,
41
- value: 'purple',
42
- label: 'Purple',
43
- },
44
- {
45
- value: 'pink',
46
- label: 'Pink',
47
- },
48
- {
49
- value: 'green',
50
- label: 'Green',
51
- },
52
- ],
53
- choicePrefix: 'numbers',
54
- partialScoring: false,
55
- prompt: 'What color do you get when you mix Red with your answer in Part 1?',
56
- promptEnabled: true
57
- }
58
- });
59
-
60
- const { model } = generate;
61
-
62
- var config = {
63
- elements: {
64
- 'ebsr-element': '../..'
65
- },
66
- models: [model('1', 'ebsr-element')/*, model('2', 'ebsr-element')*/]
67
- };
68
-
69
- //Note: demo-el is a custom element loaded in the markup.
70
- customElements.whenDefined("demo-el").then(() => {
71
- config.models.forEach((m) => {
72
- const de = document.createElement("demo-el");
73
- document.body.appendChild(de);
74
- de.def = { tagName: m.element, Element, Configure, controller };
75
- de.model = m;
76
- });
77
- });