@pie-element/math-inline 5.9.6 → 5.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/module/print.js CHANGED
@@ -1,16 +1,816 @@
1
- import {_dll_react, _dll_classnames, _dll_material_ui__core_styles, _dll_prop_types, _dll_pie_lib__render_ui, _dll_pie_lib__correct_answer_toggle, _dll_material_ui__core, _dll_lodash, _dll_react_dom, _dll_debug} from "../../../@pie-lib/shared-module@^1.4.9/module/index.js";
2
- import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.0.34/module/index.js";
3
- import {_dll_pie_lib__math_toolbar, _dll_pie_lib__math_input, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.1.30/module/index.js";
1
+ import {_dll_react, _dll_debug, _dll_prop_types, _dll_classnames, _dll_material_ui__core, _dll_material_ui__core_styles, _dll_pie_lib__render_ui, _dll_material_ui__icons, _dll_pie_lib__correct_answer_toggle, _dll_lodash, _dll_react_dom} from "../../../@pie-lib/shared-module@^1.4.15/module/index.js";
2
+ import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.1.3/module/index.js";
3
+ import {_dll_pie_lib__math_input, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.2.2/module/index.js";
4
4
  const ResponseTypes = {
5
5
  advanced: 'Advanced Multi',
6
6
  simple: 'Simple'
7
7
  };
8
+ const {HorizontalKeypad: HorizontalKeypad$1} = _dll_pie_lib__math_input;
9
+ const {mq: mq$3} = _dll_pie_lib__math_input;
10
+ const {updateSpans: updateSpans$1} = _dll_pie_lib__math_input;
11
+ const React$6 = _dll_react;
12
+ const debug$2 = _dll_debug;
13
+ const PropTypes$5 = _dll_prop_types;
14
+ const cx$3 = _dll_classnames;
15
+ const {Button: Button} = _dll_material_ui__core;
16
+ const {MenuItem: MenuItem} = _dll_material_ui__core;
17
+ const {Select: Select} = _dll_material_ui__core;
18
+ const {withStyles: withStyles$5} = _dll_material_ui__core_styles;
19
+ const {color: color$2} = _dll_pie_lib__render_ui;
20
+ const {InputContainer: InputContainer} = _dll_pie_lib__render_ui;
21
+ const _jsxFileName$5 = "/home/circleci/repo/node_modules/@pie-lib/math-toolbar/src/editor-and-pad.jsx";
22
+ const log$2 = debug$2('@pie-lib:math-toolbar:editor-and-pad');
23
+ const decimalRegex = /\.|,/g;
24
+ const toNodeData = data => {
25
+ if (!data) {
26
+ return;
27
+ }
28
+ const {type, value} = data;
29
+ if (type === 'command' || type === 'cursor') {
30
+ return data;
31
+ } else if (type === 'answer') {
32
+ return {
33
+ type: 'answer',
34
+ ...data
35
+ };
36
+ } else if (value === 'clear') {
37
+ return {
38
+ type: 'clear'
39
+ };
40
+ } else {
41
+ return {
42
+ type: 'write',
43
+ value
44
+ };
45
+ }
46
+ };
47
+ class EditorAndPad extends React$6.Component {
48
+ static __initStatic() {
49
+ this.propTypes = {
50
+ classNames: PropTypes$5.object,
51
+ keypadMode: PropTypes$5.oneOfType([PropTypes$5.string, PropTypes$5.number]),
52
+ autoFocus: PropTypes$5.bool,
53
+ allowAnswerBlock: PropTypes$5.bool,
54
+ showKeypad: PropTypes$5.bool,
55
+ controlledKeypad: PropTypes$5.bool,
56
+ controlledKeypadMode: PropTypes$5.bool,
57
+ noDecimal: PropTypes$5.bool,
58
+ additionalKeys: PropTypes$5.array,
59
+ latex: PropTypes$5.string.isRequired,
60
+ onAnswerBlockAdd: PropTypes$5.func,
61
+ onFocus: PropTypes$5.func,
62
+ onBlur: PropTypes$5.func,
63
+ onChange: PropTypes$5.func.isRequired,
64
+ classes: PropTypes$5.object
65
+ };
66
+ }
67
+ constructor(props) {
68
+ super(props);
69
+ EditorAndPad.prototype.__init.call(this);
70
+ EditorAndPad.prototype.__init2.call(this);
71
+ EditorAndPad.prototype.__init3.call(this);
72
+ EditorAndPad.prototype.__init4.call(this);
73
+ EditorAndPad.prototype.__init5.call(this);
74
+ EditorAndPad.prototype.__init6.call(this);
75
+ this.state = {
76
+ equationEditor: 'item-authoring',
77
+ addDisabled: false
78
+ };
79
+ }
80
+ componentDidMount() {
81
+ if (this.input && this.props.autoFocus) {
82
+ this.input.focus();
83
+ }
84
+ }
85
+ __init() {
86
+ this.onClick = data => {
87
+ const {noDecimal} = this.props;
88
+ const c = toNodeData(data);
89
+ log$2('mathChange: ', c);
90
+ if (noDecimal && (c.value === '.' || c.value === ',')) {
91
+ return;
92
+ }
93
+ if (c.type === 'clear') {
94
+ log$2('call clear...');
95
+ this.input.clear();
96
+ } else if (c.type === 'command') {
97
+ this.input.command(c.value);
98
+ } else if (c.type === 'cursor') {
99
+ this.input.keystroke(c.value);
100
+ } else if (c.type === 'answer') {
101
+ this.input.write('%response%');
102
+ } else {
103
+ this.input.write(c.value);
104
+ }
105
+ };
106
+ }
107
+ __init2() {
108
+ this.updateDisable = isEdit => {
109
+ const {maxResponseAreas} = this.props;
110
+ if (maxResponseAreas) {
111
+ const shouldDisable = this.checkResponseAreasNumber(maxResponseAreas, isEdit);
112
+ this.setState({
113
+ addDisabled: shouldDisable
114
+ });
115
+ }
116
+ };
117
+ }
118
+ __init3() {
119
+ this.onAnswerBlockClick = () => {
120
+ this.props.onAnswerBlockAdd();
121
+ this.onClick({
122
+ type: 'answer'
123
+ });
124
+ this.updateDisable(true);
125
+ };
126
+ }
127
+ __init4() {
128
+ this.onEditorChange = latex => {
129
+ const {onChange, noDecimal} = this.props;
130
+ updateSpans$1();
131
+ this.updateDisable(true);
132
+ if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && this.input) {
133
+ this.input.clear();
134
+ this.input.write(latex.replace(decimalRegex, ''));
135
+ return;
136
+ }
137
+ onChange(latex);
138
+ };
139
+ }
140
+ shouldComponentUpdate(nextProps, nextState) {
141
+ const inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;
142
+ log$2('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);
143
+ if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {
144
+ return true;
145
+ }
146
+ if (!inputIsDifferent && this.props.noDecimal !== nextProps.noDecimal) {
147
+ return true;
148
+ }
149
+ if (!inputIsDifferent && this.state.equationEditor !== nextState.equationEditor) {
150
+ return true;
151
+ }
152
+ if (!inputIsDifferent && this.props.controlledKeypad) {
153
+ return this.props.showKeypad !== nextProps.showKeypad;
154
+ }
155
+ return inputIsDifferent;
156
+ }
157
+ __init5() {
158
+ this.onEditorTypeChange = evt => {
159
+ this.setState({
160
+ equationEditor: evt.target.value
161
+ });
162
+ };
163
+ }
164
+ __init6() {
165
+ this.checkResponseAreasNumber = (maxResponseAreas, isEdit) => {
166
+ const {latex} = this.input && this.input.props || ({});
167
+ if (latex) {
168
+ const count = (latex.match(/answerBlock/g) || []).length;
169
+ return isEdit ? count === maxResponseAreas - 1 : count === maxResponseAreas;
170
+ }
171
+ return false;
172
+ };
173
+ }
174
+ render() {
175
+ const {classNames, keypadMode, allowAnswerBlock, additionalKeys, controlledKeypad, controlledKeypadMode, showKeypad, noDecimal, latex, onFocus, onBlur, classes, error} = this.props;
176
+ const shouldShowKeypad = !controlledKeypad || controlledKeypad && showKeypad;
177
+ const {addDisabled} = this.state;
178
+ log$2('[render]', latex);
179
+ return React$6.createElement('div', {
180
+ className: cx$3(classes.mathToolbar, classNames.mathToolbar),
181
+ __self: this,
182
+ __source: {
183
+ fileName: _jsxFileName$5,
184
+ lineNumber: 188
185
+ }
186
+ }, React$6.createElement('div', {
187
+ className: classes.inputAndTypeContainer,
188
+ __self: this,
189
+ __source: {
190
+ fileName: _jsxFileName$5,
191
+ lineNumber: 189
192
+ }
193
+ }, controlledKeypadMode && React$6.createElement(InputContainer, {
194
+ label: "Equation Editor",
195
+ className: classes.selectContainer,
196
+ __self: this,
197
+ __source: {
198
+ fileName: _jsxFileName$5,
199
+ lineNumber: 191
200
+ }
201
+ }, React$6.createElement(Select, {
202
+ className: classes.select,
203
+ onChange: this.onEditorTypeChange,
204
+ value: this.state.equationEditor,
205
+ __self: this,
206
+ __source: {
207
+ fileName: _jsxFileName$5,
208
+ lineNumber: 192
209
+ }
210
+ }, React$6.createElement(MenuItem, {
211
+ value: "non-negative-integers",
212
+ __self: this,
213
+ __source: {
214
+ fileName: _jsxFileName$5,
215
+ lineNumber: 197
216
+ }
217
+ }, "Numeric - Non-Negative Integers"), React$6.createElement(MenuItem, {
218
+ value: "integers",
219
+ __self: this,
220
+ __source: {
221
+ fileName: _jsxFileName$5,
222
+ lineNumber: 198
223
+ }
224
+ }, "Numeric - Integers"), React$6.createElement(MenuItem, {
225
+ value: "decimals",
226
+ __self: this,
227
+ __source: {
228
+ fileName: _jsxFileName$5,
229
+ lineNumber: 199
230
+ }
231
+ }, "Numeric - Decimals"), React$6.createElement(MenuItem, {
232
+ value: "fractions",
233
+ __self: this,
234
+ __source: {
235
+ fileName: _jsxFileName$5,
236
+ lineNumber: 200
237
+ }
238
+ }, "Numeric - Fractions"), React$6.createElement(MenuItem, {
239
+ value: 1,
240
+ __self: this,
241
+ __source: {
242
+ fileName: _jsxFileName$5,
243
+ lineNumber: 201
244
+ }
245
+ }, "Grade 1 - 2"), React$6.createElement(MenuItem, {
246
+ value: 3,
247
+ __self: this,
248
+ __source: {
249
+ fileName: _jsxFileName$5,
250
+ lineNumber: 202
251
+ }
252
+ }, "Grade 3 - 5"), React$6.createElement(MenuItem, {
253
+ value: 6,
254
+ __self: this,
255
+ __source: {
256
+ fileName: _jsxFileName$5,
257
+ lineNumber: 203
258
+ }
259
+ }, "Grade 6 - 7"), React$6.createElement(MenuItem, {
260
+ value: 8,
261
+ __self: this,
262
+ __source: {
263
+ fileName: _jsxFileName$5,
264
+ lineNumber: 204
265
+ }
266
+ }, "Grade 8 - HS"), React$6.createElement(MenuItem, {
267
+ value: 'geometry',
268
+ __self: this,
269
+ __source: {
270
+ fileName: _jsxFileName$5,
271
+ lineNumber: 205
272
+ }
273
+ }, "Geometry"), React$6.createElement(MenuItem, {
274
+ value: 'advanced-algebra',
275
+ __self: this,
276
+ __source: {
277
+ fileName: _jsxFileName$5,
278
+ lineNumber: 206
279
+ }
280
+ }, "Advanced Algebra"), React$6.createElement(MenuItem, {
281
+ value: 'statistics',
282
+ __self: this,
283
+ __source: {
284
+ fileName: _jsxFileName$5,
285
+ lineNumber: 207
286
+ }
287
+ }, "Statistics"), React$6.createElement(MenuItem, {
288
+ value: 'item-authoring',
289
+ __self: this,
290
+ __source: {
291
+ fileName: _jsxFileName$5,
292
+ lineNumber: 208
293
+ }
294
+ }, "Item Authoring"))), React$6.createElement('div', {
295
+ className: cx$3(classes.inputContainer, error ? classes.error : ''),
296
+ __self: this,
297
+ __source: {
298
+ fileName: _jsxFileName$5,
299
+ lineNumber: 212
300
+ }
301
+ }, React$6.createElement(mq$3.Input, {
302
+ onFocus: () => {
303
+ onFocus && onFocus();
304
+ this.updateDisable(false);
305
+ },
306
+ onBlur: event => {
307
+ this.updateDisable(false);
308
+ onBlur && onBlur(event);
309
+ },
310
+ className: cx$3(classes.mathEditor, classNames.editor, !controlledKeypadMode ? classes.longMathEditor : ''),
311
+ innerRef: r => this.input = r,
312
+ latex: latex,
313
+ onChange: this.onEditorChange,
314
+ __self: this,
315
+ __source: {
316
+ fileName: _jsxFileName$5,
317
+ lineNumber: 213
318
+ }
319
+ }))), allowAnswerBlock && React$6.createElement(Button, {
320
+ className: classes.addAnswerBlockButton,
321
+ type: "primary",
322
+ style: {
323
+ bottom: shouldShowKeypad ? '320px' : '20px'
324
+ },
325
+ onClick: this.onAnswerBlockClick,
326
+ disabled: addDisabled,
327
+ __self: this,
328
+ __source: {
329
+ fileName: _jsxFileName$5,
330
+ lineNumber: 234
331
+ }
332
+ }, "+ Response Area"), React$6.createElement('hr', {
333
+ className: classes.hr,
334
+ __self: this,
335
+ __source: {
336
+ fileName: _jsxFileName$5,
337
+ lineNumber: 244
338
+ }
339
+ }), shouldShowKeypad && React$6.createElement(HorizontalKeypad$1, {
340
+ additionalKeys: additionalKeys,
341
+ mode: controlledKeypadMode ? this.state.equationEditor : keypadMode,
342
+ onClick: this.onClick,
343
+ noDecimal: noDecimal,
344
+ __self: this,
345
+ __source: {
346
+ fileName: _jsxFileName$5,
347
+ lineNumber: 246
348
+ }
349
+ }));
350
+ }
351
+ }
352
+ EditorAndPad.__initStatic();
353
+ const styles$3 = theme => ({
354
+ inputAndTypeContainer: {
355
+ display: 'flex',
356
+ alignItems: 'center',
357
+ '& *': {
358
+ fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
359
+ },
360
+ '& .mq-overarrow.mq-arrow-both': {
361
+ minWidth: '1.23em',
362
+ '& *': {
363
+ lineHeight: '1 !important'
364
+ },
365
+ '&:before': {
366
+ top: '-0.4em',
367
+ left: '-1px'
368
+ },
369
+ '&:after': {
370
+ top: '-2.36em',
371
+ right: '-1px'
372
+ },
373
+ '&.mq-empty:after': {
374
+ top: '-0.45em'
375
+ }
376
+ },
377
+ '& .mq-overarrow.mq-arrow-right': {
378
+ '&:before': {
379
+ top: '-0.4em',
380
+ right: '-1px'
381
+ }
382
+ }
383
+ },
384
+ selectContainer: {
385
+ flex: 'initial',
386
+ width: '25%',
387
+ minWidth: '100px',
388
+ marginLeft: '15px',
389
+ marginTop: '5px',
390
+ marginBottom: '5px',
391
+ marginRight: '5px'
392
+ },
393
+ mathEditor: {
394
+ maxWidth: '400px',
395
+ color: color$2.text(),
396
+ backgroundColor: color$2.background(),
397
+ padding: theme.spacing.unit
398
+ },
399
+ longMathEditor: {
400
+ maxWidth: '500px'
401
+ },
402
+ addAnswerBlockButton: {
403
+ position: 'absolute',
404
+ right: '12px',
405
+ border: '1px solid lightgrey'
406
+ },
407
+ hr: {
408
+ padding: 0,
409
+ margin: 0,
410
+ height: '1px',
411
+ border: 'none',
412
+ borderBottom: `solid 1px ${theme.palette.primary.main}`
413
+ },
414
+ mathToolbar: {
415
+ zIndex: 9,
416
+ position: 'relative',
417
+ textAlign: 'center',
418
+ width: 'auto',
419
+ '& > .mq-math-mode': {
420
+ border: 'solid 1px lightgrey'
421
+ },
422
+ '& > .mq-focused': {
423
+ outline: 'none',
424
+ boxShadow: 'none',
425
+ border: `dotted 1px ${theme.palette.primary.main}`,
426
+ borderRadius: '0px'
427
+ },
428
+ '& .mq-overarrow-inner': {
429
+ border: 'none !important',
430
+ paddingTop: '0 !important'
431
+ },
432
+ '& .mq-overarrow-inner-right': {
433
+ display: 'none !important'
434
+ },
435
+ '& .mq-overarrow-inner-left': {
436
+ display: 'none !important'
437
+ },
438
+ '& .mq-longdiv-inner': {
439
+ borderTop: '1px solid !important',
440
+ paddingTop: '1.5px !important'
441
+ },
442
+ '& .mq-overarrow.mq-arrow-both': {
443
+ minWidth: '1.23em'
444
+ },
445
+ '& .mq-parallelogram': {
446
+ lineHeight: 0.85
447
+ }
448
+ },
449
+ inputContainer: {
450
+ minWidth: '500px',
451
+ maxWidth: '900px',
452
+ minHeight: '40px',
453
+ width: '100%',
454
+ display: 'flex',
455
+ marginTop: theme.spacing.unit,
456
+ marginBottom: theme.spacing.unit
457
+ },
458
+ error: {
459
+ border: '2px solid red'
460
+ }
461
+ });
462
+ var EditorAndPad$1 = withStyles$5(styles$3)(EditorAndPad);
463
+ const React$5 = _dll_react;
464
+ const {IconButton: IconButton} = _dll_material_ui__core;
465
+ const {Check: Check} = _dll_material_ui__icons;
466
+ const {withStyles: withStyles$4} = _dll_material_ui__core_styles;
467
+ const PropTypes$4 = _dll_prop_types;
468
+ const _jsxFileName$4 = "/home/circleci/repo/node_modules/@pie-lib/math-toolbar/src/done-button.jsx";
469
+ const RawDoneButton = ({classes, onClick}) => React$5.createElement(IconButton, {
470
+ 'aria-label': "Done",
471
+ className: classes.iconRoot,
472
+ onClick: onClick,
473
+ classes: {
474
+ label: classes.label,
475
+ root: classes.iconRoot
476
+ },
477
+ __self: undefined,
478
+ __source: {
479
+ fileName: _jsxFileName$4,
480
+ lineNumber: 9
481
+ }
482
+ }, React$5.createElement(Check, {
483
+ __self: undefined,
484
+ __source: {
485
+ fileName: _jsxFileName$4,
486
+ lineNumber: 18
487
+ }
488
+ }));
489
+ RawDoneButton.propTypes = {
490
+ classes: PropTypes$4.object.isRequired,
491
+ onClick: PropTypes$4.func
492
+ };
493
+ const styles$2 = {
494
+ iconRoot: {
495
+ verticalAlign: 'top',
496
+ width: '28px',
497
+ height: '28px',
498
+ color: '#00bb00'
499
+ },
500
+ label: {
501
+ position: 'absolute',
502
+ top: '2px'
503
+ }
504
+ };
505
+ const DoneButton = withStyles$4(styles$2)(RawDoneButton);
506
+ const React$4 = _dll_react;
507
+ const classNames = _dll_classnames;
508
+ const debug$1 = _dll_debug;
509
+ const {withStyles: withStyles$3} = _dll_material_ui__core_styles;
510
+ const PropTypes$3 = _dll_prop_types;
511
+ const {mq: mq$2} = _dll_pie_lib__math_input;
512
+ const _jsxFileName$3 = "/home/circleci/repo/node_modules/@pie-lib/math-toolbar/src/math-preview.jsx";
513
+ const log$1 = debug$1('@pie-lib:math-toolbar:math-preview');
514
+ class RawMathPreview extends React$4.Component {
515
+ static __initStatic() {
516
+ this.propTypes = {
517
+ latex: PropTypes$3.string,
518
+ node: PropTypes$3.object,
519
+ classes: PropTypes$3.object,
520
+ isSelected: PropTypes$3.bool,
521
+ onFocus: PropTypes$3.func,
522
+ onBlur: PropTypes$3.func
523
+ };
524
+ }
525
+ render() {
526
+ log$1('[render] data: ', this.props.node.data);
527
+ const latex = this.props.node.data.get('latex');
528
+ const {classes, isSelected, onFocus, onBlur} = this.props;
529
+ return React$4.createElement('div', {
530
+ className: classNames(classes.root, isSelected && classes.selected),
531
+ __self: this,
532
+ __source: {
533
+ fileName: _jsxFileName$3,
534
+ lineNumber: 25
535
+ }
536
+ }, ' ', React$4.createElement('span', {
537
+ className: classes.insideOverlay,
538
+ __self: this,
539
+ __source: {
540
+ fileName: _jsxFileName$3,
541
+ lineNumber: 27
542
+ }
543
+ }), React$4.createElement(mq$2.Static, {
544
+ latex: latex,
545
+ onFocus: onFocus,
546
+ onBlur: onBlur,
547
+ __self: this,
548
+ __source: {
549
+ fileName: _jsxFileName$3,
550
+ lineNumber: 28
551
+ }
552
+ }));
553
+ }
554
+ }
555
+ RawMathPreview.__initStatic();
556
+ const mp = theme => ({
557
+ root: {
558
+ display: 'inline-flex',
559
+ alignItems: 'center',
560
+ position: 'relative',
561
+ '& > .mq-math-mode': {
562
+ border: 'solid 1px lightgrey'
563
+ },
564
+ '& > .mq-focused': {
565
+ outline: 'none',
566
+ boxShadow: 'none',
567
+ border: 'solid 1px black',
568
+ borderRadius: '0px'
569
+ },
570
+ '& *': {
571
+ fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
572
+ },
573
+ '& .mq-overarrow-inner': {
574
+ paddingTop: '0 !important',
575
+ border: 'none !important'
576
+ },
577
+ '& .mq-overarrow.mq-arrow-both': {
578
+ minWidth: '1.23em',
579
+ '& *': {
580
+ lineHeight: '1 !important'
581
+ },
582
+ '&:before': {
583
+ top: '-0.4em',
584
+ left: '-1px'
585
+ },
586
+ '&:after': {
587
+ top: '-2.36em',
588
+ right: '-1px'
589
+ },
590
+ '&.mq-empty:after': {
591
+ top: '-0.45em'
592
+ }
593
+ },
594
+ '& .mq-overarrow.mq-arrow-right': {
595
+ '&:before': {
596
+ top: '-0.4em',
597
+ right: '-1px'
598
+ }
599
+ },
600
+ '& .mq-overarrow-inner-right': {
601
+ display: 'none !important'
602
+ },
603
+ '& .mq-overarrow-inner-left': {
604
+ display: 'none !important'
605
+ },
606
+ '& .mq-longdiv-inner': {
607
+ borderTop: '1px solid !important',
608
+ paddingTop: '1.5px !important'
609
+ },
610
+ '& .mq-parallelogram': {
611
+ lineHeight: 0.85
612
+ }
613
+ },
614
+ selected: {
615
+ border: `solid 1px ${theme.palette.primary.main}`,
616
+ '& > .mq-math-mode': {
617
+ border: 'solid 0px lightgrey'
618
+ }
619
+ },
620
+ insideOverlay: {
621
+ position: 'absolute',
622
+ bottom: 0,
623
+ left: 0,
624
+ right: 0,
625
+ top: 0
626
+ }
627
+ });
628
+ withStyles$3(mp)(RawMathPreview);
629
+ const React$3 = _dll_react;
630
+ const PropTypes$2 = _dll_prop_types;
631
+ const cx$2 = _dll_classnames;
632
+ const {withStyles: withStyles$2} = _dll_material_ui__core_styles;
633
+ const _jsxFileName$2 = "/home/circleci/repo/node_modules/@pie-lib/math-toolbar/src/index.jsx";
634
+ class MathToolbar extends React$3.Component {
635
+ static __initStatic() {
636
+ this.propTypes = {
637
+ autoFocus: PropTypes$2.bool,
638
+ allowAnswerBlock: PropTypes$2.bool,
639
+ controlledKeypad: PropTypes$2.bool,
640
+ controlledKeypadMode: PropTypes$2.bool,
641
+ keypadMode: PropTypes$2.oneOfType([PropTypes$2.string, PropTypes$2.number]),
642
+ classNames: PropTypes$2.object,
643
+ showKeypad: PropTypes$2.bool,
644
+ noDecimal: PropTypes$2.bool,
645
+ additionalKeys: PropTypes$2.array,
646
+ latex: PropTypes$2.string.isRequired,
647
+ onAnswerBlockAdd: PropTypes$2.func,
648
+ onChange: PropTypes$2.func,
649
+ onDone: PropTypes$2.func.isRequired,
650
+ onFocus: PropTypes$2.func,
651
+ onBlur: PropTypes$2.func,
652
+ hideDoneButton: PropTypes$2.bool
653
+ };
654
+ }
655
+ static __initStatic2() {
656
+ this.defaultProps = {
657
+ classNames: {},
658
+ keypadMode: 'item-authoring',
659
+ autoFocus: false,
660
+ allowAnswerBlock: false,
661
+ controlledKeypad: false,
662
+ controlledKeypadMode: false,
663
+ noDecimal: false,
664
+ showKeypad: true,
665
+ additionalKeys: [],
666
+ onChange: () => {},
667
+ onAnswerBlockAdd: () => {},
668
+ onFocus: () => {},
669
+ hideDoneButton: false
670
+ };
671
+ }
672
+ constructor(props) {
673
+ super(props);
674
+ MathToolbar.prototype.__init.call(this);
675
+ MathToolbar.prototype.__init2.call(this);
676
+ this.state = {
677
+ latex: props.latex
678
+ };
679
+ }
680
+ __init() {
681
+ this.done = () => {
682
+ this.props.onDone(this.state.latex);
683
+ };
684
+ }
685
+ UNSAFE_componentWillReceiveProps(nextProps) {
686
+ this.setState({
687
+ latex: nextProps.latex
688
+ });
689
+ }
690
+ __init2() {
691
+ this.onChange = latex => {
692
+ this.setState({
693
+ latex
694
+ });
695
+ this.props.onChange(latex);
696
+ };
697
+ }
698
+ render() {
699
+ const {latex} = this.state;
700
+ const {classNames, autoFocus, allowAnswerBlock, onAnswerBlockAdd, controlledKeypad, controlledKeypadMode, keypadMode, noDecimal, additionalKeys, showKeypad, onFocus, onBlur, hideDoneButton, error, maxResponseAreas} = this.props;
701
+ return React$3.createElement(PureToolbar, {
702
+ autoFocus: autoFocus,
703
+ classNames: classNames,
704
+ onAnswerBlockAdd: onAnswerBlockAdd,
705
+ allowAnswerBlock: allowAnswerBlock,
706
+ latex: latex,
707
+ additionalKeys: additionalKeys,
708
+ noDecimal: noDecimal,
709
+ keypadMode: keypadMode,
710
+ onChange: this.onChange,
711
+ onDone: this.done,
712
+ onFocus: onFocus,
713
+ onBlur: onBlur,
714
+ showKeypad: showKeypad,
715
+ controlledKeypad: controlledKeypad,
716
+ controlledKeypadMode: controlledKeypadMode,
717
+ hideDoneButton: hideDoneButton,
718
+ error: error,
719
+ maxResponseAreas: maxResponseAreas,
720
+ __self: this,
721
+ __source: {
722
+ fileName: _jsxFileName$2,
723
+ lineNumber: 88
724
+ }
725
+ });
726
+ }
727
+ }
728
+ MathToolbar.__initStatic();
729
+ MathToolbar.__initStatic2();
730
+ class RawPureToolbar extends React$3.Component {
731
+ static __initStatic3() {
732
+ this.propTypes = {
733
+ classNames: PropTypes$2.object,
734
+ latex: PropTypes$2.string.isRequired,
735
+ keypadMode: PropTypes$2.oneOfType([PropTypes$2.string, PropTypes$2.number]),
736
+ onChange: PropTypes$2.func.isRequired,
737
+ onDone: PropTypes$2.func.isRequired,
738
+ onBlur: PropTypes$2.func,
739
+ onAnswerBlockAdd: PropTypes$2.func,
740
+ additionalKeys: PropTypes$2.array,
741
+ onFocus: PropTypes$2.func,
742
+ classes: PropTypes$2.object.isRequired,
743
+ autoFocus: PropTypes$2.bool,
744
+ noDecimal: PropTypes$2.bool,
745
+ allowAnswerBlock: PropTypes$2.bool,
746
+ controlledKeypad: PropTypes$2.bool,
747
+ controlledKeypadMode: PropTypes$2.bool,
748
+ showKeypad: PropTypes$2.bool,
749
+ hideDoneButton: PropTypes$2.bool
750
+ };
751
+ }
752
+ render() {
753
+ const {classNames, autoFocus, allowAnswerBlock, onAnswerBlockAdd, controlledKeypad, controlledKeypadMode, additionalKeys, showKeypad, keypadMode, noDecimal, latex, onChange, onDone, onFocus, onBlur, hideDoneButton, classes, error, maxResponseAreas} = this.props;
754
+ return React$3.createElement('div', {
755
+ className: cx$2(classes.pureToolbar, (classNames || ({})).toolbar),
756
+ __self: this,
757
+ __source: {
758
+ fileName: _jsxFileName$2,
759
+ lineNumber: 157
760
+ }
761
+ }, React$3.createElement('div', {
762
+ __self: this,
763
+ __source: {
764
+ fileName: _jsxFileName$2,
765
+ lineNumber: 158
766
+ }
767
+ }), React$3.createElement(EditorAndPad$1, {
768
+ autoFocus: autoFocus,
769
+ keypadMode: keypadMode,
770
+ classNames: classNames || ({}),
771
+ controlledKeypad: controlledKeypad,
772
+ controlledKeypadMode: controlledKeypadMode,
773
+ noDecimal: noDecimal,
774
+ showKeypad: showKeypad,
775
+ additionalKeys: additionalKeys,
776
+ allowAnswerBlock: allowAnswerBlock,
777
+ onAnswerBlockAdd: onAnswerBlockAdd,
778
+ latex: latex,
779
+ onChange: onChange,
780
+ onFocus: onFocus,
781
+ onBlur: onBlur,
782
+ error: error,
783
+ maxResponseAreas: maxResponseAreas,
784
+ __self: this,
785
+ __source: {
786
+ fileName: _jsxFileName$2,
787
+ lineNumber: 159
788
+ }
789
+ }), (!controlledKeypad || controlledKeypad && showKeypad) && !hideDoneButton && React$3.createElement(DoneButton, {
790
+ onClick: onDone,
791
+ __self: this,
792
+ __source: {
793
+ fileName: _jsxFileName$2,
794
+ lineNumber: 178
795
+ }
796
+ }));
797
+ }
798
+ }
799
+ RawPureToolbar.__initStatic3();
800
+ const styles$1 = () => ({
801
+ pureToolbar: {
802
+ display: 'flex',
803
+ width: '100%',
804
+ zIndex: 8,
805
+ alignItems: 'center'
806
+ }
807
+ });
808
+ const PureToolbar = withStyles$2(styles$1)(RawPureToolbar);
8
809
  const React$2 = _dll_react;
9
810
  const cx$1 = _dll_classnames;
10
811
  const {withStyles: withStyles$1} = _dll_material_ui__core_styles;
11
812
  const PropTypes$1 = _dll_prop_types;
12
813
  const {color: color$1} = _dll_pie_lib__render_ui;
13
- const {MathToolbar: MathToolbar} = _dll_pie_lib__math_toolbar;
14
814
  const {mq: mq$1} = _dll_pie_lib__math_input;
15
815
  const _jsxFileName$1 = "/home/circleci/repo/packages/math-inline/src/simple-question-block.jsx";
16
816
  class SimpleQuestionBlockRaw extends React$2.Component {