@pie-element/extended-text-entry 10.1.2 → 10.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/configure/CHANGELOG.md +18 -0
- package/configure/lib/main.js +3 -9
- package/configure/lib/main.js.map +1 -1
- package/configure/package.json +2 -2
- package/controller/CHANGELOG.md +13 -0
- package/controller/package.json +2 -2
- package/lib/main.js +2 -2
- package/lib/main.js.map +1 -1
- package/module/configure.js +6206 -0
- package/module/controller.js +248 -0
- package/module/demo.js +37 -0
- package/module/element.js +5969 -0
- package/module/index.html +21 -0
- package/module/manifest.json +10 -0
- package/module/print-demo.js +75 -0
- package/module/print.html +18 -0
- package/module/print.js +5926 -0
- package/package.json +3 -3
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
var feedback$1 = {};
|
|
2
|
+
|
|
3
|
+
var feedback = {};
|
|
4
|
+
|
|
5
|
+
var interopRequireDefault = {exports: {}};
|
|
6
|
+
|
|
7
|
+
(function (module) {
|
|
8
|
+
function _interopRequireDefault(obj) {
|
|
9
|
+
return obj && obj.__esModule ? obj : {
|
|
10
|
+
"default": obj
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
15
|
+
}(interopRequireDefault));
|
|
16
|
+
|
|
17
|
+
var defineProperty = {exports: {}};
|
|
18
|
+
|
|
19
|
+
(function (module) {
|
|
20
|
+
function _defineProperty(obj, key, value) {
|
|
21
|
+
if (key in obj) {
|
|
22
|
+
Object.defineProperty(obj, key, {
|
|
23
|
+
value: value,
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true
|
|
27
|
+
});
|
|
28
|
+
} else {
|
|
29
|
+
obj[key] = value;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return obj;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
|
|
36
|
+
}(defineProperty));
|
|
37
|
+
|
|
38
|
+
var _interopRequireDefault = interopRequireDefault.exports;
|
|
39
|
+
|
|
40
|
+
Object.defineProperty(feedback, "__esModule", {
|
|
41
|
+
value: true
|
|
42
|
+
});
|
|
43
|
+
feedback.getFeedbackForCorrectness = feedback.getFeedback = feedback.defaults = void 0;
|
|
44
|
+
|
|
45
|
+
var _defineProperty2 = _interopRequireDefault(defineProperty.exports);
|
|
46
|
+
|
|
47
|
+
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; }
|
|
48
|
+
|
|
49
|
+
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; }
|
|
50
|
+
|
|
51
|
+
var defaults$1 = {
|
|
52
|
+
correct: {
|
|
53
|
+
type: 'default',
|
|
54
|
+
"default": 'Correct',
|
|
55
|
+
custom: 'Correct'
|
|
56
|
+
},
|
|
57
|
+
incorrect: {
|
|
58
|
+
type: 'default',
|
|
59
|
+
"default": 'Incorrect',
|
|
60
|
+
custom: 'Incorrect'
|
|
61
|
+
},
|
|
62
|
+
partial: {
|
|
63
|
+
type: 'default',
|
|
64
|
+
"default": 'Nearly',
|
|
65
|
+
custom: 'Nearly'
|
|
66
|
+
},
|
|
67
|
+
unanswered: {
|
|
68
|
+
type: 'default',
|
|
69
|
+
"default": 'You have not entered a response',
|
|
70
|
+
custom: 'You have not entered a response'
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* @typedef {Object} FeedbackConfig
|
|
75
|
+
* @property {'default'|'none'|'custom'} type
|
|
76
|
+
* @property {string} default
|
|
77
|
+
* @property {string} custom
|
|
78
|
+
*
|
|
79
|
+
* @typedef {Object} Feedback
|
|
80
|
+
* @property {FeedbackConfig} correct
|
|
81
|
+
* @property {FeedbackConfig} incorrect
|
|
82
|
+
* @property {FeedbackConfig} partial
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
feedback.defaults = defaults$1;
|
|
86
|
+
|
|
87
|
+
var normalizeCorrectness = function normalizeCorrectness(c) {
|
|
88
|
+
if (c === 'partially-correct') {
|
|
89
|
+
return 'partial';
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return c;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Get the feedback for the correctness
|
|
96
|
+
*
|
|
97
|
+
* @param {'correct'|'incorrect'|'partial'} correctness
|
|
98
|
+
* @param {Feedback} feedback
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
var getFeedbackForCorrectness = function getFeedbackForCorrectness(correctness, feedback) {
|
|
103
|
+
return new Promise(function (resolve) {
|
|
104
|
+
feedback = _objectSpread(_objectSpread({}, defaults$1), feedback);
|
|
105
|
+
correctness = normalizeCorrectness(correctness);
|
|
106
|
+
var fb = feedback[correctness] || defaults$1[correctness] || {};
|
|
107
|
+
var d = defaults$1[correctness] || {};
|
|
108
|
+
getFeedback(fb, d[fb.type || 'default']).then(function (result) {
|
|
109
|
+
return resolve(result);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Get the feedback from a {FeedbackConfig}
|
|
115
|
+
*
|
|
116
|
+
* @param {FeedbackConfig} feedback
|
|
117
|
+
* @param {string} fallback
|
|
118
|
+
*/
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
feedback.getFeedbackForCorrectness = getFeedbackForCorrectness;
|
|
122
|
+
|
|
123
|
+
var getFeedback = function getFeedback(feedback, fallback) {
|
|
124
|
+
return new Promise(function (resolve) {
|
|
125
|
+
if (!feedback || feedback.type === 'none') {
|
|
126
|
+
resolve(undefined);
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
feedback = feedback || {};
|
|
131
|
+
var out = feedback[feedback.type] || fallback;
|
|
132
|
+
resolve(out);
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
feedback.getFeedback = getFeedback;
|
|
137
|
+
|
|
138
|
+
(function (exports) {
|
|
139
|
+
|
|
140
|
+
Object.defineProperty(exports, "__esModule", {
|
|
141
|
+
value: true
|
|
142
|
+
});
|
|
143
|
+
Object.defineProperty(exports, "defaults", {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
get: function get() {
|
|
146
|
+
return _feedback.defaults;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
Object.defineProperty(exports, "getFeedback", {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
get: function get() {
|
|
152
|
+
return _feedback.getFeedback;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
Object.defineProperty(exports, "getFeedbackForCorrectness", {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
get: function get() {
|
|
158
|
+
return _feedback.getFeedbackForCorrectness;
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
var _feedback = feedback;
|
|
163
|
+
|
|
164
|
+
}(feedback$1));
|
|
165
|
+
|
|
166
|
+
var defaults = {
|
|
167
|
+
dimensions: {
|
|
168
|
+
height: 100,
|
|
169
|
+
width: 500,
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
async function createDefaultModel(model = {}) {
|
|
174
|
+
|
|
175
|
+
return {
|
|
176
|
+
...defaults,
|
|
177
|
+
...model,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
const normalize = (question) => ({
|
|
182
|
+
...defaults,
|
|
183
|
+
feedbackEnabled: false,
|
|
184
|
+
rationaleEnabled: true,
|
|
185
|
+
promptEnabled: true,
|
|
186
|
+
teacherInstructionsEnabled: true,
|
|
187
|
+
studentInstructionsEnabled: true,
|
|
188
|
+
playerSpellCheckDisabled: true,
|
|
189
|
+
...question,
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
async function model(question, session, env) {
|
|
193
|
+
const normalizedQuestion = normalize(question);
|
|
194
|
+
|
|
195
|
+
const fb =
|
|
196
|
+
env.mode === 'evaluate' && normalizedQuestion.feedbackEnabled
|
|
197
|
+
? feedback$1.getFeedback(normalizedQuestion.feedback, 'Your answer has been submitted')
|
|
198
|
+
: Promise.resolve(undefined);
|
|
199
|
+
|
|
200
|
+
let teacherInstructions = null;
|
|
201
|
+
if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
|
|
202
|
+
teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
|
|
203
|
+
} else {
|
|
204
|
+
teacherInstructions = null;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
let equationEditor = normalizedQuestion.equationEditor || 'miscellaneous';
|
|
208
|
+
|
|
209
|
+
switch (normalizedQuestion.equationEditor) {
|
|
210
|
+
case 'Grade 1 - 2':
|
|
211
|
+
equationEditor = 1;
|
|
212
|
+
break;
|
|
213
|
+
case 'Grade 3 - 5':
|
|
214
|
+
equationEditor = 3;
|
|
215
|
+
break;
|
|
216
|
+
case 'Grade 6 - 7':
|
|
217
|
+
equationEditor = 6;
|
|
218
|
+
break;
|
|
219
|
+
case 'Grade 8 - HS':
|
|
220
|
+
equationEditor = 8;
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
return fb.then((feedback) => ({
|
|
225
|
+
prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
|
|
226
|
+
dimensions: normalizedQuestion.dimensions,
|
|
227
|
+
customKeys: normalizedQuestion.customKeys || [],
|
|
228
|
+
disabled: env.mode !== 'gather',
|
|
229
|
+
feedback,
|
|
230
|
+
teacherInstructions,
|
|
231
|
+
mathInput: normalizedQuestion.mathInput,
|
|
232
|
+
spanishInput: normalizedQuestion.spanishInput,
|
|
233
|
+
specialInput: normalizedQuestion.specialInput,
|
|
234
|
+
equationEditor,
|
|
235
|
+
spellCheckEnabled: !normalizedQuestion.playerSpellCheckDisabled,
|
|
236
|
+
playersToolbarPosition: normalizedQuestion.playersToolbarPosition || 'bottom',
|
|
237
|
+
}));
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
async function outcome(/*question, session, env*/) {
|
|
241
|
+
return {
|
|
242
|
+
score: 0,
|
|
243
|
+
completed: 'n/a',
|
|
244
|
+
note: 'Requires manual scoring',
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
export { createDefaultModel, model, normalize, outcome };
|
package/module/demo.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import Configure from './configure.js';
|
|
2
|
+
import Element from './element.js';
|
|
3
|
+
import * as controller from './controller.js';
|
|
4
|
+
|
|
5
|
+
var generate = {};
|
|
6
|
+
|
|
7
|
+
generate.model = (id, element) => ({
|
|
8
|
+
id,
|
|
9
|
+
element,
|
|
10
|
+
customKeys: ['\\square'],
|
|
11
|
+
feedback: { type: 'default', default: 'this is default feedback' },
|
|
12
|
+
prompt: 'This is the question prompt',
|
|
13
|
+
promptEnabled: true,
|
|
14
|
+
mathInput: true,
|
|
15
|
+
playersToolbarPosition: 'bottom',
|
|
16
|
+
toolbarEditorPosition: 'bottom',
|
|
17
|
+
spellCheckEnabled: true,
|
|
18
|
+
rubricEnabled: false,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const { model } = generate;
|
|
22
|
+
var config = {
|
|
23
|
+
elements: {
|
|
24
|
+
'extended-text-entry': '../..',
|
|
25
|
+
},
|
|
26
|
+
models: [model('1', 'extended-text-entry')],
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
//Note: demo-el is a custom element loaded in the markup.
|
|
30
|
+
customElements.whenDefined("demo-el").then(() => {
|
|
31
|
+
config.models.forEach((m) => {
|
|
32
|
+
const de = document.createElement("demo-el");
|
|
33
|
+
document.body.appendChild(de);
|
|
34
|
+
de.def = { tagName: m.element, Element, Configure, controller };
|
|
35
|
+
de.model = m;
|
|
36
|
+
});
|
|
37
|
+
});
|