@pie-element/math-inline 10.3.4-next.0 → 11.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/configure/lib/configure.js +161 -239
  2. package/configure/lib/configure.js.map +1 -1
  3. package/configure/lib/defaults.js +5 -8
  4. package/configure/lib/defaults.js.map +1 -1
  5. package/configure/lib/general-config-block.js +445 -561
  6. package/configure/lib/general-config-block.js.map +1 -1
  7. package/configure/lib/index.js +110 -175
  8. package/configure/lib/index.js.map +1 -1
  9. package/configure/lib/response.js +330 -388
  10. package/configure/lib/response.js.map +1 -1
  11. package/configure/lib/utils.js +15 -30
  12. package/configure/lib/utils.js.map +1 -1
  13. package/configure/package.json +13 -11
  14. package/controller/lib/defaults.js +5 -8
  15. package/controller/lib/defaults.js.map +1 -1
  16. package/controller/lib/index.js +188 -277
  17. package/controller/lib/index.js.map +1 -1
  18. package/controller/lib/utils.js +1 -2
  19. package/controller/lib/utils.js.map +1 -1
  20. package/controller/package.json +5 -5
  21. package/lib/index.js +70 -123
  22. package/lib/index.js.map +1 -1
  23. package/lib/main.js +783 -890
  24. package/lib/main.js.map +1 -1
  25. package/lib/print.js +42 -83
  26. package/lib/print.js.map +1 -1
  27. package/lib/simple-question-block.js +125 -162
  28. package/lib/simple-question-block.js.map +1 -1
  29. package/lib/utils.js +1 -2
  30. package/lib/utils.js.map +1 -1
  31. package/package.json +15 -16
  32. package/module/configure.js +0 -1
  33. package/module/controller.js +0 -4278
  34. package/module/demo.js +0 -66
  35. package/module/element.js +0 -1
  36. package/module/index.html +0 -21
  37. package/module/manifest.json +0 -18
  38. package/module/print-demo.js +0 -104
  39. package/module/print.html +0 -18
  40. package/module/print.js +0 -1
@@ -1,306 +1,248 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
4
  Object.defineProperty(exports, "__esModule", {
8
5
  value: true
9
6
  });
10
- exports["default"] = void 0;
11
-
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
7
+ exports.default = void 0;
26
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
9
  var React = _interopRequireWildcard(require("react"));
29
-
30
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
11
  var _classnames = _interopRequireDefault(require("classnames"));
33
-
34
12
  var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
35
-
36
13
  var _configUi = require("@pie-lib/config-ui");
37
-
38
- var _styles = require("@material-ui/core/styles");
39
-
40
- var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
41
-
42
- var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
43
-
44
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
45
-
14
+ var _styles = require("@mui/material/styles");
15
+ var _InputLabel = _interopRequireDefault(require("@mui/material/InputLabel"));
16
+ var _Select = _interopRequireDefault(require("@mui/material/Select"));
17
+ var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
46
18
  var _response = _interopRequireDefault(require("./response"));
47
-
48
19
  var _mathToolbar = require("@pie-lib/math-toolbar");
49
-
50
20
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
51
-
52
21
  var _utils = require("./utils");
53
-
54
22
  var _mathquill = _interopRequireDefault(require("@pie-framework/mathquill"));
