@pie-element/complex-rubric 5.3.4-next.3 → 6.0.0-beta.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/configure/lib/defaults.js +52 -24
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +103 -194
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +140 -199
- package/configure/lib/main.js.map +1 -1
- package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/CHANGELOG.md +2491 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/README.md +55 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/CHANGELOG.md +2333 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js +429 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/common.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js +181 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js +157 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js +455 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js +206 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/modals.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js +451 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/scale.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js +275 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/trait.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js +233 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/traitsHeader.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js +87 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/lib/utils.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/configure/package.json +24 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.json +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/CHANGELOG.md +1571 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js +18 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js +158 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js +11 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/lib/utils.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/controller/package.json +14 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json +1628 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/config-schema.json.md +1202 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/config.js +8 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/generate.js +117 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/index.html +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/demo/session.js +6 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json +861 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/docs/pie-schema.json.md +614 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js +54 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js +123 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js +248 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/scale.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js +83 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/lib/trait.js.map +1 -0
- package/configure/node_modules/@pie-element/multi-trait-rubric/package.json +32 -0
- package/configure/node_modules/@pie-element/rubric/CHANGELOG.json +257 -0
- package/configure/node_modules/@pie-element/rubric/CHANGELOG.md +2774 -0
- package/configure/node_modules/@pie-element/rubric/README.md +3 -0
- package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.json +197 -0
- package/configure/node_modules/@pie-element/rubric/configure/CHANGELOG.md +2541 -0
- package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js +67 -0
- package/configure/node_modules/@pie-element/rubric/configure/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/configure/lib/index.js +135 -0
- package/configure/node_modules/@pie-element/rubric/configure/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/configure/lib/main.js +103 -0
- package/configure/node_modules/@pie-element/rubric/configure/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/configure/package.json +24 -0
- package/configure/node_modules/@pie-element/rubric/configure/src/__tests__/index.test.jsx +178 -0
- package/configure/node_modules/@pie-element/rubric/configure/src/defaults.js +42 -0
- package/configure/node_modules/@pie-element/rubric/configure/src/index.js +139 -0
- package/configure/node_modules/@pie-element/rubric/configure/src/main.jsx +87 -0
- package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.json +17 -0
- package/configure/node_modules/@pie-element/rubric/controller/CHANGELOG.md +1564 -0
- package/configure/node_modules/@pie-element/rubric/controller/lib/defaults.js +15 -0
- package/configure/node_modules/@pie-element/rubric/controller/lib/defaults.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/controller/lib/index.js +46 -0
- package/configure/node_modules/@pie-element/rubric/controller/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/controller/package.json +12 -0
- package/configure/node_modules/@pie-element/rubric/controller/src/__tests__/index.test.js +33 -0
- package/configure/node_modules/@pie-element/rubric/controller/src/defaults.js +8 -0
- package/configure/node_modules/@pie-element/rubric/controller/src/index.js +41 -0
- package/configure/node_modules/@pie-element/rubric/docs/config-schema.json +712 -0
- package/configure/node_modules/@pie-element/rubric/docs/config-schema.json.md +532 -0
- package/configure/node_modules/@pie-element/rubric/docs/demo/config.js +8 -0
- package/configure/node_modules/@pie-element/rubric/docs/demo/generate.js +8 -0
- package/configure/node_modules/@pie-element/rubric/docs/demo/index.html +2 -0
- package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json +391 -0
- package/configure/node_modules/@pie-element/rubric/docs/pie-schema.json.md +281 -0
- package/configure/node_modules/@pie-element/rubric/lib/index.js +52 -0
- package/configure/node_modules/@pie-element/rubric/lib/index.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/lib/main.js +210 -0
- package/configure/node_modules/@pie-element/rubric/lib/main.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/lib/print.js +71 -0
- package/configure/node_modules/@pie-element/rubric/lib/print.js.map +1 -0
- package/configure/node_modules/@pie-element/rubric/package.json +30 -0
- package/configure/node_modules/@pie-element/rubric/src/__tests__/__snapshots__/rubric-view.test.jsx.snap +2641 -0
- package/configure/node_modules/@pie-element/rubric/src/__tests__/rubric-view.test.jsx +49 -0
- package/configure/node_modules/@pie-element/rubric/src/index.js +48 -0
- package/configure/node_modules/@pie-element/rubric/src/main.jsx +226 -0
- package/configure/node_modules/@pie-element/rubric/src/print.js +74 -0
- package/configure/node_modules/clsx/clsx.d.ts +6 -0
- package/configure/node_modules/clsx/dist/clsx.js +1 -0
- package/configure/node_modules/clsx/dist/clsx.m.js +1 -0
- package/configure/node_modules/clsx/dist/clsx.min.js +1 -0
- package/configure/node_modules/clsx/license +9 -0
- package/configure/node_modules/clsx/package.json +37 -0
- package/configure/node_modules/clsx/readme.md +88 -0
- package/configure/package.json +12 -9
- package/configure/src/__tests__/index.test.js +30 -5
- package/configure/src/__tests__/main.test.jsx +39 -23
- package/configure/src/index.js +13 -6
- package/configure/src/main.jsx +16 -15
- package/controller/lib/defaults.js +11 -15
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +117 -180
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +1 -3
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +1 -1
- package/lib/index.js +113 -204
- package/lib/index.js.map +1 -1
- package/lib/print.js +96 -190
- package/lib/print.js.map +1 -1
- package/package.json +10 -14
- package/src/__tests__/index.test.js +25 -7
- package/configure/src/__tests__/__snapshots__/main.test.jsx.snap +0 -193
- package/esm/configure.js +0 -15856
- package/esm/configure.js.map +0 -1
- package/esm/controller.js +0 -281
- package/esm/controller.js.map +0 -1
- package/esm/element.js +0 -179
- package/esm/element.js.map +0 -1
- package/esm/package.json +0 -3
- package/esm/print.js +0 -163
- package/esm/print.js.map +0 -1
- package/module/configure.js +0 -1
- package/module/controller.js +0 -262
- package/module/demo.js +0 -221
- package/module/element.js +0 -1
- package/module/index.html +0 -21
- package/module/manifest.json +0 -22
- package/module/print-demo.js +0 -259
- package/module/print.html +0 -18
- package/module/print.js +0 -1
package/controller/lib/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -12,138 +11,99 @@ exports.model = model;
|
|
|
12
11
|
exports.normalize = void 0;
|
|
13
12
|
exports.outcome = outcome;
|
|
14
13
|
exports.validate = void 0;
|
|
15
|
-
|
|
16
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
17
|
-
|
|
18
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
19
|
-
|
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
14
|
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
23
|
-
|
|
24
15
|
var _utils = require("./utils");
|
|
25
|
-
|
|
26
|
-
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; }
|
|
27
|
-
|
|
28
|
-
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; }
|
|
29
|
-
|
|
30
16
|
// todo the import from pie-lib/rubric WILL break pslb
|
|
31
17
|
// so don't use it unless you also test "yarn build"
|
|
32
|
-
|
|
18
|
+
const RUBRIC_TYPES = {
|
|
33
19
|
SIMPLE_RUBRIC: 'simpleRubric',
|
|
34
20
|
MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
|
|
35
21
|
'rubricless': 'rubricless'
|
|
36
22
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
23
|
+
function createDefaultModel(model = {}) {
|
|
24
|
+
return new Promise(resolve => resolve({
|
|
25
|
+
..._defaults.default,
|
|
26
|
+
...model
|
|
27
|
+
}));
|
|
43
28
|
}
|
|
29
|
+
const normalize = question => ({
|
|
30
|
+
..._defaults.default,
|
|
31
|
+
...question
|
|
32
|
+
});
|
|
44
33
|
|
|
45
|
-
var normalize = function normalize(question) {
|
|
46
|
-
return _objectSpread(_objectSpread({}, _defaults["default"]), question);
|
|
47
|
-
};
|
|
48
34
|
/**
|
|
49
35
|
* @param {*} question
|
|
50
36
|
* @param {*} session
|
|
51
37
|
* @param {*} env
|
|
52
38
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
39
|
exports.normalize = normalize;
|
|
40
|
+
async function model(question, session, env) {
|
|
41
|
+
const normalizedQuestion = normalize(question);
|
|
42
|
+
if (normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC || normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS) {
|
|
43
|
+
return new Promise(resolve => {
|
|
44
|
+
resolve(env && env.role && env.role === 'instructor' ? {
|
|
45
|
+
...normalizedQuestion,
|
|
46
|
+
rubrics: {
|
|
47
|
+
...normalizedQuestion.rubrics,
|
|
48
|
+
multiTraitRubric: {
|
|
49
|
+
...normalizedQuestion.rubrics.multiTraitRubric,
|
|
50
|
+
visible: false
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
} : {});
|
|
54
|
+
});
|
|
55
|
+
} else {
|
|
56
|
+
if (!env.role || env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric) {
|
|
57
|
+
normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;
|
|
58
|
+
} else {
|
|
59
|
+
normalizedQuestion.rubrics.multiTraitRubric.visible = true;
|
|
60
|
+
}
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
})
|
|
82
|
-
})
|
|
83
|
-
}) : {});
|
|
84
|
-
}));
|
|
85
|
-
|
|
86
|
-
case 5:
|
|
87
|
-
if (!env.role || env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric) {
|
|
88
|
-
normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;
|
|
89
|
-
} else {
|
|
90
|
-
normalizedQuestion.rubrics.multiTraitRubric.visible = true;
|
|
91
|
-
} // todo update pie-ui instead of parsing this here:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
_ref = normalizedQuestion.rubrics.multiTraitRubric || {}, scales = _ref.scales, excludeZero = _ref.excludeZero;
|
|
95
|
-
parsedScales = (scales || []).map(function (scale) {
|
|
96
|
-
return _objectSpread(_objectSpread({}, scale), {}, {
|
|
97
|
-
excludeZero: excludeZero
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
return _context.abrupt("return", _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
|
|
101
|
-
rubrics: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics), {}, {
|
|
102
|
-
simpleRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.simpleRubric), {}, {
|
|
103
|
-
visible: false
|
|
104
|
-
}),
|
|
105
|
-
rubricless: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.rubricless), {}, {
|
|
106
|
-
visible: false
|
|
107
|
-
}),
|
|
108
|
-
multiTraitRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.multiTraitRubric), {}, {
|
|
109
|
-
scales: parsedScales
|
|
110
|
-
})
|
|
111
|
-
})
|
|
112
|
-
}));
|
|
113
|
-
|
|
114
|
-
case 9:
|
|
115
|
-
case "end":
|
|
116
|
-
return _context.stop();
|
|
62
|
+
// todo update pie-ui instead of parsing this here:
|
|
63
|
+
const {
|
|
64
|
+
scales,
|
|
65
|
+
excludeZero
|
|
66
|
+
} = normalizedQuestion.rubrics.multiTraitRubric || {};
|
|
67
|
+
const parsedScales = (scales || []).map(scale => ({
|
|
68
|
+
...scale,
|
|
69
|
+
excludeZero
|
|
70
|
+
}));
|
|
71
|
+
return {
|
|
72
|
+
...normalizedQuestion,
|
|
73
|
+
rubrics: {
|
|
74
|
+
...normalizedQuestion.rubrics,
|
|
75
|
+
simpleRubric: {
|
|
76
|
+
...normalizedQuestion.rubrics.simpleRubric,
|
|
77
|
+
visible: false
|
|
78
|
+
},
|
|
79
|
+
rubricless: {
|
|
80
|
+
...normalizedQuestion.rubrics.rubricless,
|
|
81
|
+
visible: false
|
|
82
|
+
},
|
|
83
|
+
multiTraitRubric: {
|
|
84
|
+
...normalizedQuestion.rubrics.multiTraitRubric,
|
|
85
|
+
scales: parsedScales
|
|
117
86
|
}
|
|
118
87
|
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return _model.apply(this, arguments);
|
|
88
|
+
};
|
|
89
|
+
}
|
|
122
90
|
}
|
|
91
|
+
const getScore = () => 0;
|
|
123
92
|
|
|
124
|
-
var getScore = function getScore() {
|
|
125
|
-
return 0;
|
|
126
|
-
};
|
|
127
93
|
/**
|
|
128
94
|
* @param {Object} model - the main model
|
|
129
95
|
* @param {*} session
|
|
130
96
|
* @param {Object} env
|
|
131
97
|
*/
|
|
132
|
-
|
|
133
|
-
|
|
134
98
|
exports.getScore = getScore;
|
|
135
|
-
|
|
136
99
|
function outcome() {
|
|
137
|
-
return new Promise(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
});
|
|
142
|
-
});
|
|
100
|
+
return new Promise(resolve => resolve({
|
|
101
|
+
score: 0,
|
|
102
|
+
empty: true
|
|
103
|
+
}));
|
|
143
104
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
return new Promise(function (resolve) {
|
|
105
|
+
const createCorrectResponseSession = (question, env) => {
|
|
106
|
+
return new Promise(resolve => {
|
|
147
107
|
if (env.mode !== 'evaluate' && env.role === 'instructor') {
|
|
148
108
|
resolve({
|
|
149
109
|
id: '1'
|
|
@@ -152,151 +112,128 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
|
|
|
152
112
|
resolve(null);
|
|
153
113
|
}
|
|
154
114
|
});
|
|
155
|
-
};
|
|
156
|
-
// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
|
|
157
|
-
|
|
115
|
+
};
|
|
158
116
|
|
|
117
|
+
// IMPORTANT! This function is a duplicate of rubric/controller/validate function!
|
|
118
|
+
// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
|
|
159
119
|
exports.createCorrectResponseSession = createCorrectResponseSession;
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
120
|
+
const validateSimpleRubric = model => {
|
|
121
|
+
const {
|
|
122
|
+
points
|
|
123
|
+
} = model;
|
|
124
|
+
const errors = {};
|
|
125
|
+
const pointsDescriptorsErrors = {};
|
|
126
|
+
(points || []).forEach((point, index) => {
|
|
166
127
|
if (!point || point === '<div></div>') {
|
|
167
128
|
pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
|
|
168
129
|
} else {
|
|
169
|
-
|
|
170
|
-
return (0, _utils.markupToText)(p) === (0, _utils.markupToText)(point);
|
|
171
|
-
});
|
|
172
|
-
|
|
130
|
+
const identicalPointDescr = points.slice(index + 1).some(p => (0, _utils.markupToText)(p) === (0, _utils.markupToText)(point));
|
|
173
131
|
if (identicalPointDescr) {
|
|
174
132
|
pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';
|
|
175
133
|
}
|
|
176
134
|
}
|
|
177
135
|
});
|
|
178
|
-
|
|
179
136
|
if (Object.keys(pointsDescriptorsErrors).length > 0) {
|
|
180
137
|
errors.pointsDescriptorsErrors = pointsDescriptorsErrors;
|
|
181
138
|
}
|
|
182
|
-
|
|
183
139
|
return errors;
|
|
184
|
-
};
|
|
185
|
-
// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
var validateMultiTraitRubric = function validateMultiTraitRubric(model) {
|
|
189
|
-
var scales = model.scales,
|
|
190
|
-
_model$description = model.description,
|
|
191
|
-
description = _model$description === void 0 ? false : _model$description,
|
|
192
|
-
_model$pointLabels = model.pointLabels,
|
|
193
|
-
pointLabels = _model$pointLabels === void 0 ? false : _model$pointLabels;
|
|
194
|
-
var errors = {};
|
|
195
|
-
var traitsErrors = {};
|
|
196
|
-
var scorePointsErrors = {};
|
|
197
|
-
(scales || []).forEach(function (scale, scaleIndex) {
|
|
198
|
-
var _scale$traits = scale.traits,
|
|
199
|
-
traits = _scale$traits === void 0 ? [] : _scale$traits;
|
|
200
|
-
var _scale$scorePointsLab = scale.scorePointsLabels,
|
|
201
|
-
scorePointsLabels = _scale$scorePointsLab === void 0 ? [] : _scale$scorePointsLab;
|
|
202
|
-
var scaleErrors = {};
|
|
203
|
-
var scorePointsLabelsErrors = {};
|
|
140
|
+
};
|
|
204
141
|
|
|
142
|
+
// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!
|
|
143
|
+
// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.
|
|
144
|
+
const validateMultiTraitRubric = model => {
|
|
145
|
+
const {
|
|
146
|
+
scales,
|
|
147
|
+
description = false,
|
|
148
|
+
pointLabels = false
|
|
149
|
+
} = model;
|
|
150
|
+
const errors = {};
|
|
151
|
+
const traitsErrors = {};
|
|
152
|
+
const scorePointsErrors = {};
|
|
153
|
+
(scales || []).forEach((scale, scaleIndex) => {
|
|
154
|
+
const {
|
|
155
|
+
traits = []
|
|
156
|
+
} = scale;
|
|
157
|
+
const {
|
|
158
|
+
scorePointsLabels = []
|
|
159
|
+
} = scale;
|
|
160
|
+
const scaleErrors = {};
|
|
161
|
+
const scorePointsLabelsErrors = {};
|
|
205
162
|
if (pointLabels) {
|
|
206
|
-
scorePointsLabels.forEach(
|
|
163
|
+
scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {
|
|
207
164
|
if (!scorePointLabel || scorePointLabel === '<div></div>') {
|
|
208
165
|
scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';
|
|
209
166
|
} else {
|
|
210
|
-
|
|
211
|
-
return (0, _utils.markupToText)(s) === (0, _utils.markupToText)(scorePointLabel);
|
|
212
|
-
});
|
|
213
|
-
|
|
167
|
+
const identicalScorePointLabel = scorePointsLabels.slice(scoreIndex + 1).some(s => (0, _utils.markupToText)(s) === (0, _utils.markupToText)(scorePointLabel));
|
|
214
168
|
if (identicalScorePointLabel) {
|
|
215
169
|
scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';
|
|
216
170
|
}
|
|
217
171
|
}
|
|
218
172
|
});
|
|
219
173
|
}
|
|
220
|
-
|
|
221
174
|
if (Object.keys(scorePointsLabelsErrors).length > 0) {
|
|
222
175
|
scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;
|
|
223
176
|
}
|
|
224
|
-
|
|
225
|
-
traits.forEach(function (trait, traitIndex) {
|
|
177
|
+
traits.forEach((trait, traitIndex) => {
|
|
226
178
|
if (!trait.name || trait.name === '<div></div>') {
|
|
227
179
|
scaleErrors[traitIndex] = {
|
|
228
180
|
name: 'Trait names should not be empty.'
|
|
229
181
|
};
|
|
230
182
|
} else {
|
|
231
|
-
|
|
232
|
-
return (0, _utils.markupToText)(t.name) === (0, _utils.markupToText)(trait.name);
|
|
233
|
-
});
|
|
234
|
-
|
|
183
|
+
const identicalTraitName = traits.slice(traitIndex + 1).some(t => (0, _utils.markupToText)(t.name) === (0, _utils.markupToText)(trait.name));
|
|
235
184
|
if (identicalTraitName) {
|
|
236
185
|
scaleErrors[traitIndex] = {
|
|
237
186
|
name: 'Trait names should be unique.'
|
|
238
187
|
};
|
|
239
188
|
}
|
|
240
189
|
}
|
|
241
|
-
|
|
242
190
|
if (description && (!trait.description || trait.description === '<div></div>')) {
|
|
243
|
-
scaleErrors[traitIndex] =
|
|
191
|
+
scaleErrors[traitIndex] = {
|
|
192
|
+
...scaleErrors[traitIndex],
|
|
244
193
|
description: 'Trait description should not be empty'
|
|
245
|
-
}
|
|
194
|
+
};
|
|
246
195
|
} else {
|
|
247
|
-
|
|
248
|
-
return (0, _utils.markupToText)(t.description) === (0, _utils.markupToText)(trait.description);
|
|
249
|
-
});
|
|
250
|
-
|
|
196
|
+
const identicalTraitDescr = traits.slice(traitIndex + 1).some(t => (0, _utils.markupToText)(t.description) === (0, _utils.markupToText)(trait.description));
|
|
251
197
|
if (description && identicalTraitDescr) {
|
|
252
|
-
scaleErrors[traitIndex] =
|
|
198
|
+
scaleErrors[traitIndex] = {
|
|
199
|
+
...scaleErrors[traitIndex],
|
|
253
200
|
description: 'Trait descriptions should be unique.'
|
|
254
|
-
}
|
|
201
|
+
};
|
|
255
202
|
}
|
|
256
203
|
}
|
|
257
204
|
});
|
|
258
|
-
|
|
259
205
|
if (Object.keys(scaleErrors).length > 0) {
|
|
260
206
|
traitsErrors[scaleIndex] = scaleErrors;
|
|
261
207
|
}
|
|
262
208
|
});
|
|
263
|
-
|
|
264
209
|
if (Object.keys(traitsErrors).length > 0) {
|
|
265
210
|
errors.traitsErrors = traitsErrors;
|
|
266
211
|
}
|
|
267
|
-
|
|
268
212
|
if (Object.keys(scorePointsErrors).length > 0) {
|
|
269
213
|
errors.scorePointsErrors = scorePointsErrors;
|
|
270
214
|
}
|
|
271
|
-
|
|
272
215
|
return errors;
|
|
273
216
|
};
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
simpleRubric = _rubrics$simpleRubric === void 0 ? {} : _rubrics$simpleRubric;
|
|
285
|
-
var errors = {};
|
|
286
|
-
|
|
217
|
+
const validate = (model = {}, config = {}) => {
|
|
218
|
+
const {
|
|
219
|
+
rubrics = {},
|
|
220
|
+
rubricType
|
|
221
|
+
} = model;
|
|
222
|
+
const {
|
|
223
|
+
multiTraitRubric = {},
|
|
224
|
+
simpleRubric = {}
|
|
225
|
+
} = rubrics;
|
|
226
|
+
let errors = {};
|
|
287
227
|
switch (rubricType) {
|
|
288
228
|
case RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
289
229
|
default:
|
|
290
230
|
errors = validateSimpleRubric(simpleRubric);
|
|
291
231
|
break;
|
|
292
|
-
|
|
293
232
|
case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
294
233
|
errors = validateMultiTraitRubric(multiTraitRubric);
|
|
295
234
|
break;
|
|
296
235
|
}
|
|
297
|
-
|
|
298
236
|
return errors;
|
|
299
237
|
};
|
|
300
|
-
|
|
301
238
|
exports.validate = validate;
|
|
302
239
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","createDefaultModel","model","Promise","resolve","defaults","normalize","question","session","env","normalizedQuestion","rubricType","RUBRICLESS","role","rubrics","multiTraitRubric","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","simpleRubric","rubricless","getScore","outcome","score","empty","createCorrectResponseSession","mode","id","validateSimpleRubric","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","Object","keys","length","validateMultiTraitRubric","description","pointLabels","traitsErrors","scorePointsErrors","scaleIndex","traits","scorePointsLabels","scaleErrors","scorePointsLabelsErrors","scorePointLabel","scoreIndex","identicalScorePointLabel","s","trait","traitIndex","name","identicalTraitName","t","identicalTraitDescr","validate","config"],"mappings":"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","sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n\n// todo the import from pie-lib/rubric WILL break pslb\n// so don't use it unless you also test \"yarn build\"\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n 'rubricless': 'rubricless',\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\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 if (\n normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC ||\n normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS\n ) {\n return new Promise((resolve) => {\n resolve(\n env && env.role && env.role === 'instructor'\n ? {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n visible: false,\n },\n },\n }\n : {},\n );\n });\n } else {\n if (\n !env.role ||\n (env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric)\n ) {\n normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.rubrics.multiTraitRubric.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n simpleRubric: {\n ...normalizedQuestion.rubrics.simpleRubric,\n visible: false,\n },\n rubricless: {\n ...normalizedQuestion.rubrics.rubricless,\n visible: false,\n },\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n scales: parsedScales,\n },\n },\n };\n }\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\n// IMPORTANT! This function is a duplicate of rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.\nconst validateSimpleRubric = (model) => {\n const { points } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n\n if (!point || point === '<div></div>') {\n pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';\n } else {\n const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));\n\n if (identicalPointDescr) {\n pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';\n }\n }\n });\n\n if (Object.keys(pointsDescriptorsErrors).length > 0) {\n errors.pointsDescriptorsErrors = pointsDescriptorsErrors;\n }\n\n return errors;\n};\n\n// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.\nconst validateMultiTraitRubric = (model) => {\n const { scales, description = false, pointLabels = false } = model;\n const errors = {};\n const traitsErrors = {};\n const scorePointsErrors = {};\n\n (scales || []).forEach((scale, scaleIndex) => {\n const { traits = [] } = scale;\n const { scorePointsLabels = [] } = scale;\n const scaleErrors = {};\n const scorePointsLabelsErrors = {};\n\n if (pointLabels) {\n scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {\n if (!scorePointLabel || scorePointLabel === '<div></div>') {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';\n } else {\n const identicalScorePointLabel = scorePointsLabels\n .slice(scoreIndex + 1)\n .some((s) => markupToText(s) === markupToText(scorePointLabel));\n\n if (identicalScorePointLabel) {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';\n }\n }\n });\n }\n\n if (Object.keys(scorePointsLabelsErrors).length > 0) {\n scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;\n }\n\n traits.forEach((trait, traitIndex) => {\n if (!trait.name || trait.name === '<div></div>') {\n scaleErrors[traitIndex] = { name: 'Trait names should not be empty.' };\n } else {\n const identicalTraitName = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.name) === markupToText(trait.name));\n\n if (identicalTraitName) {\n scaleErrors[traitIndex] = { name: 'Trait names should be unique.' };\n }\n }\n if (description && (!trait.description || trait.description === '<div></div>')) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait description should not be empty' };\n } else {\n const identicalTraitDescr = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.description) === markupToText(trait.description));\n\n if (description && identicalTraitDescr) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait descriptions should be unique.' };\n }\n }\n });\n if (Object.keys(scaleErrors).length > 0) {\n traitsErrors[scaleIndex] = scaleErrors;\n }\n });\n\n if (Object.keys(traitsErrors).length > 0) {\n errors.traitsErrors = traitsErrors;\n }\n\n if (Object.keys(scorePointsErrors).length > 0) {\n errors.scorePointsErrors = scorePointsErrors;\n }\n\n return errors;\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rubrics = {}, rubricType } = model;\n const { multiTraitRubric = {}, simpleRubric = {} } = rubrics;\n let errors = {};\n\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n errors = validateSimpleRubric(simpleRubric);\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n errors = validateMultiTraitRubric(multiTraitRubric);\n break;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_defaults","_interopRequireDefault","require","_utils","RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","createDefaultModel","model","Promise","resolve","defaults","normalize","question","exports","session","env","normalizedQuestion","rubricType","RUBRICLESS","role","rubrics","multiTraitRubric","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","simpleRubric","rubricless","getScore","outcome","score","empty","createCorrectResponseSession","mode","id","validateSimpleRubric","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","markupToText","Object","keys","length","validateMultiTraitRubric","description","pointLabels","traitsErrors","scorePointsErrors","scaleIndex","traits","scorePointsLabels","scaleErrors","scorePointsLabelsErrors","scorePointLabel","scoreIndex","identicalScorePointLabel","s","trait","traitIndex","name","identicalTraitName","t","identicalTraitDescr","validate","config"],"sources":["../src/index.js"],"sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n\n// todo the import from pie-lib/rubric WILL break pslb\n// so don't use it unless you also test \"yarn build\"\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n 'rubricless': 'rubricless',\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\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 if (\n normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC ||\n normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS\n ) {\n return new Promise((resolve) => {\n resolve(\n env && env.role && env.role === 'instructor'\n ? {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n visible: false,\n },\n },\n }\n : {},\n );\n });\n } else {\n if (\n !env.role ||\n (env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric)\n ) {\n normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.rubrics.multiTraitRubric.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n simpleRubric: {\n ...normalizedQuestion.rubrics.simpleRubric,\n visible: false,\n },\n rubricless: {\n ...normalizedQuestion.rubrics.rubricless,\n visible: false,\n },\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n scales: parsedScales,\n },\n },\n };\n }\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\n// IMPORTANT! This function is a duplicate of rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.\nconst validateSimpleRubric = (model) => {\n const { points } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n\n if (!point || point === '<div></div>') {\n pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';\n } else {\n const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));\n\n if (identicalPointDescr) {\n pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';\n }\n }\n });\n\n if (Object.keys(pointsDescriptorsErrors).length > 0) {\n errors.pointsDescriptorsErrors = pointsDescriptorsErrors;\n }\n\n return errors;\n};\n\n// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.\nconst validateMultiTraitRubric = (model) => {\n const { scales, description = false, pointLabels = false } = model;\n const errors = {};\n const traitsErrors = {};\n const scorePointsErrors = {};\n\n (scales || []).forEach((scale, scaleIndex) => {\n const { traits = [] } = scale;\n const { scorePointsLabels = [] } = scale;\n const scaleErrors = {};\n const scorePointsLabelsErrors = {};\n\n if (pointLabels) {\n scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {\n if (!scorePointLabel || scorePointLabel === '<div></div>') {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';\n } else {\n const identicalScorePointLabel = scorePointsLabels\n .slice(scoreIndex + 1)\n .some((s) => markupToText(s) === markupToText(scorePointLabel));\n\n if (identicalScorePointLabel) {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';\n }\n }\n });\n }\n\n if (Object.keys(scorePointsLabelsErrors).length > 0) {\n scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;\n }\n\n traits.forEach((trait, traitIndex) => {\n if (!trait.name || trait.name === '<div></div>') {\n scaleErrors[traitIndex] = { name: 'Trait names should not be empty.' };\n } else {\n const identicalTraitName = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.name) === markupToText(trait.name));\n\n if (identicalTraitName) {\n scaleErrors[traitIndex] = { name: 'Trait names should be unique.' };\n }\n }\n if (description && (!trait.description || trait.description === '<div></div>')) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait description should not be empty' };\n } else {\n const identicalTraitDescr = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.description) === markupToText(trait.description));\n\n if (description && identicalTraitDescr) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait descriptions should be unique.' };\n }\n }\n });\n if (Object.keys(scaleErrors).length > 0) {\n traitsErrors[scaleIndex] = scaleErrors;\n }\n });\n\n if (Object.keys(traitsErrors).length > 0) {\n errors.traitsErrors = traitsErrors;\n }\n\n if (Object.keys(scorePointsErrors).length > 0) {\n errors.scorePointsErrors = scorePointsErrors;\n }\n\n return errors;\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rubrics = {}, rubricType } = model;\n const { multiTraitRubric = {}, simpleRubric = {} } = rubrics;\n let errors = {};\n\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n errors = validateSimpleRubric(simpleRubric);\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n errors = validateMultiTraitRubric(multiTraitRubric);\n break;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/controller/lib/utils.js
CHANGED
|
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.markupToText = void 0;
|
|
7
|
-
|
|
8
|
-
var markupToText = function markupToText(s) {
|
|
7
|
+
const markupToText = s => {
|
|
9
8
|
return (s || '').replace(/(<([^>]+)>)/ig, '');
|
|
10
9
|
};
|
|
11
|
-
|
|
12
10
|
exports.markupToText = markupToText;
|
|
13
11
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"utils.js","names":["markupToText","s","replace","exports"],"sources":["../src/utils.js"],"sourcesContent":["export const markupToText = (s) => {\n return (s || '').replace(/(<([^>]+)>)/ig, '');\n};\n"],"mappings":";;;;;;AAAO,MAAMA,YAAY,GAAIC,CAAC,IAAK;EAC/B,OAAO,CAACA,CAAC,IAAI,EAAE,EAAEC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACjD,CAAC;AAACC,OAAA,CAAAH,YAAA,GAAAA,YAAA","ignoreList":[]}
|