@pie-element/select-text 8.4.1-next.42 → 8.4.1-next.43

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.
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var tokens = function tokens() {
9
+ return [{
10
+ text: '',
11
+ start: 0,
12
+ end: 0
13
+ }];
14
+ };
15
+
16
+ var _default = {
17
+ model: {
18
+ highlightChoices: false,
19
+ partialScoring: false,
20
+ maxSelections: 2,
21
+ mode: 'sentence',
22
+ prompt: 'Question Prompt goes here',
23
+ text: '',
24
+ tokens: tokens(),
25
+ scoringType: 'auto',
26
+ feedbackEnabled: false,
27
+ rationaleEnabled: true,
28
+ promptEnabled: true,
29
+ teacherInstructionsEnabled: true,
30
+ studentInstructionsEnabled: true,
31
+ toolbarEditorPosition: 'bottom'
32
+ },
33
+ configuration: {
34
+ baseInputConfiguration: {
35
+ audio: {
36
+ disabled: false
37
+ },
38
+ video: {
39
+ disabled: false
40
+ },
41
+ image: {
42
+ disabled: false
43
+ }
44
+ },
45
+ selectionCount: {
46
+ settings: true,
47
+ label: 'Selection count'
48
+ },
49
+ correctAnswer: {
50
+ settings: true,
51
+ label: 'Correct Answers'
52
+ },
53
+ selections: {
54
+ settings: true,
55
+ label: 'Selections Available'
56
+ },
57
+ highlightChoices: {
58
+ settings: true,
59
+ label: 'Highlight choices'
60
+ },
61
+ rationale: {
62
+ settings: true,
63
+ label: 'Rationale',
64
+ inputConfiguration: {
65
+ audio: {
66
+ disabled: false
67
+ },
68
+ video: {
69
+ disabled: false
70
+ },
71
+ image: {
72
+ disabled: false
73
+ }
74
+ }
75
+ },
76
+ scoringType: {
77
+ settings: false,
78
+ label: 'Scoring Type'
79
+ },
80
+ studentInstructions: {
81
+ settings: false,
82
+ label: 'Student Instructions'
83
+ },
84
+ teacherInstructions: {
85
+ settings: true,
86
+ label: 'Teacher Instructions',
87
+ inputConfiguration: {
88
+ audio: {
89
+ disabled: false
90
+ },
91
+ video: {
92
+ disabled: false
93
+ },
94
+ image: {
95
+ disabled: false
96
+ }
97
+ }
98
+ },
99
+ prompt: {
100
+ label: 'Prompt',
101
+ settings: true,
102
+ inputConfiguration: {
103
+ audio: {
104
+ disabled: false
105
+ },
106
+ video: {
107
+ disabled: false
108
+ },
109
+ image: {
110
+ disabled: false
111
+ }
112
+ }
113
+ },
114
+ text: {
115
+ settings: true,
116
+ label: 'Content'
117
+ },
118
+ tokens: {
119
+ settings: true,
120
+ label: 'Tokens'
121
+ },
122
+ feedback: {
123
+ settings: true,
124
+ label: 'Feedback'
125
+ },
126
+ spellCheck: {
127
+ label: 'Spellcheck',
128
+ settings: false,
129
+ enabled: true
130
+ },
131
+ partialScoring: {
132
+ settings: false,
133
+ label: 'Allow Partial Scoring'
134
+ },
135
+ mode: {
136
+ settings: true,
137
+ label: 'Mode'
138
+ },
139
+ minTokens: 2,
140
+ maxImageWidth: {
141
+ teacherInstructions: 300,
142
+ prompt: 300,
143
+ rationale: 300
144
+ },
145
+ maxImageHeight: {
146
+ teacherInstructions: 300,
147
+ prompt: 300,
148
+ rationale: 300
149
+ },
150
+ withRubric: {
151
+ settings: false,
152
+ label: 'Add Rubric'
153
+ },
154
+ mathMlOptions: {
155
+ mmlOutput: false,
156
+ mmlEditing: false
157
+ },
158
+ language: {
159
+ settings: false,
160
+ label: 'Specify Language',
161
+ enabled: false
162
+ },
163
+ languageChoices: {
164
+ label: 'Language Choices',
165
+ options: []
166
+ }
167
+ }
168
+ };
169
+ exports["default"] = _default;
170
+ //# sourceMappingURL=defaultConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/defaultConfiguration.js"],"names":["tokens","text","start","end","model","highlightChoices","partialScoring","maxSelections","mode","prompt","scoringType","feedbackEnabled","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","baseInputConfiguration","audio","disabled","video","image","selectionCount","settings","label","correctAnswer","selections","rationale","inputConfiguration","studentInstructions","teacherInstructions","feedback","spellCheck","enabled","minTokens","maxImageWidth","maxImageHeight","withRubric","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options"],"mappings":"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","sourcesContent":["const tokens = () => [\n {\n text: '',\n start: 0,\n end: 0,\n },\n];\n\nexport default {\n model: {\n highlightChoices: false,\n partialScoring: false,\n maxSelections: 2,\n mode: 'sentence',\n prompt: 'Question Prompt goes here',\n text: '',\n tokens: tokens(),\n scoringType: 'auto',\n feedbackEnabled: false,\n rationaleEnabled: true,\n promptEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n selectionCount: {\n settings: true,\n label: 'Selection count',\n },\n correctAnswer: {\n settings: true,\n label: 'Correct Answers',\n },\n selections: {\n settings: true,\n label: 'Selections Available',\n },\n highlightChoices: {\n settings: true,\n label: 'Highlight choices',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n prompt: {\n label: 'Prompt',\n settings: true,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n text: {\n settings: true,\n label: 'Content',\n },\n tokens: {\n settings: true,\n label: 'Tokens',\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n mode: {\n settings: true,\n label: 'Mode',\n },\n minTokens: 2,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n"],"file":"defaultConfiguration.js"}
@@ -0,0 +1,492 @@
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.Design = 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 _propTypes = _interopRequireDefault(require("prop-types"));
27
+
28
+ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
29
+
30
+ var _styles = require("@material-ui/core/styles");
31
+
32
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
33
+
34
+ var _debounce = _interopRequireDefault(require("lodash/debounce"));
35
+
36
+ var _textSelect = require("@pie-lib/pie-toolbox/text-select");
37
+
38
+ var _configUi = require("@pie-lib/pie-toolbox/config-ui");
39
+
40
+ var _Chip = _interopRequireDefault(require("@material-ui/core/Chip"));
41
+
42
+ var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
43
+
44
+ var _debug = _interopRequireDefault(require("debug"));
45
+
46
+ var _editableHtml = require("@pie-lib/pie-toolbox/editable-html");
47
+
48
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
49
+
50
+ var _utils = require("./utils");
51
+
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; }
53
+
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; }
55
+
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); }; }
57
+
58
+ 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; } }
59
+
60
+ var Panel = _configUi.settings.Panel,
61
+ toggle = _configUi.settings.toggle,
62
+ radio = _configUi.settings.radio,
63
+ dropdown = _configUi.settings.dropdown;
64
+ var log = (0, _debug["default"])('@pie-element:select-text:configure');
65
+
66
+ var Design = /*#__PURE__*/function (_React$Component) {
67
+ (0, _inherits2["default"])(Design, _React$Component);
68
+
69
+ var _super = _createSuper(Design);
70
+
71
+ function Design(props) {
72
+ var _this;
73
+
74
+ (0, _classCallCheck2["default"])(this, Design);
75
+ _this = _super.call(this, props);
76
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateText", (0, _debounce["default"])(function (val) {
77
+ _this.apply(function (u) {
78
+ u.text = val;
79
+ u.tokens = [];
80
+ });
81
+ }, 200));
82
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeText", function (event) {
83
+ return _this.updateText(event.target.value);
84
+ });
85
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTokens", function (tokens, mode) {
86
+ _this.apply(function (u) {
87
+ u.tokens = tokens;
88
+ u.mode = mode;
89
+ var correctTokenCount = tokens.filter(function (t) {
90
+ return t.correct;
91
+ }).length;
92
+ var max = isFinite(u.maxSelections) ? u.maxSelections : 0;
93
+ u.maxSelections = Math.max(max, correctTokenCount);
94
+ });
95
+ });
96
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMaxSelections", function (event, max) {
97
+ _this.apply(function (u) {
98
+ return u.maxSelections = max;
99
+ });
100
+ });
101
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "apply", function (fn) {
102
+ var _this$props = _this.props,
103
+ onModelChanged = _this$props.onModelChanged,
104
+ model = _this$props.model;
105
+ var update = (0, _cloneDeep["default"])(model);
106
+ fn(update);
107
+ onModelChanged(update);
108
+ });
109
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeFeedback", function (feedback) {
110
+ _this.apply(function (u) {
111
+ return u.feedback = feedback;
112
+ });
113
+ });
114
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changePartialScoring", function (partialScoring) {
115
+ var _this$props2 = _this.props,
116
+ onModelChanged = _this$props2.onModelChanged,
117
+ model = _this$props2.model;
118
+ var update = (0, _cloneDeep["default"])(model);
119
+ update.partialScoring = partialScoring;
120
+ onModelChanged(update);
121
+ });
122
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPromptChanged", function (prompt) {
123
+ var _this$props3 = _this.props,
124
+ onModelChanged = _this$props3.onModelChanged,
125
+ model = _this$props3.model;
126
+ var update = (0, _cloneDeep["default"])(model);
127
+ update.prompt = prompt;
128
+ onModelChanged(update);
129
+ });
130
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTeacherInstructionsChanged", function (teacherInstructions) {
131
+ var _this$props4 = _this.props,
132
+ onModelChanged = _this$props4.onModelChanged,
133
+ model = _this$props4.model;
134
+ var update = (0, _cloneDeep["default"])(model);
135
+ update.teacherInstructions = teacherInstructions;
136
+ onModelChanged(update);
137
+ });
138
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRationaleChanged", function (rationale) {
139
+ var _this$props5 = _this.props,
140
+ onModelChanged = _this$props5.onModelChanged,
141
+ model = _this$props5.model;
142
+ onModelChanged(_objectSpread(_objectSpread({}, model), {}, {
143
+ rationale: rationale
144
+ }));
145
+ });
146
+ var _model = _this.props.model;
147
+ _this.state = {
148
+ text: _model && _model.text || ''
149
+ };
150
+ return _this;
151
+ }
152
+
153
+ (0, _createClass2["default"])(Design, [{
154
+ key: "UNSAFE_componentWillReceiveProps",
155
+ value: function UNSAFE_componentWillReceiveProps(nProps) {
156
+ var model = nProps.model;
157
+
158
+ if (model && model.text) {
159
+ this.setState({
160
+ text: model.text
161
+ });
162
+ }
163
+ }
164
+ }, {
165
+ key: "render",
166
+ value: function render() {
167
+ var _configuration$teache, _configuration$prompt, _configuration$ration;
168
+
169
+ var textValue = this.state.text;
170
+ var _this$props6 = this.props,
171
+ classes = _this$props6.classes,
172
+ configuration = _this$props6.configuration,
173
+ imageSupport = _this$props6.imageSupport,
174
+ model = _this$props6.model,
175
+ onConfigurationChanged = _this$props6.onConfigurationChanged,
176
+ onModelChanged = _this$props6.onModelChanged,
177
+ uploadSoundSupport = _this$props6.uploadSoundSupport;
178
+
179
+ var _ref = configuration || {},
180
+ _ref$baseInputConfigu = _ref.baseInputConfiguration,
181
+ baseInputConfiguration = _ref$baseInputConfigu === void 0 ? {} : _ref$baseInputConfigu,
182
+ _ref$correctAnswer = _ref.correctAnswer,
183
+ correctAnswer = _ref$correctAnswer === void 0 ? {} : _ref$correctAnswer,
184
+ _ref$contentDimension = _ref.contentDimensions,
185
+ contentDimensions = _ref$contentDimension === void 0 ? {} : _ref$contentDimension,
186
+ _ref$feedback = _ref.feedback,
187
+ feedback = _ref$feedback === void 0 ? {} : _ref$feedback,
188
+ _ref$highlightChoices = _ref.highlightChoices,
189
+ highlightChoices = _ref$highlightChoices === void 0 ? {} : _ref$highlightChoices,
190
+ _ref$mode = _ref.mode,
191
+ mode = _ref$mode === void 0 ? {} : _ref$mode,
192
+ _ref$partialScoring = _ref.partialScoring,
193
+ partialScoring = _ref$partialScoring === void 0 ? {} : _ref$partialScoring,
194
+ _ref$prompt = _ref.prompt,
195
+ prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
196
+ _ref$rationale = _ref.rationale,
197
+ rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
198
+ _ref$selectionCount = _ref.selectionCount,
199
+ selectionCount = _ref$selectionCount === void 0 ? {} : _ref$selectionCount,
200
+ _ref$selections = _ref.selections,
201
+ selections = _ref$selections === void 0 ? {} : _ref$selections,
202
+ settingsPanelDisabled = _ref.settingsPanelDisabled,
203
+ _ref$scoringType = _ref.scoringType,
204
+ scoringType = _ref$scoringType === void 0 ? {} : _ref$scoringType,
205
+ _ref$spellCheck = _ref.spellCheck,
206
+ spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
207
+ _ref$studentInstructi = _ref.studentInstructions,
208
+ studentInstructions = _ref$studentInstructi === void 0 ? {} : _ref$studentInstructi,
209
+ _ref$teacherInstructi = _ref.teacherInstructions,
210
+ teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
211
+ _ref$text = _ref.text,
212
+ text = _ref$text === void 0 ? {} : _ref$text,
213
+ _ref$tokens = _ref.tokens,
214
+ tokens = _ref$tokens === void 0 ? {} : _ref$tokens,
215
+ _ref$maxImageWidth = _ref.maxImageWidth,
216
+ maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
217
+ _ref$maxImageHeight = _ref.maxImageHeight,
218
+ maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
219
+ _ref$withRubric = _ref.withRubric,
220
+ withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric,
221
+ _ref$mathMlOptions = _ref.mathMlOptions,
222
+ mathMlOptions = _ref$mathMlOptions === void 0 ? {} : _ref$mathMlOptions,
223
+ _ref$language = _ref.language,
224
+ language = _ref$language === void 0 ? {} : _ref$language,
225
+ _ref$languageChoices = _ref.languageChoices,
226
+ languageChoices = _ref$languageChoices === void 0 ? {} : _ref$languageChoices;
227
+
228
+ var _ref2 = model || {},
229
+ errors = _ref2.errors,
230
+ feedbackEnabled = _ref2.feedbackEnabled,
231
+ promptEnabled = _ref2.promptEnabled,
232
+ rationaleEnabled = _ref2.rationaleEnabled,
233
+ spellCheckEnabled = _ref2.spellCheckEnabled,
234
+ teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
235
+ toolbarEditorPosition = _ref2.toolbarEditorPosition;
236
+
237
+ var _ref3 = errors || {},
238
+ tokensError = _ref3.tokensError,
239
+ selectionsError = _ref3.selectionsError;
240
+
241
+ var validationMessage = (0, _utils.generateValidationMessage)(configuration);
242
+ var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
243
+ var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
244
+ var tokensModel = model.tokens;
245
+ tokensModel = tokensModel || [];
246
+ var toolbarOpts = {
247
+ position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
248
+ };
249
+ log('[render] maxSelections:', model.maxSelections);
250
+ var panelSettings = {
251
+ partialScoring: partialScoring.settings && toggle(partialScoring.label),
252
+ highlightChoices: highlightChoices.settings && toggle(highlightChoices.label),
253
+ feedbackEnabled: feedback.settings && toggle(feedback.label),
254
+ 'language.enabled': language.settings && toggle(language.label, true),
255
+ language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options)
256
+ };
257
+ var panelProperties = {
258
+ teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
259
+ studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),
260
+ promptEnabled: prompt.settings && toggle(prompt.label),
261
+ rationaleEnabled: rationale.settings && toggle(rationale.label),
262
+ spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
263
+ scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),
264
+ rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
265
+ };
266
+
267
+ var getPluginProps = function getPluginProps(props) {
268
+ return Object.assign(_objectSpread({}, baseInputConfiguration), props || {});
269
+ };
270
+
271
+ return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
272
+ dimensions: contentDimensions,
273
+ hideSettings: settingsPanelDisabled,
274
+ settings: /*#__PURE__*/_react["default"].createElement(Panel, {
275
+ model: model,
276
+ configuration: configuration,
277
+ onChangeModel: function onChangeModel(model) {
278
+ return onModelChanged(model);
279
+ },
280
+ onChangeConfiguration: onConfigurationChanged,
281
+ groups: {
282
+ Settings: panelSettings,
283
+ Properties: panelProperties
284
+ }
285
+ })
286
+ }, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
287
+ label: teacherInstructions.label,
288
+ className: classes.promptHolder
289
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
290
+ className: classes.prompt,
291
+ markup: model.teacherInstructions || '',
292
+ onChange: this.onTeacherInstructionsChanged,
293
+ imageSupport: imageSupport,
294
+ nonEmpty: false,
295
+ toolbarOpts: toolbarOpts,
296
+ pluginProps: getPluginProps(configuration === null || configuration === void 0 ? void 0 : (_configuration$teache = configuration.teacherInstructions) === null || _configuration$teache === void 0 ? void 0 : _configuration$teache.inputConfiguration),
297
+ spellCheck: spellCheckEnabled,
298
+ maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
299
+ maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
300
+ uploadSoundSupport: uploadSoundSupport,
301
+ languageCharactersProps: [{
302
+ language: 'spanish'
303
+ }, {
304
+ language: 'special'
305
+ }],
306
+ mathMlOptions: mathMlOptions
307
+ })), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
308
+ label: prompt.label || '',
309
+ className: classes.promptHolder
310
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
311
+ className: classes.prompt,
312
+ markup: model.prompt,
313
+ onChange: this.onPromptChanged,
314
+ imageSupport: imageSupport,
315
+ toolbarOpts: toolbarOpts,
316
+ pluginProps: getPluginProps(configuration === null || configuration === void 0 ? void 0 : (_configuration$prompt = configuration.prompt) === null || _configuration$prompt === void 0 ? void 0 : _configuration$prompt.inputConfiguration),
317
+ spellCheck: spellCheckEnabled,
318
+ maxImageWidth: defaultImageMaxWidth,
319
+ maxImageHeight: defaultImageMaxHeight,
320
+ uploadSoundSupport: uploadSoundSupport,
321
+ languageCharactersProps: [{
322
+ language: 'spanish'
323
+ }, {
324
+ language: 'special'
325
+ }],
326
+ mathMlOptions: mathMlOptions
327
+ })), text.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
328
+ label: text.label || '',
329
+ className: classes.promptHolder
330
+ }, /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
331
+ className: classes.input,
332
+ multiline: true,
333
+ defaultValue: textValue,
334
+ onChange: this.changeText,
335
+ spellCheck: spellCheckEnabled
336
+ })), tokens.settings && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
337
+ label: tokens.label || '',
338
+ className: classes.tokenizerContainer
339
+ }, /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
340
+ classes: {
341
+ tooltip: classes.tooltip
342
+ },
343
+ disableFocusListener: true,
344
+ disableTouchListener: true,
345
+ placement: 'right',
346
+ title: validationMessage
347
+ }, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
348
+ fontSize: 'small',
349
+ color: 'primary',
350
+ style: {
351
+ position: 'absolute',
352
+ left: '48px',
353
+ top: '-3px'
354
+ }
355
+ })), /*#__PURE__*/_react["default"].createElement(_textSelect.Tokenizer, {
356
+ className: classes.tokenizer,
357
+ text: model.text,
358
+ tokens: tokensModel,
359
+ onChange: this.changeTokens
360
+ })), tokensError && /*#__PURE__*/_react["default"].createElement("div", {
361
+ className: classes.errorText
362
+ }, tokensError), selectionsError && /*#__PURE__*/_react["default"].createElement("div", {
363
+ className: classes.errorText
364
+ }, selectionsError), /*#__PURE__*/_react["default"].createElement("div", {
365
+ className: classes.tokensDetails
366
+ }, mode.settings && /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
367
+ label: "".concat(mode.label, ": ").concat(model.mode ? model.mode : 'None'),
368
+ className: classes.chip
369
+ }), selections.settings && /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
370
+ label: "".concat(selections.label, ": ").concat(tokensModel.length),
371
+ className: classes.chip
372
+ }), correctAnswer.settings && /*#__PURE__*/_react["default"].createElement(_Chip["default"], {
373
+ label: "".concat(correctAnswer.label, ": ").concat(tokensModel.filter(function (t) {
374
+ return t.correct;
375
+ }).length),
376
+ className: classes.chip
377
+ }), selectionCount.settings && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextField, {
378
+ min: tokensModel.filter(function (t) {
379
+ return t.correct;
380
+ }).length || 0,
381
+ label: "".concat(selectionCount.label, " (0:any)"),
382
+ max: tokensModel.length,
383
+ value: model.maxSelections,
384
+ onChange: this.changeMaxSelections,
385
+ className: classes.numberField
386
+ })), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
387
+ label: rationale.label || '',
388
+ className: classes.promptHolder
389
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml.EditableHtml, {
390
+ className: classes.prompt,
391
+ markup: model.rationale || '',
392
+ onChange: this.onRationaleChanged,
393
+ imageSupport: imageSupport,
394
+ toolbarOpts: toolbarOpts,
395
+ pluginProps: getPluginProps(configuration === null || configuration === void 0 ? void 0 : (_configuration$ration = configuration.rationale) === null || _configuration$ration === void 0 ? void 0 : _configuration$ration.inputConfiguration),
396
+ spellCheck: spellCheckEnabled,
397
+ maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
398
+ maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
399
+ uploadSoundSupport: uploadSoundSupport,
400
+ languageCharactersProps: [{
401
+ language: 'spanish'
402
+ }, {
403
+ language: 'special'
404
+ }],
405
+ mathMlOptions: mathMlOptions
406
+ })), feedbackEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.FeedbackConfig, {
407
+ feedback: model.feedback,
408
+ onChange: this.changeFeedback,
409
+ toolbarOpts: toolbarOpts
410
+ }));
411
+ }
412
+ }]);
413
+ return Design;
414
+ }(_react["default"].Component);
415
+
416
+ exports.Design = Design;
417
+ (0, _defineProperty2["default"])(Design, "propTypes", {
418
+ model: _propTypes["default"].object.isRequired,
419
+ configuration: _propTypes["default"].object.isRequired,
420
+ classes: _propTypes["default"].object.isRequired,
421
+ onModelChanged: _propTypes["default"].func.isRequired,
422
+ onConfigurationChanged: _propTypes["default"].func.isRequired,
423
+ imageSupport: _propTypes["default"].shape({
424
+ add: _propTypes["default"].func.isRequired,
425
+ "delete": _propTypes["default"].func.isRequired
426
+ }),
427
+ uploadSoundSupport: _propTypes["default"].object
428
+ });
429
+ (0, _defineProperty2["default"])(Design, "defaultProps", {});
430
+
431
+ var _default = (0, _styles.withStyles)(function (theme) {
432
+ return {
433
+ tokenizerContainer: {
434
+ paddingRight: 0,
435
+ marginRight: 0,
436
+ '&:after': {
437
+ position: 'absolute',
438
+ bottom: 0,
439
+ left: 0,
440
+ right: 0,
441
+ height: '1px',
442
+ content: '""',
443
+ backgroundColor: theme.palette.primary.main
444
+ },
445
+ marginBottom: theme.spacing.unit
446
+ },
447
+ chip: {
448
+ marginTop: theme.spacing.unit / 2,
449
+ marginRight: theme.spacing.unit * 2
450
+ },
451
+ input: {
452
+ width: '100%'
453
+ },
454
+ tokenizer: {
455
+ marginTop: theme.spacing.unit * 2
456
+ },
457
+ mainOpts: {
458
+ width: '100%',
459
+ justifyContent: 'space-between',
460
+ display: 'flex',
461
+ alignItems: 'baseline'
462
+ },
463
+ promptHolder: {
464
+ width: '100%',
465
+ paddingTop: theme.spacing.unit * 2,
466
+ marginBottom: theme.spacing.unit * 2
467
+ },
468
+ tokensDetails: {
469
+ display: 'flex',
470
+ alignItems: 'center',
471
+ flexWrap: 'wrap',
472
+ marginBottom: theme.spacing.unit * 2.5
473
+ },
474
+ numberField: {
475
+ width: '180px',
476
+ margin: "".concat(theme.spacing.unit / 2, "px auto 0")
477
+ },
478
+ tooltip: {
479
+ fontSize: theme.typography.fontSize - 2,
480
+ whiteSpace: 'pre',
481
+ maxWidth: '500px'
482
+ },
483
+ errorText: {
484
+ fontSize: theme.typography.fontSize - 2,
485
+ color: theme.palette.error.main,
486
+ paddingBottom: theme.spacing.unit
487
+ }
488
+ };
489
+ })(Design);
490
+
491
+ exports["default"] = _default;
492
+ //# sourceMappingURL=design.js.map