55
-
56
- var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
57
-
58
- var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
59
-
60
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
61
-
62
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
63
-
64
- 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; }
65
-
66
- 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; }
67
-
68
- 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); }; }
69
-
70
- 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; } }
71
-
72
- var registered = false;
73
-
74
- var styles = function styles(theme) {
23
+ var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
24
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
25
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
26
+ let registered = false;
27
+
28
+ // Helper function to get class names for HTML string generation
29
+ const getBlockClassNames = () => {
30
+ // These will be generated by styled components, but we need them as strings for HTML
31
+ // We'll use a simple approach: generate unique class names
75
32
  return {
76
- container: {
77
- display: 'flex',
78
- flexDirection: 'column'
79
- },
80
- templateTitle: {
81
- fontSize: '0.85rem'
82
- },
83
- title: {
84
- fontSize: '1.1rem'
85
- },
86
- addResponseButton: {
87
- border: "1px solid ".concat(theme.palette.grey['A100']),
88
- "float": 'right',
89
- width: '150px'
90
- },
91
- flexContainer: {
92
- display: 'flex',
93
- alignItems: 'center',
94
- justifyContent: 'space-between'
95
- },
96
- selectContainer: {
97
- flex: 'initial',
98
- width: '40%',
99
- marginTop: theme.spacing.unit * 2,
100
- marginBottom: theme.spacing.unit * 2
101
- },
102
- responseTemplate: {
103
- display: 'flex',
104
- flexDirection: 'column'
105
- },
106
- responseEditor: {
107
- display: 'flex',
108
- justifyContent: 'center',
109
- width: '100%',
110
- // minWidth: '500px',
111
- maxWidth: 'inherit',
112
- height: 'auto',
113
- minHeight: '130px',
114
- textAlign: 'left',
115
- padding: theme.spacing.unit
116
- },
117
- promptHolder: {
118
- width: '100%',
119
- paddingTop: theme.spacing.unit * 2,
120
- marginBottom: theme.spacing.unit * 2
121
- },
122
- blockContainer: {
123
- margin: theme.spacing.unit,
124
- display: 'inline-flex',
125
- border: '2px solid grey'
126
- },
127
- blockContainerGeneric: {
128
- margin: theme.spacing.unit / 2
129
- },
130
- blockResponse: {
131
- flex: 2,
132
- color: 'grey',
133
- background: theme.palette.grey['A100'],
134
- fontSize: '0.8rem',
135
- padding: theme.spacing.unit / 2,
136
- display: 'flex',
137
- alignItems: 'center',
138
- justifyContent: 'center',
139
- borderRight: '2px solid grey'
140
- },
141
- blockResponseGeneric: {
142
- borderRight: 0
143
- },
144
- blockMath: {
145
- color: theme.palette.grey[400],
146
- padding: theme.spacing.unit / 2,
147
- display: 'flex',
148
- alignItems: 'center',
149
- justifyContent: 'center',
150
- flex: 8,
151
- '& > .mq-math-mode': {
152
- '& > .mq-hasCursor': {
153
- '& > .mq-cursor': {
154
- display: 'none'
155
- }
156
- }
157
- }
158
- },
159
- tooltip: {
160
- fontSize: theme.typography.fontSize - 2,
161
- whiteSpace: 'pre-wrap'
162
- },
163
- errorText: {
164
- fontSize: theme.typography.fontSize - 2,
165
- color: theme.palette.error.main,
166
- paddingTop: theme.spacing.unit
167
- },
168
- advancedResponse: {
169
- marginBottom: theme.spacing.unit * 2.5
170
- }
33
+ blockContainer: 'block-container',
34
+ blockContainerGeneric: 'block-container-generic',
35
+ blockResponse: 'block-response',
36
+ blockResponseGeneric: 'block-response-generic'
171
37
  };
172
38
  };
173
-
174
- var REGEX = /{{response}}/gm;
175
- var TEMPORARY_RESPONSE_FIELD = /\\%response\\%/gm;
176
- var ANSWER_BLOCK_REGEX = /\\embed\{answerBlock\}\[r\d*\]/g;
177
- var NEWLINE_BLOCK = /\\embed\{newLine\}\[\]/g;
178
- var NEWLINE_LATEX = /\\newline/g;
179
-
39
+ const Container = (0, _styles.styled)('div')({
40
+ display: 'flex',
41
+ flexDirection: 'column'
42
+ });
43
+ const TemplateTitle = (0, _styles.styled)(_InputLabel.default)({
44
+ fontSize: '0.85rem'
45
+ });
46
+ const Title = (0, _styles.styled)('div')({
47
+ fontSize: '1.1rem'
48
+ });
49
+ const FlexContainer = (0, _styles.styled)('div')({
50
+ display: 'flex',
51
+ alignItems: 'center',
52
+ justifyContent: 'space-between'
53
+ });
54
+ const SelectContainer = (0, _styles.styled)(_configUi.InputContainer)(({
55
+ theme
56
+ }) => ({
57
+ flex: 'initial',
58
+ width: '40%',
59
+ marginTop: theme.spacing(2),
60
+ marginBottom: theme.spacing(2),
61
+ '& > *:not(label)': {
62
+ marginTop: theme.spacing(1)
63
+ }
64
+ }));
65
+ const ResponseTemplate = (0, _styles.styled)('div')({
66
+ display: 'flex',
67
+ flexDirection: 'column'
68
+ });
69
+ const StyledTooltip = (0, _styles.styled)(_Tooltip.default)(({
70
+ theme
71
+ }) => ({
72
+ '& .MuiTooltip-tooltip': {
73
+ fontSize: theme.typography.fontSize - 2,
74
+ whiteSpace: 'pre-wrap'
75
+ }
76
+ }));
77
+ const ErrorText = (0, _styles.styled)('div')(({
78
+ theme
79
+ }) => ({
80
+ fontSize: theme.typography.fontSize - 2,
81
+ color: theme.palette.error.main,
82
+ paddingTop: theme.spacing(1)
83
+ }));
84
+ const PromptHolder = (0, _styles.styled)(_configUi.InputContainer)(({
85
+ theme
86
+ }) => ({
87
+ width: '100%',
88
+ paddingTop: theme.spacing(2),
89
+ marginBottom: theme.spacing(2)
90
+ }));
91
+ const AdvancedResponse = (0, _styles.styled)('div')(({
92
+ theme
93
+ }) => ({
94
+ marginBottom: theme.spacing(2.5)
95
+ }));
96
+
97
+ // CSS for block classes used in HTML string generation
98
+ // These need to be injected as global styles since they're used in dynamically generated HTML
99
+ if (typeof document !== 'undefined') {
100
+ const styleId = 'math-inline-block-styles';
101
+ if (!document.getElementById(styleId)) {
102
+ const style = document.createElement('style');
103
+ style.id = styleId;
104
+ style.textContent = `
105
+ .block-container {
106
+ margin: 8px;
107
+ display: inline-flex;
108
+ border: 2px solid grey;
109
+ }
110
+ .block-container-generic {
111
+ margin: 4px;
112
+ }
113
+ .block-response {
114
+ flex: 2;
115
+ color: grey;
116
+ background: #f5f5f5;
117
+ font-size: 0.8rem;
118
+ padding: 4px;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ border-right: 2px solid grey;
123
+ }
124
+ .block-response-generic {
125
+ border-right: 0;
126
+ }
127
+ .response-editor {
128
+ display: flex;
129
+ justify-content: center;
130
+ width: 100%;
131
+ max-width: inherit;
132
+ height: auto;
133
+ min-height: 130px;
134
+ text-align: left;
135
+ padding: 8px;
136
+ }
137
+ `;
138
+ document.head.appendChild(style);
139
+ }
140
+ }
141
+ const REGEX = /{{response}}/gm;
142
+ const TEMPORARY_RESPONSE_FIELD = /\\%response\\%/gm;
143
+ const ANSWER_BLOCK_REGEX = /\\embed\{answerBlock\}\[r\d*\]/g;
144
+ const NEWLINE_BLOCK = /\\embed\{newLine\}\[\]/g;
145
+ const NEWLINE_LATEX = /\\newline/g;
180
146
  function prepareForStatic(expression) {
181
147
  if (expression) {
182
- var answerBlocks = 1; // assume one at least
148
+ let answerBlocks = 1; // assume one at least
183
149
 
184
- return expression.replace(REGEX, function () {
185
- return "\\embed{answerBlock}[r".concat(answerBlocks++, "]");
186
- }).replace(NEWLINE_LATEX, '\\embed{newLine}[]');
150
+ return expression.replace(REGEX, () => `\\embed{answerBlock}[r${answerBlocks++}]`).replace(NEWLINE_LATEX, '\\embed{newLine}[]');
187
151
  }
188
152
  }
189
-
190
153
  function prepareForModel(expression) {
191
154
  if (expression) {
192
- return expression.replace(ANSWER_BLOCK_REGEX, function () {
193
- return '{{response}}';
194
- }).replace(TEMPORARY_RESPONSE_FIELD, function () {
195
- return '{{response}}';
196
- }).replace(NEWLINE_BLOCK, function () {
197
- return '\\newline';
198
- });
155
+ return expression.replace(ANSWER_BLOCK_REGEX, () => '{{response}}').replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}').replace(NEWLINE_BLOCK, () => '\\newline');
199
156
  }
200
157
  }
