@pie-element/extended-text-entry 10.12.0 → 10.12.1-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.
- package/configure/package.json +1 -1
- package/controller/package.json +1 -1
- package/package.json +3 -3
- package/configure/lib/defaults.js +0 -138
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js +0 -179
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -311
- package/configure/lib/main.js.map +0 -1
- package/controller/lib/defaults.js +0 -14
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -198
- package/controller/lib/index.js.map +0 -1
- package/lib/index.js +0 -136
- package/lib/index.js.map +0 -1
- package/lib/main.js +0 -216
- package/lib/main.js.map +0 -1
- package/lib/print.js +0 -122
- package/lib/print.js.map +0 -1
- package/module/configure.js +0 -6271
- package/module/controller.js +0 -263
- package/module/demo.js +0 -37
- package/module/element.js +0 -5970
- package/module/index.html +0 -21
- package/module/manifest.json +0 -14
- package/module/print-demo.js +0 -75
- package/module/print.html +0 -18
- package/module/print.js +0 -5927
package/configure/lib/main.js
DELETED
|
@@ -1,311 +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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
|
-
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
|
-
var _configUi = require("@pie-lib/pie-toolbox/config-ui");
|
|
27
|
-
|
|
28
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
-
|
|
30
|
-
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
31
|
-
|
|
32
|
-
var _styles = require("@material-ui/core/styles");
|
|
33
|
-
|
|
34
|
-
var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
|
|
35
|
-
|
|
36
|
-
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; }
|
|
37
|
-
|
|
38
|
-
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; }
|
|
39
|
-
|
|
40
|
-
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); }; }
|
|
41
|
-
|
|
42
|
-
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; } }
|
|
43
|
-
|
|
44
|
-
var Panel = _configUi.settings.Panel,
|
|
45
|
-
toggle = _configUi.settings.toggle,
|
|
46
|
-
numberFields = _configUi.settings.numberFields,
|
|
47
|
-
dropdown = _configUi.settings.dropdown;
|
|
48
|
-
var defaultFeedback = {
|
|
49
|
-
type: 'default',
|
|
50
|
-
"default": 'Your answer has been submitted'
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
var Main = /*#__PURE__*/function (_React$Component) {
|
|
54
|
-
(0, _inherits2["default"])(Main, _React$Component);
|
|
55
|
-
|
|
56
|
-
var _super = _createSuper(Main);
|
|
57
|
-
|
|
58
|
-
function Main(props) {
|
|
59
|
-
var _this;
|
|
60
|
-
|
|
61
|
-
(0, _classCallCheck2["default"])(this, Main);
|
|
62
|
-
_this = _super.call(this, props);
|
|
63
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPromptChange", function (markup) {
|
|
64
|
-
var _this$props = _this.props,
|
|
65
|
-
onModelChanged = _this$props.onModelChanged,
|
|
66
|
-
model = _this$props.model;
|
|
67
|
-
onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
|
|
68
|
-
prompt: markup
|
|
69
|
-
}));
|
|
70
|
-
});
|
|
71
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeFeedback", function (feedback) {
|
|
72
|
-
var _this$props2 = _this.props,
|
|
73
|
-
model = _this$props2.model,
|
|
74
|
-
onModelChanged = _this$props2.onModelChanged;
|
|
75
|
-
|
|
76
|
-
var update = _objectSpread(_objectSpread({}, model), {}, {
|
|
77
|
-
feedback: feedback
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
onModelChanged(update);
|
|
81
|
-
});
|
|
82
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTeacherInstructions", function (teacherInstructions) {
|
|
83
|
-
var _this$props3 = _this.props,
|
|
84
|
-
model = _this$props3.model,
|
|
85
|
-
onModelChanged = _this$props3.onModelChanged;
|
|
86
|
-
|
|
87
|
-
var update = _objectSpread(_objectSpread({}, model), {}, {
|
|
88
|
-
teacherInstructions: teacherInstructions
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
onModelChanged(update);
|
|
92
|
-
});
|
|
93
|
-
_this.state = {
|
|
94
|
-
setDimensions: true
|
|
95
|
-
};
|
|
96
|
-
return _this;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
(0, _createClass2["default"])(Main, [{
|
|
100
|
-
key: "render",
|
|
101
|
-
value: function render() {
|
|
102
|
-
var _this$props4 = this.props,
|
|
103
|
-
model = _this$props4.model,
|
|
104
|
-
classes = _this$props4.classes,
|
|
105
|
-
configuration = _this$props4.configuration,
|
|
106
|
-
imageSupport = _this$props4.imageSupport,
|
|
107
|
-
onConfigurationChanged = _this$props4.onConfigurationChanged,
|
|
108
|
-
onModelChanged = _this$props4.onModelChanged,
|
|
109
|
-
uploadSoundSupport = _this$props4.uploadSoundSupport;
|
|
110
|
-
|
|
111
|
-
var _ref = configuration || {},
|
|
112
|
-
_ref$contentDimension = _ref.contentDimensions,
|
|
113
|
-
contentDimensions = _ref$contentDimension === void 0 ? {} : _ref$contentDimension,
|
|
114
|
-
_ref$dimensions = _ref.dimensions,
|
|
115
|
-
dimensions = _ref$dimensions === void 0 ? {} : _ref$dimensions,
|
|
116
|
-
_ref$equationEditor = _ref.equationEditor,
|
|
117
|
-
equationEditor = _ref$equationEditor === void 0 ? {} : _ref$equationEditor,
|
|
118
|
-
_ref$feedback = _ref.feedback,
|
|
119
|
-
feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
|
|
120
|
-
_ref$playerSpellCheck = _ref.playerSpellCheck,
|
|
121
|
-
playerSpellCheck = _ref$playerSpellCheck === void 0 ? {} : _ref$playerSpellCheck,
|
|
122
|
-
_ref$prompt = _ref.prompt,
|
|
123
|
-
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
124
|
-
settingsPanelDisabled = _ref.settingsPanelDisabled,
|
|
125
|
-
_ref$spanishInput = _ref.spanishInput,
|
|
126
|
-
spanishInput = _ref$spanishInput === void 0 ? {} : _ref$spanishInput,
|
|
127
|
-
_ref$specialInput = _ref.specialInput,
|
|
128
|
-
specialInput = _ref$specialInput === void 0 ? {} : _ref$specialInput,
|
|
129
|
-
_ref$spellCheck = _ref.spellCheck,
|
|
130
|
-
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
131
|
-
_ref$studentInstructi = _ref.studentInstructions,
|
|
132
|
-
studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
|
|
133
|
-
_ref$teacherInstructi = _ref.teacherInstructions,
|
|
134
|
-
teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
|
|
135
|
-
_ref$mathInput = _ref.mathInput,
|
|
136
|
-
mathInput = _ref$mathInput === void 0 ? {} : _ref$mathInput,
|
|
137
|
-
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
138
|
-
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
139
|
-
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
140
|
-
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
|
|
141
|
-
_ref$multiple = _ref.multiple,
|
|
142
|
-
multiple = _ref$multiple === void 0 ? {} : _ref$multiple,
|
|
143
|
-
_ref$withRubric = _ref.withRubric,
|
|
144
|
-
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric,
|
|
145
|
-
_ref$mathMlOptions = _ref.mathMlOptions,
|
|
146
|
-
mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions,
|
|
147
|
-
_ref$baseInputConfigu = _ref.baseInputConfiguration,
|
|
148
|
-
baseInputConfiguration = _ref$baseInputConfigu === void 0 ? {} : _ref$baseInputConfigu;
|
|
149
|
-
|
|
150
|
-
var _ref2 = model || {},
|
|
151
|
-
_ref2$errors = _ref2.errors,
|
|
152
|
-
errors = _ref2$errors === void 0 ? {} : _ref2$errors,
|
|
153
|
-
feedbackEnabled = _ref2.feedbackEnabled,
|
|
154
|
-
promptEnabled = _ref2.promptEnabled,
|
|
155
|
-
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
156
|
-
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
157
|
-
toolbarEditorPosition = _ref2.toolbarEditorPosition;
|
|
158
|
-
|
|
159
|
-
var promptError = errors.prompt,
|
|
160
|
-
teacherInstructionsError = errors.teacherInstructions;
|
|
161
|
-
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
162
|
-
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
163
|
-
var toolbarOpts = {
|
|
164
|
-
position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
|
|
165
|
-
};
|
|
166
|
-
var panelSettings = {
|
|
167
|
-
mathInput: mathInput.settings && toggle(mathInput.label),
|
|
168
|
-
equationEditor: equationEditor.enabled && model.mathInput && dropdown(equationEditor.label, ['non-negative-integers', 'integers', 'decimals', 'fractions', 'Grade 1 - 2', 'Grade 3 - 5', 'Grade 6 - 7', 'Grade 8 - HS', 'geometry', 'advanced-algebra', 'statistics', 'item-authoring']),
|
|
169
|
-
spanishInput: spanishInput.settings && toggle(spanishInput.label),
|
|
170
|
-
specialInput: specialInput.settings && toggle(specialInput.label),
|
|
171
|
-
dimensions: numberFields(dimensions.label, {
|
|
172
|
-
width: {
|
|
173
|
-
label: 'Width (px)',
|
|
174
|
-
suffix: 'px',
|
|
175
|
-
min: 100,
|
|
176
|
-
max: 500
|
|
177
|
-
},
|
|
178
|
-
height: {
|
|
179
|
-
label: 'Height (px)',
|
|
180
|
-
suffix: 'px',
|
|
181
|
-
min: 100,
|
|
182
|
-
max: 500
|
|
183
|
-
}
|
|
184
|
-
}),
|
|
185
|
-
'multiple.enabled': multiple.settings && toggle(multiple.label, true),
|
|
186
|
-
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
187
|
-
feedbackEnabled: feedback.settings && toggle(feedback.label),
|
|
188
|
-
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
189
|
-
playerSpellCheckDisabled: playerSpellCheck.settings && toggle(playerSpellCheck.label)
|
|
190
|
-
};
|
|
191
|
-
var panelProperties = {
|
|
192
|
-
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
193
|
-
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
194
|
-
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
var getPluginProps = function getPluginProps(props) {
|
|
198
|
-
return Object.assign(_objectSpread({}, baseInputConfiguration), props || {});
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
202
|
-
dimensions: contentDimensions,
|
|
203
|
-
hideSettings: settingsPanelDisabled,
|
|
204
|
-
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
205
|
-
model: model,
|
|
206
|
-
configuration: configuration,
|
|
207
|
-
onChangeModel: function onChangeModel(model) {
|
|
208
|
-
return onModelChanged(model);
|
|
209
|
-
},
|
|
210
|
-
onChangeConfiguration: function onChangeConfiguration(config) {
|
|
211
|
-
return onConfigurationChanged(config);
|
|
212
|
-
},
|
|
213
|
-
groups: {
|
|
214
|
-
Settings: panelSettings,
|
|
215
|
-
Properties: panelProperties
|
|
216
|
-
}
|
|
217
|
-
})
|
|
218
|
-
}, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
219
|
-
label: teacherInstructions.label,
|
|
220
|
-
className: classes.promptContainer
|
|
221
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
222
|
-
className: classes.prompt,
|
|
223
|
-
markup: model.teacherInstructions || '',
|
|
224
|
-
onChange: this.changeTeacherInstructions,
|
|
225
|
-
imageSupport: imageSupport,
|
|
226
|
-
nonEmpty: false,
|
|
227
|
-
error: teacherInstructionsError,
|
|
228
|
-
toolbarOpts: toolbarOpts,
|
|
229
|
-
spellCheck: spellCheckEnabled,
|
|
230
|
-
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
231
|
-
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
|
|
232
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
233
|
-
languageCharactersProps: [{
|
|
234
|
-
language: 'spanish'
|
|
235
|
-
}, {
|
|
236
|
-
language: 'special'
|
|
237
|
-
}],
|
|
238
|
-
mathMlOptions: mathMlOptions,
|
|
239
|
-
pluginProps: getPluginProps(teacherInstructions === null || teacherInstructions === void 0 ? void 0 : teacherInstructions.inputConfiguration)
|
|
240
|
-
}), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
241
|
-
className: classes.errorText
|
|
242
|
-
}, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
243
|
-
label: prompt.label,
|
|
244
|
-
className: classes.promptContainer
|
|
245
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
246
|
-
activePlugins: _editableHtml.ALL_PLUGINS,
|
|
247
|
-
className: classes.prompt,
|
|
248
|
-
markup: model.prompt || '',
|
|
249
|
-
onChange: this.onPromptChange,
|
|
250
|
-
imageSupport: imageSupport,
|
|
251
|
-
nonEmpty: false,
|
|
252
|
-
error: promptError,
|
|
253
|
-
toolbarOpts: toolbarOpts,
|
|
254
|
-
spellCheck: spellCheckEnabled,
|
|
255
|
-
maxImageWidth: defaultImageMaxWidth,
|
|
256
|
-
maxImageHeight: defaultImageMaxHeight,
|
|
257
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
258
|
-
languageCharactersProps: [{
|
|
259
|
-
language: 'spanish'
|
|
260
|
-
}, {
|
|
261
|
-
language: 'special'
|
|
262
|
-
}],
|
|
263
|
-
mathMlOptions: mathMlOptions,
|
|
264
|
-
pluginProps: getPluginProps(prompt === null || prompt === void 0 ? void 0 : prompt.inputConfiguration)
|
|
265
|
-
}), promptError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
266
|
-
className: classes.errorText
|
|
267
|
-
}, promptError)), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
268
|
-
className: classes.header,
|
|
269
|
-
variant: "subheading"
|
|
270
|
-
}, "Feedback"), /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackSelector, {
|
|
271
|
-
label: "When submitted, show",
|
|
272
|
-
feedback: model.feedback || defaultFeedback,
|
|
273
|
-
onChange: this.changeFeedback,
|
|
274
|
-
toolbarOpts: toolbarOpts
|
|
275
|
-
})));
|
|
276
|
-
}
|
|
277
|
-
}]);
|
|
278
|
-
return Main;
|
|
279
|
-
}(_react["default"].Component);
|
|
280
|
-
|
|
281
|
-
exports.Main = Main;
|
|
282
|
-
(0, _defineProperty2["default"])(Main, "propTypes", {
|
|
283
|
-
onModelChanged: _propTypes["default"].func.isRequired,
|
|
284
|
-
onConfigurationChanged: _propTypes["default"].func,
|
|
285
|
-
model: _propTypes["default"].object.isRequired,
|
|
286
|
-
configuration: _propTypes["default"].object.isRequired,
|
|
287
|
-
imageSupport: _propTypes["default"].object.isRequired,
|
|
288
|
-
uploadSoundSupport: _propTypes["default"].object.isRequired,
|
|
289
|
-
classes: _propTypes["default"].object.isRequired
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
var _default = (0, _styles.withStyles)(function (theme) {
|
|
293
|
-
return {
|
|
294
|
-
header: {
|
|
295
|
-
paddingBottom: theme.spacing.unit
|
|
296
|
-
},
|
|
297
|
-
promptContainer: {
|
|
298
|
-
paddingTop: theme.spacing.unit * 2,
|
|
299
|
-
marginBottom: theme.spacing.unit * 2,
|
|
300
|
-
width: '100%'
|
|
301
|
-
},
|
|
302
|
-
errorText: {
|
|
303
|
-
fontSize: theme.typography.fontSize - 2,
|
|
304
|
-
color: theme.palette.error.main,
|
|
305
|
-
paddingTop: theme.spacing.unit
|
|
306
|
-
}
|
|
307
|
-
};
|
|
308
|
-
})(Main);
|
|
309
|
-
|
|
310
|
-
exports["default"] = _default;
|
|
311
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","numberFields","dropdown","defaultFeedback","type","Main","props","markup","onModelChanged","model","prompt","feedback","update","teacherInstructions","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","contentDimensions","dimensions","equationEditor","playerSpellCheck","settingsPanelDisabled","spanishInput","specialInput","spellCheck","studentInstructions","mathInput","maxImageWidth","maxImageHeight","multiple","withRubric","mathMlOptions","baseInputConfiguration","errors","feedbackEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","width","suffix","min","max","height","playerSpellCheckDisabled","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","Object","assign","config","Settings","Properties","promptContainer","changeTeacherInstructions","language","inputConfiguration","errorText","ALL_PLUGINS","onPromptChange","header","changeFeedback","React","Component","PropTypes","func","isRequired","object","theme","paddingBottom","spacing","unit","paddingTop","marginBottom","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FeedbackSelector, InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\n\nconst { Panel, toggle, numberFields, dropdown } = settings;\n\nconst defaultFeedback = {\n type: 'default',\n default: 'Your answer has been submitted',\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n onPromptChange = (markup) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt: markup });\n };\n\n changeFeedback = (feedback) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, feedback };\n\n onModelChanged(update);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, teacherInstructions };\n\n onModelChanged(update);\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n contentDimensions = {},\n dimensions = {},\n equationEditor = {},\n feedback = {},\n playerSpellCheck = {},\n prompt = {},\n settingsPanelDisabled,\n spanishInput = {},\n specialInput = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n mathInput = {},\n maxImageWidth = {},\n maxImageHeight = {},\n multiple = {},\n withRubric = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n } = configuration || {};\n const {\n errors = {},\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n mathInput: mathInput.settings && toggle(mathInput.label),\n equationEditor:\n equationEditor.enabled &&\n model.mathInput &&\n dropdown(equationEditor.label, [\n 'non-negative-integers',\n 'integers',\n 'decimals',\n 'fractions',\n 'Grade 1 - 2',\n 'Grade 3 - 5',\n 'Grade 6 - 7',\n 'Grade 8 - HS',\n 'geometry',\n 'advanced-algebra',\n 'statistics',\n 'item-authoring',\n ]),\n spanishInput: spanishInput.settings && toggle(spanishInput.label),\n specialInput: specialInput.settings && toggle(specialInput.label),\n dimensions: numberFields(dimensions.label, {\n width: { label: 'Width (px)', suffix: 'px', min: 100, max: 500 },\n height: { label: 'Height (px)', suffix: 'px', min: 100, max: 500 },\n }),\n 'multiple.enabled': multiple.settings && toggle(multiple.label, true),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckDisabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <React.Fragment>\n <Typography className={classes.header} variant=\"subheading\">\n Feedback\n </Typography>\n\n <FeedbackSelector\n label=\"When submitted, show\"\n feedback={model.feedback || defaultFeedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n header: {\n paddingBottom: theme.spacing.unit,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n}))(Main);\n"],"file":"main.js"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _default = {
|
|
8
|
-
dimensions: {
|
|
9
|
-
height: 100,
|
|
10
|
-
width: 500
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
exports["default"] = _default;
|
|
14
|
-
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["dimensions","height","width"],"mappings":";;;;;;eAAe;AACbA,EAAAA,UAAU,EAAE;AACVC,IAAAA,MAAM,EAAE,GADE;AAEVC,IAAAA,KAAK,EAAE;AAFG;AADC,C","sourcesContent":["export default {\n dimensions: {\n height: 100,\n width: 500,\n },\n};\n"],"file":"defaults.js"}
|
package/controller/lib/index.js
DELETED
|
@@ -1,198 +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.createDefaultModel = createDefaultModel;
|
|
9
|
-
exports.model = model;
|
|
10
|
-
exports.normalize = void 0;
|
|
11
|
-
exports.outcome = outcome;
|
|
12
|
-
exports.validate = void 0;
|
|
13
|
-
|
|
14
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
-
|
|
16
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
|
|
18
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
19
|
-
|
|
20
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
21
|
-
|
|
22
|
-
var _feedback = require("@pie-lib/pie-toolbox/feedback");
|
|
23
|
-
|
|
24
|
-
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
25
|
-
|
|
26
|
-
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; }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
|
-
var log = (0, _debug["default"])('@pie-element:extended-text-entry:controller');
|
|
31
|
-
|
|
32
|
-
function createDefaultModel() {
|
|
33
|
-
return _createDefaultModel.apply(this, arguments);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function _createDefaultModel() {
|
|
37
|
-
_createDefaultModel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
38
|
-
var model,
|
|
39
|
-
_args = arguments;
|
|
40
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
41
|
-
while (1) {
|
|
42
|
-
switch (_context.prev = _context.next) {
|
|
43
|
-
case 0:
|
|
44
|
-
model = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
|
|
45
|
-
log('[createDefaultModel]', model);
|
|
46
|
-
return _context.abrupt("return", _objectSpread(_objectSpread({}, _defaults["default"]), model));
|
|
47
|
-
|
|
48
|
-
case 3:
|
|
49
|
-
case "end":
|
|
50
|
-
return _context.stop();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}, _callee);
|
|
54
|
-
}));
|
|
55
|
-
return _createDefaultModel.apply(this, arguments);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
var normalize = function normalize(question) {
|
|
59
|
-
return _objectSpread(_objectSpread({}, _defaults["default"]), {}, {
|
|
60
|
-
feedbackEnabled: false,
|
|
61
|
-
rationaleEnabled: true,
|
|
62
|
-
promptEnabled: true,
|
|
63
|
-
teacherInstructionsEnabled: true,
|
|
64
|
-
studentInstructionsEnabled: true,
|
|
65
|
-
playerSpellCheckDisabled: true
|
|
66
|
-
}, question);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
exports.normalize = normalize;
|
|
70
|
-
|
|
71
|
-
function model(_x, _x2, _x3) {
|
|
72
|
-
return _model.apply(this, arguments);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
function _model() {
|
|
76
|
-
_model = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(question, session, env) {
|
|
77
|
-
var normalizedQuestion, fb, teacherInstructions, equationEditor;
|
|
78
|
-
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
79
|
-
while (1) {
|
|
80
|
-
switch (_context2.prev = _context2.next) {
|
|
81
|
-
case 0:
|
|
82
|
-
log('[question]', question);
|
|
83
|
-
normalizedQuestion = normalize(question);
|
|
84
|
-
fb = env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled ? (0, _feedback.getFeedback)(normalizedQuestion.feedback, 'Your answer has been submitted') : Promise.resolve(undefined);
|
|
85
|
-
teacherInstructions = null;
|
|
86
|
-
|
|
87
|
-
if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
|
|
88
|
-
teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
|
|
89
|
-
} else {
|
|
90
|
-
teacherInstructions = null;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';
|
|
94
|
-
_context2.t0 = normalizedQuestion.equationEditor;
|
|
95
|
-
_context2.next = _context2.t0 === 'Grade 1 - 2' ? 9 : _context2.t0 === 'Grade 3 - 5' ? 11 : _context2.t0 === 'Grade 6 - 7' ? 13 : _context2.t0 === 'Grade 8 - HS' ? 15 : 17;
|
|
96
|
-
break;
|
|
97
|
-
|
|
98
|
-
case 9:
|
|
99
|
-
equationEditor = 1;
|
|
100
|
-
return _context2.abrupt("break", 18);
|
|
101
|
-
|
|
102
|
-
case 11:
|
|
103
|
-
equationEditor = 3;
|
|
104
|
-
return _context2.abrupt("break", 18);
|
|
105
|
-
|
|
106
|
-
case 13:
|
|
107
|
-
equationEditor = 6;
|
|
108
|
-
return _context2.abrupt("break", 18);
|
|
109
|
-
|
|
110
|
-
case 15:
|
|
111
|
-
equationEditor = 8;
|
|
112
|
-
return _context2.abrupt("break", 18);
|
|
113
|
-
|
|
114
|
-
case 17:
|
|
115
|
-
return _context2.abrupt("break", 18);
|
|
116
|
-
|
|
117
|
-
case 18:
|
|
118
|
-
return _context2.abrupt("return", fb.then(function (feedback) {
|
|
119
|
-
return {
|
|
120
|
-
prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
|
|
121
|
-
dimensions: normalizedQuestion.dimensions,
|
|
122
|
-
customKeys: normalizedQuestion.customKeys || [],
|
|
123
|
-
disabled: env.mode !== 'gather',
|
|
124
|
-
feedback: feedback,
|
|
125
|
-
teacherInstructions: teacherInstructions,
|
|
126
|
-
mathInput: normalizedQuestion.mathInput,
|
|
127
|
-
spanishInput: normalizedQuestion.spanishInput,
|
|
128
|
-
specialInput: normalizedQuestion.specialInput,
|
|
129
|
-
equationEditor: equationEditor,
|
|
130
|
-
spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,
|
|
131
|
-
playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom'
|
|
132
|
-
};
|
|
133
|
-
}));
|
|
134
|
-
|
|
135
|
-
case 19:
|
|
136
|
-
case "end":
|
|
137
|
-
return _context2.stop();
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}, _callee2);
|
|
141
|
-
}));
|
|
142
|
-
return _model.apply(this, arguments);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function
|
|
146
|
-
/*question, session, env*/
|
|
147
|
-
outcome() {
|
|
148
|
-
return _outcome.apply(this, arguments);
|
|
149
|
-
} // remove all html tags
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
function _outcome() {
|
|
153
|
-
_outcome = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
154
|
-
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
155
|
-
while (1) {
|
|
156
|
-
switch (_context3.prev = _context3.next) {
|
|
157
|
-
case 0:
|
|
158
|
-
return _context3.abrupt("return", {
|
|
159
|
-
score: 0,
|
|
160
|
-
completed: 'n/a',
|
|
161
|
-
note: 'Requires manual scoring'
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
case 1:
|
|
165
|
-
case "end":
|
|
166
|
-
return _context3.stop();
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}, _callee3);
|
|
170
|
-
}));
|
|
171
|
-
return _outcome.apply(this, arguments);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
var getInnerText = function getInnerText(html) {
|
|
175
|
-
return (html || '').replaceAll(/<[^>]*>/g, '');
|
|
176
|
-
}; // remove all html tags except img and iframe
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
var getContent = function getContent(html) {
|
|
180
|
-
return (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');
|
|
181
|
-
};
|
|
182
|
-
|
|
183
|
-
var validate = function validate() {
|
|
184
|
-
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
185
|
-
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
186
|
-
var errors = {};
|
|
187
|
-
['teacherInstructions', 'prompt'].forEach(function (field) {
|
|
188
|
-
var _config$field;
|
|
189
|
-
|
|
190
|
-
if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(model[field])) {
|
|
191
|
-
errors[field] = 'This field is required.';
|
|
192
|
-
}
|
|
193
|
-
});
|
|
194
|
-
return errors;
|
|
195
|
-
};
|
|
196
|
-
|
|
197
|
-
exports.validate = validate;
|
|
198
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","createDefaultModel","model","defaults","normalize","question","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","playerSpellCheckDisabled","session","env","normalizedQuestion","fb","mode","feedback","Promise","resolve","undefined","teacherInstructions","role","equationEditor","then","prompt","dimensions","customKeys","disabled","mathInput","spanishInput","specialInput","spellCheckEnabled","playersToolbarPosition","outcome","score","completed","note","getInnerText","html","replaceAll","getContent","replace","validate","config","errors","forEach","field","required"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nconst log = debug('@pie-element:extended-text-entry:controller');\nimport { getFeedback } from '@pie-lib/pie-toolbox/feedback';\n\nimport defaults from './defaults';\n\nexport async function createDefaultModel(model = {}) {\n log('[createDefaultModel]', model);\n\n return {\n ...defaults,\n ...model,\n };\n}\n\nexport const normalize = (question) => ({\n ...defaults,\n feedbackEnabled: false,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n playerSpellCheckDisabled: true,\n ...question,\n});\n\nexport async function model(question, session, env) {\n log('[question]', question);\n const normalizedQuestion = normalize(question);\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedback(normalizedQuestion.feedback, 'Your answer has been submitted')\n : Promise.resolve(undefined);\n\n let teacherInstructions = null;\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n teacherInstructions = null;\n }\n\n let equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';\n\n switch (normalizedQuestion.equationEditor) {\n case 'Grade 1 - 2':\n equationEditor = 1;\n break;\n case 'Grade 3 - 5':\n equationEditor = 3;\n break;\n case 'Grade 6 - 7':\n equationEditor = 6;\n break;\n case 'Grade 8 - HS':\n equationEditor = 8;\n break;\n default:\n break;\n }\n\n return fb.then((feedback) => ({\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n dimensions: normalizedQuestion.dimensions,\n customKeys: normalizedQuestion.customKeys || [],\n disabled: env.mode !== 'gather',\n feedback,\n teacherInstructions,\n mathInput: normalizedQuestion.mathInput,\n spanishInput: normalizedQuestion.spanishInput,\n specialInput: normalizedQuestion.specialInput,\n equationEditor,\n spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,\n playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom',\n }));\n}\n\nexport async function outcome(/*question, session, env*/) {\n return {\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n };\n}\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img and iframe\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n return errors;\n};\n"],"file":"index.js"}
|