@pie-element/math-templated 2.11.2-next.7000

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 (48) hide show
  1. package/CHANGELOG.json +1 -0
  2. package/CHANGELOG.md +528 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +0 -0
  5. package/configure/CHANGELOG.json +1 -0
  6. package/configure/CHANGELOG.md +486 -0
  7. package/configure/lib/defaults.js +158 -0
  8. package/configure/lib/defaults.js.map +1 -0
  9. package/configure/lib/design.js +597 -0
  10. package/configure/lib/design.js.map +1 -0
  11. package/configure/lib/index.js +227 -0
  12. package/configure/lib/index.js.map +1 -0
  13. package/configure/lib/markupUtils.js +51 -0
  14. package/configure/lib/markupUtils.js.map +1 -0
  15. package/configure/lib/response.js +442 -0
  16. package/configure/lib/response.js.map +1 -0
  17. package/configure/package.json +20 -0
  18. package/controller/CHANGELOG.json +1 -0
  19. package/controller/CHANGELOG.md +391 -0
  20. package/controller/lib/defaults.js +21 -0
  21. package/controller/lib/defaults.js.map +1 -0
  22. package/controller/lib/index.js +302 -0
  23. package/controller/lib/index.js.map +1 -0
  24. package/controller/package.json +19 -0
  25. package/docs/config-schema.json +104 -0
  26. package/docs/config-schema.json.md +85 -0
  27. package/docs/demo/config.js +8 -0
  28. package/docs/demo/generate.js +42 -0
  29. package/docs/demo/index.html +1 -0
  30. package/docs/demo/session.js +14 -0
  31. package/docs/pie-schema.json +51 -0
  32. package/docs/pie-schema.json.md +37 -0
  33. package/lib/index.js +121 -0
  34. package/lib/index.js.map +1 -0
  35. package/lib/main.js +843 -0
  36. package/lib/main.js.map +1 -0
  37. package/lib/print.js +130 -0
  38. package/lib/print.js.map +1 -0
  39. package/module/configure.js +106458 -0
  40. package/module/controller.js +23132 -0
  41. package/module/demo.js +67 -0
  42. package/module/element.js +127550 -0
  43. package/module/index.html +21 -0
  44. package/module/manifest.json +14 -0
  45. package/module/print-demo.js +105 -0
  46. package/module/print.html +18 -0
  47. package/module/print.js +127498 -0
  48. package/package.json +29 -0
