@pie-element/math-inline 5.9.7 → 5.9.8
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/CHANGELOG.md +8 -0
- package/configure/CHANGELOG.md +8 -0
- package/configure/package.json +4 -4
- package/module/configure.js +4 -4
- package/module/element.js +113 -1533
- package/module/index.html +1 -1
- package/module/manifest.json +4 -4
- package/module/print.html +1 -1
- package/module/print.js +113 -1533
- package/package.json +5 -5
package/module/element.js
CHANGED
|
@@ -1,1493 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
const set$f = o => ({
|
|
5
|
-
...o,
|
|
6
|
-
category: 'comparison'
|
|
7
|
-
});
|
|
8
|
-
const lessThan = set$f({
|
|
9
|
-
name: 'Less than',
|
|
10
|
-
latex: '<',
|
|
11
|
-
command: '\\lt'
|
|
12
|
-
});
|
|
13
|
-
const greaterThan = set$f({
|
|
14
|
-
name: 'Greater than',
|
|
15
|
-
latex: '>',
|
|
16
|
-
command: '\\gt'
|
|
17
|
-
});
|
|
18
|
-
const lessThanEqual = set$f({
|
|
19
|
-
name: 'Less than or equal',
|
|
20
|
-
latex: '\\le',
|
|
21
|
-
symbol: '<=',
|
|
22
|
-
command: '\\le'
|
|
23
|
-
});
|
|
24
|
-
const greaterThanEqual = set$f({
|
|
25
|
-
name: 'Greater than or equal',
|
|
26
|
-
symbol: '>=',
|
|
27
|
-
command: '\\ge',
|
|
28
|
-
latex: '\\ge'
|
|
29
|
-
});
|
|
30
|
-
var comparison = Object.freeze({
|
|
31
|
-
__proto__: null,
|
|
32
|
-
lessThan: lessThan,
|
|
33
|
-
greaterThan: greaterThan,
|
|
34
|
-
lessThanEqual: lessThanEqual,
|
|
35
|
-
greaterThanEqual: greaterThanEqual
|
|
36
|
-
});
|
|
37
|
-
const _$3 = _dll_lodash;
|
|
38
|
-
const mkSet = category => o => ({
|
|
39
|
-
...o,
|
|
40
|
-
category
|
|
41
|
-
});
|
|
42
|
-
const transformToKeySetStructure = (data = []) => {
|
|
43
|
-
const structure = [];
|
|
44
|
-
_$3.times(5, () => {
|
|
45
|
-
structure.push([]);
|
|
46
|
-
});
|
|
47
|
-
let ln = data.length;
|
|
48
|
-
let i = 0;
|
|
49
|
-
let j = 0;
|
|
50
|
-
while (j < ln) {
|
|
51
|
-
structure[i++].push(data[j++]);
|
|
52
|
-
if (i === 5) {
|
|
53
|
-
i = 0;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
return structure;
|
|
57
|
-
};
|
|
58
|
-
const latexAndNameDontExist = base => k => {
|
|
59
|
-
const flattened = _$3.flatten(base);
|
|
60
|
-
const latexExists = flattened.some(b => b.latex === k.latex);
|
|
61
|
-
const nameExists = flattened.some(b => b.name === k.name);
|
|
62
|
-
return !latexExists && !nameExists;
|
|
63
|
-
};
|
|
64
|
-
const extendKeySet = (base = [], keySetData = []) => {
|
|
65
|
-
keySetData = keySetData.filter(latexAndNameDontExist(base));
|
|
66
|
-
const final = [];
|
|
67
|
-
_$3.times(5 - base.length, () => {
|
|
68
|
-
base.push([]);
|
|
69
|
-
});
|
|
70
|
-
_$3.times(5, () => {
|
|
71
|
-
final.push([]);
|
|
72
|
-
});
|
|
73
|
-
const extra = transformToKeySetStructure(keySetData);
|
|
74
|
-
for (let i = 0; i < 5; i++) {
|
|
75
|
-
final[i] = [...base[i], ...extra[i]];
|
|
76
|
-
}
|
|
77
|
-
return final;
|
|
78
|
-
};
|
|
79
|
-
const set$e = mkSet('vars');
|
|
80
|
-
const x = set$e({
|
|
81
|
-
name: 'X',
|
|
82
|
-
latex: 'x',
|
|
83
|
-
write: 'x'
|
|
84
|
-
});
|
|
85
|
-
const y = set$e({
|
|
86
|
-
name: 'Y',
|
|
87
|
-
latex: 'y',
|
|
88
|
-
write: 'y'
|
|
89
|
-
});
|
|
90
|
-
const theta = set$e({
|
|
91
|
-
name: 'Theta',
|
|
92
|
-
latex: '\\theta',
|
|
93
|
-
write: '\\theta'
|
|
94
|
-
});
|
|
95
|
-
var vars = Object.freeze({
|
|
96
|
-
__proto__: null,
|
|
97
|
-
x: x,
|
|
98
|
-
y: y,
|
|
99
|
-
theta: theta
|
|
100
|
-
});
|
|
101
|
-
const set$d = mkSet('fractions');
|
|
102
|
-
const blankOverBlank = set$d({
|
|
103
|
-
name: 'blank/blank',
|
|
104
|
-
latex: '\\frac{}{}',
|
|
105
|
-
command: '\\frac'
|
|
106
|
-
});
|
|
107
|
-
const xOverBlank = set$d({
|
|
108
|
-
latex: '\\frac{x}{ }',
|
|
109
|
-
name: 'X/blank',
|
|
110
|
-
label: 'x/[]',
|
|
111
|
-
command: '/'
|
|
112
|
-
});
|
|
113
|
-
const xBlankBlank = set$d({
|
|
114
|
-
name: 'X (blank/blank)',
|
|
115
|
-
latex: 'x\\frac{}{}',
|
|
116
|
-
label: 'x([]/[])',
|
|
117
|
-
command: '\\frac'
|
|
118
|
-
});
|
|
119
|
-
var fractions = Object.freeze({
|
|
120
|
-
__proto__: null,
|
|
121
|
-
blankOverBlank: blankOverBlank,
|
|
122
|
-
xOverBlank: xOverBlank,
|
|
123
|
-
xBlankBlank: xBlankBlank
|
|
124
|
-
});
|
|
125
|
-
const set$c = mkSet('exponent');
|
|
126
|
-
const squared = set$c({
|
|
127
|
-
name: 'Squared',
|
|
128
|
-
latex: 'x^2',
|
|
129
|
-
write: '^2'
|
|
130
|
-
});
|
|
131
|
-
const xToPowerOfN = set$c({
|
|
132
|
-
name: 'X to the power of n',
|
|
133
|
-
latex: 'x^{}',
|
|
134
|
-
command: '^'
|
|
135
|
-
});
|
|
136
|
-
const squareRoot = set$c({
|
|
137
|
-
name: 'Square root',
|
|
138
|
-
latex: '\\sqrt{}',
|
|
139
|
-
command: '\\sqrt'
|
|
140
|
-
});
|
|
141
|
-
const nthRoot = set$c({
|
|
142
|
-
name: 'Nth root',
|
|
143
|
-
latex: '\\sqrt[{}]{}',
|
|
144
|
-
command: '\\nthroot'
|
|
145
|
-
});
|
|
146
|
-
var exponent = Object.freeze({
|
|
147
|
-
__proto__: null,
|
|
148
|
-
squared: squared,
|
|
149
|
-
xToPowerOfN: xToPowerOfN,
|
|
150
|
-
squareRoot: squareRoot,
|
|
151
|
-
nthRoot: nthRoot
|
|
152
|
-
});
|
|
153
|
-
const set$b = mkSet('misc');
|
|
154
|
-
const plusMinus = set$b({
|
|
155
|
-
name: 'Plus/Minus',
|
|
156
|
-
latex: '\\pm',
|
|
157
|
-
write: '\\pm'
|
|
158
|
-
});
|
|
159
|
-
const absValue = set$b({
|
|
160
|
-
name: 'Absolute Value',
|
|
161
|
-
latex: '\\abs{}',
|
|
162
|
-
symbol: '| |',
|
|
163
|
-
command: '|'
|
|
164
|
-
});
|
|
165
|
-
const parenthesis = set$b({
|
|
166
|
-
name: 'Parenthesis',
|
|
167
|
-
latex: '\\left(\\right)',
|
|
168
|
-
symbol: '( )',
|
|
169
|
-
command: '('
|
|
170
|
-
});
|
|
171
|
-
const brackets = set$b({
|
|
172
|
-
name: 'Brackets',
|
|
173
|
-
latex: '\\left[\\right]',
|
|
174
|
-
symbol: '[ ]',
|
|
175
|
-
command: '['
|
|
176
|
-
});
|
|
177
|
-
const percentage = set$b({
|
|
178
|
-
name: 'Percentage',
|
|
179
|
-
latex: '%',
|
|
180
|
-
command: '%'
|
|
181
|
-
});
|
|
182
|
-
const approx = set$b({
|
|
183
|
-
latex: '\\approx',
|
|
184
|
-
command: '\\approx'
|
|
185
|
-
});
|
|
186
|
-
const nApprox = set$b({
|
|
187
|
-
latex: '\\napprox',
|
|
188
|
-
command: '\\napprox'
|
|
189
|
-
});
|
|
190
|
-
const notEqual = set$b({
|
|
191
|
-
latex: '\\neq',
|
|
192
|
-
command: '\\neq'
|
|
193
|
-
});
|
|
194
|
-
const similar = set$b({
|
|
195
|
-
latex: '\\sim',
|
|
196
|
-
command: '\\sim'
|
|
197
|
-
});
|
|
198
|
-
const notSimilar = set$b({
|
|
199
|
-
latex: '\\nsim',
|
|
200
|
-
command: '\\nsim'
|
|
201
|
-
});
|
|
202
|
-
var misc = Object.freeze({
|
|
203
|
-
__proto__: null,
|
|
204
|
-
plusMinus: plusMinus,
|
|
205
|
-
absValue: absValue,
|
|
206
|
-
parenthesis: parenthesis,
|
|
207
|
-
brackets: brackets,
|
|
208
|
-
percentage: percentage,
|
|
209
|
-
approx: approx,
|
|
210
|
-
nApprox: nApprox,
|
|
211
|
-
notEqual: notEqual,
|
|
212
|
-
similar: similar,
|
|
213
|
-
notSimilar: notSimilar
|
|
214
|
-
});
|
|
215
|
-
const set$a = mkSet('constants');
|
|
216
|
-
const pi = set$a({
|
|
217
|
-
name: 'Pi',
|
|
218
|
-
label: 'π',
|
|
219
|
-
latex: '\\pi',
|
|
220
|
-
command: '\\pi',
|
|
221
|
-
category: 'constants'
|
|
222
|
-
});
|
|
223
|
-
const eulers = set$a({
|
|
224
|
-
name: 'Eulers',
|
|
225
|
-
label: 'e',
|
|
226
|
-
latex: 'e',
|
|
227
|
-
command: 'e',
|
|
228
|
-
category: 'constants'
|
|
229
|
-
});
|
|
230
|
-
const infinity = set$a({
|
|
231
|
-
name: 'Infinity',
|
|
232
|
-
label: '\\infty',
|
|
233
|
-
latex: '\\infty',
|
|
234
|
-
command: '\\infty',
|
|
235
|
-
category: 'constants'
|
|
236
|
-
});
|
|
237
|
-
const halfInfinity = set$a({
|
|
238
|
-
name: 'Half Infinity',
|
|
239
|
-
label: '\\propto',
|
|
240
|
-
latex: '\\propto',
|
|
241
|
-
command: '\\propto',
|
|
242
|
-
category: 'constants'
|
|
243
|
-
});
|
|
244
|
-
var constants = Object.freeze({
|
|
245
|
-
__proto__: null,
|
|
246
|
-
pi: pi,
|
|
247
|
-
eulers: eulers,
|
|
248
|
-
infinity: infinity,
|
|
249
|
-
halfInfinity: halfInfinity
|
|
250
|
-
});
|
|
251
|
-
const set$9 = mkSet('trigonometry');
|
|
252
|
-
const sin = set$9({
|
|
253
|
-
name: 'sin',
|
|
254
|
-
label: 'sin',
|
|
255
|
-
command: '\\sin',
|
|
256
|
-
latex: '\\sin'
|
|
257
|
-
});
|
|
258
|
-
const cos = set$9({
|
|
259
|
-
name: 'cos',
|
|
260
|
-
label: 'cos',
|
|
261
|
-
command: '\\cos',
|
|
262
|
-
latex: '\\cos'
|
|
263
|
-
});
|
|
264
|
-
const tan = set$9({
|
|
265
|
-
name: 'tan',
|
|
266
|
-
label: 'tan',
|
|
267
|
-
command: '\\tan',
|
|
268
|
-
latex: '\\tan'
|
|
269
|
-
});
|
|
270
|
-
const sec = set$9({
|
|
271
|
-
name: 'sec',
|
|
272
|
-
label: 'sec',
|
|
273
|
-
command: '\\sec',
|
|
274
|
-
latex: '\\sec'
|
|
275
|
-
});
|
|
276
|
-
const csc = set$9({
|
|
277
|
-
name: 'csc',
|
|
278
|
-
label: 'csc',
|
|
279
|
-
command: '\\csc',
|
|
280
|
-
latex: '\\csc'
|
|
281
|
-
});
|
|
282
|
-
const cot = set$9({
|
|
283
|
-
name: 'cot',
|
|
284
|
-
label: 'cot',
|
|
285
|
-
command: '\\cot',
|
|
286
|
-
latex: '\\cot'
|
|
287
|
-
});
|
|
288
|
-
var trigonometry = Object.freeze({
|
|
289
|
-
__proto__: null,
|
|
290
|
-
sin: sin,
|
|
291
|
-
cos: cos,
|
|
292
|
-
tan: tan,
|
|
293
|
-
sec: sec,
|
|
294
|
-
csc: csc,
|
|
295
|
-
cot: cot
|
|
296
|
-
});
|
|
297
|
-
const set$8 = o => ({
|
|
298
|
-
...o,
|
|
299
|
-
category: 'geometry'
|
|
300
|
-
});
|
|
301
|
-
const overline = set$8({
|
|
302
|
-
name: 'Overline',
|
|
303
|
-
latex: '\\overline{}',
|
|
304
|
-
command: '\\overline'
|
|
305
|
-
});
|
|
306
|
-
const overRightArrow = set$8({
|
|
307
|
-
name: 'Overline',
|
|
308
|
-
latex: '\\overrightarrow{}',
|
|
309
|
-
command: '\\overrightarrow'
|
|
310
|
-
});
|
|
311
|
-
const overLeftRightArrow = set$8({
|
|
312
|
-
name: 'Overline',
|
|
313
|
-
latex: '\\overleftrightarrow{\\overline{}}',
|
|
314
|
-
symbol: 'AB',
|
|
315
|
-
command: '\\overleftrightarrow'
|
|
316
|
-
});
|
|
317
|
-
const segment = set$8({
|
|
318
|
-
name: 'Segment',
|
|
319
|
-
latex: '\\overleftrightarrow{AB}',
|
|
320
|
-
write: '\\overleftrightarrow{AB}',
|
|
321
|
-
label: 'AB'
|
|
322
|
-
});
|
|
323
|
-
const parallel = set$8({
|
|
324
|
-
name: 'Parallel',
|
|
325
|
-
latex: '\\parallel',
|
|
326
|
-
command: '\\parallel'
|
|
327
|
-
});
|
|
328
|
-
const notParallel = set$8({
|
|
329
|
-
name: 'Not Parallel',
|
|
330
|
-
latex: '\\nparallel',
|
|
331
|
-
command: '\\nparallel'
|
|
332
|
-
});
|
|
333
|
-
const perpindicular = set$8({
|
|
334
|
-
name: 'Perpendicular',
|
|
335
|
-
latex: '\\perp',
|
|
336
|
-
command: '\\perpendicular'
|
|
337
|
-
});
|
|
338
|
-
const angle = set$8({
|
|
339
|
-
name: 'Angle',
|
|
340
|
-
latex: '\\angle',
|
|
341
|
-
command: '\\angle'
|
|
342
|
-
});
|
|
343
|
-
const overArc = set$8({
|
|
344
|
-
name: 'Over arc',
|
|
345
|
-
latex: '\\overarc{\\overline{}}',
|
|
346
|
-
command: '\\overarc'
|
|
347
|
-
});
|
|
348
|
-
const measureOfAngle = set$8({
|
|
349
|
-
name: 'Measure Of Angle',
|
|
350
|
-
latex: '\\measuredangle',
|
|
351
|
-
command: ['m', '\\angle']
|
|
352
|
-
});
|
|
353
|
-
const triangle = set$8({
|
|
354
|
-
name: 'Triangle',
|
|
355
|
-
latex: '\\triangle',
|
|
356
|
-
command: '\\triangle'
|
|
357
|
-
});
|
|
358
|
-
const square = set$8({
|
|
359
|
-
name: 'Square',
|
|
360
|
-
latex: '\\square',
|
|
361
|
-
command: '\\square'
|
|
362
|
-
});
|
|
363
|
-
const parallelogram = set$8({
|
|
364
|
-
name: 'Parallelogram',
|
|
365
|
-
latex: '\\parallelogram',
|
|
366
|
-
command: '\\parallelogram'
|
|
367
|
-
});
|
|
368
|
-
const circledDot = set$8({
|
|
369
|
-
name: 'Circled Dot',
|
|
370
|
-
latex: '\\odot',
|
|
371
|
-
command: '\\odot'
|
|
372
|
-
});
|
|
373
|
-
const degree = set$8({
|
|
374
|
-
name: 'Degree',
|
|
375
|
-
latex: '\\degree',
|
|
376
|
-
command: '\\degree'
|
|
377
|
-
});
|
|
378
|
-
const similarTo = set$8({
|
|
379
|
-
name: 'Similar To',
|
|
380
|
-
command: '\\sim',
|
|
381
|
-
latex: '\\sim'
|
|
382
|
-
});
|
|
383
|
-
const congruentTo = set$8({
|
|
384
|
-
name: 'Congruent To',
|
|
385
|
-
command: '\\cong',
|
|
386
|
-
latex: '\\cong'
|
|
387
|
-
});
|
|
388
|
-
const notCongruentTo = set$8({
|
|
389
|
-
name: 'Not Congruent To',
|
|
390
|
-
command: '\\ncong',
|
|
391
|
-
latex: '\\ncong'
|
|
392
|
-
});
|
|
393
|
-
const primeArcminute = set$8({
|
|
394
|
-
name: 'Prime',
|
|
395
|
-
label: 'pam',
|
|
396
|
-
latex: "'",
|
|
397
|
-
write: "'"
|
|
398
|
-
});
|
|
399
|
-
const doublePrimeArcSecond = set$8({
|
|
400
|
-
name: 'Double Prime/Arcsecond',
|
|
401
|
-
latex: '"',
|
|
402
|
-
write: '"'
|
|
403
|
-
});
|
|
404
|
-
const leftArrow = set$8({
|
|
405
|
-
name: 'Left Arrow',
|
|
406
|
-
latex: '\\leftarrow',
|
|
407
|
-
command: '\\leftarrow'
|
|
408
|
-
});
|
|
409
|
-
const rightArrow = set$8({
|
|
410
|
-
name: 'Right Arrow',
|
|
411
|
-
latex: '\\rightarrow',
|
|
412
|
-
command: '\\rightarrow'
|
|
413
|
-
});
|
|
414
|
-
const leftrightArrow = set$8({
|
|
415
|
-
name: 'Left Right Arrow',
|
|
416
|
-
latex: '\\leftrightarrow',
|
|
417
|
-
command: '\\leftrightarrow'
|
|
418
|
-
});
|
|
419
|
-
var geometry = Object.freeze({
|
|
420
|
-
__proto__: null,
|
|
421
|
-
overline: overline,
|
|
422
|
-
overRightArrow: overRightArrow,
|
|
423
|
-
overLeftRightArrow: overLeftRightArrow,
|
|
424
|
-
segment: segment,
|
|
425
|
-
parallel: parallel,
|
|
426
|
-
notParallel: notParallel,
|
|
427
|
-
perpindicular: perpindicular,
|
|
428
|
-
angle: angle,
|
|
429
|
-
overArc: overArc,
|
|
430
|
-
measureOfAngle: measureOfAngle,
|
|
431
|
-
triangle: triangle,
|
|
432
|
-
square: square,
|
|
433
|
-
parallelogram: parallelogram,
|
|
434
|
-
circledDot: circledDot,
|
|
435
|
-
degree: degree,
|
|
436
|
-
similarTo: similarTo,
|
|
437
|
-
congruentTo: congruentTo,
|
|
438
|
-
notCongruentTo: notCongruentTo,
|
|
439
|
-
primeArcminute: primeArcminute,
|
|
440
|
-
doublePrimeArcSecond: doublePrimeArcSecond,
|
|
441
|
-
leftArrow: leftArrow,
|
|
442
|
-
rightArrow: rightArrow,
|
|
443
|
-
leftrightArrow: leftrightArrow
|
|
444
|
-
});
|
|
445
|
-
const set$7 = mkSet('operators');
|
|
446
|
-
const circleDot = set$7({
|
|
447
|
-
name: 'CircleDot',
|
|
448
|
-
label: '⋅',
|
|
449
|
-
write: '\\cdot'
|
|
450
|
-
});
|
|
451
|
-
var operators = Object.freeze({
|
|
452
|
-
__proto__: null,
|
|
453
|
-
circleDot: circleDot
|
|
454
|
-
});
|
|
455
|
-
const set$6 = mkSet('log');
|
|
456
|
-
const log$6 = set$6({
|
|
457
|
-
name: 'Log',
|
|
458
|
-
label: 'log',
|
|
459
|
-
command: '\\log',
|
|
460
|
-
latex: '\\log'
|
|
461
|
-
});
|
|
462
|
-
const logSubscript = set$6({
|
|
463
|
-
name: 'Log with subscript',
|
|
464
|
-
label: 'log s',
|
|
465
|
-
latex: '\\log_{}',
|
|
466
|
-
command: ['\\log', '_', ' ']
|
|
467
|
-
});
|
|
468
|
-
const ln = set$6({
|
|
469
|
-
name: 'Ln',
|
|
470
|
-
label: 'ln',
|
|
471
|
-
command: '\\ln',
|
|
472
|
-
latex: '\\ln'
|
|
473
|
-
});
|
|
474
|
-
var log$7 = Object.freeze({
|
|
475
|
-
__proto__: null,
|
|
476
|
-
log: log$6,
|
|
477
|
-
logSubscript: logSubscript,
|
|
478
|
-
ln: ln
|
|
479
|
-
});
|
|
480
|
-
const set$5 = mkSet('sub-sup');
|
|
481
|
-
const superscript = set$5({
|
|
482
|
-
name: 'Superscript',
|
|
483
|
-
latex: 'x^{}',
|
|
484
|
-
command: '^'
|
|
485
|
-
});
|
|
486
|
-
const subscript = set$5({
|
|
487
|
-
name: 'Subscript',
|
|
488
|
-
latex: 'x_{}',
|
|
489
|
-
command: '_'
|
|
490
|
-
});
|
|
491
|
-
var subSup = Object.freeze({
|
|
492
|
-
__proto__: null,
|
|
493
|
-
superscript: superscript,
|
|
494
|
-
subscript: subscript
|
|
495
|
-
});
|
|
496
|
-
const set$4 = mkSet('statistics');
|
|
497
|
-
const xBar = set$4({
|
|
498
|
-
name: 'X Bar',
|
|
499
|
-
label: 'x̄',
|
|
500
|
-
latex: '\\overline{x}',
|
|
501
|
-
write: '\\overline{x}'
|
|
502
|
-
});
|
|
503
|
-
const yBar = set$4({
|
|
504
|
-
name: 'Y Bar',
|
|
505
|
-
latex: '\\overline{y}',
|
|
506
|
-
write: '\\overline{y}'
|
|
507
|
-
});
|
|
508
|
-
const mu = set$4({
|
|
509
|
-
name: 'mu',
|
|
510
|
-
label: 'mu',
|
|
511
|
-
latex: '\\mu',
|
|
512
|
-
write: '\\mu'
|
|
513
|
-
});
|
|
514
|
-
const sigma = set$4({
|
|
515
|
-
name: 'Sigma',
|
|
516
|
-
label: '\\Sigma',
|
|
517
|
-
latex: '\\Sigma',
|
|
518
|
-
write: '\\Sigma'
|
|
519
|
-
});
|
|
520
|
-
const smallSigma = set$4({
|
|
521
|
-
name: 'sigma',
|
|
522
|
-
label: '\\sigma',
|
|
523
|
-
latex: '\\sigma',
|
|
524
|
-
write: '\\sigma'
|
|
525
|
-
});
|
|
526
|
-
var statistics = Object.freeze({
|
|
527
|
-
__proto__: null,
|
|
528
|
-
xBar: xBar,
|
|
529
|
-
yBar: yBar,
|
|
530
|
-
mu: mu,
|
|
531
|
-
sigma: sigma,
|
|
532
|
-
smallSigma: smallSigma
|
|
533
|
-
});
|
|
534
|
-
const DELETE = '\u232B';
|
|
535
|
-
const LEFT_ARROW = '◀';
|
|
536
|
-
const RIGHT_ARROW = '▶';
|
|
537
|
-
const DIVIDE = '\u00F7';
|
|
538
|
-
const MULTIPLY = '\u00D7';
|
|
539
|
-
const set$3 = mkSet('operators');
|
|
540
|
-
const equals = set$3({
|
|
541
|
-
write: '=',
|
|
542
|
-
label: '='
|
|
543
|
-
});
|
|
544
|
-
const plus = set$3({
|
|
545
|
-
write: '+',
|
|
546
|
-
label: '+'
|
|
547
|
-
});
|
|
548
|
-
const minus = set$3({
|
|
549
|
-
write: '−',
|
|
550
|
-
label: '−'
|
|
551
|
-
});
|
|
552
|
-
const divide = set$3({
|
|
553
|
-
name: 'divide',
|
|
554
|
-
label: DIVIDE,
|
|
555
|
-
command: '\\divide',
|
|
556
|
-
otherNotation: '\\div'
|
|
557
|
-
});
|
|
558
|
-
const multiply = set$3({
|
|
559
|
-
name: 'multiply',
|
|
560
|
-
label: MULTIPLY,
|
|
561
|
-
command: '\\times'
|
|
562
|
-
});
|
|
563
|
-
var basicOperators = Object.freeze({
|
|
564
|
-
__proto__: null,
|
|
565
|
-
equals: equals,
|
|
566
|
-
plus: plus,
|
|
567
|
-
minus: minus,
|
|
568
|
-
divide: divide,
|
|
569
|
-
multiply: multiply
|
|
570
|
-
});
|
|
571
|
-
const set$2 = mkSet('matrices');
|
|
572
|
-
const singleCellMatrix = set$2({
|
|
573
|
-
name: 'Single Cell Matrix',
|
|
574
|
-
label: '[ ]',
|
|
575
|
-
write: '\\begin{pmatrix}\\end{pmatrix}'
|
|
576
|
-
});
|
|
577
|
-
const doubleCellMatrix = set$2({
|
|
578
|
-
name: 'Double Cell Matrix',
|
|
579
|
-
label: '[ ] [ ] \\\\newline [ ] [ ]',
|
|
580
|
-
write: '\\begin{bmatrix}&\\\\&\\end{bmatrix}'
|
|
581
|
-
});
|
|
582
|
-
var matrices = Object.freeze({
|
|
583
|
-
__proto__: null,
|
|
584
|
-
singleCellMatrix: singleCellMatrix,
|
|
585
|
-
doubleCellMatrix: doubleCellMatrix
|
|
586
|
-
});
|
|
587
|
-
const {times: times} = _dll_lodash;
|
|
588
|
-
const digitMap = {
|
|
589
|
-
0: 'zero',
|
|
590
|
-
1: 'one',
|
|
591
|
-
2: 'two',
|
|
592
|
-
3: 'three',
|
|
593
|
-
4: 'four',
|
|
594
|
-
5: 'five',
|
|
595
|
-
6: 'six',
|
|
596
|
-
7: 'seven',
|
|
597
|
-
8: 'eight',
|
|
598
|
-
9: 'nine'
|
|
599
|
-
};
|
|
600
|
-
const comma$1 = {
|
|
601
|
-
name: 'comma',
|
|
602
|
-
label: ',',
|
|
603
|
-
write: ',',
|
|
604
|
-
category: 'digit'
|
|
605
|
-
};
|
|
606
|
-
const decimalPoint$1 = {
|
|
607
|
-
name: 'decimal-point',
|
|
608
|
-
label: '.',
|
|
609
|
-
write: '.',
|
|
610
|
-
category: 'digit'
|
|
611
|
-
};
|
|
612
|
-
var digits = times(10, String).map(n => {
|
|
613
|
-
return {
|
|
614
|
-
name: digitMap[n],
|
|
615
|
-
write: n,
|
|
616
|
-
label: n,
|
|
617
|
-
category: 'digit'
|
|
618
|
-
};
|
|
619
|
-
}).reduce((acc, o) => {
|
|
620
|
-
acc[o.name] = o;
|
|
621
|
-
return acc;
|
|
622
|
-
}, {
|
|
623
|
-
comma: comma$1,
|
|
624
|
-
decimalPoint: decimalPoint$1
|
|
625
|
-
});
|
|
626
|
-
const set$1 = mkSet('logic');
|
|
627
|
-
const therefore = set$1({
|
|
628
|
-
name: 'Therefore',
|
|
629
|
-
label: '∴',
|
|
630
|
-
write: '∴'
|
|
631
|
-
});
|
|
632
|
-
const longDivision = set$1({
|
|
633
|
-
name: 'Long division',
|
|
634
|
-
latex: '\\longdiv{}',
|
|
635
|
-
command: '\\longdiv'
|
|
636
|
-
});
|
|
637
|
-
const set = mkSet('navigation');
|
|
638
|
-
const left = set({
|
|
639
|
-
label: LEFT_ARROW,
|
|
640
|
-
keystroke: 'Left'
|
|
641
|
-
});
|
|
642
|
-
const right = set({
|
|
643
|
-
label: RIGHT_ARROW,
|
|
644
|
-
keystroke: 'Right'
|
|
645
|
-
});
|
|
646
|
-
const del = {
|
|
647
|
-
label: DELETE,
|
|
648
|
-
category: 'edit',
|
|
649
|
-
keystroke: 'Backspace'
|
|
650
|
-
};
|
|
651
|
-
const hs = [[blankOverBlank, percentage, x, squared, squareRoot], [circleDot, y, subscript, xToPowerOfN, nthRoot], [plusMinus, lessThan, greaterThan, lessThanEqual, greaterThanEqual], [pi, theta, parenthesis, brackets, absValue], [notEqual, sin, cos, tan, degree]];
|
|
652
|
-
const advancedAlgebra = (() => {
|
|
653
|
-
const out = [...hs.map(arr => [...arr])];
|
|
654
|
-
out[0].push({
|
|
655
|
-
name: 'i',
|
|
656
|
-
latex: 'i',
|
|
657
|
-
write: 'i'
|
|
658
|
-
});
|
|
659
|
-
out[1].push(log$6);
|
|
660
|
-
out[2].push(logSubscript);
|
|
661
|
-
out[3].push(ln);
|
|
662
|
-
out[4].push(eulers);
|
|
663
|
-
return out;
|
|
664
|
-
})();
|
|
665
|
-
const statisticsSet = (() => {
|
|
666
|
-
const out = [...hs.map(arr => [...arr])];
|
|
667
|
-
out[0].push(mu);
|
|
668
|
-
out[1].push(xBar);
|
|
669
|
-
out[2].push(yBar);
|
|
670
|
-
out[3].push(sigma);
|
|
671
|
-
out[4].push(smallSigma);
|
|
672
|
-
return out;
|
|
673
|
-
})();
|
|
674
|
-
const gradeSets = [{
|
|
675
|
-
predicate: n => n >= 3 && n <= 5,
|
|
676
|
-
set: [[lessThan, greaterThan], [xOverBlank, xBlankBlank], [x, longDivision]]
|
|
677
|
-
}, {
|
|
678
|
-
predicate: n => n >= 6 && n <= 7,
|
|
679
|
-
set: [[degree, lessThan, greaterThan], [circleDot, lessThanEqual, greaterThanEqual], [x, y, squared, xToPowerOfN], [plusMinus, xOverBlank, xBlankBlank, squareRoot], [pi, parenthesis, absValue, nthRoot]]
|
|
680
|
-
}, {
|
|
681
|
-
predicate: n => n >= 8 || n === 'HS',
|
|
682
|
-
set: hs
|
|
683
|
-
}, {
|
|
684
|
-
predicate: 'non-negative-integers',
|
|
685
|
-
set: [[digits.seven, digits.eight, digits.nine], [digits.four, digits.five, digits.six], [digits.one, digits.two, digits.three], [digits.zero, {
|
|
686
|
-
name: '',
|
|
687
|
-
latex: '',
|
|
688
|
-
write: ''
|
|
689
|
-
}, {
|
|
690
|
-
name: '',
|
|
691
|
-
latex: '',
|
|
692
|
-
write: ''
|
|
693
|
-
}], [left, right, del]]
|
|
694
|
-
}, {
|
|
695
|
-
predicate: 'integers',
|
|
696
|
-
set: [[digits.seven, digits.eight, digits.nine], [digits.four, digits.five, digits.six], [digits.one, digits.two, digits.three], [digits.zero, {
|
|
697
|
-
name: '',
|
|
698
|
-
latex: '',
|
|
699
|
-
write: ''
|
|
700
|
-
}, minus], [left, right, del]]
|
|
701
|
-
}, {
|
|
702
|
-
predicate: 'decimals',
|
|
703
|
-
set: [[digits.seven, digits.eight, digits.nine], [digits.four, digits.five, digits.six], [digits.one, digits.two, digits.three], [digits.zero, digits.decimalPoint, minus], [left, right, del]]
|
|
704
|
-
}, {
|
|
705
|
-
predicate: 'fractions',
|
|
706
|
-
set: [[digits.seven, digits.eight, digits.nine], [digits.four, digits.five, digits.six], [digits.one, digits.two, digits.three], [digits.zero, blankOverBlank, minus], [left, right, del]]
|
|
707
|
-
}, {
|
|
708
|
-
predicate: 'geometry',
|
|
709
|
-
set: [[blankOverBlank, degree, primeArcminute, doublePrimeArcSecond, congruentTo, similarTo], [circleDot, angle, measureOfAngle, triangle, notCongruentTo, notSimilar], [sin, cos, tan, pi, squareRoot, nthRoot], [csc, sec, cot, theta, subscript, xToPowerOfN], [overline, overRightArrow, overLeftRightArrow, overArc, perpindicular, parallel]]
|
|
710
|
-
}, {
|
|
711
|
-
predicate: 'advanced-algebra',
|
|
712
|
-
set: advancedAlgebra
|
|
713
|
-
}, {
|
|
714
|
-
predicate: 'statistics',
|
|
715
|
-
set: statisticsSet
|
|
716
|
-
}, {
|
|
717
|
-
predicate: 'item-authoring',
|
|
718
|
-
set: [[divide, blankOverBlank, longDivision, halfInfinity, squared, squareRoot, overline, overRightArrow, overLeftRightArrow, log$6], [multiply, circleDot, {
|
|
719
|
-
name: '',
|
|
720
|
-
latex: '',
|
|
721
|
-
write: ''
|
|
722
|
-
}, subscript, xToPowerOfN, nthRoot, perpindicular, parallel, overArc, logSubscript], [plusMinus, pi, theta, degree, angle, leftArrow, rightArrow, triangle, square, ln], [notEqual, absValue, smallSigma, mu, therefore, sigma, leftrightArrow, sin, cos, tan], [lessThanEqual, greaterThanEqual, {
|
|
723
|
-
name: '',
|
|
724
|
-
latex: '',
|
|
725
|
-
write: ''
|
|
726
|
-
}, {
|
|
727
|
-
name: '',
|
|
728
|
-
latex: '',
|
|
729
|
-
write: ''
|
|
730
|
-
}, infinity, {
|
|
731
|
-
name: '',
|
|
732
|
-
latex: '',
|
|
733
|
-
write: ''
|
|
734
|
-
}, {
|
|
735
|
-
name: '',
|
|
736
|
-
latex: '',
|
|
737
|
-
write: ''
|
|
738
|
-
}, csc, sec, cot]]
|
|
739
|
-
}];
|
|
740
|
-
const keysForGrade = n => {
|
|
741
|
-
const number = parseInt(n, 10);
|
|
742
|
-
n = isNaN(number) ? n : number;
|
|
743
|
-
if (!n) {
|
|
744
|
-
return [];
|
|
745
|
-
}
|
|
746
|
-
const match = gradeSets.find(gs => {
|
|
747
|
-
if (typeof gs.predicate === 'string') {
|
|
748
|
-
return gs.predicate === n;
|
|
749
|
-
} else {
|
|
750
|
-
return gs.predicate(n);
|
|
751
|
-
}
|
|
752
|
-
});
|
|
753
|
-
if (match) {
|
|
754
|
-
return match.set || [];
|
|
755
|
-
}
|
|
756
|
-
};
|
|
757
|
-
const ALL_KEYS = [...Object.values(basicOperators), ...Object.values(comparison), ...Object.values(constants), ...Object.values(digits), ...Object.values(exponent), ...Object.values(fractions), ...Object.values(geometry), ...Object.values(log$7), ...Object.values(matrices), ...Object.values(misc), ...Object.values(operators), ...Object.values(statistics), ...Object.values(subSup), ...Object.values(trigonometry), ...Object.values(vars)];
|
|
758
|
-
const normalizeAdditionalKeys = additionalKeys => {
|
|
759
|
-
return (additionalKeys || []).map(additionalkey => {
|
|
760
|
-
const {latex} = additionalkey;
|
|
761
|
-
const predefinedKey = (ALL_KEYS || []).find(key => latex === key.latex || latex === key.write || latex === key.command || latex === key.otherNotation);
|
|
762
|
-
return predefinedKey || additionalkey;
|
|
763
|
-
});
|
|
764
|
-
};
|
|
765
|
-
const {one, two, three, four, five, six, seven, eight, nine, zero, comma, decimalPoint} = digits;
|
|
766
|
-
const baseSet = [[seven, eight, nine, divide], [four, five, six, multiply], [one, two, three, minus], [zero, decimalPoint, comma, plus], [left, right, del, equals]];
|
|
767
|
-
const _$2 = _dll_lodash;
|
|
768
|
-
const sortKeys = keys => {
|
|
769
|
-
_$2.times(5 - keys.length, () => {
|
|
770
|
-
keys.push([]);
|
|
771
|
-
});
|
|
772
|
-
const out = _$2.zip.apply(null, keys);
|
|
773
|
-
return out;
|
|
774
|
-
};
|
|
775
|
-
const registerLineBreak = function (MQ) {
|
|
776
|
-
MQ.registerEmbed('newLine', () => {
|
|
777
|
-
return {
|
|
778
|
-
htmlString: '<div class="newLine"></div>',
|
|
779
|
-
text: () => 'testText',
|
|
780
|
-
latex: () => '\\embed{newLine}[]'
|
|
781
|
-
};
|
|
782
|
-
});
|
|
783
|
-
};
|
|
784
|
-
const React$a = _dll_react;
|
|
785
|
-
const PropTypes$9 = _dll_prop_types;
|
|
786
|
-
const {withStyles: withStyles$7} = _dll_material_ui__core_styles;
|
|
787
|
-
const debug$5 = _dll_debug;
|
|
788
|
-
const classNames$2 = _dll_classnames;
|
|
789
|
-
const MathQuill$3 = _dll_pie_framework__mathquill;
|
|
790
|
-
const _jsxFileName$9 = "/home/circleci/repo/node_modules/@pie-lib/math-input/src/mq/input.jsx";
|
|
791
|
-
let MQ$1;
|
|
792
|
-
if (typeof window !== 'undefined') {
|
|
793
|
-
MQ$1 = MathQuill$3.getInterface(2);
|
|
794
|
-
if (MQ$1 && MQ$1.registerEmbed) {
|
|
795
|
-
registerLineBreak(MQ$1);
|
|
796
|
-
}
|
|
797
|
-
}
|
|
798
|
-
const log$5 = debug$5('math-input:mq:input');
|
|
799
|
-
class Input extends React$a.Component {
|
|
800
|
-
constructor(...args) {
|
|
801
|
-
super(...args);
|
|
802
|
-
Input.prototype.__init.call(this);
|
|
803
|
-
Input.prototype.__init2.call(this);
|
|
804
|
-
Input.prototype.__init3.call(this);
|
|
805
|
-
}
|
|
806
|
-
static __initStatic() {
|
|
807
|
-
this.propTypes = {
|
|
808
|
-
className: PropTypes$9.string,
|
|
809
|
-
classes: PropTypes$9.object.isRequired,
|
|
810
|
-
onClick: PropTypes$9.func,
|
|
811
|
-
onChange: PropTypes$9.func,
|
|
812
|
-
latex: PropTypes$9.string,
|
|
813
|
-
onFocus: PropTypes$9.func,
|
|
814
|
-
onBlur: PropTypes$9.func
|
|
815
|
-
};
|
|
816
|
-
}
|
|
817
|
-
componentDidMount() {
|
|
818
|
-
if (!MQ$1) {
|
|
819
|
-
throw new Error('MQ is not defined - but component has mounted?');
|
|
820
|
-
}
|
|
821
|
-
this.mathField = MQ$1.MathField(this.input, {
|
|
822
|
-
handlers: {
|
|
823
|
-
edit: this.onInputEdit.bind(this)
|
|
824
|
-
}
|
|
825
|
-
});
|
|
826
|
-
this.updateLatex();
|
|
827
|
-
}
|
|
828
|
-
componentDidUpdate() {
|
|
829
|
-
this.updateLatex();
|
|
830
|
-
}
|
|
831
|
-
updateLatex() {
|
|
832
|
-
if (!this.mathField) {
|
|
833
|
-
return;
|
|
834
|
-
}
|
|
835
|
-
const {latex} = this.props;
|
|
836
|
-
if (latex) {
|
|
837
|
-
this.mathField.latex(latex);
|
|
838
|
-
}
|
|
839
|
-
}
|
|
840
|
-
clear() {
|
|
841
|
-
this.mathField.latex('');
|
|
842
|
-
return '';
|
|
843
|
-
}
|
|
844
|
-
blur() {
|
|
845
|
-
log$5('blur mathfield');
|
|
846
|
-
this.mathField.blur();
|
|
847
|
-
}
|
|
848
|
-
focus() {
|
|
849
|
-
log$5('focus mathfield...');
|
|
850
|
-
this.mathField.focus();
|
|
851
|
-
}
|
|
852
|
-
command(v) {
|
|
853
|
-
log$5('command: ', v);
|
|
854
|
-
if (Array.isArray(v)) {
|
|
855
|
-
v.forEach(vv => {
|
|
856
|
-
this.mathField.cmd(vv);
|
|
857
|
-
});
|
|
858
|
-
} else {
|
|
859
|
-
this.mathField.cmd(v);
|
|
860
|
-
}
|
|
861
|
-
this.mathField.focus();
|
|
862
|
-
return this.mathField.latex();
|
|
863
|
-
}
|
|
864
|
-
keystroke(v) {
|
|
865
|
-
this.mathField.keystroke(v);
|
|
866
|
-
this.mathField.focus();
|
|
867
|
-
return this.mathField.latex();
|
|
868
|
-
}
|
|
869
|
-
write(v) {
|
|
870
|
-
log$5('write: ', v);
|
|
871
|
-
this.mathField.write(v);
|
|
872
|
-
this.mathField.focus();
|
|
873
|
-
return this.mathField.latex();
|
|
874
|
-
}
|
|
875
|
-
__init() {
|
|
876
|
-
this.onInputEdit = () => {
|
|
877
|
-
log$5('[onInputEdit] ...');
|
|
878
|
-
const {onChange} = this.props;
|
|
879
|
-
if (!this.mathField) {
|
|
880
|
-
return;
|
|
881
|
-
}
|
|
882
|
-
if (onChange) {
|
|
883
|
-
onChange(this.mathField.latex());
|
|
884
|
-
}
|
|
885
|
-
};
|
|
886
|
-
}
|
|
887
|
-
__init2() {
|
|
888
|
-
this.refresh = () => {
|
|
889
|
-
this.blur();
|
|
890
|
-
this.focus();
|
|
891
|
-
};
|
|
892
|
-
}
|
|
893
|
-
__init3() {
|
|
894
|
-
this.onKeyPress = event => {
|
|
895
|
-
const keys = Object.keys(this.mathField.__controller.options);
|
|
896
|
-
if (keys.indexOf('ignoreNextMousedown') < 0) {
|
|
897
|
-
this.refresh();
|
|
898
|
-
}
|
|
899
|
-
if (event.charCode === 13) {
|
|
900
|
-
this.write('\\embed{newLine}[]');
|
|
901
|
-
this.onInputEdit();
|
|
902
|
-
}
|
|
903
|
-
};
|
|
904
|
-
}
|
|
905
|
-
shouldComponentUpdate(nextProps) {
|
|
906
|
-
log$5('next: ', nextProps.latex);
|
|
907
|
-
log$5('current: ', this.mathField.latex());
|
|
908
|
-
return nextProps.latex !== this.mathField.latex();
|
|
909
|
-
}
|
|
910
|
-
render() {
|
|
911
|
-
const {onClick, onFocus, onBlur, classes, className} = this.props;
|
|
912
|
-
return React$a.createElement('span', {
|
|
913
|
-
className: classNames$2(classes.input, className),
|
|
914
|
-
onKeyPress: this.onKeyPress,
|
|
915
|
-
onClick: onClick,
|
|
916
|
-
onFocus: onFocus,
|
|
917
|
-
onBlur: onBlur,
|
|
918
|
-
ref: r => this.input = r,
|
|
919
|
-
__self: this,
|
|
920
|
-
__source: {
|
|
921
|
-
fileName: _jsxFileName$9,
|
|
922
|
-
lineNumber: 149
|
|
923
|
-
}
|
|
924
|
-
});
|
|
925
|
-
}
|
|
926
|
-
}
|
|
927
|
-
Input.__initStatic();
|
|
928
|
-
const styles$5 = () => ({});
|
|
929
|
-
var input = withStyles$7(styles$5)(Input);
|
|
930
|
-
const PropTypes$8 = _dll_prop_types;
|
|
931
|
-
const React$9 = _dll_react;
|
|
932
|
-
const debug$4 = _dll_debug;
|
|
933
|
-
const MathQuill$2 = _dll_pie_framework__mathquill;
|
|
934
|
-
const _jsxFileName$8 = "/home/circleci/repo/node_modules/@pie-lib/math-input/src/mq/static.jsx";
|
|
935
|
-
let MQ;
|
|
936
|
-
if (typeof window !== 'undefined') {
|
|
937
|
-
MQ = MathQuill$2.getInterface(2);
|
|
938
|
-
}
|
|
939
|
-
const log$4 = debug$4('pie-lib:math-input:mq:static');
|
|
940
|
-
const REGEX$1 = /\\MathQuillMathField\[r\d*\]\{(.*?)\}/g;
|
|
941
|
-
const WHITESPACE_REGEX = / /g;
|
|
942
|
-
function stripSpaces(string = '') {
|
|
943
|
-
return string.replace(WHITESPACE_REGEX, '');
|
|
944
|
-
}
|
|
945
|
-
class Static extends React$9.Component {
|
|
946
|
-
constructor(...args) {
|
|
947
|
-
super(...args);
|
|
948
|
-
Static.prototype.__init.call(this);
|
|
949
|
-
}
|
|
950
|
-
static __initStatic() {
|
|
951
|
-
this.propTypes = {
|
|
952
|
-
latex: PropTypes$8.string.isRequired,
|
|
953
|
-
onFocus: PropTypes$8.func,
|
|
954
|
-
onBlur: PropTypes$8.func,
|
|
955
|
-
className: PropTypes$8.string,
|
|
956
|
-
getFieldName: PropTypes$8.func,
|
|
957
|
-
onSubFieldChange: PropTypes$8.func,
|
|
958
|
-
onSubFieldFocus: PropTypes$8.func,
|
|
959
|
-
setInput: PropTypes$8.func
|
|
960
|
-
};
|
|
961
|
-
}
|
|
962
|
-
componentDidMount() {
|
|
963
|
-
this.update();
|
|
964
|
-
updateSpans();
|
|
965
|
-
}
|
|
966
|
-
componentDidUpdate() {
|
|
967
|
-
this.update();
|
|
968
|
-
updateSpans();
|
|
969
|
-
}
|
|
970
|
-
onInputEdit(field) {
|
|
971
|
-
if (!this.mathField) {
|
|
972
|
-
return;
|
|
973
|
-
}
|
|
974
|
-
const name = this.props.getFieldName(field, this.mathField.innerFields);
|
|
975
|
-
if (this.props.onSubFieldChange) {
|
|
976
|
-
this.props.onSubFieldChange(name, field.latex());
|
|
977
|
-
}
|
|
978
|
-
}
|
|
979
|
-
update() {
|
|
980
|
-
if (!MQ) {
|
|
981
|
-
throw new Error('MQ is not defined - but component has mounted?');
|
|
982
|
-
}
|
|
983
|
-
if (!this.mathField) {
|
|
984
|
-
this.mathField = MQ.StaticMath(this.input, {
|
|
985
|
-
handlers: {
|
|
986
|
-
edit: this.onInputEdit.bind(this)
|
|
987
|
-
}
|
|
988
|
-
});
|
|
989
|
-
}
|
|
990
|
-
try {
|
|
991
|
-
this.mathField.parseLatex(this.props.latex);
|
|
992
|
-
this.mathField.latex(this.props.latex);
|
|
993
|
-
} catch (e) {
|
|
994
|
-
this.mathField.latex('\\MathQuillMathField[r1]{}');
|
|
995
|
-
}
|
|
996
|
-
}
|
|
997
|
-
blur() {
|
|
998
|
-
log$4('blur mathfield');
|
|
999
|
-
this.mathField.blur();
|
|
1000
|
-
}
|
|
1001
|
-
focus() {
|
|
1002
|
-
log$4('focus mathfield...');
|
|
1003
|
-
this.mathField.focus();
|
|
1004
|
-
}
|
|
1005
|
-
shouldComponentUpdate(nextProps) {
|
|
1006
|
-
try {
|
|
1007
|
-
const parsedLatex = this.mathField.parseLatex(nextProps.latex);
|
|
1008
|
-
const stripped = stripSpaces(parsedLatex);
|
|
1009
|
-
const newFieldCount = (nextProps.latex.match(REGEX$1) || []).length;
|
|
1010
|
-
const out = stripped !== stripSpaces(this.mathField.latex().trim()) || newFieldCount !== Object.keys(this.mathField.innerFields).length / 2;
|
|
1011
|
-
log$4('[shouldComponentUpdate] ', out);
|
|
1012
|
-
return out;
|
|
1013
|
-
} catch (e) {
|
|
1014
|
-
console.warn('Error parsing latex:', e.message, 'skip update');
|
|
1015
|
-
console.warn(e);
|
|
1016
|
-
return false;
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
|
-
__init() {
|
|
1020
|
-
this.onFocus = e => {
|
|
1021
|
-
try {
|
|
1022
|
-
let rootBlock = e.target.parentElement.nextSibling;
|
|
1023
|
-
let id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);
|
|
1024
|
-
if (!id) {
|
|
1025
|
-
rootBlock = rootBlock.parentElement;
|
|
1026
|
-
id = parseInt(rootBlock.getAttribute('mathquill-block-id'), 10);
|
|
1027
|
-
}
|
|
1028
|
-
const innerField = this.mathField.innerFields.find(f => f.id === id);
|
|
1029
|
-
if (innerField) {
|
|
1030
|
-
const name = this.props.getFieldName(innerField, this.mathField.innerFields);
|
|
1031
|
-
if (this.props.setInput) {
|
|
1032
|
-
this.props.setInput(innerField);
|
|
1033
|
-
}
|
|
1034
|
-
this.props.onSubFieldFocus(name, innerField);
|
|
1035
|
-
}
|
|
1036
|
-
} catch (err) {
|
|
1037
|
-
console.error('error finding root block', err.message);
|
|
1038
|
-
}
|
|
1039
|
-
};
|
|
1040
|
-
}
|
|
1041
|
-
render() {
|
|
1042
|
-
const {onBlur, className} = this.props;
|
|
1043
|
-
return React$9.createElement('span', {
|
|
1044
|
-
className: className,
|
|
1045
|
-
onFocus: this.onFocus,
|
|
1046
|
-
onBlur: onBlur,
|
|
1047
|
-
ref: r => this.input = r,
|
|
1048
|
-
__self: this,
|
|
1049
|
-
__source: {
|
|
1050
|
-
fileName: _jsxFileName$8,
|
|
1051
|
-
lineNumber: 137
|
|
1052
|
-
}
|
|
1053
|
-
});
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
Static.__initStatic();
|
|
1057
|
-
const React$8 = _dll_react;
|
|
1058
|
-
const PropTypes$7 = _dll_prop_types;
|
|
1059
|
-
const {Button: Button$1} = _dll_material_ui__core;
|
|
1060
|
-
const {IconButton: IconButton$1} = _dll_material_ui__core;
|
|
1061
|
-
const {colors: {green: green}} = _dll_material_ui__core;
|
|
1062
|
-
const {withStyles: withStyles$6} = _dll_material_ui__core_styles;
|
|
1063
|
-
const classNames$1 = _dll_classnames;
|
|
1064
|
-
const {lighten: lighten} = _dll_material_ui__core_styles_color_manipulator;
|
|
1065
|
-
const {fade: fade} = _dll_material_ui__core_styles_color_manipulator;
|
|
1066
|
-
const debug$3 = _dll_debug;
|
|
1067
|
-
const _$1 = _dll_lodash;
|
|
1068
|
-
const _jsxFileName$7 = "/home/circleci/repo/node_modules/@pie-lib/math-input/src/keypad/index.jsx";
|
|
1069
|
-
const log$3 = debug$3('pie-lib:math-inline:keypad');
|
|
1070
|
-
const LatexButton = withStyles$6(theme => ({
|
|
1071
|
-
root: {
|
|
1072
|
-
textTransform: 'none',
|
|
1073
|
-
padding: 0,
|
|
1074
|
-
margin: 0,
|
|
1075
|
-
fontSize: '110% !important'
|
|
1076
|
-
},
|
|
1077
|
-
latexButton: {
|
|
1078
|
-
pointerEvents: 'none',
|
|
1079
|
-
textTransform: 'none !important',
|
|
1080
|
-
'& .mq-scaled.mq-sqrt-prefix': {
|
|
1081
|
-
transform: 'scale(1, 0.9) !important'
|
|
1082
|
-
},
|
|
1083
|
-
'& .mq-sup-only .mq-sup': {
|
|
1084
|
-
marginBottom: '0.9px !important'
|
|
1085
|
-
},
|
|
1086
|
-
'& .mq-empty': {
|
|
1087
|
-
backgroundColor: `${fade(theme.palette.secondary.main, 0.4)} !important`
|
|
1088
|
-
},
|
|
1089
|
-
'& .mq-overline .mq-overline-inner': {
|
|
1090
|
-
borderTop: '2px solid black'
|
|
1091
|
-
},
|
|
1092
|
-
'& .mq-overarrow': {
|
|
1093
|
-
width: '30px',
|
|
1094
|
-
marginTop: '0 !important',
|
|
1095
|
-
borderTop: '2px solid black',
|
|
1096
|
-
'&.mq-arrow-both': {
|
|
1097
|
-
'& *': {
|
|
1098
|
-
lineHeight: '1 !important'
|
|
1099
|
-
},
|
|
1100
|
-
'&:before': {
|
|
1101
|
-
fontSize: '80%',
|
|
1102
|
-
left: 'calc(-13%)',
|
|
1103
|
-
top: '-0.25em'
|
|
1104
|
-
},
|
|
1105
|
-
'&:after': {
|
|
1106
|
-
fontSize: '80% !important',
|
|
1107
|
-
right: 'calc(-13%) !important',
|
|
1108
|
-
top: '-1.5em'
|
|
1109
|
-
},
|
|
1110
|
-
'&.mq-empty:before': {
|
|
1111
|
-
fontSize: '80%',
|
|
1112
|
-
left: 'calc(-13%)',
|
|
1113
|
-
top: '-0.25em'
|
|
1114
|
-
},
|
|
1115
|
-
'&.mq-empty:after': {
|
|
1116
|
-
fontSize: '80%',
|
|
1117
|
-
right: 'calc(-13%)',
|
|
1118
|
-
top: '-0.25em'
|
|
1119
|
-
},
|
|
1120
|
-
'&.mq-empty': {
|
|
1121
|
-
minHeight: '1.4em'
|
|
1122
|
-
}
|
|
1123
|
-
},
|
|
1124
|
-
'&.mq-arrow-right:before': {
|
|
1125
|
-
fontSize: '80%',
|
|
1126
|
-
right: 'calc(-13%)',
|
|
1127
|
-
top: '-0.25em'
|
|
1128
|
-
},
|
|
1129
|
-
'& .mq-overarrow-inner': {
|
|
1130
|
-
border: 'none !important'
|
|
1131
|
-
},
|
|
1132
|
-
'& .mq-overarrow-inner .mq-overarrow-inner-right': {
|
|
1133
|
-
display: 'none !important'
|
|
1134
|
-
}
|
|
1135
|
-
},
|
|
1136
|
-
'& .mq-root-block': {
|
|
1137
|
-
padding: '5px'
|
|
1138
|
-
},
|
|
1139
|
-
'& .mq-overarrow.mq-arrow-both.mq-empty:after': {
|
|
1140
|
-
right: '-6px',
|
|
1141
|
-
fontSize: '80% !important',
|
|
1142
|
-
top: '-3px'
|
|
1143
|
-
},
|
|
1144
|
-
'& .mq-overarrow.mq-arrow-right.mq-empty:before': {
|
|
1145
|
-
right: '-5px',
|
|
1146
|
-
fontSize: '80% !important',
|
|
1147
|
-
top: '-3px'
|
|
1148
|
-
},
|
|
1149
|
-
'& .mq-overarrow.mq-arrow-both.mq-empty:before': {
|
|
1150
|
-
left: '-6px',
|
|
1151
|
-
fontSize: '80% !important',
|
|
1152
|
-
top: '-3px'
|
|
1153
|
-
},
|
|
1154
|
-
'& .mq-longdiv-inner': {
|
|
1155
|
-
borderTop: '1px solid !important',
|
|
1156
|
-
paddingTop: '1.5px !important'
|
|
1157
|
-
},
|
|
1158
|
-
'& .mq-parallelogram': {
|
|
1159
|
-
lineHeight: 0.85
|
|
1160
|
-
},
|
|
1161
|
-
'& .mq-overarc': {
|
|
1162
|
-
borderTop: '2px solid black !important',
|
|
1163
|
-
'& .mq-overline-inner': {
|
|
1164
|
-
borderTop: 'none !important',
|
|
1165
|
-
paddingTop: '0 !important'
|
|
1166
|
-
}
|
|
1167
|
-
}
|
|
1168
|
-
},
|
|
1169
|
-
parallelButton: {
|
|
1170
|
-
fontStyle: 'italic'
|
|
1171
|
-
},
|
|
1172
|
-
leftRightArrowButton: {
|
|
1173
|
-
'& .mq-overarrow.mq-arrow-both': {
|
|
1174
|
-
'& .mq-overline-inner': {
|
|
1175
|
-
borderTop: 'none !important',
|
|
1176
|
-
paddingTop: '0 !important'
|
|
1177
|
-
},
|
|
1178
|
-
'&:after': {
|
|
1179
|
-
top: '-1.64em !important'
|
|
1180
|
-
}
|
|
1181
|
-
}
|
|
1182
|
-
}
|
|
1183
|
-
}))(props => {
|
|
1184
|
-
let buttonClass;
|
|
1185
|
-
if (props.latex === '\\parallel') {
|
|
1186
|
-
buttonClass = classNames$1(props.classes.latexButton, props.mqClassName, props.classes.parallelButton);
|
|
1187
|
-
} else if (props.latex === '\\overleftrightarrow{\\overline{}}') {
|
|
1188
|
-
buttonClass = classNames$1(props.classes.latexButton, props.mqClassName, props.classes.leftRightArrowButton);
|
|
1189
|
-
} else {
|
|
1190
|
-
buttonClass = classNames$1(props.classes.latexButton, props.mqClassName);
|
|
1191
|
-
}
|
|
1192
|
-
try {
|
|
1193
|
-
const MQ = MathQuill.getInterface(2);
|
|
1194
|
-
const span = document.createElement('span');
|
|
1195
|
-
span.innerHTML = '';
|
|
1196
|
-
const mathField = MQ.StaticMath(span);
|
|
1197
|
-
mathField.parseLatex(props.latex);
|
|
1198
|
-
mathField.latex(props.latex);
|
|
1199
|
-
} catch (e) {
|
|
1200
|
-
return React$8.createElement(React$8.Fragment, null);
|
|
1201
|
-
}
|
|
1202
|
-
return React$8.createElement(Button$1, {
|
|
1203
|
-
className: classNames$1(props.classes.root, props.className),
|
|
1204
|
-
onClick: props.onClick,
|
|
1205
|
-
__self: undefined,
|
|
1206
|
-
__source: {
|
|
1207
|
-
fileName: _jsxFileName$7,
|
|
1208
|
-
lineNumber: 163
|
|
1209
|
-
}
|
|
1210
|
-
}, React$8.createElement(Static, {
|
|
1211
|
-
className: buttonClass,
|
|
1212
|
-
latex: props.latex,
|
|
1213
|
-
__self: undefined,
|
|
1214
|
-
__source: {
|
|
1215
|
-
fileName: _jsxFileName$7,
|
|
1216
|
-
lineNumber: 164
|
|
1217
|
-
}
|
|
1218
|
-
}));
|
|
1219
|
-
});
|
|
1220
|
-
class KeyPad extends React$8.Component {
|
|
1221
|
-
constructor(...args) {
|
|
1222
|
-
super(...args);
|
|
1223
|
-
KeyPad.prototype.__init.call(this);
|
|
1224
|
-
KeyPad.prototype.__init2.call(this);
|
|
1225
|
-
KeyPad.prototype.__init3.call(this);
|
|
1226
|
-
}
|
|
1227
|
-
static __initStatic() {
|
|
1228
|
-
this.propTypes = {
|
|
1229
|
-
classes: PropTypes$7.object.isRequired,
|
|
1230
|
-
className: PropTypes$7.string,
|
|
1231
|
-
baseSet: PropTypes$7.array,
|
|
1232
|
-
additionalKeys: PropTypes$7.array,
|
|
1233
|
-
onPress: PropTypes$7.func.isRequired,
|
|
1234
|
-
onFocus: PropTypes$7.func,
|
|
1235
|
-
noDecimal: PropTypes$7.bool,
|
|
1236
|
-
mode: PropTypes$7.string
|
|
1237
|
-
};
|
|
1238
|
-
}
|
|
1239
|
-
static __initStatic2() {
|
|
1240
|
-
this.defaultProps = {
|
|
1241
|
-
baseSet: baseSet,
|
|
1242
|
-
noDecimal: false
|
|
1243
|
-
};
|
|
1244
|
-
}
|
|
1245
|
-
__init() {
|
|
1246
|
-
this.buttonClick = key => {
|
|
1247
|
-
log$3('[buttonClick]', key);
|
|
1248
|
-
const {onPress} = this.props;
|
|
1249
|
-
onPress(key);
|
|
1250
|
-
};
|
|
1251
|
-
}
|
|
1252
|
-
__init2() {
|
|
1253
|
-
this.flowKeys = (base, extras) => {
|
|
1254
|
-
const transposed = [...sortKeys(base), ...sortKeys(extras)];
|
|
1255
|
-
return _$1.flatten(transposed);
|
|
1256
|
-
};
|
|
1257
|
-
}
|
|
1258
|
-
__init3() {
|
|
1259
|
-
this.keyIsNotAllowed = key => {
|
|
1260
|
-
const {noDecimal} = this.props;
|
|
1261
|
-
if ((key.write === '.' && key.label === '.' || key.write === ',' && key.label === ',') && noDecimal) {
|
|
1262
|
-
return true;
|
|
1263
|
-
}
|
|
1264
|
-
return false;
|
|
1265
|
-
};
|
|
1266
|
-
}
|
|
1267
|
-
render() {
|
|
1268
|
-
const {classes, className, baseSet, additionalKeys, onFocus, mode} = this.props;
|
|
1269
|
-
const noBaseSet = ['non-negative-integers', 'integers', 'decimals', 'fractions', 'item-authoring'];
|
|
1270
|
-
const keysWithoutBaseSet = noBaseSet.includes(mode);
|
|
1271
|
-
const allKeys = keysWithoutBaseSet ? this.flowKeys([], additionalKeys || []) : this.flowKeys(baseSet, additionalKeys || []);
|
|
1272
|
-
const shift = allKeys.length % 5 ? 1 : 0;
|
|
1273
|
-
const style = {
|
|
1274
|
-
gridTemplateColumns: `repeat(${Math.floor(allKeys.length / 5) + shift}, minmax(min-content, 150px))`
|
|
1275
|
-
};
|
|
1276
|
-
return React$8.createElement('div', {
|
|
1277
|
-
className: classNames$1(classes.keys, className),
|
|
1278
|
-
style: style,
|
|
1279
|
-
onFocus: onFocus,
|
|
1280
|
-
__self: this,
|
|
1281
|
-
__source: {
|
|
1282
|
-
fileName: _jsxFileName$7,
|
|
1283
|
-
lineNumber: 231
|
|
1284
|
-
}
|
|
1285
|
-
}, allKeys.map((k, index) => {
|
|
1286
|
-
const onClick = this.buttonClick.bind(this, k);
|
|
1287
|
-
if (!k) {
|
|
1288
|
-
return React$8.createElement('span', {
|
|
1289
|
-
key: `empty-${index}`,
|
|
1290
|
-
__self: this,
|
|
1291
|
-
__source: {
|
|
1292
|
-
fileName: _jsxFileName$7,
|
|
1293
|
-
lineNumber: 236
|
|
1294
|
-
}
|
|
1295
|
-
});
|
|
1296
|
-
}
|
|
1297
|
-
const common = {
|
|
1298
|
-
onClick,
|
|
1299
|
-
className: classNames$1(classes.labelButton, !keysWithoutBaseSet && classes[k.category], k.label === ',' && classes.comma, k.label === '.' && classes.dot),
|
|
1300
|
-
disabled: this.keyIsNotAllowed(k),
|
|
1301
|
-
key: `${k.label || k.latex || k.command}-${index}`
|
|
1302
|
-
};
|
|
1303
|
-
if (k.latex) {
|
|
1304
|
-
return React$8.createElement(LatexButton, {
|
|
1305
|
-
latex: k.latex,
|
|
1306
|
-
...common,
|
|
1307
|
-
className: classes.latexButton,
|
|
1308
|
-
__self: this,
|
|
1309
|
-
__source: {
|
|
1310
|
-
fileName: _jsxFileName$7,
|
|
1311
|
-
lineNumber: 252
|
|
1312
|
-
}
|
|
1313
|
-
});
|
|
1314
|
-
}
|
|
1315
|
-
if (k.label) {
|
|
1316
|
-
return React$8.createElement(Button$1, {
|
|
1317
|
-
...common,
|
|
1318
|
-
__self: this,
|
|
1319
|
-
__source: {
|
|
1320
|
-
fileName: _jsxFileName$7,
|
|
1321
|
-
lineNumber: 256
|
|
1322
|
-
}
|
|
1323
|
-
}, k.label);
|
|
1324
|
-
} else {
|
|
1325
|
-
const Icon = k.icon ? k.icon : 'div';
|
|
1326
|
-
return React$8.createElement(IconButton$1, {
|
|
1327
|
-
tabIndex: '-1',
|
|
1328
|
-
...common,
|
|
1329
|
-
__self: this,
|
|
1330
|
-
__source: {
|
|
1331
|
-
fileName: _jsxFileName$7,
|
|
1332
|
-
lineNumber: 261
|
|
1333
|
-
}
|
|
1334
|
-
}, React$8.createElement(Icon, {
|
|
1335
|
-
className: classes.icon,
|
|
1336
|
-
__self: this,
|
|
1337
|
-
__source: {
|
|
1338
|
-
fileName: _jsxFileName$7,
|
|
1339
|
-
lineNumber: 262
|
|
1340
|
-
}
|
|
1341
|
-
}));
|
|
1342
|
-
}
|
|
1343
|
-
}));
|
|
1344
|
-
}
|
|
1345
|
-
}
|
|
1346
|
-
KeyPad.__initStatic();
|
|
1347
|
-
KeyPad.__initStatic2();
|
|
1348
|
-
const styles$4 = theme => ({
|
|
1349
|
-
keys: {
|
|
1350
|
-
'& *': {
|
|
1351
|
-
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
1352
|
-
},
|
|
1353
|
-
width: '100%',
|
|
1354
|
-
display: 'grid',
|
|
1355
|
-
gridTemplateRows: 'repeat(5, minmax(40px, 60px))',
|
|
1356
|
-
gridRowGap: '0px',
|
|
1357
|
-
gridColumnGap: '0px',
|
|
1358
|
-
gridAutoFlow: 'column'
|
|
1359
|
-
},
|
|
1360
|
-
holder: {
|
|
1361
|
-
position: 'relative',
|
|
1362
|
-
width: '100%',
|
|
1363
|
-
height: '100%',
|
|
1364
|
-
backgroundColor: '#cef',
|
|
1365
|
-
borderRadius: 0,
|
|
1366
|
-
padding: `${theme.spacing.unit}px 0 ${theme.spacing.unit}px 0`
|
|
1367
|
-
},
|
|
1368
|
-
labelButton: {
|
|
1369
|
-
minWidth: 'auto',
|
|
1370
|
-
fontSize: '140% !important',
|
|
1371
|
-
backgroundColor: lighten(theme.palette.primary.light, 0.5),
|
|
1372
|
-
'&:hover': {
|
|
1373
|
-
backgroundColor: lighten(theme.palette.primary.light, 0.7)
|
|
1374
|
-
},
|
|
1375
|
-
borderRadius: 0
|
|
1376
|
-
},
|
|
1377
|
-
latexButton: {
|
|
1378
|
-
minWidth: 'auto',
|
|
1379
|
-
borderRadius: 0,
|
|
1380
|
-
backgroundColor: lighten(theme.palette.primary.light, 0.5),
|
|
1381
|
-
'&:hover': {
|
|
1382
|
-
backgroundColor: lighten(theme.palette.primary.light, 0.7)
|
|
1383
|
-
}
|
|
1384
|
-
},
|
|
1385
|
-
base: {},
|
|
1386
|
-
operators: {
|
|
1387
|
-
backgroundColor: lighten(theme.palette.secondary.light, 0.5),
|
|
1388
|
-
'&:hover': {
|
|
1389
|
-
backgroundColor: lighten(theme.palette.secondary.light, 0.7)
|
|
1390
|
-
}
|
|
1391
|
-
},
|
|
1392
|
-
comparison: {
|
|
1393
|
-
backgroundColor: lighten(green[500], 0.5),
|
|
1394
|
-
'&:hover': {
|
|
1395
|
-
backgroundColor: lighten(green[500], 0.7)
|
|
1396
|
-
}
|
|
1397
|
-
},
|
|
1398
|
-
comma: {
|
|
1399
|
-
fontSize: '200% !important',
|
|
1400
|
-
lineHeight: '100%'
|
|
1401
|
-
},
|
|
1402
|
-
dot: {
|
|
1403
|
-
fontSize: '200% !important',
|
|
1404
|
-
lineHeight: '100%'
|
|
1405
|
-
},
|
|
1406
|
-
icon: {
|
|
1407
|
-
height: '30px'
|
|
1408
|
-
}
|
|
1409
|
-
});
|
|
1410
|
-
var Keypad = withStyles$6(styles$4)(KeyPad);
|
|
1411
|
-
const React$7 = _dll_react;
|
|
1412
|
-
const PropTypes$6 = _dll_prop_types;
|
|
1413
|
-
const _jsxFileName$6 = "/home/circleci/repo/node_modules/@pie-lib/math-input/src/horizontal-keypad.jsx";
|
|
1414
|
-
const toOldModel = d => {
|
|
1415
|
-
if (d.command) {
|
|
1416
|
-
return {
|
|
1417
|
-
value: d.command,
|
|
1418
|
-
type: 'command'
|
|
1419
|
-
};
|
|
1420
|
-
} else if (d.write) {
|
|
1421
|
-
return {
|
|
1422
|
-
value: d.write
|
|
1423
|
-
};
|
|
1424
|
-
} else if (d.keystroke) {
|
|
1425
|
-
return {
|
|
1426
|
-
type: 'cursor',
|
|
1427
|
-
value: d.keystroke
|
|
1428
|
-
};
|
|
1429
|
-
}
|
|
1430
|
-
};
|
|
1431
|
-
class HorizontalKeypad extends React$7.Component {
|
|
1432
|
-
constructor(...args) {
|
|
1433
|
-
super(...args);
|
|
1434
|
-
HorizontalKeypad.prototype.__init.call(this);
|
|
1435
|
-
}
|
|
1436
|
-
static __initStatic() {
|
|
1437
|
-
this.propTypes = {
|
|
1438
|
-
className: PropTypes$6.string,
|
|
1439
|
-
mode: PropTypes$6.oneOfType([PropTypes$6.string, PropTypes$6.number]),
|
|
1440
|
-
onClick: PropTypes$6.func.isRequired,
|
|
1441
|
-
onFocus: PropTypes$6.func,
|
|
1442
|
-
noDecimal: PropTypes$6.bool,
|
|
1443
|
-
additionalKeys: PropTypes$6.array
|
|
1444
|
-
};
|
|
1445
|
-
}
|
|
1446
|
-
static __initStatic2() {
|
|
1447
|
-
this.defaultProps = {
|
|
1448
|
-
mode: 'scientific',
|
|
1449
|
-
noDecimal: false,
|
|
1450
|
-
additionalKeys: []
|
|
1451
|
-
};
|
|
1452
|
-
}
|
|
1453
|
-
__init() {
|
|
1454
|
-
this.keypadPress = data => {
|
|
1455
|
-
const {onClick} = this.props;
|
|
1456
|
-
onClick(toOldModel(data));
|
|
1457
|
-
};
|
|
1458
|
-
}
|
|
1459
|
-
render() {
|
|
1460
|
-
const {mode, onFocus, noDecimal, className, additionalKeys} = this.props;
|
|
1461
|
-
const normalizedKeys = normalizeAdditionalKeys(additionalKeys);
|
|
1462
|
-
return React$7.createElement(Keypad, {
|
|
1463
|
-
className: className,
|
|
1464
|
-
onFocus: onFocus,
|
|
1465
|
-
noDecimal: noDecimal,
|
|
1466
|
-
additionalKeys: extendKeySet(keysForGrade(mode), normalizedKeys),
|
|
1467
|
-
onPress: this.keypadPress,
|
|
1468
|
-
mode: mode,
|
|
1469
|
-
__self: this,
|
|
1470
|
-
__source: {
|
|
1471
|
-
fileName: _jsxFileName$6,
|
|
1472
|
-
lineNumber: 44
|
|
1473
|
-
}
|
|
1474
|
-
});
|
|
1475
|
-
}
|
|
1476
|
-
}
|
|
1477
|
-
HorizontalKeypad.__initStatic();
|
|
1478
|
-
HorizontalKeypad.__initStatic2();
|
|
1479
|
-
const updateSpans = () => {
|
|
1480
|
-
const spans = Array.from(document.querySelectorAll('span[mathquill-command-id]'));
|
|
1481
|
-
(spans || []).forEach(span => {
|
|
1482
|
-
if (span && span.innerText === '∥' && span.className !== 'mq-editable-field') {
|
|
1483
|
-
span.style.fontSize = '32px';
|
|
1484
|
-
}
|
|
1485
|
-
});
|
|
1486
|
-
};
|
|
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.13/module/index.js";
|
|
2
|
+
import {_dll_pie_lib__math_input, _dll_pie_framework__mathquill} from "../../../@pie-lib/math-edit-module@^1.2.0/module/index.js";
|
|
3
|
+
import {_dll_pie_lib__math_rendering} from "../../../@pie-lib/math-rendering-module@^1.1.1/module/index.js";
|
|
1487
4
|
const ResponseTypes$1 = {
|
|
1488
5
|
advanced: 'Advanced Multi',
|
|
1489
6
|
simple: 'Simple'
|
|
1490
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;
|
|
1491
11
|
const React$6 = _dll_react;
|
|
1492
12
|
const debug$2 = _dll_debug;
|
|
1493
13
|
const PropTypes$5 = _dll_prop_types;
|
|
@@ -1550,8 +70,11 @@ class EditorAndPad extends React$6.Component {
|
|
|
1550
70
|
EditorAndPad.prototype.__init2.call(this);
|
|
1551
71
|
EditorAndPad.prototype.__init3.call(this);
|
|
1552
72
|
EditorAndPad.prototype.__init4.call(this);
|
|
73
|
+
EditorAndPad.prototype.__init5.call(this);
|
|
74
|
+
EditorAndPad.prototype.__init6.call(this);
|
|
1553
75
|
this.state = {
|
|
1554
|
-
equationEditor: 'item-authoring'
|
|
76
|
+
equationEditor: 'item-authoring',
|
|
77
|
+
addDisabled: false
|
|
1555
78
|
};
|
|
1556
79
|
}
|
|
1557
80
|
componentDidMount() {
|
|
@@ -1582,17 +105,30 @@ class EditorAndPad extends React$6.Component {
|
|
|
1582
105
|
};
|
|
1583
106
|
}
|
|
1584
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() {
|
|
1585
119
|
this.onAnswerBlockClick = () => {
|
|
1586
120
|
this.props.onAnswerBlockAdd();
|
|
1587
121
|
this.onClick({
|
|
1588
122
|
type: 'answer'
|
|
1589
123
|
});
|
|
124
|
+
this.updateDisable(true);
|
|
1590
125
|
};
|
|
1591
126
|
}
|
|
1592
|
-
|
|
127
|
+
__init4() {
|
|
1593
128
|
this.onEditorChange = latex => {
|
|
1594
129
|
const {onChange, noDecimal} = this.props;
|
|
1595
|
-
updateSpans();
|
|
130
|
+
updateSpans$1();
|
|
131
|
+
this.updateDisable(true);
|
|
1596
132
|
if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && this.input) {
|
|
1597
133
|
this.input.clear();
|
|
1598
134
|
this.input.write(latex.replace(decimalRegex, ''));
|
|
@@ -1618,30 +154,41 @@ class EditorAndPad extends React$6.Component {
|
|
|
1618
154
|
}
|
|
1619
155
|
return inputIsDifferent;
|
|
1620
156
|
}
|
|
1621
|
-
|
|
157
|
+
__init5() {
|
|
1622
158
|
this.onEditorTypeChange = evt => {
|
|
1623
159
|
this.setState({
|
|
1624
160
|
equationEditor: evt.target.value
|
|
1625
161
|
});
|
|
1626
162
|
};
|
|
1627
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
|
+
}
|
|
1628
174
|
render() {
|
|
1629
|
-
const {classNames, keypadMode, allowAnswerBlock, additionalKeys, controlledKeypad, controlledKeypadMode, showKeypad, noDecimal, latex, onFocus, onBlur, classes} = this.props;
|
|
175
|
+
const {classNames, keypadMode, allowAnswerBlock, additionalKeys, controlledKeypad, controlledKeypadMode, showKeypad, noDecimal, latex, onFocus, onBlur, classes, error} = this.props;
|
|
1630
176
|
const shouldShowKeypad = !controlledKeypad || controlledKeypad && showKeypad;
|
|
177
|
+
const {addDisabled} = this.state;
|
|
1631
178
|
log$2('[render]', latex);
|
|
1632
179
|
return React$6.createElement('div', {
|
|
1633
180
|
className: cx$3(classes.mathToolbar, classNames.mathToolbar),
|
|
1634
181
|
__self: this,
|
|
1635
182
|
__source: {
|
|
1636
183
|
fileName: _jsxFileName$5,
|
|
1637
|
-
lineNumber:
|
|
184
|
+
lineNumber: 188
|
|
1638
185
|
}
|
|
1639
186
|
}, React$6.createElement('div', {
|
|
1640
187
|
className: classes.inputAndTypeContainer,
|
|
1641
188
|
__self: this,
|
|
1642
189
|
__source: {
|
|
1643
190
|
fileName: _jsxFileName$5,
|
|
1644
|
-
lineNumber:
|
|
191
|
+
lineNumber: 189
|
|
1645
192
|
}
|
|
1646
193
|
}, controlledKeypadMode && React$6.createElement(InputContainer, {
|
|
1647
194
|
label: "Equation Editor",
|
|
@@ -1649,7 +196,7 @@ class EditorAndPad extends React$6.Component {
|
|
|
1649
196
|
__self: this,
|
|
1650
197
|
__source: {
|
|
1651
198
|
fileName: _jsxFileName$5,
|
|
1652
|
-
lineNumber:
|
|
199
|
+
lineNumber: 191
|
|
1653
200
|
}
|
|
1654
201
|
}, React$6.createElement(Select, {
|
|
1655
202
|
className: classes.select,
|
|
@@ -1658,95 +205,108 @@ class EditorAndPad extends React$6.Component {
|
|
|
1658
205
|
__self: this,
|
|
1659
206
|
__source: {
|
|
1660
207
|
fileName: _jsxFileName$5,
|
|
1661
|
-
lineNumber:
|
|
208
|
+
lineNumber: 192
|
|
1662
209
|
}
|
|
1663
210
|
}, React$6.createElement(MenuItem, {
|
|
1664
211
|
value: "non-negative-integers",
|
|
1665
212
|
__self: this,
|
|
1666
213
|
__source: {
|
|
1667
214
|
fileName: _jsxFileName$5,
|
|
1668
|
-
lineNumber:
|
|
215
|
+
lineNumber: 197
|
|
1669
216
|
}
|
|
1670
217
|
}, "Numeric - Non-Negative Integers"), React$6.createElement(MenuItem, {
|
|
1671
218
|
value: "integers",
|
|
1672
219
|
__self: this,
|
|
1673
220
|
__source: {
|
|
1674
221
|
fileName: _jsxFileName$5,
|
|
1675
|
-
lineNumber:
|
|
222
|
+
lineNumber: 198
|
|
1676
223
|
}
|
|
1677
224
|
}, "Numeric - Integers"), React$6.createElement(MenuItem, {
|
|
1678
225
|
value: "decimals",
|
|
1679
226
|
__self: this,
|
|
1680
227
|
__source: {
|
|
1681
228
|
fileName: _jsxFileName$5,
|
|
1682
|
-
lineNumber:
|
|
229
|
+
lineNumber: 199
|
|
1683
230
|
}
|
|
1684
231
|
}, "Numeric - Decimals"), React$6.createElement(MenuItem, {
|
|
1685
232
|
value: "fractions",
|
|
1686
233
|
__self: this,
|
|
1687
234
|
__source: {
|
|
1688
235
|
fileName: _jsxFileName$5,
|
|
1689
|
-
lineNumber:
|
|
236
|
+
lineNumber: 200
|
|
1690
237
|
}
|
|
1691
238
|
}, "Numeric - Fractions"), React$6.createElement(MenuItem, {
|
|
1692
239
|
value: 1,
|
|
1693
240
|
__self: this,
|
|
1694
241
|
__source: {
|
|
1695
242
|
fileName: _jsxFileName$5,
|
|
1696
|
-
lineNumber:
|
|
243
|
+
lineNumber: 201
|
|
1697
244
|
}
|
|
1698
245
|
}, "Grade 1 - 2"), React$6.createElement(MenuItem, {
|
|
1699
246
|
value: 3,
|
|
1700
247
|
__self: this,
|
|
1701
248
|
__source: {
|
|
1702
249
|
fileName: _jsxFileName$5,
|
|
1703
|
-
lineNumber:
|
|
250
|
+
lineNumber: 202
|
|
1704
251
|
}
|
|
1705
252
|
}, "Grade 3 - 5"), React$6.createElement(MenuItem, {
|
|
1706
253
|
value: 6,
|
|
1707
254
|
__self: this,
|
|
1708
255
|
__source: {
|
|
1709
256
|
fileName: _jsxFileName$5,
|
|
1710
|
-
lineNumber:
|
|
257
|
+
lineNumber: 203
|
|
1711
258
|
}
|
|
1712
259
|
}, "Grade 6 - 7"), React$6.createElement(MenuItem, {
|
|
1713
260
|
value: 8,
|
|
1714
261
|
__self: this,
|
|
1715
262
|
__source: {
|
|
1716
263
|
fileName: _jsxFileName$5,
|
|
1717
|
-
lineNumber:
|
|
264
|
+
lineNumber: 204
|
|
1718
265
|
}
|
|
1719
266
|
}, "Grade 8 - HS"), React$6.createElement(MenuItem, {
|
|
1720
267
|
value: 'geometry',
|
|
1721
268
|
__self: this,
|
|
1722
269
|
__source: {
|
|
1723
270
|
fileName: _jsxFileName$5,
|
|
1724
|
-
lineNumber:
|
|
271
|
+
lineNumber: 205
|
|
1725
272
|
}
|
|
1726
273
|
}, "Geometry"), React$6.createElement(MenuItem, {
|
|
1727
274
|
value: 'advanced-algebra',
|
|
1728
275
|
__self: this,
|
|
1729
276
|
__source: {
|
|
1730
277
|
fileName: _jsxFileName$5,
|
|
1731
|
-
lineNumber:
|
|
278
|
+
lineNumber: 206
|
|
1732
279
|
}
|
|
1733
280
|
}, "Advanced Algebra"), React$6.createElement(MenuItem, {
|
|
1734
281
|
value: 'statistics',
|
|
1735
282
|
__self: this,
|
|
1736
283
|
__source: {
|
|
1737
284
|
fileName: _jsxFileName$5,
|
|
1738
|
-
lineNumber:
|
|
285
|
+
lineNumber: 207
|
|
1739
286
|
}
|
|
1740
287
|
}, "Statistics"), React$6.createElement(MenuItem, {
|
|
1741
288
|
value: 'item-authoring',
|
|
1742
289
|
__self: this,
|
|
1743
290
|
__source: {
|
|
1744
291
|
fileName: _jsxFileName$5,
|
|
1745
|
-
lineNumber:
|
|
292
|
+
lineNumber: 208
|
|
1746
293
|
}
|
|
1747
|
-
}, "Item Authoring"))), React$6.createElement(
|
|
1748
|
-
|
|
1749
|
-
|
|
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: () => {
|
|
307
|
+
this.updateDisable(false);
|
|
308
|
+
onBlur && onBlur();
|
|
309
|
+
},
|
|
1750
310
|
className: cx$3(classes.mathEditor, classNames.editor, !controlledKeypadMode ? classes.longMathEditor : ''),
|
|
1751
311
|
innerRef: r => this.input = r,
|
|
1752
312
|
latex: latex,
|
|
@@ -1754,28 +314,29 @@ class EditorAndPad extends React$6.Component {
|
|
|
1754
314
|
__self: this,
|
|
1755
315
|
__source: {
|
|
1756
316
|
fileName: _jsxFileName$5,
|
|
1757
|
-
lineNumber:
|
|
317
|
+
lineNumber: 213
|
|
1758
318
|
}
|
|
1759
|
-
})), allowAnswerBlock && React$6.createElement(Button, {
|
|
319
|
+
}))), allowAnswerBlock && React$6.createElement(Button, {
|
|
1760
320
|
className: classes.addAnswerBlockButton,
|
|
1761
321
|
type: "primary",
|
|
1762
322
|
style: {
|
|
1763
323
|
bottom: shouldShowKeypad ? '320px' : '20px'
|
|
1764
324
|
},
|
|
1765
325
|
onClick: this.onAnswerBlockClick,
|
|
326
|
+
disabled: addDisabled,
|
|
1766
327
|
__self: this,
|
|
1767
328
|
__source: {
|
|
1768
329
|
fileName: _jsxFileName$5,
|
|
1769
|
-
lineNumber:
|
|
330
|
+
lineNumber: 234
|
|
1770
331
|
}
|
|
1771
332
|
}, "+ Response Area"), React$6.createElement('hr', {
|
|
1772
333
|
className: classes.hr,
|
|
1773
334
|
__self: this,
|
|
1774
335
|
__source: {
|
|
1775
336
|
fileName: _jsxFileName$5,
|
|
1776
|
-
lineNumber:
|
|
337
|
+
lineNumber: 244
|
|
1777
338
|
}
|
|
1778
|
-
}), shouldShowKeypad && React$6.createElement(HorizontalKeypad, {
|
|
339
|
+
}), shouldShowKeypad && React$6.createElement(HorizontalKeypad$1, {
|
|
1779
340
|
additionalKeys: additionalKeys,
|
|
1780
341
|
mode: controlledKeypadMode ? this.state.equationEditor : keypadMode,
|
|
1781
342
|
onClick: this.onClick,
|
|
@@ -1783,7 +344,7 @@ class EditorAndPad extends React$6.Component {
|
|
|
1783
344
|
__self: this,
|
|
1784
345
|
__source: {
|
|
1785
346
|
fileName: _jsxFileName$5,
|
|
1786
|
-
lineNumber:
|
|
347
|
+
lineNumber: 246
|
|
1787
348
|
}
|
|
1788
349
|
}));
|
|
1789
350
|
}
|
|
@@ -1833,9 +394,7 @@ const styles$3 = theme => ({
|
|
|
1833
394
|
maxWidth: '400px',
|
|
1834
395
|
color: color$2.text(),
|
|
1835
396
|
backgroundColor: color$2.background(),
|
|
1836
|
-
padding: theme.spacing.unit
|
|
1837
|
-
marginTop: theme.spacing.unit,
|
|
1838
|
-
marginBottom: theme.spacing.unit
|
|
397
|
+
padding: theme.spacing.unit
|
|
1839
398
|
},
|
|
1840
399
|
longMathEditor: {
|
|
1841
400
|
maxWidth: '500px'
|
|
@@ -1886,6 +445,18 @@ const styles$3 = theme => ({
|
|
|
1886
445
|
'& .mq-parallelogram': {
|
|
1887
446
|
lineHeight: 0.85
|
|
1888
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'
|
|
1889
460
|
}
|
|
1890
461
|
});
|
|
1891
462
|
var EditorAndPad$1 = withStyles$5(styles$3)(EditorAndPad);
|
|
@@ -1937,6 +508,7 @@ const classNames = _dll_classnames;
|
|
|
1937
508
|
const debug$1 = _dll_debug;
|
|
1938
509
|
const {withStyles: withStyles$3} = _dll_material_ui__core_styles;
|
|
1939
510
|
const PropTypes$3 = _dll_prop_types;
|
|
511
|
+
const {mq: mq$2} = _dll_pie_lib__math_input;
|
|
1940
512
|
const _jsxFileName$3 = "/home/circleci/repo/node_modules/@pie-lib/math-toolbar/src/math-preview.jsx";
|
|
1941
513
|
const log$1 = debug$1('@pie-lib:math-toolbar:math-preview');
|
|
1942
514
|
class RawMathPreview extends React$4.Component {
|
|
@@ -1968,7 +540,7 @@ class RawMathPreview extends React$4.Component {
|
|
|
1968
540
|
fileName: _jsxFileName$3,
|
|
1969
541
|
lineNumber: 27
|
|
1970
542
|
}
|
|
1971
|
-
}), React$4.createElement(Static, {
|
|
543
|
+
}), React$4.createElement(mq$2.Static, {
|
|
1972
544
|
latex: latex,
|
|
1973
545
|
onFocus: onFocus,
|
|
1974
546
|
onBlur: onBlur,
|
|
@@ -2125,7 +697,7 @@ class MathToolbar extends React$3.Component {
|
|
|
2125
697
|
}
|
|
2126
698
|
render() {
|
|
2127
699
|
const {latex} = this.state;
|
|
2128
|
-
const {classNames, autoFocus, allowAnswerBlock, onAnswerBlockAdd, controlledKeypad, controlledKeypadMode, keypadMode, noDecimal, additionalKeys, showKeypad, onFocus, onBlur, hideDoneButton} = this.props;
|
|
700
|
+
const {classNames, autoFocus, allowAnswerBlock, onAnswerBlockAdd, controlledKeypad, controlledKeypadMode, keypadMode, noDecimal, additionalKeys, showKeypad, onFocus, onBlur, hideDoneButton, error, maxResponseAreas} = this.props;
|
|
2129
701
|
return React$3.createElement(PureToolbar, {
|
|
2130
702
|
autoFocus: autoFocus,
|
|
2131
703
|
classNames: classNames,
|
|
@@ -2143,10 +715,12 @@ class MathToolbar extends React$3.Component {
|
|
|
2143
715
|
controlledKeypad: controlledKeypad,
|
|
2144
716
|
controlledKeypadMode: controlledKeypadMode,
|
|
2145
717
|
hideDoneButton: hideDoneButton,
|
|
718
|
+
error: error,
|
|
719
|
+
maxResponseAreas: maxResponseAreas,
|
|
2146
720
|
__self: this,
|
|
2147
721
|
__source: {
|
|
2148
722
|
fileName: _jsxFileName$2,
|
|
2149
|
-
lineNumber:
|
|
723
|
+
lineNumber: 88
|
|
2150
724
|
}
|
|
2151
725
|
});
|
|
2152
726
|
}
|
|
@@ -2176,19 +750,19 @@ class RawPureToolbar extends React$3.Component {
|
|
|
2176
750
|
};
|
|
2177
751
|
}
|
|
2178
752
|
render() {
|
|
2179
|
-
const {classNames, autoFocus, allowAnswerBlock, onAnswerBlockAdd, controlledKeypad, controlledKeypadMode, additionalKeys, showKeypad, keypadMode, noDecimal, latex, onChange, onDone, onFocus, onBlur, hideDoneButton, classes} = this.props;
|
|
753
|
+
const {classNames, autoFocus, allowAnswerBlock, onAnswerBlockAdd, controlledKeypad, controlledKeypadMode, additionalKeys, showKeypad, keypadMode, noDecimal, latex, onChange, onDone, onFocus, onBlur, hideDoneButton, classes, error, maxResponseAreas} = this.props;
|
|
2180
754
|
return React$3.createElement('div', {
|
|
2181
755
|
className: cx$2(classes.pureToolbar, (classNames || ({})).toolbar),
|
|
2182
756
|
__self: this,
|
|
2183
757
|
__source: {
|
|
2184
758
|
fileName: _jsxFileName$2,
|
|
2185
|
-
lineNumber:
|
|
759
|
+
lineNumber: 157
|
|
2186
760
|
}
|
|
2187
761
|
}, React$3.createElement('div', {
|
|
2188
762
|
__self: this,
|
|
2189
763
|
__source: {
|
|
2190
764
|
fileName: _jsxFileName$2,
|
|
2191
|
-
lineNumber:
|
|
765
|
+
lineNumber: 158
|
|
2192
766
|
}
|
|
2193
767
|
}), React$3.createElement(EditorAndPad$1, {
|
|
2194
768
|
autoFocus: autoFocus,
|
|
@@ -2205,17 +779,19 @@ class RawPureToolbar extends React$3.Component {
|
|
|
2205
779
|
onChange: onChange,
|
|
2206
780
|
onFocus: onFocus,
|
|
2207
781
|
onBlur: onBlur,
|
|
782
|
+
error: error,
|
|
783
|
+
maxResponseAreas: maxResponseAreas,
|
|
2208
784
|
__self: this,
|
|
2209
785
|
__source: {
|
|
2210
786
|
fileName: _jsxFileName$2,
|
|
2211
|
-
lineNumber:
|
|
787
|
+
lineNumber: 159
|
|
2212
788
|
}
|
|
2213
789
|
}), (!controlledKeypad || controlledKeypad && showKeypad) && !hideDoneButton && React$3.createElement(DoneButton, {
|
|
2214
790
|
onClick: onDone,
|
|
2215
791
|
__self: this,
|
|
2216
792
|
__source: {
|
|
2217
793
|
fileName: _jsxFileName$2,
|
|
2218
|
-
lineNumber:
|
|
794
|
+
lineNumber: 178
|
|
2219
795
|
}
|
|
2220
796
|
}));
|
|
2221
797
|
}
|
|
@@ -2235,6 +811,7 @@ const cx$1 = _dll_classnames;
|
|
|
2235
811
|
const {withStyles: withStyles$1} = _dll_material_ui__core_styles;
|
|
2236
812
|
const PropTypes$1 = _dll_prop_types;
|
|
2237
813
|
const {color: color$1} = _dll_pie_lib__render_ui;
|
|
814
|
+
const {mq: mq$1} = _dll_pie_lib__math_input;
|
|
2238
815
|
const _jsxFileName$1 = "/home/circleci/repo/packages/math-inline/src/simple-question-block.jsx";
|
|
2239
816
|
class SimpleQuestionBlockRaw extends React$2.Component {
|
|
2240
817
|
constructor(...args) {
|
|
@@ -2298,7 +875,7 @@ class SimpleQuestionBlockRaw extends React$2.Component {
|
|
|
2298
875
|
fileName: _jsxFileName$1,
|
|
2299
876
|
lineNumber: 56
|
|
2300
877
|
}
|
|
2301
|
-
}, React$2.createElement(Static, {
|
|
878
|
+
}, React$2.createElement(mq$1.Static, {
|
|
2302
879
|
latex: showCorrect ? responses && responses.length && responses[0].answer : session.response || '',
|
|
2303
880
|
__self: this,
|
|
2304
881
|
__source: {
|
|
@@ -2385,8 +962,11 @@ const {Tooltip: Tooltip} = _dll_material_ui__core;
|
|
|
2385
962
|
const {isEqual: isEqual} = _dll_lodash;
|
|
2386
963
|
const {isEmpty: isEmpty} = _dll_lodash;
|
|
2387
964
|
const cx = _dll_classnames;
|
|
965
|
+
const {mq: mq} = _dll_pie_lib__math_input;
|
|
966
|
+
const {HorizontalKeypad: HorizontalKeypad} = _dll_pie_lib__math_input;
|
|
967
|
+
const {updateSpans: updateSpans} = _dll_pie_lib__math_input;
|
|
968
|
+
const MathQuill = _dll_pie_framework__mathquill;
|
|
2388
969
|
const {renderMath: renderMath} = _dll_pie_lib__math_rendering;
|
|
2389
|
-
const MathQuill$1 = _dll_pie_framework__mathquill;
|
|
2390
970
|
const _jsxFileName = "/home/circleci/repo/packages/math-inline/src/main.jsx";
|
|
2391
971
|
function _optionalChain(ops) {
|
|
2392
972
|
let lastAccessLHS = undefined;
|
|
@@ -2492,7 +1072,7 @@ class Main extends React$1.Component {
|
|
|
2492
1072
|
UNSAFE_componentWillMount() {
|
|
2493
1073
|
const {classes} = this.props;
|
|
2494
1074
|
if (typeof window !== 'undefined') {
|
|
2495
|
-
let MQ = MathQuill
|
|
1075
|
+
let MQ = MathQuill.getInterface(2);
|
|
2496
1076
|
if (!registered) {
|
|
2497
1077
|
MQ.registerEmbed('answerBlock', data => {
|
|
2498
1078
|
return {
|
|
@@ -2520,7 +1100,7 @@ class Main extends React$1.Component {
|
|
|
2520
1100
|
const el = this.root.querySelector(`#${answerId}`);
|
|
2521
1101
|
const indexEl = this.root.querySelector(`#${answerId}Index`);
|
|
2522
1102
|
if (el) {
|
|
2523
|
-
let MQ = MathQuill
|
|
1103
|
+
let MQ = MathQuill.getInterface(2);
|
|
2524
1104
|
const answer = answers[answerId];
|
|
2525
1105
|
el.textContent = answer && answer.value || '';
|
|
2526
1106
|
if (!model.view) ; else {
|
|
@@ -2742,7 +1322,7 @@ class Main extends React$1.Component {
|
|
|
2742
1322
|
fileName: _jsxFileName,
|
|
2743
1323
|
lineNumber: 411
|
|
2744
1324
|
}
|
|
2745
|
-
}, React$1.createElement(Static, {
|
|
1325
|
+
}, React$1.createElement(mq.Static, {
|
|
2746
1326
|
ref: mqStatic => this.mqStatic = mqStatic || this.mqStatic,
|
|
2747
1327
|
latex: staticLatex,
|
|
2748
1328
|
onSubFieldChange: this.subFieldChanged,
|
|
@@ -2850,7 +1430,7 @@ class Main extends React$1.Component {
|
|
|
2850
1430
|
fileName: _jsxFileName,
|
|
2851
1431
|
lineNumber: 451
|
|
2852
1432
|
}
|
|
2853
|
-
}, React$1.createElement(Static, {
|
|
1433
|
+
}, React$1.createElement(mq.Static, {
|
|
2854
1434
|
ref: mqStatic => this.mqStatic = mqStatic || this.mqStatic,
|
|
2855
1435
|
latex: staticLatex,
|
|
2856
1436
|
onSubFieldChange: this.subFieldChanged,
|