@pie-element/math-inline 12.1.1-next.13 → 12.1.1-next.131

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 (101) hide show
  1. package/CHANGELOG.json +2627 -0
  2. package/CHANGELOG.md +2473 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +3 -0
  5. package/configure/CHANGELOG.json +1652 -0
  6. package/configure/CHANGELOG.md +2101 -0
  7. package/configure/lib/configure.js +186 -0
  8. package/configure/lib/configure.js.map +1 -0
  9. package/configure/lib/defaults.js +185 -0
  10. package/configure/lib/defaults.js.map +1 -0
  11. package/configure/lib/general-config-block.js +525 -0
  12. package/configure/lib/general-config-block.js.map +1 -0
  13. package/configure/lib/index.js +140 -0
  14. package/configure/lib/index.js.map +1 -0
  15. package/configure/lib/response.js +369 -0
  16. package/configure/lib/response.js.map +1 -0
  17. package/configure/lib/utils.js +31 -0
  18. package/configure/lib/utils.js.map +1 -0
  19. package/configure/package.json +29 -0
  20. package/controller/CHANGELOG.json +1002 -0
  21. package/controller/CHANGELOG.md +1536 -0
  22. package/controller/lib/defaults.js +43 -0
  23. package/controller/lib/defaults.js.map +1 -0
  24. package/controller/lib/index.js +383 -0
  25. package/controller/lib/index.js.map +1 -0
  26. package/controller/lib/utils.js +11 -0
  27. package/controller/lib/utils.js.map +1 -0
  28. package/controller/package.json +26 -0
  29. package/docs/config-schema.json +2071 -0
  30. package/docs/config-schema.json.md +1533 -0
  31. package/docs/demo/config.js +8 -0
  32. package/docs/demo/generate.js +41 -0
  33. package/docs/demo/index.html +1 -0
  34. package/docs/demo/session.js +11 -0
  35. package/docs/pie-schema.json +1472 -0
  36. package/docs/pie-schema.json.md +845 -0
  37. package/lib/index.js +94 -0
  38. package/lib/index.js.map +1 -0
  39. package/lib/main.js +1030 -0
  40. package/lib/main.js.map +1 -0
  41. package/lib/print.js +92 -0
  42. package/lib/print.js.map +1 -0
  43. package/lib/simple-question-block.js +148 -0
  44. package/lib/simple-question-block.js.map +1 -0
  45. package/lib/utils.js +11 -0
  46. package/lib/utils.js.map +1 -0
  47. package/package.json +26 -93
  48. package/configure.js +0 -2
  49. package/controller.js +0 -1
  50. package/dist/author/configure.d.ts +0 -25
  51. package/dist/author/configure.js +0 -114
  52. package/dist/author/defaults.d.ts +0 -186
  53. package/dist/author/defaults.js +0 -145
  54. package/dist/author/general-config-block.d.ts +0 -35
  55. package/dist/author/general-config-block.js +0 -390
  56. package/dist/author/index.d.ts +0 -60
  57. package/dist/author/index.js +0 -77
  58. package/dist/author/response.d.ts +0 -40
  59. package/dist/author/response.js +0 -238
  60. package/dist/author/utils.d.ts +0 -14
  61. package/dist/author/utils.js +0 -13
  62. package/dist/browser/author/index.js +0 -36149
  63. package/dist/browser/author/index.js.map +0 -1
  64. package/dist/browser/controller/index.js +0 -37789
  65. package/dist/browser/controller/index.js.map +0 -1
  66. package/dist/browser/delivery/index.js +0 -84
  67. package/dist/browser/delivery/index.js.map +0 -1
  68. package/dist/browser/dist-BJ5Sm1Fi.js +0 -313
  69. package/dist/browser/dist-BJ5Sm1Fi.js.map +0 -1
  70. package/dist/browser/dist-CGr_ORz3.js +0 -19418
  71. package/dist/browser/dist-CGr_ORz3.js.map +0 -1
  72. package/dist/browser/dist-D9ARZhQk.js +0 -1426
  73. package/dist/browser/dist-D9ARZhQk.js.map +0 -1
  74. package/dist/browser/main-CgwgYd0K.js +0 -973
  75. package/dist/browser/main-CgwgYd0K.js.map +0 -1
  76. package/dist/browser/math-inline.css +0 -2
  77. package/dist/browser/print/index.js +0 -50
  78. package/dist/browser/print/index.js.map +0 -1
  79. package/dist/controller/defaults.d.ts +0 -44
  80. package/dist/controller/defaults.js +0 -39
  81. package/dist/controller/index.d.ts +0 -22
  82. package/dist/controller/index.js +0 -171
  83. package/dist/controller/utils.d.ts +0 -12
  84. package/dist/controller/utils.js +0 -7
  85. package/dist/delivery/index.d.ts +0 -22
  86. package/dist/delivery/index.js +0 -55
  87. package/dist/delivery/main.d.ts +0 -44
  88. package/dist/delivery/main.js +0 -606
  89. package/dist/delivery/simple-question-block.d.ts +0 -27
  90. package/dist/delivery/simple-question-block.js +0 -94
  91. package/dist/delivery/utils.d.ts +0 -12
  92. package/dist/delivery/utils.js +0 -7
  93. package/dist/index.d.ts +0 -1
  94. package/dist/index.iife.d.ts +0 -8
  95. package/dist/index.iife.js +0 -227
  96. package/dist/index.js +0 -2
  97. package/dist/math-inline.css +0 -2
  98. package/dist/print/index.d.ts +0 -15
  99. package/dist/print/index.js +0 -50
  100. package/dist/runtime-support.d.ts +0 -12
  101. package/dist/runtime-support.js +0 -12
