@pie-element/matrix 2.0.1-next.0 → 2.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,161 @@
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
+ var defaults = {
55
+ columnLabels: ['COLUMN 1', 'COLUMN 2', 'COLUMN 3'],
56
+ labelType: 'agreement',
57
+ matrixValues: {},
58
+ prompt: '',
59
+ promptEnabled: true,
60
+ rowLabels: ['STATEMENT 1', 'STATEMENT 2'],
61
+ teacherInstructions: '',
62
+ teacherInstructionsEnabled: true
63
+ };
64
+
65
+ 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; }
66
+
67
+ 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; }
68
+ var createDefaultModel = function createDefaultModel() {
69
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
70
+ return new Promise(resolve => resolve(_objectSpread(_objectSpread({}, defaults), model)));
71
+ };
72
+ /**
73
+ *
74
+ * @param {*} question
75
+ * @param {*} session
76
+ * @param {*} env
77
+ */
78
+
79
+ function model(_x, _x2, _x3) {
80
+ return _model.apply(this, arguments);
81
+ }
82
+
83
+ function _model() {
84
+ _model = _asyncToGenerator(function* (question, session, env) {
85
+ var normalizedQuestion = _objectSpread(_objectSpread({}, defaults), question);
86
+
87
+ var out = _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
88
+ disabled: env.mode !== 'gather',
89
+ mode: env.mode
90
+ });
91
+
92
+ var {
93
+ role,
94
+ mode
95
+ } = env || {};
96
+
97
+ if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
98
+ out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled ? normalizedQuestion.teacherInstructions : null;
99
+ } else {
100
+ out.teacherInstructions = null;
101
+ }
102
+
103
+ return out;
104
+ });
105
+ return _model.apply(this, arguments);
106
+ }
107
+
108
+ function outcome(model, session) {
109
+ return new Promise(resolve => {
110
+ if (!session || isEmpty(session)) {
111
+ return resolve({
112
+ score: 0,
113
+ empty: true
114
+ });
115
+ }
116
+
117
+ var score = Object.keys(session.value).reduce((acc, key) => {
118
+ var matrixValue = model.matrixValues[key];
119
+ return acc + (matrixValue || 0);
120
+ }, 0);
121
+ resolve({
122
+ score,
123
+ empty: false
124
+ });
125
+ });
126
+ }
127
+ var createCorrectResponseSession = (question, env) => {
128
+ return new Promise(resolve => {
129
+ if (env.mode !== 'evaluate' && env.role === 'instructor') {
130
+ var {
131
+ matrixValues
132
+ } = question || [];
133
+ resolve({
134
+ id: '1',
135
+ value: matrixValues
136
+ });
137
+ } else {
138
+ resolve(null);
139
+ }
140
+ });
141
+ }; // remove all html tags
142
+
143
+
144
+ var getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
145
+
146
+ var validate = function validate() {
147
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
148
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
149
+ var errors = {};
150
+ ['teacherInstructions', 'prompt'].forEach(field => {
151
+ var _config$field;
152
+
153
+ if ((_config$field = config[field]) !== null && _config$field !== void 0 && _config$field.required && !getContent(model[field])) {
154
+ errors[field] = 'This field is required.';
155
+ }
156
+ });
157
+ return errors;
158
+ };
159
+
160
+ export { createCorrectResponseSession, createDefaultModel, model, outcome, validate };
161
+ //# 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}","export default {\n columnLabels: ['COLUMN 1', 'COLUMN 2', 'COLUMN 3'],\n labelType: 'agreement',\n matrixValues: {},\n prompt: '',\n promptEnabled: true,\n rowLabels: ['STATEMENT 1', 'STATEMENT 2'],\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n};\n","import defaults from './defaults';\nimport isEmpty from 'lodash/isEmpty';\n\nexport const createDefaultModel = (model = {}) => new Promise((resolve) => resolve({ ...defaults, ...model }));\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = { ...defaults, ...question };\n\n const out = {\n ...normalizedQuestion,\n disabled: env.mode !== 'gather',\n mode: env.mode,\n };\n\n const { role, mode } = env || {};\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n out.teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n } else {\n out.teacherInstructions = null;\n }\n\n return out;\n}\n\nexport function outcome(model, session) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n return resolve({ score: 0, empty: true });\n }\n\n const score = Object.keys(session.value).reduce((acc, key) => {\n const matrixValue = model.matrixValues[key];\n return acc + (matrixValue || 0);\n }, 0);\n\n resolve({ score, empty: false });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { matrixValues } = question || [];\n\n resolve({\n id: '1',\n value: matrixValues,\n });\n } else {\n resolve(null);\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":["columnLabels","labelType","matrixValues","prompt","promptEnabled","rowLabels","teacherInstructions","teacherInstructionsEnabled","createDefaultModel","model","Promise","resolve","defaults","question","session","env","normalizedQuestion","out","disabled","mode","role","outcome","isEmpty","score","empty","Object","keys","value","reduce","acc","key","matrixValue","createCorrectResponseSession","id","getContent","html","replace","validate","config","errors","forEach","field","required"],"mappings":"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"}