201
-
202
- var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
203
- (0, _inherits2["default"])(GeneralConfigBlock, _React$Component);
204
-
205
- var _super = _createSuper(GeneralConfigBlock);
206
-
207
- function GeneralConfigBlock(props) {
208
- var _this;
209
-
210
- (0, _classCallCheck2["default"])(this, GeneralConfigBlock);
211
- _this = _super.call(this, props);
212
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (name) {
213
- return function (evtOrValue) {
214
- var _this$props = _this.props,
215
- model = _this$props.model,
216
- onChange = _this$props.onChange;
217
-
218
- var newModel = _objectSpread({}, model);
219
-
220
- if ((0, _typeof2["default"])(evtOrValue) === 'object') {
221
- newModel[name] = evtOrValue.target.value;
222
- } else {
223
- newModel[name] = evtOrValue;
224
- }
225
-
226
- if (name === 'expression') {
227
- newModel[name] = prepareForModel(evtOrValue);
228
- }
229
-
230
- onChange(newModel);
158
+ class GeneralConfigBlock extends React.Component {
159
+ constructor(props) {
160
+ super(props);
161
+ (0, _defineProperty2.default)(this, "onChange", name => evtOrValue => {
162
+ const {
163
+ model,
164
+ onChange
165
+ } = this.props;
166
+ const newModel = {
167
+ ...model
231
168
  };
169
+ if (typeof evtOrValue === 'object') {
170
+ newModel[name] = evtOrValue.target.value;
171
+ } else {
172
+ newModel[name] = evtOrValue;
173
+ }
174
+ if (name === 'expression') {
175
+ newModel[name] = prepareForModel(evtOrValue);
176
+ }
177
+ onChange(newModel);
232
178
  });
233
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDone", function () {
234
- _this.setState({
179
+ (0, _defineProperty2.default)(this, "onDone", () => {
180
+ this.setState({
235
181
  showKeypad: false
236
182
  });
237
183
  });
238
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocus", function () {
239
- _this.setState({
184
+ (0, _defineProperty2.default)(this, "onFocus", () => {
185
+ this.setState({
240
186
  showKeypad: true
241
187
  });
242
188
  });
243
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPromptFocus", function () {
244
- _this.setState({
189
+ (0, _defineProperty2.default)(this, "onPromptFocus", () => {
190
+ this.setState({
245
191
  showKeypad: false
246
192
  });
247
193
  });
248
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAnswerBlockDomUpdate", function () {
249
- var model = _this.props.model;
250
- var responseAreas = {};
251
-
194
+ (0, _defineProperty2.default)(this, "handleAnswerBlockDomUpdate", () => {
195
+ const {
196
+ model
197
+ } = this.props;
198
+ const responseAreas = {};
252
199
  if (model && model.expression) {
253
- var answerBlocks = 1; // assume one at least
200
+ let answerBlocks = 1; // assume one at least
254
201
  // build out local state model using responses declared in expression
255
202
 
256
- model.expression.replace(REGEX, function () {
257
- responseAreas["r".concat(answerBlocks++)] = {
203
+ model.expression.replace(REGEX, () => {
204
+ responseAreas[`r${answerBlocks++}`] = {
258
205
  value: ''
259
206
  };
260
207
  });
261
208
  }
262
-
263
- if (!(0, _isEqual["default"])(responseAreas, _this.state.responseAreas)) {
264
- _this.setState({
265
- responseAreas: responseAreas
266
- }, function () {
267
- if (_this.root && Object.keys(responseAreas).length) {
268
- Object.keys(responseAreas).forEach(function (responseId, idx) {
269
- var el = _this.root.querySelector("#".concat(responseId));
270
-
271
- var indexEl = _this.root.querySelector("#".concat(responseId, "Index"));
272
-
209
+ if (!(0, _isEqual.default)(responseAreas, this.state.responseAreas)) {
210
+ this.setState({
211
+ responseAreas
212
+ }, () => {
213
+ if (this.root && Object.keys(responseAreas).length) {
214
+ Object.keys(responseAreas).forEach((responseId, idx) => {
215
+ const el = this.root.querySelector(`#${responseId}`);
216
+ const indexEl = this.root.querySelector(`#${responseId}Index`);
273
217
  if (el) {
274
218
  // const MathQuill = require('@pie-framework/mathquill');
275
- var MQ = _mathquill["default"].getInterface(2); // We no longer have individual answers, so we cannot set text content of blocks
219
+ let MQ = _mathquill.default.getInterface(2);
220
+ // We no longer have individual answers, so we cannot set text content of blocks
276
221
  // el.textContent = response.answer;
277
-
278
-
279
222
  MQ.StaticMath(el);
280
- indexEl.textContent = "R".concat(idx + 1);
223
+ indexEl.textContent = `R${idx + 1}`;
281
224
  }
282
225
  });
283
226
  }
284
227
  });
285
228
  }
286
229
  });
287
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAddResponse", function () {
288
- var _this$props2 = _this.props,
289
- model = _this$props2.model,
290
- onChange = _this$props2.onChange;
291
- var responseIdCounter = _this.state.responseIdCounter;
292
-
293
- var newModel = _objectSpread({}, model);
294
-
295
- var newCounter = responseIdCounter;
296
-
297
- while (model.responses.find(function (response) {
298
- return response.id === newCounter;
299
- })) {
230
+ (0, _defineProperty2.default)(this, "onAddResponse", () => {
231
+ const {
232
+ model,
233
+ onChange
234
+ } = this.props;
235
+ const {
236
+ responseIdCounter
237
+ } = this.state;
238
+ const newModel = {
239
+ ...model
240
+ };
241
+ let newCounter = responseIdCounter;
242
+ while (model.responses.find(response => response.id === newCounter)) {
300
243
  newCounter++;
301
244
  }
302
-
303
- var response = {
245
+ const response = {
304
246
  id: newCounter,
305
247
  validation: 'literal',
306
248
  answer: '',
@@ -308,345 +250,287 @@ var GeneralConfigBlock = /*#__PURE__*/function (_React$Component) {
308
250
  };
309
251
  newModel.responses = newModel.responses.concat(response);
310
252
  onChange(newModel);
311
-
312
- _this.setState({
253
+ this.setState({
313
254
  responseIdCounter: response.id
314
255
  });
315
256
  });
316
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResponseChange", function (response, index) {
317
- var _this$props3 = _this.props,
318
- model = _this$props3.model,
319
- onChange = _this$props3.onChange;
320
-
321
- var newModel = _objectSpread({}, model);
322
-
257
+ (0, _defineProperty2.default)(this, "onResponseChange", (response, index) => {
258
+ const {
259
+ model,
260
+ onChange
261
+ } = this.props;
262
+ const newModel = {
263
+ ...model
264
+ };
323
265
  newModel.responses[index] = response;
324
266
  onChange(newModel);
325
267
  });
326
- var _responseAreas = {};
327
-
268
+ const _responseAreas = {};
328
269
  if (props.model && props.model.expression) {
329
- var answerBlocks = 1; // assume one at least
270
+ let answerBlocks = 1; // assume one at least
330
271
  // build out local state model using responses declared in expression
331
272
 
332
- props.model.expression.replace(REGEX, function () {
333
- _responseAreas["r".concat(answerBlocks++)] = {
273
+ props.model.expression.replace(REGEX, () => {
274
+ _responseAreas[`r${answerBlocks++}`] = {
334
275
  value: ''
335
276
  };
336
277
  });
337
278
  }
338
-
339
- _this.state = {
279
+ this.state = {
340
280
  showKeypad: false,
341
281
  responseAreas: _responseAreas,
342
282
  responseIdCounter: Object.keys(_responseAreas).length
343
283
  };
344
- return _this;
345
284
  }
346
-
347
- (0, _createClass2["default"])(GeneralConfigBlock, [{
348
- key: "UNSAFE_componentWillMount",
349
- value: function UNSAFE_componentWillMount() {
350
- var classes = this.props.classes;
351
-
352
- if (typeof window !== 'undefined') {
353
- // const MathQuill = require('@pie-framework/mathquill');
354
- var MQ = _mathquill["default"].getInterface(2);
355
-
356
- if (!registered) {
357
- MQ.registerEmbed('answerBlock', function (data) {
358
- // not used until we implement individual answer tracking
359
- // const individualAnswerBlock = `<div class="${classes.blockContainer}">
360
- // <div class="${classes.blockResponse}" id="${data}Index">R</div>
361
- // <div class="${classes.blockMath}">
362
- // <span id="${data}"></span>
363
- // </div>
364
- // </div>`;
365
- var genericAnswerBlock = "<div class=\"".concat((0, _classnames["default"])(classes.blockContainer, classes.blockContainerGeneric), "\">\n <div class=\"").concat((0, _classnames["default"])(classes.blockResponse, classes.blockResponseGeneric), "\" id=\"").concat(data, "Index\">Response</div>\n </div>");
366
- return {
367
- htmlString: genericAnswerBlock,
368
- text: function text() {
369
- return 'text';
370
- },
371
- latex: function latex() {
372
- return "\\embed{answerBlock}[".concat(data, "]");
373
- }
374
- };
375
- });
376
- registered = true;
377
- }
285
+ UNSAFE_componentWillMount() {
286
+ if (typeof window !== 'undefined') {
287
+ // const MathQuill = require('@pie-framework/mathquill');
288
+ let MQ = _mathquill.default.getInterface(2);
289
+ if (!registered) {
290
+ MQ.registerEmbed('answerBlock', data => {
291
+ const classNames = getBlockClassNames();
292
+ const genericAnswerBlock = `<div class="${(0, _classnames.default)(classNames.blockContainer, classNames.blockContainerGeneric)}">
293
+ <div class="${(0, _classnames.default)(classNames.blockResponse, classNames.blockResponseGeneric)}" id="${data}Index">Response</div>
294
+ </div>`;
295
+ return {
296
+ htmlString: genericAnswerBlock,
297
+ text: () => 'text',
298
+ latex: () => `\\embed{answerBlock}[${data}]`
299
+ };
300
+ });
301
+ registered = true;
378
302
  }
379
303
  }
380
- }, {
381
- key: "componentDidMount",
382
- value: function componentDidMount() {
383
- this.handleAnswerBlockDomUpdate();
384
- }
385
- }, {
386
- key: "componentDidUpdate",
387
- value: function componentDidUpdate() {
388
- this.handleAnswerBlockDomUpdate();
389
- }
390
- }, {
391
- key: "render",
392
- value: function render() {
393
- var _this2 = this;
394
-
395
- var _this$props4 = this.props,
396
- classes = _this$props4.classes,
397
- model = _this$props4.model,
398
- imageSupport = _this$props4.imageSupport,
399
- uploadSoundSupport = _this$props4.uploadSoundSupport,
400
- configuration = _this$props4.configuration,
401
- promptEnabled = _this$props4.promptEnabled,
402
- rationaleEnabled = _this$props4.rationaleEnabled,
403
- toolbarOpts = _this$props4.toolbarOpts;
404
- var showKeypad = this.state.showKeypad;
405
- var prompt = model.prompt,
406
- expression = model.expression,
407
- equationEditor = model.equationEditor,
408
- _model$promptEquation = model.promptEquationEditor,
409
- promptEquationEditor = _model$promptEquation === void 0 ? '8' : _model$promptEquation,
410
- responses = model.responses,
411
- responseType = model.responseType,
412
- rationale = model.rationale,
413
- spellCheckEnabled = model.spellCheckEnabled,
414
- _model$errors = model.errors,
415
- errors = _model$errors === void 0 ? {} : _model$errors;
416
-
417
- var _ref = configuration || {},
418
- _ref$baseInputConfigu = _ref.baseInputConfiguration,
419
- baseInputConfiguration = _ref$baseInputConfigu === void 0 ? {} : _ref$baseInputConfigu,
420
- _ref$rationale = _ref.rationale,
421
- cRationale = _ref$rationale === void 0 ? {} : _ref$rationale,
422
- _ref$prompt = _ref.prompt,
423
- cPrompt = _ref$prompt === void 0 ? {} : _ref$prompt,
424
- _ref$ignoreOrder = _ref.ignoreOrder,
425
- cIgnoreOrder = _ref$ignoreOrder === void 0 ? {} : _ref$ignoreOrder,
426
- _ref$allowTrailingZer = _ref.allowTrailingZeros,
427
- cAllowTrailingZeros = _ref$allowTrailingZer === void 0 ? {} : _ref$allowTrailingZer,
428
- maxResponseAreas = _ref.maxResponseAreas,
429
- _ref$maxImageWidth = _ref.maxImageWidth,
430
- maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
431
- _ref$maxImageHeight = _ref.maxImageHeight,
432
- maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
433
- _ref$mathMlOptions = _ref.mathMlOptions,
434
- mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions;
435
-
436
- var validationMessage = (0, _utils.generateValidationMessage)(configuration, model);
437
- var promptError = errors.prompt,
438
- rationaleError = errors.rationale,
439
- responsesErrors = errors.responsesErrors,
440
- responseAreasError = errors.responseAreasError;
441
- var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
442
- var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
443
- var classNames = {
444
- editor: classes.responseEditor,
445
- mathToolbar: classes.mathToolbar
446
- };
447
- var responsesToUse = responseType === _utils.ResponseTypes.advanced ? responses : responses.slice(0, 1);
448
- var validationTooltip = /*#__PURE__*/React.createElement(_Tooltip["default"], {
449
- classes: {
450
- tooltip: classes.tooltip
451
- },
452
- disableFocusListener: true,
453
- disableTouchListener: true,
454
- placement: 'right',
455
- title: validationMessage
456
- }, /*#__PURE__*/React.createElement(_Info["default"], {
457
- fontSize: 'small',
458
- color: 'primary',
459
- style: {
460
- marginLeft: '5px'
304
+ }
305
+ componentDidMount() {
306
+ this.handleAnswerBlockDomUpdate();
307
+ }
308
+ componentDidUpdate() {
309
+ this.handleAnswerBlockDomUpdate();
310
+ }
311
+ render() {
312
+ const {
313
+ model,
314
+ imageSupport,
315
+ uploadSoundSupport,
316
+ configuration,
317
+ promptEnabled,
318
+ rationaleEnabled,
319
+ toolbarOpts
320
+ } = this.props;
321
+ const {
322
+ showKeypad
323
+ } = this.state;
324
+ const {
325
+ prompt,
326
+ expression,
327
+ equationEditor,
328
+ promptEquationEditor = '8',
329
+ responses,
330
+ responseType,
331
+ rationale,
332
+ spellCheckEnabled,
333
+ errors = {}
334
+ } = model;
335
+ const {
336
+ baseInputConfiguration = {},
337
+ rationale: cRationale = {},
338
+ prompt: cPrompt = {},
339
+ ignoreOrder: cIgnoreOrder = {},
340
+ allowTrailingZeros: cAllowTrailingZeros = {},
341
+ maxResponseAreas,
342
+ maxImageWidth = {},
343
+ maxImageHeight = {},
344
+ mathMlOptions = {}
345
+ } = configuration || {};
346
+ const validationMessage = (0, _utils.generateValidationMessage)(configuration, model);
347
+ const {
348
+ prompt: promptError,
349
+ rationale: rationaleError,
350
+ responsesErrors,
351
+ responseAreasError
352
+ } = errors;
353
+ const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
354
+ const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
355
+ const classNames = {
356
+ editor: 'response-editor'
357
+ };
358
+ const responsesToUse = responseType === _utils.ResponseTypes.advanced ? responses : responses.slice(0, 1);
359
+ const validationTooltip = /*#__PURE__*/React.createElement(StyledTooltip, {
360
+ disableFocusListener: true,
361
+ disableTouchListener: true,
362
+ placement: 'right',
363
+ title: validationMessage
364
+ }, /*#__PURE__*/React.createElement(_Info.default, {
365
+ fontSize: 'small',
366
+ color: 'primary',
367
+ style: {
368
+ marginLeft: '5px'
369
+ }
370
+ }));
371
+ return /*#__PURE__*/React.createElement(Container, {
372
+ ref: r => this.root = r || this.root
373
+ }, promptEnabled && /*#__PURE__*/React.createElement(PromptHolder, {
374
+ label: cPrompt.label
375
+ }, /*#__PURE__*/React.createElement(_editableHtml.default, {
376
+ onFocus: this.onPromptFocus,
377
+ markup: prompt || '',
378
+ onChange: this.onChange('prompt'),
379
+ imageSupport: imageSupport,
380
+ nonEmpty: false,
381
+ error: promptError,
382
+ toolbarOpts: toolbarOpts,
383
+ pluginProps: (0, _utils.getPluginProps)(cPrompt?.inputConfiguration, baseInputConfiguration),
384
+ spellCheck: spellCheckEnabled,
385
+ maxImageWidth: defaultImageMaxWidth,
386
+ maxImageHeight: defaultImageMaxHeight,
387
+ uploadSoundSupport: uploadSoundSupport,
388
+ languageCharactersProps: [{
389
+ language: 'spanish'
390
+ }, {
391
+ language: 'special'
392
+ }],
393
+ mathMlOptions: mathMlOptions
394
+ }), promptError && /*#__PURE__*/React.createElement(ErrorText, null, promptError)), responseType === _utils.ResponseTypes.advanced && /*#__PURE__*/React.createElement(AdvancedResponse, null, /*#__PURE__*/React.createElement(FlexContainer, {
395
+ style: {
396
+ justifyContent: 'flex-start'
397
+ }
398
+ }, /*#__PURE__*/React.createElement(Title, null, "Define Response"), validationTooltip), /*#__PURE__*/React.createElement(SelectContainer, {
399
+ key: "templateEditorType",
400
+ label: "Response Template Equation Editor"
401
+ }, /*#__PURE__*/React.createElement(_Select.default, {
402
+ onChange: this.onChange('promptEquationEditor'),
403
+ value: promptEquationEditor,
404
+ MenuProps: {
405
+ transitionDuration: {
406
+ enter: 225,
407
+ exit: 195
461
408
  }
462
- }));
463
- return /*#__PURE__*/React.createElement("div", {
464
- ref: function ref(r) {
465
- return _this2.root = r || _this2.root;
466
- },
467
- className: classes.container
468
- }, promptEnabled && /*#__PURE__*/React.createElement(_configUi.InputContainer, {
469
- label: cPrompt.label,
470
- className: classes.promptHolder
471
- }, /*#__PURE__*/React.createElement(_editableHtml["default"], {
472
- onFocus: this.onPromptFocus,
473
- className: classes.prompt,
474
- markup: prompt || '',
475
- onChange: this.onChange('prompt'),
476
- imageSupport: imageSupport,
477
- nonEmpty: false,
478
- error: promptError,
479
- toolbarOpts: toolbarOpts,
480
- pluginProps: (0, _utils.getPluginProps)(cPrompt === null || cPrompt === void 0 ? void 0 : cPrompt.inputConfiguration, baseInputConfiguration),
481
- spellCheck: spellCheckEnabled,
482
- maxImageWidth: defaultImageMaxWidth,
483
- maxImageHeight: defaultImageMaxHeight,
484
- uploadSoundSupport: uploadSoundSupport,
485
- languageCharactersProps: [{
486
- language: 'spanish'
487
- }, {
488
- language: 'special'
489
- }],
490
- mathMlOptions: mathMlOptions
491
- }), promptError && /*#__PURE__*/React.createElement("div", {
492
- className: classes.errorText
493
- }, promptError)), responseType === _utils.ResponseTypes.advanced && /*#__PURE__*/React.createElement("div", {
494
- className: classes.advancedResponse
495
- }, /*#__PURE__*/React.createElement("div", {
496
- className: classes.flexContainer,
497
- style: {
498
- justifyContent: 'flex-start'
409
+ }
410
+ }, /*#__PURE__*/React.createElement(_MenuItem.default, {
411
+ value: "non-negative-integers"
412
+ }, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
413
+ value: "integers"
414
+ }, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
415
+ value: "decimals"
416
+ }, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem.default, {
417
+ value: "fractions"
418
+ }, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem.default, {
419
+ value: 1
420
+ }, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem.default, {
421
+ value: 3
422
+ }, "Grade 3 - 5"), /*#__PURE__*/React.createElement(_MenuItem.default, {
423
+ value: 6
424
+ }, "Grade 6 - 7"), /*#__PURE__*/React.createElement(_MenuItem.default, {
425
+ value: 8
426
+ }, "Grade 8 - HS"), /*#__PURE__*/React.createElement(_MenuItem.default, {
427
+ value: 'geometry'
428
+ }, "Geometry"), /*#__PURE__*/React.createElement(_MenuItem.default, {
429
+ value: 'advanced-algebra'
430
+ }, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem.default, {
431
+ value: 'statistics'
432
+ }, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem.default, {
433
+ value: 'item-authoring'
434
+ }, "Item Authoring"))), /*#__PURE__*/React.createElement(ResponseTemplate, {
435
+ key: "templateHolder"
436
+ }, /*#__PURE__*/React.createElement(TemplateTitle, null, "RESPONSE TEMPLATE"), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
437
+ classNames: classNames,
438
+ allowAnswerBlock: true,
439
+ keypadMode: promptEquationEditor,
440
+ controlledKeypad: true,
441
+ showKeypad: showKeypad,
442
+ latex: prepareForStatic(expression) || '',
443
+ onChange: this.onChange('expression'),
444
+ onFocus: this.onFocus,
445
+ onDone: this.onDone,
446
+ maxResponseAreas: maxResponseAreas,
447
+ error: responseAreasError
448
+ })), responseAreasError && /*#__PURE__*/React.createElement(ErrorText, null, responseAreasError)), /*#__PURE__*/React.createElement(FlexContainer, {
449
+ style: {
450
+ justifyContent: 'flex-start'
451
+ }
452
+ }, /*#__PURE__*/React.createElement(Title, null, "Define Correct Response"), responseType === _utils.ResponseTypes.simple ? validationTooltip : null), /*#__PURE__*/React.createElement(SelectContainer, {
453
+ label: "Equation Editor"
454
+ }, /*#__PURE__*/React.createElement(_Select.default, {
455
+ onChange: this.onChange('equationEditor'),
456
+ value: equationEditor,
457
+ MenuProps: {
458
+ transitionDuration: {
459
+ enter: 225,
460
+ exit: 195
499
461
  }
500
- }, /*#__PURE__*/React.createElement("div", {
501
- className: classes.title
502
- }, "Define Response"), validationTooltip), /*#__PURE__*/React.createElement(_configUi.InputContainer, {
503
- key: "templateEditorType",
504
- label: "Response Template Equation Editor",
505
- className: classes.selectContainer
506
- }, /*#__PURE__*/React.createElement(_Select["default"], {
507
- className: classes.select,
508
- onChange: this.onChange('promptEquationEditor'),
509
- value: promptEquationEditor
510
- }, /*#__PURE__*/React.createElement(_MenuItem["default"], {
511
- value: "non-negative-integers"
512
- }, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
513
- value: "integers"
514
- }, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
515
- value: "decimals"
516
- }, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
517
- value: "fractions"
518
- }, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
519
- value: 1
520
- }, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
521
- value: 3
522
- }, "Grade 3 - 5"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
523
- value: 6
524
- }, "Grade 6 - 7"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
525
- value: 8
526
- }, "Grade 8 - HS"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
527
- value: 'geometry'
528
- }, "Geometry"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
529
- value: 'advanced-algebra'
530
- }, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
531
- value: 'statistics'
532
- }, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
533
- value: 'item-authoring'
534
- }, "Item Authoring"))), /*#__PURE__*/React.createElement("div", {
535
- className: classes.responseTemplate,
536
- key: "templateHolder"
537
- }, /*#__PURE__*/React.createElement(_InputLabel["default"], {
538
- className: classes.templateTitle
539
- }, "RESPONSE TEMPLATE"), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
540
- classNames: classNames,
541
- allowAnswerBlock: true,
542
- keypadMode: promptEquationEditor,
543
- controlledKeypad: true,
544
- showKeypad: showKeypad,
545
- latex: prepareForStatic(expression) || '',
546
- onChange: this.onChange('expression'),
547
- onFocus: this.onFocus,
548
- onDone: this.onDone,
549
- maxResponseAreas: maxResponseAreas,
550
- error: responseAreasError
551
- })), responseAreasError && /*#__PURE__*/React.createElement("div", {
552
- className: classes.errorText
553
- }, responseAreasError)), /*#__PURE__*/React.createElement("div", {
554
- className: classes.flexContainer,
555
- style: {
556
- justifyContent: 'flex-start'
462
+ }
463
+ }, /*#__PURE__*/React.createElement(_MenuItem.default, {
464
+ value: "non-negative-integers"
465
+ }, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
466
+ value: "integers"
467
+ }, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
468
+ value: "decimals"
469
+ }, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem.default, {
470
+ value: "fractions"
471
+ }, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem.default, {
472
+ value: 1
473
+ }, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem.default, {
474
+ value: 3
475
+ }, "Grade 3 - 5"), /*#__PURE__*/React.createElement(_MenuItem.default, {
476
+ value: 6
477
+ }, "Grade 6 - 7"), /*#__PURE__*/React.createElement(_MenuItem.default, {
478
+ value: 8
479
+ }, "Grade 8 - HS"), /*#__PURE__*/React.createElement(_MenuItem.default, {
480
+ value: 'geometry'
481
+ }, "Geometry"), /*#__PURE__*/React.createElement(_MenuItem.default, {
482
+ value: 'advanced-algebra'
483
+ }, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem.default, {
484
+ value: 'statistics'
485
+ }, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem.default, {
486
+ value: 'item-authoring'
487
+ }, "Item Authoring"))), responsesToUse.map((response, idx) => /*#__PURE__*/React.createElement(_response.default, {
488
+ key: response.id,
489
+ mode: equationEditor,
490
+ response: response,
491
+ defaultResponse: responseType === _utils.ResponseTypes.simple,
492
+ onResponseChange: this.onResponseChange,
493
+ index: idx,
494
+ cIgnoreOrder: cIgnoreOrder,
495
+ cAllowTrailingZeros: cAllowTrailingZeros,
496
+ error: responsesErrors && responsesErrors[idx]
497
+ })), rationaleEnabled && /*#__PURE__*/React.createElement(PromptHolder, {
498
+ label: cRationale.label
499
+ }, /*#__PURE__*/React.createElement(_editableHtml.default, {
500
+ markup: rationale || '',
501
+ onChange: this.onChange('rationale'),
502
+ imageSupport: imageSupport,
503
+ nonEmpty: false,
504
+ error: rationaleError,
505
+ toolbarOpts: toolbarOpts,
506
+ pluginProps: (0, _utils.getPluginProps)(cRationale?.inputConfiguration, {
507
+ ...baseInputConfiguration,
508
+ math: {
509
+ controlledKeypadMode: false
557
510
  }
558
- }, /*#__PURE__*/React.createElement("div", {
559
- className: classes.title
560
- }, "Define Correct Response"), responseType === _utils.ResponseTypes.simple ? validationTooltip : null), /*#__PURE__*/React.createElement(_configUi.InputContainer, {
561
- label: "Equation Editor",
562
- className: classes.selectContainer
563
- }, /*#__PURE__*/React.createElement(_Select["default"], {
564
- className: classes.select,
565
- onChange: this.onChange('equationEditor'),
566
- value: equationEditor
567
- }, /*#__PURE__*/React.createElement(_MenuItem["default"], {
568
- value: "non-negative-integers"
569
- }, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
570
- value: "integers"
571
- }, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
572
- value: "decimals"
573
- }, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
574
- value: "fractions"
575
- }, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
576
- value: 1
577
- }, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
578
- value: 3
579
- }, "Grade 3 - 5"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
580
- value: 6
581
- }, "Grade 6 - 7"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
582
- value: 8
583
- }, "Grade 8 - HS"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
584
- value: 'geometry'
585
- }, "Geometry"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
586
- value: 'advanced-algebra'
587
- }, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
588
- value: 'statistics'
589
- }, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
590
- value: 'item-authoring'
591
- }, "Item Authoring"))), responsesToUse.map(function (response, idx) {
592
- return /*#__PURE__*/React.createElement(_response["default"], {
593
- key: response.id,
594
- mode: equationEditor,
595
- response: response,
596
- defaultResponse: responseType === _utils.ResponseTypes.simple,
597
- onResponseChange: _this2.onResponseChange,
598
- index: idx,
599
- cIgnoreOrder: cIgnoreOrder,
600
- cAllowTrailingZeros: cAllowTrailingZeros,
601
- error: responsesErrors && responsesErrors[idx]
602
- });
603
- }), rationaleEnabled && /*#__PURE__*/React.createElement(_configUi.InputContainer, {
604
- label: cRationale.label,
605
- className: classes.promptHolder
606
- }, /*#__PURE__*/React.createElement(_editableHtml["default"], {
607
- className: classes.prompt,
608
- markup: rationale || '',
609
- onChange: this.onChange('rationale'),
610
- imageSupport: imageSupport,
611
- nonEmpty: false,
612
- error: rationaleError,
613
- toolbarOpts: toolbarOpts,
614
- pluginProps: (0, _utils.getPluginProps)(cRationale === null || cRationale === void 0 ? void 0 : cRationale.inputConfiguration, _objectSpread(_objectSpread({}, baseInputConfiguration), {}, {
615
- math: {
616
- controlledKeypadMode: false
617
- }
618
- })),
619
- spellCheck: spellCheckEnabled,
620
- maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
621
- maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
622
- uploadSoundSupport: uploadSoundSupport,
623
- languageCharactersProps: [{
624
- language: 'spanish'
625
- }, {
626
- language: 'special'
627
- }],
628
- mathMlOptions: mathMlOptions
629
- }), rationaleError && /*#__PURE__*/React.createElement("div", {
630
- className: classes.errorText
631
- }, rationaleError)));
632
- }
633
- }]);
634
- return GeneralConfigBlock;
635
- }(React.Component);
636
-
637
- (0, _defineProperty2["default"])(GeneralConfigBlock, "propTypes", {
638
- classes: _propTypes["default"].object.isRequired,
639
- model: _propTypes["default"].object.isRequired,
640
- imageSupport: _propTypes["default"].object,
641
- uploadSoundSupport: _propTypes["default"].object,
642
- configuration: _propTypes["default"].object,
643
- onChange: _propTypes["default"].func.isRequired,
644
- promptEnabled: _propTypes["default"].bool,
645
- rationaleEnabled: _propTypes["default"].bool,
646
- toolbarOpts: _propTypes["default"].object
511
+ }),
512
+ spellCheck: spellCheckEnabled,
513
+ maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
514
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
515
+ uploadSoundSupport: uploadSoundSupport,
516
+ languageCharactersProps: [{
517
+ language: 'spanish'
518
+ }, {
519
+ language: 'special'
520
+ }],
521
+ mathMlOptions: mathMlOptions
522
+ }), rationaleError && /*#__PURE__*/React.createElement(ErrorText, null, rationaleError)));
523
+ }
524
+ }
525
+ (0, _defineProperty2.default)(GeneralConfigBlock, "propTypes", {
526
+ model: _propTypes.default.object.isRequired,
527
+ imageSupport: _propTypes.default.object,
528
+ uploadSoundSupport: _propTypes.default.object,
529
+ configuration: _propTypes.default.object,
530
+ onChange: _propTypes.default.func.isRequired,
531
+ promptEnabled: _propTypes.default.bool,
532
+ rationaleEnabled: _propTypes.default.bool,
533
+ toolbarOpts: _propTypes.default.object
647
534
  });
648
-
649
- var _default = (0, _styles.withStyles)(styles)(GeneralConfigBlock);
650
-
651
- exports["default"] = _default;
535
+ var _default = exports.default = GeneralConfigBlock;
652
536
  //# sourceMappingURL=general-config-block.js.map