@pie-element/complex-rubric 2.4.2-next.21 → 2.4.2-next.22
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/controller/package.json +1 -1
- package/package.json +4 -4
- package/configure/lib/defaults.js +0 -140
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js +0 -241
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -221
- package/configure/lib/main.js.map +0 -1
- package/controller/lib/defaults.js +0 -134
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -307
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/utils.js +0 -13
- package/controller/lib/utils.js.map +0 -1
- package/lib/index.js +0 -232
- package/lib/index.js.map +0 -1
- package/lib/print.js +0 -201
- package/lib/print.js.map +0 -1
- package/module/configure.js +0 -233166
- package/module/controller.js +0 -379
- package/module/demo.js +0 -221
- package/module/element.js +0 -230974
- package/module/index.html +0 -21
- package/module/manifest.json +0 -14
- package/module/print-demo.js +0 -259
- package/module/print.html +0 -18
- package/module/print.js +0 -230946
package/controller/lib/index.js
DELETED
|
@@ -1,307 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.createCorrectResponseSession = void 0;
|
|
9
|
-
exports.createDefaultModel = createDefaultModel;
|
|
10
|
-
exports.getScore = void 0;
|
|
11
|
-
exports.model = model;
|
|
12
|
-
exports.normalize = void 0;
|
|
13
|
-
exports.outcome = outcome;
|
|
14
|
-
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
|
-
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
23
|
-
|
|
24
|
-
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
|
-
// todo the import from pie-lib/rubric might break webpack
|
|
31
|
-
var RUBRIC_TYPES = {
|
|
32
|
-
SIMPLE_RUBRIC: 'simpleRubric',
|
|
33
|
-
MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
|
|
34
|
-
'rubricless': 'rubricless'
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
function createDefaultModel() {
|
|
38
|
-
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
39
|
-
return new Promise(function (resolve) {
|
|
40
|
-
return resolve(_objectSpread(_objectSpread({}, _defaults["default"].model), model));
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
var normalize = function normalize(question) {
|
|
45
|
-
return _objectSpread(_objectSpread({}, _defaults["default"].model), question);
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* @param {*} question
|
|
49
|
-
* @param {*} session
|
|
50
|
-
* @param {*} env
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
exports.normalize = normalize;
|
|
55
|
-
|
|
56
|
-
function model(_x, _x2, _x3) {
|
|
57
|
-
return _model.apply(this, arguments);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function _model() {
|
|
61
|
-
_model = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(question, session, env) {
|
|
62
|
-
var normalizedQuestion, _ref, scales, excludeZero, parsedScales;
|
|
63
|
-
|
|
64
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
65
|
-
while (1) {
|
|
66
|
-
switch (_context.prev = _context.next) {
|
|
67
|
-
case 0:
|
|
68
|
-
normalizedQuestion = normalize(question);
|
|
69
|
-
|
|
70
|
-
if (!(normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC || normalizedQuestion.rubricType === 'rubricless')) {
|
|
71
|
-
_context.next = 5;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return _context.abrupt("return", new Promise(function (resolve) {
|
|
76
|
-
resolve(env && env.role && env.role === 'instructor' ? _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
|
|
77
|
-
rubrics: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics), {}, {
|
|
78
|
-
multiTraitRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.multiTraitRubric), {}, {
|
|
79
|
-
visible: false
|
|
80
|
-
})
|
|
81
|
-
})
|
|
82
|
-
}) : {});
|
|
83
|
-
}));
|
|
84
|
-
|
|
85
|
-
case 5:
|
|
86
|
-
if (!env.role || env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric) {
|
|
87
|
-
normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;
|
|
88
|
-
} else {
|
|
89
|
-
normalizedQuestion.rubrics.multiTraitRubric.visible = true;
|
|
90
|
-
} // todo update pie-ui instead of parsing this here:
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
_ref = normalizedQuestion.rubrics.multiTraitRubric || {}, scales = _ref.scales, excludeZero = _ref.excludeZero;
|
|
94
|
-
parsedScales = (scales || []).map(function (scale) {
|
|
95
|
-
return _objectSpread(_objectSpread({}, scale), {}, {
|
|
96
|
-
excludeZero: excludeZero
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
return _context.abrupt("return", _objectSpread(_objectSpread({}, normalizedQuestion), {}, {
|
|
100
|
-
rubrics: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics), {}, {
|
|
101
|
-
simpleRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.simpleRubric), {}, {
|
|
102
|
-
visible: false
|
|
103
|
-
}),
|
|
104
|
-
rubricless: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.rubricless), {}, {
|
|
105
|
-
visible: false
|
|
106
|
-
}),
|
|
107
|
-
multiTraitRubric: _objectSpread(_objectSpread({}, normalizedQuestion.rubrics.multiTraitRubric), {}, {
|
|
108
|
-
scales: parsedScales
|
|
109
|
-
})
|
|
110
|
-
})
|
|
111
|
-
}));
|
|
112
|
-
|
|
113
|
-
case 9:
|
|
114
|
-
case "end":
|
|
115
|
-
return _context.stop();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}, _callee);
|
|
119
|
-
}));
|
|
120
|
-
return _model.apply(this, arguments);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
var getScore = function getScore() {
|
|
124
|
-
return 0;
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* @param {Object} model - the main model
|
|
128
|
-
* @param {*} session
|
|
129
|
-
* @param {Object} env
|
|
130
|
-
*/
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
exports.getScore = getScore;
|
|
134
|
-
|
|
135
|
-
function outcome() {
|
|
136
|
-
return new Promise(function (resolve) {
|
|
137
|
-
return resolve({
|
|
138
|
-
score: 0,
|
|
139
|
-
empty: true
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
var createCorrectResponseSession = function createCorrectResponseSession(question, env) {
|
|
145
|
-
return new Promise(function (resolve) {
|
|
146
|
-
if (env.mode !== 'evaluate' && env.role === 'instructor') {
|
|
147
|
-
resolve({
|
|
148
|
-
id: '1'
|
|
149
|
-
});
|
|
150
|
-
} else {
|
|
151
|
-
resolve(null);
|
|
152
|
-
}
|
|
153
|
-
});
|
|
154
|
-
}; // IMPORTANT! This function is a duplicate of rubric/controller/validate function!
|
|
155
|
-
// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
exports.createCorrectResponseSession = createCorrectResponseSession;
|
|
159
|
-
|
|
160
|
-
var validateSimpleRubric = function validateSimpleRubric(model) {
|
|
161
|
-
var points = model.points,
|
|
162
|
-
excludeZero = model.excludeZero;
|
|
163
|
-
var errors = {};
|
|
164
|
-
var pointsDescriptorsErrors = {};
|
|
165
|
-
(points || []).forEach(function (point, index) {
|
|
166
|
-
if (index === 0 && excludeZero) {
|
|
167
|
-
// if excludeZero is true, the 0 point is not displayed, so it should not be validated
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
if (!point || point === '<div></div>') {
|
|
172
|
-
pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
|
|
173
|
-
} else {
|
|
174
|
-
var identicalPointDescr = points.slice(index + 1).some(function (p) {
|
|
175
|
-
return (0, _utils.markupToText)(p) === (0, _utils.markupToText)(point);
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
if (identicalPointDescr) {
|
|
179
|
-
pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
|
|
184
|
-
if (Object.keys(pointsDescriptorsErrors).length > 0) {
|
|
185
|
-
errors.pointsDescriptorsErrors = pointsDescriptorsErrors;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return errors;
|
|
189
|
-
}; // IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!
|
|
190
|
-
// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
var validateMultiTraitRubric = function validateMultiTraitRubric(model) {
|
|
194
|
-
var scales = model.scales,
|
|
195
|
-
_model$description = model.description,
|
|
196
|
-
description = _model$description === void 0 ? false : _model$description,
|
|
197
|
-
_model$pointLabels = model.pointLabels,
|
|
198
|
-
pointLabels = _model$pointLabels === void 0 ? false : _model$pointLabels;
|
|
199
|
-
var errors = {};
|
|
200
|
-
var traitsErrors = {};
|
|
201
|
-
var scorePointsErrors = {};
|
|
202
|
-
(scales || []).forEach(function (scale, scaleIndex) {
|
|
203
|
-
var _scale$traits = scale.traits,
|
|
204
|
-
traits = _scale$traits === void 0 ? [] : _scale$traits;
|
|
205
|
-
var _scale$scorePointsLab = scale.scorePointsLabels,
|
|
206
|
-
scorePointsLabels = _scale$scorePointsLab === void 0 ? [] : _scale$scorePointsLab;
|
|
207
|
-
var scaleErrors = {};
|
|
208
|
-
var scorePointsLabelsErrors = {};
|
|
209
|
-
|
|
210
|
-
if (pointLabels) {
|
|
211
|
-
scorePointsLabels.forEach(function (scorePointLabel, scoreIndex) {
|
|
212
|
-
if (!scorePointLabel || scorePointLabel === '<div></div>') {
|
|
213
|
-
scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';
|
|
214
|
-
} else {
|
|
215
|
-
var identicalScorePointLabel = scorePointsLabels.slice(scoreIndex + 1).some(function (s) {
|
|
216
|
-
return (0, _utils.markupToText)(s) === (0, _utils.markupToText)(scorePointLabel);
|
|
217
|
-
});
|
|
218
|
-
|
|
219
|
-
if (identicalScorePointLabel) {
|
|
220
|
-
scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
if (Object.keys(scorePointsLabelsErrors).length > 0) {
|
|
227
|
-
scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
traits.forEach(function (trait, traitIndex) {
|
|
231
|
-
if (!trait.name || trait.name === '<div></div>') {
|
|
232
|
-
scaleErrors[traitIndex] = {
|
|
233
|
-
name: 'Trait names should not be empty.'
|
|
234
|
-
};
|
|
235
|
-
} else {
|
|
236
|
-
var identicalTraitName = traits.slice(traitIndex + 1).some(function (t) {
|
|
237
|
-
return (0, _utils.markupToText)(t.name) === (0, _utils.markupToText)(trait.name);
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
if (identicalTraitName) {
|
|
241
|
-
scaleErrors[traitIndex] = {
|
|
242
|
-
name: 'Trait names should be unique.'
|
|
243
|
-
};
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
if (description && (!trait.description || trait.description === '<div></div>')) {
|
|
248
|
-
scaleErrors[traitIndex] = _objectSpread(_objectSpread({}, scaleErrors[traitIndex]), {}, {
|
|
249
|
-
description: 'Trait description should not be empty'
|
|
250
|
-
});
|
|
251
|
-
} else {
|
|
252
|
-
var identicalTraitDescr = traits.slice(traitIndex + 1).some(function (t) {
|
|
253
|
-
return (0, _utils.markupToText)(t.description) === (0, _utils.markupToText)(trait.description);
|
|
254
|
-
});
|
|
255
|
-
|
|
256
|
-
if (description && identicalTraitDescr) {
|
|
257
|
-
scaleErrors[traitIndex] = _objectSpread(_objectSpread({}, scaleErrors[traitIndex]), {}, {
|
|
258
|
-
description: 'Trait descriptions should be unique.'
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
|
|
264
|
-
if (Object.keys(scaleErrors).length > 0) {
|
|
265
|
-
traitsErrors[scaleIndex] = scaleErrors;
|
|
266
|
-
}
|
|
267
|
-
});
|
|
268
|
-
|
|
269
|
-
if (Object.keys(traitsErrors).length > 0) {
|
|
270
|
-
errors.traitsErrors = traitsErrors;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
if (Object.keys(scorePointsErrors).length > 0) {
|
|
274
|
-
errors.scorePointsErrors = scorePointsErrors;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
return errors;
|
|
278
|
-
};
|
|
279
|
-
|
|
280
|
-
var validate = function validate() {
|
|
281
|
-
var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
282
|
-
var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
283
|
-
var _model$rubrics = model.rubrics,
|
|
284
|
-
rubrics = _model$rubrics === void 0 ? {} : _model$rubrics,
|
|
285
|
-
rubricType = model.rubricType;
|
|
286
|
-
var _rubrics$multiTraitRu = rubrics.multiTraitRubric,
|
|
287
|
-
multiTraitRubric = _rubrics$multiTraitRu === void 0 ? {} : _rubrics$multiTraitRu,
|
|
288
|
-
_rubrics$simpleRubric = rubrics.simpleRubric,
|
|
289
|
-
simpleRubric = _rubrics$simpleRubric === void 0 ? {} : _rubrics$simpleRubric;
|
|
290
|
-
var errors = {};
|
|
291
|
-
|
|
292
|
-
switch (rubricType) {
|
|
293
|
-
case RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
294
|
-
default:
|
|
295
|
-
errors = validateSimpleRubric(simpleRubric);
|
|
296
|
-
break;
|
|
297
|
-
|
|
298
|
-
case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
299
|
-
errors = validateMultiTraitRubric(multiTraitRubric);
|
|
300
|
-
break;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
return errors;
|
|
304
|
-
};
|
|
305
|
-
|
|
306
|
-
exports.validate = validate;
|
|
307
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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","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":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA;AACA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,aAAa,EAAE,cADI;AAEnBC,EAAAA,kBAAkB,EAAE,kBAFD;AAGnB,gBAAc;AAHK,CAArB;;AAMO,SAASC,kBAAT,GAAwC;AAAA,MAAZC,KAAY,uEAAJ,EAAI;AAC7C,SAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaA,OAAO,iCAAMC,qBAASH,KAAf,GAAyBA,KAAzB,EAApB;AAAA,GAAZ,CAAP;AACD;;AAEM,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAACC,QAAD;AAAA,yCAAoBF,qBAASH,KAA7B,GAAuCK,QAAvC;AAAA,CAAlB;AAEP;AACA;AACA;AACA;AACA;;;;;SACsBL,K;;;;;yFAAf,iBAAqBK,QAArB,EAA+BC,OAA/B,EAAwCC,GAAxC;AAAA;;AAAA;AAAA;AAAA;AAAA;AACCC,YAAAA,kBADD,GACsBJ,SAAS,CAACC,QAAD,CAD/B;;AAAA,kBAGDG,kBAAkB,CAACC,UAAnB,KAAkCb,YAAY,CAACC,aAA/C,IAAgEW,kBAAkB,CAACC,UAAnB,KAAkC,YAHjG;AAAA;AAAA;AAAA;;AAAA,6CAII,IAAIR,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9BA,cAAAA,OAAO,CACLK,GAAG,IAAIA,GAAG,CAACG,IAAX,IAAmBH,GAAG,CAACG,IAAJ,KAAa,YAAhC,mCAEOF,kBAFP;AAGIG,gBAAAA,OAAO,kCACFH,kBAAkB,CAACG,OADjB;AAELC,kBAAAA,gBAAgB,kCACXJ,kBAAkB,CAACG,OAAnB,CAA2BC,gBADhB;AAEdC,oBAAAA,OAAO,EAAE;AAFK;AAFX;AAHX,mBAWI,EAZC,CAAP;AAcD,aAfM,CAJJ;;AAAA;AAqBH,gBACE,CAACN,GAAG,CAACG,IAAL,IACCH,GAAG,CAACG,IAAJ,KAAa,SAAb,IAA0BF,kBAAkB,CAACG,OAA7C,IAAwDH,kBAAkB,CAACG,OAAnB,CAA2BC,gBAFtF,EAGE;AACAJ,cAAAA,kBAAkB,CAACG,OAAnB,CAA2BC,gBAA3B,CAA4CC,OAA5C,GAAsDL,kBAAkB,CAACM,gBAAzE;AACD,aALD,MAKO;AACLN,cAAAA,kBAAkB,CAACG,OAAnB,CAA2BC,gBAA3B,CAA4CC,OAA5C,GAAsD,IAAtD;AACD,aA5BE,CA8BH;;;AA9BG,mBA+B6BL,kBAAkB,CAACG,OAAnB,CAA2BC,gBAA3B,IAA+C,EA/B5E,EA+BKG,MA/BL,QA+BKA,MA/BL,EA+BaC,WA/Bb,QA+BaA,WA/Bb;AAgCGC,YAAAA,YAhCH,GAgCkB,CAACF,MAAM,IAAI,EAAX,EAAeG,GAAf,CAAmB,UAACC,KAAD;AAAA,qDAAiBA,KAAjB;AAAwBH,gBAAAA,WAAW,EAAXA;AAAxB;AAAA,aAAnB,CAhClB;AAAA,6EAmCER,kBAnCF;AAoCDG,cAAAA,OAAO,kCACFH,kBAAkB,CAACG,OADjB;AAELS,gBAAAA,YAAY,kCACPZ,kBAAkB,CAACG,OAAnB,CAA2BS,YADpB;AAEVP,kBAAAA,OAAO,EAAE;AAFC,kBAFP;AAMLQ,gBAAAA,UAAU,kCACLb,kBAAkB,CAACG,OAAnB,CAA2BU,UADtB;AAERR,kBAAAA,OAAO,EAAE;AAFD,kBANL;AAULD,gBAAAA,gBAAgB,kCACXJ,kBAAkB,CAACG,OAAnB,CAA2BC,gBADhB;AAEdG,kBAAAA,MAAM,EAAEE;AAFM;AAVX;AApCN;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G;;;;AAuDA,IAAMK,QAAQ,GAAG,SAAXA,QAAW;AAAA,SAAM,CAAN;AAAA,CAAjB;AAEP;AACA;AACA;AACA;AACA;;;;;AACO,SAASC,OAAT,GAAmB;AACxB,SAAO,IAAItB,OAAJ,CAAY,UAACC,OAAD;AAAA,WAAaA,OAAO,CAAC;AAAEsB,MAAAA,KAAK,EAAE,CAAT;AAAYC,MAAAA,KAAK,EAAE;AAAnB,KAAD,CAApB;AAAA,GAAZ,CAAP;AACD;;AAEM,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACrB,QAAD,EAAWE,GAAX,EAAmB;AAC7D,SAAO,IAAIN,OAAJ,CAAY,UAACC,OAAD,EAAa;AAC9B,QAAIK,GAAG,CAACoB,IAAJ,KAAa,UAAb,IAA2BpB,GAAG,CAACG,IAAJ,KAAa,YAA5C,EAA0D;AACxDR,MAAAA,OAAO,CAAC;AAAE0B,QAAAA,EAAE,EAAE;AAAN,OAAD,CAAP;AACD,KAFD,MAEO;AACL1B,MAAAA,OAAO,CAAC,IAAD,CAAP;AACD;AACF,GANM,CAAP;AAOD,CARM,C,CAUP;AACA;;;;;AACA,IAAM2B,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAC7B,KAAD,EAAW;AACtC,MAAQ8B,MAAR,GAAgC9B,KAAhC,CAAQ8B,MAAR;AAAA,MAAgBd,WAAhB,GAAgChB,KAAhC,CAAgBgB,WAAhB;AACA,MAAMe,MAAM,GAAG,EAAf;AACA,MAAMC,uBAAuB,GAAG,EAAhC;AAEA,GAACF,MAAM,IAAI,EAAX,EAAeG,OAAf,CAAuB,UAACC,KAAD,EAAQC,KAAR,EAAkB;AACvC,QAAIA,KAAK,KAAK,CAAV,IAAenB,WAAnB,EAAgC;AAC9B;AACA;AACD;;AAED,QAAI,CAACkB,KAAD,IAAUA,KAAK,KAAK,aAAxB,EAAuC;AACrCF,MAAAA,uBAAuB,CAACG,KAAD,CAAvB,GAAiC,qCAAjC;AACD,KAFD,MAEO;AACL,UAAMC,mBAAmB,GAAGN,MAAM,CAACO,KAAP,CAAaF,KAAK,GAAG,CAArB,EAAwBG,IAAxB,CAA6B,UAAAC,CAAC;AAAA,eAAI,yBAAaA,CAAb,MAAoB,yBAAaL,KAAb,CAAxB;AAAA,OAA9B,CAA5B;;AAEA,UAAIE,mBAAJ,EAAyB;AACvBJ,QAAAA,uBAAuB,CAACG,KAAD,CAAvB,GAAiC,sCAAjC;AACD;AACF;AACF,GAfD;;AAiBA,MAAIK,MAAM,CAACC,IAAP,CAAYT,uBAAZ,EAAqCU,MAArC,GAA8C,CAAlD,EAAqD;AACnDX,IAAAA,MAAM,CAACC,uBAAP,GAAiCA,uBAAjC;AACD;;AAED,SAAOD,MAAP;AACD,CA3BD,C,CA6BA;AACA;;;AACA,IAAMY,wBAAwB,GAAG,SAA3BA,wBAA2B,CAAC3C,KAAD,EAAW;AAC1C,MAAQe,MAAR,GAA6Df,KAA7D,CAAQe,MAAR;AAAA,2BAA6Df,KAA7D,CAAgB4C,WAAhB;AAAA,MAAgBA,WAAhB,mCAA8B,KAA9B;AAAA,2BAA6D5C,KAA7D,CAAqC6C,WAArC;AAAA,MAAqCA,WAArC,mCAAmD,KAAnD;AACA,MAAMd,MAAM,GAAG,EAAf;AACA,MAAMe,YAAY,GAAG,EAArB;AACA,MAAMC,iBAAiB,GAAG,EAA1B;AAEA,GAAChC,MAAM,IAAI,EAAX,EAAekB,OAAf,CAAuB,UAACd,KAAD,EAAQ6B,UAAR,EAAuB;AAC5C,wBAAwB7B,KAAxB,CAAQ8B,MAAR;AAAA,QAAQA,MAAR,8BAAiB,EAAjB;AACA,gCAAmC9B,KAAnC,CAAQ+B,iBAAR;AAAA,QAAQA,iBAAR,sCAA4B,EAA5B;AACA,QAAMC,WAAW,GAAG,EAApB;AACA,QAAMC,uBAAuB,GAAG,EAAhC;;AAEA,QAAGP,WAAH,EAAgB;AACdK,MAAAA,iBAAiB,CAACjB,OAAlB,CAA0B,UAACoB,eAAD,EAAkBC,UAAlB,EAAiC;AACzD,YAAI,CAACD,eAAD,IAAoBA,eAAe,KAAK,aAA5C,EAA2D;AACzDD,UAAAA,uBAAuB,CAACE,UAAD,CAAvB,GAAsC,oCAAtC;AACD,SAFD,MAEO;AACL,cAAMC,wBAAwB,GAAGL,iBAAiB,CAACb,KAAlB,CAAwBiB,UAAU,GAAG,CAArC,EAAwChB,IAAxC,CAA6C,UAAAkB,CAAC;AAAA,mBAAI,yBAAaA,CAAb,MAAoB,yBAAaH,eAAb,CAAxB;AAAA,WAA9C,CAAjC;;AAEA,cAAIE,wBAAJ,EAA8B;AAC5BH,YAAAA,uBAAuB,CAACE,UAAD,CAAvB,GAAsC,iCAAtC;AACD;AACF;AACF,OAVD;AAWD;;AAED,QAAGd,MAAM,CAACC,IAAP,CAAYW,uBAAZ,EAAqCV,MAArC,GAA8C,CAAjD,EAAmD;AACjDK,MAAAA,iBAAiB,CAACC,UAAD,CAAjB,GAAgCI,uBAAhC;AACD;;AAEDH,IAAAA,MAAM,CAAChB,OAAP,CAAe,UAACwB,KAAD,EAAQC,UAAR,EAAuB;AACpC,UAAG,CAACD,KAAK,CAACE,IAAP,IAAeF,KAAK,CAACE,IAAN,KAAe,aAAjC,EAAgD;AAC9CR,QAAAA,WAAW,CAACO,UAAD,CAAX,GAA0B;AAACC,UAAAA,IAAI,EAAE;AAAP,SAA1B;AACD,OAFD,MAGI;AACF,YAAMC,kBAAkB,GAAGX,MAAM,CAACZ,KAAP,CAAaqB,UAAU,GAAG,CAA1B,EAA6BpB,IAA7B,CAAkC,UAAAuB,CAAC;AAAA,iBAAI,yBAAaA,CAAC,CAACF,IAAf,MAAyB,yBAAaF,KAAK,CAACE,IAAnB,CAA7B;AAAA,SAAnC,CAA3B;;AAEA,YAAIC,kBAAJ,EAAwB;AACtBT,UAAAA,WAAW,CAACO,UAAD,CAAX,GAA0B;AAACC,YAAAA,IAAI,EAAE;AAAP,WAA1B;AACD;AACF;;AACD,UAAGf,WAAW,KAAK,CAACa,KAAK,CAACb,WAAP,IAAsBa,KAAK,CAACb,WAAN,KAAsB,aAAjD,CAAd,EAA+E;AAC7EO,QAAAA,WAAW,CAACO,UAAD,CAAX,mCAA+BP,WAAW,CAACO,UAAD,CAA1C;AAAwDd,UAAAA,WAAW,EAAE;AAArE;AACD,OAFD,MAGI;AACF,YAAMkB,mBAAmB,GAAGb,MAAM,CAACZ,KAAP,CAAaqB,UAAU,GAAG,CAA1B,EAA6BpB,IAA7B,CAAkC,UAAAuB,CAAC;AAAA,iBAAI,yBAAaA,CAAC,CAACjB,WAAf,MAAgC,yBAAaa,KAAK,CAACb,WAAnB,CAApC;AAAA,SAAnC,CAA5B;;AAEA,YAAIA,WAAW,IAAIkB,mBAAnB,EAAwC;AACtCX,UAAAA,WAAW,CAACO,UAAD,CAAX,mCAA+BP,WAAW,CAACO,UAAD,CAA1C;AAAwDd,YAAAA,WAAW,EAAE;AAArE;AACD;AACF;AAEF,KAtBD;;AAuBA,QAAGJ,MAAM,CAACC,IAAP,CAAYU,WAAZ,EAAyBT,MAAzB,GAAkC,CAArC,EAAuC;AACrCI,MAAAA,YAAY,CAACE,UAAD,CAAZ,GAA2BG,WAA3B;AACD;AACF,GAlDD;;AAoDA,MAAGX,MAAM,CAACC,IAAP,CAAYK,YAAZ,EAA0BJ,MAA1B,GAAmC,CAAtC,EAAwC;AACtCX,IAAAA,MAAM,CAACe,YAAP,GAAsBA,YAAtB;AACD;;AAED,MAAGN,MAAM,CAACC,IAAP,CAAYM,iBAAZ,EAA+BL,MAA/B,GAAwC,CAA3C,EAA6C;AAC3CX,IAAAA,MAAM,CAACgB,iBAAP,GAA2BA,iBAA3B;AACD;;AAED,SAAOhB,MAAP;AACD,CAnED;;AAsEO,IAAMgC,QAAQ,GAAG,SAAXA,QAAW,GAA6B;AAAA,MAA5B/D,KAA4B,uEAApB,EAAoB;AAAA,MAAhBgE,MAAgB,uEAAP,EAAO;AACnD,uBAAqChE,KAArC,CAAQW,OAAR;AAAA,MAAQA,OAAR,+BAAkB,EAAlB;AAAA,MAAsBF,UAAtB,GAAqCT,KAArC,CAAsBS,UAAtB;AACA,8BAAqDE,OAArD,CAAQC,gBAAR;AAAA,MAAQA,gBAAR,sCAA2B,EAA3B;AAAA,8BAAqDD,OAArD,CAA+BS,YAA/B;AAAA,MAA+BA,YAA/B,sCAA8C,EAA9C;AACA,MAAIW,MAAM,GAAG,EAAb;;AAEA,UAAQtB,UAAR;AACE,SAAKb,YAAY,CAACC,aAAlB;AACA;AACEkC,MAAAA,MAAM,GAAGF,oBAAoB,CAACT,YAAD,CAA7B;AACA;;AACF,SAAKxB,YAAY,CAACE,kBAAlB;AACEiC,MAAAA,MAAM,GAAGY,wBAAwB,CAAC/B,gBAAD,CAAjC;AACA;AAPJ;;AAUA,SAAOmB,MAAP;AACD,CAhBM","sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n// todo the import from pie-lib/rubric might break webpack\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, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults.model, ...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 (normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC || normalizedQuestion.rubricType === 'rubricless') {\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, excludeZero } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n if (index === 0 && excludeZero) {\n // if excludeZero is true, the 0 point is not displayed, so it should not be validated\n return;\n }\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.slice(scoreIndex + 1).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 }\n else{\n const identicalTraitName = traits.slice(traitIndex + 1).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 }\n else{\n const identicalTraitDescr = traits.slice(traitIndex + 1).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 });\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\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"}
|
package/controller/lib/utils.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.markupToText = void 0;
|
|
7
|
-
|
|
8
|
-
var markupToText = function markupToText(s) {
|
|
9
|
-
return (s || '').replace(/(<([^>]+)>)/ig, '');
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
exports.markupToText = markupToText;
|
|
13
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["markupToText","s","replace"],"mappings":";;;;;;;AAAO,IAAMA,YAAY,GAAG,SAAfA,YAAe,CAACC,CAAD,EAAO;AAC/B,SAAO,CAACA,CAAC,IAAI,EAAN,EAAUC,OAAV,CAAkB,eAAlB,EAAmC,EAAnC,CAAP;AACH,CAFM","sourcesContent":["export const markupToText = (s) => {\n return (s || '').replace(/(<([^>]+)>)/ig, '');\n};\n"],"file":"utils.js"}
|
package/lib/index.js
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
13
|
-
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
-
|
|
18
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
-
|
|
22
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
-
|
|
24
|
-
var _rubric = _interopRequireDefault(require("@pie-element/rubric"));
|
|
25
|
-
|
|
26
|
-
var _multiTraitRubric = _interopRequireDefault(require("@pie-element/multi-trait-rubric"));
|
|
27
|
-
|
|
28
|
-
var _rubric2 = require("@pie-lib/pie-toolbox/rubric");
|
|
29
|
-
|
|
30
|
-
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; }
|
|
31
|
-
|
|
32
|
-
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; }
|
|
33
|
-
|
|
34
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
35
|
-
|
|
36
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
37
|
-
|
|
38
|
-
var RUBRIC_TAG_NAME = 'complex-rubric-simple';
|
|
39
|
-
var MULTI_TRAIT_RUBRIC_TAG_NAME = 'complex-rubric-multi-trait';
|
|
40
|
-
|
|
41
|
-
var ComplexRubricSimple = /*#__PURE__*/function (_Rubric) {
|
|
42
|
-
(0, _inherits2["default"])(ComplexRubricSimple, _Rubric);
|
|
43
|
-
|
|
44
|
-
var _super = _createSuper(ComplexRubricSimple);
|
|
45
|
-
|
|
46
|
-
function ComplexRubricSimple() {
|
|
47
|
-
(0, _classCallCheck2["default"])(this, ComplexRubricSimple);
|
|
48
|
-
return _super.apply(this, arguments);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return (0, _createClass2["default"])(ComplexRubricSimple);
|
|
52
|
-
}(_rubric["default"]);
|
|
53
|
-
|
|
54
|
-
var ComplexRubricMultiTrait = /*#__PURE__*/function (_MultiTraitRubric) {
|
|
55
|
-
(0, _inherits2["default"])(ComplexRubricMultiTrait, _MultiTraitRubric);
|
|
56
|
-
|
|
57
|
-
var _super2 = _createSuper(ComplexRubricMultiTrait);
|
|
58
|
-
|
|
59
|
-
function ComplexRubricMultiTrait() {
|
|
60
|
-
(0, _classCallCheck2["default"])(this, ComplexRubricMultiTrait);
|
|
61
|
-
return _super2.apply(this, arguments);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return (0, _createClass2["default"])(ComplexRubricMultiTrait);
|
|
65
|
-
}(_multiTraitRubric["default"]);
|
|
66
|
-
|
|
67
|
-
var defineRubrics = function defineRubrics() {
|
|
68
|
-
if (!customElements.get(RUBRIC_TAG_NAME)) {
|
|
69
|
-
customElements.define(RUBRIC_TAG_NAME, ComplexRubricSimple);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (!customElements.get(MULTI_TRAIT_RUBRIC_TAG_NAME)) {
|
|
73
|
-
customElements.define(MULTI_TRAIT_RUBRIC_TAG_NAME, ComplexRubricMultiTrait);
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
defineRubrics();
|
|
78
|
-
|
|
79
|
-
var ComplexRubric = /*#__PURE__*/function (_HTMLElement) {
|
|
80
|
-
(0, _inherits2["default"])(ComplexRubric, _HTMLElement);
|
|
81
|
-
|
|
82
|
-
var _super3 = _createSuper(ComplexRubric);
|
|
83
|
-
|
|
84
|
-
function ComplexRubric() {
|
|
85
|
-
var _this;
|
|
86
|
-
|
|
87
|
-
(0, _classCallCheck2["default"])(this, ComplexRubric);
|
|
88
|
-
_this = _super3.call(this);
|
|
89
|
-
_this._model = {};
|
|
90
|
-
_this._type = _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC;
|
|
91
|
-
return _this;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
(0, _createClass2["default"])(ComplexRubric, [{
|
|
95
|
-
key: "type",
|
|
96
|
-
get: function get() {
|
|
97
|
-
return this._type;
|
|
98
|
-
},
|
|
99
|
-
set: function set(t) {
|
|
100
|
-
this._type = t;
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "model",
|
|
104
|
-
set: function set(m) {
|
|
105
|
-
var _this2 = this;
|
|
106
|
-
|
|
107
|
-
this._model = m;
|
|
108
|
-
var oldType = this._type;
|
|
109
|
-
this.type = m.rubricType;
|
|
110
|
-
|
|
111
|
-
switch (this._type) {
|
|
112
|
-
case _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
113
|
-
default:
|
|
114
|
-
customElements.whenDefined(RUBRIC_TAG_NAME).then(function () {
|
|
115
|
-
_this2.setRubricModel(_this2.simpleRubric);
|
|
116
|
-
});
|
|
117
|
-
break;
|
|
118
|
-
|
|
119
|
-
case _rubric2.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
120
|
-
customElements.whenDefined(MULTI_TRAIT_RUBRIC_TAG_NAME).then(function () {
|
|
121
|
-
_this2.setMultiTraitRubricModel(_this2.multiTraitRubric);
|
|
122
|
-
});
|
|
123
|
-
break;
|
|
124
|
-
|
|
125
|
-
case _rubric2.RUBRIC_TYPES.RUBRICLESS:
|
|
126
|
-
customElements.whenDefined(RUBRIC_TAG_NAME).then(function () {
|
|
127
|
-
_this2.setRubriclessModel(_this2.rubricless);
|
|
128
|
-
});
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (oldType !== this.type) {
|
|
133
|
-
this._render();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}, {
|
|
137
|
-
key: "setRubricModel",
|
|
138
|
-
value: function setRubricModel(simpleRubric) {
|
|
139
|
-
if (this._model && this._model.rubrics && this._model.rubrics.simpleRubric) {
|
|
140
|
-
var mode = this._model.mode;
|
|
141
|
-
simpleRubric.model = _objectSpread(_objectSpread({}, this._model.rubrics.simpleRubric), {}, {
|
|
142
|
-
mode: mode
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}, {
|
|
147
|
-
key: "setMultiTraitRubricModel",
|
|
148
|
-
value: function setMultiTraitRubricModel(multiTraitRubric) {
|
|
149
|
-
if (this._model && this._model.rubrics && this._model.rubrics.multiTraitRubric) {
|
|
150
|
-
var mode = this._model.mode;
|
|
151
|
-
multiTraitRubric.model = _objectSpread(_objectSpread({}, this._model.rubrics.multiTraitRubric), {}, {
|
|
152
|
-
mode: mode
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}, {
|
|
157
|
-
key: "setRubriclessModel",
|
|
158
|
-
value: function setRubriclessModel(rubricless) {
|
|
159
|
-
if (this._model && this._model.rubrics && this._model.rubrics.rubricless) {
|
|
160
|
-
var mode = this._model.mode;
|
|
161
|
-
rubricless.model = _objectSpread(_objectSpread({}, this._model.rubrics.rubricless), {}, {
|
|
162
|
-
mode: mode
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}, {
|
|
167
|
-
key: "multiTraitRubric",
|
|
168
|
-
get: function get() {
|
|
169
|
-
return this.querySelector("".concat(MULTI_TRAIT_RUBRIC_TAG_NAME, "#multiTraitRubric"));
|
|
170
|
-
}
|
|
171
|
-
}, {
|
|
172
|
-
key: "simpleRubric",
|
|
173
|
-
get: function get() {
|
|
174
|
-
return this.querySelector("".concat(RUBRIC_TAG_NAME, "#simpleRubric"));
|
|
175
|
-
}
|
|
176
|
-
}, {
|
|
177
|
-
key: "rubricless",
|
|
178
|
-
get: function get() {
|
|
179
|
-
return this.querySelector("".concat(RUBRIC_TAG_NAME, "#rubricless"));
|
|
180
|
-
}
|
|
181
|
-
}, {
|
|
182
|
-
key: "connectedCallback",
|
|
183
|
-
value: function connectedCallback() {
|
|
184
|
-
this._render();
|
|
185
|
-
}
|
|
186
|
-
}, {
|
|
187
|
-
key: "_render",
|
|
188
|
-
value: function _render() {
|
|
189
|
-
var rubricTag;
|
|
190
|
-
|
|
191
|
-
if (this._type === _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC) {
|
|
192
|
-
rubricTag = "<".concat(RUBRIC_TAG_NAME, " id=\"simpleRubric\" />");
|
|
193
|
-
} else if (this._type === _rubric2.RUBRIC_TYPES.RUBRICLESS) {
|
|
194
|
-
rubricTag = "<".concat(RUBRIC_TAG_NAME, " id=\"rubricless\" />");
|
|
195
|
-
} else {
|
|
196
|
-
rubricTag = "<".concat(MULTI_TRAIT_RUBRIC_TAG_NAME, " id=\"multiTraitRubric\" />");
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
this.innerHTML = rubricTag; // when item is re-rendered (due to connectedCallback), if the custom element is already defined,
|
|
200
|
-
// we need to set the model and session, otherwise the setters are not reached again
|
|
201
|
-
|
|
202
|
-
switch (this._type) {
|
|
203
|
-
case _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
204
|
-
default:
|
|
205
|
-
if (customElements.get(RUBRIC_TAG_NAME)) {
|
|
206
|
-
this.setRubricModel(this.simpleRubric);
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
break;
|
|
210
|
-
|
|
211
|
-
case _rubric2.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
212
|
-
if (customElements.get(MULTI_TRAIT_RUBRIC_TAG_NAME)) {
|
|
213
|
-
this.setMultiTraitRubricModel(this.multiTraitRubric);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
break;
|
|
217
|
-
|
|
218
|
-
case _rubric2.RUBRIC_TYPES.RUBRICLESS:
|
|
219
|
-
if (customElements.get(RUBRIC_TAG_NAME)) {
|
|
220
|
-
this.setRubriclessModel(this.rubricless);
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}]);
|
|
227
|
-
return ComplexRubric;
|
|
228
|
-
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
|
|
229
|
-
|
|
230
|
-
var _default = ComplexRubric;
|
|
231
|
-
exports["default"] = _default;
|
|
232
|
-
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TAG_NAME","MULTI_TRAIT_RUBRIC_TAG_NAME","ComplexRubricSimple","Rubric","ComplexRubricMultiTrait","MultiTraitRubric","defineRubrics","customElements","get","define","ComplexRubric","_model","_type","RUBRIC_TYPES","SIMPLE_RUBRIC","t","m","oldType","type","rubricType","whenDefined","then","setRubricModel","simpleRubric","MULTI_TRAIT_RUBRIC","setMultiTraitRubricModel","multiTraitRubric","RUBRICLESS","setRubriclessModel","rubricless","_render","rubrics","mode","model","querySelector","rubricTag","innerHTML","HTMLElement"],"mappings":"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","sourcesContent":["import Rubric from '@pie-element/rubric';\nimport MultiTraitRubric from '@pie-element/multi-trait-rubric';\nimport { RUBRIC_TYPES } from '@pie-lib/pie-toolbox/rubric';\n\nconst RUBRIC_TAG_NAME = 'complex-rubric-simple';\nconst MULTI_TRAIT_RUBRIC_TAG_NAME = 'complex-rubric-multi-trait';\n\nclass ComplexRubricSimple extends Rubric {\n}\n\nclass ComplexRubricMultiTrait extends MultiTraitRubric {\n}\n\nconst defineRubrics = () => {\n if (!customElements.get(RUBRIC_TAG_NAME)) {\n customElements.define(RUBRIC_TAG_NAME, ComplexRubricSimple);\n }\n\n if (!customElements.get(MULTI_TRAIT_RUBRIC_TAG_NAME)) {\n customElements.define(MULTI_TRAIT_RUBRIC_TAG_NAME, ComplexRubricMultiTrait);\n }\n};\n\ndefineRubrics();\n\nclass ComplexRubric extends HTMLElement {\n constructor() {\n super();\n this._model = {};\n this._type = RUBRIC_TYPES.SIMPLE_RUBRIC;\n }\n\n set type(t) {\n this._type = t;\n }\n\n get type() {\n return this._type;\n }\n\n set model(m) {\n this._model = m;\n const oldType = this._type;\n this.type = m.rubricType;\n\n switch (this._type) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n customElements.whenDefined(RUBRIC_TAG_NAME).then(() => {\n this.setRubricModel(this.simpleRubric);\n });\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n customElements.whenDefined(MULTI_TRAIT_RUBRIC_TAG_NAME).then(() => {\n this.setMultiTraitRubricModel(this.multiTraitRubric);\n });\n break;\n case RUBRIC_TYPES.RUBRICLESS:\n customElements.whenDefined(RUBRIC_TAG_NAME).then(() => {\n this.setRubriclessModel(this.rubricless);\n });\n break;\n }\n\n if (oldType !== this.type) {\n this._render();\n }\n }\n\n setRubricModel(simpleRubric) {\n if (this._model && this._model.rubrics && this._model.rubrics.simpleRubric) {\n const { mode } = this._model;\n\n simpleRubric.model = {\n ...this._model.rubrics.simpleRubric,\n mode,\n };\n }\n }\n\n setMultiTraitRubricModel(multiTraitRubric) {\n if (this._model && this._model.rubrics && this._model.rubrics.multiTraitRubric) {\n const { mode } = this._model;\n\n multiTraitRubric.model = {\n ...this._model.rubrics.multiTraitRubric,\n mode,\n };\n }\n }\n\n setRubriclessModel(rubricless) {\n if (this._model && this._model.rubrics && this._model.rubrics.rubricless) {\n const { mode } = this._model;\n\n rubricless.model = {\n ...this._model.rubrics.rubricless,\n mode,\n };\n }\n }\n\n get multiTraitRubric() {\n return this.querySelector(`${MULTI_TRAIT_RUBRIC_TAG_NAME}#multiTraitRubric`);\n }\n\n get simpleRubric() {\n return this.querySelector(`${RUBRIC_TAG_NAME}#simpleRubric`);\n }\n\n get rubricless() {\n return this.querySelector(`${RUBRIC_TAG_NAME}#rubricless`);\n }\n\n connectedCallback() {\n this._render();\n }\n\n _render() {\n let rubricTag;\n if (this._type === RUBRIC_TYPES.SIMPLE_RUBRIC) {\n rubricTag = `<${RUBRIC_TAG_NAME} id=\"simpleRubric\" />`\n }\n else if (this._type === RUBRIC_TYPES.RUBRICLESS){\n rubricTag = `<${RUBRIC_TAG_NAME} id=\"rubricless\" />`;\n }\n else{\n rubricTag = `<${MULTI_TRAIT_RUBRIC_TAG_NAME} id=\"multiTraitRubric\" />`;\n }\n\n this.innerHTML = rubricTag;\n\n // when item is re-rendered (due to connectedCallback), if the custom element is already defined,\n // we need to set the model and session, otherwise the setters are not reached again\n switch (this._type) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n if (customElements.get(RUBRIC_TAG_NAME)) {\n this.setRubricModel(this.simpleRubric);\n }\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n if (customElements.get(MULTI_TRAIT_RUBRIC_TAG_NAME)) {\n this.setMultiTraitRubricModel(this.multiTraitRubric);\n }\n break;\n case RUBRIC_TYPES.RUBRICLESS:\n if (customElements.get(RUBRIC_TAG_NAME)) {\n this.setRubriclessModel(this.rubricless);\n }\n break;\n\n }\n }\n}\n\nexport default ComplexRubric;\n"],"file":"index.js"}
|