@pie-element/drawing-response 10.0.1-next.0 → 10.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.
@@ -0,0 +1,108 @@
1
+ import debug from 'debug';
2
+
3
+ function _defineProperty(obj, key, value) {
4
+ if (key in obj) {
5
+ Object.defineProperty(obj, key, {
6
+ value: value,
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true
10
+ });
11
+ } else {
12
+ obj[key] = value;
13
+ }
14
+
15
+ return obj;
16
+ }
17
+
18
+ var defaults = {
19
+ backgroundImageEnabled: true,
20
+ imageDimensions: {
21
+ height: 0,
22
+ width: 0
23
+ },
24
+ imageUrl: '',
25
+ prompt: '',
26
+ promptEnabled: true,
27
+ spellCheckEnabled: true,
28
+ studentInstructionsEnabled: true,
29
+ teacherInstructions: '',
30
+ teacherInstructionsEnabled: true,
31
+ toolbarEditorPosition: 'bottom'
32
+ };
33
+
34
+ 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; }
35
+
36
+ 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; }
37
+ var log = debug('pie-elements:drawing-response:controller');
38
+ var normalize = question => _objectSpread(_objectSpread({}, defaults), question);
39
+ function model(question, session, env) {
40
+ var normalizedQuestion = normalize(question);
41
+ var {
42
+ extraCSSRules,
43
+ imageUrl,
44
+ imageDimensions,
45
+ prompt,
46
+ promptEnabled,
47
+ backgroundImageEnabled,
48
+ language
49
+ } = normalizedQuestion;
50
+ return new Promise(resolve => {
51
+ var out = {
52
+ disabled: env.mode !== 'gather',
53
+ mode: env.mode,
54
+ imageDimensions,
55
+ imageUrl,
56
+ prompt: promptEnabled ? prompt : null,
57
+ backgroundImageEnabled,
58
+ language,
59
+ extraCSSRules
60
+ };
61
+
62
+ if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {
63
+ out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
64
+ } else {
65
+ out.teacherInstructions = null;
66
+ }
67
+
68
+ resolve(out);
69
+ });
70
+ }
71
+ var createDefaultModel = function createDefaultModel() {
72
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
73
+ return new Promise(resolve => {
74
+ resolve(_objectSpread(_objectSpread({}, defaults), model));
75
+ });
76
+ };
77
+ function
78
+ /*config, session*/
79
+ outcome() {
80
+ return new Promise(resolve => {
81
+ log('outcome...');
82
+ resolve({
83
+ score: 0,
84
+ completed: 'n/a',
85
+ note: 'Requires manual scoring'
86
+ });
87
+ });
88
+ } // remove all html tags
89
+
90
+
91
+ var getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
92
+
93
+ var validate = function validate() {
94
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
95
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
96
+ var errors = {};
97
+ ['teacherInstructions', 'prompt'].forEach(field => {
98
+ var _config$field;
99
+
100
+ if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(model[field])) {
101
+ errors[field] = 'This field is required.';
102
+ }
103
+ });
104
+ return errors;
105
+ };
106
+
107
+ export { createDefaultModel, model, normalize, outcome, validate };
108
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../controller/src/defaults.js","../controller/src/index.js"],"sourcesContent":["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}","export default {\n backgroundImageEnabled: true,\n imageDimensions: { height: 0, width: 0 },\n imageUrl: '',\n prompt: '',\n promptEnabled: true,\n spellCheckEnabled: true,\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n};\n","import debug from 'debug';\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:drawing-response:controller');\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n const { extraCSSRules, imageUrl, imageDimensions, prompt, promptEnabled, backgroundImageEnabled, language } = normalizedQuestion;\n\n return new Promise((resolve) => {\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n imageDimensions,\n imageUrl,\n prompt: promptEnabled ? prompt : null,\n backgroundImageEnabled,\n language,\n extraCSSRules,\n };\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n resolve(out);\n });\n}\n\nexport const createDefaultModel = (model = {}) =>\n new Promise((resolve) => {\n resolve({\n ...defaults,\n ...model,\n });\n });\n\nexport function outcome(/*config, session*/) {\n return new Promise((resolve) => {\n log('outcome...');\n resolve({\n score: 0,\n completed: 'n/a',\n note: 'Requires manual scoring',\n });\n });\n}\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n return errors;\n};\n"],"names":["backgroundImageEnabled","imageDimensions","height","width","imageUrl","prompt","promptEnabled","spellCheckEnabled","studentInstructionsEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","log","debug","normalize","question","defaults","model","session","env","normalizedQuestion","extraCSSRules","language","Promise","resolve","out","disabled","mode","role","createDefaultModel","outcome","score","completed","note","getContent","html","replace","validate","config","errors","forEach","field","required"],"mappings":"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"}