@pie-element/extended-text-entry 10.10.2-next.1 → 10.10.2-next.15
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/configure/lib/defaults.js +138 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/index.js +179 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/main.js +311 -0
- package/configure/lib/main.js.map +1 -0
- package/configure/package.json +1 -1
- package/controller/lib/defaults.js +14 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +198 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/package.json +1 -1
- package/lib/index.js +136 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +216 -0
- package/lib/main.js.map +1 -0
- package/lib/print.js +122 -0
- package/lib/print.js.map +1 -0
- package/module/configure.js +6271 -0
- package/module/controller.js +263 -0
- package/module/demo.js +37 -0
- package/module/element.js +5970 -0
- package/module/index.html +21 -0
- package/module/manifest.json +14 -0
- package/module/print-demo.js +75 -0
- package/module/print.html +18 -0
- package/module/print.js +5927 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","numberFields","dropdown","defaultFeedback","type","Main","props","markup","onModelChanged","model","prompt","feedback","update","teacherInstructions","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","contentDimensions","dimensions","equationEditor","playerSpellCheck","settingsPanelDisabled","spanishInput","specialInput","spellCheck","studentInstructions","mathInput","maxImageWidth","maxImageHeight","multiple","withRubric","mathMlOptions","baseInputConfiguration","errors","feedbackEnabled","promptEnabled","spellCheckEnabled","teacherInstructionsEnabled","toolbarEditorPosition","promptError","teacherInstructionsError","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","enabled","width","suffix","min","max","height","playerSpellCheckDisabled","panelProperties","studentInstructionsEnabled","rubricEnabled","getPluginProps","Object","assign","config","Settings","Properties","promptContainer","changeTeacherInstructions","language","inputConfiguration","errorText","ALL_PLUGINS","onPromptChange","header","changeFeedback","React","Component","PropTypes","func","isRequired","object","theme","paddingBottom","spacing","unit","paddingTop","marginBottom","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { FeedbackSelector, InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport PropTypes from 'prop-types';\nimport Typography from '@material-ui/core/Typography';\nimport { withStyles } from '@material-ui/core/styles';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\n\nconst { Panel, toggle, numberFields, dropdown } = settings;\n\nconst defaultFeedback = {\n type: 'default',\n default: 'Your answer has been submitted',\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n onPromptChange = (markup) => {\n const { onModelChanged, model } = this.props;\n\n onModelChanged({ ...model, prompt: markup });\n };\n\n changeFeedback = (feedback) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, feedback };\n\n onModelChanged(update);\n };\n\n changeTeacherInstructions = (teacherInstructions) => {\n const { model, onModelChanged } = this.props;\n const update = { ...model, teacherInstructions };\n\n onModelChanged(update);\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n contentDimensions = {},\n dimensions = {},\n equationEditor = {},\n feedback = {},\n playerSpellCheck = {},\n prompt = {},\n settingsPanelDisabled,\n spanishInput = {},\n specialInput = {},\n spellCheck = {},\n studentInstructions = {},\n teacherInstructions = {},\n mathInput = {},\n maxImageWidth = {},\n maxImageHeight = {},\n multiple = {},\n withRubric = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n } = configuration || {};\n const {\n errors = {},\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n teacherInstructionsEnabled,\n toolbarEditorPosition,\n } = model || {};\n const { prompt: promptError, teacherInstructions: teacherInstructionsError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const panelSettings = {\n mathInput: mathInput.settings && toggle(mathInput.label),\n equationEditor:\n equationEditor.enabled &&\n model.mathInput &&\n dropdown(equationEditor.label, [\n 'non-negative-integers',\n 'integers',\n 'decimals',\n 'fractions',\n 'Grade 1 - 2',\n 'Grade 3 - 5',\n 'Grade 6 - 7',\n 'Grade 8 - HS',\n 'geometry',\n 'advanced-algebra',\n 'statistics',\n 'item-authoring',\n ]),\n spanishInput: spanishInput.settings && toggle(spanishInput.label),\n specialInput: specialInput.settings && toggle(specialInput.label),\n dimensions: numberFields(dimensions.label, {\n width: { label: 'Width (px)', suffix: 'px', min: 100, max: 500 },\n height: { label: 'Height (px)', suffix: 'px', min: 100, max: 500 },\n }),\n 'multiple.enabled': multiple.settings && toggle(multiple.label, true),\n promptEnabled: prompt.settings && toggle(prompt.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n playerSpellCheckDisabled: playerSpellCheck.settings && toggle(playerSpellCheck.label),\n };\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n const getPluginProps = (props) => {\n return Object.assign(\n {\n ...baseInputConfiguration,\n },\n props || {},\n );\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptContainer}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.changeTeacherInstructions}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n className={classes.prompt}\n markup={model.prompt || ''}\n onChange={this.onPromptChange}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {feedbackEnabled && (\n <React.Fragment>\n <Typography className={classes.header} variant=\"subheading\">\n Feedback\n </Typography>\n\n <FeedbackSelector\n label=\"When submitted, show\"\n feedback={model.feedback || defaultFeedback}\n onChange={this.changeFeedback}\n toolbarOpts={toolbarOpts}\n />\n </React.Fragment>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n header: {\n paddingBottom: theme.spacing.unit,\n },\n promptContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n}))(Main);\n"],"file":"main.js"}
|
package/configure/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@material-ui/core": "^3.9.2",
|
|
12
12
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
13
|
-
"@pie-lib/pie-toolbox": "1.13.
|
|
13
|
+
"@pie-lib/pie-toolbox": "1.13.1",
|
|
14
14
|
"lodash": "^4.17.15",
|
|
15
15
|
"prop-types": "^15.6.2",
|
|
16
16
|
"react": "^16.8.1",
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _default = {
|
|
8
|
+
dimensions: {
|
|
9
|
+
height: 100,
|
|
10
|
+
width: 500
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
exports["default"] = _default;
|
|
14
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["dimensions","height","width"],"mappings":";;;;;;eAAe;AACbA,EAAAA,UAAU,EAAE;AACVC,IAAAA,MAAM,EAAE,GADE;AAEVC,IAAAA,KAAK,EAAE;AAFG;AADC,C","sourcesContent":["export default {\n dimensions: {\n height: 100,\n width: 500,\n },\n};\n"],"file":"defaults.js"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createDefaultModel = createDefaultModel;
|
|
9
|
+
exports.model = model;
|
|
10
|
+
exports.normalize = void 0;
|
|
11
|
+
exports.outcome = outcome;
|
|
12
|
+
exports.validate = void 0;
|
|
13
|
+
|
|
14
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
19
|
+
|
|
20
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
21
|
+
|
|
22
|
+
var _feedback = require("@pie-lib/pie-toolbox/feedback");
|
|
23
|
+
|
|
24
|
+
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
28
|
+
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; }
|
|
29
|
+
|
|
30
|
+
var log = (0, _debug["default"])('@pie-element:extended-text-entry:controller');
|
|
31
|
+
|
|
32
|
+
function createDefaultModel() {
|
|
33
|
+
return _createDefaultModel.apply(this, arguments);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function _createDefaultModel() {
|
|
37
|
+
_createDefaultModel = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
38
|
+
var model,
|
|
39
|
+
_args = arguments;
|
|
40
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
41
|
+
while (1) {
|
|
42
|
+
switch (_context.prev = _context.next) {
|
|
43
|
+
case 0:
|
|
44
|
+
model = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
|
|
45
|
+
log('[createDefaultModel]', model);
|
|
46
|
+
return _context.abrupt("return", _objectSpread(_objectSpread({}, _defaults["default"]), model));
|
|
47
|
+
|
|
48
|
+
case 3:
|
|
49
|
+
case "end":
|
|
50
|
+
return _context.stop();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}, _callee);
|
|
54
|
+
}));
|
|
55
|
+
return _createDefaultModel.apply(this, arguments);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var normalize = function normalize(question) {
|
|
59
|
+
return _objectSpread(_objectSpread({}, _defaults["default"]), {}, {
|
|
60
|
+
feedbackEnabled: false,
|
|
61
|
+
rationaleEnabled: true,
|
|
62
|
+
promptEnabled: true,
|
|
63
|
+
teacherInstructionsEnabled: true,
|
|
64
|
+
studentInstructionsEnabled: true,
|
|
65
|
+
playerSpellCheckDisabled: true
|
|
66
|
+
}, question);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
exports.normalize = normalize;
|
|
70
|
+
|
|
71
|
+
function model(_x, _x2, _x3) {
|
|
72
|
+
return _model.apply(this, arguments);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function _model() {
|
|
76
|
+
_model = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(question, session, env) {
|
|
77
|
+
var normalizedQuestion, fb, teacherInstructions, equationEditor;
|
|
78
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
79
|
+
while (1) {
|
|
80
|
+
switch (_context2.prev = _context2.next) {
|
|
81
|
+
case 0:
|
|
82
|
+
log('[question]', question);
|
|
83
|
+
normalizedQuestion = normalize(question);
|
|
84
|
+
fb = env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled ? (0, _feedback.getFeedback)(normalizedQuestion.feedback, 'Your answer has been submitted') : Promise.resolve(undefined);
|
|
85
|
+
teacherInstructions = null;
|
|
86
|
+
|
|
87
|
+
if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
|
|
88
|
+
teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
|
|
89
|
+
} else {
|
|
90
|
+
teacherInstructions = null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';
|
|
94
|
+
_context2.t0 = normalizedQuestion.equationEditor;
|
|
95
|
+
_context2.next = _context2.t0 === 'Grade 1 - 2' ? 9 : _context2.t0 === 'Grade 3 - 5' ? 11 : _context2.t0 === 'Grade 6 - 7' ? 13 : _context2.t0 === 'Grade 8 - HS' ? 15 : 17;
|
|
96
|
+
break;
|
|
97
|
+
|
|
98
|
+
case 9:
|
|
99
|
+
equationEditor = 1;
|
|
100
|
+
return _context2.abrupt("break", 18);
|
|
101
|
+
|
|
102
|
+
case 11:
|
|
103
|
+
equationEditor = 3;
|
|
104
|
+
return _context2.abrupt("break", 18);
|
|
105
|
+
|
|
106
|
+
case 13:
|
|
107
|
+
equationEditor = 6;
|
|
108
|
+
return _context2.abrupt("break", 18);
|
|
109
|
+
|
|
110
|
+
case 15:
|
|
111
|
+
equationEditor = 8;
|
|
112
|
+
return _context2.abrupt("break", 18);
|
|
113
|
+
|
|
114
|
+
case 17:
|
|
115
|
+
return _context2.abrupt("break", 18);
|
|
116
|
+
|
|
117
|
+
case 18:
|
|
118
|
+
return _context2.abrupt("return", fb.then(function (feedback) {
|
|
119
|
+
return {
|
|
120
|
+
prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
|
|
121
|
+
dimensions: normalizedQuestion.dimensions,
|
|
122
|
+
customKeys: normalizedQuestion.customKeys || [],
|
|
123
|
+
disabled: env.mode !== 'gather',
|
|
124
|
+
feedback: feedback,
|
|
125
|
+
teacherInstructions: teacherInstructions,
|
|
126
|
+
mathInput: normalizedQuestion.mathInput,
|
|
127
|
+
spanishInput: normalizedQuestion.spanishInput,
|
|
128
|
+
specialInput: normalizedQuestion.specialInput,
|
|
129
|
+
equationEditor: equationEditor,
|
|
130
|
+
spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,
|
|
131
|
+
playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom'
|
|
132
|
+
};
|
|
133
|
+
}));
|
|
134
|
+
|
|
135
|
+
case 19:
|
|
136
|
+
case "end":
|
|
137
|
+
return _context2.stop();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}, _callee2);
|
|
141
|
+
}));
|
|
142
|
+
return _model.apply(this, arguments);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function
|
|
146
|
+
/*question, session, env*/
|
|
147
|
+
outcome() {
|
|
148
|
+
return _outcome.apply(this, arguments);
|
|
149
|
+
} // remove all html tags
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
function _outcome() {
|
|
153
|
+
_outcome = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
154
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
155
|
+
while (1) {
|
|
156
|
+
switch (_context3.prev = _context3.next) {
|
|
157
|
+
case 0:
|
|
158
|
+
return _context3.abrupt("return", {
|
|
159
|
+
score: 0,
|
|
160
|
+
completed: 'n/a',
|
|
161
|
+
note: 'Requires manual scoring'
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
case 1:
|
|
165
|
+
case "end":
|
|
166
|
+
return _context3.stop();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}, _callee3);
|
|
170
|
+
}));
|
|
171
|
+
return _outcome.apply(this, arguments);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
var getInnerText = function getInnerText(html) {
|
|
175
|
+
return (html || '').replaceAll(/<[^>]*>/g, '');
|
|
176
|
+
}; // remove all html tags except img and iframe
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
var getContent = function getContent(html) {
|
|
180
|
+
return (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
var validate = function validate() {
|
|
184
|
+
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
185
|
+
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
186
|
+
var errors = {};
|
|
187
|
+
['teacherInstructions', 'prompt'].forEach(function (field) {
|
|
188
|
+
var _config$field;
|
|
189
|
+
|
|
190
|
+
if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(model[field])) {
|
|
191
|
+
errors[field] = 'This field is required.';
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
return errors;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
exports.validate = validate;
|
|
198
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","createDefaultModel","model","defaults","normalize","question","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","playerSpellCheckDisabled","session","env","normalizedQuestion","fb","mode","feedback","Promise","resolve","undefined","teacherInstructions","role","equationEditor","then","prompt","dimensions","customKeys","disabled","mathInput","spanishInput","specialInput","spellCheckEnabled","playersToolbarPosition","outcome","score","completed","note","getInnerText","html","replaceAll","getContent","replace","validate","config","errors","forEach","field","required"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nconst log = debug('@pie-element:extended-text-entry:controller');\nimport { getFeedback } from '@pie-lib/pie-toolbox/feedback';\n\nimport defaults from './defaults';\n\nexport async function createDefaultModel(model = {}) {\n log('[createDefaultModel]', model);\n\n return {\n ...defaults,\n ...model,\n };\n}\n\nexport const normalize = (question) => ({\n ...defaults,\n feedbackEnabled: false,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n playerSpellCheckDisabled: true,\n ...question,\n});\n\nexport async function model(question, session, env) {\n log('[question]', question);\n const normalizedQuestion = normalize(question);\n\n const fb =\n env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled\n ? getFeedback(normalizedQuestion.feedback, 'Your answer has been submitted')\n : Promise.resolve(undefined);\n\n let teacherInstructions = null;\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;\n } else {\n teacherInstructions = null;\n }\n\n let equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';\n\n switch (normalizedQuestion.equationEditor) {\n case 'Grade 1 - 2':\n equationEditor = 1;\n break;\n case 'Grade 3 - 5':\n equationEditor = 3;\n break;\n case 'Grade 6 - 7':\n equationEditor = 6;\n break;\n case 'Grade 8 - HS':\n equationEditor = 8;\n break;\n default:\n break;\n }\n\n return fb.then((feedback) => ({\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n dimensions: normalizedQuestion.dimensions,\n customKeys: normalizedQuestion.customKeys || [],\n disabled: env.mode !== 'gather',\n feedback,\n teacherInstructions,\n mathInput: normalizedQuestion.mathInput,\n spanishInput: normalizedQuestion.spanishInput,\n specialInput: normalizedQuestion.specialInput,\n equationEditor,\n spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,\n playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom',\n }));\n}\n\nexport async function outcome(/*question, session, env*/) {\n return {\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n };\n}\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img and iframe\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n return errors;\n};\n"],"file":"index.js"}
|
package/controller/package.json
CHANGED
package/lib/index.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
exports.isComplete = isComplete;
|
|
10
|
+
exports.textContent = textContent;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
23
|
+
|
|
24
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
25
|
+
|
|
26
|
+
var _main = _interopRequireDefault(require("./main"));
|
|
27
|
+
|
|
28
|
+
var _react = _interopRequireDefault(require("react"));
|
|
29
|
+
|
|
30
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
31
|
+
|
|
32
|
+
var _mathRenderingAccessible = require("@pie-lib/pie-toolbox/math-rendering-accessible");
|
|
33
|
+
|
|
34
|
+
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
35
|
+
|
|
36
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
37
|
+
|
|
38
|
+
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); }; }
|
|
39
|
+
|
|
40
|
+
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; } }
|
|
41
|
+
|
|
42
|
+
var log = (0, _debug["default"])('@pie-ui:extended-text-entry');
|
|
43
|
+
var domParser = (typeof window === "undefined" ? "undefined" : (0, _typeof2["default"])(window)) !== undefined ? new DOMParser() : {
|
|
44
|
+
parseFromString: function parseFromString(v) {
|
|
45
|
+
return v;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
function textContent(value) {
|
|
50
|
+
if (typeof value !== 'string') {
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
try {
|
|
55
|
+
var document = domParser.parseFromString(value, 'text/html');
|
|
56
|
+
var _textContent = document.body.textContent;
|
|
57
|
+
return _textContent;
|
|
58
|
+
} catch (err) {
|
|
59
|
+
log('tried to parse as dom and failed', value);
|
|
60
|
+
return value;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function isComplete(value) {
|
|
65
|
+
var tc = textContent(value);
|
|
66
|
+
var out = tc !== undefined && tc.length > 0;
|
|
67
|
+
return out;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var RootExtendedTextEntry = /*#__PURE__*/function (_HTMLElement) {
|
|
71
|
+
(0, _inherits2["default"])(RootExtendedTextEntry, _HTMLElement);
|
|
72
|
+
|
|
73
|
+
var _super = _createSuper(RootExtendedTextEntry);
|
|
74
|
+
|
|
75
|
+
function RootExtendedTextEntry() {
|
|
76
|
+
var _this;
|
|
77
|
+
|
|
78
|
+
(0, _classCallCheck2["default"])(this, RootExtendedTextEntry);
|
|
79
|
+
_this = _super.call(this);
|
|
80
|
+
_this._model = null;
|
|
81
|
+
_this._session = null;
|
|
82
|
+
return _this;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
(0, _createClass2["default"])(RootExtendedTextEntry, [{
|
|
86
|
+
key: "model",
|
|
87
|
+
set: function set(m) {
|
|
88
|
+
this._model = m;
|
|
89
|
+
this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), false, !!this._model));
|
|
90
|
+
this.render();
|
|
91
|
+
}
|
|
92
|
+
}, {
|
|
93
|
+
key: "session",
|
|
94
|
+
get: function get() {
|
|
95
|
+
return this._session;
|
|
96
|
+
},
|
|
97
|
+
set: function set(s) {
|
|
98
|
+
this._session = s;
|
|
99
|
+
this.render();
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
key: "handleChange",
|
|
103
|
+
value: function handleChange(value) {
|
|
104
|
+
this._session.value = value;
|
|
105
|
+
this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), isComplete(value)));
|
|
106
|
+
}
|
|
107
|
+
}, {
|
|
108
|
+
key: "connectedCallback",
|
|
109
|
+
value: function connectedCallback() {
|
|
110
|
+
this.setAttribute('aria-label', 'Written Response Question');
|
|
111
|
+
this.setAttribute('role', 'region');
|
|
112
|
+
this.render();
|
|
113
|
+
}
|
|
114
|
+
}, {
|
|
115
|
+
key: "render",
|
|
116
|
+
value: function render() {
|
|
117
|
+
var _this2 = this;
|
|
118
|
+
|
|
119
|
+
if (this._model && this._session) {
|
|
120
|
+
var elem = /*#__PURE__*/_react["default"].createElement(_main["default"], {
|
|
121
|
+
model: this._model,
|
|
122
|
+
session: this._session,
|
|
123
|
+
onChange: this.handleChange.bind(this)
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
_reactDom["default"].render(elem, this, function () {
|
|
127
|
+
(0, _mathRenderingAccessible.renderMath)(_this2);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}]);
|
|
132
|
+
return RootExtendedTextEntry;
|
|
133
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
134
|
+
|
|
135
|
+
exports["default"] = RootExtendedTextEntry;
|
|
136
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","domParser","window","undefined","DOMParser","parseFromString","v","textContent","value","document","body","err","isComplete","tc","out","length","RootExtendedTextEntry","_model","_session","m","dispatchEvent","ModelSetEvent","tagName","toLowerCase","render","s","SessionChangedEvent","setAttribute","elem","React","createElement","Main","model","session","onChange","handleChange","bind","ReactDOM","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,6BAAN,CAAZ;AAEA,IAAMC,SAAS,GAAG,QAAOC,MAAP,0DAAOA,MAAP,OAAkBC,SAAlB,GAA8B,IAAIC,SAAJ,EAA9B,GAAgD;AAAEC,EAAAA,eAAe,EAAE,yBAACC,CAAD;AAAA,WAAOA,CAAP;AAAA;AAAnB,CAAlE;;AAEO,SAASC,WAAT,CAAqBC,KAArB,EAA4B;AACjC,MAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC7B,WAAOL,SAAP;AACD;;AACD,MAAI;AACF,QAAMM,QAAQ,GAAGR,SAAS,CAACI,eAAV,CAA0BG,KAA1B,EAAiC,WAAjC,CAAjB;AACA,QAAMD,YAAW,GAAGE,QAAQ,CAACC,IAAT,CAAcH,WAAlC;AACA,WAAOA,YAAP;AACD,GAJD,CAIE,OAAOI,GAAP,EAAY;AACZX,IAAAA,GAAG,CAAC,kCAAD,EAAqCQ,KAArC,CAAH;AACA,WAAOA,KAAP;AACD;AACF;;AAEM,SAASI,UAAT,CAAoBJ,KAApB,EAA2B;AAChC,MAAMK,EAAE,GAAGN,WAAW,CAACC,KAAD,CAAtB;AACA,MAAMM,GAAG,GAAGD,EAAE,KAAKV,SAAP,IAAoBU,EAAE,CAACE,MAAH,GAAY,CAA5C;AACA,SAAOD,GAAP;AACD;;IAEoBE,qB;;;;;AACnB,mCAAc;AAAA;;AAAA;AACZ;AACA,UAAKC,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,IAAhB;AAHY;AAIb;;;;SAED,aAAUC,CAAV,EAAa;AACX,WAAKF,MAAL,GAAcE,CAAd;AACA,WAAKC,aAAL,CAAmB,IAAIC,8BAAJ,CAAkB,KAAKC,OAAL,CAAaC,WAAb,EAAlB,EAA8C,KAA9C,EAAqD,CAAC,CAAC,KAAKN,MAA5D,CAAnB;AAEA,WAAKO,MAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKN,QAAZ;AACD,K;SAPD,aAAYO,CAAZ,EAAe;AACb,WAAKP,QAAL,GAAgBO,CAAhB;AACA,WAAKD,MAAL;AACD;;;WAMD,sBAAahB,KAAb,EAAoB;AAClB,WAAKU,QAAL,CAAcV,KAAd,GAAsBA,KAAtB;AAEA,WAAKY,aAAL,CAAmB,IAAIM,oCAAJ,CAAwB,KAAKJ,OAAL,CAAaC,WAAb,EAAxB,EAAoDX,UAAU,CAACJ,KAAD,CAA9D,CAAnB;AACD;;;WAED,6BAAoB;AAClB,WAAKmB,YAAL,CAAkB,YAAlB,EAAgC,2BAAhC;AACA,WAAKA,YAAL,CAAkB,MAAlB,EAA0B,QAA1B;AAEA,WAAKH,MAAL;AACD;;;WAED,kBAAS;AAAA;;AACP,UAAI,KAAKP,MAAL,IAAe,KAAKC,QAAxB,EAAkC;AAChC,YAAIU,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,gBAApB,EAA0B;AACnCC,UAAAA,KAAK,EAAE,KAAKf,MADuB;AAEnCgB,UAAAA,OAAO,EAAE,KAAKf,QAFqB;AAGnCgB,UAAAA,QAAQ,EAAE,KAAKC,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB;AAHyB,SAA1B,CAAX;;AAMAC,6BAASb,MAAT,CAAgBI,IAAhB,EAAsB,IAAtB,EAA4B,YAAM;AAChC,mDAAW,MAAX;AACD,SAFD;AAGD;AACF;;;kDAhDgDU,W","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { renderMath } from '@pie-lib/pie-toolbox/math-rendering-accessible';\n\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\nimport debug from 'debug';\n\nconst log = debug('@pie-ui:extended-text-entry');\n\nconst domParser = typeof window !== undefined ? new DOMParser() : { parseFromString: (v) => v };\n\nexport function textContent(value) {\n if (typeof value !== 'string') {\n return undefined;\n }\n try {\n const document = domParser.parseFromString(value, 'text/html');\n const textContent = document.body.textContent;\n return textContent;\n } catch (err) {\n log('tried to parse as dom and failed', value);\n return value;\n }\n}\n\nexport function isComplete(value) {\n const tc = textContent(value);\n const out = tc !== undefined && tc.length > 0;\n return out;\n}\n\nexport default class RootExtendedTextEntry extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), false, !!this._model));\n\n this.render();\n }\n\n set session(s) {\n this._session = s;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n handleChange(value) {\n this._session.value = value;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(value)));\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Written Response Question');\n this.setAttribute('role', 'region');\n\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onChange: this.handleChange.bind(this),\n });\n\n ReactDOM.render(elem, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
|
package/lib/main.js
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.Main = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
24
|
+
var _react = _interopRequireDefault(require("react"));
|
|
25
|
+
|
|
26
|
+
var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
|
|
27
|
+
|
|
28
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
+
|
|
30
|
+
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
31
|
+
|
|
32
|
+
var _styles = require("@material-ui/core/styles");
|
|
33
|
+
|
|
34
|
+
var _debug = _interopRequireDefault(require("debug"));
|
|
35
|
+
|
|
36
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
37
|
+
|
|
38
|
+
var _renderUi = require("@pie-lib/pie-toolbox/render-ui");
|
|
39
|
+
|
|
40
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
41
|
+
|
|
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); }; }
|
|
43
|
+
|
|
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; } }
|
|
45
|
+
|
|
46
|
+
var log = (0, _debug["default"])('@pie-ui:extended-text-entry');
|
|
47
|
+
|
|
48
|
+
var style = function style(theme) {
|
|
49
|
+
return {
|
|
50
|
+
main: {
|
|
51
|
+
backgroundColor: _renderUi.color.background(),
|
|
52
|
+
color: _renderUi.color.text()
|
|
53
|
+
},
|
|
54
|
+
prompt: {
|
|
55
|
+
width: '100%',
|
|
56
|
+
color: _renderUi.color.text(),
|
|
57
|
+
marginBottom: theme.spacing.unit * 2,
|
|
58
|
+
fontSize: 'inherit'
|
|
59
|
+
},
|
|
60
|
+
teacherInstructions: {
|
|
61
|
+
marginBottom: theme.spacing.unit * 2
|
|
62
|
+
},
|
|
63
|
+
editor: {
|
|
64
|
+
marginBottom: theme.spacing.unit * 2,
|
|
65
|
+
borderRadius: '4px'
|
|
66
|
+
},
|
|
67
|
+
srOnly: {
|
|
68
|
+
position: 'absolute',
|
|
69
|
+
left: '-10000px',
|
|
70
|
+
top: 'auto',
|
|
71
|
+
width: '1px',
|
|
72
|
+
height: '1px',
|
|
73
|
+
overflow: 'hidden'
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var Main = /*#__PURE__*/function (_React$Component) {
|
|
79
|
+
(0, _inherits2["default"])(Main, _React$Component);
|
|
80
|
+
|
|
81
|
+
var _super = _createSuper(Main);
|
|
82
|
+
|
|
83
|
+
function Main() {
|
|
84
|
+
var _this;
|
|
85
|
+
|
|
86
|
+
(0, _classCallCheck2["default"])(this, Main);
|
|
87
|
+
|
|
88
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
89
|
+
args[_key] = arguments[_key];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
93
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSession", (0, _debounce["default"])(_this.props.onChange, 1500));
|
|
94
|
+
return _this;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
(0, _createClass2["default"])(Main, [{
|
|
98
|
+
key: "render",
|
|
99
|
+
value: function render() {
|
|
100
|
+
var _this2 = this;
|
|
101
|
+
|
|
102
|
+
var _this$props = this.props,
|
|
103
|
+
model = _this$props.model,
|
|
104
|
+
classes = _this$props.classes,
|
|
105
|
+
session = _this$props.session;
|
|
106
|
+
var dimensions = model.dimensions,
|
|
107
|
+
disabled = model.disabled,
|
|
108
|
+
feedback = model.feedback,
|
|
109
|
+
teacherInstructions = model.teacherInstructions,
|
|
110
|
+
mathInput = model.mathInput,
|
|
111
|
+
spanishInput = model.spanishInput,
|
|
112
|
+
specialInput = model.specialInput,
|
|
113
|
+
animationsDisabled = model.animationsDisabled,
|
|
114
|
+
playersToolbarPosition = model.playersToolbarPosition,
|
|
115
|
+
spellCheckEnabled = model.spellCheckEnabled;
|
|
116
|
+
var value = session.value;
|
|
117
|
+
|
|
118
|
+
var _ref = dimensions || {},
|
|
119
|
+
width = _ref.width,
|
|
120
|
+
height = _ref.height;
|
|
121
|
+
|
|
122
|
+
var maxHeight = '40vh';
|
|
123
|
+
var toolbarOpts = {
|
|
124
|
+
position: playersToolbarPosition === 'top' ? 'top' : 'bottom'
|
|
125
|
+
};
|
|
126
|
+
log('[render] disabled? ', disabled);
|
|
127
|
+
|
|
128
|
+
var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
129
|
+
defaultClassName: "teacher-instructions",
|
|
130
|
+
prompt: teacherInstructions
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
var languageCharactersProps = [];
|
|
134
|
+
|
|
135
|
+
if (spanishInput) {
|
|
136
|
+
languageCharactersProps.push({
|
|
137
|
+
language: 'spanish'
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (specialInput) {
|
|
142
|
+
languageCharactersProps.push({
|
|
143
|
+
language: 'special'
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
148
|
+
className: classes.main,
|
|
149
|
+
ref: function ref(_ref2) {
|
|
150
|
+
_this2.containerRef = _ref2;
|
|
151
|
+
}
|
|
152
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", {
|
|
153
|
+
className: classes.srOnly
|
|
154
|
+
}, "Constructed Response Question"), teacherInstructions && /*#__PURE__*/_react["default"].createElement("div", {
|
|
155
|
+
className: classes.teacherInstructions
|
|
156
|
+
}, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
|
|
157
|
+
labels: {
|
|
158
|
+
hidden: 'Show Teacher Instructions',
|
|
159
|
+
visible: 'Hide Teacher Instructions'
|
|
160
|
+
},
|
|
161
|
+
className: classes.collapsible
|
|
162
|
+
}, teacherInstructionsDiv) : teacherInstructionsDiv), model.prompt && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
163
|
+
component: 'span',
|
|
164
|
+
className: classes.prompt
|
|
165
|
+
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
166
|
+
defaultClassName: "prompt",
|
|
167
|
+
prompt: model.prompt
|
|
168
|
+
})), /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
|
|
169
|
+
className: (0, _classnames["default"])(classes.editor, 'response-area-editor'),
|
|
170
|
+
onChange: this.changeSession,
|
|
171
|
+
markup: value || '',
|
|
172
|
+
width: width && width.toString(),
|
|
173
|
+
minHeight: height && height.toString(),
|
|
174
|
+
maxHeight: maxHeight,
|
|
175
|
+
disabled: disabled,
|
|
176
|
+
highlightShape: true,
|
|
177
|
+
toolbarOpts: toolbarOpts,
|
|
178
|
+
spellCheck: spellCheckEnabled,
|
|
179
|
+
pluginProps: {
|
|
180
|
+
math: {
|
|
181
|
+
disabled: !mathInput,
|
|
182
|
+
customKeys: this.props.model.customKeys,
|
|
183
|
+
keypadMode: this.props.model.equationEditor,
|
|
184
|
+
controlledKeypadMode: false
|
|
185
|
+
},
|
|
186
|
+
video: {
|
|
187
|
+
disabled: true
|
|
188
|
+
},
|
|
189
|
+
audio: {
|
|
190
|
+
disabled: true
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
languageCharactersProps: languageCharactersProps
|
|
194
|
+
}), feedback && /*#__PURE__*/_react["default"].createElement(_renderUi.Feedback, {
|
|
195
|
+
correctness: "correct",
|
|
196
|
+
feedback: feedback
|
|
197
|
+
}));
|
|
198
|
+
}
|
|
199
|
+
}]);
|
|
200
|
+
return Main;
|
|
201
|
+
}(_react["default"].Component);
|
|
202
|
+
|
|
203
|
+
exports.Main = Main;
|
|
204
|
+
(0, _defineProperty2["default"])(Main, "propTypes", {
|
|
205
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
206
|
+
model: _propTypes["default"].object,
|
|
207
|
+
classes: _propTypes["default"].object.isRequired,
|
|
208
|
+
session: _propTypes["default"].shape({
|
|
209
|
+
value: _propTypes["default"].string
|
|
210
|
+
}).isRequired
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
var _default = (0, _styles.withStyles)(style)(Main);
|
|
214
|
+
|
|
215
|
+
exports["default"] = _default;
|
|
216
|
+
//# sourceMappingURL=main.js.map
|