@@ -0,0 +1,597 @@
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"] = 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 _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _styles = require("@material-ui/core/styles");
29
+
30
+ var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
31
+
32
+ var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
33
+
34
+ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
35
+
36
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
37
+
38
+ var _pick = _interopRequireDefault(require("lodash/pick"));
39
+
40
+ var _throttle = _interopRequireDefault(require("lodash/throttle"));
41
+
42
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
43
+
44
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
45
+
46
+ var _settings = require("@pie-lib/pie-toolbox/code/config-ui/settings");
47
+
48
+ var _response = _interopRequireDefault(require("./response"));
49
+
50
+ var _markupUtils = require("./markupUtils");
51
+
52
+ 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; }
53
+
54
+ 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; }
55
+
56
+ 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); }; }
57
+
58
+ 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; } }
59
+
60
+ var Panel = _configUi.settings.Panel,
61
+ toggle = _configUi.settings.toggle;
62
+
63
+ var createElementFromHTML = function createElementFromHTML(htmlString) {
64
+ var div = document.createElement('div');
65
+ div.innerHTML = htmlString.trim();
66
+ return div;
67
+ };
68
+
69
+ var Design = /*#__PURE__*/function (_React$Component) {
70
+ (0, _inherits2["default"])(Design, _React$Component);
71
+
72
+ var _super = _createSuper(Design);
73
+
74
+ function Design() {
75
+ var _this;
76
+
77
+ (0, _classCallCheck2["default"])(this, Design);
78
+
79
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
80
+ args[_key] = arguments[_key];
81
+ }
82
+
83
+ _this = _super.call.apply(_super, [this].concat(args));
84
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {});
85
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleChange", function (key, value) {
86
+ var _this$props = _this.props,
87
+ onModelChanged = _this$props.onModelChanged,
88
+ model = _this$props.model;
89
+ var updatedModel = (0, _cloneDeep["default"])(model);
90
+ updatedModel[key] = value;
91
+ onModelChanged(updatedModel);
92
+ });
93
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResponseChange", function (response, index) {
94
+ var _this$props2 = _this.props,
95
+ model = _this$props2.model,
96
+ onModelChanged = _this$props2.onModelChanged;
97
+
98
+ var newModel = _objectSpread({}, model);
99
+
100
+ newModel.responses[index] = response;
101
+ onModelChanged(newModel);
102
+ });
103
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangeResponse", function (index, newVal) {
104
+ var _this$props3 = _this.props,
105
+ model = _this$props3.model,
106
+ onModelChanged = _this$props3.onModelChanged;
107
+ var responses = model.responses;
108
+
109
+ if (!responses[index]) {
110
+ responses[index] = [{
111
+ answer: newVal || '',
112
+ id: 'response' + index,
113
+ allowSpaces: true
114
+ }];
115
+ } else {
116
+ responses[index][0].answer = newVal || '';
117
+ }
118
+
119
+ onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
120
+ responses: responses
121
+ }));
122
+ });
123
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResponsesChanged", function (responses) {
124
+ _this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
125
+ responses: responses
126
+ }));
127
+ });
128
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (markup) {
129
+ var _this$props4 = _this.props,
130
+ responses = _this$props4.model.responses,
131
+ onModelChanged = _this$props4.onModelChanged;
132
+ var newResponses = {};
133
+ var domMarkup = createElementFromHTML(markup);
134
+ var responseAreas = domMarkup.querySelectorAll('[data-type="math_templated"]');
135
+ responseAreas.forEach(function (element) {
136
+ var _element$dataset = element.dataset,
137
+ value = _element$dataset.value,
138
+ dataIndex = _element$dataset.index;
139
+
140
+ if (!value) {
141
+ element.dataset.value = "R ".concat(dataIndex);
142
+ }
143
+
144
+ newResponses[dataIndex] = responses[dataIndex] || {
145
+ // TODO: Initialize with customizable defaults
146
+ allowSpaces: true,
147
+ validation: 'symbolic',
148
+ allowTrailingZeros: false,
149
+ ignoreOrder: false,
150
+ answer: '',
151
+ alternates: {}
152
+ };
153
+ element.dataset.index = dataIndex;
154
+ });
155
+ var processedMarkup = (0, _markupUtils.processMarkup)(markup);
156
+
157
+ var callback = function callback() {
158
+ return onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
159
+ slateMarkup: domMarkup.innerHTML,
160
+ responses: newResponses,
161
+ markup: processedMarkup
162
+ }));
163
+ };
164
+
165
+ _this.setState({
166
+ cachedChoices: undefined
167
+ }, callback);
168
+ });
169
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onHandleAreaChange", (0, _throttle["default"])(function (nodes) {
170
+ var _this$props5 = _this.props,
171
+ responses = _this$props5.model.responses,
172
+ onModelChanged = _this$props5.onModelChanged;
173
+ var cachedResponses = _this.state.cachedResponses;
174
+
175
+ if (!nodes) {
176
+ return;
177
+ }
178
+
179
+ var newChoices = responses ? (0, _cloneDeep["default"])(responses) : {};
180
+ var newCachedResponses = cachedResponses ? (0, _cloneDeep["default"])(cachedResponses) : {};
181
+ nodes.forEach(function (node) {
182
+ var keyForNode = node.data.get('index');
183
+
184
+ if (!newChoices[keyForNode] && newCachedResponses[keyForNode]) {
185
+ Object.assign(newChoices, (0, _pick["default"])(newCachedResponses, keyForNode));
186
+
187
+ if (newCachedResponses.hasOwnProperty(keyForNode)) {
188
+ delete newCachedResponses[keyForNode];
189
+ }
190
+ } else {
191
+ Object.assign(newCachedResponses, (0, _pick["default"])(newChoices, keyForNode));
192
+
193
+ if (newChoices.hasOwnProperty(keyForNode)) {
194
+ delete newChoices[keyForNode];
195
+ }
196
+ }
197
+ });
198
+
199
+ var callback = function callback() {
200
+ return onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
201
+ responses: newChoices
202
+ }));
203
+ };
204
+
205
+ _this.setState({
206
+ cachedResponses: newCachedResponses
207
+ }, callback);
208
+ }, 500, {
209
+ trailing: false,
210
+ leading: true
211
+ }));
212
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBlur", function (e) {
213
+ var _ref = e || {},
214
+ relatedTarget = _ref.relatedTarget,
215
+ currentTarget = _ref.currentTarget;
216
+
217
+ function getParentWithRoleTooltip(element) {
218
+ var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
219
+ // only run this max 16 times
220
+ if (!element || depth >= 16) return null;
221
+ var parent = element.offsetParent;
222
+ if (!parent) return null;
223
+
224
+ if (parent.getAttribute('role') === 'tooltip') {
225
+ return parent;
226
+ }
227
+
228
+ return getParentWithRoleTooltip(parent, depth + 1);
229
+ }
230
+
231
+ function getDeepChildDataKeypad(element) {
232
+ var _element$children;
233
+
234
+ var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
235
+ // only run this max 4 times
236
+ if (!element || depth >= 4) return null;
237
+ var child = element === null || element === void 0 ? void 0 : (_element$children = element.children) === null || _element$children === void 0 ? void 0 : _element$children[0];
238
+ if (!child) return null;
239
+
240
+ if (child.attributes && child.attributes['data-keypad']) {
241
+ return child;
242
+ }
243
+
244
+ return getDeepChildDataKeypad(child, depth + 1);
245
+ }
246
+
247
+ var parentWithTooltipRole = getParentWithRoleTooltip(relatedTarget);
248
+ var childWithDataKeypad = parentWithTooltipRole ? getDeepChildDataKeypad(parentWithTooltipRole) : null;
249
+
250
+ if (!relatedTarget || !currentTarget || !(childWithDataKeypad !== null && childWithDataKeypad !== void 0 && childWithDataKeypad.attributes['data-keypad'])) {
251
+ _this.setState({
252
+ activeAnswerBlock: ''
253
+ });
254
+ }
255
+ });
256
+ return _this;
257
+ }
258
+
259
+ (0, _createClass2["default"])(Design, [{
260
+ key: "componentDidMount",
261
+ value: function componentDidMount() {
262
+ var slateMarkup = this.props.model.slateMarkup;
263
+ this.setState({
264
+ markup: slateMarkup
265
+ });
266
+ }
267
+ }, {
268
+ key: "render",
269
+ value: function render() {
270
+ var _this2 = this;
271
+
272
+ var _this$props6 = this.props,
273
+ classes = _this$props6.classes,
274
+ configuration = _this$props6.configuration,
275
+ imageSupport = _this$props6.imageSupport,
276
+ model = _this$props6.model,
277
+ onConfigurationChanged = _this$props6.onConfigurationChanged,
278
+ onModelChanged = _this$props6.onModelChanged,
279
+ uploadSoundSupport = _this$props6.uploadSoundSupport;
280
+
281
+ var _ref2 = configuration || {},
282
+ _ref2$baseInputConfig = _ref2.baseInputConfiguration,
283
+ baseInputConfiguration = _ref2$baseInputConfig === void 0 ? {} : _ref2$baseInputConfig,
284
+ _ref2$contentDimensio = _ref2.contentDimensions,
285
+ contentDimensions = _ref2$contentDimensio === void 0 ? {} : _ref2$contentDimensio,
286
+ _ref2$prompt = _ref2.prompt,
287
+ prompt = _ref2$prompt === void 0 ? {} : _ref2$prompt,
288
+ _ref2$rationale = _ref2.rationale,
289
+ rationale = _ref2$rationale === void 0 ? {} : _ref2$rationale,
290
+ settingsPanelDisabled = _ref2.settingsPanelDisabled,
291
+ _ref2$teacherInstruct = _ref2.teacherInstructions,
292
+ teacherInstructions = _ref2$teacherInstruct === void 0 ? {} : _ref2$teacherInstruct,
293
+ _ref2$language = _ref2.language,
294
+ language = _ref2$language === void 0 ? {} : _ref2$language,
295
+ _ref2$languageChoices = _ref2.languageChoices,
296
+ languageChoices = _ref2$languageChoices === void 0 ? {} : _ref2$languageChoices,
297
+ _ref2$spellCheck = _ref2.spellCheck,
298
+ spellCheck = _ref2$spellCheck === void 0 ? {} : _ref2$spellCheck,
299
+ _ref2$playerSpellChec = _ref2.playerSpellCheck,
300
+ playerSpellCheck = _ref2$playerSpellChec === void 0 ? {} : _ref2$playerSpellChec,
301
+ _ref2$maxImageWidth = _ref2.maxImageWidth,
302
+ maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
303
+ _ref2$maxImageHeight = _ref2.maxImageHeight,
304
+ maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight,
305
+ _ref2$mathMlOptions = _ref2.mathMlOptions,
306
+ mathMlOptions = _ref2$mathMlOptions === void 0 ? {} : _ref2$mathMlOptions,
307
+ _ref2$template = _ref2.template,
308
+ template = _ref2$template === void 0 ? {} : _ref2$template,
309
+ _ref2$editSource = _ref2.editSource,
310
+ editSource = _ref2$editSource === void 0 ? {} : _ref2$editSource,
311
+ _ref2$ignoreOrder = _ref2.ignoreOrder,
312
+ cIgnoreOrder = _ref2$ignoreOrder === void 0 ? {} : _ref2$ignoreOrder,
313
+ _ref2$allowTrailingZe = _ref2.allowTrailingZeros,
314
+ cAllowTrailingZeros = _ref2$allowTrailingZe === void 0 ? {} : _ref2$allowTrailingZe,
315
+ _ref2$partialScoring = _ref2.partialScoring,
316
+ partialScoring = _ref2$partialScoring === void 0 ? {} : _ref2$partialScoring,
317
+ maxResponseAreas = _ref2.maxResponseAreas;
318
+
319
+ var _ref3 = model || {},
320
+ errors = _ref3.errors,
321
+ promptEnabled = _ref3.promptEnabled,
322
+ rationaleEnabled = _ref3.rationaleEnabled,
323
+ spellCheckEnabled = _ref3.spellCheckEnabled,
324
+ teacherInstructionsEnabled = _ref3.teacherInstructionsEnabled,
325
+ toolbarEditorPosition = _ref3.toolbarEditorPosition,
326
+ responses = _ref3.responses,
327
+ equationEditor = _ref3.equationEditor;
328
+
329
+ var _ref4 = errors || {},
330
+ _ref4$choices = _ref4.choices,
331
+ choicesErrors = _ref4$choices === void 0 ? {} : _ref4$choices,
332
+ promptError = _ref4.prompt,
333
+ rationaleError = _ref4.rationale,
334
+ responseAreasError = _ref4.responseAreas,
335
+ teacherInstructionsError = _ref4.teacherInstructions,
336
+ responsesErrors = _ref4.responses;
337
+
338
+ var panelSettings = {
339
+ 'language.enabled': language.settings && toggle(language.label, true),
340
+ language: language.settings && language.enabled && (0, _settings.dropdown)(languageChoices.label, languageChoices.options)
341
+ };
342
+ var panelProperties = {
343
+ teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
344
+ rationaleEnabled: rationale.settings && toggle(rationale.label),
345
+ promptEnabled: prompt.settings && toggle(prompt.label),
346
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
347
+ playerSpellCheckEnabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),
348
+ 'editSource.enabled': (editSource === null || editSource === void 0 ? void 0 : editSource.settings) && toggle(editSource.label, true),
349
+ partialScoring: partialScoring.settings && toggle(partialScoring.label)
350
+ };
351
+ var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
352
+ var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
353
+ var toolbarOpts = {
354
+ position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
355
+ };
356
+
357
+ var getPluginProps = function getPluginProps() {
358
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
359
+ var baseInputConfiguration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
360
+ return _objectSpread(_objectSpread({}, baseInputConfiguration), props);
361
+ };
362
+
363
+ return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
364
+ dimensions: contentDimensions,
365
+ hideSettings: settingsPanelDisabled,
366
+ settings: /*#__PURE__*/_react["default"].createElement(Panel, {
367
+ model: model,
368
+ configuration: configuration,
369
+ onChangeModel: function onChangeModel(updatedModel) {
370
+ return onModelChanged(updatedModel);
371
+ },
372
+ onChangeConfiguration: onConfigurationChanged,
373
+ groups: {
374
+ Settings: panelSettings,
375
+ Properties: panelProperties
376
+ }
377
+ })
378
+ }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
379
+ label: teacherInstructions.label,
380
+ className: classes.promptHolder
381
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
382
+ className: classes.prompt,
383
+ markup: model.teacherInstructions || '',
384
+ onChange: function onChange(value) {
385
+ return _this2.handleChange('teacherInstructions', value);
386
+ },
387
+ imageSupport: imageSupport,
388
+ nonEmpty: false,
389
+ error: teacherInstructionsError,
390
+ toolbarOpts: toolbarOpts,
391
+ pluginProps: getPluginProps(teacherInstructions === null || teacherInstructions === void 0 ? void 0 : teacherInstructions.inputConfiguration, baseInputConfiguration),
392
+ spellCheck: spellCheckEnabled,
393
+ maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
394
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
395
+ uploadSoundSupport: uploadSoundSupport,
396
+ languageCharactersProps: [{
397
+ language: 'spanish'
398
+ }, {
399
+ language: 'special'
400
+ }],
401
+ mathMlOptions: mathMlOptions
402
+ }), teacherInstructionsError && /*#__PURE__*/_react["default"].createElement("div", {
403
+ className: classes.errorText
404
+ }, teacherInstructionsError)), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
405
+ label: prompt.label,
406
+ className: classes.promptHolder
407
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
408
+ className: classes.prompt,
409
+ markup: model.prompt,
410
+ onChange: function onChange(value) {
411
+ return _this2.handleChange('prompt', value);
412
+ },
413
+ imageSupport: imageSupport,
414
+ nonEmpty: false,
415
+ disableUnderline: true,
416
+ error: promptError,
417
+ toolbarOpts: toolbarOpts,
418
+ pluginProps: getPluginProps(teacherInstructions === null || teacherInstructions === void 0 ? void 0 : teacherInstructions.inputConfiguration, baseInputConfiguration),
419
+ spellCheck: spellCheckEnabled,
420
+ maxImageWidth: defaultImageMaxWidth,
421
+ maxImageHeight: defaultImageMaxHeight,
422
+ uploadSoundSupport: uploadSoundSupport,
423
+ languageCharactersProps: [{
424
+ language: 'spanish'
425
+ }, {
426
+ language: 'special'
427
+ }],
428
+ mathMlOptions: mathMlOptions
429
+ }), promptError && /*#__PURE__*/_react["default"].createElement("div", {
430
+ className: classes.errorText
431
+ }, promptError)), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
432
+ className: classes.title
433
+ }, "Response Template"), /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
434
+ activePlugins: _editableHtml.ALL_PLUGINS,
435
+ toolbarOpts: {
436
+ position: 'top'
437
+ },
438
+ spellCheck: spellCheckEnabled,
439
+ pluginProps: getPluginProps(template === null || template === void 0 ? void 0 : template.inputConfiguration, baseInputConfiguration),
440
+ responseAreaProps: {
441
+ type: 'math-templated',
442
+ respAreaToolbar: null,
443
+ error: function error() {
444
+ return choicesErrors;
445
+ },
446
+ onHandleAreaChange: this.onHandleAreaChange,
447
+ maxResponseAreas: maxResponseAreas
448
+ },
449
+ className: classes.markup,
450
+ markup: model.slateMarkup,
451
+ onChange: this.onChange,
452
+ imageSupport: imageSupport,
453
+ disableImageAlignmentButtons: true,
454
+ onBlur: this.onBlur,
455
+ disabled: false,
456
+ highlightShape: false,
457
+ error: responseAreasError,
458
+ uploadSoundSupport: uploadSoundSupport,
459
+ languageCharactersProps: [{
460
+ language: 'spanish'
461
+ }, {
462
+ language: 'special'
463
+ }],
464
+ mathMlOptions: mathMlOptions
465
+ }), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
466
+ className: classes.title
467
+ }, "Define Response"), /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
468
+ label: "Response Template Equation Editor",
469
+ className: classes.selectContainer
470
+ }, /*#__PURE__*/_react["default"].createElement(_Select["default"], {
471
+ className: classes.select,
472
+ onChange: function onChange(event) {
473
+ return _this2.handleChange('equationEditor', event.target.value);
474
+ },
475
+ value: equationEditor
476
+ }, /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
477
+ value: "non-negative-integers"
478
+ }, "Numeric - Non-Negative Integers"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
479
+ value: "integers"
480
+ }, "Numeric - Integers"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
481
+ value: "decimals"
482
+ }, "Numeric - Decimals"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
483
+ value: "fractions"
484
+ }, "Numeric - Fractions"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
485
+ value: 1
486
+ }, "Grade 1 - 2"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
487
+ value: 3
488
+ }, "Grade 3 - 5"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
489
+ value: 6
490
+ }, "Grade 6 - 7"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
491
+ value: 8
492
+ }, "Grade 8 - HS"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
493
+ value: 'geometry'
494
+ }, "Geometry"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
495
+ value: 'advanced-algebra'
496
+ }, "Advanced Algebra"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
497
+ value: 'statistics'
498
+ }, "Statistics"), /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
499
+ value: 'item-authoring'
500
+ }, "Item Authoring"))), Object.keys(responses || {}).map(function (responseKey, idx) {
501
+ var response = responses[responseKey];
502
+ return /*#__PURE__*/_react["default"].createElement(_response["default"], {
503
+ key: responseKey,
504
+ responseKey: responseKey,
505
+ mode: equationEditor,
506
+ response: response,
507
+ onResponseChange: _this2.onResponseChange,
508
+ index: idx,
509
+ cIgnoreOrder: cIgnoreOrder,
510
+ cAllowTrailingZeros: cAllowTrailingZeros,
511
+ error: responsesErrors && responsesErrors[idx]
512
+ });
513
+ }), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
514
+ label: rationale.label,
515
+ className: classes.promptHolder
516
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
517
+ className: classes.prompt,
518
+ markup: model.rationale || '',
519
+ onChange: function onChange(value) {
520
+ return _this2.handleChange('rationale', value);
521
+ },
522
+ imageSupport: imageSupport,
523
+ nonEmpty: false,
524
+ error: rationaleError,
525
+ toolbarOpts: toolbarOpts,
526
+ pluginProps: getPluginProps(rationale === null || rationale === void 0 ? void 0 : rationale.inputConfiguration, _objectSpread(_objectSpread({}, baseInputConfiguration), {}, {
527
+ math: {
528
+ controlledKeypadMode: false
529
+ }
530
+ })),
531
+ spellCheck: spellCheckEnabled,
532
+ maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
533
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
534
+ uploadSoundSupport: uploadSoundSupport,
535
+ languageCharactersProps: [{
536
+ language: 'spanish'
537
+ }, {
538
+ language: 'special'
539
+ }],
540
+ mathMlOptions: mathMlOptions
541
+ }), rationaleError && /*#__PURE__*/_react["default"].createElement("div", {
542
+ className: classes.errorText
543
+ }, rationaleError)));
544
+ }
545
+ }]);
546
+ return Design;
547
+ }(_react["default"].Component);
548
+
549
+ (0, _defineProperty2["default"])(Design, "propTypes", {
550
+ model: _propTypes["default"].object.isRequired,
551
+ configuration: _propTypes["default"].object.isRequired,
552
+ classes: _propTypes["default"].object.isRequired,
553
+ onModelChanged: _propTypes["default"].func.isRequired,
554
+ onConfigurationChanged: _propTypes["default"].func.isRequired,
555
+ imageSupport: _propTypes["default"].shape({
556
+ add: _propTypes["default"].func.isRequired,
557
+ "delete": _propTypes["default"].func.isRequired
558
+ }),
559
+ uploadSoundSupport: _propTypes["default"].object
560
+ });
561
+
562
+ var _default = (0, _styles.withStyles)(function (theme) {
563
+ return {
564
+ promptHolder: {
565
+ width: '100%',
566
+ paddingTop: theme.spacing.unit * 2,
567
+ marginBottom: theme.spacing.unit * 2
568
+ },
569
+ prompt: {
570
+ width: '100%'
571
+ },
572
+ errorText: {
573
+ color: theme.palette.error.main,
574
+ fontSize: '0.75rem',
575
+ marginTop: theme.spacing.unit
576
+ },
577
+ markup: {
578
+ width: '100%',
579
+ marginTop: theme.spacing.unit * 2,
580
+ marginBottom: theme.spacing.unit * 3
581
+ },
582
+ selectContainer: {
583
+ width: '100%',
584
+ marginTop: theme.spacing.unit * 2
585
+ },
586
+ select: {
587
+ width: '100%'
588
+ },
589
+ title: {
590
+ fontSize: theme.typography.fontSize * 1.25,
591
+ fontWeight: 'bold'
592
+ }
593
+ };
594
+ })(Design);
595
+
596
+ exports["default"] = _default;
597
+ //# sourceMappingURL=design.js.map