@pie-element/math-inline 5.6.4-next.133 → 5.6.4-next.1332
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 +288 -0
- package/configure/CHANGELOG.md +259 -0
- package/configure/lib/configure.js +39 -10
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/defaults.js +30 -2
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +117 -21
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/index.js +31 -3
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/response.js +89 -36
- package/configure/lib/response.js.map +1 -1
- package/configure/lib/utils.js +18 -1
- package/configure/lib/utils.js.map +1 -1
- package/configure/package.json +7 -8
- package/controller/CHANGELOG.md +109 -0
- package/controller/lib/defaults.js +1 -1
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +137 -131
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +2 -2
- package/docs/config-schema.json +147 -0
- package/docs/config-schema.json.md +116 -1
- package/docs/demo/generate.js +1 -1
- package/docs/pie-schema.json +108 -4
- package/docs/pie-schema.json.md +89 -4
- package/lib/index.js +7 -4
- package/lib/index.js.map +1 -1
- package/lib/main.js +203 -66
- package/lib/main.js.map +1 -1
- package/lib/print.js +133 -0
- package/lib/print.js.map +1 -0
- package/lib/simple-question-block.js +50 -38
- package/lib/simple-question-block.js.map +1 -1
- package/package.json +12 -8
package/configure/lib/index.js
CHANGED
|
@@ -27,19 +27,21 @@ var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
|
27
27
|
|
|
28
28
|
var _configure = _interopRequireDefault(require("./configure"));
|
|
29
29
|
|
|
30
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
31
|
+
|
|
30
32
|
var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
|
|
31
33
|
|
|
32
34
|
var _debug = _interopRequireDefault(require("debug"));
|
|
33
35
|
|
|
34
36
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
35
37
|
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
38
|
+
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; }
|
|
37
39
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
40
|
+
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; }
|
|
39
41
|
|
|
40
42
|
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); }; }
|
|
41
43
|
|
|
42
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
44
|
+
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; } }
|
|
43
45
|
|
|
44
46
|
var log = (0, _debug["default"])('pie-elements:math-inline:configure');
|
|
45
47
|
|
|
@@ -108,6 +110,16 @@ var MathInlineConfigure = /*#__PURE__*/function (_HTMLElement) {
|
|
|
108
110
|
value: function onDeleteImage(src, done) {
|
|
109
111
|
this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
|
|
110
112
|
}
|
|
113
|
+
}, {
|
|
114
|
+
key: "insertSound",
|
|
115
|
+
value: function insertSound(handler) {
|
|
116
|
+
this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
|
|
117
|
+
}
|
|
118
|
+
}, {
|
|
119
|
+
key: "onDeleteSound",
|
|
120
|
+
value: function onDeleteSound(src, done) {
|
|
121
|
+
this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
|
|
122
|
+
}
|
|
111
123
|
}, {
|
|
112
124
|
key: "_render",
|
|
113
125
|
value: function _render() {
|
|
@@ -120,6 +132,10 @@ var MathInlineConfigure = /*#__PURE__*/function (_HTMLElement) {
|
|
|
120
132
|
imageSupport: {
|
|
121
133
|
add: this.insertImage.bind(this),
|
|
122
134
|
"delete": this.onDeleteImage.bind(this)
|
|
135
|
+
},
|
|
136
|
+
uploadSoundSupport: {
|
|
137
|
+
add: this.insertSound.bind(this),
|
|
138
|
+
"delete": this.onDeleteSound.bind(this)
|
|
123
139
|
}
|
|
124
140
|
});
|
|
125
141
|
|
|
@@ -133,6 +149,18 @@ var MathInlineConfigure = /*#__PURE__*/function (_HTMLElement) {
|
|
|
133
149
|
exports["default"] = MathInlineConfigure;
|
|
134
150
|
(0, _defineProperty2["default"])(MathInlineConfigure, "createDefaultModel", function () {
|
|
135
151
|
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
152
|
+
|
|
153
|
+
// making sure that defaults are set
|
|
154
|
+
if (!(0, _isEmpty["default"])(model.responses)) {
|
|
155
|
+
model.responses = model.responses.map(function (correctResponse) {
|
|
156
|
+
return _objectSpread(_objectSpread({}, correctResponse), {}, {
|
|
157
|
+
validation: correctResponse.validation || _defaults["default"].model.validationDefault,
|
|
158
|
+
allowTrailingZeros: correctResponse.allowTrailingZeros || _defaults["default"].model.allowTrailingZerosDefault,
|
|
159
|
+
ignoreOrder: correctResponse.ignoreOrder || _defaults["default"].model.ignoreOrderDefault || false
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
136
164
|
return _objectSpread(_objectSpread({}, _defaults["default"].model), model);
|
|
137
165
|
});
|
|
138
166
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","MathInlineConfigure","_model","createDefaultModel","_configuration","defaults","configuration","m","_render","c","model","dispatchEvent","ModelUpdatedEvent","onModelChanged","handler","InsertImageEvent","src","done","DeleteImageEvent","el","React","createElement","Configure","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","MathInlineConfigure","_model","createDefaultModel","_configuration","defaults","configuration","m","_render","c","model","dispatchEvent","ModelUpdatedEvent","onModelChanged","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Configure","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement","responses","map","correctResponse","validation","validationDefault","allowTrailingZeros","allowTrailingZerosDefault","ignoreOrder","ignoreOrderDefault"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\n\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:math-inline:configure');\n\nexport default class MathInlineConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n\n // making sure that defaults are set\n if (!isEmpty(model.responses)) {\n model.responses = model.responses.map(correctResponse => ({\n ...correctResponse,\n validation: correctResponse.validation || defaults.model.validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || defaults.model.allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || defaults.model.ignoreOrderDefault || false\n }))\n }\n\n return { ...defaults.model, ...model }\n };\n\n constructor() {\n super();\n this._model = MathInlineConfigure.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = MathInlineConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n log('[onModelChanged]: ', this._model);\n this._render();\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n }\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this)\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this)\n }\n });\n\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
@@ -51,13 +51,19 @@ var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
|
51
51
|
|
|
52
52
|
var _styles = require("@material-ui/core/styles");
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
55
|
+
|
|
56
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
57
|
+
|
|
58
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
55
59
|
|
|
56
|
-
function
|
|
60
|
+
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; }
|
|
61
|
+
|
|
62
|
+
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; }
|
|
57
63
|
|
|
58
64
|
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); }; }
|
|
59
65
|
|
|
60
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try {
|
|
66
|
+
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; } }
|
|
61
67
|
|
|
62
68
|
// TODO once we support individual response correctness, we need to remove this constant
|
|
63
69
|
var INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;
|
|
@@ -126,6 +132,11 @@ var styles = function styles(theme) {
|
|
|
126
132
|
},
|
|
127
133
|
configLabel: {
|
|
128
134
|
marginRight: 'auto'
|
|
135
|
+
},
|
|
136
|
+
errorText: {
|
|
137
|
+
fontSize: '12px',
|
|
138
|
+
color: 'red',
|
|
139
|
+
padding: '5px 0'
|
|
129
140
|
}
|
|
130
141
|
};
|
|
131
142
|
};
|
|
@@ -166,11 +177,24 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
166
177
|
onResponseChange(newResponse, index);
|
|
167
178
|
};
|
|
168
179
|
});
|
|
180
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onLiteralOptionsChange", function (name) {
|
|
181
|
+
return function (evt) {
|
|
182
|
+
var _this$props3 = _this.props,
|
|
183
|
+
response = _this$props3.response,
|
|
184
|
+
onResponseChange = _this$props3.onResponseChange,
|
|
185
|
+
index = _this$props3.index;
|
|
186
|
+
|
|
187
|
+
var newResponse = _objectSpread({}, response);
|
|
188
|
+
|
|
189
|
+
newResponse[name] = !response[name];
|
|
190
|
+
onResponseChange(newResponse, index);
|
|
191
|
+
};
|
|
192
|
+
});
|
|
169
193
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerChange", function (answer) {
|
|
170
|
-
var _this$
|
|
171
|
-
response = _this$
|
|
172
|
-
onResponseChange = _this$
|
|
173
|
-
index = _this$
|
|
194
|
+
var _this$props4 = _this.props,
|
|
195
|
+
response = _this$props4.response,
|
|
196
|
+
onResponseChange = _this$props4.onResponseChange,
|
|
197
|
+
index = _this$props4.index;
|
|
174
198
|
|
|
175
199
|
var newResponse = _objectSpread({}, response);
|
|
176
200
|
|
|
@@ -179,10 +203,10 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
179
203
|
});
|
|
180
204
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateAnswerChange", function (alternateId) {
|
|
181
205
|
return function (answer) {
|
|
182
|
-
var _this$
|
|
183
|
-
response = _this$
|
|
184
|
-
onResponseChange = _this$
|
|
185
|
-
index = _this$
|
|
206
|
+
var _this$props5 = _this.props,
|
|
207
|
+
response = _this$props5.response,
|
|
208
|
+
onResponseChange = _this$props5.onResponseChange,
|
|
209
|
+
index = _this$props5.index;
|
|
186
210
|
|
|
187
211
|
var newResponse = _objectSpread({}, response);
|
|
188
212
|
|
|
@@ -191,10 +215,10 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
191
215
|
};
|
|
192
216
|
});
|
|
193
217
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAddAlternate", function () {
|
|
194
|
-
var _this$
|
|
195
|
-
response = _this$
|
|
196
|
-
onResponseChange = _this$
|
|
197
|
-
index = _this$
|
|
218
|
+
var _this$props6 = _this.props,
|
|
219
|
+
response = _this$props6.response,
|
|
220
|
+
onResponseChange = _this$props6.onResponseChange,
|
|
221
|
+
index = _this$props6.index;
|
|
198
222
|
var alternateIdCounter = _this.state.alternateIdCounter;
|
|
199
223
|
|
|
200
224
|
var newResponse = _objectSpread({}, response);
|
|
@@ -212,10 +236,10 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
212
236
|
});
|
|
213
237
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRemoveAlternate", function (alternateId) {
|
|
214
238
|
return function () {
|
|
215
|
-
var _this$
|
|
216
|
-
response = _this$
|
|
217
|
-
onResponseChange = _this$
|
|
218
|
-
index = _this$
|
|
239
|
+
var _this$props7 = _this.props,
|
|
240
|
+
response = _this$props7.response,
|
|
241
|
+
onResponseChange = _this$props7.onResponseChange,
|
|
242
|
+
index = _this$props7.index;
|
|
219
243
|
|
|
220
244
|
var newResponse = _objectSpread({}, response);
|
|
221
245
|
|
|
@@ -295,16 +319,21 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
295
319
|
value: function render() {
|
|
296
320
|
var _this2 = this;
|
|
297
321
|
|
|
298
|
-
var _this$
|
|
299
|
-
classes = _this$
|
|
300
|
-
mode = _this$
|
|
301
|
-
defaultResponse = _this$
|
|
302
|
-
index = _this$
|
|
303
|
-
response = _this$
|
|
322
|
+
var _this$props8 = this.props,
|
|
323
|
+
classes = _this$props8.classes,
|
|
324
|
+
mode = _this$props8.mode,
|
|
325
|
+
defaultResponse = _this$props8.defaultResponse,
|
|
326
|
+
index = _this$props8.index,
|
|
327
|
+
response = _this$props8.response,
|
|
328
|
+
cAllowTrailingZeros = _this$props8.cAllowTrailingZeros,
|
|
329
|
+
cIgnoreOrder = _this$props8.cIgnoreOrder,
|
|
330
|
+
error = _this$props8.error;
|
|
304
331
|
var showKeypad = this.state.showKeypad;
|
|
305
332
|
var validation = response.validation,
|
|
306
333
|
answer = response.answer,
|
|
307
|
-
alternates = response.alternates
|
|
334
|
+
alternates = response.alternates,
|
|
335
|
+
ignoreOrder = response.ignoreOrder,
|
|
336
|
+
allowTrailingZeros = response.allowTrailingZeros;
|
|
308
337
|
var hasAlternates = Object.keys(alternates || {}).length > 0;
|
|
309
338
|
var classNames = {
|
|
310
339
|
editor: classes.responseEditor,
|
|
@@ -329,10 +358,26 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
329
358
|
}, /*#__PURE__*/React.createElement(_Select["default"], {
|
|
330
359
|
className: classes.select,
|
|
331
360
|
onChange: this.onChange('validation'),
|
|
332
|
-
value: validation
|
|
361
|
+
value: validation || 'literal'
|
|
333
362
|
}, /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
334
363
|
value: "literal"
|
|
335
|
-
}, "Literal Validation")
|
|
364
|
+
}, "Literal Validation"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
|
|
365
|
+
value: "symbolic"
|
|
366
|
+
}, "Symbolic Validation")))), validation === 'literal' && /*#__PURE__*/React.createElement("div", {
|
|
367
|
+
className: classes.flexContainer
|
|
368
|
+
}, cAllowTrailingZeros.enabled && /*#__PURE__*/React.createElement(_FormControlLabel["default"], {
|
|
369
|
+
label: cAllowTrailingZeros.label,
|
|
370
|
+
control: /*#__PURE__*/React.createElement(_Checkbox["default"], {
|
|
371
|
+
checked: allowTrailingZeros,
|
|
372
|
+
onChange: this.onLiteralOptionsChange('allowTrailingZeros')
|
|
373
|
+
})
|
|
374
|
+
}), cIgnoreOrder.enabled && /*#__PURE__*/React.createElement(_FormControlLabel["default"], {
|
|
375
|
+
label: cIgnoreOrder.label,
|
|
376
|
+
control: /*#__PURE__*/React.createElement(_Checkbox["default"], {
|
|
377
|
+
checked: ignoreOrder,
|
|
378
|
+
onChange: this.onLiteralOptionsChange('ignoreOrder')
|
|
379
|
+
})
|
|
380
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
336
381
|
className: classes.inputContainer
|
|
337
382
|
}, /*#__PURE__*/React.createElement(_InputLabel["default"], null, "Correct Answer"), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
|
|
338
383
|
keypadMode: mode,
|
|
@@ -342,8 +387,11 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
342
387
|
latex: answer || '',
|
|
343
388
|
onChange: this.onAnswerChange,
|
|
344
389
|
onFocus: this.onFocus,
|
|
345
|
-
onDone: this.onDone
|
|
346
|
-
|
|
390
|
+
onDone: this.onDone,
|
|
391
|
+
error: error && error.answer
|
|
392
|
+
}), error && error.answer ? /*#__PURE__*/React.createElement("div", {
|
|
393
|
+
className: classes.errorText
|
|
394
|
+
}, error.answer) : null), hasAlternates && Object.keys(alternates).map(function (alternateId, altIdx) {
|
|
347
395
|
return /*#__PURE__*/React.createElement("div", {
|
|
348
396
|
className: classes.inputContainer,
|
|
349
397
|
key: alternateId
|
|
@@ -361,9 +409,12 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
361
409
|
latex: alternates[alternateId] || '',
|
|
362
410
|
onChange: _this2.onAlternateAnswerChange(alternateId),
|
|
363
411
|
onFocus: _this2.onAlternateFocus(alternateId),
|
|
364
|
-
onDone: _this2.onAlternateDone(alternateId)
|
|
365
|
-
|
|
366
|
-
|
|
412
|
+
onDone: _this2.onAlternateDone(alternateId),
|
|
413
|
+
error: error && error[altIdx + 1]
|
|
414
|
+
}), error && error[altIdx + 1] ? /*#__PURE__*/React.createElement("div", {
|
|
415
|
+
className: classes.errorText
|
|
416
|
+
}, error[altIdx + 1]) : null);
|
|
417
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
367
418
|
className: classes.configPanel
|
|
368
419
|
}, /*#__PURE__*/React.createElement(_Button["default"], {
|
|
369
420
|
className: classes.alternateButton,
|
|
@@ -383,7 +434,9 @@ var Response = /*#__PURE__*/function (_React$Component) {
|
|
|
383
434
|
mode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
384
435
|
index: _propTypes["default"].number,
|
|
385
436
|
onResponseChange: _propTypes["default"].func.isRequired,
|
|
386
|
-
response: _propTypes["default"].object.isRequired
|
|
437
|
+
response: _propTypes["default"].object.isRequired,
|
|
438
|
+
cIgnoreOrder: _propTypes["default"].object.isRequired,
|
|
439
|
+
cAllowTrailingZeros: _propTypes["default"].object.isRequired
|
|
387
440
|
});
|
|
388
441
|
(0, _defineProperty2["default"])(Response, "defaultProps", {
|
|
389
442
|
defaultResponse: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/response.jsx"],"names":["INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED","styles","theme","responseContainer","marginTop","spacing","unit","width","border","display","flexDirection","justifyContent","cardContent","paddingBottom","title","fontWeight","fontSize","flex","selectContainer","inputContainer","titleBar","alignItems","responseEditor","minWidth","maxWidth","height","minHeight","mathToolbar","configPanel","alternateButton","removeAlternateButton","marginLeft","color","checkboxContainer","configLabel","marginRight","Response","props","name","evt","response","onResponseChange","index","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","defaultResponse","validation","hasAlternates","classNames","editor","select","onChange","onAnswerChange","onFocus","onDone","map","altIdx","alternateBar","onRemoveAlternate","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","onAddAlternate","React","Component","PropTypes","object","isRequired","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\n\n// TODO once we support individual response correctness, we need to remove this constant\nconst INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;\n\nconst styles = theme => ({\n responseContainer: {\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n border: '1px solid darkgray',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between'\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit}px !important`\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3\n },\n selectContainer: {\n flex: 2\n },\n inputContainer: {\n marginTop: theme.spacing.unit\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px'\n },\n mathToolbar: {\n width: '100%'\n },\n configPanel: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n alternateButton: {\n border: '1px solid lightgrey'\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit * 2,\n border: '1px solid lightgrey',\n color: 'gray',\n fontSize: '0.8rem'\n },\n checkboxContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n configLabel: {\n marginRight: 'auto'\n }\n});\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n index: PropTypes.number,\n onResponseChange: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: 'miscellaneous'\n };\n\n constructor(props) {\n super(props);\n\n const { response: { alternates } = {} } = props || {};\n const alternatesLength = Object.keys(alternates || {}).length;\n\n this.state = {\n alternateIdCounter: alternatesLength + 1,\n showKeypad: {\n openCount: 0,\n main: false\n }\n };\n }\n\n onChange = name => evt => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, index);\n };\n\n onConfigChanged = name => evt => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, index);\n };\n\n onAnswerChange = answer => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAlternateAnswerChange = alternateId => answer => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, index } = this.props;\n const { alternateIdCounter } = this.state;\n const newResponse = { ...response };\n\n if (!newResponse.alternates) {\n newResponse.alternates = {};\n }\n\n newResponse.alternates[alternateIdCounter] = '';\n\n onResponseChange(newResponse, index);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1\n });\n };\n\n onRemoveAlternate = alternateId => () => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, index);\n\n this.setState(state => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount\n : state.showKeypad.openCount - 1\n }\n }));\n };\n\n onDone = () => {\n this.setState(state => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false\n }\n }));\n };\n\n onFocus = () => {\n this.setState(state => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n main: true\n }\n }));\n };\n\n onAlternateFocus = alternateId => () => {\n this.setState(state => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n [alternateId]: true\n }\n }));\n };\n\n onAlternateDone = alternateId => () => {\n this.setState(state => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false\n }\n }));\n };\n\n render() {\n const { classes, mode, defaultResponse, index, response } = this.props;\n const { showKeypad } = this.state;\n const {\n validation,\n answer,\n alternates,\n } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`\n };\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"h2\">\n Response{' '}\n {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED\n ? defaultResponse\n ? ''\n : index + 1\n : ''}\n </Typography>\n <InputContainer\n label=\"Validation\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('validation')}\n value={validation}\n >\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n {/* Remove symbolic validation PD-690 <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>*/}\n </Select>\n </InputContainer>\n </div>\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n />\n </div>\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <div className={classes.alternateBar}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <Button\n className={classes.removeAlternateButton}\n type=\"secondary\"\n onClick={this.onRemoveAlternate(alternateId)}\n >\n Remove\n </Button>\n </div>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n />\n </div>\n ))}\n {validation === 'literal' && (\n <div className={classes.configPanel}>\n <Button\n className={classes.alternateButton}\n type=\"primary\"\n onClick={this.onAddAlternate}\n >\n ADD ALTERNATE\n </Button>\n <div className={classes.checkboxContainer}>\n </div>\n </div>\n )}\n </CardContent>\n </Card>\n );\n }\n}\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
|
|
1
|
+
{"version":3,"sources":["../src/response.jsx"],"names":["INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED","styles","theme","responseContainer","marginTop","spacing","unit","width","border","display","flexDirection","justifyContent","cardContent","paddingBottom","title","fontWeight","fontSize","flex","selectContainer","inputContainer","titleBar","alignItems","responseEditor","minWidth","maxWidth","height","minHeight","mathToolbar","configPanel","alternateButton","removeAlternateButton","marginLeft","color","checkboxContainer","configLabel","marginRight","errorText","padding","Response","props","name","evt","response","onResponseChange","index","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","defaultResponse","cAllowTrailingZeros","cIgnoreOrder","error","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","onAnswerChange","onFocus","onDone","map","altIdx","alternateBar","onRemoveAlternate","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","onAddAlternate","React","Component","PropTypes","object","isRequired","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\nimport cx from 'classnames';\n\n// TODO once we support individual response correctness, we need to remove this constant\nconst INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;\n\nconst styles = (theme) => ({\n responseContainer: {\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n border: '1px solid darkgray',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit}px !important`,\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3,\n },\n selectContainer: {\n flex: 2,\n },\n inputContainer: {\n marginTop: theme.spacing.unit,\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px',\n },\n mathToolbar: {\n width: '100%',\n },\n configPanel: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n alternateButton: {\n border: '1px solid lightgrey',\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit * 2,\n border: '1px solid lightgrey',\n color: 'gray',\n fontSize: '0.8rem',\n },\n checkboxContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n configLabel: {\n marginRight: 'auto',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0'\n }\n});\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n index: PropTypes.number,\n onResponseChange: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: 'miscellaneous',\n };\n\n constructor(props) {\n super(props);\n\n const { response: { alternates } = {} } = props || {};\n const alternatesLength = Object.keys(alternates || {}).length;\n\n this.state = {\n alternateIdCounter: alternatesLength + 1,\n showKeypad: {\n openCount: 0,\n main: false,\n },\n };\n }\n\n onChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, index);\n };\n\n onConfigChanged = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, index);\n };\n\n onLiteralOptionsChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = !response[name];\n\n onResponseChange(newResponse, index);\n };\n\n onAnswerChange = (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAlternateAnswerChange = (alternateId) => (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, index } = this.props;\n const { alternateIdCounter } = this.state;\n const newResponse = { ...response };\n\n if (!newResponse.alternates) {\n newResponse.alternates = {};\n }\n\n newResponse.alternates[alternateIdCounter] = '';\n\n onResponseChange(newResponse, index);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1,\n });\n };\n\n onRemoveAlternate = (alternateId) => () => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, index);\n\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount\n : state.showKeypad.openCount - 1,\n },\n }));\n };\n\n onDone = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\n };\n\n onFocus = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n main: true,\n },\n }));\n };\n\n onAlternateFocus = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId]\n ? state.showKeypad.openCount + 1\n : state.showKeypad.openCount,\n [alternateId]: true,\n },\n }));\n };\n\n onAlternateDone = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false,\n },\n }));\n };\n\n render() {\n const {\n classes,\n mode,\n defaultResponse,\n index,\n response,\n cAllowTrailingZeros,\n cIgnoreOrder,\n error\n } = this.props;\n\n const { showKeypad } = this.state;\n const {\n validation,\n answer,\n alternates,\n ignoreOrder,\n allowTrailingZeros,\n } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`,\n };\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"h2\">\n Response{' '}\n {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED\n ? defaultResponse\n ? ''\n : index + 1\n : ''}\n </Typography>\n <InputContainer\n label=\"Validation\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('validation')}\n value={validation || 'literal'}\n >\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {validation === 'literal' && (\n <div className={classes.flexContainer}>\n {cAllowTrailingZeros.enabled && (\n <FormControlLabel\n label={cAllowTrailingZeros.label}\n control={\n <Checkbox\n checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange(\n 'allowTrailingZeros'\n )}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={\n <Checkbox\n checked={ignoreOrder}\n onChange={this.onLiteralOptionsChange('ignoreOrder')}\n />\n }\n />\n )}\n </div>\n )}\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n error={error && error.answer}\n />\n {error && error.answer ? <div className={classes.errorText}>{error.answer}</div> : null}\n </div>\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <div className={classes.alternateBar}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <Button\n className={classes.removeAlternateButton}\n type=\"secondary\"\n onClick={this.onRemoveAlternate(alternateId)}\n >\n Remove\n </Button>\n </div>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n error={error && error[altIdx + 1]}\n />\n {error && error[altIdx + 1] ? <div className={classes.errorText}>{error[altIdx + 1]}</div> : null}\n </div>\n ))}\n <div className={classes.configPanel}>\n <Button\n className={classes.alternateButton}\n type=\"primary\"\n onClick={this.onAddAlternate}\n >\n ADD ALTERNATE\n </Button>\n <div className={classes.checkboxContainer}></div>\n </div>\n </CardContent>\n </Card>\n );\n }\n}\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
|
package/configure/lib/utils.js
CHANGED
|
@@ -3,10 +3,27 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ResponseTypes = void 0;
|
|
6
|
+
exports.generateValidationMessage = exports.ResponseTypes = void 0;
|
|
7
7
|
var ResponseTypes = {
|
|
8
8
|
advanced: 'Advanced Multi',
|
|
9
9
|
simple: 'Simple'
|
|
10
10
|
};
|
|
11
11
|
exports.ResponseTypes = ResponseTypes;
|
|
12
|
+
|
|
13
|
+
var generateValidationMessage = function generateValidationMessage() {
|
|
14
|
+
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
15
|
+
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
16
|
+
var maxResponseAreas = config.maxResponseAreas;
|
|
17
|
+
var responseType = model.responseType;
|
|
18
|
+
var responseAreasMessage = '';
|
|
19
|
+
var answersMessage = '\nAll correct answers (the primary and any alternates) should not be empty and should be unique.';
|
|
20
|
+
|
|
21
|
+
if (responseType === 'Advanced Multi') {
|
|
22
|
+
responseAreasMessage = '\nThere should be at least 1 ' + (maxResponseAreas ? "and at most ".concat(maxResponseAreas, " ") : '') + 'response area' + (maxResponseAreas ? 's' : '') + ' defined.';
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return 'Validation requirements:' + answersMessage + responseAreasMessage;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.generateValidationMessage = generateValidationMessage;
|
|
12
29
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["ResponseTypes","advanced","simple"],"mappings":";;;;;;AAAO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,QAAQ,EAAE,gBADiB;AAE3BC,EAAAA,MAAM,EAAE;AAFmB,CAAtB","sourcesContent":["export const ResponseTypes = {\n advanced: 'Advanced Multi',\n simple: 'Simple'\n}
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["ResponseTypes","advanced","simple","generateValidationMessage","model","config","maxResponseAreas","responseType","responseAreasMessage","answersMessage"],"mappings":";;;;;;AAAO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,QAAQ,EAAE,gBADiB;AAE3BC,EAAAA,MAAM,EAAE;AAFmB,CAAtB;;;AAKA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,GAA6B;AAAA,MAA5BC,KAA4B,uEAApB,EAAoB;AAAA,MAAhBC,MAAgB,uEAAP,EAAO;AACpE,MAAQC,gBAAR,GAA6BD,MAA7B,CAAQC,gBAAR;AACA,MAAQC,YAAR,GAAyBH,KAAzB,CAAQG,YAAR;AACA,MAAIC,oBAAoB,GAAG,EAA3B;AAEA,MAAMC,cAAc,GAAG,kGAAvB;;AAEA,MAAIF,YAAY,KAAK,gBAArB,EAAuC;AACrCC,IAAAA,oBAAoB,GAAG,mCACpBF,gBAAgB,yBAAkBA,gBAAlB,SAAwC,EADpC,IAErB,eAFqB,IAEFA,gBAAgB,GAAG,GAAH,GAAS,EAFvB,IAE6B,WAFpD;AAGD;;AAED,SAAO,6BAA6BG,cAA7B,GAA8CD,oBAArD;AACD,CAdM","sourcesContent":["export const ResponseTypes = {\n advanced: 'Advanced Multi',\n simple: 'Simple'\n};\n\nexport const generateValidationMessage = (model = {}, config = {}) => {\n const { maxResponseAreas } = config;\n const { responseType } = model;\n let responseAreasMessage = '';\n\n const answersMessage = '\\nAll correct answers (the primary and any alternates) should not be empty and should be unique.';\n\n if (responseType === 'Advanced Multi') {\n responseAreasMessage = '\\nThere should be at least 1 ' +\n (maxResponseAreas ? `and at most ${maxResponseAreas} ` : '') +\n 'response area' + (maxResponseAreas ? 's' : '') + ' defined.';\n }\n\n return 'Validation requirements:' + answersMessage + responseAreasMessage;\n};\n"],"file":"utils.js"}
|
package/configure/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/math-inline-configure",
|
|
3
3
|
"private": true,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "6.1.0",
|
|
5
5
|
"description": "",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"module": "src/index.js",
|
|
@@ -9,13 +9,12 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@material-ui/core": "^3.9.2",
|
|
11
11
|
"@material-ui/icons": "^3.0.1",
|
|
12
|
-
"@pie-framework/mathquill": "^1.1.
|
|
13
|
-
"@pie-framework/pie-configure-events": "^1.
|
|
14
|
-
"@pie-lib/config-ui": "^
|
|
15
|
-
"@pie-lib/editable-html": "^
|
|
16
|
-
"@pie-lib/math-
|
|
17
|
-
"@pie-lib/math-
|
|
18
|
-
"@pie-lib/math-toolbar": "^1.7.14",
|
|
12
|
+
"@pie-framework/mathquill": "^1.1.3",
|
|
13
|
+
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
14
|
+
"@pie-lib/config-ui": "^11.0.19",
|
|
15
|
+
"@pie-lib/editable-html": "^9.2.2",
|
|
16
|
+
"@pie-lib/math-input": "^6.8.1",
|
|
17
|
+
"@pie-lib/math-toolbar": "^1.11.1",
|
|
19
18
|
"classnames": "^2.2.5",
|
|
20
19
|
"debug": "^3.1.0",
|
|
21
20
|
"prop-types": "^15.6.2",
|
package/controller/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,115 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.6.9](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.8...@pie-element/math-inline-controller@5.6.9) (2022-05-16)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [5.6.8](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.7...@pie-element/math-inline-controller@5.6.8) (2022-03-28)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## [5.6.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.6...@pie-element/math-inline-controller@5.6.7) (2022-03-22)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## [5.6.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.5...@pie-element/math-inline-controller@5.6.6) (2022-03-08)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
## [5.6.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.6.1...@pie-element/math-inline-controller@5.6.2) (2021-11-29)
|
|
39
|
+
|
|
40
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
## [5.6.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.4...@pie-element/math-inline-controller@5.6.1) (2021-11-11)
|
|
47
|
+
|
|
48
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
# [5.6.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.4.3...@pie-element/math-inline-controller@5.6.0) (2021-11-11)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### Bug Fixes
|
|
58
|
+
|
|
59
|
+
* **math-inline:** Evaluate should not highlight answers when no correct response is defined + refactoring PD-994 ([58bfe7c](https://github.com/pie-framework/pie-elements/commit/58bfe7c209da39a31b20d2d905d14b5697aa5375))
|
|
60
|
+
* **math-inline:** Initialized correctResponse in evaluate mode ([27161c1](https://github.com/pie-framework/pie-elements/commit/27161c154c2dcc7bfd2a3cb3d7f8ec158f23beb8))
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
### Features
|
|
64
|
+
|
|
65
|
+
* **math-inline:** Displayed a message when the item has additional correct responses PD-198 - BREAKING CHANGE: Added note property to the model ([7fce264](https://github.com/pie-framework/pie-elements/commit/7fce2649a9c8ddae2eb6643e5d5e9d307233a23b))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
## [5.5.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.3...@pie-element/math-inline-controller@5.5.4) (2021-11-01)
|
|
73
|
+
|
|
74
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
## [5.5.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.2...@pie-element/math-inline-controller@5.5.3) (2021-10-18)
|
|
81
|
+
|
|
82
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
## [5.5.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.1...@pie-element/math-inline-controller@5.5.2) (2021-10-04)
|
|
89
|
+
|
|
90
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## [5.5.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.5.0...@pie-element/math-inline-controller@5.5.1) (2021-09-01)
|
|
97
|
+
|
|
98
|
+
**Note:** Version bump only for package @pie-element/math-inline-controller
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
# [5.5.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.4.3...@pie-element/math-inline-controller@5.5.0) (2021-08-05)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
### Features
|
|
108
|
+
|
|
109
|
+
* **math-inline:** Displayed a message when the item has additional correct responses PD-198 - BREAKING CHANGE: Added note property to the model ([7fce264](https://github.com/pie-framework/pie-elements/commit/7fce2649a9c8ddae2eb6643e5d5e9d307233a23b))
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
|
|
6
115
|
## [5.4.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/math-inline-controller@5.4.1...@pie-element/math-inline-controller@5.4.3) (2021-08-05)
|
|
7
116
|
|
|
8
117
|
|
|
@@ -25,7 +25,7 @@ var _default = {
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',
|
|
28
|
-
equationEditor: '
|
|
28
|
+
equationEditor: '8',
|
|
29
29
|
expression: '',
|
|
30
30
|
question: '',
|
|
31
31
|
responses: [],
|