@pie-lib/math-toolbar 2.0.0-beta.1 → 2.0.0-beta.3
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 +208 -0
- package/lib/done-button.js +25 -22
- package/lib/done-button.js.map +1 -1
- package/lib/editor-and-pad.js +52 -89
- package/lib/editor-and-pad.js.map +1 -1
- package/lib/index.js +50 -70
- package/lib/index.js.map +1 -1
- package/lib/math-preview.js +9 -21
- package/lib/math-preview.js.map +1 -1
- package/package.json +3 -3
- package/src/done-button.jsx +16 -8
- package/src/editor-and-pad.jsx +110 -96
- package/src/index.jsx +21 -10
- package/src/math-preview.jsx +47 -49
package/lib/editor-and-pad.js
CHANGED
|
@@ -1,67 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = exports.EditorAndPad = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _mathInput = require("@pie-lib/math-input");
|
|
25
|
-
|
|
26
16
|
var _react = _interopRequireDefault(require("react"));
|
|
27
|
-
|
|
28
17
|
var _debug = _interopRequireDefault(require("debug"));
|
|
29
|
-
|
|
30
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
-
|
|
32
19
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
33
|
-
|
|
34
20
|
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
35
|
-
|
|
36
21
|
var _styles = require("@material-ui/core/styles");
|
|
37
|
-
|
|
38
22
|
var _renderUi = require("@pie-lib/render-ui");
|
|
39
|
-
|
|
40
23
|
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
41
|
-
|
|
42
24
|
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
43
|
-
|
|
44
25
|
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
45
|
-
|
|
46
26
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
47
|
-
|
|
48
27
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
49
|
-
|
|
50
28
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
51
|
-
|
|
52
29
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
53
|
-
|
|
54
30
|
var log = (0, _debug["default"])('@pie-lib:math-toolbar:editor-and-pad');
|
|
55
31
|
var decimalRegex = /\.|,/g;
|
|
56
|
-
|
|
57
32
|
var toNodeData = function toNodeData(data) {
|
|
58
33
|
if (!data) {
|
|
59
34
|
return;
|
|
60
35
|
}
|
|
61
|
-
|
|
62
36
|
var type = data.type,
|
|
63
|
-
|
|
64
|
-
|
|
37
|
+
value = data.value;
|
|
65
38
|
if (type === 'command' || type === 'cursor') {
|
|
66
39
|
return data;
|
|
67
40
|
} else if (type === 'answer') {
|
|
@@ -79,42 +52,34 @@ var toNodeData = function toNodeData(data) {
|
|
|
79
52
|
};
|
|
80
53
|
}
|
|
81
54
|
};
|
|
82
|
-
|
|
83
55
|
var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
84
56
|
(0, _inherits2["default"])(EditorAndPad, _React$Component);
|
|
85
|
-
|
|
86
57
|
var _super = _createSuper(EditorAndPad);
|
|
87
|
-
|
|
88
58
|
function EditorAndPad(props) {
|
|
89
59
|
var _this;
|
|
90
|
-
|
|
91
60
|
(0, _classCallCheck2["default"])(this, EditorAndPad);
|
|
92
61
|
_this = _super.call(this, props);
|
|
93
62
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onClick", function (data) {
|
|
94
63
|
var _this$props = _this.props,
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
64
|
+
noDecimal = _this$props.noDecimal,
|
|
65
|
+
noLatexHandling = _this$props.noLatexHandling,
|
|
66
|
+
onChange = _this$props.onChange;
|
|
98
67
|
var c = toNodeData(data);
|
|
99
68
|
log('mathChange: ', c);
|
|
100
|
-
|
|
101
69
|
if (noLatexHandling) {
|
|
102
70
|
onChange(c.value);
|
|
103
71
|
return;
|
|
104
|
-
}
|
|
105
|
-
|
|
72
|
+
}
|
|
106
73
|
|
|
74
|
+
// if decimals are not allowed for this response, we discard the input
|
|
107
75
|
if (noDecimal && (c.value === '.' || c.value === ',')) {
|
|
108
76
|
return;
|
|
109
77
|
}
|
|
110
|
-
|
|
111
78
|
if (!c) {
|
|
112
79
|
return;
|
|
113
80
|
}
|
|
114
|
-
|
|
115
81
|
if (c.type === 'clear') {
|
|
116
82
|
log('call clear...');
|
|
117
|
-
|
|
118
83
|
_this.input.clear();
|
|
119
84
|
} else if (c.type === 'command') {
|
|
120
85
|
_this.input.command(c.value);
|
|
@@ -128,10 +93,8 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
128
93
|
});
|
|
129
94
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateDisable", function (isEdit) {
|
|
130
95
|
var maxResponseAreas = _this.props.maxResponseAreas;
|
|
131
|
-
|
|
132
96
|
if (maxResponseAreas) {
|
|
133
97
|
var shouldDisable = _this.checkResponseAreasNumber(maxResponseAreas, isEdit);
|
|
134
|
-
|
|
135
98
|
_this.setState({
|
|
136
99
|
addDisabled: shouldDisable
|
|
137
100
|
});
|
|
@@ -139,30 +102,39 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
139
102
|
});
|
|
140
103
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerBlockClick", function () {
|
|
141
104
|
_this.props.onAnswerBlockAdd();
|
|
142
|
-
|
|
143
105
|
_this.onClick({
|
|
144
106
|
type: 'answer'
|
|
145
107
|
});
|
|
146
|
-
|
|
147
108
|
_this.updateDisable(true);
|
|
148
109
|
});
|
|
149
110
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onEditorChange", function (latex) {
|
|
150
111
|
var _this$props2 = _this.props,
|
|
151
|
-
|
|
152
|
-
|
|
112
|
+
onChange = _this$props2.onChange,
|
|
113
|
+
noDecimal = _this$props2.noDecimal;
|
|
153
114
|
(0, _mathInput.updateSpans)();
|
|
115
|
+
_this.updateDisable(true);
|
|
154
116
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
117
|
+
// if no decimals are allowed and the last change is a decimal dot, discard the change
|
|
158
118
|
if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && _this.input) {
|
|
159
119
|
_this.input.clear();
|
|
160
|
-
|
|
161
120
|
_this.input.write(latex.replace(decimalRegex, ''));
|
|
162
|
-
|
|
163
121
|
return;
|
|
164
122
|
}
|
|
165
123
|
|
|
124
|
+
// eslint-disable-next-line no-useless-escape
|
|
125
|
+
var regexMatch = latex.match(/[0-9]\\ \\frac\{[^\{]*\}\{ \}/);
|
|
126
|
+
if (_this.input && regexMatch && regexMatch !== null && regexMatch !== void 0 && regexMatch.length) {
|
|
127
|
+
try {
|
|
128
|
+
_this.input.mathField.__controller.cursor.insLeftOf(_this.input.mathField.__controller.cursor.parent[-1].parent);
|
|
129
|
+
_this.input.mathField.el().dispatchEvent(new KeyboardEvent('keydown', {
|
|
130
|
+
keyCode: 8
|
|
131
|
+
}));
|
|
132
|
+
} catch (e) {
|
|
133
|
+
// eslint-disable-next-line no-console
|
|
134
|
+
console.error(e.toString());
|
|
135
|
+
}
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
166
138
|
onChange(latex);
|
|
167
139
|
});
|
|
168
140
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onEditorTypeChange", function (evt) {
|
|
@@ -172,13 +144,11 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
172
144
|
});
|
|
173
145
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "checkResponseAreasNumber", function (maxResponseAreas, isEdit) {
|
|
174
146
|
var _ref = _this.input && _this.input.props || {},
|
|
175
|
-
|
|
176
|
-
|
|
147
|
+
latex = _ref.latex;
|
|
177
148
|
if (latex) {
|
|
178
149
|
var count = (latex.match(/answerBlock/g) || []).length;
|
|
179
150
|
return isEdit ? count === maxResponseAreas - 1 : count === maxResponseAreas;
|
|
180
151
|
}
|
|
181
|
-
|
|
182
152
|
return false;
|
|
183
153
|
});
|
|
184
154
|
_this.state = {
|
|
@@ -187,7 +157,6 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
187
157
|
};
|
|
188
158
|
return _this;
|
|
189
159
|
}
|
|
190
|
-
|
|
191
160
|
(0, _createClass2["default"])(EditorAndPad, [{
|
|
192
161
|
key: "componentDidMount",
|
|
193
162
|
value: function componentDidMount() {
|
|
@@ -203,50 +172,43 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
203
172
|
function shouldComponentUpdate(nextProps, nextState) {
|
|
204
173
|
var inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;
|
|
205
174
|
log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);
|
|
206
|
-
|
|
207
175
|
if (!(0, _isEqual["default"])(this.props.error, nextProps.error)) {
|
|
208
176
|
return true;
|
|
209
177
|
}
|
|
210
|
-
|
|
211
178
|
if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {
|
|
212
179
|
return true;
|
|
213
180
|
}
|
|
214
|
-
|
|
215
181
|
if (!inputIsDifferent && this.props.noDecimal !== nextProps.noDecimal) {
|
|
216
182
|
return true;
|
|
217
183
|
}
|
|
218
|
-
|
|
219
184
|
if (!inputIsDifferent && this.state.equationEditor !== nextState.equationEditor) {
|
|
220
185
|
return true;
|
|
221
186
|
}
|
|
222
|
-
|
|
223
187
|
if (!inputIsDifferent && this.props.controlledKeypad) {
|
|
224
188
|
return this.props.showKeypad !== nextProps.showKeypad;
|
|
225
189
|
}
|
|
226
|
-
|
|
227
190
|
return inputIsDifferent;
|
|
228
191
|
}
|
|
229
192
|
}, {
|
|
230
193
|
key: "render",
|
|
231
194
|
value: function render() {
|
|
232
195
|
var _this2 = this;
|
|
233
|
-
|
|
234
196
|
var _this$props3 = this.props,
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
197
|
+
classNames = _this$props3.classNames,
|
|
198
|
+
keypadMode = _this$props3.keypadMode,
|
|
199
|
+
allowAnswerBlock = _this$props3.allowAnswerBlock,
|
|
200
|
+
additionalKeys = _this$props3.additionalKeys,
|
|
201
|
+
controlledKeypad = _this$props3.controlledKeypad,
|
|
202
|
+
controlledKeypadMode = _this$props3.controlledKeypadMode,
|
|
203
|
+
showKeypad = _this$props3.showKeypad,
|
|
204
|
+
noDecimal = _this$props3.noDecimal,
|
|
205
|
+
hideInput = _this$props3.hideInput,
|
|
206
|
+
layoutForKeyPad = _this$props3.layoutForKeyPad,
|
|
207
|
+
latex = _this$props3.latex,
|
|
208
|
+
_onFocus = _this$props3.onFocus,
|
|
209
|
+
_onBlur = _this$props3.onBlur,
|
|
210
|
+
classes = _this$props3.classes,
|
|
211
|
+
error = _this$props3.error;
|
|
250
212
|
var shouldShowKeypad = !controlledKeypad || controlledKeypad && showKeypad;
|
|
251
213
|
var addDisabled = this.state.addDisabled;
|
|
252
214
|
log('[render]', latex);
|
|
@@ -290,12 +252,10 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
290
252
|
}, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Input, {
|
|
291
253
|
onFocus: function onFocus() {
|
|
292
254
|
_onFocus && _onFocus();
|
|
293
|
-
|
|
294
255
|
_this2.updateDisable(false);
|
|
295
256
|
},
|
|
296
257
|
onBlur: function onBlur(event) {
|
|
297
258
|
_this2.updateDisable(false);
|
|
298
|
-
|
|
299
259
|
_onBlur && _onBlur(event);
|
|
300
260
|
},
|
|
301
261
|
className: (0, _classnames["default"])(classes.mathEditor, classNames.editor, !controlledKeypadMode ? classes.longMathEditor : ''),
|
|
@@ -315,7 +275,7 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
315
275
|
}, "+ Response Area"), /*#__PURE__*/_react["default"].createElement("hr", {
|
|
316
276
|
className: classes.hr
|
|
317
277
|
}), shouldShowKeypad && /*#__PURE__*/_react["default"].createElement(_mathInput.HorizontalKeypad, {
|
|
318
|
-
className: classes.keyboard,
|
|
278
|
+
className: (0, _classnames["default"])(classes[keypadMode], classes.keyboard),
|
|
319
279
|
layoutForKeyPad: layoutForKeyPad,
|
|
320
280
|
additionalKeys: additionalKeys,
|
|
321
281
|
mode: controlledKeypadMode ? this.state.equationEditor : keypadMode,
|
|
@@ -326,7 +286,6 @@ var EditorAndPad = /*#__PURE__*/function (_React$Component) {
|
|
|
326
286
|
}]);
|
|
327
287
|
return EditorAndPad;
|
|
328
288
|
}(_react["default"].Component);
|
|
329
|
-
|
|
330
289
|
exports.EditorAndPad = EditorAndPad;
|
|
331
290
|
(0, _defineProperty2["default"])(EditorAndPad, "propTypes", {
|
|
332
291
|
classNames: _propTypes["default"].object,
|
|
@@ -336,10 +295,12 @@ exports.EditorAndPad = EditorAndPad;
|
|
|
336
295
|
showKeypad: _propTypes["default"].bool,
|
|
337
296
|
controlledKeypad: _propTypes["default"].bool,
|
|
338
297
|
controlledKeypadMode: _propTypes["default"].bool,
|
|
298
|
+
error: _propTypes["default"].string,
|
|
339
299
|
noDecimal: _propTypes["default"].bool,
|
|
340
300
|
hideInput: _propTypes["default"].bool,
|
|
341
301
|
noLatexHandling: _propTypes["default"].bool,
|
|
342
302
|
layoutForKeyPad: _propTypes["default"].object,
|
|
303
|
+
maxResponseAreas: _propTypes["default"].number,
|
|
343
304
|
additionalKeys: _propTypes["default"].array,
|
|
344
305
|
latex: _propTypes["default"].string,
|
|
345
306
|
onAnswerBlockAdd: _propTypes["default"].func,
|
|
@@ -348,7 +309,6 @@ exports.EditorAndPad = EditorAndPad;
|
|
|
348
309
|
onChange: _propTypes["default"].func.isRequired,
|
|
349
310
|
classes: _propTypes["default"].object
|
|
350
311
|
});
|
|
351
|
-
|
|
352
312
|
var styles = function styles(theme) {
|
|
353
313
|
return {
|
|
354
314
|
inputAndTypeContainer: {
|
|
@@ -405,8 +365,8 @@ var styles = function styles(theme) {
|
|
|
405
365
|
fontFamily: 'MJXZERO, MJXTEX !important'
|
|
406
366
|
},
|
|
407
367
|
'& .mq-math-mode .mq-sqrt-prefix': {
|
|
408
|
-
verticalAlign: '
|
|
409
|
-
top: '
|
|
368
|
+
verticalAlign: 'baseline !important',
|
|
369
|
+
top: '1px !important',
|
|
410
370
|
left: '-0.1em !important'
|
|
411
371
|
},
|
|
412
372
|
'& .mq-math-mode .mq-overarc ': {
|
|
@@ -472,7 +432,7 @@ var styles = function styles(theme) {
|
|
|
472
432
|
'& .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {
|
|
473
433
|
padding: '0 0.1em !important',
|
|
474
434
|
paddingBottom: '0 !important',
|
|
475
|
-
marginBottom: '
|
|
435
|
+
marginBottom: '-2px'
|
|
476
436
|
},
|
|
477
437
|
'-webkit-font-smoothing': 'antialiased !important'
|
|
478
438
|
}
|
|
@@ -618,11 +578,14 @@ var styles = function styles(theme) {
|
|
|
618
578
|
padding: '0 !important'
|
|
619
579
|
}
|
|
620
580
|
}
|
|
581
|
+
},
|
|
582
|
+
language: {
|
|
583
|
+
'& *': {
|
|
584
|
+
fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'
|
|
585
|
+
}
|
|
621
586
|
}
|
|
622
587
|
};
|
|
623
588
|
};
|
|
624
|
-
|
|
625
589
|
var _default = (0, _styles.withStyles)(styles)(EditorAndPad);
|
|
626
|
-
|
|
627
590
|
exports["default"] = _default;
|
|
628
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsImRlY2ltYWxSZWdleCIsInRvTm9kZURhdGEiLCJkYXRhIiwidHlwZSIsInZhbHVlIiwiRWRpdG9yQW5kUGFkIiwicHJvcHMiLCJub0RlY2ltYWwiLCJub0xhdGV4SGFuZGxpbmciLCJvbkNoYW5nZSIsImMiLCJpbnB1dCIsImNsZWFyIiwiY29tbWFuZCIsImtleXN0cm9rZSIsIndyaXRlIiwiaXNFZGl0IiwibWF4UmVzcG9uc2VBcmVhcyIsInNob3VsZERpc2FibGUiLCJjaGVja1Jlc3BvbnNlQXJlYXNOdW1iZXIiLCJzZXRTdGF0ZSIsImFkZERpc2FibGVkIiwib25BbnN3ZXJCbG9ja0FkZCIsIm9uQ2xpY2siLCJ1cGRhdGVEaXNhYmxlIiwibGF0ZXgiLCJ1cGRhdGVTcGFucyIsImluZGV4T2YiLCJyZXBsYWNlIiwiZXZ0IiwiZXF1YXRpb25FZGl0b3IiLCJ0YXJnZXQiLCJjb3VudCIsIm1hdGNoIiwibGVuZ3RoIiwic3RhdGUiLCJhdXRvRm9jdXMiLCJmb2N1cyIsIm5leHRQcm9wcyIsIm5leHRTdGF0ZSIsImlucHV0SXNEaWZmZXJlbnQiLCJtYXRoRmllbGQiLCJpc0VxdWFsIiwiZXJyb3IiLCJrZXlwYWRNb2RlIiwiY29udHJvbGxlZEtleXBhZCIsInNob3dLZXlwYWQiLCJjbGFzc05hbWVzIiwiYWxsb3dBbnN3ZXJCbG9jayIsImFkZGl0aW9uYWxLZXlzIiwiY29udHJvbGxlZEtleXBhZE1vZGUiLCJoaWRlSW5wdXQiLCJsYXlvdXRGb3JLZXlQYWQiLCJvbkZvY3VzIiwib25CbHVyIiwiY2xhc3NlcyIsInNob3VsZFNob3dLZXlwYWQiLCJjeCIsIm1hdGhUb29sYmFyIiwiaW5wdXRBbmRUeXBlQ29udGFpbmVyIiwiaGlkZSIsInNlbGVjdENvbnRhaW5lciIsInNlbGVjdCIsIm9uRWRpdG9yVHlwZUNoYW5nZSIsImlucHV0Q29udGFpbmVyIiwiZXZlbnQiLCJtYXRoRWRpdG9yIiwiZWRpdG9yIiwibG9uZ01hdGhFZGl0b3IiLCJyIiwib25FZGl0b3JDaGFuZ2UiLCJhZGRBbnN3ZXJCbG9ja0J1dHRvbiIsImJvdHRvbSIsIm9uQW5zd2VyQmxvY2tDbGljayIsImhyIiwia2V5Ym9hcmQiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9iamVjdCIsIm9uZU9mVHlwZSIsInN0cmluZyIsIm51bWJlciIsImJvb2wiLCJhcnJheSIsImZ1bmMiLCJpc1JlcXVpcmVkIiwic3R5bGVzIiwidGhlbWUiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsInRvcCIsInBhZGRpbmdUb3AiLCJmb250RmFtaWx5IiwibWluV2lkdGgiLCJsaW5lSGVpZ2h0IiwibGVmdCIsInBvc2l0aW9uIiwicmlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwiZm9udFNpemUiLCJwYWRkaW5nUmlnaHQiLCJwYWRkaW5nIiwibWFyZ2luVG9wIiwibWFyZ2luTGVmdCIsInBhZGRpbmdMZWZ0IiwiYm9yZGVyVG9wIiwibWFyZ2luQm90dG9tIiwicGFkZGluZ0JvdHRvbSIsImZsZXgiLCJ3aWR0aCIsIm1hcmdpblJpZ2h0IiwibWF4V2lkdGgiLCJjb2xvciIsInRleHQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyIiwibWFyZ2luIiwiaGVpZ2h0IiwiYm9yZGVyQm90dG9tIiwicGFsZXR0ZSIsInByaW1hcnkiLCJtYWluIiwiekluZGV4IiwidGV4dEFsaWduIiwib3V0bGluZSIsImJveFNoYWRvdyIsImJvcmRlclJhZGl1cyIsIm1pbkhlaWdodCIsInNwYWNpbmciLCJ1bml0Iiwid2l0aFN0eWxlcyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9lZGl0b3ItYW5kLXBhZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSG9yaXpvbnRhbEtleXBhZCwgbXEgfSBmcm9tICdAcGllLWxpYi9tYXRoLWlucHV0JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjeCBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvQnV0dG9uJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOm1hdGgtdG9vbGJhcjplZGl0b3ItYW5kLXBhZCcpO1xuaW1wb3J0IHsgY29sb3IsIElucHV0Q29udGFpbmVyIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCBNZW51SXRlbSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9NZW51SXRlbSc7XG5pbXBvcnQgU2VsZWN0IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL1NlbGVjdCc7XG5pbXBvcnQgeyB1cGRhdGVTcGFucyB9IGZyb20gJ0BwaWUtbGliL21hdGgtaW5wdXQnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuXG5jb25zdCBkZWNpbWFsUmVnZXggPSAvXFwufCwvZztcblxuY29uc3QgdG9Ob2RlRGF0YSA9IGRhdGEgPT4ge1xuICBpZiAoIWRhdGEpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IHR5cGUsIHZhbHVlIH0gPSBkYXRhO1xuXG4gIGlmICh0eXBlID09PSAnY29tbWFuZCcgfHwgdHlwZSA9PT0gJ2N1cnNvcicpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfSBlbHNlIGlmICh0eXBlID09PSAnYW5zd2VyJykge1xuICAgIHJldHVybiB7IHR5cGU6ICdhbnN3ZXInLCAuLi5kYXRhIH07XG4gIH0gZWxzZSBpZiAodmFsdWUgPT09ICdjbGVhcicpIHtcbiAgICByZXR1cm4geyB0eXBlOiAnY2xlYXInIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgdHlwZTogJ3dyaXRlJywgdmFsdWUgfTtcbiAgfVxufTtcblxuZXhwb3J0IGNsYXNzIEVkaXRvckFuZFBhZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2xhc3NOYW1lczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBrZXlwYWRNb2RlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSksXG4gICAgYXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhbGxvd0Fuc3dlckJsb2NrOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93S2V5cGFkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjb250cm9sbGVkS2V5cGFkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjb250cm9sbGVkS2V5cGFkTW9kZTogUHJvcFR5cGVzLmJvb2wsXG4gICAgbm9EZWNpbWFsOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBoaWRlSW5wdXQ6IFByb3BUeXBlcy5ib29sLFxuICAgIG5vTGF0ZXhIYW5kbGluZzogUHJvcFR5cGVzLmJvb2wsXG4gICAgbGF5b3V0Rm9yS2V5UGFkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGFkZGl0aW9uYWxLZXlzOiBQcm9wVHlwZXMuYXJyYXksXG4gICAgbGF0ZXg6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgb25BbnN3ZXJCbG9ja0FkZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25Gb2N1czogUHJvcFR5cGVzLmZ1bmMsXG4gICAgb25CbHVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0XG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICB0aGlzLnN0YXRlID0geyBlcXVhdGlvbkVkaXRvcjogJ2l0ZW0tYXV0aG9yaW5nJywgYWRkRGlzYWJsZWQ6IGZhbHNlIH07XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5pbnB1dCAmJiB0aGlzLnByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5pbnB1dC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xpY2sgPSBkYXRhID0+IHtcbiAgICBjb25zdCB7IG5vRGVjaW1hbCwgbm9MYXRleEhhbmRsaW5nLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjID0gdG9Ob2RlRGF0YShkYXRhKTtcbiAgICBsb2coJ21hdGhDaGFuZ2U6ICcsIGMpO1xuXG4gICAgaWYgKG5vTGF0ZXhIYW5kbGluZykge1xuICAgICAgb25DaGFuZ2UoYy52YWx1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gaWYgZGVjaW1hbHMgYXJlIG5vdCBhbGxvd2VkIGZvciB0aGlzIHJlc3BvbnNlLCB3ZSBkaXNjYXJkIHRoZSBpbnB1dFxuICAgIGlmIChub0RlY2ltYWwgJiYgKGMudmFsdWUgPT09ICcuJyB8fCBjLnZhbHVlID09PSAnLCcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGMudHlwZSA9PT0gJ2NsZWFyJykge1xuICAgICAgbG9nKCdjYWxsIGNsZWFyLi4uJyk7XG4gICAgICB0aGlzLmlucHV0LmNsZWFyKCk7XG4gICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdjb21tYW5kJykge1xuICAgICAgdGhpcy5pbnB1dC5jb21tYW5kKGMudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAoYy50eXBlID09PSAnY3Vyc29yJykge1xuICAgICAgdGhpcy5pbnB1dC5rZXlzdHJva2UoYy52YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdhbnN3ZXInKSB7XG4gICAgICB0aGlzLmlucHV0LndyaXRlKCclcmVzcG9uc2UlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXQud3JpdGUoYy52YWx1ZSk7XG4gICAgfVxuICB9O1xuXG4gIHVwZGF0ZURpc2FibGUgPSBpc0VkaXQgPT4ge1xuICAgIGNvbnN0IHsgbWF4UmVzcG9uc2VBcmVhcyB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChtYXhSZXNwb25zZUFyZWFzKSB7XG4gICAgICBjb25zdCBzaG91bGREaXNhYmxlID0gdGhpcy5jaGVja1Jlc3BvbnNlQXJlYXNOdW1iZXIobWF4UmVzcG9uc2VBcmVhcywgaXNFZGl0KTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGFkZERpc2FibGVkOiBzaG91bGREaXNhYmxlIH0pO1xuICAgIH1cbiAgfTtcblxuICBvbkFuc3dlckJsb2NrQ2xpY2sgPSAoKSA9PiB7XG4gICAgdGhpcy5wcm9wcy5vbkFuc3dlckJsb2NrQWRkKCk7XG4gICAgdGhpcy5vbkNsaWNrKHtcbiAgICAgIHR5cGU6ICdhbnN3ZXInXG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZURpc2FibGUodHJ1ZSk7XG4gIH07XG5cbiAgb25FZGl0b3JDaGFuZ2UgPSBsYXRleCA9PiB7XG4gICAgY29uc3QgeyBvbkNoYW5nZSwgbm9EZWNpbWFsIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgdXBkYXRlU3BhbnMoKTtcblxuICAgIHRoaXMudXBkYXRlRGlzYWJsZSh0cnVlKTtcblxuICAgIC8vIGlmIG5vIGRlY2ltYWxzIGFyZSBhbGxvd2VkIGFuZCB0aGUgbGFzdCBjaGFuZ2UgaXMgYSBkZWNpbWFsIGRvdCwgZGlzY2FyZCB0aGUgY2hhbmdlXG4gICAgaWYgKG5vRGVjaW1hbCAmJiAobGF0ZXguaW5kZXhPZignLicpICE9PSAtMSB8fCBsYXRleC5pbmRleE9mKCcsJykgIT09IC0xKSAmJiB0aGlzLmlucHV0KSB7XG4gICAgICB0aGlzLmlucHV0LmNsZWFyKCk7XG4gICAgICB0aGlzLmlucHV0LndyaXRlKGxhdGV4LnJlcGxhY2UoZGVjaW1hbFJlZ2V4LCAnJykpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG9uQ2hhbmdlKGxhdGV4KTtcbiAgfTtcblxuICAvKiogT25seSByZW5kZXIgaWYgdGhlIG1hdGhxdWlsbCBpbnN0YW5jZSdzIGxhdGV4IGlzIGRpZmZlcmVudFxuICAgKiBvciB0aGUga2V5cGFkIHN0YXRlIGNoYW5nZWQgZnJvbSBvbmUgc3RhdGUgdG8gdGhlIG90aGVyIChzaG93biAvIGhpZGRlbikgKi9cbiAgc2hvdWxkQ29tcG9uZW50VXBkYXRlKG5leHRQcm9wcywgbmV4dFN0YXRlKSB7XG4gICAgY29uc3QgaW5wdXRJc0RpZmZlcmVudCA9IHRoaXMuaW5wdXQubWF0aEZpZWxkLmxhdGV4KCkgIT09IG5leHRQcm9wcy5sYXRleDtcbiAgICBsb2coJ1tzaG91bGRDb21wb25lbnRVcGRhdGVdICcsICdpbnB1dElzRGlmZmVyZW50OiAnLCBpbnB1dElzRGlmZmVyZW50KTtcblxuICAgIGlmICghaXNFcXVhbCh0aGlzLnByb3BzLmVycm9yLCBuZXh0UHJvcHMuZXJyb3IpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0SXNEaWZmZXJlbnQgJiYgdGhpcy5wcm9wcy5rZXlwYWRNb2RlICE9PSBuZXh0UHJvcHMua2V5cGFkTW9kZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpbnB1dElzRGlmZmVyZW50ICYmIHRoaXMucHJvcHMubm9EZWNpbWFsICE9PSBuZXh0UHJvcHMubm9EZWNpbWFsKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0SXNEaWZmZXJlbnQgJiYgdGhpcy5zdGF0ZS5lcXVhdGlvbkVkaXRvciAhPT0gbmV4dFN0YXRlLmVxdWF0aW9uRWRpdG9yKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIWlucHV0SXNEaWZmZXJlbnQgJiYgdGhpcy5wcm9wcy5jb250cm9sbGVkS2V5cGFkKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5zaG93S2V5cGFkICE9PSBuZXh0UHJvcHMuc2hvd0tleXBhZDtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXRJc0RpZmZlcmVudDtcbiAgfVxuXG4gIG9uRWRpdG9yVHlwZUNoYW5nZSA9IGV2dCA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7IGVxdWF0aW9uRWRpdG9yOiBldnQudGFyZ2V0LnZhbHVlIH0pO1xuICB9O1xuXG4gIGNoZWNrUmVzcG9uc2VBcmVhc051bWJlciA9IChtYXhSZXNwb25zZUFyZWFzLCBpc0VkaXQpID0+IHtcbiAgICBjb25zdCB7IGxhdGV4IH0gPSAodGhpcy5pbnB1dCAmJiB0aGlzLmlucHV0LnByb3BzKSB8fCB7fTtcblxuICAgIGlmIChsYXRleCkge1xuICAgICAgY29uc3QgY291bnQgPSAobGF0ZXgubWF0Y2goL2Fuc3dlckJsb2NrL2cpIHx8IFtdKS5sZW5ndGg7XG5cbiAgICAgIHJldHVybiBpc0VkaXQgPyBjb3VudCA9PT0gbWF4UmVzcG9uc2VBcmVhcyAtIDEgOiBjb3VudCA9PT0gbWF4UmVzcG9uc2VBcmVhcztcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNsYXNzTmFtZXMsXG4gICAgICBrZXlwYWRNb2RlLFxuICAgICAgYWxsb3dBbnN3ZXJCbG9jayxcbiAgICAgIGFkZGl0aW9uYWxLZXlzLFxuICAgICAgY29udHJvbGxlZEtleXBhZCxcbiAgICAgIGNvbnRyb2xsZWRLZXlwYWRNb2RlLFxuICAgICAgc2hvd0tleXBhZCxcbiAgICAgIG5vRGVjaW1hbCxcbiAgICAgIGhpZGVJbnB1dCxcbiAgICAgIGxheW91dEZvcktleVBhZCxcbiAgICAgIGxhdGV4LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIGNsYXNzZXMsXG4gICAgICBlcnJvclxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHNob3VsZFNob3dLZXlwYWQgPSAhY29udHJvbGxlZEtleXBhZCB8fCAoY29udHJvbGxlZEtleXBhZCAmJiBzaG93S2V5cGFkKTtcbiAgICBjb25zdCB7IGFkZERpc2FibGVkIH0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbG9nKCdbcmVuZGVyXScsIGxhdGV4KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5tYXRoVG9vbGJhciwgY2xhc3NOYW1lcy5tYXRoVG9vbGJhcil9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbnB1dEFuZFR5cGVDb250YWluZXIsIHsgW2NsYXNzZXMuaGlkZV06IGhpZGVJbnB1dCB9KX0+XG4gICAgICAgICAge2NvbnRyb2xsZWRLZXlwYWRNb2RlICYmIChcbiAgICAgICAgICAgIDxJbnB1dENvbnRhaW5lciBsYWJlbD1cIkVxdWF0aW9uIEVkaXRvclwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5zZWxlY3RDb250YWluZXJ9PlxuICAgICAgICAgICAgICA8U2VsZWN0XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLnNlbGVjdH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkVkaXRvclR5cGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuZXF1YXRpb25FZGl0b3J9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9XCJub24tbmVnYXRpdmUtaW50ZWdlcnNcIj5OdW1lcmljIC0gTm9uLU5lZ2F0aXZlIEludGVnZXJzPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9XCJpbnRlZ2Vyc1wiPk51bWVyaWMgLSBJbnRlZ2VyczwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPVwiZGVjaW1hbHNcIj5OdW1lcmljIC0gRGVjaW1hbHM8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT1cImZyYWN0aW9uc1wiPk51bWVyaWMgLSBGcmFjdGlvbnM8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17MX0+R3JhZGUgMSAtIDI8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17M30+R3JhZGUgMyAtIDU8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17Nn0+R3JhZGUgNiAtIDc8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17OH0+R3JhZGUgOCAtIEhTPC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9eydnZW9tZXRyeSd9Pkdlb21ldHJ5PC9NZW51SXRlbT5cbiAgICAgICAgICAgICAgICA8TWVudUl0ZW0gdmFsdWU9eydhZHZhbmNlZC1hbGdlYnJhJ30+QWR2YW5jZWQgQWxnZWJyYTwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgPE1lbnVJdGVtIHZhbHVlPXsnc3RhdGlzdGljcyd9PlN0YXRpc3RpY3M8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgIDxNZW51SXRlbSB2YWx1ZT17J2l0ZW0tYXV0aG9yaW5nJ30+SXRlbSBBdXRob3Jpbmc8L01lbnVJdGVtPlxuICAgICAgICAgICAgICA8L1NlbGVjdD5cbiAgICAgICAgICAgIDwvSW5wdXRDb250YWluZXI+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y3goY2xhc3Nlcy5pbnB1dENvbnRhaW5lciwgZXJyb3IgPyBjbGFzc2VzLmVycm9yIDogJycpfT5cbiAgICAgICAgICAgIDxtcS5JbnB1dFxuICAgICAgICAgICAgICBvbkZvY3VzPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgb25Gb2N1cyAmJiBvbkZvY3VzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNhYmxlKGZhbHNlKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb25CbHVyPXtldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNhYmxlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBvbkJsdXIgJiYgb25CbHVyKGV2ZW50KTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjeChcbiAgICAgICAgICAgICAgICBjbGFzc2VzLm1hdGhFZGl0b3IsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lcy5lZGl0b3IsXG4gICAgICAgICAgICAgICAgIWNvbnRyb2xsZWRLZXlwYWRNb2RlID8gY2xhc3Nlcy5sb25nTWF0aEVkaXRvciA6ICcnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIGlubmVyUmVmPXtyID0+ICh0aGlzLmlucHV0ID0gcil9XG4gICAgICAgICAgICAgIGxhdGV4PXtsYXRleH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25FZGl0b3JDaGFuZ2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2FsbG93QW5zd2VyQmxvY2sgJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5hZGRBbnN3ZXJCbG9ja0J1dHRvbn1cbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIHN0eWxlPXt7IGJvdHRvbTogc2hvdWxkU2hvd0tleXBhZCA/ICczMjBweCcgOiAnMjBweCcgfX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25BbnN3ZXJCbG9ja0NsaWNrfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2FkZERpc2FibGVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgICsgUmVzcG9uc2UgQXJlYVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgICA8aHIgY2xhc3NOYW1lPXtjbGFzc2VzLmhyfSAvPlxuICAgICAgICB7c2hvdWxkU2hvd0tleXBhZCAmJiAoXG4gICAgICAgICAgPEhvcml6b250YWxLZXlwYWRcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5rZXlib2FyZH1cbiAgICAgICAgICAgIGxheW91dEZvcktleVBhZD17bGF5b3V0Rm9yS2V5UGFkfVxuICAgICAgICAgICAgYWRkaXRpb25hbEtleXM9e2FkZGl0aW9uYWxLZXlzfVxuICAgICAgICAgICAgbW9kZT17Y29udHJvbGxlZEtleXBhZE1vZGUgPyB0aGlzLnN0YXRlLmVxdWF0aW9uRWRpdG9yIDoga2V5cGFkTW9kZX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25DbGlja31cbiAgICAgICAgICAgIG5vRGVjaW1hbD17bm9EZWNpbWFsfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IHN0eWxlcyA9IHRoZW1lID0+ICh7XG4gIGlucHV0QW5kVHlwZUNvbnRhaW5lcjoge1xuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAnJiAubXEtZWRpdGFibGUtZmllbGQgLm1xLWN1cnNvcic6IHtcbiAgICAgIHRvcDogJy00cHgnXG4gICAgfSxcbiAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1zZWxlY3Rpb24sIC5tcS1lZGl0YWJsZS1maWVsZCAubXEtc2VsZWN0aW9uJzoge1xuICAgICAgcGFkZGluZ1RvcDogJzE4cHgnXG4gICAgfSxcbiAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1vdmVyYXJyb3cnOiB7XG4gICAgICBmb250RmFtaWx5OiAnUm9ib3RvLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQnXG4gICAgfSxcbiAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1vdmVybGluZSAubXEtb3ZlcmxpbmUtaW5uZXInOiB7XG4gICAgICBwYWRkaW5nVG9wOiAnMC40ZW0gIWltcG9ydGFudCdcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3cubXEtYXJyb3ctYm90aCc6IHtcbiAgICAgIG1pbldpZHRoOiAnMS4yM2VtJyxcbiAgICAgICcmIConOiB7XG4gICAgICAgIGxpbmVIZWlnaHQ6ICcxICFpbXBvcnRhbnQnXG4gICAgICB9LFxuICAgICAgJyY6YmVmb3JlJzoge1xuICAgICAgICB0b3A6ICctMC40NWVtJyxcbiAgICAgICAgbGVmdDogJy0xcHgnXG4gICAgICB9LFxuICAgICAgJyY6YWZ0ZXInOiB7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB0b3A6ICcwcHggIWltcG9ydGFudCcsXG4gICAgICAgIHJpZ2h0OiAnLTJweCdcbiAgICAgIH0sXG4gICAgICAnJi5tcS1lbXB0eTphZnRlcic6IHtcbiAgICAgICAgdG9wOiAnLTAuNDVlbSdcbiAgICAgIH1cbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3cubXEtYXJyb3ctcmlnaHQnOiB7XG4gICAgICAnJjpiZWZvcmUnOiB7XG4gICAgICAgIHRvcDogJy0wLjRlbScsXG4gICAgICAgIHJpZ2h0OiAnLTFweCdcbiAgICAgIH1cbiAgICB9LFxuICAgICcmIConOiB7XG4gICAgICBmb250RmFtaWx5OiAnTUpYWkVSTywgTUpYVEVYICFpbXBvcnRhbnQnLFxuXG4gICAgICAnJiAubXEtbWF0aC1tb2RlID4gc3BhbiA+IHZhcic6IHtcbiAgICAgICAgZm9udEZhbWlseTogJ01KWFpFUk8sIE1KWFRFWC1JICFpbXBvcnRhbnQnXG4gICAgICB9LFxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSBzcGFuIHZhcic6IHtcbiAgICAgICAgZm9udEZhbWlseTogJ01KWFpFUk8sIE1KWFRFWC1JICFpbXBvcnRhbnQnXG4gICAgICB9LFxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtbm9uU3ltYm9sYSc6IHtcbiAgICAgICAgZm9udEZhbWlseTogJ01KWFpFUk8sIE1KWFRFWC1JICFpbXBvcnRhbnQnXG4gICAgICB9LFxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSA+IHNwYW4gPiB2YXIubXEtb3BlcmF0b3ItbmFtZSc6IHtcbiAgICAgICAgZm9udEZhbWlseTogJ01KWFpFUk8sIE1KWFRFWCAhaW1wb3J0YW50J1xuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtc3FydC1wcmVmaXgnOiB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdib3R0b20gIWltcG9ydGFudCcsXG4gICAgICAgIHRvcDogJzAgIWltcG9ydGFudCcsXG4gICAgICAgIGxlZnQ6ICctMC4xZW0gIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLW92ZXJhcmMgJzoge1xuICAgICAgICBwYWRkaW5nVG9wOiAnMC40NWVtICFpbXBvcnRhbnQnXG4gICAgICB9LFxuXG4gICAgICAnJiAubXEtbWF0aC1tb2RlIHN1cC5tcS1udGhyb290Jzoge1xuICAgICAgICBmb250U2l6ZTogJzcwJSAhaW1wb3J0YW50JyxcbiAgICAgICAgdmVydGljYWxBbGlnbjogJzAuNWVtICFpbXBvcnRhbnQnLFxuICAgICAgICBwYWRkaW5nUmlnaHQ6ICcwLjE1ZW0nXG4gICAgICB9LFxuXG4gICAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1lbXB0eSc6IHtcbiAgICAgICAgcGFkZGluZzogJzlweCAxcHggIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLXJvb3QtYmxvY2snOiB7XG4gICAgICAgIHBhZGRpbmdUb3A6ICcxMHB4J1xuICAgICAgfSxcblxuICAgICAgJyYgLm1xLXNjYWxlZCAubXEtc3FydC1wcmVmaXgnOiB7XG4gICAgICAgIHRvcDogJzAgIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1sb25nZGl2LWlubmVyJzoge1xuICAgICAgICBtYXJnaW5Ub3A6ICctMXB4JyxcbiAgICAgICAgbWFyZ2luTGVmdDogJzVweCAhaW1wb3J0YW50OycsXG5cbiAgICAgICAgJyYgPiAubXEtZW1wdHknOiB7XG4gICAgICAgICAgcGFkZGluZzogJzAgIWltcG9ydGFudCcsXG4gICAgICAgICAgbWFyZ2luTGVmdDogJzBweCAhaW1wb3J0YW50JyxcbiAgICAgICAgICBtYXJnaW5Ub3A6ICcycHgnXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLWxvbmdkaXYnOiB7XG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCAhaW1wb3J0YW50J1xuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtbG9uZ2RpdiAubXEtbG9uZ2Rpdi1pbm5lcic6IHtcbiAgICAgICAgbWFyZ2luTGVmdDogJzRweCAhaW1wb3J0YW50JyxcbiAgICAgICAgcGFkZGluZ1RvcDogJzZweCAhaW1wb3J0YW50JyxcbiAgICAgICAgcGFkZGluZ0xlZnQ6ICc2cHggIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLXN1cHN1Yic6IHtcbiAgICAgICAgZm9udFNpemU6ICc3MC43JSAhaW1wb3J0YW50J1xuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtcGFyZW4nOiB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AgIWltcG9ydGFudCcsXG4gICAgICAgIHBhZGRpbmc6ICcxcHggMC4xZW0gIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLXNxcnQtc3RlbSc6IHtcbiAgICAgICAgYm9yZGVyVG9wOiAnMC4wN2VtIHNvbGlkJyxcbiAgICAgICAgbWFyZ2luTGVmdDogJy0xLjVweCcsXG4gICAgICAgIG1hcmdpblRvcDogJy0ycHggIWltcG9ydGFudCcsXG4gICAgICAgIHBhZGRpbmdUb3A6ICc1cHggIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1zdXBzdWIgJzoge1xuICAgICAgICBmb250U2l6ZTogJzcwLjclJ1xuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtc3Vwc3ViLm1xLXN1cC1vbmx5Jzoge1xuICAgICAgICB2ZXJ0aWNhbEFsaWduOiAnLTAuMWVtICFpbXBvcnRhbnQnLFxuXG4gICAgICAgICcmIC5tcS1zdXAnOiB7XG4gICAgICAgICAgbWFyZ2luQm90dG9tOiAnMHB4ICFpbXBvcnRhbnQnXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLWRlbm9taW5hdG9yJzoge1xuICAgICAgICBtYXJnaW5Ub3A6ICctNXB4ICFpbXBvcnRhbnQnLFxuICAgICAgICBwYWRkaW5nOiAnMC41ZW0gMC4xZW0gMC4xZW0gIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLW51bWVyYXRvciwgLm1xLW1hdGgtbW9kZSAubXEtb3Zlcic6IHtcbiAgICAgICAgcGFkZGluZzogJzAgMC4xZW0gIWltcG9ydGFudCcsXG4gICAgICAgIHBhZGRpbmdCb3R0b206ICcwICFpbXBvcnRhbnQnLFxuICAgICAgICBtYXJnaW5Cb3R0b206ICc0LjVweCdcbiAgICAgIH0sXG5cbiAgICAgICctd2Via2l0LWZvbnQtc21vb3RoaW5nJzogJ2FudGlhbGlhc2VkICFpbXBvcnRhbnQnXG4gICAgfVxuICB9LFxuICBoaWRlOiB7XG4gICAgZGlzcGxheTogJ25vbmUnXG4gIH0sXG4gIHNlbGVjdENvbnRhaW5lcjoge1xuICAgIGZsZXg6ICdpbml0aWFsJyxcbiAgICB3aWR0aDogJzI1JScsXG4gICAgbWluV2lkdGg6ICcxMDBweCcsXG4gICAgbWFyZ2luTGVmdDogJzE1cHgnLFxuICAgIG1hcmdpblRvcDogJzVweCcsXG4gICAgbWFyZ2luQm90dG9tOiAnNXB4JyxcbiAgICBtYXJnaW5SaWdodDogJzVweCcsXG5cbiAgICAnJiBsYWJlbCc6IHtcbiAgICAgIGZvbnRGYW1pbHk6ICdSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudCdcbiAgICB9LFxuXG4gICAgJyYgZGl2Jzoge1xuICAgICAgZm9udEZhbWlseTogJ1JvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiAhaW1wb3J0YW50J1xuICAgIH1cbiAgfSxcbiAgbWF0aEVkaXRvcjoge1xuICAgIG1heFdpZHRoOiAnNDAwcHgnLFxuICAgIGNvbG9yOiBjb2xvci50ZXh0KCksXG4gICAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5iYWNrZ3JvdW5kKCksXG4gICAgcGFkZGluZzogJzJweCdcbiAgfSxcbiAgbG9uZ01hdGhFZGl0b3I6IHtcbiAgICBtYXhXaWR0aDogJzUwMHB4J1xuICB9LFxuICBhZGRBbnN3ZXJCbG9ja0J1dHRvbjoge1xuICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgIHJpZ2h0OiAnMTJweCcsXG4gICAgYm9yZGVyOiAnMXB4IHNvbGlkIGxpZ2h0Z3JleSdcbiAgfSxcbiAgaHI6IHtcbiAgICBwYWRkaW5nOiAwLFxuICAgIG1hcmdpbjogMCxcbiAgICBoZWlnaHQ6ICcxcHgnLFxuICAgIGJvcmRlcjogJ25vbmUnLFxuICAgIGJvcmRlckJvdHRvbTogYHNvbGlkIDFweCAke3RoZW1lLnBhbGV0dGUucHJpbWFyeS5tYWlufWBcbiAgfSxcbiAgbWF0aFRvb2xiYXI6IHtcbiAgICB6SW5kZXg6IDksXG4gICAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICB3aWR0aDogJ2F1dG8nLFxuICAgICcmID4gLm1xLW1hdGgtbW9kZSc6IHtcbiAgICAgIGJvcmRlcjogJ3NvbGlkIDFweCBsaWdodGdyZXknXG4gICAgfSxcbiAgICAnJiA+IC5tcS1mb2N1c2VkJzoge1xuICAgICAgb3V0bGluZTogJ25vbmUnLFxuICAgICAgYm94U2hhZG93OiAnbm9uZScsXG4gICAgICBib3JkZXI6IGBkb3R0ZWQgMXB4ICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgICAgIGJvcmRlclJhZGl1czogJzBweCdcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3ctaW5uZXInOiB7XG4gICAgICBib3JkZXI6ICdub25lICFpbXBvcnRhbnQnLFxuICAgICAgcGFkZGluZ1RvcDogJzAgIWltcG9ydGFudCdcbiAgICB9LFxuICAgICcmIC5tcS1vdmVyYXJyb3ctaW5uZXItcmlnaHQnOiB7XG4gICAgICBkaXNwbGF5OiAnbm9uZSAhaW1wb3J0YW50J1xuICAgIH0sXG4gICAgJyYgLm1xLW92ZXJhcnJvdy1pbm5lci1sZWZ0Jzoge1xuICAgICAgZGlzcGxheTogJ25vbmUgIWltcG9ydGFudCdcbiAgICB9LFxuICAgICcmIC5tcS1sb25nZGl2LWlubmVyJzoge1xuICAgICAgYm9yZGVyVG9wOiAnMXB4IHNvbGlkICFpbXBvcnRhbnQnLFxuICAgICAgcGFkZGluZ1RvcDogJzEuNXB4ICFpbXBvcnRhbnQnXG4gICAgfSxcbiAgICAnJiAubXEtb3ZlcmFycm93Lm1xLWFycm93LWJvdGgnOiB7XG4gICAgICB0b3A6ICc3LjhweCcsXG4gICAgICBtYXJnaW5Ub3A6ICcwcHgnLFxuICAgICAgbWluV2lkdGg6ICcxLjIzZW0nXG4gICAgfSxcbiAgICAnJiAubXEtcGFyYWxsZWxvZ3JhbSc6IHtcbiAgICAgIGxpbmVIZWlnaHQ6IDAuODVcbiAgICB9XG4gIH0sXG4gIGlucHV0Q29udGFpbmVyOiB7XG4gICAgbWluV2lkdGg6ICc1MDBweCcsXG4gICAgbWF4V2lkdGg6ICc5MDBweCcsXG4gICAgbWluSGVpZ2h0OiAnMzBweCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgbWFyZ2luQm90dG9tOiB0aGVtZS5zcGFjaW5nLnVuaXQsXG5cbiAgICAnJiAubXEtc3FydC1wcmVmaXggLm1xLXNjYWxlZCc6IHtcbiAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUgIWltcG9ydGFudCdcbiAgICB9XG4gIH0sXG4gIGVycm9yOiB7XG4gICAgYm9yZGVyOiAnMnB4IHNvbGlkIHJlZCdcbiAgfSxcbiAga2V5Ym9hcmQ6IHtcbiAgICAnJiAqJzoge1xuICAgICAgZm9udEZhbWlseTogJ01KWFpFUk8sIE1KWFRFWCAhaW1wb3J0YW50JyxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSA+IHNwYW4gPiB2YXInOiB7XG4gICAgICAgIGZvbnRGYW1pbHk6ICdNSlhaRVJPLCBNSlhURVgtSSAhaW1wb3J0YW50J1xuICAgICAgfSxcbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgc3BhbiB2YXInOiB7XG4gICAgICAgIGZvbnRGYW1pbHk6ICdNSlhaRVJPLCBNSlhURVgtSSAhaW1wb3J0YW50J1xuICAgICAgfSxcbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLW5vblN5bWJvbGEnOiB7XG4gICAgICAgIGZvbnRGYW1pbHk6ICdNSlhaRVJPLCBNSlhURVgtSSAhaW1wb3J0YW50J1xuICAgICAgfSxcbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgPiBzcGFuID4gdmFyLm1xLW9wZXJhdG9yLW5hbWUnOiB7XG4gICAgICAgIGZvbnRGYW1pbHk6ICdNSlhaRVJPLCBNSlhURVggIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLXNxcnQtcHJlZml4Jzoge1xuICAgICAgICB0b3A6ICcwICFpbXBvcnRhbnQnXG4gICAgICB9LFxuXG4gICAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1lbXB0eSc6IHtcbiAgICAgICAgcGFkZGluZzogJzlweCAxcHggIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1sb25nZGl2LWlubmVyJzoge1xuICAgICAgICBtYXJnaW5Ub3A6ICctMXB4JyxcbiAgICAgICAgbWFyZ2luTGVmdDogJzVweCAhaW1wb3J0YW50OycsXG5cbiAgICAgICAgJyYgPiAubXEtZW1wdHknOiB7XG4gICAgICAgICAgcGFkZGluZzogJzAgIWltcG9ydGFudCcsXG4gICAgICAgICAgbWFyZ2luTGVmdDogJzBweCAhaW1wb3J0YW50JyxcbiAgICAgICAgICBtYXJnaW5Ub3A6ICcycHgnXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLWxvbmdkaXYnOiB7XG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtZmxleCAhaW1wb3J0YW50J1xuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtc3Vwc3ViJzoge1xuICAgICAgICBmb250U2l6ZTogJzcwLjclICFpbXBvcnRhbnQnXG4gICAgICB9LFxuXG4gICAgICAnJiAubXEtbWF0aC1tb2RlIC5tcS1zcXJ0LXN0ZW0nOiB7XG4gICAgICAgIG1hcmdpblRvcDogJy01cHgnLFxuICAgICAgICBwYWRkaW5nVG9wOiAnNHB4J1xuICAgICAgfSxcblxuICAgICAgJyYgLm1xLW1hdGgtbW9kZSAubXEtcGFyZW4nOiB7XG4gICAgICAgIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUgIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLW92ZXJhcnJvdyAubXEtb3ZlcmFycm93LWlubmVyIC5tcS1lbXB0eSc6IHtcbiAgICAgICAgcGFkZGluZzogJzAgIWltcG9ydGFudCdcbiAgICAgIH0sXG5cbiAgICAgICcmIC5tcS1tYXRoLW1vZGUgLm1xLW92ZXJsaW5lIC5tcS1vdmVybGluZS1pbm5lciAubXEtZW1wdHkgJzoge1xuICAgICAgICBwYWRkaW5nOiAnMCAhaW1wb3J0YW50J1xuICAgICAgfVxuICAgIH1cbiAgfVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZXMoc3R5bGVzKShFZGl0b3JBbmRQYWQpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0FBTEEsSUFBTUEsR0FBRyxHQUFHLElBQUFDLGlCQUFBLEVBQU0sc0NBQU4sQ0FBWjtBQU9BLElBQU1DLFlBQVksR0FB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
|
|
591
|
+
//# sourceMappingURL=editor-and-pad.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-and-pad.js","names":["log","debug","decimalRegex","toNodeData","data","type","value","EditorAndPad","props","noDecimal","noLatexHandling","onChange","c","input","clear","command","keystroke","write","isEdit","maxResponseAreas","shouldDisable","checkResponseAreasNumber","setState","addDisabled","onAnswerBlockAdd","onClick","updateDisable","latex","updateSpans","indexOf","replace","evt","equationEditor","target","count","match","length","state","autoFocus","focus","nextProps","nextState","inputIsDifferent","mathField","isEqual","error","keypadMode","controlledKeypad","showKeypad","classNames","allowAnswerBlock","additionalKeys","controlledKeypadMode","hideInput","layoutForKeyPad","onFocus","onBlur","classes","shouldShowKeypad","cx","mathToolbar","inputAndTypeContainer","hide","selectContainer","select","onEditorTypeChange","inputContainer","event","mathEditor","editor","longMathEditor","r","onEditorChange","addAnswerBlockButton","bottom","onAnswerBlockClick","hr","keyboard","React","Component","PropTypes","object","oneOfType","string","number","bool","array","func","isRequired","styles","theme","display","alignItems","top","paddingTop","fontFamily","minWidth","lineHeight","left","position","right","verticalAlign","fontSize","paddingRight","padding","marginTop","marginLeft","paddingLeft","borderTop","marginBottom","paddingBottom","flex","width","marginRight","maxWidth","color","text","backgroundColor","background","border","margin","height","borderBottom","palette","primary","main","zIndex","textAlign","outline","boxShadow","borderRadius","minHeight","spacing","unit","withStyles"],"sources":["../src/editor-and-pad.jsx"],"sourcesContent":["import { HorizontalKeypad, mq } from '@pie-lib/math-input';\nimport React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nconst log = debug('@pie-lib:math-toolbar:editor-and-pad');\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport { updateSpans } from '@pie-lib/math-input';\nimport isEqual from 'lodash/isEqual';\n\nconst decimalRegex = /\\.|,/g;\n\nconst toNodeData = data => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n};\n\nexport class EditorAndPad extends React.Component {\n static propTypes = {\n classNames: PropTypes.object,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n autoFocus: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n showKeypad: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n noDecimal: PropTypes.bool,\n hideInput: PropTypes.bool,\n noLatexHandling: PropTypes.bool,\n layoutForKeyPad: PropTypes.object,\n additionalKeys: PropTypes.array,\n latex: PropTypes.string,\n onAnswerBlockAdd: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n\n this.state = { equationEditor: 'item-authoring', addDisabled: false };\n }\n\n componentDidMount() {\n if (this.input && this.props.autoFocus) {\n this.input.focus();\n }\n }\n\n onClick = data => {\n const { noDecimal, noLatexHandling, onChange } = this.props;\n const c = toNodeData(data);\n log('mathChange: ', c);\n\n if (noLatexHandling) {\n onChange(c.value);\n return;\n }\n\n // if decimals are not allowed for this response, we discard the input\n if (noDecimal && (c.value === '.' || c.value === ',')) {\n return;\n }\n\n if (!c) {\n return;\n }\n\n if (c.type === 'clear') {\n log('call clear...');\n this.input.clear();\n } else if (c.type === 'command') {\n this.input.command(c.value);\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else if (c.type === 'answer') {\n this.input.write('%response%');\n } else {\n this.input.write(c.value);\n }\n };\n\n updateDisable = isEdit => {\n const { maxResponseAreas } = this.props;\n\n if (maxResponseAreas) {\n const shouldDisable = this.checkResponseAreasNumber(maxResponseAreas, isEdit);\n\n this.setState({ addDisabled: shouldDisable });\n }\n };\n\n onAnswerBlockClick = () => {\n this.props.onAnswerBlockAdd();\n this.onClick({\n type: 'answer'\n });\n\n this.updateDisable(true);\n };\n\n onEditorChange = latex => {\n const { onChange, noDecimal } = this.props;\n\n updateSpans();\n\n this.updateDisable(true);\n\n // if no decimals are allowed and the last change is a decimal dot, discard the change\n if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && this.input) {\n this.input.clear();\n this.input.write(latex.replace(decimalRegex, ''));\n return;\n }\n\n onChange(latex);\n };\n\n /** Only render if the mathquill instance's latex is different\n * or the keypad state changed from one state to the other (shown / hidden) */\n shouldComponentUpdate(nextProps, nextState) {\n const inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;\n log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);\n\n if (!isEqual(this.props.error, nextProps.error)) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.noDecimal !== nextProps.noDecimal) {\n return true;\n }\n\n if (!inputIsDifferent && this.state.equationEditor !== nextState.equationEditor) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.controlledKeypad) {\n return this.props.showKeypad !== nextProps.showKeypad;\n }\n\n return inputIsDifferent;\n }\n\n onEditorTypeChange = evt => {\n this.setState({ equationEditor: evt.target.value });\n };\n\n checkResponseAreasNumber = (maxResponseAreas, isEdit) => {\n const { latex } = (this.input && this.input.props) || {};\n\n if (latex) {\n const count = (latex.match(/answerBlock/g) || []).length;\n\n return isEdit ? count === maxResponseAreas - 1 : count === maxResponseAreas;\n }\n\n return false;\n };\n\n render() {\n const {\n classNames,\n keypadMode,\n allowAnswerBlock,\n additionalKeys,\n controlledKeypad,\n controlledKeypadMode,\n showKeypad,\n noDecimal,\n hideInput,\n layoutForKeyPad,\n latex,\n onFocus,\n onBlur,\n classes,\n error\n } = this.props;\n const shouldShowKeypad = !controlledKeypad || (controlledKeypad && showKeypad);\n const { addDisabled } = this.state;\n\n log('[render]', latex);\n\n return (\n <div className={cx(classes.mathToolbar, classNames.mathToolbar)}>\n <div className={cx(classes.inputAndTypeContainer, { [classes.hide]: hideInput })}>\n {controlledKeypadMode && (\n <InputContainer label=\"Equation Editor\" className={classes.selectContainer}>\n <Select\n className={classes.select}\n onChange={this.onEditorTypeChange}\n value={this.state.equationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n )}\n <div className={cx(classes.inputContainer, error ? classes.error : '')}>\n <mq.Input\n onFocus={() => {\n onFocus && onFocus();\n this.updateDisable(false);\n }}\n onBlur={event => {\n this.updateDisable(false);\n onBlur && onBlur(event);\n }}\n className={cx(\n classes.mathEditor,\n classNames.editor,\n !controlledKeypadMode ? classes.longMathEditor : ''\n )}\n innerRef={r => (this.input = r)}\n latex={latex}\n onChange={this.onEditorChange}\n />\n </div>\n </div>\n {allowAnswerBlock && (\n <Button\n className={classes.addAnswerBlockButton}\n type=\"primary\"\n style={{ bottom: shouldShowKeypad ? '320px' : '20px' }}\n onClick={this.onAnswerBlockClick}\n disabled={addDisabled}\n >\n + Response Area\n </Button>\n )}\n <hr className={classes.hr} />\n {shouldShowKeypad && (\n <HorizontalKeypad\n className={classes.keyboard}\n layoutForKeyPad={layoutForKeyPad}\n additionalKeys={additionalKeys}\n mode={controlledKeypadMode ? this.state.equationEditor : keypadMode}\n onClick={this.onClick}\n noDecimal={noDecimal}\n />\n )}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n inputAndTypeContainer: {\n display: 'flex',\n alignItems: 'center',\n '& .mq-editable-field .mq-cursor': {\n top: '-4px'\n },\n '& .mq-math-mode .mq-selection, .mq-editable-field .mq-selection': {\n paddingTop: '18px'\n },\n '& .mq-math-mode .mq-overarrow': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n },\n '& .mq-math-mode .mq-overline .mq-overline-inner': {\n paddingTop: '0.4em !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important'\n },\n '&:before': {\n top: '-0.45em',\n left: '-1px'\n },\n '&:after': {\n position: 'absolute',\n top: '0px !important',\n right: '-2px'\n },\n '&.mq-empty:after': {\n top: '-0.45em'\n }\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px'\n }\n },\n '& *': {\n fontFamily: 'MJXZERO, MJXTEX !important',\n\n '& .mq-math-mode > span > var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important'\n },\n '& .mq-math-mode span var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important'\n },\n '& .mq-math-mode .mq-nonSymbola': {\n fontFamily: 'MJXZERO, MJXTEX-I !important'\n },\n '& .mq-math-mode > span > var.mq-operator-name': {\n fontFamily: 'MJXZERO, MJXTEX !important'\n },\n\n '& .mq-math-mode .mq-sqrt-prefix': {\n verticalAlign: 'bottom !important',\n top: '0 !important',\n left: '-0.1em !important'\n },\n\n '& .mq-math-mode .mq-overarc ': {\n paddingTop: '0.45em !important'\n },\n\n '& .mq-math-mode sup.mq-nthroot': {\n fontSize: '70% !important',\n verticalAlign: '0.5em !important',\n paddingRight: '0.15em'\n },\n\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important'\n },\n\n '& .mq-math-mode .mq-root-block': {\n paddingTop: '10px'\n },\n\n '& .mq-scaled .mq-sqrt-prefix': {\n top: '0 !important'\n },\n\n '& .mq-longdiv-inner': {\n marginTop: '-1px',\n marginLeft: '5px !important;',\n\n '& > .mq-empty': {\n padding: '0 !important',\n marginLeft: '0px !important',\n marginTop: '2px'\n }\n },\n\n '& .mq-math-mode .mq-longdiv': {\n display: 'inline-flex !important'\n },\n\n '& .mq-math-mode .mq-longdiv .mq-longdiv-inner': {\n marginLeft: '4px !important',\n paddingTop: '6px !important',\n paddingLeft: '6px !important'\n },\n\n '& .mq-math-mode .mq-supsub': {\n fontSize: '70.7% !important'\n },\n\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'top !important',\n padding: '1px 0.1em !important'\n },\n\n '& .mq-math-mode .mq-sqrt-stem': {\n borderTop: '0.07em solid',\n marginLeft: '-1.5px',\n marginTop: '-2px !important',\n paddingTop: '5px !important'\n },\n\n '& .mq-supsub ': {\n fontSize: '70.7%'\n },\n\n '& .mq-math-mode .mq-supsub.mq-sup-only': {\n verticalAlign: '-0.1em !important',\n\n '& .mq-sup': {\n marginBottom: '0px !important'\n }\n },\n\n '& .mq-math-mode .mq-denominator': {\n marginTop: '-5px !important',\n padding: '0.5em 0.1em 0.1em !important'\n },\n\n '& .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {\n padding: '0 0.1em !important',\n paddingBottom: '0 !important',\n marginBottom: '4.5px'\n },\n\n '-webkit-font-smoothing': 'antialiased !important'\n }\n },\n hide: {\n display: 'none'\n },\n selectContainer: {\n flex: 'initial',\n width: '25%',\n minWidth: '100px',\n marginLeft: '15px',\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px',\n\n '& label': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n },\n\n '& div': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important'\n }\n },\n mathEditor: {\n maxWidth: '400px',\n color: color.text(),\n backgroundColor: color.background(),\n padding: '2px'\n },\n longMathEditor: {\n maxWidth: '500px'\n },\n addAnswerBlockButton: {\n position: 'absolute',\n right: '12px',\n border: '1px solid lightgrey'\n },\n hr: {\n padding: 0,\n margin: 0,\n height: '1px',\n border: 'none',\n borderBottom: `solid 1px ${theme.palette.primary.main}`\n },\n mathToolbar: {\n zIndex: 9,\n position: 'relative',\n textAlign: 'center',\n width: 'auto',\n '& > .mq-math-mode': {\n border: 'solid 1px lightgrey'\n },\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: `dotted 1px ${theme.palette.primary.main}`,\n borderRadius: '0px'\n },\n '& .mq-overarrow-inner': {\n border: 'none !important',\n paddingTop: '0 !important'\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important'\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important'\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important'\n },\n '& .mq-overarrow.mq-arrow-both': {\n top: '7.8px',\n marginTop: '0px',\n minWidth: '1.23em'\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85\n }\n },\n inputContainer: {\n minWidth: '500px',\n maxWidth: '900px',\n minHeight: '30px',\n width: '100%',\n display: 'flex',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n\n '& .mq-sqrt-prefix .mq-scaled': {\n verticalAlign: 'middle !important'\n }\n },\n error: {\n border: '2px solid red'\n },\n keyboard: {\n '& *': {\n fontFamily: 'MJXZERO, MJXTEX !important',\n\n '& .mq-math-mode > span > var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important'\n },\n '& .mq-math-mode span var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important'\n },\n '& .mq-math-mode .mq-nonSymbola': {\n fontFamily: 'MJXZERO, MJXTEX-I !important'\n },\n '& .mq-math-mode > span > var.mq-operator-name': {\n fontFamily: 'MJXZERO, MJXTEX !important'\n },\n\n '& .mq-math-mode .mq-sqrt-prefix': {\n top: '0 !important'\n },\n\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important'\n },\n\n '& .mq-longdiv-inner': {\n marginTop: '-1px',\n marginLeft: '5px !important;',\n\n '& > .mq-empty': {\n padding: '0 !important',\n marginLeft: '0px !important',\n marginTop: '2px'\n }\n },\n\n '& .mq-math-mode .mq-longdiv': {\n display: 'inline-flex !important'\n },\n\n '& .mq-math-mode .mq-supsub': {\n fontSize: '70.7% !important'\n },\n\n '& .mq-math-mode .mq-sqrt-stem': {\n marginTop: '-5px',\n paddingTop: '4px'\n },\n\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'middle !important'\n },\n\n '& .mq-math-mode .mq-overarrow .mq-overarrow-inner .mq-empty': {\n padding: '0 !important'\n },\n\n '& .mq-math-mode .mq-overline .mq-overline-inner .mq-empty ': {\n padding: '0 !important'\n }\n }\n }\n});\n\nexport default withStyles(styles)(EditorAndPad);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor-and-pad.js","names":["_mathInput","require","_react","_interopRequireDefault","_debug","_propTypes","_classnames","_Button","_styles","_renderUi","_MenuItem","_Select","_isEqual","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","_objectSpread","target","i","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","decimalRegex","toNodeData","data","type","value","EditorAndPad","_React$Component","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","_this$props","noDecimal","noLatexHandling","onChange","c","input","clear","command","keystroke","write","isEdit","maxResponseAreas","shouldDisable","checkResponseAreasNumber","setState","addDisabled","onAnswerBlockAdd","onClick","updateDisable","latex","_this$props2","updateSpans","indexOf","replace","regexMatch","match","mathField","__controller","cursor","insLeftOf","parent","el","dispatchEvent","KeyboardEvent","keyCode","console","error","toString","evt","equationEditor","_ref","count","state","_createClass2","componentDidMount","autoFocus","focus","shouldComponentUpdate","nextProps","nextState","inputIsDifferent","isEqual","keypadMode","controlledKeypad","showKeypad","render","_this2","_this$props3","classNames","allowAnswerBlock","additionalKeys","controlledKeypadMode","hideInput","layoutForKeyPad","onFocus","onBlur","classes","shouldShowKeypad","createElement","className","cx","mathToolbar","inputAndTypeContainer","hide","InputContainer","label","selectContainer","select","onEditorTypeChange","inputContainer","mq","Input","event","mathEditor","editor","longMathEditor","innerRef","r","onEditorChange","addAnswerBlockButton","style","bottom","onAnswerBlockClick","disabled","hr","HorizontalKeypad","keyboard","mode","React","Component","exports","PropTypes","oneOfType","string","number","bool","array","func","isRequired","styles","theme","display","alignItems","top","paddingTop","fontFamily","minWidth","lineHeight","left","position","right","verticalAlign","fontSize","paddingRight","padding","marginTop","marginLeft","paddingLeft","borderTop","marginBottom","paddingBottom","flex","width","marginRight","maxWidth","color","text","backgroundColor","background","border","margin","height","borderBottom","concat","palette","primary","main","zIndex","textAlign","outline","boxShadow","borderRadius","minHeight","spacing","unit","language","_default","withStyles"],"sources":["../src/editor-and-pad.jsx"],"sourcesContent":["import { HorizontalKeypad, mq } from '@pie-lib/math-input';\nimport React from 'react';\nimport debug from 'debug';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { withStyles } from '@material-ui/core/styles';\nconst log = debug('@pie-lib:math-toolbar:editor-and-pad');\nimport { color, InputContainer } from '@pie-lib/render-ui';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Select from '@material-ui/core/Select';\nimport { updateSpans } from '@pie-lib/math-input';\nimport isEqual from 'lodash/isEqual';\n\nconst decimalRegex = /\\.|,/g;\n\nconst toNodeData = (data) => {\n if (!data) {\n return;\n }\n\n const { type, value } = data;\n\n if (type === 'command' || type === 'cursor') {\n return data;\n } else if (type === 'answer') {\n return { type: 'answer', ...data };\n } else if (value === 'clear') {\n return { type: 'clear' };\n } else {\n return { type: 'write', value };\n }\n};\n\nexport class EditorAndPad extends React.Component {\n static propTypes = {\n classNames: PropTypes.object,\n keypadMode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n autoFocus: PropTypes.bool,\n allowAnswerBlock: PropTypes.bool,\n showKeypad: PropTypes.bool,\n controlledKeypad: PropTypes.bool,\n controlledKeypadMode: PropTypes.bool,\n error: PropTypes.string,\n noDecimal: PropTypes.bool,\n hideInput: PropTypes.bool,\n noLatexHandling: PropTypes.bool,\n layoutForKeyPad: PropTypes.object,\n maxResponseAreas: PropTypes.number,\n additionalKeys: PropTypes.array,\n latex: PropTypes.string,\n onAnswerBlockAdd: PropTypes.func,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onChange: PropTypes.func.isRequired,\n classes: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n this.state = { equationEditor: 'item-authoring', addDisabled: false };\n }\n\n componentDidMount() {\n if (this.input && this.props.autoFocus) {\n this.input.focus();\n }\n }\n\n onClick = (data) => {\n const { noDecimal, noLatexHandling, onChange } = this.props;\n const c = toNodeData(data);\n log('mathChange: ', c);\n\n if (noLatexHandling) {\n onChange(c.value);\n return;\n }\n\n // if decimals are not allowed for this response, we discard the input\n if (noDecimal && (c.value === '.' || c.value === ',')) {\n return;\n }\n\n if (!c) {\n return;\n }\n\n if (c.type === 'clear') {\n log('call clear...');\n this.input.clear();\n } else if (c.type === 'command') {\n this.input.command(c.value);\n } else if (c.type === 'cursor') {\n this.input.keystroke(c.value);\n } else if (c.type === 'answer') {\n this.input.write('%response%');\n } else {\n this.input.write(c.value);\n }\n };\n\n updateDisable = (isEdit) => {\n const { maxResponseAreas } = this.props;\n\n if (maxResponseAreas) {\n const shouldDisable = this.checkResponseAreasNumber(maxResponseAreas, isEdit);\n\n this.setState({ addDisabled: shouldDisable });\n }\n };\n\n onAnswerBlockClick = () => {\n this.props.onAnswerBlockAdd();\n this.onClick({\n type: 'answer',\n });\n\n this.updateDisable(true);\n };\n\n onEditorChange = (latex) => {\n const { onChange, noDecimal } = this.props;\n\n updateSpans();\n\n this.updateDisable(true);\n\n // if no decimals are allowed and the last change is a decimal dot, discard the change\n if (noDecimal && (latex.indexOf('.') !== -1 || latex.indexOf(',') !== -1) && this.input) {\n this.input.clear();\n this.input.write(latex.replace(decimalRegex, ''));\n return;\n }\n\n // eslint-disable-next-line no-useless-escape\n const regexMatch = latex.match(/[0-9]\\\\ \\\\frac\\{[^\\{]*\\}\\{ \\}/);\n\n if (this.input && regexMatch && regexMatch?.length) {\n try {\n this.input.mathField.__controller.cursor.insLeftOf(this.input.mathField.__controller.cursor.parent[-1].parent);\n this.input.mathField.el().dispatchEvent(new KeyboardEvent('keydown', { keyCode: 8 }));\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e.toString());\n }\n\n return;\n }\n\n onChange(latex);\n };\n\n /** Only render if the mathquill instance's latex is different\n * or the keypad state changed from one state to the other (shown / hidden) */\n shouldComponentUpdate(nextProps, nextState) {\n const inputIsDifferent = this.input.mathField.latex() !== nextProps.latex;\n log('[shouldComponentUpdate] ', 'inputIsDifferent: ', inputIsDifferent);\n\n if (!isEqual(this.props.error, nextProps.error)) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.keypadMode !== nextProps.keypadMode) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.noDecimal !== nextProps.noDecimal) {\n return true;\n }\n\n if (!inputIsDifferent && this.state.equationEditor !== nextState.equationEditor) {\n return true;\n }\n\n if (!inputIsDifferent && this.props.controlledKeypad) {\n return this.props.showKeypad !== nextProps.showKeypad;\n }\n\n return inputIsDifferent;\n }\n\n onEditorTypeChange = (evt) => {\n this.setState({ equationEditor: evt.target.value });\n };\n\n checkResponseAreasNumber = (maxResponseAreas, isEdit) => {\n const { latex } = (this.input && this.input.props) || {};\n\n if (latex) {\n const count = (latex.match(/answerBlock/g) || []).length;\n\n return isEdit ? count === maxResponseAreas - 1 : count === maxResponseAreas;\n }\n\n return false;\n };\n\n render() {\n const {\n classNames,\n keypadMode,\n allowAnswerBlock,\n additionalKeys,\n controlledKeypad,\n controlledKeypadMode,\n showKeypad,\n noDecimal,\n hideInput,\n layoutForKeyPad,\n latex,\n onFocus,\n onBlur,\n classes,\n error,\n } = this.props;\n const shouldShowKeypad = !controlledKeypad || (controlledKeypad && showKeypad);\n const { addDisabled } = this.state;\n\n log('[render]', latex);\n\n return (\n <div className={cx(classes.mathToolbar, classNames.mathToolbar)}>\n <div className={cx(classes.inputAndTypeContainer, { [classes.hide]: hideInput })}>\n {controlledKeypadMode && (\n <InputContainer label=\"Equation Editor\" className={classes.selectContainer}>\n <Select className={classes.select} onChange={this.onEditorTypeChange} value={this.state.equationEditor}>\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n )}\n <div className={cx(classes.inputContainer, error ? classes.error : '')}>\n <mq.Input\n onFocus={() => {\n onFocus && onFocus();\n this.updateDisable(false);\n }}\n onBlur={(event) => {\n this.updateDisable(false);\n onBlur && onBlur(event);\n }}\n className={cx(classes.mathEditor, classNames.editor, !controlledKeypadMode ? classes.longMathEditor : '')}\n innerRef={(r) => (this.input = r)}\n latex={latex}\n onChange={this.onEditorChange}\n />\n </div>\n </div>\n {allowAnswerBlock && (\n <Button\n className={classes.addAnswerBlockButton}\n type=\"primary\"\n style={{ bottom: shouldShowKeypad ? '320px' : '20px' }}\n onClick={this.onAnswerBlockClick}\n disabled={addDisabled}\n >\n + Response Area\n </Button>\n )}\n <hr className={classes.hr} />\n {shouldShowKeypad && (\n <HorizontalKeypad\n className={cx(classes[keypadMode], classes.keyboard)}\n layoutForKeyPad={layoutForKeyPad}\n additionalKeys={additionalKeys}\n mode={controlledKeypadMode ? this.state.equationEditor : keypadMode}\n onClick={this.onClick}\n noDecimal={noDecimal}\n />\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n inputAndTypeContainer: {\n display: 'flex',\n alignItems: 'center',\n '& .mq-editable-field .mq-cursor': {\n top: '-4px',\n },\n '& .mq-math-mode .mq-selection, .mq-editable-field .mq-selection': {\n paddingTop: '18px',\n },\n '& .mq-math-mode .mq-overarrow': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n '& .mq-math-mode .mq-overline .mq-overline-inner': {\n paddingTop: '0.4em !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.45em',\n left: '-1px',\n },\n '&:after': {\n position: 'absolute',\n top: '0px !important',\n right: '-2px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& *': {\n fontFamily: 'MJXZERO, MJXTEX !important',\n\n '& .mq-math-mode > span > var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n },\n '& .mq-math-mode span var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n },\n '& .mq-math-mode .mq-nonSymbola': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n },\n '& .mq-math-mode > span > var.mq-operator-name': {\n fontFamily: 'MJXZERO, MJXTEX !important',\n },\n\n '& .mq-math-mode .mq-sqrt-prefix': {\n verticalAlign: 'baseline !important',\n top: '1px !important',\n left: '-0.1em !important',\n },\n\n '& .mq-math-mode .mq-overarc ': {\n paddingTop: '0.45em !important',\n },\n\n '& .mq-math-mode sup.mq-nthroot': {\n fontSize: '70% !important',\n verticalAlign: '0.5em !important',\n paddingRight: '0.15em',\n },\n\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important',\n },\n\n '& .mq-math-mode .mq-root-block': {\n paddingTop: '10px',\n },\n\n '& .mq-scaled .mq-sqrt-prefix': {\n top: '0 !important',\n },\n\n '& .mq-longdiv-inner': {\n marginTop: '-1px',\n marginLeft: '5px !important;',\n\n '& > .mq-empty': {\n padding: '0 !important',\n marginLeft: '0px !important',\n marginTop: '2px',\n },\n },\n\n '& .mq-math-mode .mq-longdiv': {\n display: 'inline-flex !important',\n },\n\n '& .mq-math-mode .mq-longdiv .mq-longdiv-inner': {\n marginLeft: '4px !important',\n paddingTop: '6px !important',\n paddingLeft: '6px !important',\n },\n\n '& .mq-math-mode .mq-supsub': {\n fontSize: '70.7% !important',\n },\n\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'top !important',\n padding: '1px 0.1em !important',\n },\n\n '& .mq-math-mode .mq-sqrt-stem': {\n borderTop: '0.07em solid',\n marginLeft: '-1.5px',\n marginTop: '-2px !important',\n paddingTop: '5px !important',\n },\n\n '& .mq-supsub ': {\n fontSize: '70.7%',\n },\n\n '& .mq-math-mode .mq-supsub.mq-sup-only': {\n verticalAlign: '-0.1em !important',\n\n '& .mq-sup': {\n marginBottom: '0px !important',\n },\n },\n\n '& .mq-math-mode .mq-denominator': {\n marginTop: '-5px !important',\n padding: '0.5em 0.1em 0.1em !important',\n },\n\n '& .mq-math-mode .mq-numerator, .mq-math-mode .mq-over': {\n padding: '0 0.1em !important',\n paddingBottom: '0 !important',\n marginBottom: '-2px',\n },\n\n '-webkit-font-smoothing': 'antialiased !important',\n },\n },\n hide: {\n display: 'none',\n },\n selectContainer: {\n flex: 'initial',\n width: '25%',\n minWidth: '100px',\n marginLeft: '15px',\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px',\n\n '& label': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n\n '& div': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n },\n mathEditor: {\n maxWidth: '400px',\n color: color.text(),\n backgroundColor: color.background(),\n padding: '2px',\n },\n longMathEditor: {\n maxWidth: '500px',\n },\n addAnswerBlockButton: {\n position: 'absolute',\n right: '12px',\n border: '1px solid lightgrey',\n },\n hr: {\n padding: 0,\n margin: 0,\n height: '1px',\n border: 'none',\n borderBottom: `solid 1px ${theme.palette.primary.main}`,\n },\n mathToolbar: {\n zIndex: 9,\n position: 'relative',\n textAlign: 'center',\n width: 'auto',\n '& > .mq-math-mode': {\n border: 'solid 1px lightgrey',\n },\n '& > .mq-focused': {\n outline: 'none',\n boxShadow: 'none',\n border: `dotted 1px ${theme.palette.primary.main}`,\n borderRadius: '0px',\n },\n '& .mq-overarrow-inner': {\n border: 'none !important',\n paddingTop: '0 !important',\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n '& .mq-longdiv-inner': {\n borderTop: '1px solid !important',\n paddingTop: '1.5px !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n top: '7.8px',\n marginTop: '0px',\n minWidth: '1.23em',\n },\n '& .mq-parallelogram': {\n lineHeight: 0.85,\n },\n },\n inputContainer: {\n minWidth: '500px',\n maxWidth: '900px',\n minHeight: '30px',\n width: '100%',\n display: 'flex',\n marginTop: theme.spacing.unit,\n marginBottom: theme.spacing.unit,\n\n '& .mq-sqrt-prefix .mq-scaled': {\n verticalAlign: 'middle !important',\n },\n },\n error: {\n border: '2px solid red',\n },\n keyboard: {\n '& *': {\n fontFamily: 'MJXZERO, MJXTEX !important',\n\n '& .mq-math-mode > span > var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n },\n '& .mq-math-mode span var': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n },\n '& .mq-math-mode .mq-nonSymbola': {\n fontFamily: 'MJXZERO, MJXTEX-I !important',\n },\n '& .mq-math-mode > span > var.mq-operator-name': {\n fontFamily: 'MJXZERO, MJXTEX !important',\n },\n\n '& .mq-math-mode .mq-sqrt-prefix': {\n top: '0 !important',\n },\n\n '& .mq-math-mode .mq-empty': {\n padding: '9px 1px !important',\n },\n\n '& .mq-longdiv-inner': {\n marginTop: '-1px',\n marginLeft: '5px !important;',\n\n '& > .mq-empty': {\n padding: '0 !important',\n marginLeft: '0px !important',\n marginTop: '2px',\n },\n },\n\n '& .mq-math-mode .mq-longdiv': {\n display: 'inline-flex !important',\n },\n\n '& .mq-math-mode .mq-supsub': {\n fontSize: '70.7% !important',\n },\n\n '& .mq-math-mode .mq-sqrt-stem': {\n marginTop: '-5px',\n paddingTop: '4px',\n },\n\n '& .mq-math-mode .mq-paren': {\n verticalAlign: 'middle !important',\n },\n\n '& .mq-math-mode .mq-overarrow .mq-overarrow-inner .mq-empty': {\n padding: '0 !important',\n },\n\n '& .mq-math-mode .mq-overline .mq-overline-inner .mq-empty ': {\n padding: '0 !important',\n },\n },\n },\n language: {\n '& *': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n },\n },\n});\n\nexport default withStyles(styles)(EditorAndPad);\n"],"mappings":"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"}
|