@@ -0,0 +1,525 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
13
+ var _configUi = require("@pie-lib/config-ui");
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"));
18
+ var _response = _interopRequireDefault(require("./response"));
19
+ var _mathToolbar = require("@pie-lib/math-toolbar");
20
+ var _lodashEs = require("lodash-es");
21
+ var _utils = require("./utils");
22
+ var _mathInput = require("@pie-lib/math-input");
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
32
+ return {
33
+ blockContainer: 'block-container',
34
+ blockContainerGeneric: 'block-container-generic',
35
+ blockResponse: 'block-response',
36
+ blockResponseGeneric: 'block-response-generic'
37
+ };
38
+ };
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
+ '.block-container': {
69
+ margin: '8px',
70
+ display: 'inline-flex',
71
+ border: '2px solid grey',
72
+ '.mq-cursor': {
73
+ visibility: 'hidden'
74
+ }
75
+ },
76
+ '.block-container-generic': {
77
+ margin: '4px'
78
+ },
79
+ '.block-response': {
80
+ flex: 2,
81
+ color: 'grey',
82
+ background: '#f5f5f5',
83
+ fontSize: '0.8rem',
84
+ padding: '4px',
85
+ display: 'flex',
86
+ alignItems: 'center',
87
+ justifyContent: 'center',
88
+ borderRight: '2px solid grey'
89
+ },
90
+ '.block-response-generic': {
91
+ borderRight: 0
92
+ },
93
+ '.response-editor ': {
94
+ display: 'flex',
95
+ alignItems: 'center',
96
+ justifyContent: 'center',
97
+ width: '100%',
98
+ maxWidth: '900px',
99
+ height: 'auto',
100
+ minHeight: '130px',
101
+ textAlign: 'left',
102
+ padding: '8px'
103
+ },
104
+ '.math-toolbar': {
105
+ maxWidth: '900px'
106
+ }
107
+ });
108
+ const StyledTooltip = (0, _styles.styled)(_Tooltip.default)(({
109
+ theme
110
+ }) => ({
111
+ '& .MuiTooltip-tooltip': {
112
+ fontSize: theme.typography.fontSize - 2,
113
+ whiteSpace: 'pre-wrap'
114
+ }
115
+ }));
116
+ const ErrorText = (0, _styles.styled)('div')(({
117
+ theme
118
+ }) => ({
119
+ fontSize: theme.typography.fontSize - 2,
120
+ color: theme.palette.error.main,
121
+ paddingTop: theme.spacing(1)
122
+ }));
123
+ const PromptHolder = (0, _styles.styled)(_configUi.InputContainer)(({
124
+ theme
125
+ }) => ({
126
+ width: '100%',
127
+ paddingTop: theme.spacing(2),
128
+ marginBottom: theme.spacing(2)
129
+ }));
130
+ const AdvancedResponse = (0, _styles.styled)('div')(({
131
+ theme
132
+ }) => ({
133
+ marginBottom: theme.spacing(2.5)
134
+ }));
135
+ const REGEX = /{{response}}/gm;
136
+ const TEMPORARY_RESPONSE_FIELD = /\\%response\\%/gm;
137
+ const ANSWER_BLOCK_REGEX = /\\embed\{answerBlock\}\[r\d*\]/g;
138
+ const NEWLINE_BLOCK = /\\embed\{newLine\}\[\]/g;
139
+ const NEWLINE_LATEX = /\\newline/g;
140
+ function prepareForStatic(expression) {
141
+ if (expression) {
142
+ let answerBlocks = 1; // assume one at least
143
+
144
+ return expression.replace(REGEX, () => `\\embed{answerBlock}[r${answerBlocks++}]`).replace(NEWLINE_LATEX, '\\embed{newLine}[]');
145
+ }
146
+ }
147
+ function prepareForModel(expression) {
148
+ if (expression) {
149
+ return expression.replace(ANSWER_BLOCK_REGEX, () => '{{response}}').replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}').replace(NEWLINE_BLOCK, () => '\\newline');
150
+ }
151
+ }
152
+ class GeneralConfigBlock extends React.Component {
153
+ constructor(props) {
154
+ super(props);
155
+ (0, _defineProperty2.default)(this, "onChange", name => evtOrValue => {
156
+ const {
157
+ model,
158
+ onChange
159
+ } = this.props;
160
+ const newModel = {
161
+ ...model
162
+ };
163
+ if (typeof evtOrValue === 'object') {
164
+ newModel[name] = evtOrValue.target.value;
165
+ } else {
166
+ newModel[name] = evtOrValue;
167
+ }
168
+ if (name === 'expression') {
169
+ newModel[name] = prepareForModel(evtOrValue);
170
+ }
171
+ onChange(newModel);
172
+ });
173
+ (0, _defineProperty2.default)(this, "onDone", () => {
174
+ this.setState({
175
+ showKeypad: false
176
+ });
177
+ });
178
+ (0, _defineProperty2.default)(this, "onFocus", () => {
179
+ this.setState({
180
+ showKeypad: true
181
+ });
182
+ });
183
+ (0, _defineProperty2.default)(this, "onPromptFocus", () => {
184
+ this.setState({
185
+ showKeypad: false
186
+ });
187
+ });
188
+ (0, _defineProperty2.default)(this, "handleAnswerBlockDomUpdate", () => {
189
+ const {
190
+ model
191
+ } = this.props;
192
+ const responseAreas = {};
193
+ if (model && model.expression) {
194
+ let answerBlocks = 1; // assume one at least
195
+ // build out local state model using responses declared in expression
196
+
197
+ model.expression.replace(REGEX, () => {
198
+ responseAreas[`r${answerBlocks++}`] = {
199
+ value: ''
200
+ };
201
+ });
202
+ }
203
+ if (!(0, _lodashEs.isEqual)(responseAreas, this.state.responseAreas)) {
204
+ this.setState({
205
+ responseAreas
206
+ }, () => {
207
+ if (this.root && Object.keys(responseAreas).length) {
208
+ Object.keys(responseAreas).forEach((responseId, idx) => {
209
+ const el = this.root.querySelector(`#${responseId}`);
210
+ const indexEl = this.root.querySelector(`#${responseId}Index`);
211
+ if (el) {
212
+ (0, _mathInput.applyStaticMath)(el);
213
+ indexEl.textContent = `R${idx + 1}`;
214
+ }
215
+ });
216
+ }
217
+ });
218
+ }
219
+ });
220
+ (0, _defineProperty2.default)(this, "onAddResponse", () => {
221
+ const {
222
+ model,
223
+ onChange
224
+ } = this.props;
225
+ const {
226
+ responseIdCounter
227
+ } = this.state;
228
+ const newModel = {
229
+ ...model
230
+ };
231
+ let newCounter = responseIdCounter;
232
+ while (model.responses.find(response => response.id === newCounter)) {
233
+ newCounter++;
234
+ }
235
+ const response = {
236
+ id: newCounter,
237
+ validation: 'literal',
238
+ answer: '',
239
+ alternates: {}
240
+ };
241
+ newModel.responses = newModel.responses.concat(response);
242
+ onChange(newModel);
243
+ this.setState({
244
+ responseIdCounter: response.id
245
+ });
246
+ });
247
+ (0, _defineProperty2.default)(this, "onResponseChange", (response, index) => {
248
+ const {
249
+ model,
250
+ onChange
251
+ } = this.props;
252
+ const newModel = {
253
+ ...model
254
+ };
255
+ newModel.responses[index] = response;
256
+ onChange(newModel);
257
+ });
258
+ const _responseAreas = {};
259
+ if (props.model && props.model.expression) {
260
+ let answerBlocks = 1; // assume one at least
261
+ // build out local state model using responses declared in expression
262
+
263
+ props.model.expression.replace(REGEX, () => {
264
+ _responseAreas[`r${answerBlocks++}`] = {
265
+ value: ''
266
+ };
267
+ });
268
+ }
269
+ this.state = {
270
+ showKeypad: false,
271
+ responseAreas: _responseAreas,
272
+ responseIdCounter: Object.keys(_responseAreas).length
273
+ };
274
+ }
275
+ UNSAFE_componentWillMount() {
276
+ if (typeof window !== 'undefined') {
277
+ if (!registered) {
278
+ (0, _mathInput.registerEmbed)('answerBlock', data => {
279
+ const genericAnswerBlock = `
280
+ <div class="block-container block-container-generic">
281
+ <div class="block-response block-response-generic" id="${data}Index">Response</div>
282
+ </div>`;
283
+ return {
284
+ htmlString: genericAnswerBlock,
285
+ text: () => 'text',
286
+ latex: () => `\\embed{answerBlock}[${data}]`
287
+ };
288
+ });
289
+ registered = true;
290
+ }
291
+ }
292
+ }
293
+ componentDidMount() {
294
+ this.handleAnswerBlockDomUpdate();
295
+ }
296
+ componentDidUpdate() {
297
+ this.handleAnswerBlockDomUpdate();
298
+ }
299
+ render() {
300
+ const {
301
+ model,
302
+ imageSupport,
303
+ uploadSoundSupport,
304
+ configuration,
305
+ promptEnabled,
306
+ rationaleEnabled,
307
+ toolbarOpts
308
+ } = this.props;
309
+ const {
310
+ showKeypad
311
+ } = this.state;
312
+ const {
313
+ prompt,
314
+ expression,
315
+ equationEditor,
316
+ promptEquationEditor = '8',
317
+ responses,
318
+ responseType,
319
+ rationale,
320
+ spellCheckEnabled,
321
+ errors = {}
322
+ } = model;
323
+ const {
324
+ baseInputConfiguration = {},
325
+ rationale: cRationale = {},
326
+ prompt: cPrompt = {},
327
+ ignoreOrder: cIgnoreOrder = {},
328
+ allowTrailingZeros: cAllowTrailingZeros = {},
329
+ maxResponseAreas,
330
+ maxImageWidth = {},
331
+ maxImageHeight = {},
332
+ mathMlOptions = {}
333
+ } = configuration || {};
334
+ const validationMessage = (0, _utils.generateValidationMessage)(configuration, model);
335
+ const {
336
+ prompt: promptError,
337
+ rationale: rationaleError,
338
+ responsesErrors,
339
+ responseAreasError
340
+ } = errors;
341
+ const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
342
+ const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
343
+ const classNames = {
344
+ editor: 'response-editor',
345
+ mathToolbar: 'math-toolbar'
346
+ };
347
+ const responsesToUse = responseType === _utils.ResponseTypes.advanced ? responses : responses.slice(0, 1);
348
+ const validationTooltip = /*#__PURE__*/React.createElement(StyledTooltip, {
349
+ disableFocusListener: true,
350
+ disableTouchListener: true,
351
+ placement: 'right',
352
+ title: validationMessage
353
+ }, /*#__PURE__*/React.createElement(_Info.default, {
354
+ fontSize: 'small',
355
+ color: 'primary',
356
+ style: {
357
+ marginLeft: '5px'
358
+ }
359
+ }));
360
+ return /*#__PURE__*/React.createElement(Container, {
361
+ ref: r => this.root = r || this.root
362
+ }, promptEnabled && /*#__PURE__*/React.createElement(PromptHolder, {
363
+ label: cPrompt.label
364
+ }, /*#__PURE__*/React.createElement(_editableHtmlTipTap.default, {
365
+ onFocus: this.onPromptFocus,
366
+ markup: prompt || '',
367
+ onChange: this.onChange('prompt'),
368
+ imageSupport: imageSupport,
369
+ nonEmpty: false,
370
+ error: promptError,
371
+ toolbarOpts: toolbarOpts,
372
+ pluginProps: (0, _utils.getPluginProps)(cPrompt?.inputConfiguration, baseInputConfiguration),
373
+ spellCheck: spellCheckEnabled,
374
+ maxImageWidth: defaultImageMaxWidth,
375
+ maxImageHeight: defaultImageMaxHeight,
376
+ uploadSoundSupport: uploadSoundSupport,
377
+ languageCharactersProps: [{
378
+ language: 'spanish'
379
+ }, {
380
+ language: 'special'
381
+ }],
382
+ mathMlOptions: mathMlOptions
383
+ }), promptError && /*#__PURE__*/React.createElement(ErrorText, null, promptError)), responseType === _utils.ResponseTypes.advanced && /*#__PURE__*/React.createElement(AdvancedResponse, null, /*#__PURE__*/React.createElement(FlexContainer, {
384
+ style: {
385
+ justifyContent: 'flex-start'
386
+ }
387
+ }, /*#__PURE__*/React.createElement(Title, null, "Define Response"), validationTooltip), /*#__PURE__*/React.createElement(SelectContainer, {
388
+ key: "templateEditorType",
389
+ label: "Response Template Equation Editor"
390
+ }, /*#__PURE__*/React.createElement(_Select.default, {
391
+ onChange: this.onChange('promptEquationEditor'),
392
+ value: promptEquationEditor,
393
+ MenuProps: {
394
+ transitionDuration: {
395
+ enter: 225,
396
+ exit: 195
397
+ }
398
+ }
399
+ }, /*#__PURE__*/React.createElement(_MenuItem.default, {
400
+ value: "non-negative-integers"
401
+ }, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
402
+ value: "integers"
403
+ }, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
404
+ value: "decimals"
405
+ }, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem.default, {
406
+ value: "fractions"
407
+ }, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem.default, {
408
+ value: 1
409
+ }, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem.default, {
410
+ value: 3
411
+ }, "Grade 3 - 5"), /*#__PURE__*/React.createElement(_MenuItem.default, {
412
+ value: 6
413
+ }, "Grade 6 - 7"), /*#__PURE__*/React.createElement(_MenuItem.default, {
414
+ value: 8
415
+ }, "Grade 8 - HS"), /*#__PURE__*/React.createElement(_MenuItem.default, {
416
+ value: 'geometry'
417
+ }, "Geometry"), /*#__PURE__*/React.createElement(_MenuItem.default, {
418
+ value: 'advanced-algebra'
419
+ }, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem.default, {
420
+ value: 'statistics'
421
+ }, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem.default, {
422
+ value: 'item-authoring'
423
+ }, "Item Authoring"))), /*#__PURE__*/React.createElement(ResponseTemplate, {
424
+ key: "templateHolder"
425
+ }, /*#__PURE__*/React.createElement(TemplateTitle, null, "RESPONSE TEMPLATE"), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
426
+ classNames: classNames,
427
+ allowAnswerBlock: true,
428
+ keypadMode: promptEquationEditor,
429
+ controlledKeypad: true,
430
+ showKeypad: showKeypad,
431
+ latex: prepareForStatic(expression) || '',
432
+ onChange: this.onChange('expression'),
433
+ onFocus: this.onFocus,
434
+ onDone: this.onDone,
435
+ maxResponseAreas: maxResponseAreas,
436
+ error: responseAreasError
437
+ })), responseAreasError && /*#__PURE__*/React.createElement(ErrorText, null, responseAreasError)), /*#__PURE__*/React.createElement(FlexContainer, {
438
+ style: {
439
+ justifyContent: 'flex-start'
440
+ }
441
+ }, /*#__PURE__*/React.createElement(Title, null, "Define Correct Response"), responseType === _utils.ResponseTypes.simple ? validationTooltip : null), /*#__PURE__*/React.createElement(SelectContainer, {
442
+ label: "Equation Editor"
443
+ }, /*#__PURE__*/React.createElement(_Select.default, {
444
+ onChange: this.onChange('equationEditor'),
445
+ value: equationEditor,
446
+ MenuProps: {
447
+ transitionDuration: {
448
+ enter: 225,
449
+ exit: 195
450
+ }
451
+ }
452
+ }, /*#__PURE__*/React.createElement(_MenuItem.default, {
453
+ value: "non-negative-integers"
454
+ }, "Numeric - Non-Negative Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
455
+ value: "integers"
456
+ }, "Numeric - Integers"), /*#__PURE__*/React.createElement(_MenuItem.default, {
457
+ value: "decimals"
458
+ }, "Numeric - Decimals"), /*#__PURE__*/React.createElement(_MenuItem.default, {
459
+ value: "fractions"
460
+ }, "Numeric - Fractions"), /*#__PURE__*/React.createElement(_MenuItem.default, {
461
+ value: 1
462
+ }, "Grade 1 - 2"), /*#__PURE__*/React.createElement(_MenuItem.default, {
463
+ value: 3
464
+ }, "Grade 3 - 5"), /*#__PURE__*/React.createElement(_MenuItem.default, {
465
+ value: 6
466
+ }, "Grade 6 - 7"), /*#__PURE__*/React.createElement(_MenuItem.default, {
467
+ value: 8
468
+ }, "Grade 8 - HS"), /*#__PURE__*/React.createElement(_MenuItem.default, {
469
+ value: 'geometry'
470
+ }, "Geometry"), /*#__PURE__*/React.createElement(_MenuItem.default, {
471
+ value: 'advanced-algebra'
472
+ }, "Advanced Algebra"), /*#__PURE__*/React.createElement(_MenuItem.default, {
473
+ value: 'statistics'
474
+ }, "Statistics"), /*#__PURE__*/React.createElement(_MenuItem.default, {
475
+ value: 'item-authoring'
476
+ }, "Item Authoring"))), responsesToUse.map((response, idx) => /*#__PURE__*/React.createElement(_response.default, {
477
+ key: response.id,
478
+ mode: equationEditor,
479
+ response: response,
480
+ defaultResponse: responseType === _utils.ResponseTypes.simple,
481
+ onResponseChange: this.onResponseChange,
482
+ index: idx,
483
+ cIgnoreOrder: cIgnoreOrder,
484
+ cAllowTrailingZeros: cAllowTrailingZeros,
485
+ error: responsesErrors && responsesErrors[idx]
486
+ })), rationaleEnabled && /*#__PURE__*/React.createElement(PromptHolder, {
487
+ label: cRationale.label
488
+ }, /*#__PURE__*/React.createElement(_editableHtmlTipTap.default, {
489
+ markup: rationale || '',
490
+ onChange: this.onChange('rationale'),
491
+ imageSupport: imageSupport,
492
+ nonEmpty: false,
493
+ error: rationaleError,
494
+ toolbarOpts: toolbarOpts,
495
+ pluginProps: (0, _utils.getPluginProps)(cRationale?.inputConfiguration, {
496
+ ...baseInputConfiguration,
497
+ math: {
498
+ controlledKeypadMode: false
499
+ }
500
+ }),
501
+ spellCheck: spellCheckEnabled,
502
+ maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
503
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
504
+ uploadSoundSupport: uploadSoundSupport,
505
+ languageCharactersProps: [{
506
+ language: 'spanish'
507
+ }, {
508
+ language: 'special'
509
+ }],
510
+ mathMlOptions: mathMlOptions
511
+ }), rationaleError && /*#__PURE__*/React.createElement(ErrorText, null, rationaleError)));
512
+ }
513
+ }
514
+ (0, _defineProperty2.default)(GeneralConfigBlock, "propTypes", {
515
+ model: _propTypes.default.object.isRequired,
516
+ imageSupport: _propTypes.default.object,
517
+ uploadSoundSupport: _propTypes.default.object,
518
+ configuration: _propTypes.default.object,
519
+ onChange: _propTypes.default.func.isRequired,
520
+ promptEnabled: _propTypes.default.bool,
521
+ rationaleEnabled: _propTypes.default.bool,
522
+ toolbarOpts: _propTypes.default.object
523
+ });
524
+ var _default = exports.default = GeneralConfigBlock;
525
+ //# sourceMappingURL=general-config-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general-config-block.js","names":["React","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_editableHtmlTipTap","_configUi","_styles","_InputLabel","_Select","_MenuItem","_response","_mathToolbar","_lodashEs","_utils","_mathInput","_Info","_Tooltip","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","registered","getBlockClassNames","blockContainer","blockContainerGeneric","blockResponse","blockResponseGeneric","Container","styled","display","flexDirection","TemplateTitle","InputLabel","fontSize","Title","FlexContainer","alignItems","justifyContent","SelectContainer","InputContainer","theme","flex","width","marginTop","spacing","marginBottom","ResponseTemplate","margin","border","visibility","color","background","padding","borderRight","maxWidth","height","minHeight","textAlign","StyledTooltip","Tooltip","typography","whiteSpace","ErrorText","palette","error","main","paddingTop","PromptHolder","AdvancedResponse","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","Component","constructor","props","_defineProperty2","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","isEqual","state","root","keys","length","forEach","responseId","idx","el","querySelector","indexEl","applyStaticMath","textContent","responseIdCounter","newCounter","responses","find","response","id","validation","answer","alternates","concat","index","UNSAFE_componentWillMount","window","registerEmbed","data","genericAnswerBlock","htmlString","text","latex","componentDidMount","handleAnswerBlockDomUpdate","componentDidUpdate","render","imageSupport","uploadSoundSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","prompt","equationEditor","promptEquationEditor","responseType","rationale","spellCheckEnabled","errors","baseInputConfiguration","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","maxResponseAreas","maxImageWidth","maxImageHeight","mathMlOptions","validationMessage","generateValidationMessage","promptError","rationaleError","responsesErrors","responseAreasError","defaultImageMaxWidth","defaultImageMaxHeight","classNames","editor","mathToolbar","responsesToUse","ResponseTypes","advanced","slice","validationTooltip","createElement","disableFocusListener","disableTouchListener","placement","title","style","marginLeft","ref","label","onFocus","onPromptFocus","markup","nonEmpty","pluginProps","getPluginProps","inputConfiguration","spellCheck","languageCharactersProps","language","key","MenuProps","transitionDuration","enter","exit","MathToolbar","allowAnswerBlock","keypadMode","controlledKeypad","onDone","simple","map","mode","defaultResponse","onResponseChange","math","controlledKeypadMode","PropTypes","object","isRequired","func","bool","_default","exports"],"sources":["../src/general-config-block.jsx"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { styled } from '@mui/material/styles';\nimport InputLabel from '@mui/material/InputLabel';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport { isEqual } from 'lodash-es';\nimport { ResponseTypes, generateValidationMessage, getPluginProps } from './utils';\nimport { registerEmbed, applyStaticMath } from '@pie-lib/math-input';\nimport Info from '@mui/icons-material/Info';\nimport Tooltip from '@mui/material/Tooltip';\n\nlet registered = false;\n\n// Helper function to get class names for HTML string generation\nconst getBlockClassNames = () => {\n // These will be generated by styled components, but we need them as strings for HTML\n // We'll use a simple approach: generate unique class names\n return {\n blockContainer: 'block-container',\n blockContainerGeneric: 'block-container-generic',\n blockResponse: 'block-response',\n blockResponseGeneric: 'block-response-generic',\n };\n};\n\nconst Container = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n});\n\nconst TemplateTitle = styled(InputLabel)({\n fontSize: '0.85rem',\n});\n\nconst Title = styled('div')({\n fontSize: '1.1rem',\n});\n\nconst FlexContainer = styled('div')({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n});\n\nconst SelectContainer = styled(InputContainer)(({ theme }) => ({\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n '& > *:not(label)': {\n marginTop: theme.spacing(1),\n },\n}));\n\nconst ResponseTemplate = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n\n '.block-container': {\n margin: '8px',\n display: 'inline-flex',\n border: '2px solid grey',\n\n '.mq-cursor': {\n visibility: 'hidden',\n },\n },\n '.block-container-generic': {\n margin: '4px',\n },\n\n '.block-response': {\n flex: 2,\n color: 'grey',\n background: '#f5f5f5',\n fontSize: '0.8rem',\n padding: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: '2px solid grey',\n },\n '.block-response-generic': {\n borderRight: 0,\n },\n\n '.response-editor ': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '130px',\n textAlign: 'left',\n padding: '8px',\n },\n\n '.math-toolbar': {\n maxWidth: '900px',\n },\n});\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre-wrap',\n },\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nconst PromptHolder = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n}));\n\nconst AdvancedResponse = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2.5),\n}));\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression\n .replace(REGEX, () => `\\\\embed{answerBlock}[r${answerBlocks++}]`)\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n if (typeof window !== 'undefined') {\n if (!registered) {\n registerEmbed('answerBlock', (data) => {\n const genericAnswerBlock = `\n <div class=\"block-container block-container-generic\">\n <div class=\"block-response block-response-generic\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas,\n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n applyStaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n },\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const { model, imageSupport, uploadSoundSupport, configuration, promptEnabled, rationaleEnabled, toolbarOpts } =\n this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = '8',\n responses,\n responseType,\n rationale,\n spellCheckEnabled,\n errors = {},\n } = model;\n const {\n baseInputConfiguration = {},\n rationale: cRationale = {},\n prompt: cPrompt = {},\n ignoreOrder: cIgnoreOrder = {},\n allowTrailingZeros: cAllowTrailingZeros = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n } = configuration || {};\n const validationMessage = generateValidationMessage(configuration, model);\n const { prompt: promptError, rationale: rationaleError, responsesErrors, responseAreasError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const classNames = {\n editor: 'response-editor',\n mathToolbar: 'math-toolbar',\n };\n\n const responsesToUse = responseType === ResponseTypes.advanced ? responses : responses.slice(0, 1);\n\n const validationTooltip = (\n <StyledTooltip disableFocusListener disableTouchListener placement={'right'} title={validationMessage}>\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </StyledTooltip>\n );\n\n return (\n <Container ref={(r) => (this.root = r || this.root)}>\n {promptEnabled && (\n <PromptHolder label={cPrompt.label}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cPrompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <ErrorText>{promptError}</ErrorText>}\n </PromptHolder>\n )}\n\n {responseType === ResponseTypes.advanced && (\n <AdvancedResponse>\n <FlexContainer style={{ justifyContent: 'flex-start' }}>\n <Title>Define Response</Title>\n {validationTooltip}\n </FlexContainer>\n\n <SelectContainer key=\"templateEditorType\" label=\"Response Template Equation Editor\">\n <Select\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n MenuProps={{ transitionDuration: { enter: 225, exit: 195 } }}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </SelectContainer>\n\n <ResponseTemplate key=\"templateHolder\">\n <TemplateTitle>RESPONSE TEMPLATE</TemplateTitle>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n maxResponseAreas={maxResponseAreas}\n error={responseAreasError}\n />\n </ResponseTemplate>\n\n {responseAreasError && <ErrorText>{responseAreasError}</ErrorText>}\n </AdvancedResponse>\n )}\n\n <FlexContainer style={{ justifyContent: 'flex-start' }}>\n <Title>Define Correct Response</Title>\n {responseType === ResponseTypes.simple ? validationTooltip : null}\n </FlexContainer>\n\n <SelectContainer label=\"Equation Editor\">\n <Select\n onChange={this.onChange('equationEditor')}\n value={equationEditor}\n MenuProps={{ transitionDuration: { enter: 225, exit: 195 } }}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </SelectContainer>\n\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n error={responsesErrors && responsesErrors[idx]}\n />\n ))}\n\n {rationaleEnabled && (\n <PromptHolder label={cRationale.label}>\n <EditableHtml\n markup={rationale || ''}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cRationale?.inputConfiguration, {\n ...baseInputConfiguration,\n math: {\n controlledKeypadMode: false,\n },\n })}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <ErrorText>{rationaleError}</ErrorText>}\n </PromptHolder>\n )}\n </Container>\n );\n }\n}\n\nexport default GeneralConfigBlock;\n"],"mappings":"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","ignoreList":[]}