@pie-element/passage 5.0.1-next.0 → 5.0.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 +3 -3
- package/controller/package.json +1 -1
- package/esm/configure.js +12854 -0
- package/esm/configure.js.map +1 -0
- package/esm/controller.js +159 -0
- package/esm/controller.js.map +1 -0
- package/esm/element.js +12700 -0
- package/esm/element.js.map +1 -0
- package/esm/print.js +12709 -0
- package/esm/print.js.map +1 -0
- package/module/element.js +1 -1
- package/module/index.html +1 -1
- package/module/manifest.json +1 -1
- package/module/print.html +1 -1
- package/module/print.js +1 -1
- package/package.json +24 -6
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import isEmpty from 'lodash/isEmpty';
|
|
2
|
+
|
|
3
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
4
|
+
try {
|
|
5
|
+
var info = gen[key](arg);
|
|
6
|
+
var value = info.value;
|
|
7
|
+
} catch (error) {
|
|
8
|
+
reject(error);
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
if (info.done) {
|
|
13
|
+
resolve(value);
|
|
14
|
+
} else {
|
|
15
|
+
Promise.resolve(value).then(_next, _throw);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function _asyncToGenerator(fn) {
|
|
20
|
+
return function () {
|
|
21
|
+
var self = this,
|
|
22
|
+
args = arguments;
|
|
23
|
+
return new Promise(function (resolve, reject) {
|
|
24
|
+
var gen = fn.apply(self, args);
|
|
25
|
+
|
|
26
|
+
function _next(value) {
|
|
27
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function _throw(err) {
|
|
31
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
_next(undefined);
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function _defineProperty(obj, key, value) {
|
|
40
|
+
if (key in obj) {
|
|
41
|
+
Object.defineProperty(obj, key, {
|
|
42
|
+
value: value,
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true
|
|
46
|
+
});
|
|
47
|
+
} else {
|
|
48
|
+
obj[key] = value;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return obj;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// TODO: also update '../../configure/src/defaults.js' and '../../src/print.js' when updating defaults
|
|
55
|
+
var defaults = {
|
|
56
|
+
authorEnabled: false,
|
|
57
|
+
// TODO: should be set to true when all Studio content is updated
|
|
58
|
+
passages: [{
|
|
59
|
+
teacherInstructions: '',
|
|
60
|
+
title: '',
|
|
61
|
+
subtitle: '',
|
|
62
|
+
author: '',
|
|
63
|
+
text: ''
|
|
64
|
+
}],
|
|
65
|
+
subtitleEnabled: true,
|
|
66
|
+
teacherInstructionsEnabled: true,
|
|
67
|
+
textEnabled: true,
|
|
68
|
+
titleEnabled: true
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
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; }
|
|
72
|
+
|
|
73
|
+
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) { _defineProperty(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; }
|
|
74
|
+
|
|
75
|
+
var getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
|
|
76
|
+
|
|
77
|
+
var checkNullish = value => value !== null && value !== undefined;
|
|
78
|
+
|
|
79
|
+
var isEnabled = (value, defaultValue) => checkNullish(value) ? value : defaultValue;
|
|
80
|
+
|
|
81
|
+
function createDefaultModel() {
|
|
82
|
+
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
83
|
+
return new Promise(resolve => {
|
|
84
|
+
resolve(_objectSpread(_objectSpread({}, defaults), model));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
var normalize = question => _objectSpread(_objectSpread({}, defaults), question);
|
|
88
|
+
|
|
89
|
+
var normalizeTeacherInstructions = (instructions, env) => {
|
|
90
|
+
var {
|
|
91
|
+
role,
|
|
92
|
+
mode
|
|
93
|
+
} = env;
|
|
94
|
+
|
|
95
|
+
if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
|
|
96
|
+
return instructions || '';
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return '';
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
*
|
|
103
|
+
* @param {*} question
|
|
104
|
+
* @param {*} session
|
|
105
|
+
* @param {*} env
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
function model(_x, _x2, _x3) {
|
|
110
|
+
return _model.apply(this, arguments);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function _model() {
|
|
114
|
+
_model = _asyncToGenerator(function* (question, session, env) {
|
|
115
|
+
var normalizedQuestion = normalize(question);
|
|
116
|
+
var normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({
|
|
117
|
+
teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled) ? normalizeTeacherInstructions(passage.teacherInstructions, env) : '',
|
|
118
|
+
label: getContent(passage.title) ? passage.title : "Passage ".concat(index + 1),
|
|
119
|
+
title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',
|
|
120
|
+
subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',
|
|
121
|
+
author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',
|
|
122
|
+
text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : ''
|
|
123
|
+
}));
|
|
124
|
+
return _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
|
|
125
|
+
passages: normalizedPassages
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
return _model.apply(this, arguments);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
var validate = function validate() {
|
|
132
|
+
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
133
|
+
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
134
|
+
var errors = {};
|
|
135
|
+
var passagesErrors = {};
|
|
136
|
+
(model.passages || []).forEach((passage, index) => {
|
|
137
|
+
var err = {};
|
|
138
|
+
['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach(field => {
|
|
139
|
+
var _config$field;
|
|
140
|
+
|
|
141
|
+
if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(passage[field])) {
|
|
142
|
+
err[field] = 'This field is required.';
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
if (!isEmpty(err)) {
|
|
147
|
+
passagesErrors[index] = err;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
if (!isEmpty(passagesErrors)) {
|
|
152
|
+
errors.passages = passagesErrors;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return errors;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
export { createDefaultModel, model, normalize, validate };
|
|
159
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../controller/src/defaults.js","../controller/src/index.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","// TODO: also update '../../configure/src/defaults.js' and '../../src/print.js' when updating defaults\nexport default {\n authorEnabled: false, // TODO: should be set to true when all Studio content is updated\n passages: [\n {\n teacherInstructions: '',\n title: '',\n subtitle: '',\n author: '',\n text: '',\n },\n ],\n subtitleEnabled: true,\n teacherInstructionsEnabled: true,\n textEnabled: true,\n titleEnabled: true,\n};\n","import isEmpty from 'lodash/isEmpty';\n\nimport defaults from './defaults';\n\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nconst checkNullish = (value) => value !== null && value !== undefined;\n\nconst isEnabled = (value, defaultValue) => (checkNullish(value) ? value : defaultValue);\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({ ...defaults, ...model });\n });\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nconst normalizeTeacherInstructions = (instructions, env) => {\n const { role, mode } = env;\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n return instructions || '';\n }\n\n return '';\n};\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({\n teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled)\n ? normalizeTeacherInstructions(passage.teacherInstructions, env)\n : '',\n label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,\n title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',\n subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',\n author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',\n text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : '',\n }));\n\n return {\n ...normalizedQuestion,\n passages: normalizedPassages,\n };\n}\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n const passagesErrors = {};\n\n (model.passages || []).forEach((passage, index) => {\n const err = {};\n\n ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach((field) => {\n if (config[field]?.required && !getContent(passage[field])) {\n err[field] = 'This field is required.';\n }\n });\n\n if (!isEmpty(err)) {\n passagesErrors[index] = err;\n }\n });\n\n if (!isEmpty(passagesErrors)) {\n errors.passages = passagesErrors;\n }\n\n return errors;\n};\n"],"names":["authorEnabled","passages","teacherInstructions","title","subtitle","author","text","subtitleEnabled","teacherInstructionsEnabled","textEnabled","titleEnabled","getContent","html","replace","checkNullish","value","undefined","isEnabled","defaultValue","createDefaultModel","model","Promise","resolve","defaults","normalize","question","normalizeTeacherInstructions","instructions","env","role","mode","session","normalizedQuestion","normalizedPassages","map","passage","index","label","validate","config","errors","passagesErrors","forEach","err","field","required","isEmpty"],"mappings":"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"}
|