@pie-element/drag-in-the-blank 4.6.0 → 4.6.1-beta.1
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/package.json +24 -6
- package/controller/package.json +2 -2
- package/package.json +9 -7
- package/configure/lib/choice.js +0 -126
- package/configure/lib/choice.js.map +0 -1
- package/configure/lib/choices.js +0 -350
- package/configure/lib/choices.js.map +0 -1
- package/configure/lib/defaults.js +0 -77
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js +0 -179
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -413
- package/configure/lib/main.js.map +0 -1
- package/configure/lib/markupUtils.js +0 -105
- package/configure/lib/markupUtils.js.map +0 -1
- package/controller/lib/defaults.js +0 -14
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -277
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/utils.js +0 -53
- package/controller/lib/utils.js.map +0 -1
- package/lib/index.js +0 -106
- package/lib/index.js.map +0 -1
- package/lib/main.js +0 -156
- package/lib/main.js.map +0 -1
package/configure/lib/main.js
DELETED
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports["default"] = exports.Main = void 0;
|
|
11
|
-
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
-
|
|
18
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
-
|
|
22
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
-
|
|
24
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
|
-
var _react = _interopRequireDefault(require("react"));
|
|
27
|
-
|
|
28
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
29
|
-
|
|
30
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
-
|
|
32
|
-
var _editableHtml = _interopRequireWildcard(require("@pie-lib/editable-html"));
|
|
33
|
-
|
|
34
|
-
var _configUi = require("@pie-lib/config-ui");
|
|
35
|
-
|
|
36
|
-
var _drag = require("@pie-lib/drag");
|
|
37
|
-
|
|
38
|
-
var _mathRendering = require("@pie-lib/math-rendering");
|
|
39
|
-
|
|
40
|
-
var _styles = require("@material-ui/core/styles");
|
|
41
|
-
|
|
42
|
-
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
43
|
-
|
|
44
|
-
var _Info = _interopRequireDefault(require("@material-ui/icons/Info"));
|
|
45
|
-
|
|
46
|
-
var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
|
|
47
|
-
|
|
48
|
-
var _choices = _interopRequireDefault(require("./choices"));
|
|
49
|
-
|
|
50
|
-
var _markupUtils = require("./markupUtils");
|
|
51
|
-
|
|
52
|
-
var _utils = require("../utils");
|
|
53
|
-
|
|
54
|
-
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); }
|
|
55
|
-
|
|
56
|
-
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; }
|
|
57
|
-
|
|
58
|
-
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; }
|
|
59
|
-
|
|
60
|
-
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; }
|
|
61
|
-
|
|
62
|
-
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); }; }
|
|
63
|
-
|
|
64
|
-
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; } }
|
|
65
|
-
|
|
66
|
-
var dropdown = _configUi.settings.dropdown,
|
|
67
|
-
toggle = _configUi.settings.toggle,
|
|
68
|
-
Panel = _configUi.settings.Panel;
|
|
69
|
-
|
|
70
|
-
var styles = function styles(theme) {
|
|
71
|
-
return {
|
|
72
|
-
promptHolder: {
|
|
73
|
-
width: '100%',
|
|
74
|
-
paddingBottom: theme.spacing.unit * 2,
|
|
75
|
-
marginBottom: theme.spacing.unit * 2
|
|
76
|
-
},
|
|
77
|
-
prompt: {
|
|
78
|
-
paddingTop: theme.spacing.unit * 2,
|
|
79
|
-
width: '100%'
|
|
80
|
-
},
|
|
81
|
-
markup: {
|
|
82
|
-
minHeight: '235px',
|
|
83
|
-
paddingTop: theme.spacing.unit * 2,
|
|
84
|
-
width: '100%',
|
|
85
|
-
'& [data-slate-editor="true"]': {
|
|
86
|
-
minHeight: '235px'
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
design: {
|
|
90
|
-
paddingTop: theme.spacing.unit * 3
|
|
91
|
-
},
|
|
92
|
-
choiceConfiguration: {
|
|
93
|
-
paddingTop: theme.spacing.unit * 2,
|
|
94
|
-
paddingBottom: theme.spacing.unit * 2
|
|
95
|
-
},
|
|
96
|
-
switchElement: {
|
|
97
|
-
justifyContent: 'space-between',
|
|
98
|
-
margin: 0
|
|
99
|
-
},
|
|
100
|
-
addButton: {
|
|
101
|
-
"float": 'right'
|
|
102
|
-
},
|
|
103
|
-
text: {
|
|
104
|
-
fontFamily: 'Cerebri Sans',
|
|
105
|
-
fontSize: theme.typography.fontSize + 2,
|
|
106
|
-
lineHeight: '19px',
|
|
107
|
-
color: '#495B8F'
|
|
108
|
-
},
|
|
109
|
-
tooltip: {
|
|
110
|
-
fontSize: theme.typography.fontSize - 2,
|
|
111
|
-
whiteSpace: 'pre',
|
|
112
|
-
maxWidth: '500px'
|
|
113
|
-
},
|
|
114
|
-
errorText: {
|
|
115
|
-
fontSize: theme.typography.fontSize - 2,
|
|
116
|
-
color: 'red',
|
|
117
|
-
paddingTop: theme.spacing.unit
|
|
118
|
-
},
|
|
119
|
-
flexContainer: {
|
|
120
|
-
display: 'flex',
|
|
121
|
-
alignItems: 'end'
|
|
122
|
-
}
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
var Main = /*#__PURE__*/function (_React$Component) {
|
|
127
|
-
(0, _inherits2["default"])(Main, _React$Component);
|
|
128
|
-
|
|
129
|
-
var _super = _createSuper(Main);
|
|
130
|
-
|
|
131
|
-
function Main() {
|
|
132
|
-
var _this;
|
|
133
|
-
|
|
134
|
-
(0, _classCallCheck2["default"])(this, Main);
|
|
135
|
-
|
|
136
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
137
|
-
args[_key] = arguments[_key];
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
141
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {});
|
|
142
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChange", function (newVal) {
|
|
143
|
-
_this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), newVal));
|
|
144
|
-
});
|
|
145
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onPromptChanged", function (prompt) {
|
|
146
|
-
_this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
147
|
-
prompt: prompt
|
|
148
|
-
}));
|
|
149
|
-
});
|
|
150
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRationaleChanged", function (rationale) {
|
|
151
|
-
_this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
152
|
-
rationale: rationale
|
|
153
|
-
}));
|
|
154
|
-
});
|
|
155
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onTeacherInstructionsChanged", function (teacherInstructions) {
|
|
156
|
-
_this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
157
|
-
teacherInstructions: teacherInstructions
|
|
158
|
-
}));
|
|
159
|
-
});
|
|
160
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onMarkupChanged", function (slateMarkup) {
|
|
161
|
-
_this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
162
|
-
slateMarkup: slateMarkup
|
|
163
|
-
}));
|
|
164
|
-
});
|
|
165
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResponsesChanged", function (choices) {
|
|
166
|
-
var _this$props$model = _this.props.model,
|
|
167
|
-
correctResponse = _this$props$model.correctResponse,
|
|
168
|
-
markup = _this$props$model.markup;
|
|
169
|
-
var slateMarkup = (0, _markupUtils.createSlateMarkup)(markup, choices, correctResponse);
|
|
170
|
-
|
|
171
|
-
_this.props.onModelChanged(_objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
172
|
-
slateMarkup: slateMarkup,
|
|
173
|
-
choices: choices
|
|
174
|
-
}));
|
|
175
|
-
});
|
|
176
|
-
return _this;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
(0, _createClass2["default"])(Main, [{
|
|
180
|
-
key: "componentDidUpdate",
|
|
181
|
-
value: function componentDidUpdate() {
|
|
182
|
-
// eslint-disable-next-line
|
|
183
|
-
var domNode = _reactDom["default"].findDOMNode(this);
|
|
184
|
-
|
|
185
|
-
(0, _mathRendering.renderMath)(domNode);
|
|
186
|
-
}
|
|
187
|
-
}, {
|
|
188
|
-
key: "render",
|
|
189
|
-
value: function render() {
|
|
190
|
-
var _this2 = this;
|
|
191
|
-
|
|
192
|
-
var _this$props = this.props,
|
|
193
|
-
classes = _this$props.classes,
|
|
194
|
-
model = _this$props.model,
|
|
195
|
-
configuration = _this$props.configuration,
|
|
196
|
-
onConfigurationChanged = _this$props.onConfigurationChanged,
|
|
197
|
-
imageSupport = _this$props.imageSupport,
|
|
198
|
-
uploadSoundSupport = _this$props.uploadSoundSupport;
|
|
199
|
-
|
|
200
|
-
var _ref = configuration || {},
|
|
201
|
-
_ref$duplicates = _ref.duplicates,
|
|
202
|
-
duplicates = _ref$duplicates === void 0 ? {} : _ref$duplicates,
|
|
203
|
-
_ref$prompt = _ref.prompt,
|
|
204
|
-
prompt = _ref$prompt === void 0 ? {} : _ref$prompt,
|
|
205
|
-
_ref$partialScoring = _ref.partialScoring,
|
|
206
|
-
partialScoring = _ref$partialScoring === void 0 ? {} : _ref$partialScoring,
|
|
207
|
-
_ref$lockChoiceOrder = _ref.lockChoiceOrder,
|
|
208
|
-
lockChoiceOrder = _ref$lockChoiceOrder === void 0 ? {} : _ref$lockChoiceOrder,
|
|
209
|
-
_ref$rationale = _ref.rationale,
|
|
210
|
-
rationale = _ref$rationale === void 0 ? {} : _ref$rationale,
|
|
211
|
-
_ref$teacherInstructi = _ref.teacherInstructions,
|
|
212
|
-
teacherInstructions = _ref$teacherInstructi === void 0 ? {} : _ref$teacherInstructi,
|
|
213
|
-
_ref$choicesPosition = _ref.choicesPosition,
|
|
214
|
-
choicesPosition = _ref$choicesPosition === void 0 ? {} : _ref$choicesPosition,
|
|
215
|
-
_ref$spellCheck = _ref.spellCheck,
|
|
216
|
-
spellCheck = _ref$spellCheck === void 0 ? {} : _ref$spellCheck,
|
|
217
|
-
settingsPanelDisabled = _ref.settingsPanelDisabled,
|
|
218
|
-
maxChoices = _ref.maxChoices,
|
|
219
|
-
maxResponseAreas = _ref.maxResponseAreas,
|
|
220
|
-
_ref$maxImageWidth = _ref.maxImageWidth,
|
|
221
|
-
maxImageWidth = _ref$maxImageWidth === void 0 ? {} : _ref$maxImageWidth,
|
|
222
|
-
_ref$maxImageHeight = _ref.maxImageHeight,
|
|
223
|
-
maxImageHeight = _ref$maxImageHeight === void 0 ? {} : _ref$maxImageHeight,
|
|
224
|
-
_ref$withRubric = _ref.withRubric,
|
|
225
|
-
withRubric = _ref$withRubric === void 0 ? {} : _ref$withRubric;
|
|
226
|
-
|
|
227
|
-
var _ref2 = model || {},
|
|
228
|
-
rationaleEnabled = _ref2.rationaleEnabled,
|
|
229
|
-
promptEnabled = _ref2.promptEnabled,
|
|
230
|
-
teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
|
|
231
|
-
spellCheckEnabled = _ref2.spellCheckEnabled,
|
|
232
|
-
toolbarEditorPosition = _ref2.toolbarEditorPosition,
|
|
233
|
-
errors = _ref2.errors;
|
|
234
|
-
|
|
235
|
-
var _ref3 = errors || {},
|
|
236
|
-
responseAreasError = _ref3.responseAreasError,
|
|
237
|
-
choicesError = _ref3.choicesError,
|
|
238
|
-
correctResponseError = _ref3.correctResponseError;
|
|
239
|
-
|
|
240
|
-
var validationMessage = (0, _utils.generateValidationMessage)(configuration);
|
|
241
|
-
var defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
|
|
242
|
-
var defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
|
|
243
|
-
var toolbarOpts = {
|
|
244
|
-
position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
|
|
245
|
-
};
|
|
246
|
-
var panelSettings = {
|
|
247
|
-
partialScoring: partialScoring.settings && toggle(partialScoring.label),
|
|
248
|
-
duplicates: duplicates.settings && toggle(duplicates.label),
|
|
249
|
-
lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),
|
|
250
|
-
choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right'])
|
|
251
|
-
};
|
|
252
|
-
var panelProperties = {
|
|
253
|
-
teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),
|
|
254
|
-
rationaleEnabled: rationale.settings && toggle(rationale.label),
|
|
255
|
-
spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),
|
|
256
|
-
promptEnabled: prompt.settings && toggle(prompt.label),
|
|
257
|
-
rubricEnabled: (withRubric === null || withRubric === void 0 ? void 0 : withRubric.settings) && toggle(withRubric === null || withRubric === void 0 ? void 0 : withRubric.label)
|
|
258
|
-
};
|
|
259
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
260
|
-
className: classes.design
|
|
261
|
-
}, /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
|
|
262
|
-
hideSettings: settingsPanelDisabled,
|
|
263
|
-
settings: /*#__PURE__*/_react["default"].createElement(Panel, {
|
|
264
|
-
model: model,
|
|
265
|
-
configuration: configuration,
|
|
266
|
-
onChangeModel: function onChangeModel(model) {
|
|
267
|
-
return _this2.onModelChange(model);
|
|
268
|
-
},
|
|
269
|
-
onChangeConfiguration: function onChangeConfiguration(configuration) {
|
|
270
|
-
return onConfigurationChanged(configuration, true);
|
|
271
|
-
},
|
|
272
|
-
groups: {
|
|
273
|
-
Settings: panelSettings,
|
|
274
|
-
Properties: panelProperties
|
|
275
|
-
}
|
|
276
|
-
})
|
|
277
|
-
}, /*#__PURE__*/_react["default"].createElement("div", null, teacherInstructionsEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
278
|
-
label: teacherInstructions.label,
|
|
279
|
-
className: classes.promptHolder
|
|
280
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
281
|
-
className: classes.prompt,
|
|
282
|
-
markup: model.teacherInstructions || '',
|
|
283
|
-
onChange: this.onTeacherInstructionsChanged,
|
|
284
|
-
imageSupport: imageSupport,
|
|
285
|
-
nonEmpty: false,
|
|
286
|
-
toolbarOpts: toolbarOpts,
|
|
287
|
-
spellCheck: spellCheckEnabled,
|
|
288
|
-
maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
|
|
289
|
-
maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
|
|
290
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
291
|
-
languageCharactersProps: [{
|
|
292
|
-
language: 'spanish'
|
|
293
|
-
}, {
|
|
294
|
-
language: 'special'
|
|
295
|
-
}]
|
|
296
|
-
})), promptEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
297
|
-
label: prompt.label,
|
|
298
|
-
className: classes.promptHolder
|
|
299
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
300
|
-
className: classes.prompt,
|
|
301
|
-
markup: model.prompt,
|
|
302
|
-
onChange: this.onPromptChanged,
|
|
303
|
-
imageSupport: imageSupport,
|
|
304
|
-
nonEmpty: false,
|
|
305
|
-
disableUnderline: true,
|
|
306
|
-
toolbarOpts: toolbarOpts,
|
|
307
|
-
spellCheck: spellCheckEnabled,
|
|
308
|
-
maxImageWidth: defaultImageMaxWidth,
|
|
309
|
-
maxImageHeight: defaultImageMaxHeight,
|
|
310
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
311
|
-
languageCharactersProps: [{
|
|
312
|
-
language: 'spanish'
|
|
313
|
-
}, {
|
|
314
|
-
language: 'special'
|
|
315
|
-
}]
|
|
316
|
-
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
317
|
-
className: classes.flexContainer
|
|
318
|
-
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
319
|
-
className: classes.text
|
|
320
|
-
}, "Define Template, Choices, and Correct Responses"), /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
|
|
321
|
-
classes: {
|
|
322
|
-
tooltip: classes.tooltip
|
|
323
|
-
},
|
|
324
|
-
disableFocusListener: true,
|
|
325
|
-
disableTouchListener: true,
|
|
326
|
-
placement: 'right',
|
|
327
|
-
title: validationMessage
|
|
328
|
-
}, /*#__PURE__*/_react["default"].createElement(_Info["default"], {
|
|
329
|
-
fontSize: 'small',
|
|
330
|
-
color: 'primary',
|
|
331
|
-
style: {
|
|
332
|
-
marginLeft: '5px'
|
|
333
|
-
}
|
|
334
|
-
}))), /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
335
|
-
activePlugins: _editableHtml.ALL_PLUGINS,
|
|
336
|
-
responseAreaProps: {
|
|
337
|
-
type: 'drag-in-the-blank',
|
|
338
|
-
options: {
|
|
339
|
-
duplicates: model.duplicates
|
|
340
|
-
},
|
|
341
|
-
maxResponseAreas: maxResponseAreas
|
|
342
|
-
},
|
|
343
|
-
className: classes.markup,
|
|
344
|
-
markup: model.slateMarkup,
|
|
345
|
-
onChange: this.onMarkupChanged,
|
|
346
|
-
imageSupport: imageSupport,
|
|
347
|
-
disableImageAlignmentButtons: true,
|
|
348
|
-
nonEmpty: false,
|
|
349
|
-
disableUnderline: true,
|
|
350
|
-
error: responseAreasError || correctResponseError,
|
|
351
|
-
toolbarOpts: toolbarOpts,
|
|
352
|
-
spellCheck: spellCheckEnabled,
|
|
353
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
354
|
-
languageCharactersProps: [{
|
|
355
|
-
language: 'spanish'
|
|
356
|
-
}, {
|
|
357
|
-
language: 'special'
|
|
358
|
-
}]
|
|
359
|
-
}), responseAreasError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
360
|
-
className: classes.errorText
|
|
361
|
-
}, responseAreasError), correctResponseError && /*#__PURE__*/_react["default"].createElement("div", {
|
|
362
|
-
className: classes.errorText
|
|
363
|
-
}, correctResponseError), /*#__PURE__*/_react["default"].createElement(_choices["default"], {
|
|
364
|
-
model: model,
|
|
365
|
-
duplicates: model.duplicates,
|
|
366
|
-
error: choicesError,
|
|
367
|
-
onChange: this.onResponsesChanged,
|
|
368
|
-
toolbarOpts: toolbarOpts,
|
|
369
|
-
maxChoices: maxChoices,
|
|
370
|
-
uploadSoundSupport: uploadSoundSupport
|
|
371
|
-
}), rationaleEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.InputContainer, {
|
|
372
|
-
label: rationale.label,
|
|
373
|
-
className: classes.promptHolder
|
|
374
|
-
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
375
|
-
className: classes.prompt,
|
|
376
|
-
markup: model.rationale || '',
|
|
377
|
-
onChange: this.onRationaleChanged,
|
|
378
|
-
imageSupport: imageSupport,
|
|
379
|
-
toolbarOpts: toolbarOpts,
|
|
380
|
-
spellCheck: spellCheckEnabled,
|
|
381
|
-
maxImageWidth: maxImageWidth && maxImageWidth.rationale || defaultImageMaxWidth,
|
|
382
|
-
maxImageHeight: maxImageHeight && maxImageHeight.rationale || defaultImageMaxHeight,
|
|
383
|
-
uploadSoundSupport: uploadSoundSupport,
|
|
384
|
-
languageCharactersProps: [{
|
|
385
|
-
language: 'spanish'
|
|
386
|
-
}, {
|
|
387
|
-
language: 'special'
|
|
388
|
-
}]
|
|
389
|
-
})))));
|
|
390
|
-
}
|
|
391
|
-
}]);
|
|
392
|
-
return Main;
|
|
393
|
-
}(_react["default"].Component);
|
|
394
|
-
|
|
395
|
-
exports.Main = Main;
|
|
396
|
-
(0, _defineProperty2["default"])(Main, "propTypes", {
|
|
397
|
-
configuration: _propTypes["default"].object.isRequired,
|
|
398
|
-
model: _propTypes["default"].object.isRequired,
|
|
399
|
-
disableSidePanel: _propTypes["default"].bool,
|
|
400
|
-
onModelChanged: _propTypes["default"].func.isRequired,
|
|
401
|
-
onConfigurationChanged: _propTypes["default"].func.isRequired,
|
|
402
|
-
classes: _propTypes["default"].object.isRequired,
|
|
403
|
-
imageSupport: _propTypes["default"].shape({
|
|
404
|
-
add: _propTypes["default"].func.isRequired,
|
|
405
|
-
"delete": _propTypes["default"].func.isRequired
|
|
406
|
-
})
|
|
407
|
-
});
|
|
408
|
-
var Styled = (0, _styles.withStyles)(styles)(Main);
|
|
409
|
-
|
|
410
|
-
var _default = (0, _drag.withDragContext)(Styled);
|
|
411
|
-
|
|
412
|
-
exports["default"] = _default;
|
|
413
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["dropdown","settings","toggle","Panel","styles","theme","promptHolder","width","paddingBottom","spacing","unit","marginBottom","prompt","paddingTop","markup","minHeight","design","choiceConfiguration","switchElement","justifyContent","margin","addButton","text","fontFamily","fontSize","typography","lineHeight","color","tooltip","whiteSpace","maxWidth","errorText","flexContainer","display","alignItems","Main","newVal","props","onModelChanged","model","rationale","teacherInstructions","slateMarkup","choices","correctResponse","domNode","ReactDOM","findDOMNode","classes","configuration","onConfigurationChanged","imageSupport","uploadSoundSupport","duplicates","partialScoring","lockChoiceOrder","choicesPosition","spellCheck","settingsPanelDisabled","maxChoices","maxResponseAreas","maxImageWidth","maxImageHeight","withRubric","rationaleEnabled","promptEnabled","teacherInstructionsEnabled","spellCheckEnabled","toolbarEditorPosition","errors","responseAreasError","choicesError","correctResponseError","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","toolbarOpts","position","panelSettings","label","panelProperties","rubricEnabled","onModelChange","Settings","Properties","onTeacherInstructionsChanged","language","onPromptChanged","marginLeft","ALL_PLUGINS","type","options","onMarkupChanged","onResponsesChanged","onRationaleChanged","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html';\nimport { InputContainer, layout, settings } from '@pie-lib/config-ui';\nimport { withDragContext } from '@pie-lib/drag';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nimport Choices from './choices';\nimport { createSlateMarkup } from './markupUtils';\nimport { generateValidationMessage } from '../utils';\nconst { dropdown, toggle, Panel } = settings;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingBottom: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n prompt: {\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n },\n markup: {\n minHeight: '235px',\n paddingTop: theme.spacing.unit * 2,\n width: '100%',\n '& [data-slate-editor=\"true\"]': {\n minHeight: '235px',\n },\n },\n design: {\n paddingTop: theme.spacing.unit * 3,\n },\n choiceConfiguration: {\n paddingTop: theme.spacing.unit * 2,\n paddingBottom: theme.spacing.unit * 2,\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0,\n },\n addButton: {\n float: 'right',\n },\n text: {\n fontFamily: 'Cerebri Sans',\n fontSize: theme.typography.fontSize + 2,\n lineHeight: '19px',\n color: '#495B8F',\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: 'red',\n paddingTop: theme.spacing.unit,\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'end',\n },\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n configuration: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = {};\n\n componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n onModelChange = (newVal) => {\n this.props.onModelChanged({\n ...this.props.model,\n ...newVal,\n });\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onRationaleChanged = (rationale) => {\n this.props.onModelChanged({\n ...this.props.model,\n rationale,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onMarkupChanged = (slateMarkup) => {\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n });\n };\n\n onResponsesChanged = (choices) => {\n const {\n model: { correctResponse, markup },\n } = this.props;\n const slateMarkup = createSlateMarkup(markup, choices, correctResponse);\n\n this.props.onModelChanged({\n ...this.props.model,\n slateMarkup,\n choices,\n });\n };\n\n render() {\n const { classes, model, configuration, onConfigurationChanged, imageSupport, uploadSoundSupport } = this.props;\n const {\n duplicates = {},\n prompt = {},\n partialScoring = {},\n lockChoiceOrder = {},\n rationale = {},\n teacherInstructions = {},\n choicesPosition = {},\n spellCheck = {},\n settingsPanelDisabled,\n maxChoices,\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n const {\n rationaleEnabled,\n promptEnabled,\n teacherInstructionsEnabled,\n spellCheckEnabled,\n toolbarEditorPosition,\n errors,\n } = model || {};\n\n const { responseAreasError, choicesError, correctResponseError } = errors || {};\n const validationMessage = generateValidationMessage(configuration);\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 partialScoring: partialScoring.settings && toggle(partialScoring.label),\n duplicates: duplicates.settings && toggle(duplicates.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n choicesPosition: choicesPosition.settings && dropdown(choicesPosition.label, ['above', 'below', 'left', 'right']),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <div className={classes.design}>\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => this.onModelChange(model)}\n onChangeConfiguration={(configuration) => onConfigurationChanged(configuration, true)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n <div>\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={this.onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\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 />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.text}>Define Template, Choices, and Correct Responses</Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n </div>\n\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n responseAreaProps={{\n type: 'drag-in-the-blank',\n options: {\n duplicates: model.duplicates,\n },\n maxResponseAreas: maxResponseAreas,\n }}\n className={classes.markup}\n markup={model.slateMarkup}\n onChange={this.onMarkupChanged}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n nonEmpty={false}\n disableUnderline\n error={responseAreasError || correctResponseError}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n\n <Choices\n model={model}\n duplicates={model.duplicates}\n error={choicesError}\n onChange={this.onResponsesChanged}\n toolbarOpts={toolbarOpts}\n maxChoices={maxChoices}\n uploadSoundSupport={uploadSoundSupport}\n />\n\n {rationaleEnabled && (\n <InputContainer label={rationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.rationale || ''}\n onChange={this.onRationaleChanged}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n </div>\n </layout.ConfigLayout>\n </div>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default withDragContext(Styled);\n"],"file":"main.js"}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.removeUnwantedCharacters = exports.processMarkup = exports.createSlateMarkup = exports.createElementFromHTML = exports.choiceIsEmpty = void 0;
|
|
9
|
-
|
|
10
|
-
var _escape = _interopRequireDefault(require("lodash/escape"));
|
|
11
|
-
|
|
12
|
-
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
13
|
-
|
|
14
|
-
var createElementFromHTML = function createElementFromHTML(htmlString) {
|
|
15
|
-
var div = document.createElement('div');
|
|
16
|
-
div.innerHTML = htmlString.trim();
|
|
17
|
-
return div;
|
|
18
|
-
}; // do not remove \t from \times, \triangle, \tan, \theta or \therefore
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
exports.createElementFromHTML = createElementFromHTML;
|
|
22
|
-
var tSymbols = 'imes|riangle|an|heta|herefore'; // do not remove \n from \nthroot, \nparallel, \ncong, \napprox, \neq, \ne or \nsim
|
|
23
|
-
|
|
24
|
-
var nSymbols = 'throot|parallel|cong|approx|eq|e|sim'; // match all \t and \n that are not part of math symbols that starts with \t or \n
|
|
25
|
-
|
|
26
|
-
var matchTabAndNewLine = new RegExp("(\\t(?!".concat(tSymbols, "))|(\\n(?!").concat(nSymbols, "))|(\\\\t(?!").concat(tSymbols, "))|(\\\\n(?!").concat(nSymbols, "))"), 'g');
|
|
27
|
-
|
|
28
|
-
var removeUnwantedCharacters = function removeUnwantedCharacters(markup) {
|
|
29
|
-
return markup.replace(matchTabAndNewLine, '').replace(/\\"/g, '"').replace(/\\\//g, '/');
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
exports.removeUnwantedCharacters = removeUnwantedCharacters;
|
|
33
|
-
|
|
34
|
-
var processMarkup = function processMarkup(markup) {
|
|
35
|
-
var newMarkup = removeUnwantedCharacters(markup);
|
|
36
|
-
var slateMarkup = createElementFromHTML(newMarkup);
|
|
37
|
-
var choices = [];
|
|
38
|
-
var index = 0;
|
|
39
|
-
slateMarkup.querySelectorAll('[data-type="drag_in_the_blank"]').forEach(function (s) {
|
|
40
|
-
var value = s.dataset.value && s.dataset.value.replace(/ /g, ' ').trim();
|
|
41
|
-
|
|
42
|
-
if (!value) {
|
|
43
|
-
value = '';
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
choices.push({
|
|
47
|
-
value: value,
|
|
48
|
-
id: s.dataset.id
|
|
49
|
-
});
|
|
50
|
-
s.replaceWith("{{".concat(index++, "}}"));
|
|
51
|
-
});
|
|
52
|
-
return {
|
|
53
|
-
markup: slateMarkup.innerHTML,
|
|
54
|
-
choices: choices,
|
|
55
|
-
correctResponse: choices.reduce(function (obj, c, index) {
|
|
56
|
-
obj[index] = !(0, _isUndefined["default"])(c.id) && c.id || '';
|
|
57
|
-
return obj;
|
|
58
|
-
}, {})
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
exports.processMarkup = processMarkup;
|
|
63
|
-
var REGEX = /\{\{(\d+)\}\}/g;
|
|
64
|
-
|
|
65
|
-
var createSlateMarkup = function createSlateMarkup(markup, choices, correctResponse) {
|
|
66
|
-
var newMarkup = removeUnwantedCharacters(markup);
|
|
67
|
-
var index = 0;
|
|
68
|
-
return newMarkup.replace(REGEX, function (match, g) {
|
|
69
|
-
var correctId = correctResponse[g];
|
|
70
|
-
var correctChoice = choices.find(function (c) {
|
|
71
|
-
return c.id === correctId;
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
if (!correctChoice || !correctChoice.value) {
|
|
75
|
-
correctChoice = {
|
|
76
|
-
id: '',
|
|
77
|
-
value: ''
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return "<span data-type=\"drag_in_the_blank\" data-index=\"".concat(index++, "\" data-id=\"").concat(correctChoice.id, "\" data-value=\"").concat((0, _escape["default"])(correctChoice.value), "\"></span>");
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
exports.createSlateMarkup = createSlateMarkup;
|
|
86
|
-
|
|
87
|
-
var choiceIsEmpty = function choiceIsEmpty(choice) {
|
|
88
|
-
if (choice) {
|
|
89
|
-
var _choice$value = choice.value,
|
|
90
|
-
value = _choice$value === void 0 ? '' : _choice$value;
|
|
91
|
-
var domEl = createElementFromHTML(value);
|
|
92
|
-
Array.from(domEl.querySelectorAll('*')).forEach(function (domEl) {
|
|
93
|
-
if (domEl.tagName !== 'IMG' && domEl.childNodes.length === 0) {
|
|
94
|
-
domEl.remove();
|
|
95
|
-
}
|
|
96
|
-
});
|
|
97
|
-
var newString = domEl.innerHTML.trim();
|
|
98
|
-
return newString === '';
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return false;
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
exports.choiceIsEmpty = choiceIsEmpty;
|
|
105
|
-
//# sourceMappingURL=markupUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/markupUtils.js"],"names":["createElementFromHTML","htmlString","div","document","createElement","innerHTML","trim","tSymbols","nSymbols","matchTabAndNewLine","RegExp","removeUnwantedCharacters","markup","replace","processMarkup","newMarkup","slateMarkup","choices","index","querySelectorAll","forEach","s","value","dataset","push","id","replaceWith","correctResponse","reduce","obj","c","REGEX","createSlateMarkup","match","g","correctId","correctChoice","find","choiceIsEmpty","choice","domEl","Array","from","tagName","childNodes","length","remove","newString"],"mappings":"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","sourcesContent":["import escape from 'lodash/escape';\nimport isUndefined from 'lodash/isUndefined';\n\nexport const createElementFromHTML = (htmlString) => {\n const div = document.createElement('div');\n\n div.innerHTML = htmlString.trim();\n\n return div;\n};\n\n// do not remove \\t from \\times, \\triangle, \\tan, \\theta or \\therefore\nconst tSymbols = 'imes|riangle|an|heta|herefore';\n// do not remove \\n from \\nthroot, \\nparallel, \\ncong, \\napprox, \\neq, \\ne or \\nsim\nconst nSymbols = 'throot|parallel|cong|approx|eq|e|sim';\n// match all \\t and \\n that are not part of math symbols that starts with \\t or \\n\nconst matchTabAndNewLine = new RegExp(\n `(\\\\t(?!${tSymbols}))|(\\\\n(?!${nSymbols}))|(\\\\\\\\t(?!${tSymbols}))|(\\\\\\\\n(?!${nSymbols}))`,\n 'g',\n);\n\nexport const removeUnwantedCharacters = (markup) =>\n markup.replace(matchTabAndNewLine, '').replace(/\\\\\"/g, '\"').replace(/\\\\\\//g, '/');\n\nexport const processMarkup = (markup) => {\n const newMarkup = removeUnwantedCharacters(markup);\n const slateMarkup = createElementFromHTML(newMarkup);\n const choices = [];\n let index = 0;\n\n slateMarkup.querySelectorAll('[data-type=\"drag_in_the_blank\"]').forEach((s) => {\n let value = s.dataset.value && s.dataset.value.replace(/ /g, ' ').trim();\n\n if (!value) {\n value = '';\n }\n\n choices.push({\n value,\n id: s.dataset.id,\n });\n\n s.replaceWith(`{{${index++}}}`);\n });\n\n return {\n markup: slateMarkup.innerHTML,\n choices: choices,\n correctResponse: choices.reduce((obj, c, index) => {\n obj[index] = (!isUndefined(c.id) && c.id) || '';\n\n return obj;\n }, {}),\n };\n};\n\nconst REGEX = /\\{\\{(\\d+)\\}\\}/g;\n\nexport const createSlateMarkup = (markup, choices, correctResponse) => {\n const newMarkup = removeUnwantedCharacters(markup);\n let index = 0;\n\n return newMarkup.replace(REGEX, (match, g) => {\n const correctId = correctResponse[g];\n let correctChoice = choices.find((c) => c.id === correctId);\n\n if (!correctChoice || !correctChoice.value) {\n correctChoice = {\n id: '',\n value: '',\n };\n }\n\n return `<span data-type=\"drag_in_the_blank\" data-index=\"${index++}\" data-id=\"${\n correctChoice.id\n }\" data-value=\"${escape(correctChoice.value)}\"></span>`;\n });\n};\n\nexport const choiceIsEmpty = (choice) => {\n if (choice) {\n const { value = '' } = choice;\n const domEl = createElementFromHTML(value);\n\n Array.from(domEl.querySelectorAll('*')).forEach((domEl) => {\n if (domEl.tagName !== 'IMG' && domEl.childNodes.length === 0) {\n domEl.remove();\n }\n });\n\n const newString = domEl.innerHTML.trim();\n\n return newString === '';\n }\n\n return false;\n};\n"],"file":"markupUtils.js"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _default = {
|
|
8
|
-
prompt: 'Which of these northern European countries are EU members?',
|
|
9
|
-
choiceMode: 'checkbox',
|
|
10
|
-
choicePrefix: 'numbers',
|
|
11
|
-
choices: []
|
|
12
|
-
};
|
|
13
|
-
exports["default"] = _default;
|
|
14
|
-
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["prompt","choiceMode","choicePrefix","choices"],"mappings":";;;;;;eAAe;AACbA,EAAAA,MAAM,EAAE,4DADK;AAEbC,EAAAA,UAAU,EAAE,UAFC;AAGbC,EAAAA,YAAY,EAAE,SAHD;AAIbC,EAAAA,OAAO,EAAE;AAJI,C","sourcesContent":["export default {\n prompt: 'Which of these northern European countries are EU members?',\n choiceMode: 'checkbox',\n choicePrefix: 'numbers',\n choices: [],\n};\n"],"file":"defaults.js"}
|