@pie-element/match 4.10.0 → 4.10.1-beta.1443
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 +342 -0
- package/configure/CHANGELOG.md +321 -0
- package/configure/lib/add-row.js.map +1 -1
- package/configure/lib/answer-config-block.js +76 -65
- package/configure/lib/answer-config-block.js.map +1 -1
- package/configure/lib/configure.js +88 -45
- package/configure/lib/configure.js.map +1 -1
- package/configure/lib/defaults.js +29 -1
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/general-config-block.js +51 -7
- package/configure/lib/general-config-block.js.map +1 -1
- package/configure/lib/index.js +16 -2
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/row.js +69 -60
- package/configure/lib/row.js.map +1 -1
- package/configure/package.json +7 -7
- package/configure/utils.js +12 -0
- package/controller/CHANGELOG.md +60 -0
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +112 -5
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +3 -3
- package/docs/config-schema.json +153 -0
- package/docs/config-schema.json.md +117 -1
- package/docs/demo/config.js +2 -2
- package/docs/demo/generate.js +11 -10
- package/docs/pie-schema.json +38 -0
- package/docs/pie-schema.json.md +28 -0
- package/lib/answer-grid.js +2 -2
- package/lib/answer-grid.js.map +1 -1
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/main.js +2 -2
- package/lib/main.js.map +1 -1
- package/package.json +5 -5
|
@@ -31,8 +31,6 @@ var _classnames = _interopRequireDefault(require("classnames"));
|
|
|
31
31
|
|
|
32
32
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
33
|
|
|
34
|
-
var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
|
|
35
|
-
|
|
36
34
|
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
37
35
|
|
|
38
36
|
var _styles = require("@material-ui/core/styles");
|
|
@@ -47,15 +45,13 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
47
45
|
|
|
48
46
|
var _editableHtml = _interopRequireWildcard(require("@pie-lib/editable-html"));
|
|
49
47
|
|
|
50
|
-
var _common = require("./common");
|
|
51
|
-
|
|
52
48
|
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); }
|
|
53
49
|
|
|
54
50
|
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
51
|
|
|
56
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
52
|
+
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; }
|
|
57
53
|
|
|
58
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
54
|
+
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; }
|
|
59
55
|
|
|
60
56
|
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); }; }
|
|
61
57
|
|
|
@@ -71,29 +67,36 @@ var styles = function styles(theme) {
|
|
|
71
67
|
flexDirection: 'column'
|
|
72
68
|
},
|
|
73
69
|
rowContainer: {
|
|
74
|
-
marginTop: theme.spacing.unit * 2,
|
|
75
70
|
display: 'flex',
|
|
76
71
|
alignItems: 'center',
|
|
77
|
-
flex: 1
|
|
72
|
+
flex: 1,
|
|
73
|
+
width: 'fit-content',
|
|
74
|
+
borderBottom: '2px solid lightgray',
|
|
75
|
+
paddingBottom: theme.spacing.unit * 2,
|
|
76
|
+
marginTop: theme.spacing.unit * 2,
|
|
77
|
+
marginBottom: theme.spacing.unit
|
|
78
78
|
},
|
|
79
79
|
rowItem: {
|
|
80
80
|
flex: 1,
|
|
81
81
|
display: 'flex',
|
|
82
82
|
justifyContent: 'center',
|
|
83
|
+
flexDirection: 'column',
|
|
83
84
|
'&> div': {
|
|
84
85
|
width: '150px',
|
|
85
|
-
padding:
|
|
86
|
+
padding: "0 ".concat(theme.spacing.unit, "px"),
|
|
86
87
|
textAlign: 'center'
|
|
87
88
|
}
|
|
88
89
|
},
|
|
89
90
|
deleteIcon: {
|
|
90
91
|
flex: 0.5,
|
|
91
|
-
minWidth: '
|
|
92
|
+
minWidth: '48px',
|
|
93
|
+
padding: "0 ".concat(theme.spacing.unit, "px")
|
|
92
94
|
},
|
|
93
95
|
questionText: {
|
|
94
96
|
flex: 2,
|
|
95
97
|
display: 'flex',
|
|
96
98
|
justifyContent: 'flex-start',
|
|
99
|
+
marginRight: theme.spacing.unit,
|
|
97
100
|
'&> div': {
|
|
98
101
|
width: '100%',
|
|
99
102
|
padding: 0,
|
|
@@ -106,16 +109,16 @@ var styles = function styles(theme) {
|
|
|
106
109
|
display: 'flex',
|
|
107
110
|
flexDirection: 'column'
|
|
108
111
|
},
|
|
109
|
-
separator: {
|
|
110
|
-
marginTop: theme.spacing.unit * 2,
|
|
111
|
-
border: 0,
|
|
112
|
-
borderTop: '2px solid lightgray',
|
|
113
|
-
width: '100%'
|
|
114
|
-
},
|
|
115
112
|
headerInput: {
|
|
116
113
|
'&> div': {
|
|
117
114
|
fontWeight: 'bold'
|
|
118
115
|
}
|
|
116
|
+
},
|
|
117
|
+
errorText: {
|
|
118
|
+
fontSize: theme.typography.fontSize - 2,
|
|
119
|
+
color: 'red',
|
|
120
|
+
paddingTop: "".concat(theme.spacing.unit, "px !important"),
|
|
121
|
+
width: 'fit-content !important'
|
|
119
122
|
}
|
|
120
123
|
};
|
|
121
124
|
};
|
|
@@ -135,11 +138,6 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
135
138
|
}
|
|
136
139
|
|
|
137
140
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
138
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
|
|
139
|
-
dialog: {
|
|
140
|
-
open: false
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
141
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "moveRow", function (from, to) {
|
|
144
142
|
var _this$props = _this.props,
|
|
145
143
|
model = _this$props.model,
|
|
@@ -203,32 +201,8 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
203
201
|
return;
|
|
204
202
|
}
|
|
205
203
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
var sameValue = headers.filter(function (header) {
|
|
209
|
-
var wasChanged = currentHeader !== value && "<div>".concat(currentHeader, "</div>") !== value;
|
|
210
|
-
var sameValueEntered = header === value || "<div>".concat(header, "</div>") === value;
|
|
211
|
-
return wasChanged && sameValueEntered;
|
|
212
|
-
});
|
|
213
|
-
var empty = value === '<div></div>';
|
|
214
|
-
|
|
215
|
-
if (sameValue.length || empty) {
|
|
216
|
-
_this.setState({
|
|
217
|
-
dialog: {
|
|
218
|
-
open: true,
|
|
219
|
-
onOk: function onOk() {
|
|
220
|
-
_this.setState({
|
|
221
|
-
dialog: {
|
|
222
|
-
open: false
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
} else {
|
|
229
|
-
newModel.headers[headerIndex] = value;
|
|
230
|
-
onChange(newModel);
|
|
231
|
-
}
|
|
204
|
+
newModel.headers[headerIndex] = value;
|
|
205
|
+
onChange(newModel);
|
|
232
206
|
};
|
|
233
207
|
});
|
|
234
208
|
return _this;
|
|
@@ -245,13 +219,28 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
245
219
|
onAddRow = _this$props4.onAddRow,
|
|
246
220
|
imageSupport = _this$props4.imageSupport,
|
|
247
221
|
configuration = _this$props4.configuration,
|
|
248
|
-
toolbarOpts = _this$props4.toolbarOpts
|
|
222
|
+
toolbarOpts = _this$props4.toolbarOpts,
|
|
223
|
+
spellCheck = _this$props4.spellCheck,
|
|
224
|
+
uploadSoundSupport = _this$props4.uploadSoundSupport;
|
|
249
225
|
|
|
250
226
|
var _ref2 = configuration || {},
|
|
251
227
|
_ref2$headers = _ref2.headers,
|
|
252
|
-
headers = _ref2$headers === void 0 ? {} : _ref2$headers
|
|
228
|
+
headers = _ref2$headers === void 0 ? {} : _ref2$headers,
|
|
229
|
+
_ref2$maxImageWidth = _ref2.maxImageWidth,
|
|
230
|
+
maxImageWidth = _ref2$maxImageWidth === void 0 ? {} : _ref2$maxImageWidth,
|
|
231
|
+
_ref2$maxImageHeight = _ref2.maxImageHeight,
|
|
232
|
+
maxImageHeight = _ref2$maxImageHeight === void 0 ? {} : _ref2$maxImageHeight;
|
|
233
|
+
|
|
234
|
+
var _ref3 = model || {},
|
|
235
|
+
errors = _ref3.errors;
|
|
236
|
+
|
|
237
|
+
var _ref4 = errors || {},
|
|
238
|
+
correctResponseError = _ref4.correctResponseError,
|
|
239
|
+
rowsErrors = _ref4.rowsErrors,
|
|
240
|
+
columnsErrors = _ref4.columnsErrors,
|
|
241
|
+
noOfRowsError = _ref4.noOfRowsError,
|
|
242
|
+
columnsLengthError = _ref4.columnsLengthError;
|
|
253
243
|
|
|
254
|
-
var dialog = this.state.dialog;
|
|
255
244
|
var filteredDefaultPlugins = (_editableHtml.DEFAULT_PLUGINS || []).filter(function (p) {
|
|
256
245
|
return p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list';
|
|
257
246
|
});
|
|
@@ -263,13 +252,25 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
263
252
|
disabled: true
|
|
264
253
|
}
|
|
265
254
|
};
|
|
255
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
256
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
266
257
|
return /*#__PURE__*/React.createElement("div", {
|
|
267
258
|
className: classes.container
|
|
268
259
|
}, /*#__PURE__*/React.createElement(_Typography["default"], {
|
|
269
260
|
type: "body1",
|
|
270
261
|
component: "div"
|
|
271
|
-
}, "Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row."), /*#__PURE__*/React.createElement("div", {
|
|
272
|
-
className: classes.
|
|
262
|
+
}, "Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row."), correctResponseError && /*#__PURE__*/React.createElement("div", {
|
|
263
|
+
className: classes.errorText
|
|
264
|
+
}, correctResponseError), noOfRowsError && /*#__PURE__*/React.createElement("div", {
|
|
265
|
+
className: classes.errorText
|
|
266
|
+
}, noOfRowsError), columnsLengthError && /*#__PURE__*/React.createElement("div", {
|
|
267
|
+
className: classes.errorText
|
|
268
|
+
}, columnsLengthError), /*#__PURE__*/React.createElement("div", {
|
|
269
|
+
className: classes.rowTable,
|
|
270
|
+
style: configuration.width ? {
|
|
271
|
+
width: configuration.width,
|
|
272
|
+
overflow: 'scroll'
|
|
273
|
+
} : {}
|
|
273
274
|
}, /*#__PURE__*/React.createElement("div", {
|
|
274
275
|
className: classes.rowContainer
|
|
275
276
|
}, headers.settings && (model.headers || []).map(function (header, idx) {
|
|
@@ -284,15 +285,20 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
284
285
|
activePlugins: filteredDefaultPlugins,
|
|
285
286
|
pluginProps: labelPlugins,
|
|
286
287
|
autoWidthToolbar: true,
|
|
287
|
-
|
|
288
|
-
|
|
288
|
+
spellCheck: spellCheck,
|
|
289
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
290
|
+
languageCharactersProps: [{
|
|
291
|
+
language: 'spanish'
|
|
292
|
+
}, {
|
|
293
|
+
language: 'special'
|
|
294
|
+
}],
|
|
295
|
+
error: columnsErrors && columnsErrors[idx]
|
|
296
|
+
}), columnsErrors && columnsErrors[idx] && /*#__PURE__*/React.createElement("div", {
|
|
297
|
+
className: classes.errorText
|
|
298
|
+
}, columnsErrors[idx]));
|
|
289
299
|
}), /*#__PURE__*/React.createElement("div", {
|
|
290
300
|
className: classes.deleteIcon
|
|
291
|
-
},
|
|
292
|
-
disabled: true
|
|
293
|
-
}, /*#__PURE__*/React.createElement("div", null)))), /*#__PURE__*/React.createElement("hr", {
|
|
294
|
-
className: classes.separator
|
|
295
|
-
}), model.rows.map(function (row, idx) {
|
|
301
|
+
})), model.rows.map(function (row, idx) {
|
|
296
302
|
return /*#__PURE__*/React.createElement(_row["default"], {
|
|
297
303
|
key: idx,
|
|
298
304
|
model: model,
|
|
@@ -303,15 +309,16 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
303
309
|
onMoveRow: _this2.moveRow,
|
|
304
310
|
imageSupport: imageSupport,
|
|
305
311
|
enableImages: model.enableImages,
|
|
306
|
-
toolbarOpts: toolbarOpts
|
|
312
|
+
toolbarOpts: toolbarOpts,
|
|
313
|
+
spellCheck: spellCheck,
|
|
314
|
+
error: rowsErrors === null || rowsErrors === void 0 ? void 0 : rowsErrors[row.id],
|
|
315
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rowTitles || defaultImageMaxWidth,
|
|
316
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rowTitles || defaultImageMaxHeight,
|
|
317
|
+
uploadSoundSupport: uploadSoundSupport
|
|
307
318
|
});
|
|
308
319
|
}), /*#__PURE__*/React.createElement(_addRow["default"], {
|
|
309
320
|
onAddClick: onAddRow
|
|
310
|
-
}))
|
|
311
|
-
title: 'The column headings must be non-blank and unique.',
|
|
312
|
-
open: dialog.open,
|
|
313
|
-
onOk: dialog.onOk
|
|
314
|
-
}));
|
|
321
|
+
})));
|
|
315
322
|
}
|
|
316
323
|
}]);
|
|
317
324
|
return AnswerConfigBlock;
|
|
@@ -328,6 +335,10 @@ var AnswerConfigBlock = /*#__PURE__*/function (_React$Component) {
|
|
|
328
335
|
add: _propTypes["default"].func.isRequired,
|
|
329
336
|
"delete": _propTypes["default"].func.isRequired
|
|
330
337
|
}),
|
|
338
|
+
uploadSoundSupport: _propTypes["default"].shape({
|
|
339
|
+
add: _propTypes["default"].func.isRequired,
|
|
340
|
+
"delete": _propTypes["default"].func.isRequired
|
|
341
|
+
}),
|
|
331
342
|
toolbarOpts: _propTypes["default"].object
|
|
332
343
|
});
|
|
333
344
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/answer-config-block.jsx"],"names":["log","styles","theme","container","marginTop","spacing","unit","display","flexDirection","rowContainer","alignItems","flex","rowItem","justifyContent","width","padding","textAlign","deleteIcon","minWidth","questionText","maxWidth","rowTable","separator","border","borderTop","headerInput","fontWeight","AnswerConfigBlock","dialog","open","from","to","props","model","onChange","newModel","rows","reduce","acc","item","index","movedRow","remainingRows","push","update","slice","name","isBoolean","target","value","checked","lodash","set","headerIndex","headers","currentHeader","sameValue","filter","header","wasChanged","sameValueEntered","empty","length","setState","onOk","classes","onAddRow","imageSupport","configuration","toolbarOpts","state","filteredDefaultPlugins","DEFAULT_PLUGINS","p","labelPlugins","audio","disabled","video","settings","map","idx","onHeaderChange","row","onDeleteRow","moveRow","enableImages","React","Component","PropTypes","object","isRequired","func","shape","add"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Button from '@material-ui/core/Button';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport debug from 'debug';\nimport lodash from 'lodash';\nimport EditableHTML, { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\nimport { InfoDialog } from './common';\n\nconst log = debug('pie-elements:match:configure');\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column'\n },\n rowContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n alignItems: 'center',\n flex: 1\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n '&> div': {\n width: '150px',\n padding: '12px',\n textAlign: 'center'\n },\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '88px'\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n '&> div': {\n width: '100%',\n padding: 0,\n maxWidth: 'unset',\n textAlign: 'left',\n minWidth: '350px'\n }\n },\n rowTable: {\n display: 'flex',\n flexDirection: 'column'\n },\n separator: {\n marginTop: theme.spacing.unit * 2,\n border: 0,\n borderTop: '2px solid lightgray',\n width: '100%'\n },\n headerInput: {\n '&> div': {\n fontWeight: 'bold'\n }\n }\n});\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired\n }),\n toolbarOpts: PropTypes.object\n };\n\n state = {\n dialog: {\n open: false\n }\n };\n\n moveRow = (from, to) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows || [];\n\n log('[moveRow]: ', from, to);\n\n const { movedRow, remainingRows } = rows.reduce(\n (acc, item, index) => {\n if (index === from) {\n acc.movedRow = item;\n } else {\n acc.remainingRows.push(item);\n }\n\n return acc;\n },\n { movedRow: null, remainingRows: [] }\n );\n\n const update = [\n ...remainingRows.slice(0, to),\n movedRow,\n ...remainingRows.slice(to)\n ];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange = (name, isBoolean) => ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n lodash.set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = headerIndex => value => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if(headerIndex === 0) {\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n\n return;\n }\n\n const headers = newModel.headers || [];\n\n const currentHeader = headers[headerIndex];\n\n const sameValue = headers.filter(header => {\n const wasChanged = currentHeader !== value && `<div>${currentHeader}</div>` !== value;\n const sameValueEntered = header === value || `<div>${header}</div>` === value;\n\n return wasChanged && sameValueEntered;\n });\n\n const empty = value === '<div></div>';\n\n if (sameValue.length || empty) {\n this.setState({\n dialog: {\n open: true,\n onOk: () => {\n this.setState(\n {\n dialog: {\n open: false\n }\n }\n );\n }\n }\n });\n } else {\n newModel.headers[headerIndex] = value;\n\n onChange(newModel);\n }\n };\n\n render() {\n const {\n classes,\n model,\n onAddRow,\n imageSupport,\n configuration,\n toolbarOpts\n } = this.props;\n const { headers = {} } = configuration || {};\n const { dialog } = this.state;\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || [])\n .filter(p => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list');\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true }\n };\n\n return (\n <div className={classes.container}>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by\n clicking each correct answer per row.\n </Typography>\n <div className={classes.rowTable}>\n <div className={classes.rowContainer}>\n {headers.settings &&\n (model.headers || []).map((header, idx) => (\n <div\n key={idx}\n className={cx(classes.rowItem, {\n [classes.questionText]: idx === 0\n })}\n >\n <EditableHTML\n onChange={this.onHeaderChange(idx)}\n markup={header}\n className={classes.headerInput}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={labelPlugins}\n autoWidthToolbar\n allowValidation\n />\n </div>\n ))}\n <div className={classes.deleteIcon}>\n <Button disabled>\n <div />\n </Button>\n </div>\n </div>\n <hr className={classes.separator} />\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n onMoveRow={this.moveRow}\n imageSupport={imageSupport}\n enableImages={model.enableImages}\n toolbarOpts={toolbarOpts}\n />\n ))}\n <AddRow onAddClick={onAddRow} />\n </div>\n <InfoDialog\n title={'The column headings must be non-blank and unique.'}\n open={dialog.open}\n onOk={dialog.onOk}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AnswerConfigBlock);\n"],"file":"answer-config-block.js"}
|
|
1
|
+
{"version":3,"sources":["../src/answer-config-block.jsx"],"names":["log","styles","theme","container","marginTop","spacing","unit","display","flexDirection","rowContainer","alignItems","flex","width","borderBottom","paddingBottom","marginBottom","rowItem","justifyContent","padding","textAlign","deleteIcon","minWidth","questionText","marginRight","maxWidth","rowTable","headerInput","fontWeight","errorText","fontSize","typography","color","paddingTop","AnswerConfigBlock","from","to","props","model","onChange","newModel","rows","reduce","acc","item","index","movedRow","remainingRows","push","update","slice","name","isBoolean","target","value","checked","lodash","set","headerIndex","headers","classes","onAddRow","imageSupport","configuration","toolbarOpts","spellCheck","uploadSoundSupport","maxImageWidth","maxImageHeight","errors","correctResponseError","rowsErrors","columnsErrors","noOfRowsError","columnsLengthError","filteredDefaultPlugins","DEFAULT_PLUGINS","filter","p","labelPlugins","audio","disabled","video","defaultImageMaxWidth","prompt","defaultImageMaxHeight","overflow","settings","map","header","idx","onHeaderChange","language","row","onDeleteRow","moveRow","enableImages","id","rowTitles","React","Component","PropTypes","object","isRequired","func","shape","add"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport AddRow from './add-row';\nimport Row from './row';\nimport debug from 'debug';\nimport lodash from 'lodash';\nimport EditableHTML, { DEFAULT_PLUGINS } from '@pie-lib/editable-html';\n\nconst log = debug('pie-elements:match:configure');\n\nconst styles = (theme) => ({\n container: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n },\n rowContainer: {\n display: 'flex',\n alignItems: 'center',\n flex: 1,\n width: 'fit-content',\n borderBottom: '2px solid lightgray',\n paddingBottom: theme.spacing.unit * 2,\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit,\n },\n rowItem: {\n flex: 1,\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column',\n '&> div': {\n width: '150px',\n padding: `0 ${theme.spacing.unit}px`,\n textAlign: 'center',\n },\n },\n deleteIcon: {\n flex: 0.5,\n minWidth: '48px',\n padding: `0 ${theme.spacing.unit}px`,\n },\n questionText: {\n flex: 2,\n display: 'flex',\n justifyContent: 'flex-start',\n marginRight: theme.spacing.unit,\n '&> div': {\n width: '100%',\n padding: 0,\n maxWidth: 'unset',\n textAlign: 'left',\n minWidth: '350px',\n },\n },\n rowTable: {\n display: 'flex',\n flexDirection: 'column',\n },\n headerInput: {\n '&> div': {\n fontWeight: 'bold',\n },\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: 'red',\n paddingTop: `${theme.spacing.unit}px !important`,\n width: 'fit-content !important',\n },\n});\n\nclass AnswerConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onDeleteRow: PropTypes.func.isRequired,\n onAddRow: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n toolbarOpts: PropTypes.object,\n };\n\n moveRow = (from, to) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n const rows = newModel.rows || [];\n\n log('[moveRow]: ', from, to);\n\n const { movedRow, remainingRows } = rows.reduce(\n (acc, item, index) => {\n if (index === from) {\n acc.movedRow = item;\n } else {\n acc.remainingRows.push(item);\n }\n\n return acc;\n },\n { movedRow: null, remainingRows: [] },\n );\n\n const update = [...remainingRows.slice(0, to), movedRow, ...remainingRows.slice(to)];\n\n log('update: ', update);\n\n newModel.rows = update;\n\n onChange(newModel);\n };\n\n onChange =\n (name, isBoolean) =>\n ({ target }) => {\n const { model, onChange } = this.props;\n let value;\n\n if (isBoolean) {\n value = target.checked;\n } else {\n value = target.value;\n }\n\n lodash.set(model, name, value);\n onChange(model, name);\n };\n\n onHeaderChange = (headerIndex) => (value) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (headerIndex === 0) {\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n\n return;\n }\n\n newModel.headers[headerIndex] = value;\n onChange(newModel);\n };\n\n render() {\n const { classes, model, onAddRow, imageSupport, configuration, toolbarOpts, spellCheck, uploadSoundSupport } =\n this.props;\n const { headers = {}, maxImageWidth = {}, maxImageHeight = {} } = configuration || {};\n const { errors } = model || {};\n const { correctResponseError, rowsErrors, columnsErrors, noOfRowsError, columnsLengthError } = errors || {};\n\n const filteredDefaultPlugins = (DEFAULT_PLUGINS || []).filter(\n (p) => p !== 'table' && p !== 'bulleted-list' && p !== 'numbered-list',\n );\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true },\n };\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n return (\n <div className={classes.container}>\n <Typography type=\"body1\" component=\"div\">\n Click on the labels to edit or remove. Set the correct answers by clicking each correct answer per row.\n </Typography>\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n {noOfRowsError && <div className={classes.errorText}>{noOfRowsError}</div>}\n {columnsLengthError && <div className={classes.errorText}>{columnsLengthError}</div>}\n\n <div\n className={classes.rowTable}\n style={configuration.width ? { width: configuration.width, overflow: 'scroll' } : {}}\n >\n <div className={classes.rowContainer}>\n {headers.settings &&\n (model.headers || []).map((header, idx) => (\n <div\n key={idx}\n className={cx(classes.rowItem, {\n [classes.questionText]: idx === 0,\n })}\n >\n <EditableHTML\n onChange={this.onHeaderChange(idx)}\n markup={header}\n className={classes.headerInput}\n label={'column label'}\n activePlugins={filteredDefaultPlugins}\n pluginProps={labelPlugins}\n autoWidthToolbar\n spellCheck={spellCheck}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n error={columnsErrors && columnsErrors[idx]}\n />\n {columnsErrors && columnsErrors[idx] && <div className={classes.errorText}>{columnsErrors[idx]}</div>}\n </div>\n ))}\n <div className={classes.deleteIcon} />\n </div>\n\n {model.rows.map((row, idx) => (\n <Row\n key={idx}\n model={model}\n row={row}\n idx={idx}\n onDeleteRow={this.props.onDeleteRow}\n onChange={this.props.onChange}\n onMoveRow={this.moveRow}\n imageSupport={imageSupport}\n enableImages={model.enableImages}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheck}\n error={rowsErrors?.[row.id]}\n maxImageWidth={(maxImageWidth && maxImageWidth.rowTitles) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rowTitles) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n ))}\n\n <AddRow onAddClick={onAddRow} />\n </div>\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(AnswerConfigBlock);\n"],"file":"answer-config-block.js"}
|
|
@@ -39,9 +39,9 @@ var _generalConfigBlock = _interopRequireDefault(require("./general-config-block
|
|
|
39
39
|
|
|
40
40
|
var _answerConfigBlock = _interopRequireDefault(require("./answer-config-block"));
|
|
41
41
|
|
|
42
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
42
|
+
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; }
|
|
43
43
|
|
|
44
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
44
|
+
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; }
|
|
45
45
|
|
|
46
46
|
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
47
|
|
|
@@ -212,48 +212,69 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
212
212
|
imageSupport = _this$props2.imageSupport,
|
|
213
213
|
onModelChanged = _this$props2.onModelChanged,
|
|
214
214
|
configuration = _this$props2.configuration,
|
|
215
|
-
onConfigurationChanged = _this$props2.onConfigurationChanged
|
|
215
|
+
onConfigurationChanged = _this$props2.onConfigurationChanged,
|
|
216
|
+
uploadSoundSupport = _this$props2.uploadSoundSupport;
|
|
216
217
|
|
|
217
218
|
var _ref = configuration || {},
|
|
218
219
|
_ref$enableImages = _ref.enableImages,
|
|
219
220
|
enableImages = _ref$enableImages === void 0 ? {} : _ref$enableImages,
|
|
221
|
+
_ref$feedback = _ref.feedback,
|
|
222
|
+
feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
|
|
223
|
+
_ref$lockChoiceOrder = _ref.lockChoiceOrder,
|
|
224
|
+
lockChoiceOrder = _ref$lockChoiceOrder === void 0 ? {} : _ref$lockChoiceOrder,
|
|
225
|
+
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
226
|
+
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
227
|
+
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
228
|
+
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
|
|
220
229
|
_ref$partialScoring = _ref.partialScoring,
|
|
221
230
|
partialScoring = _ref$partialScoring === void 0 ? {} : _ref$partialScoring,
|
|
222
|
-
_ref$
|
|
223
|
-
|
|
224
|
-
_ref$studentInstructi = _ref.studentInstructions,
|
|
225
|
-
studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
|
|
231
|
+
_ref$prompt = _ref.prompt,
|
|
232
|
+
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
226
233
|
_ref$rationale = _ref.rationale,
|
|
227
234
|
rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
|
|
228
|
-
|
|
229
|
-
lockChoiceOrder = _ref$lockChoiceOrder === void 0 ? {} : _ref$lockChoiceOrder,
|
|
235
|
+
settingsPanelDisabled = _ref.settingsPanelDisabled,
|
|
230
236
|
_ref$scoringType = _ref.scoringType,
|
|
231
237
|
scoringType = _ref$scoringType === void 0 ? {} : _ref$scoringType,
|
|
232
|
-
_ref$
|
|
233
|
-
|
|
234
|
-
_ref$
|
|
235
|
-
|
|
238
|
+
_ref$spellCheck = _ref.spellCheck,
|
|
239
|
+
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
240
|
+
_ref$studentInstructi = _ref.studentInstructions,
|
|
241
|
+
studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
|
|
242
|
+
_ref$teacherInstructi = _ref.teacherInstructions,
|
|
243
|
+
teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
|
|
244
|
+
_ref$withRubric = _ref.withRubric,
|
|
245
|
+
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric;
|
|
236
246
|
|
|
237
247
|
var _ref2 = model || {},
|
|
238
|
-
|
|
248
|
+
feedbackEnabled = _ref2.feedbackEnabled,
|
|
239
249
|
promptEnabled = _ref2.promptEnabled,
|
|
240
250
|
rationaleEnabled = _ref2.rationaleEnabled,
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
251
|
+
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
252
|
+
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
253
|
+
toolbarEditorPosition = _ref2.toolbarEditorPosition;
|
|
254
|
+
|
|
255
|
+
var toolbarOpts = {
|
|
256
|
+
position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
|
|
257
|
+
};
|
|
258
|
+
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
259
|
+
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
260
|
+
var panelSettings = {
|
|
261
|
+
enableImages: enableImages.settings && toggle(enableImages.label),
|
|
262
|
+
partialScoring: partialScoring.settings && toggle(partialScoring.label),
|
|
263
|
+
lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),
|
|
264
|
+
feedbackEnabled: feedback.settings && toggle(feedback.label)
|
|
265
|
+
};
|
|
266
|
+
var panelProperties = {
|
|
267
|
+
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
268
|
+
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
269
|
+
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
270
|
+
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
271
|
+
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
272
|
+
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
|
|
273
|
+
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
274
|
+
};
|
|
255
275
|
log('[render] model', model);
|
|
256
276
|
return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
277
|
+
hideSettings: settingsPanelDisabled,
|
|
257
278
|
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
258
279
|
model: model,
|
|
259
280
|
configuration: configuration,
|
|
@@ -264,19 +285,8 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
264
285
|
return onConfigurationChanged(config);
|
|
265
286
|
},
|
|
266
287
|
groups: {
|
|
267
|
-
Settings:
|
|
268
|
-
|
|
269
|
-
partialScoring: partialScoring.settings && toggle(partialScoring.label),
|
|
270
|
-
lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),
|
|
271
|
-
feedbackEnabled: feedback.settings && toggle(feedback.label)
|
|
272
|
-
},
|
|
273
|
-
Properties: {
|
|
274
|
-
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
275
|
-
studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
|
|
276
|
-
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
277
|
-
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
278
|
-
scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric'])
|
|
279
|
-
}
|
|
288
|
+
Settings: panelSettings,
|
|
289
|
+
Properties: panelProperties
|
|
280
290
|
}
|
|
281
291
|
})
|
|
282
292
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -290,7 +300,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
290
300
|
onChange: this.onTeacherInstructionsChanged,
|
|
291
301
|
imageSupport: imageSupport,
|
|
292
302
|
nonEmpty: false,
|
|
293
|
-
toolbarOpts: toolbarOpts
|
|
303
|
+
toolbarOpts: toolbarOpts,
|
|
304
|
+
spellCheck: spellCheckEnabled,
|
|
305
|
+
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
306
|
+
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
|
|
307
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
308
|
+
languageCharactersProps: [{
|
|
309
|
+
language: 'spanish'
|
|
310
|
+
}, {
|
|
311
|
+
language: 'special'
|
|
312
|
+
}]
|
|
294
313
|
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
295
314
|
label: prompt.label,
|
|
296
315
|
className: classes.promptHolder
|
|
@@ -301,7 +320,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
301
320
|
imageSupport: imageSupport,
|
|
302
321
|
nonEmpty: false,
|
|
303
322
|
disableUnderline: true,
|
|
304
|
-
toolbarOpts: toolbarOpts
|
|
323
|
+
toolbarOpts: toolbarOpts,
|
|
324
|
+
spellCheck: spellCheckEnabled,
|
|
325
|
+
maxImageWidth: maxImageWidth && maxImageWidth.prompt,
|
|
326
|
+
maxImageHeight: maxImageHeight && maxImageHeight.prompt,
|
|
327
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
328
|
+
languageCharactersProps: [{
|
|
329
|
+
language: 'spanish'
|
|
330
|
+
}, {
|
|
331
|
+
language: 'special'
|
|
332
|
+
}]
|
|
305
333
|
})), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
306
334
|
label: rationale.label,
|
|
307
335
|
className: classes.promptHolder
|
|
@@ -310,7 +338,16 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
310
338
|
markup: model.rationale || '',
|
|
311
339
|
onChange: this.onRationaleChanged,
|
|
312
340
|
imageSupport: imageSupport,
|
|
313
|
-
toolbarOpts: toolbarOpts
|
|
341
|
+
toolbarOpts: toolbarOpts,
|
|
342
|
+
spellCheck: spellCheckEnabled,
|
|
343
|
+
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
344
|
+
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
|
|
345
|
+
uploadSoundSupport: uploadSoundSupport,
|
|
346
|
+
languageCharactersProps: [{
|
|
347
|
+
language: 'spanish'
|
|
348
|
+
}, {
|
|
349
|
+
language: 'special'
|
|
350
|
+
}]
|
|
314
351
|
})), /*#__PURE__*/_react["default"].createElement(_generalConfigBlock["default"], {
|
|
315
352
|
model: model,
|
|
316
353
|
configuration: configuration,
|
|
@@ -323,7 +360,9 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
323
360
|
onChange: this.onChange,
|
|
324
361
|
onAddRow: this.onAddRow,
|
|
325
362
|
onDeleteRow: this.onDeleteRow,
|
|
326
|
-
toolbarOpts: toolbarOpts
|
|
363
|
+
toolbarOpts: toolbarOpts,
|
|
364
|
+
spellCheck: spellCheckEnabled,
|
|
365
|
+
uploadSoundSupport: uploadSoundSupport
|
|
327
366
|
}), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
|
|
328
367
|
feedback: model.feedback,
|
|
329
368
|
onChange: this.onFeedbackChange,
|
|
@@ -343,6 +382,10 @@ var Configure = /*#__PURE__*/function (_React$Component) {
|
|
|
343
382
|
imageSupport: _propTypes["default"].shape({
|
|
344
383
|
add: _propTypes["default"].func.isRequired,
|
|
345
384
|
"delete": _propTypes["default"].func.isRequired
|
|
385
|
+
}),
|
|
386
|
+
uploadSoundSupport: _propTypes["default"].shape({
|
|
387
|
+
add: _propTypes["default"].func.isRequired,
|
|
388
|
+
"delete": _propTypes["default"].func.isRequired
|
|
346
389
|
})
|
|
347
390
|
});
|
|
348
391
|
(0, _defineProperty2["default"])(Configure, "defaultProps", {
|