@pie-element/ebsr 7.0.21 → 7.0.24-next.1

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.
@@ -1,282 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.Main = void 0;
9
-
10
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _react = _interopRequireDefault(require("react"));
27
-
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
- var _configUi = require("@pie-lib/config-ui");
31
-
32
- var _styles = require("@material-ui/core/styles");
33
-
34
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
35
-
36
- var _excluded = ["partA", "partB", "partialScoring", "scoringType"];
37
-
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
-
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
-
44
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
-
46
- var Panel = _configUi.settings.Panel,
47
- toggle = _configUi.settings.toggle,
48
- radio = _configUi.settings.radio,
49
- dropdown = _configUi.settings.dropdown;
50
-
51
- var styles = function styles(theme) {
52
- return {
53
- design: {
54
- paddingTop: theme.spacing.unit * 3
55
- },
56
- part: {
57
- display: 'flex',
58
- flexDirection: 'column',
59
- padding: '16px 0 32px'
60
- }
61
- };
62
- };
63
-
64
- var Main = /*#__PURE__*/function (_React$Component) {
65
- (0, _inherits2["default"])(Main, _React$Component);
66
-
67
- var _super = _createSuper(Main);
68
-
69
- function Main() {
70
- var _this;
71
-
72
- (0, _classCallCheck2["default"])(this, Main);
73
-
74
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
75
- args[_key] = arguments[_key];
76
- }
77
-
78
- _this = _super.call.apply(_super, [this].concat(args));
79
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "removeExtraChoices", function (choices) {
80
- var correctFound = false;
81
- return (choices || []).map(function (choice) {
82
- if (correctFound) {
83
- choice.correct = false;
84
- return choice;
85
- }
86
-
87
- if (choice.correct) {
88
- correctFound = true;
89
- }
90
-
91
- return choice;
92
- });
93
- });
94
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (model, key) {
95
- var onModelChanged = _this.props.onModelChanged;
96
-
97
- if (key === 'partA.choiceMode' && model.partA.choiceMode === 'radio') {
98
- model.partA.choices = _this.removeExtraChoices(model.partA.choices);
99
- return onModelChanged(model, true);
100
- }
101
-
102
- if (key === 'partB.choiceMode' && model.partB.choiceMode === 'radio') {
103
- model.partB.choices = _this.removeExtraChoices(model.partB.choices);
104
- return onModelChanged(model, true);
105
- }
106
-
107
- return onModelChanged(model);
108
- });
109
- return _this;
110
- }
111
-
112
- (0, _createClass2["default"])(Main, [{
113
- key: "render",
114
- value: function render() {
115
- var _ref3,
116
- _this2 = this;
117
-
118
- var _this$props = this.props,
119
- classes = _this$props.classes,
120
- model = _this$props.model,
121
- configuration = _this$props.configuration,
122
- onConfigurationChanged = _this$props.onConfigurationChanged;
123
- var partLabelType = model.partLabelType,
124
- modelPartA = model.partA,
125
- modelPartB = model.partB;
126
- var partA = configuration.partA,
127
- partB = configuration.partB,
128
- partialScoring = configuration.partialScoring,
129
- scoringType = configuration.scoringType,
130
- generalConfiguration = (0, _objectWithoutProperties2["default"])(configuration, _excluded);
131
-
132
- var _ref = partA || {},
133
- _ref$feedback = _ref.feedback,
134
- feedbackA = _ref$feedback === void 0 ? {} : _ref$feedback,
135
- _ref$choiceMode = _ref.choiceMode,
136
- choiceModeA = _ref$choiceMode === void 0 ? {} : _ref$choiceMode,
137
- _ref$choicePrefix = _ref.choicePrefix,
138
- choicePrefixA = _ref$choicePrefix === void 0 ? {} : _ref$choicePrefix,
139
- _ref$lockChoiceOrder = _ref.lockChoiceOrder,
140
- lockChoiceOrderA = _ref$lockChoiceOrder === void 0 ? {} : _ref$lockChoiceOrder,
141
- _ref$prompt = _ref.prompt,
142
- promptA = _ref$prompt === void 0 ? {} : _ref$prompt,
143
- _ref$teacherInstructi = _ref.teacherInstructions,
144
- teacherInstructionsA = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
145
- _ref$studentInstructi = _ref.studentInstructions,
146
- studentInstructionsA = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
147
- _ref$choicesLayout = _ref.choicesLayout,
148
- choicesLayoutA = _ref$choicesLayout === void 0 ? {} : _ref$choicesLayout,
149
- _ref$gridColumns = _ref.gridColumns,
150
- gridColumnsA = _ref$gridColumns === void 0 ? {} : _ref$gridColumns,
151
- _ref$rationale = _ref.rationale,
152
- rationaleA = _ref$rationale === void 0 ? {} : _ref$rationale,
153
- _ref$spellCheck = _ref.spellCheck,
154
- spellCheckA = _ref$spellCheck === void 0 ? {} : _ref$spellCheck;
155
-
156
- var _ref2 = partB || {},
157
- _ref2$feedback = _ref2.feedback,
158
- feedbackB = _ref2$feedback === void 0 ? {} : _ref2$feedback,
159
- _ref2$choiceMode = _ref2.choiceMode,
160
- choiceModeB = _ref2$choiceMode === void 0 ? {} : _ref2$choiceMode,
161
- _ref2$choicePrefix = _ref2.choicePrefix,
162
- choicePrefixB = _ref2$choicePrefix === void 0 ? {} : _ref2$choicePrefix,
163
- _ref2$lockChoiceOrder = _ref2.lockChoiceOrder,
164
- lockChoiceOrderB = _ref2$lockChoiceOrder === void 0 ? {} : _ref2$lockChoiceOrder,
165
- _ref2$prompt = _ref2.prompt,
166
- promptB = _ref2$prompt === void 0 ? {} : _ref2$prompt,
167
- _ref2$teacherInstruct = _ref2.teacherInstructions,
168
- teacherInstructionsB = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
169
- _ref2$studentInstruct = _ref2.studentInstructions,
170
- studentInstructionsB = _ref2$studentInstruct === void 0 ? {} : _ref2$studentInstruct,
171
- _ref2$choicesLayout = _ref2.choicesLayout,
172
- choicesLayoutB = _ref2$choicesLayout === void 0 ? {} : _ref2$choicesLayout,
173
- _ref2$gridColumns = _ref2.gridColumns,
174
- gridColumnsB = _ref2$gridColumns === void 0 ? {} : _ref2$gridColumns,
175
- _ref2$rationale = _ref2.rationale,
176
- rationaleB = _ref2$rationale === void 0 ? {} : _ref2$rationale,
177
- _ref2$spellCheck = _ref2.spellCheck,
178
- spellCheckB = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck;
179
-
180
- var type = partLabelType || 'Numbers';
181
- var typeIsNumber = type === 'Numbers';
182
- var firstPart = "Part ".concat(typeIsNumber ? '1' : 'A');
183
- var secondPart = "Part ".concat(typeIsNumber ? '2' : 'B');
184
- var nrOfColumnsAvailable = {
185
- partA: modelPartA.choices && modelPartA.choices.length ? Array.from({
186
- length: modelPartA.choices.length
187
- }, function (_, i) {
188
- return "".concat(i + 1);
189
- }) : [],
190
- partB: modelPartB.choices && modelPartB.choices.length ? Array.from({
191
- length: modelPartB.choices.length
192
- }, function (_, i) {
193
- return "".concat(i + 1);
194
- }) : []
195
- };
196
- return /*#__PURE__*/_react["default"].createElement("div", {
197
- className: classes.design
198
- }, /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
199
- settings: /*#__PURE__*/_react["default"].createElement(Panel, {
200
- model: model,
201
- onChangeModel: this.onModelChanged,
202
- configuration: configuration,
203
- onChangeConfiguration: onConfigurationChanged,
204
- groups: (_ref3 = {
205
- 'Settings for both': {
206
- partLabels: generalConfiguration.partLabels.settings && toggle(generalConfiguration.partLabels.label),
207
- partLabelType: model.partLabels && dropdown('', ['Numbers', 'Letters']),
208
- partialScoring: partialScoring.settings && toggle(partialScoring.label),
209
- scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
210
- }
211
- }, (0, _defineProperty2["default"])(_ref3, "Settings ".concat(firstPart), {
212
- 'partA.choiceMode': choiceModeA.settings && radio(choiceModeA.label, ['checkbox', 'radio']),
213
- 'partA.choicePrefix': choicePrefixA.settings && radio(choicePrefixA.label, ['numbers', 'letters']),
214
- 'partA.lockChoiceOrder': lockChoiceOrderA.settings && toggle(lockChoiceOrderA.label),
215
- 'partA.choicesLayout': choicesLayoutA.settings && dropdown(choicesLayoutA.label, ['vertical', 'grid', 'horizontal']),
216
- 'partA.gridColumns': choicesLayoutA.settings && modelPartA.choicesLayout === 'grid' && nrOfColumnsAvailable.partA.length > 0 && dropdown(gridColumnsA.label, nrOfColumnsAvailable.partA)
217
- }), (0, _defineProperty2["default"])(_ref3, "Properties ".concat(firstPart), {
218
- 'partA.feedbackEnabled': feedbackA.settings && toggle(feedbackA.label),
219
- 'partA.promptEnabled': promptA.settings && toggle(promptA.label),
220
- 'partA.teacherInstructionsEnabled': teacherInstructionsA.settings && toggle(teacherInstructionsA.label),
221
- 'partA.studentInstructionsEnabled': studentInstructionsA.settings && toggle(studentInstructionsA.label),
222
- 'partA.rationaleEnabled': rationaleA.settings && toggle(rationaleA.label),
223
- 'partA.spellCheckEnabled': spellCheckA.settings && toggle(spellCheckA.label)
224
- }), (0, _defineProperty2["default"])(_ref3, "Settings ".concat(secondPart), {
225
- 'partB.choiceMode': choiceModeB.settings && radio(choiceModeB.label, ['checkbox', 'radio']),
226
- 'partB.choicePrefix': choicePrefixB.settings && radio(choicePrefixB.label, ['numbers', 'letters']),
227
- 'partB.lockChoiceOrder': lockChoiceOrderB.settings && toggle(lockChoiceOrderB.label),
228
- 'partB.choicesLayout': choicesLayoutB.settings && dropdown(choicesLayoutB.label, ['vertical', 'grid', 'horizontal']),
229
- 'partB.gridColumns': choicesLayoutB.settings && modelPartB.choicesLayout === 'grid' && nrOfColumnsAvailable.partB.length > 0 && dropdown(gridColumnsB.label, nrOfColumnsAvailable.partB)
230
- }), (0, _defineProperty2["default"])(_ref3, "Properties ".concat(secondPart), {
231
- 'partB.feedbackEnabled': feedbackB.settings && toggle(feedbackB.label),
232
- 'partB.promptEnabled': promptB.settings && toggle(promptB.label),
233
- 'partB.teacherInstructionsEnabled': teacherInstructionsB.settings && toggle(teacherInstructionsB.label),
234
- 'partB.studentInstructionsEnabled': studentInstructionsB.settings && toggle(studentInstructionsB.label),
235
- 'partB.rationaleEnabled': rationaleB.settings && toggle(rationaleB.label),
236
- 'partB.spellCheckEnabled': spellCheckB.settings && toggle(spellCheckB.label)
237
- }), _ref3)
238
- })
239
- }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement("div", {
240
- className: classes.part
241
- }, model.partLabels && /*#__PURE__*/_react["default"].createElement("p", null, firstPart), /*#__PURE__*/_react["default"].createElement("ebsr-multiple-choice-configure", {
242
- id: "A",
243
- key: "partA",
244
- ref: function ref(_ref4) {
245
- if (_ref4) {
246
- // do not use destructuring to get model from props
247
- _this2.partA = _ref4;
248
- _this2.partA._model = (0, _cloneDeep["default"])(_this2.props.model.partA);
249
- _this2.partA.configuration = _objectSpread(_objectSpread({}, partA), generalConfiguration);
250
- }
251
- }
252
- })), /*#__PURE__*/_react["default"].createElement("div", {
253
- className: classes.part
254
- }, model.partLabels && /*#__PURE__*/_react["default"].createElement("p", null, secondPart), /*#__PURE__*/_react["default"].createElement("ebsr-multiple-choice-configure", {
255
- id: "B",
256
- key: "partB",
257
- ref: function ref(_ref5) {
258
- if (_ref5) {
259
- // do not use destructuring to get model from props
260
- _this2.partB = _ref5;
261
- _this2.partB._model = (0, _cloneDeep["default"])(_this2.props.model.partB);
262
- _this2.partB.configuration = _objectSpread(_objectSpread({}, partB), generalConfiguration);
263
- }
264
- }
265
- })))));
266
- }
267
- }]);
268
- return Main;
269
- }(_react["default"].Component);
270
-
271
- exports.Main = Main;
272
- (0, _defineProperty2["default"])(Main, "propTypes", {
273
- classes: _propTypes["default"].object,
274
- configuration: _propTypes["default"].object,
275
- model: _propTypes["default"].object,
276
- onModelChanged: _propTypes["default"].func,
277
- onConfigurationChanged: _propTypes["default"].func
278
- });
279
- var Styled = (0, _styles.withStyles)(styles)(Main);
280
- var _default = Styled;
281
- exports["default"] = _default;
282
- //# sourceMappingURL=main.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","radio","dropdown","styles","theme","design","paddingTop","spacing","unit","part","display","flexDirection","padding","Main","choices","correctFound","map","choice","correct","model","key","onModelChanged","props","partA","choiceMode","removeExtraChoices","partB","classes","configuration","onConfigurationChanged","partLabelType","modelPartA","modelPartB","partialScoring","scoringType","generalConfiguration","feedback","feedbackA","choiceModeA","choicePrefix","choicePrefixA","lockChoiceOrder","lockChoiceOrderA","prompt","promptA","teacherInstructions","teacherInstructionsA","studentInstructions","studentInstructionsA","choicesLayout","choicesLayoutA","gridColumns","gridColumnsA","rationale","rationaleA","spellCheck","spellCheckA","feedbackB","choiceModeB","choicePrefixB","lockChoiceOrderB","promptB","teacherInstructionsB","studentInstructionsB","choicesLayoutB","gridColumnsB","rationaleB","spellCheckB","type","typeIsNumber","firstPart","secondPart","nrOfColumnsAvailable","length","Array","from","_","i","partLabels","label","ref","_model","React","Component","PropTypes","object","func","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { settings, layout } from '@pie-lib/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst styles = theme => ({\n design: {\n paddingTop: theme.spacing.unit * 3\n },\n part: {\n display: 'flex',\n flexDirection: 'column',\n padding: '16px 0 32px'\n }\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n configuration: PropTypes.object,\n model: PropTypes.object,\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func\n };\n\n removeExtraChoices = (choices) => {\n let correctFound = false;\n\n return (choices || []).map(choice => {\n if (correctFound) {\n choice.correct = false;\n return choice;\n }\n\n if (choice.correct) {\n correctFound = true;\n }\n\n return choice;\n });\n }\n\n onModelChanged = (model, key) => {\n const { onModelChanged } = this.props;\n\n if (key === 'partA.choiceMode' && model.partA.choiceMode === 'radio') {\n model.partA.choices = this.removeExtraChoices(model.partA.choices);\n\n return onModelChanged(model, true);\n }\n\n if (key === 'partB.choiceMode' && model.partB.choiceMode === 'radio') {\n model.partB.choices = this.removeExtraChoices(model.partB.choices);\n\n return onModelChanged(model, true);\n }\n\n return onModelChanged(model);\n }\n\n render() {\n const {\n classes,\n model,\n configuration,\n onConfigurationChanged\n } = this.props;\n const { partLabelType, partA: modelPartA, partB: modelPartB } = model;\n const { partA, partB, partialScoring, scoringType, ...generalConfiguration } = configuration;\n const {\n feedback: feedbackA = {},\n choiceMode: choiceModeA = {},\n choicePrefix: choicePrefixA = {},\n lockChoiceOrder: lockChoiceOrderA = {},\n prompt: promptA = {},\n teacherInstructions: teacherInstructionsA = {},\n studentInstructions: studentInstructionsA = {},\n choicesLayout: choicesLayoutA = {},\n gridColumns: gridColumnsA = {},\n rationale: rationaleA = {},\n spellCheck: spellCheckA = {}\n } = partA || {};\n const {\n feedback: feedbackB = {},\n choiceMode: choiceModeB = {},\n choicePrefix: choicePrefixB = {},\n lockChoiceOrder: lockChoiceOrderB = {},\n prompt: promptB = {},\n teacherInstructions: teacherInstructionsB = {},\n studentInstructions: studentInstructionsB = {},\n choicesLayout: choicesLayoutB = {},\n gridColumns: gridColumnsB = {},\n rationale: rationaleB = {},\n spellCheck: spellCheckB = {}\n } = partB || {};\n const type = partLabelType || 'Numbers';\n const typeIsNumber = type === 'Numbers';\n const firstPart = `Part ${typeIsNumber ? '1' : 'A'}`;\n const secondPart = `Part ${typeIsNumber ? '2' : 'B'}`;\n const nrOfColumnsAvailable = {\n partA: modelPartA.choices && modelPartA.choices.length ?\n Array.from({length: modelPartA.choices.length}, (_, i) => (`${i + 1}`)) : [],\n partB: modelPartB.choices && modelPartB.choices.length ?\n Array.from({length: modelPartB.choices.length}, (_, i) => (`${i + 1}`)) : [],\n };\n\n return (\n <div className={classes.design}>\n <layout.ConfigLayout\n settings={\n <Panel\n model={model}\n onChangeModel={this.onModelChanged}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n 'Settings for both': {\n partLabels:\n generalConfiguration.partLabels.settings &&\n toggle(generalConfiguration.partLabels.label),\n partLabelType:\n model.partLabels && dropdown('', ['Numbers', 'Letters']),\n partialScoring:\n partialScoring.settings && toggle(partialScoring.label),\n scoringType:\n scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])\n },\n [`Settings ${firstPart}`]: {\n 'partA.choiceMode':\n choiceModeA.settings &&\n radio(choiceModeA.label, ['checkbox', 'radio']),\n 'partA.choicePrefix':\n choicePrefixA.settings &&\n radio(choicePrefixA.label, ['numbers', 'letters']),\n 'partA.lockChoiceOrder':\n lockChoiceOrderA.settings && toggle(lockChoiceOrderA.label),\n 'partA.choicesLayout':\n choicesLayoutA.settings &&\n dropdown(choicesLayoutA.label, ['vertical', 'grid', 'horizontal']),\n 'partA.gridColumns':\n choicesLayoutA.settings && modelPartA.choicesLayout === 'grid' &&\n nrOfColumnsAvailable.partA.length > 0 &&\n dropdown(gridColumnsA.label, nrOfColumnsAvailable.partA)\n },\n [`Properties ${firstPart}`]: {\n 'partA.feedbackEnabled': feedbackA.settings &&\n toggle(feedbackA.label),\n 'partA.promptEnabled':\n promptA.settings && toggle(promptA.label),\n 'partA.teacherInstructionsEnabled':\n teacherInstructionsA.settings &&\n toggle(teacherInstructionsA.label),\n 'partA.studentInstructionsEnabled':\n studentInstructionsA.settings &&\n toggle(studentInstructionsA.label),\n 'partA.rationaleEnabled':\n rationaleA.settings && toggle(rationaleA.label),\n 'partA.spellCheckEnabled':\n spellCheckA.settings && toggle(spellCheckA.label),\n },\n [`Settings ${secondPart}`]: {\n 'partB.choiceMode':\n choiceModeB.settings &&\n radio(choiceModeB.label, ['checkbox', 'radio']),\n 'partB.choicePrefix':\n choicePrefixB.settings &&\n radio(choicePrefixB.label, ['numbers', 'letters']),\n 'partB.lockChoiceOrder':\n lockChoiceOrderB.settings && toggle(lockChoiceOrderB.label),\n 'partB.choicesLayout':\n choicesLayoutB.settings &&\n dropdown(choicesLayoutB.label, ['vertical', 'grid', 'horizontal']),\n 'partB.gridColumns':\n choicesLayoutB.settings && modelPartB.choicesLayout === 'grid' &&\n nrOfColumnsAvailable.partB.length > 0 &&\n dropdown(gridColumnsB.label, nrOfColumnsAvailable.partB)\n },\n [`Properties ${secondPart}`]: {\n 'partB.feedbackEnabled':\n feedbackB.settings && toggle(feedbackB.label),\n 'partB.promptEnabled':\n promptB.settings && toggle(promptB.label),\n 'partB.teacherInstructionsEnabled':\n teacherInstructionsB.settings &&\n toggle(teacherInstructionsB.label),\n 'partB.studentInstructionsEnabled':\n studentInstructionsB.settings &&\n toggle(studentInstructionsB.label),\n 'partB.rationaleEnabled':\n rationaleB.settings && toggle(rationaleB.label),\n 'partB.spellCheckEnabled':\n spellCheckB.settings && toggle(spellCheckB.label),\n }\n }}\n />\n }\n >\n <div>\n <div className={classes.part}>\n {model.partLabels && <p>{firstPart}</p>}\n <ebsr-multiple-choice-configure\n id=\"A\"\n key=\"partA\"\n ref={ref => {\n if (ref) {\n // do not use destructuring to get model from props\n this.partA = ref;\n this.partA._model = cloneDeep(this.props.model.partA);\n this.partA.configuration = {\n ...partA,\n ...generalConfiguration\n };\n }\n }}\n />\n </div>\n\n <div className={classes.part}>\n {model.partLabels && <p>{secondPart}</p>}\n <ebsr-multiple-choice-configure\n id=\"B\"\n key=\"partB\"\n ref={ref => {\n if (ref) {\n // do not use destructuring to get model from props\n this.partB = ref;\n this.partB._model = cloneDeep(this.props.model.partB);\n this.partB.configuration = {\n ...partB,\n ...generalConfiguration\n };\n }\n }}\n />\n </div>\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"main.js"}
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- var _default = {
8
- partA: {
9
- choicePrefix: 'letters',
10
- choices: [{
11
- value: 'a',
12
- label: 'label a'
13
- }],
14
- prompt: 'prompt a',
15
- disabled: false
16
- },
17
- partB: {
18
- choicePrefix: 'letters',
19
- choices: [{
20
- value: 'b',
21
- label: 'label b'
22
- }],
23
- prompt: 'prompt b',
24
- disabled: false
25
- }
26
- };
27
- exports["default"] = _default;
28
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["partA","choicePrefix","choices","value","label","prompt","disabled","partB"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,YAAY,EAAE,SADT;AAELC,IAAAA,OAAO,EAAE,CACP;AACEC,MAAAA,KAAK,EAAE,GADT;AAEEC,MAAAA,KAAK,EAAE;AAFT,KADO,CAFJ;AAQLC,IAAAA,MAAM,EAAE,UARH;AASLC,IAAAA,QAAQ,EAAE;AATL,GADM;AAYbC,EAAAA,KAAK,EAAE;AACLN,IAAAA,YAAY,EAAE,SADT;AAELC,IAAAA,OAAO,EAAE,CACP;AACEC,MAAAA,KAAK,EAAE,GADT;AAEEC,MAAAA,KAAK,EAAE;AAFT,KADO,CAFJ;AAQLC,IAAAA,MAAM,EAAE,UARH;AASLC,IAAAA,QAAQ,EAAE;AATL;AAZM,C","sourcesContent":["export default {\n partA: {\n choicePrefix: 'letters',\n choices: [\n {\n value: 'a',\n label: 'label a',\n }\n ],\n prompt: 'prompt a',\n disabled: false,\n },\n partB: {\n choicePrefix: 'letters',\n choices: [\n {\n value: 'b',\n label: 'label b',\n },\n ],\n prompt: 'prompt b',\n disabled: false,\n },\n};\n"],"file":"defaults.js"}