@pie-element/complex-rubric 7.1.1 → 7.1.2-next.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.js +2 -0
- package/controller.js +1 -0
- package/dist/author/defaults.d.ts +231 -0
- package/dist/author/defaults.js +177 -0
- package/dist/author/index.d.ts +34 -0
- package/dist/author/index.js +87 -0
- package/dist/author/main.d.ts +23 -0
- package/dist/author/main.js +106 -0
- package/dist/browser/author/index.js +7646 -0
- package/dist/browser/author/index.js.map +1 -0
- package/dist/browser/controller/index.js +145 -0
- package/dist/browser/controller/index.js.map +1 -0
- package/dist/browser/delivery/index.js +96 -0
- package/dist/browser/delivery/index.js.map +1 -0
- package/dist/browser/dist-DJUOd5EZ.js +19 -0
- package/dist/browser/dist-DJUOd5EZ.js.map +1 -0
- package/dist/browser/print/index.js +84 -0
- package/dist/browser/print/index.js.map +1 -0
- package/dist/controller/defaults.d.ts +39 -0
- package/dist/controller/defaults.js +42 -0
- package/dist/controller/index.d.ts +25 -0
- package/dist/controller/index.js +107 -0
- package/dist/controller/utils.d.ts +9 -0
- package/dist/controller/utils.js +4 -0
- package/dist/delivery/index.d.ts +23 -0
- package/dist/delivery/index.js +96 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.iife.d.ts +8 -0
- package/dist/index.iife.js +145 -0
- package/dist/index.js +2 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_apply.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseRest.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseSetToString.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +4 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIterateeCall.js +12 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js +13 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +5 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToString.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js +14 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +15 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/constant.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/defaults.js +16 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/identity.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +10 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +4 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +8 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +11 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +6 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +7 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +9 -0
- package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +6 -0
- package/dist/print/index.d.ts +24 -0
- package/dist/print/index.js +84 -0
- package/package.json +85 -21
- package/CHANGELOG.md +0 -1443
- package/LICENSE.md +0 -5
- package/README.md +0 -3
- package/configure/CHANGELOG.md +0 -1097
- package/configure/lib/defaults.js +0 -271
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js +0 -150
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -172
- package/configure/lib/main.js.map +0 -1
- package/configure/package.json +0 -27
- package/configure/src/__tests__/index.test.js +0 -94
- package/configure/src/__tests__/main.test.jsx +0 -140
- package/configure/src/defaults.js +0 -213
- package/configure/src/index.js +0 -169
- package/configure/src/main.jsx +0 -162
- package/controller/CHANGELOG.md +0 -936
- package/controller/lib/defaults.js +0 -42
- package/controller/lib/defaults.js.map +0 -1
- package/controller/lib/index.js +0 -239
- package/controller/lib/index.js.map +0 -1
- package/controller/lib/utils.js +0 -11
- package/controller/lib/utils.js.map +0 -1
- package/controller/package.json +0 -16
- package/controller/src/__tests__/index.test.js +0 -55
- package/controller/src/defaults.js +0 -39
- package/controller/src/index.js +0 -220
- package/controller/src/utils.js +0 -3
- package/docs/config-schema.json +0 -4255
- package/docs/config-schema.json.md +0 -3162
- package/docs/demo/config.js +0 -8
- package/docs/demo/generate.js +0 -196
- package/docs/demo/index.html +0 -1
- package/docs/demo/session.js +0 -6
- package/docs/pie-schema.json +0 -3302
- package/docs/pie-schema.json.md +0 -2364
- package/lib/index.js +0 -141
- package/lib/index.js.map +0 -1
- package/lib/print.js +0 -129
- package/lib/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/src/__tests__/index.test.js +0 -256
- package/src/index.js +0 -152
- package/src/print.js +0 -140
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
//#region src/controller/defaults.ts
|
|
2
|
+
var e = {
|
|
3
|
+
SIMPLE_RUBRIC: "simpleRubric",
|
|
4
|
+
MULTI_TRAIT_RUBRIC: "multiTraitRubric",
|
|
5
|
+
rubricless: "rubricless"
|
|
6
|
+
}, t = {
|
|
7
|
+
description: !1,
|
|
8
|
+
excludeZero: !1,
|
|
9
|
+
halfScoring: !1,
|
|
10
|
+
pointLabels: !0,
|
|
11
|
+
scales: [],
|
|
12
|
+
standards: !1,
|
|
13
|
+
visibleToStudent: !0
|
|
14
|
+
}, n = {
|
|
15
|
+
points: [
|
|
16
|
+
"",
|
|
17
|
+
"",
|
|
18
|
+
"",
|
|
19
|
+
""
|
|
20
|
+
],
|
|
21
|
+
sampleAnswers: [
|
|
22
|
+
null,
|
|
23
|
+
null,
|
|
24
|
+
null,
|
|
25
|
+
null
|
|
26
|
+
],
|
|
27
|
+
maxPoints: 3,
|
|
28
|
+
excludeZero: !1
|
|
29
|
+
}, r = {
|
|
30
|
+
maxPoints: 100,
|
|
31
|
+
excludeZero: !1,
|
|
32
|
+
rubriclessInstructionEnabled: !0
|
|
33
|
+
}, i = {
|
|
34
|
+
rubricType: "simpleRubric",
|
|
35
|
+
rubrics: {
|
|
36
|
+
[e.SIMPLE_RUBRIC]: n,
|
|
37
|
+
[e.MULTI_TRAIT_RUBRIC]: t,
|
|
38
|
+
[e.RUBRICLESS]: r
|
|
39
|
+
}
|
|
40
|
+
}, a = (e) => (e || "").replace(/(<([^>]+)>)/gi, ""), o = {
|
|
41
|
+
SIMPLE_RUBRIC: "simpleRubric",
|
|
42
|
+
MULTI_TRAIT_RUBRIC: "multiTraitRubric",
|
|
43
|
+
rubricless: "rubricless"
|
|
44
|
+
};
|
|
45
|
+
function s(e = {}) {
|
|
46
|
+
return new Promise((t) => t({
|
|
47
|
+
...i,
|
|
48
|
+
...e
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
var c = (e) => ({
|
|
52
|
+
...i,
|
|
53
|
+
...e
|
|
54
|
+
});
|
|
55
|
+
async function l(e, t, n) {
|
|
56
|
+
let r = c(e);
|
|
57
|
+
if (r.rubricType === o.SIMPLE_RUBRIC || r.rubricType === o.RUBRICLESS) return new Promise((e) => {
|
|
58
|
+
e(n && n.role && n.role === "instructor" ? {
|
|
59
|
+
...r,
|
|
60
|
+
rubrics: {
|
|
61
|
+
...r.rubrics,
|
|
62
|
+
multiTraitRubric: {
|
|
63
|
+
...r.rubrics.multiTraitRubric,
|
|
64
|
+
visible: !1
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
} : {});
|
|
68
|
+
});
|
|
69
|
+
{
|
|
70
|
+
!n.role || n.role === "student" && r.rubrics && r.rubrics.multiTraitRubric ? r.rubrics.multiTraitRubric.visible = r.visibleToStudent : r.rubrics.multiTraitRubric.visible = !0;
|
|
71
|
+
let { scales: e, excludeZero: t } = r.rubrics.multiTraitRubric || {}, i = (e || []).map((e) => ({
|
|
72
|
+
...e,
|
|
73
|
+
excludeZero: t
|
|
74
|
+
}));
|
|
75
|
+
return {
|
|
76
|
+
...r,
|
|
77
|
+
rubrics: {
|
|
78
|
+
...r.rubrics,
|
|
79
|
+
simpleRubric: {
|
|
80
|
+
...r.rubrics.simpleRubric,
|
|
81
|
+
visible: !1
|
|
82
|
+
},
|
|
83
|
+
rubricless: {
|
|
84
|
+
...r.rubrics.rubricless,
|
|
85
|
+
visible: !1
|
|
86
|
+
},
|
|
87
|
+
multiTraitRubric: {
|
|
88
|
+
...r.rubrics.multiTraitRubric,
|
|
89
|
+
scales: i
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
var u = () => 0;
|
|
96
|
+
function d() {
|
|
97
|
+
return new Promise((e) => e({
|
|
98
|
+
score: 0,
|
|
99
|
+
empty: !0
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
var f = (e, t) => new Promise((e) => {
|
|
103
|
+
t.mode !== "evaluate" && t.role === "instructor" ? e({ id: "1" }) : e(null);
|
|
104
|
+
}), p = (e) => {
|
|
105
|
+
let { points: t } = e, n = {}, r = {};
|
|
106
|
+
return (t || []).forEach((e, n) => {
|
|
107
|
+
!e || e === "<div></div>" ? r[n] = "Points descriptors cannot be empty." : t.slice(n + 1).some((t) => a(t) === a(e)) && (r[n] = "Points descriptors should be unique.");
|
|
108
|
+
}), Object.keys(r).length > 0 && (n.pointsDescriptorsErrors = r), n;
|
|
109
|
+
}, m = (e) => {
|
|
110
|
+
let { scales: t, description: n = !1, pointLabels: r = !1 } = e, i = {}, o = {}, s = {};
|
|
111
|
+
return (t || []).forEach((e, t) => {
|
|
112
|
+
let { traits: i = [] } = e, { scorePointsLabels: c = [] } = e, l = {}, u = {};
|
|
113
|
+
r && c.forEach((e, t) => {
|
|
114
|
+
!e || e === "<div></div>" ? u[t] = "Points labels should not be empty." : c.slice(t + 1).some((t) => a(t) === a(e)) && (u[t] = "Points labels should be unique.");
|
|
115
|
+
}), Object.keys(u).length > 0 && (s[t] = u), i.forEach((e, t) => {
|
|
116
|
+
if (!e.name || e.name === "<div></div>" ? l[t] = { name: "Trait names should not be empty." } : i.slice(t + 1).some((t) => a(t.name) === a(e.name)) && (l[t] = { name: "Trait names should be unique." }), n && (!e.description || e.description === "<div></div>")) l[t] = {
|
|
117
|
+
...l[t],
|
|
118
|
+
description: "Trait description should not be empty"
|
|
119
|
+
};
|
|
120
|
+
else {
|
|
121
|
+
let r = i.slice(t + 1).some((t) => a(t.description) === a(e.description));
|
|
122
|
+
n && r && (l[t] = {
|
|
123
|
+
...l[t],
|
|
124
|
+
description: "Trait descriptions should be unique."
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}), Object.keys(l).length > 0 && (o[t] = l);
|
|
128
|
+
}), Object.keys(o).length > 0 && (i.traitsErrors = o), Object.keys(s).length > 0 && (i.scorePointsErrors = s), i;
|
|
129
|
+
}, h = (e = {}, t = {}) => {
|
|
130
|
+
let { rubrics: n = {}, rubricType: r } = e, { multiTraitRubric: i = {}, simpleRubric: a = {} } = n, s = {};
|
|
131
|
+
switch (r) {
|
|
132
|
+
case o.SIMPLE_RUBRIC:
|
|
133
|
+
default:
|
|
134
|
+
s = p(a);
|
|
135
|
+
break;
|
|
136
|
+
case o.MULTI_TRAIT_RUBRIC:
|
|
137
|
+
s = m(i);
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
return s;
|
|
141
|
+
};
|
|
142
|
+
//#endregion
|
|
143
|
+
export { f as createCorrectResponseSession, s as createDefaultModel, u as getScore, l as model, c as normalize, d as outcome, h as validate };
|
|
144
|
+
|
|
145
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/controller/defaults.ts","../../../src/controller/utils.ts","../../../src/controller/index.ts"],"sourcesContent":["// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/complex-rubric/controller/src/defaults.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\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\nconst multiTraitDefaultModel = {\n description: false,\n excludeZero: false,\n halfScoring: false,\n pointLabels: true,\n scales: [],\n standards: false,\n visibleToStudent: true,\n};\n\nconst rubricDefaultModel = {\n points: ['', '', '', ''],\n sampleAnswers: [null, null, null, null],\n maxPoints: 3,\n excludeZero: false,\n};\n\nconst rubriclessDefaultModel = {\n maxPoints: 100,\n excludeZero: false,\n rubriclessInstructionEnabled: true,\n};\n\nexport default {\n rubricType: 'simpleRubric',\n rubrics: {\n [RUBRIC_TYPES.SIMPLE_RUBRIC]: rubricDefaultModel,\n [RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: multiTraitDefaultModel,\n [RUBRIC_TYPES.RUBRICLESS]: rubriclessDefaultModel,\n },\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/complex-rubric/controller/src/utils.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nexport const markupToText = (s) => {\n return (s || '').replace(/(<([^>]+)>)/ig, '');\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/complex-rubric/controller/src/index.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport defaults from './defaults.js';\nimport { markupToText } from './utils.js';\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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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { t as e } from "../dist-DJUOd5EZ.js";
|
|
2
|
+
//#region src/delivery/index.ts
|
|
3
|
+
var t = "complex-rubric-simple", n = "complex-rubric-multi-trait";
|
|
4
|
+
customElements.get(t), customElements.get(n);
|
|
5
|
+
var r = class extends HTMLElement {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(), this._model = {}, this._type = e.SIMPLE_RUBRIC;
|
|
8
|
+
}
|
|
9
|
+
set type(e) {
|
|
10
|
+
this._type = e;
|
|
11
|
+
}
|
|
12
|
+
get type() {
|
|
13
|
+
return this._type;
|
|
14
|
+
}
|
|
15
|
+
set model(r) {
|
|
16
|
+
this._model = r;
|
|
17
|
+
let i = this._type;
|
|
18
|
+
switch (this.type = r.rubricType, this._type) {
|
|
19
|
+
case e.SIMPLE_RUBRIC:
|
|
20
|
+
default:
|
|
21
|
+
customElements.whenDefined(t).then(() => {
|
|
22
|
+
this.setRubricModel(this.simpleRubric);
|
|
23
|
+
});
|
|
24
|
+
break;
|
|
25
|
+
case e.MULTI_TRAIT_RUBRIC:
|
|
26
|
+
customElements.whenDefined(n).then(() => {
|
|
27
|
+
this.setMultiTraitRubricModel(this.multiTraitRubric);
|
|
28
|
+
});
|
|
29
|
+
break;
|
|
30
|
+
case e.RUBRICLESS:
|
|
31
|
+
customElements.whenDefined(t).then(() => {
|
|
32
|
+
this.setRubriclessModel(this.rubricless);
|
|
33
|
+
});
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
i !== this.type && this._render();
|
|
37
|
+
}
|
|
38
|
+
setRubricModel(e) {
|
|
39
|
+
if (this._model && this._model.rubrics && this._model.rubrics.simpleRubric) {
|
|
40
|
+
let { mode: t } = this._model;
|
|
41
|
+
e.model = {
|
|
42
|
+
...this._model.rubrics.simpleRubric,
|
|
43
|
+
mode: t
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
setMultiTraitRubricModel(e) {
|
|
48
|
+
if (this._model && this._model.rubrics && this._model.rubrics.multiTraitRubric) {
|
|
49
|
+
let { mode: t } = this._model;
|
|
50
|
+
e.model = {
|
|
51
|
+
...this._model.rubrics.multiTraitRubric,
|
|
52
|
+
mode: t
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
setRubriclessModel(e) {
|
|
57
|
+
if (this._model && this._model.rubrics && this._model.rubrics.rubricless) {
|
|
58
|
+
let { mode: t } = this._model;
|
|
59
|
+
e.model = {
|
|
60
|
+
...this._model.rubrics.rubricless,
|
|
61
|
+
mode: t
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
get multiTraitRubric() {
|
|
66
|
+
return this.querySelector(`${n}#multiTraitRubric`);
|
|
67
|
+
}
|
|
68
|
+
get simpleRubric() {
|
|
69
|
+
return this.querySelector(`${t}#simpleRubric`);
|
|
70
|
+
}
|
|
71
|
+
get rubricless() {
|
|
72
|
+
return this.querySelector(`${t}#rubricless`);
|
|
73
|
+
}
|
|
74
|
+
connectedCallback() {
|
|
75
|
+
this._render();
|
|
76
|
+
}
|
|
77
|
+
_render() {
|
|
78
|
+
let r;
|
|
79
|
+
switch (r = this._type === e.SIMPLE_RUBRIC ? `<${t} id="simpleRubric" />` : this._type === e.RUBRICLESS ? `<${t} id="rubricless" />` : `<${n} id="multiTraitRubric" />`, this.innerHTML = r, this._type) {
|
|
80
|
+
case e.SIMPLE_RUBRIC:
|
|
81
|
+
default:
|
|
82
|
+
customElements.get(t) && this.setRubricModel(this.simpleRubric);
|
|
83
|
+
break;
|
|
84
|
+
case e.MULTI_TRAIT_RUBRIC:
|
|
85
|
+
customElements.get(n) && this.setMultiTraitRubricModel(this.multiTraitRubric);
|
|
86
|
+
break;
|
|
87
|
+
case e.RUBRICLESS:
|
|
88
|
+
customElements.get(t) && this.setRubriclessModel(this.rubricless);
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
//#endregion
|
|
94
|
+
export { r as default };
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/delivery/index.ts"],"sourcesContent":["// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/complex-rubric/src/index.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport Rubric from '@pie-element/rubric';\nimport MultiTraitRubric from '@pie-element/multi-trait-rubric';\nimport { RUBRIC_TYPES } from '@pie-lib/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\nclass ComplexRubricMultiTrait extends MultiTraitRubric {}\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 } else if (this._type === RUBRIC_TYPES.RUBRICLESS) {\n rubricTag = `<${RUBRIC_TAG_NAME} id=\"rubricless\" />`;\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\nexport default ComplexRubric;\n"],"mappings":";;AAcA,IAAM,IAAkB,yBAClB,IAA8B;AAO7B,eAAe,IAAI,CAAe,GAIlC,eAAe,IAAI,CAA2B;AAOrD,IAAM,IAAN,cAA4B,YAAY;CACtC,cAAc;EAGZ,AAFA,MAAM,GACN,KAAK,SAAS,CAAC,GACf,KAAK,QAAQ,EAAa;CAC5B;CAEA,IAAI,KAAK,GAAG;EACV,KAAK,QAAQ;CACf;CAEA,IAAI,OAAO;EACT,OAAO,KAAK;CACd;CAEA,IAAI,MAAM,GAAG;EACX,KAAK,SAAS;EACd,IAAM,IAAU,KAAK;EAGrB,QAFA,KAAK,OAAO,EAAE,YAEN,KAAK,OAAb;GACE,KAAK,EAAa;GAClB;IACE,eAAe,YAAY,CAAe,EAAE,WAAW;KACrD,KAAK,eAAe,KAAK,YAAY;IACvC,CAAC;IACD;GACF,KAAK,EAAa;IAChB,eAAe,YAAY,CAA2B,EAAE,WAAW;KACjE,KAAK,yBAAyB,KAAK,gBAAgB;IACrD,CAAC;IACD;GACF,KAAK,EAAa;IAChB,eAAe,YAAY,CAAe,EAAE,WAAW;KACrD,KAAK,mBAAmB,KAAK,UAAU;IACzC,CAAC;IACD;EACJ;EAEA,AAAI,MAAY,KAAK,QACnB,KAAK,QAAQ;CAEjB;CAEA,eAAe,GAAc;EAC3B,IAAI,KAAK,UAAU,KAAK,OAAO,WAAW,KAAK,OAAO,QAAQ,cAAc;GAC1E,IAAM,EAAE,YAAS,KAAK;GAEtB,EAAa,QAAQ;IACnB,GAAG,KAAK,OAAO,QAAQ;IACvB;GACF;EACF;CACF;CAEA,yBAAyB,GAAkB;EACzC,IAAI,KAAK,UAAU,KAAK,OAAO,WAAW,KAAK,OAAO,QAAQ,kBAAkB;GAC9E,IAAM,EAAE,YAAS,KAAK;GAEtB,EAAiB,QAAQ;IACvB,GAAG,KAAK,OAAO,QAAQ;IACvB;GACF;EACF;CACF;CAEA,mBAAmB,GAAY;EAC7B,IAAI,KAAK,UAAU,KAAK,OAAO,WAAW,KAAK,OAAO,QAAQ,YAAY;GACxE,IAAM,EAAE,YAAS,KAAK;GAEtB,EAAW,QAAQ;IACjB,GAAG,KAAK,OAAO,QAAQ;IACvB;GACF;EACF;CACF;CAEA,IAAI,mBAAmB;EACrB,OAAO,KAAK,cAAc,GAAG,EAA4B,kBAAkB;CAC7E;CAEA,IAAI,eAAe;EACjB,OAAO,KAAK,cAAc,GAAG,EAAgB,cAAc;CAC7D;CAEA,IAAI,aAAa;EACf,OAAO,KAAK,cAAc,GAAG,EAAgB,YAAY;CAC3D;CAEA,oBAAoB;EAClB,KAAK,QAAQ;CACf;CAEA,UAAU;EACR,IAAI;EAaJ,QAZA,AAKE,IALE,KAAK,UAAU,EAAa,gBAClB,IAAI,EAAgB,yBACvB,KAAK,UAAU,EAAa,aACzB,IAAI,EAAgB,uBAEpB,IAAI,EAA4B,4BAG9C,KAAK,YAAY,GAIT,KAAK,OAAb;GACE,KAAK,EAAa;GAClB;IACE,AAAI,eAAe,IAAI,CAAe,KACpC,KAAK,eAAe,KAAK,YAAY;IAEvC;GACF,KAAK,EAAa;IAChB,AAAI,eAAe,IAAI,CAA2B,KAChD,KAAK,yBAAyB,KAAK,gBAAgB;IAErD;GACF,KAAK,EAAa;IAChB,AAAI,eAAe,IAAI,CAAe,KACpC,KAAK,mBAAmB,KAAK,UAAU;IAEzC;EACJ;CACF;AACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), s = (e, i, o, s) => {
|
|
3
|
+
if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
|
|
4
|
+
get: ((e) => i[e]).bind(null, d),
|
|
5
|
+
enumerable: !(s = n(i, d)) || s.enumerable
|
|
6
|
+
});
|
|
7
|
+
return e;
|
|
8
|
+
}, c = (n, r, a) => (a = n == null ? {} : e(i(n)), s(r || !n || !n.__esModule ? t(a, "default", {
|
|
9
|
+
value: n,
|
|
10
|
+
enumerable: !0
|
|
11
|
+
}) : a, n)), l = {
|
|
12
|
+
SIMPLE_RUBRIC: "simpleRubric",
|
|
13
|
+
MULTI_TRAIT_RUBRIC: "multiTraitRubric",
|
|
14
|
+
RUBRICLESS: "rubricless"
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { o as n, c as r, l as t };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=dist-DJUOd5EZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist-DJUOd5EZ.js","names":[],"sources":["../../../../lib-react/rubric/dist/index.js"],"sourcesContent":["import e from \"./authoring.js\";\n//#region src/index.ts\nvar t = {\n\tSIMPLE_RUBRIC: \"simpleRubric\",\n\tMULTI_TRAIT_RUBRIC: \"multiTraitRubric\",\n\tRUBRICLESS: \"rubricless\"\n};\n//#endregion\nexport { e as Authoring, t as RUBRIC_TYPES };\n"],"mappings":";;;;;;;;;;aAEI,IAAI;CACP,eAAe;CACf,oBAAoB;CACpB,YAAY;AACb"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { t as e } from "../dist-DJUOd5EZ.js";
|
|
2
|
+
//#region src/print/index.ts
|
|
3
|
+
var t = "complex-rubric-simple", n = "complex-rubric-multi-trait", r = {
|
|
4
|
+
[e.SIMPLE_RUBRIC]: `<${t} id="simpleRubric" />`,
|
|
5
|
+
[e.RUBRICLESS]: `<${t} id="rubricless" />`,
|
|
6
|
+
[e.MULTI_TRAIT_RUBRIC]: `<${n} id="multiTraitRubric" />`
|
|
7
|
+
}, i = (e, t) => t.role === "instructor" ? (e.mode = "evaluate", e.animationsDisabled = !0, e) : {};
|
|
8
|
+
customElements.get(t), customElements.get(n);
|
|
9
|
+
var a = class extends HTMLElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(), this._model = {}, this._type = e.SIMPLE_RUBRIC, this._options = null;
|
|
12
|
+
}
|
|
13
|
+
set type(e) {
|
|
14
|
+
this._type = e;
|
|
15
|
+
}
|
|
16
|
+
get type() {
|
|
17
|
+
return this._type;
|
|
18
|
+
}
|
|
19
|
+
set model(r) {
|
|
20
|
+
this._model = r;
|
|
21
|
+
let i = this._type;
|
|
22
|
+
switch (this.type = r.rubricType, this._type) {
|
|
23
|
+
case e.SIMPLE_RUBRIC:
|
|
24
|
+
default:
|
|
25
|
+
customElements.whenDefined(t).then(() => {
|
|
26
|
+
this.setRubricModel(this.simpleRubric);
|
|
27
|
+
});
|
|
28
|
+
break;
|
|
29
|
+
case e.MULTI_TRAIT_RUBRIC:
|
|
30
|
+
customElements.whenDefined(n).then(() => {
|
|
31
|
+
this.setMultiTraitRubricModel(this.multiTraitRubric);
|
|
32
|
+
});
|
|
33
|
+
break;
|
|
34
|
+
case e.RUBRICLESS:
|
|
35
|
+
customElements.whenDefined(t).then(() => {
|
|
36
|
+
this.setRubriclessModel(this.rubricless);
|
|
37
|
+
});
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
i !== this.type && this._render();
|
|
41
|
+
}
|
|
42
|
+
setRubricModel(e) {
|
|
43
|
+
this._model && this._model.rubrics && this._model.rubrics.simpleRubric && (e.model = i(this._model.rubrics.simpleRubric, this._options));
|
|
44
|
+
}
|
|
45
|
+
setMultiTraitRubricModel(e) {
|
|
46
|
+
if (this._model && this._model.rubrics && this._model.rubrics.multiTraitRubric) {
|
|
47
|
+
let { scales: t, excludeZero: n } = this._model.rubrics.multiTraitRubric || {}, r = (t || []).map((e) => ({
|
|
48
|
+
...e,
|
|
49
|
+
excludeZero: n
|
|
50
|
+
}));
|
|
51
|
+
e.model = {
|
|
52
|
+
...i(this._model.rubrics.multiTraitRubric, this._options),
|
|
53
|
+
visible: !0,
|
|
54
|
+
arrowsDisabled: !0,
|
|
55
|
+
scales: r
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
setRubriclessModel(e) {
|
|
60
|
+
this._model && this._model.rubrics && this._model.rubrics.rubricless && (e.model = i(this._model.rubrics.rubricless, this._options));
|
|
61
|
+
}
|
|
62
|
+
set options(e) {
|
|
63
|
+
this._options = e;
|
|
64
|
+
}
|
|
65
|
+
get multiTraitRubric() {
|
|
66
|
+
return this.querySelector(`${n}#multiTraitRubric`);
|
|
67
|
+
}
|
|
68
|
+
get simpleRubric() {
|
|
69
|
+
return this.querySelector(`${t}#simpleRubric`);
|
|
70
|
+
}
|
|
71
|
+
get rubricless() {
|
|
72
|
+
return this.querySelector(`${t}#rubricless`);
|
|
73
|
+
}
|
|
74
|
+
connectedCallback() {
|
|
75
|
+
this._render();
|
|
76
|
+
}
|
|
77
|
+
_render() {
|
|
78
|
+
this.innerHTML = r[this._type] || "";
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//#endregion
|
|
82
|
+
export { a as default };
|
|
83
|
+
|
|
84
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/print/index.ts"],"sourcesContent":["// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/complex-rubric/src/print.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\n// here it is actually using rubric/src/index.js, instead of using rubric/src/print.js\nimport Rubric from '@pie-element/rubric';\n// here it is actually using multi-trait-rubric/src/index.js, instead of using multi-trait-rubric/src/print.js\nimport MultiTraitRubric from '@pie-element/multi-trait-rubric';\nimport { RUBRIC_TYPES } from '@pie-lib/rubric';\n\nconst RUBRIC_TAG_NAME = 'complex-rubric-simple';\nconst MULTI_TRAIT_RUBRIC_TAG_NAME = 'complex-rubric-multi-trait';\n\nclass ComplexRubricSimple extends Rubric {}\nclass ComplexRubricMultiTrait extends MultiTraitRubric {}\n\nconst rubricTags = {\n [RUBRIC_TYPES.SIMPLE_RUBRIC]: `<${RUBRIC_TAG_NAME} id=\"simpleRubric\" />`,\n [RUBRIC_TYPES.RUBRICLESS]: `<${RUBRIC_TAG_NAME} id=\"rubricless\" />`,\n [RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: `<${MULTI_TRAIT_RUBRIC_TAG_NAME} id=\"multiTraitRubric\" />`,\n};\n\nconst preparePrintModel = (model, opts) => {\n const instr = opts.role === 'instructor';\n\n if (!instr) {\n return {};\n }\n\n model.mode = 'evaluate';\n model.animationsDisabled = true;\n\n return model;\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 ComplexRubricPrint extends HTMLElement {\n constructor() {\n super();\n this._model = {};\n this._type = RUBRIC_TYPES.SIMPLE_RUBRIC;\n this._options = null;\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 simpleRubric.model = preparePrintModel(this._model.rubrics.simpleRubric, this._options);\n }\n }\n\n setMultiTraitRubricModel(multiTraitRubric) {\n if (this._model && this._model.rubrics && this._model.rubrics.multiTraitRubric) {\n const { scales, excludeZero } = this._model.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n multiTraitRubric.model = {\n ...preparePrintModel(this._model.rubrics.multiTraitRubric, this._options),\n visible: true,\n arrowsDisabled: true,\n scales: parsedScales,\n };\n }\n }\n\n setRubriclessModel(rubricless) {\n if (this._model && this._model.rubrics && this._model.rubrics.rubricless) {\n rubricless.model = preparePrintModel(this._model.rubrics.rubricless, this._options);\n }\n }\n\n set options(o) {\n this._options = o;\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 this.innerHTML = rubricTags[this._type] || '';\n }\n}\n\nexport default ComplexRubricPrint;\n"],"mappings":";;AAgBA,IAAM,IAAkB,yBAClB,IAA8B,8BAK9B,IAAa;EAChB,EAAa,gBAAgB,IAAI,EAAgB;EACjD,EAAa,aAAa,IAAI,EAAgB;EAC9C,EAAa,qBAAqB,IAAI,EAA4B;AACrE,GAEM,KAAqB,GAAO,MAClB,EAAK,SAAS,gBAM5B,EAAM,OAAO,YACb,EAAM,qBAAqB,IAEpB,KANE,CAAC;AAUL,eAAe,IAAI,CAAe,GAIlC,eAAe,IAAI,CAA2B;AAOrD,IAAM,IAAN,cAAiC,YAAY;CAC3C,cAAc;EAIZ,AAHA,MAAM,GACN,KAAK,SAAS,CAAC,GACf,KAAK,QAAQ,EAAa,eAC1B,KAAK,WAAW;CAClB;CAEA,IAAI,KAAK,GAAG;EACV,KAAK,QAAQ;CACf;CAEA,IAAI,OAAO;EACT,OAAO,KAAK;CACd;CAEA,IAAI,MAAM,GAAG;EACX,KAAK,SAAS;EACd,IAAM,IAAU,KAAK;EAGrB,QAFA,KAAK,OAAO,EAAE,YAEN,KAAK,OAAb;GACE,KAAK,EAAa;GAClB;IACE,eAAe,YAAY,CAAe,EAAE,WAAW;KACrD,KAAK,eAAe,KAAK,YAAY;IACvC,CAAC;IACD;GACF,KAAK,EAAa;IAChB,eAAe,YAAY,CAA2B,EAAE,WAAW;KACjE,KAAK,yBAAyB,KAAK,gBAAgB;IACrD,CAAC;IACD;GACF,KAAK,EAAa;IAChB,eAAe,YAAY,CAAe,EAAE,WAAW;KACrD,KAAK,mBAAmB,KAAK,UAAU;IACzC,CAAC;IACD;EACJ;EAEA,AAAI,MAAY,KAAK,QACnB,KAAK,QAAQ;CAEjB;CAEA,eAAe,GAAc;EAC3B,AAAI,KAAK,UAAU,KAAK,OAAO,WAAW,KAAK,OAAO,QAAQ,iBAC5D,EAAa,QAAQ,EAAkB,KAAK,OAAO,QAAQ,cAAc,KAAK,QAAQ;CAE1F;CAEA,yBAAyB,GAAkB;EACzC,IAAI,KAAK,UAAU,KAAK,OAAO,WAAW,KAAK,OAAO,QAAQ,kBAAkB;GAC9E,IAAM,EAAE,WAAQ,mBAAgB,KAAK,OAAO,QAAQ,oBAAoB,CAAC,GACnE,KAAgB,KAAU,CAAC,GAAG,KAAK,OAAW;IAAE,GAAG;IAAO;GAAY,EAAE;GAE9E,EAAiB,QAAQ;IACvB,GAAG,EAAkB,KAAK,OAAO,QAAQ,kBAAkB,KAAK,QAAQ;IACxE,SAAS;IACT,gBAAgB;IAChB,QAAQ;GACV;EACF;CACF;CAEA,mBAAmB,GAAY;EAC7B,AAAI,KAAK,UAAU,KAAK,OAAO,WAAW,KAAK,OAAO,QAAQ,eAC5D,EAAW,QAAQ,EAAkB,KAAK,OAAO,QAAQ,YAAY,KAAK,QAAQ;CAEtF;CAEA,IAAI,QAAQ,GAAG;EACb,KAAK,WAAW;CAClB;CAEA,IAAI,mBAAmB;EACrB,OAAO,KAAK,cAAc,GAAG,EAA4B,kBAAkB;CAC7E;CAEA,IAAI,eAAe;EACjB,OAAO,KAAK,cAAc,GAAG,EAAgB,cAAc;CAC7D;CAEA,IAAI,aAAa;EACf,OAAO,KAAK,cAAc,GAAG,EAAgB,YAAY;CAC3D;CAEA,oBAAoB;EAClB,KAAK,QAAQ;CACf;CAEA,UAAU;EACR,KAAK,YAAY,EAAW,KAAK,UAAU;CAC7C;AACF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @synced-from pie-elements/packages/complex-rubric/controller/src/defaults.js
|
|
3
|
+
* @auto-generated
|
|
4
|
+
*
|
|
5
|
+
* This file is automatically synced from pie-elements and converted to TypeScript.
|
|
6
|
+
* Manual edits will be overwritten on next sync.
|
|
7
|
+
* To make changes, edit the upstream JavaScript file and run sync again.
|
|
8
|
+
*/
|
|
9
|
+
declare const RUBRIC_TYPES: {
|
|
10
|
+
SIMPLE_RUBRIC: string;
|
|
11
|
+
MULTI_TRAIT_RUBRIC: string;
|
|
12
|
+
rubricless: string;
|
|
13
|
+
};
|
|
14
|
+
declare const _default: {
|
|
15
|
+
rubricType: string;
|
|
16
|
+
rubrics: {
|
|
17
|
+
[RUBRIC_TYPES.SIMPLE_RUBRIC]: {
|
|
18
|
+
points: string[];
|
|
19
|
+
sampleAnswers: null[];
|
|
20
|
+
maxPoints: number;
|
|
21
|
+
excludeZero: boolean;
|
|
22
|
+
};
|
|
23
|
+
[RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: {
|
|
24
|
+
description: boolean;
|
|
25
|
+
excludeZero: boolean;
|
|
26
|
+
halfScoring: boolean;
|
|
27
|
+
pointLabels: boolean;
|
|
28
|
+
scales: never[];
|
|
29
|
+
standards: boolean;
|
|
30
|
+
visibleToStudent: boolean;
|
|
31
|
+
};
|
|
32
|
+
[RUBRIC_TYPES.RUBRICLESS]: {
|
|
33
|
+
maxPoints: number;
|
|
34
|
+
excludeZero: boolean;
|
|
35
|
+
rubriclessInstructionEnabled: boolean;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export default _default;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
//#region src/controller/defaults.ts
|
|
2
|
+
var e = {
|
|
3
|
+
SIMPLE_RUBRIC: "simpleRubric",
|
|
4
|
+
MULTI_TRAIT_RUBRIC: "multiTraitRubric",
|
|
5
|
+
rubricless: "rubricless"
|
|
6
|
+
}, t = {
|
|
7
|
+
description: !1,
|
|
8
|
+
excludeZero: !1,
|
|
9
|
+
halfScoring: !1,
|
|
10
|
+
pointLabels: !0,
|
|
11
|
+
scales: [],
|
|
12
|
+
standards: !1,
|
|
13
|
+
visibleToStudent: !0
|
|
14
|
+
}, n = {
|
|
15
|
+
points: [
|
|
16
|
+
"",
|
|
17
|
+
"",
|
|
18
|
+
"",
|
|
19
|
+
""
|
|
20
|
+
],
|
|
21
|
+
sampleAnswers: [
|
|
22
|
+
null,
|
|
23
|
+
null,
|
|
24
|
+
null,
|
|
25
|
+
null
|
|
26
|
+
],
|
|
27
|
+
maxPoints: 3,
|
|
28
|
+
excludeZero: !1
|
|
29
|
+
}, r = {
|
|
30
|
+
maxPoints: 100,
|
|
31
|
+
excludeZero: !1,
|
|
32
|
+
rubriclessInstructionEnabled: !0
|
|
33
|
+
}, i = {
|
|
34
|
+
rubricType: "simpleRubric",
|
|
35
|
+
rubrics: {
|
|
36
|
+
[e.SIMPLE_RUBRIC]: n,
|
|
37
|
+
[e.MULTI_TRAIT_RUBRIC]: t,
|
|
38
|
+
[e.RUBRICLESS]: r
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
//#endregion
|
|
42
|
+
export { i as default };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @synced-from pie-elements/packages/complex-rubric/controller/src/index.js
|
|
3
|
+
* @auto-generated
|
|
4
|
+
*
|
|
5
|
+
* This file is automatically synced from pie-elements and converted to TypeScript.
|
|
6
|
+
* Manual edits will be overwritten on next sync.
|
|
7
|
+
* To make changes, edit the upstream JavaScript file and run sync again.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createDefaultModel(model?: {}): Promise<unknown>;
|
|
10
|
+
export declare const normalize: (question: any) => any;
|
|
11
|
+
/**
|
|
12
|
+
* @param {*} question
|
|
13
|
+
* @param {*} session
|
|
14
|
+
* @param {*} env
|
|
15
|
+
*/
|
|
16
|
+
export declare function model(question: any, session: any, env: any): Promise<any>;
|
|
17
|
+
export declare const getScore: () => number;
|
|
18
|
+
/**
|
|
19
|
+
* @param {Object} model - the main model
|
|
20
|
+
* @param {*} session
|
|
21
|
+
* @param {Object} env
|
|
22
|
+
*/
|
|
23
|
+
export declare function outcome(): Promise<unknown>;
|
|
24
|
+
export declare const createCorrectResponseSession: (question: any, env: any) => Promise<unknown>;
|
|
25
|
+
export declare const validate: (model?: {}, config?: {}) => {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import e from "./defaults.js";
|
|
2
|
+
import { markupToText as t } from "./utils.js";
|
|
3
|
+
//#region src/controller/index.ts
|
|
4
|
+
var n = {
|
|
5
|
+
SIMPLE_RUBRIC: "simpleRubric",
|
|
6
|
+
MULTI_TRAIT_RUBRIC: "multiTraitRubric",
|
|
7
|
+
rubricless: "rubricless"
|
|
8
|
+
};
|
|
9
|
+
function r(t = {}) {
|
|
10
|
+
return new Promise((n) => n({
|
|
11
|
+
...e,
|
|
12
|
+
...t
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
var i = (t) => ({
|
|
16
|
+
...e,
|
|
17
|
+
...t
|
|
18
|
+
});
|
|
19
|
+
async function a(e, t, r) {
|
|
20
|
+
let a = i(e);
|
|
21
|
+
if (a.rubricType === n.SIMPLE_RUBRIC || a.rubricType === n.RUBRICLESS) return new Promise((e) => {
|
|
22
|
+
e(r && r.role && r.role === "instructor" ? {
|
|
23
|
+
...a,
|
|
24
|
+
rubrics: {
|
|
25
|
+
...a.rubrics,
|
|
26
|
+
multiTraitRubric: {
|
|
27
|
+
...a.rubrics.multiTraitRubric,
|
|
28
|
+
visible: !1
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
} : {});
|
|
32
|
+
});
|
|
33
|
+
{
|
|
34
|
+
!r.role || r.role === "student" && a.rubrics && a.rubrics.multiTraitRubric ? a.rubrics.multiTraitRubric.visible = a.visibleToStudent : a.rubrics.multiTraitRubric.visible = !0;
|
|
35
|
+
let { scales: e, excludeZero: t } = a.rubrics.multiTraitRubric || {}, n = (e || []).map((e) => ({
|
|
36
|
+
...e,
|
|
37
|
+
excludeZero: t
|
|
38
|
+
}));
|
|
39
|
+
return {
|
|
40
|
+
...a,
|
|
41
|
+
rubrics: {
|
|
42
|
+
...a.rubrics,
|
|
43
|
+
simpleRubric: {
|
|
44
|
+
...a.rubrics.simpleRubric,
|
|
45
|
+
visible: !1
|
|
46
|
+
},
|
|
47
|
+
rubricless: {
|
|
48
|
+
...a.rubrics.rubricless,
|
|
49
|
+
visible: !1
|
|
50
|
+
},
|
|
51
|
+
multiTraitRubric: {
|
|
52
|
+
...a.rubrics.multiTraitRubric,
|
|
53
|
+
scales: n
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
var o = () => 0;
|
|
60
|
+
function s() {
|
|
61
|
+
return new Promise((e) => e({
|
|
62
|
+
score: 0,
|
|
63
|
+
empty: !0
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
var c = (e, t) => new Promise((e) => {
|
|
67
|
+
t.mode !== "evaluate" && t.role === "instructor" ? e({ id: "1" }) : e(null);
|
|
68
|
+
}), l = (e) => {
|
|
69
|
+
let { points: n } = e, r = {}, i = {};
|
|
70
|
+
return (n || []).forEach((e, r) => {
|
|
71
|
+
!e || e === "<div></div>" ? i[r] = "Points descriptors cannot be empty." : n.slice(r + 1).some((n) => t(n) === t(e)) && (i[r] = "Points descriptors should be unique.");
|
|
72
|
+
}), Object.keys(i).length > 0 && (r.pointsDescriptorsErrors = i), r;
|
|
73
|
+
}, u = (e) => {
|
|
74
|
+
let { scales: n, description: r = !1, pointLabels: i = !1 } = e, a = {}, o = {}, s = {};
|
|
75
|
+
return (n || []).forEach((e, n) => {
|
|
76
|
+
let { traits: a = [] } = e, { scorePointsLabels: c = [] } = e, l = {}, u = {};
|
|
77
|
+
i && c.forEach((e, n) => {
|
|
78
|
+
!e || e === "<div></div>" ? u[n] = "Points labels should not be empty." : c.slice(n + 1).some((n) => t(n) === t(e)) && (u[n] = "Points labels should be unique.");
|
|
79
|
+
}), Object.keys(u).length > 0 && (s[n] = u), a.forEach((e, n) => {
|
|
80
|
+
if (!e.name || e.name === "<div></div>" ? l[n] = { name: "Trait names should not be empty." } : a.slice(n + 1).some((n) => t(n.name) === t(e.name)) && (l[n] = { name: "Trait names should be unique." }), r && (!e.description || e.description === "<div></div>")) l[n] = {
|
|
81
|
+
...l[n],
|
|
82
|
+
description: "Trait description should not be empty"
|
|
83
|
+
};
|
|
84
|
+
else {
|
|
85
|
+
let i = a.slice(n + 1).some((n) => t(n.description) === t(e.description));
|
|
86
|
+
r && i && (l[n] = {
|
|
87
|
+
...l[n],
|
|
88
|
+
description: "Trait descriptions should be unique."
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}), Object.keys(l).length > 0 && (o[n] = l);
|
|
92
|
+
}), Object.keys(o).length > 0 && (a.traitsErrors = o), Object.keys(s).length > 0 && (a.scorePointsErrors = s), a;
|
|
93
|
+
}, d = (e = {}, t = {}) => {
|
|
94
|
+
let { rubrics: r = {}, rubricType: i } = e, { multiTraitRubric: a = {}, simpleRubric: o = {} } = r, s = {};
|
|
95
|
+
switch (i) {
|
|
96
|
+
case n.SIMPLE_RUBRIC:
|
|
97
|
+
default:
|
|
98
|
+
s = l(o);
|
|
99
|
+
break;
|
|
100
|
+
case n.MULTI_TRAIT_RUBRIC:
|
|
101
|
+
s = u(a);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
return s;
|
|
105
|
+
};
|
|
106
|
+
//#endregion
|
|
107
|
+
export { c as createCorrectResponseSession, r as createDefaultModel, o as getScore, a as model, i as normalize, s as outcome, d as validate };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @synced-from pie-elements/packages/complex-rubric/controller/src/utils.js
|
|
3
|
+
* @auto-generated
|
|
4
|
+
*
|
|
5
|
+
* This file is automatically synced from pie-elements and converted to TypeScript.
|
|
6
|
+
* Manual edits will be overwritten on next sync.
|
|
7
|
+
* To make changes, edit the upstream JavaScript file and run sync again.
|
|
8
|
+
*/
|
|
9
|
+
export declare const markupToText: (s: any) => any;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @synced-from pie-elements/packages/complex-rubric/src/index.js
|
|
3
|
+
* @auto-generated
|
|
4
|
+
*
|
|
5
|
+
* This file is automatically synced from pie-elements and converted to TypeScript.
|
|
6
|
+
* Manual edits will be overwritten on next sync.
|
|
7
|
+
* To make changes, edit the upstream JavaScript file and run sync again.
|
|
8
|
+
*/
|
|
9
|
+
declare class ComplexRubric extends HTMLElement {
|
|
10
|
+
constructor();
|
|
11
|
+
set type(t: any);
|
|
12
|
+
get type(): any;
|
|
13
|
+
set model(m: any);
|
|
14
|
+
setRubricModel(simpleRubric: any): void;
|
|
15
|
+
setMultiTraitRubricModel(multiTraitRubric: any): void;
|
|
16
|
+
setRubriclessModel(rubricless: any): void;
|
|
17
|
+
get multiTraitRubric(): Element | null;
|
|
18
|
+
get simpleRubric(): Element | null;
|
|
19
|
+
get rubricless(): Element | null;
|
|
20
|
+
connectedCallback(): void;
|
|
21
|
+
_render(): void;
|
|
22
|
+
}
|
|
23
|
+
export default ComplexRubric;
|