@pie-element/complex-rubric 7.2.2-beta.4 → 7.2.2-beta.6
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/CHANGELOG.md +8 -0
- package/configure/CHANGELOG.md +8 -0
- package/configure/package.json +5 -5
- package/controller/CHANGELOG.md +8 -0
- package/controller/package.json +1 -1
- package/package.json +5 -5
- package/configure/lib/defaults.js +0 -271
- package/configure/lib/defaults.js.map +0 -1
- package/configure/lib/index.js +0 -151
- package/configure/lib/index.js.map +0 -1
- package/configure/lib/main.js +0 -172
- package/configure/lib/main.js.map +0 -1
- 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/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/configure/lib/main.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = exports.Main = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _rubric = require("@pie-lib/rubric");
|
|
12
|
-
var _configUi = require("@pie-lib/config-ui");
|
|
13
|
-
var _Radio = _interopRequireDefault(require("@mui/material/Radio"));
|
|
14
|
-
var _RadioGroup = _interopRequireDefault(require("@mui/material/RadioGroup"));
|
|
15
|
-
var _FormControlLabel = _interopRequireDefault(require("@mui/material/FormControlLabel"));
|
|
16
|
-
var _styles = require("@mui/material/styles");
|
|
17
|
-
var _renderUi = require("@pie-lib/render-ui");
|
|
18
|
-
const StyledFormControlLabel = (0, _styles.styled)(_FormControlLabel.default)({
|
|
19
|
-
'&.MuiFormControlLabel-root': {
|
|
20
|
-
width: 'fit-content',
|
|
21
|
-
paddingRight: '24px',
|
|
22
|
-
boxSizing: 'border-box',
|
|
23
|
-
'&:hover': {
|
|
24
|
-
background: 'var(--pie-secondary-background, rgba(241,241,241,1))'
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
const StyledRadio = (0, _styles.styled)(_Radio.default)({
|
|
29
|
-
'&.MuiRadio-root': {
|
|
30
|
-
color: `${_renderUi.color.tertiary()} !important`
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
const rubricLabels = {
|
|
34
|
-
[_rubric.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: 'Multi Trait Rubric',
|
|
35
|
-
[_rubric.RUBRIC_TYPES.SIMPLE_RUBRIC]: 'Simple Rubric',
|
|
36
|
-
[_rubric.RUBRIC_TYPES.RUBRICLESS]: 'Rubricless'
|
|
37
|
-
};
|
|
38
|
-
class Main extends _react.default.Component {
|
|
39
|
-
constructor(...args) {
|
|
40
|
-
super(...args);
|
|
41
|
-
(0, _defineProperty2.default)(this, "onModelChanged", model => {
|
|
42
|
-
const {
|
|
43
|
-
onModelChanged
|
|
44
|
-
} = this.props;
|
|
45
|
-
return onModelChanged(model);
|
|
46
|
-
});
|
|
47
|
-
(0, _defineProperty2.default)(this, "onChangeRubricType", e => {
|
|
48
|
-
const {
|
|
49
|
-
model
|
|
50
|
-
} = this.props;
|
|
51
|
-
const rubricType = e.target.value;
|
|
52
|
-
this.onModelChanged({
|
|
53
|
-
...model,
|
|
54
|
-
rubricType
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
render() {
|
|
59
|
-
const {
|
|
60
|
-
model,
|
|
61
|
-
configuration,
|
|
62
|
-
canUpdateModel
|
|
63
|
-
} = this.props;
|
|
64
|
-
const {
|
|
65
|
-
extraCSSRules,
|
|
66
|
-
rubrics = {}
|
|
67
|
-
} = model || {};
|
|
68
|
-
let {
|
|
69
|
-
rubricType
|
|
70
|
-
} = model;
|
|
71
|
-
const {
|
|
72
|
-
contentDimensions = {},
|
|
73
|
-
rubricOptions = [],
|
|
74
|
-
multiTraitRubric,
|
|
75
|
-
simpleRubric,
|
|
76
|
-
rubricless,
|
|
77
|
-
width
|
|
78
|
-
} = configuration;
|
|
79
|
-
let rubricTag = '';
|
|
80
|
-
if (!rubricType) {
|
|
81
|
-
rubricType = _rubric.RUBRIC_TYPES.SIMPLE_RUBRIC;
|
|
82
|
-
}
|
|
83
|
-
const isRubricTypeAvailable = rubricOptions.indexOf(rubricType) > -1;
|
|
84
|
-
if (canUpdateModel) {
|
|
85
|
-
switch (rubricType) {
|
|
86
|
-
case _rubric.RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
87
|
-
default:
|
|
88
|
-
rubricTag = /*#__PURE__*/_react.default.createElement("rubric-configure", {
|
|
89
|
-
id: "simpleRubric",
|
|
90
|
-
key: "simple-rubric",
|
|
91
|
-
ref: ref => {
|
|
92
|
-
if (ref) {
|
|
93
|
-
this.simpleRubric = ref;
|
|
94
|
-
this.simpleRubric.model = {
|
|
95
|
-
...rubrics.simpleRubric,
|
|
96
|
-
errors: model.errors || {}
|
|
97
|
-
};
|
|
98
|
-
this.simpleRubric.configuration = {
|
|
99
|
-
...simpleRubric,
|
|
100
|
-
width
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
break;
|
|
106
|
-
case _rubric.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
107
|
-
rubricTag = /*#__PURE__*/_react.default.createElement("multi-trait-rubric-configure", {
|
|
108
|
-
id: "multiTraitRubric",
|
|
109
|
-
key: "multi-trait-rubric",
|
|
110
|
-
ref: ref => {
|
|
111
|
-
if (ref) {
|
|
112
|
-
this.multiTraitRubric = ref;
|
|
113
|
-
this.multiTraitRubric.model = {
|
|
114
|
-
...rubrics.multiTraitRubric,
|
|
115
|
-
errors: model.errors || {}
|
|
116
|
-
};
|
|
117
|
-
this.multiTraitRubric.configuration = {
|
|
118
|
-
...multiTraitRubric,
|
|
119
|
-
width: width || multiTraitRubric.width
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
break;
|
|
125
|
-
case _rubric.RUBRIC_TYPES.RUBRICLESS:
|
|
126
|
-
rubricTag = /*#__PURE__*/_react.default.createElement("rubric-configure", {
|
|
127
|
-
id: "rubricless",
|
|
128
|
-
key: "rubricless",
|
|
129
|
-
ref: ref => {
|
|
130
|
-
if (ref) {
|
|
131
|
-
this.rubricless = ref;
|
|
132
|
-
this.rubricless.model = rubrics.rubricless;
|
|
133
|
-
this.rubricless.configuration = {
|
|
134
|
-
...rubricless,
|
|
135
|
-
width
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return /*#__PURE__*/_react.default.createElement(_configUi.layout.ConfigLayout, {
|
|
144
|
-
extraCSSRules: extraCSSRules,
|
|
145
|
-
dimensions: contentDimensions,
|
|
146
|
-
hideSettings: true,
|
|
147
|
-
settings: null
|
|
148
|
-
}, /*#__PURE__*/_react.default.createElement(_RadioGroup.default, {
|
|
149
|
-
"aria-label": "rubric-type",
|
|
150
|
-
name: "rubricType",
|
|
151
|
-
value: model.rubricType,
|
|
152
|
-
onChange: this.onChangeRubricType
|
|
153
|
-
}, rubricOptions.length > 1 && rubricOptions.map((availableRubric, i) => /*#__PURE__*/_react.default.createElement(StyledFormControlLabel, {
|
|
154
|
-
key: i,
|
|
155
|
-
value: availableRubric,
|
|
156
|
-
control: /*#__PURE__*/_react.default.createElement(StyledRadio, {
|
|
157
|
-
checked: rubricType === availableRubric
|
|
158
|
-
}),
|
|
159
|
-
label: rubricLabels[availableRubric]
|
|
160
|
-
}))), isRubricTypeAvailable && rubricTag);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
exports.Main = Main;
|
|
164
|
-
(0, _defineProperty2.default)(Main, "propTypes", {
|
|
165
|
-
canUpdateModel: _propTypes.default.bool,
|
|
166
|
-
configuration: _propTypes.default.object,
|
|
167
|
-
model: _propTypes.default.object,
|
|
168
|
-
onModelChanged: _propTypes.default.func,
|
|
169
|
-
onConfigurationChanged: _propTypes.default.func
|
|
170
|
-
});
|
|
171
|
-
var _default = exports.default = Main;
|
|
172
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_rubric","_configUi","_Radio","_RadioGroup","_FormControlLabel","_styles","_renderUi","StyledFormControlLabel","styled","FormControlLabel","width","paddingRight","boxSizing","background","StyledRadio","Radio","color","tertiary","rubricLabels","RUBRIC_TYPES","MULTI_TRAIT_RUBRIC","SIMPLE_RUBRIC","RUBRICLESS","Main","React","Component","constructor","args","_defineProperty2","default","model","onModelChanged","props","e","rubricType","target","value","render","configuration","canUpdateModel","extraCSSRules","rubrics","contentDimensions","rubricOptions","multiTraitRubric","simpleRubric","rubricless","rubricTag","isRubricTypeAvailable","indexOf","createElement","id","key","ref","errors","layout","ConfigLayout","dimensions","hideSettings","settings","name","onChange","onChangeRubricType","length","map","availableRubric","i","control","checked","label","exports","PropTypes","bool","object","func","onConfigurationChanged","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RUBRIC_TYPES } from '@pie-lib/rubric';\nimport { layout } from '@pie-lib/config-ui';\nimport Radio from '@mui/material/Radio';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport { styled } from '@mui/material/styles';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledFormControlLabel = styled(FormControlLabel)({\n '&.MuiFormControlLabel-root': {\n width: 'fit-content',\n paddingRight: '24px',\n boxSizing: 'border-box',\n '&:hover': {\n background: 'var(--pie-secondary-background, rgba(241,241,241,1))',\n },\n },\n});\n\nconst StyledRadio = styled(Radio)({\n '&.MuiRadio-root': {\n color: `${color.tertiary()} !important`,\n },\n});\n\nconst rubricLabels = {\n [RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: 'Multi Trait Rubric',\n [RUBRIC_TYPES.SIMPLE_RUBRIC]: 'Simple Rubric',\n [RUBRIC_TYPES.RUBRICLESS]: 'Rubricless',\n};\n\nexport class Main extends React.Component {\n static propTypes = {\n canUpdateModel: PropTypes.bool,\n configuration: PropTypes.object,\n model: PropTypes.object,\n onModelChanged: PropTypes.func,\n onConfigurationChanged: PropTypes.func,\n };\n\n onModelChanged = (model) => {\n const { onModelChanged } = this.props;\n\n return onModelChanged(model);\n };\n\n onChangeRubricType = (e) => {\n const { model } = this.props;\n\n const rubricType = e.target.value;\n this.onModelChanged({ ...model, rubricType });\n };\n\n render() {\n const { model, configuration, canUpdateModel } = this.props;\n\n const { extraCSSRules, rubrics = {} } = model || {};\n let { rubricType } = model;\n const {\n contentDimensions = {},\n rubricOptions = [],\n multiTraitRubric,\n simpleRubric,\n rubricless,\n width,\n } = configuration;\n let rubricTag = '';\n\n if (!rubricType) {\n rubricType = RUBRIC_TYPES.SIMPLE_RUBRIC;\n }\n\n const isRubricTypeAvailable = rubricOptions.indexOf(rubricType) > -1;\n\n if (canUpdateModel) {\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n rubricTag = (\n <rubric-configure\n id=\"simpleRubric\"\n key=\"simple-rubric\"\n ref={(ref) => {\n if (ref) {\n this.simpleRubric = ref;\n this.simpleRubric.model = { ...rubrics.simpleRubric, errors: model.errors || {} };\n this.simpleRubric.configuration = { ...simpleRubric, width };\n }\n }}\n />\n );\n break;\n\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n rubricTag = (\n <multi-trait-rubric-configure\n id=\"multiTraitRubric\"\n key=\"multi-trait-rubric\"\n ref={(ref) => {\n if (ref) {\n this.multiTraitRubric = ref;\n\n this.multiTraitRubric.model = { ...rubrics.multiTraitRubric, errors: model.errors || {} };\n this.multiTraitRubric.configuration = { ...multiTraitRubric, width: width || multiTraitRubric.width };\n }\n }}\n />\n );\n break;\n\n case RUBRIC_TYPES.RUBRICLESS:\n rubricTag = (\n <rubric-configure\n id=\"rubricless\"\n key=\"rubricless\"\n ref={(ref) => {\n if (ref) {\n this.rubricless = ref;\n\n this.rubricless.model = rubrics.rubricless;\n this.rubricless.configuration = { ...rubricless, width };\n }\n }}\n />\n );\n break;\n }\n }\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={true}\n settings={null}\n >\n <RadioGroup\n aria-label=\"rubric-type\"\n name=\"rubricType\"\n value={model.rubricType}\n onChange={this.onChangeRubricType}\n >\n {rubricOptions.length > 1 &&\n rubricOptions.map((availableRubric, i) => (\n <StyledFormControlLabel\n key={i}\n value={availableRubric}\n control={<StyledRadio checked={rubricType === availableRubric} />}\n label={rubricLabels[availableRubric]}\n />\n ))}\n </RadioGroup>\n\n {isRubricTypeAvailable && rubricTag}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
// todo the import from pie-lib/rubric WILL break pslb
|
|
8
|
-
// so don't use it unless you also test "yarn build"
|
|
9
|
-
const RUBRIC_TYPES = {
|
|
10
|
-
SIMPLE_RUBRIC: 'simpleRubric',
|
|
11
|
-
MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
|
|
12
|
-
'rubricless': 'rubricless'
|
|
13
|
-
};
|
|
14
|
-
const multiTraitDefaultModel = {
|
|
15
|
-
description: false,
|
|
16
|
-
excludeZero: false,
|
|
17
|
-
halfScoring: false,
|
|
18
|
-
pointLabels: true,
|
|
19
|
-
scales: [],
|
|
20
|
-
standards: false,
|
|
21
|
-
visibleToStudent: true
|
|
22
|
-
};
|
|
23
|
-
const rubricDefaultModel = {
|
|
24
|
-
points: ['', '', '', ''],
|
|
25
|
-
sampleAnswers: [null, null, null, null],
|
|
26
|
-
maxPoints: 3,
|
|
27
|
-
excludeZero: false
|
|
28
|
-
};
|
|
29
|
-
const rubriclessDefaultModel = {
|
|
30
|
-
maxPoints: 100,
|
|
31
|
-
excludeZero: false,
|
|
32
|
-
rubriclessInstructionEnabled: true
|
|
33
|
-
};
|
|
34
|
-
var _default = exports.default = {
|
|
35
|
-
rubricType: 'simpleRubric',
|
|
36
|
-
rubrics: {
|
|
37
|
-
[RUBRIC_TYPES.SIMPLE_RUBRIC]: rubricDefaultModel,
|
|
38
|
-
[RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: multiTraitDefaultModel,
|
|
39
|
-
[RUBRIC_TYPES.RUBRICLESS]: rubriclessDefaultModel
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","multiTraitDefaultModel","description","excludeZero","halfScoring","pointLabels","scales","standards","visibleToStudent","rubricDefaultModel","points","sampleAnswers","maxPoints","rubriclessDefaultModel","rubriclessInstructionEnabled","_default","exports","default","rubricType","rubrics","RUBRICLESS"],"sources":["../src/defaults.js"],"sourcesContent":["// 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"],"mappings":";;;;;;AAAA;AACA;AACA,MAAMA,YAAY,GAAG;EACnBC,aAAa,EAAE,cAAc;EAC7BC,kBAAkB,EAAE,kBAAkB;EACtC,YAAY,EAAE;AAChB,CAAC;AAED,MAAMC,sBAAsB,GAAG;EAC7BC,WAAW,EAAE,KAAK;EAClBC,WAAW,EAAE,KAAK;EAClBC,WAAW,EAAE,KAAK;EAClBC,WAAW,EAAE,IAAI;EACjBC,MAAM,EAAE,EAAE;EACVC,SAAS,EAAE,KAAK;EAChBC,gBAAgB,EAAE;AACpB,CAAC;AAED,MAAMC,kBAAkB,GAAG;EACzBC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;EACxBC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EACvCC,SAAS,EAAE,CAAC;EACZT,WAAW,EAAE;AACf,CAAC;AAED,MAAMU,sBAAsB,GAAG;EAC7BD,SAAS,EAAE,GAAG;EACdT,WAAW,EAAE,KAAK;EAClBW,4BAA4B,EAAE;AAChC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa;EACbC,UAAU,EAAE,cAAc;EAC1BC,OAAO,EAAE;IACP,CAACrB,YAAY,CAACC,aAAa,GAAGU,kBAAkB;IAChD,CAACX,YAAY,CAACE,kBAAkB,GAAGC,sBAAsB;IACzD,CAACH,YAAY,CAACsB,UAAU,GAAGP;EAC7B;AACF,CAAC","ignoreList":[]}
|
package/controller/lib/index.js
DELETED
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createCorrectResponseSession = void 0;
|
|
8
|
-
exports.createDefaultModel = createDefaultModel;
|
|
9
|
-
exports.getScore = void 0;
|
|
10
|
-
exports.model = model;
|
|
11
|
-
exports.normalize = void 0;
|
|
12
|
-
exports.outcome = outcome;
|
|
13
|
-
exports.validate = void 0;
|
|
14
|
-
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
15
|
-
var _utils = require("./utils");
|
|
16
|
-
// todo the import from pie-lib/rubric WILL break pslb
|
|
17
|
-
// so don't use it unless you also test "yarn build"
|
|
18
|
-
const RUBRIC_TYPES = {
|
|
19
|
-
SIMPLE_RUBRIC: 'simpleRubric',
|
|
20
|
-
MULTI_TRAIT_RUBRIC: 'multiTraitRubric',
|
|
21
|
-
'rubricless': 'rubricless'
|
|
22
|
-
};
|
|
23
|
-
function createDefaultModel(model = {}) {
|
|
24
|
-
return new Promise(resolve => resolve({
|
|
25
|
-
..._defaults.default,
|
|
26
|
-
...model
|
|
27
|
-
}));
|
|
28
|
-
}
|
|
29
|
-
const normalize = question => ({
|
|
30
|
-
..._defaults.default,
|
|
31
|
-
...question
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @param {*} question
|
|
36
|
-
* @param {*} session
|
|
37
|
-
* @param {*} env
|
|
38
|
-
*/
|
|
39
|
-
exports.normalize = normalize;
|
|
40
|
-
async function model(question, session, env) {
|
|
41
|
-
const normalizedQuestion = normalize(question);
|
|
42
|
-
if (normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC || normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS) {
|
|
43
|
-
return new Promise(resolve => {
|
|
44
|
-
resolve(env && env.role && env.role === 'instructor' ? {
|
|
45
|
-
...normalizedQuestion,
|
|
46
|
-
rubrics: {
|
|
47
|
-
...normalizedQuestion.rubrics,
|
|
48
|
-
multiTraitRubric: {
|
|
49
|
-
...normalizedQuestion.rubrics.multiTraitRubric,
|
|
50
|
-
visible: false
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
} : {});
|
|
54
|
-
});
|
|
55
|
-
} else {
|
|
56
|
-
if (!env.role || env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric) {
|
|
57
|
-
normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;
|
|
58
|
-
} else {
|
|
59
|
-
normalizedQuestion.rubrics.multiTraitRubric.visible = true;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// todo update pie-ui instead of parsing this here:
|
|
63
|
-
const {
|
|
64
|
-
scales,
|
|
65
|
-
excludeZero
|
|
66
|
-
} = normalizedQuestion.rubrics.multiTraitRubric || {};
|
|
67
|
-
const parsedScales = (scales || []).map(scale => ({
|
|
68
|
-
...scale,
|
|
69
|
-
excludeZero
|
|
70
|
-
}));
|
|
71
|
-
return {
|
|
72
|
-
...normalizedQuestion,
|
|
73
|
-
rubrics: {
|
|
74
|
-
...normalizedQuestion.rubrics,
|
|
75
|
-
simpleRubric: {
|
|
76
|
-
...normalizedQuestion.rubrics.simpleRubric,
|
|
77
|
-
visible: false
|
|
78
|
-
},
|
|
79
|
-
rubricless: {
|
|
80
|
-
...normalizedQuestion.rubrics.rubricless,
|
|
81
|
-
visible: false
|
|
82
|
-
},
|
|
83
|
-
multiTraitRubric: {
|
|
84
|
-
...normalizedQuestion.rubrics.multiTraitRubric,
|
|
85
|
-
scales: parsedScales
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const getScore = () => 0;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* @param {Object} model - the main model
|
|
95
|
-
* @param {*} session
|
|
96
|
-
* @param {Object} env
|
|
97
|
-
*/
|
|
98
|
-
exports.getScore = getScore;
|
|
99
|
-
function outcome() {
|
|
100
|
-
return new Promise(resolve => resolve({
|
|
101
|
-
score: 0,
|
|
102
|
-
empty: true
|
|
103
|
-
}));
|
|
104
|
-
}
|
|
105
|
-
const createCorrectResponseSession = (question, env) => {
|
|
106
|
-
return new Promise(resolve => {
|
|
107
|
-
if (env.mode !== 'evaluate' && env.role === 'instructor') {
|
|
108
|
-
resolve({
|
|
109
|
-
id: '1'
|
|
110
|
-
});
|
|
111
|
-
} else {
|
|
112
|
-
resolve(null);
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
// IMPORTANT! This function is a duplicate of rubric/controller/validate function!
|
|
118
|
-
// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
|
|
119
|
-
exports.createCorrectResponseSession = createCorrectResponseSession;
|
|
120
|
-
const validateSimpleRubric = model => {
|
|
121
|
-
const {
|
|
122
|
-
points
|
|
123
|
-
} = model;
|
|
124
|
-
const errors = {};
|
|
125
|
-
const pointsDescriptorsErrors = {};
|
|
126
|
-
(points || []).forEach((point, index) => {
|
|
127
|
-
if (!point || point === '<div></div>') {
|
|
128
|
-
pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
|
|
129
|
-
} else {
|
|
130
|
-
const identicalPointDescr = points.slice(index + 1).some(p => (0, _utils.markupToText)(p) === (0, _utils.markupToText)(point));
|
|
131
|
-
if (identicalPointDescr) {
|
|
132
|
-
pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
});
|
|
136
|
-
if (Object.keys(pointsDescriptorsErrors).length > 0) {
|
|
137
|
-
errors.pointsDescriptorsErrors = pointsDescriptorsErrors;
|
|
138
|
-
}
|
|
139
|
-
return errors;
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!
|
|
143
|
-
// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.
|
|
144
|
-
const validateMultiTraitRubric = model => {
|
|
145
|
-
const {
|
|
146
|
-
scales,
|
|
147
|
-
description = false,
|
|
148
|
-
pointLabels = false
|
|
149
|
-
} = model;
|
|
150
|
-
const errors = {};
|
|
151
|
-
const traitsErrors = {};
|
|
152
|
-
const scorePointsErrors = {};
|
|
153
|
-
(scales || []).forEach((scale, scaleIndex) => {
|
|
154
|
-
const {
|
|
155
|
-
traits = []
|
|
156
|
-
} = scale;
|
|
157
|
-
const {
|
|
158
|
-
scorePointsLabels = []
|
|
159
|
-
} = scale;
|
|
160
|
-
const scaleErrors = {};
|
|
161
|
-
const scorePointsLabelsErrors = {};
|
|
162
|
-
if (pointLabels) {
|
|
163
|
-
scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {
|
|
164
|
-
if (!scorePointLabel || scorePointLabel === '<div></div>') {
|
|
165
|
-
scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';
|
|
166
|
-
} else {
|
|
167
|
-
const identicalScorePointLabel = scorePointsLabels.slice(scoreIndex + 1).some(s => (0, _utils.markupToText)(s) === (0, _utils.markupToText)(scorePointLabel));
|
|
168
|
-
if (identicalScorePointLabel) {
|
|
169
|
-
scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
if (Object.keys(scorePointsLabelsErrors).length > 0) {
|
|
175
|
-
scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;
|
|
176
|
-
}
|
|
177
|
-
traits.forEach((trait, traitIndex) => {
|
|
178
|
-
if (!trait.name || trait.name === '<div></div>') {
|
|
179
|
-
scaleErrors[traitIndex] = {
|
|
180
|
-
name: 'Trait names should not be empty.'
|
|
181
|
-
};
|
|
182
|
-
} else {
|
|
183
|
-
const identicalTraitName = traits.slice(traitIndex + 1).some(t => (0, _utils.markupToText)(t.name) === (0, _utils.markupToText)(trait.name));
|
|
184
|
-
if (identicalTraitName) {
|
|
185
|
-
scaleErrors[traitIndex] = {
|
|
186
|
-
name: 'Trait names should be unique.'
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
if (description && (!trait.description || trait.description === '<div></div>')) {
|
|
191
|
-
scaleErrors[traitIndex] = {
|
|
192
|
-
...scaleErrors[traitIndex],
|
|
193
|
-
description: 'Trait description should not be empty'
|
|
194
|
-
};
|
|
195
|
-
} else {
|
|
196
|
-
const identicalTraitDescr = traits.slice(traitIndex + 1).some(t => (0, _utils.markupToText)(t.description) === (0, _utils.markupToText)(trait.description));
|
|
197
|
-
if (description && identicalTraitDescr) {
|
|
198
|
-
scaleErrors[traitIndex] = {
|
|
199
|
-
...scaleErrors[traitIndex],
|
|
200
|
-
description: 'Trait descriptions should be unique.'
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
if (Object.keys(scaleErrors).length > 0) {
|
|
206
|
-
traitsErrors[scaleIndex] = scaleErrors;
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
if (Object.keys(traitsErrors).length > 0) {
|
|
210
|
-
errors.traitsErrors = traitsErrors;
|
|
211
|
-
}
|
|
212
|
-
if (Object.keys(scorePointsErrors).length > 0) {
|
|
213
|
-
errors.scorePointsErrors = scorePointsErrors;
|
|
214
|
-
}
|
|
215
|
-
return errors;
|
|
216
|
-
};
|
|
217
|
-
const validate = (model = {}, config = {}) => {
|
|
218
|
-
const {
|
|
219
|
-
rubrics = {},
|
|
220
|
-
rubricType
|
|
221
|
-
} = model;
|
|
222
|
-
const {
|
|
223
|
-
multiTraitRubric = {},
|
|
224
|
-
simpleRubric = {}
|
|
225
|
-
} = rubrics;
|
|
226
|
-
let errors = {};
|
|
227
|
-
switch (rubricType) {
|
|
228
|
-
case RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
229
|
-
default:
|
|
230
|
-
errors = validateSimpleRubric(simpleRubric);
|
|
231
|
-
break;
|
|
232
|
-
case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
233
|
-
errors = validateMultiTraitRubric(multiTraitRubric);
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
return errors;
|
|
237
|
-
};
|
|
238
|
-
exports.validate = validate;
|
|
239
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_defaults","_interopRequireDefault","require","_utils","RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","createDefaultModel","model","Promise","resolve","defaults","normalize","question","exports","session","env","normalizedQuestion","rubricType","RUBRICLESS","role","rubrics","multiTraitRubric","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","simpleRubric","rubricless","getScore","outcome","score","empty","createCorrectResponseSession","mode","id","validateSimpleRubric","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","markupToText","Object","keys","length","validateMultiTraitRubric","description","pointLabels","traitsErrors","scorePointsErrors","scaleIndex","traits","scorePointsLabels","scaleErrors","scorePointsLabelsErrors","scorePointLabel","scoreIndex","identicalScorePointLabel","s","trait","traitIndex","name","identicalTraitName","t","identicalTraitDescr","validate","config"],"sources":["../src/index.js"],"sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n\n// todo the import from pie-lib/rubric WILL break pslb\n// so don't use it unless you also test \"yarn build\"\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n 'rubricless': 'rubricless',\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n if (\n normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC ||\n normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS\n ) {\n return new Promise((resolve) => {\n resolve(\n env && env.role && env.role === 'instructor'\n ? {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n visible: false,\n },\n },\n }\n : {},\n );\n });\n } else {\n if (\n !env.role ||\n (env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric)\n ) {\n normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.rubrics.multiTraitRubric.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n simpleRubric: {\n ...normalizedQuestion.rubrics.simpleRubric,\n visible: false,\n },\n rubricless: {\n ...normalizedQuestion.rubrics.rubricless,\n visible: false,\n },\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n scales: parsedScales,\n },\n },\n };\n }\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\n// IMPORTANT! This function is a duplicate of rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.\nconst validateSimpleRubric = (model) => {\n const { points } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n\n if (!point || point === '<div></div>') {\n pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';\n } else {\n const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));\n\n if (identicalPointDescr) {\n pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';\n }\n }\n });\n\n if (Object.keys(pointsDescriptorsErrors).length > 0) {\n errors.pointsDescriptorsErrors = pointsDescriptorsErrors;\n }\n\n return errors;\n};\n\n// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.\nconst validateMultiTraitRubric = (model) => {\n const { scales, description = false, pointLabels = false } = model;\n const errors = {};\n const traitsErrors = {};\n const scorePointsErrors = {};\n\n (scales || []).forEach((scale, scaleIndex) => {\n const { traits = [] } = scale;\n const { scorePointsLabels = [] } = scale;\n const scaleErrors = {};\n const scorePointsLabelsErrors = {};\n\n if (pointLabels) {\n scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {\n if (!scorePointLabel || scorePointLabel === '<div></div>') {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';\n } else {\n const identicalScorePointLabel = scorePointsLabels\n .slice(scoreIndex + 1)\n .some((s) => markupToText(s) === markupToText(scorePointLabel));\n\n if (identicalScorePointLabel) {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';\n }\n }\n });\n }\n\n if (Object.keys(scorePointsLabelsErrors).length > 0) {\n scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;\n }\n\n traits.forEach((trait, traitIndex) => {\n if (!trait.name || trait.name === '<div></div>') {\n scaleErrors[traitIndex] = { name: 'Trait names should not be empty.' };\n } else {\n const identicalTraitName = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.name) === markupToText(trait.name));\n\n if (identicalTraitName) {\n scaleErrors[traitIndex] = { name: 'Trait names should be unique.' };\n }\n }\n if (description && (!trait.description || trait.description === '<div></div>')) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait description should not be empty' };\n } else {\n const identicalTraitDescr = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.description) === markupToText(trait.description));\n\n if (description && identicalTraitDescr) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait descriptions should be unique.' };\n }\n }\n });\n if (Object.keys(scaleErrors).length > 0) {\n traitsErrors[scaleIndex] = scaleErrors;\n }\n });\n\n if (Object.keys(traitsErrors).length > 0) {\n errors.traitsErrors = traitsErrors;\n }\n\n if (Object.keys(scorePointsErrors).length > 0) {\n errors.scorePointsErrors = scorePointsErrors;\n }\n\n return errors;\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rubrics = {}, rubricType } = model;\n const { multiTraitRubric = {}, simpleRubric = {} } = rubrics;\n let errors = {};\n\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n errors = validateSimpleRubric(simpleRubric);\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n errors = validateMultiTraitRubric(multiTraitRubric);\n break;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/controller/lib/utils.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.markupToText = void 0;
|
|
7
|
-
const markupToText = s => {
|
|
8
|
-
return (s || '').replace(/(<([^>]+)>)/ig, '');
|
|
9
|
-
};
|
|
10
|
-
exports.markupToText = markupToText;
|
|
11
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["markupToText","s","replace","exports"],"sources":["../src/utils.js"],"sourcesContent":["export const markupToText = (s) => {\n return (s || '').replace(/(<([^>]+)>)/ig, '');\n};\n"],"mappings":";;;;;;AAAO,MAAMA,YAAY,GAAIC,CAAC,IAAK;EAC/B,OAAO,CAACA,CAAC,IAAI,EAAE,EAAEC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;AACjD,CAAC;AAACC,OAAA,CAAAH,YAAA,GAAAA,YAAA","ignoreList":[]}
|
package/lib/index.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _rubric = _interopRequireDefault(require("@pie-element/rubric"));
|
|
9
|
-
var _multiTraitRubric = _interopRequireDefault(require("@pie-element/multi-trait-rubric"));
|
|
10
|
-
var _rubric2 = require("@pie-lib/rubric");
|
|
11
|
-
const RUBRIC_TAG_NAME = 'complex-rubric-simple';
|
|
12
|
-
const MULTI_TRAIT_RUBRIC_TAG_NAME = 'complex-rubric-multi-trait';
|
|
13
|
-
class ComplexRubricSimple extends _rubric.default {}
|
|
14
|
-
class ComplexRubricMultiTrait extends _multiTraitRubric.default {}
|
|
15
|
-
const defineRubrics = () => {
|
|
16
|
-
if (!customElements.get(RUBRIC_TAG_NAME)) {
|
|
17
|
-
customElements.define(RUBRIC_TAG_NAME, ComplexRubricSimple);
|
|
18
|
-
}
|
|
19
|
-
if (!customElements.get(MULTI_TRAIT_RUBRIC_TAG_NAME)) {
|
|
20
|
-
customElements.define(MULTI_TRAIT_RUBRIC_TAG_NAME, ComplexRubricMultiTrait);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
defineRubrics();
|
|
24
|
-
class ComplexRubric extends HTMLElement {
|
|
25
|
-
constructor() {
|
|
26
|
-
super();
|
|
27
|
-
this._model = {};
|
|
28
|
-
this._type = _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC;
|
|
29
|
-
}
|
|
30
|
-
set type(t) {
|
|
31
|
-
this._type = t;
|
|
32
|
-
}
|
|
33
|
-
get type() {
|
|
34
|
-
return this._type;
|
|
35
|
-
}
|
|
36
|
-
set model(m) {
|
|
37
|
-
this._model = m;
|
|
38
|
-
const oldType = this._type;
|
|
39
|
-
this.type = m.rubricType;
|
|
40
|
-
switch (this._type) {
|
|
41
|
-
case _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
42
|
-
default:
|
|
43
|
-
customElements.whenDefined(RUBRIC_TAG_NAME).then(() => {
|
|
44
|
-
this.setRubricModel(this.simpleRubric);
|
|
45
|
-
});
|
|
46
|
-
break;
|
|
47
|
-
case _rubric2.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
48
|
-
customElements.whenDefined(MULTI_TRAIT_RUBRIC_TAG_NAME).then(() => {
|
|
49
|
-
this.setMultiTraitRubricModel(this.multiTraitRubric);
|
|
50
|
-
});
|
|
51
|
-
break;
|
|
52
|
-
case _rubric2.RUBRIC_TYPES.RUBRICLESS:
|
|
53
|
-
customElements.whenDefined(RUBRIC_TAG_NAME).then(() => {
|
|
54
|
-
this.setRubriclessModel(this.rubricless);
|
|
55
|
-
});
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
if (oldType !== this.type) {
|
|
59
|
-
this._render();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
setRubricModel(simpleRubric) {
|
|
63
|
-
if (this._model && this._model.rubrics && this._model.rubrics.simpleRubric) {
|
|
64
|
-
const {
|
|
65
|
-
mode
|
|
66
|
-
} = this._model;
|
|
67
|
-
simpleRubric.model = {
|
|
68
|
-
...this._model.rubrics.simpleRubric,
|
|
69
|
-
mode
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
setMultiTraitRubricModel(multiTraitRubric) {
|
|
74
|
-
if (this._model && this._model.rubrics && this._model.rubrics.multiTraitRubric) {
|
|
75
|
-
const {
|
|
76
|
-
mode
|
|
77
|
-
} = this._model;
|
|
78
|
-
multiTraitRubric.model = {
|
|
79
|
-
...this._model.rubrics.multiTraitRubric,
|
|
80
|
-
mode
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
setRubriclessModel(rubricless) {
|
|
85
|
-
if (this._model && this._model.rubrics && this._model.rubrics.rubricless) {
|
|
86
|
-
const {
|
|
87
|
-
mode
|
|
88
|
-
} = this._model;
|
|
89
|
-
rubricless.model = {
|
|
90
|
-
...this._model.rubrics.rubricless,
|
|
91
|
-
mode
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
get multiTraitRubric() {
|
|
96
|
-
return this.querySelector(`${MULTI_TRAIT_RUBRIC_TAG_NAME}#multiTraitRubric`);
|
|
97
|
-
}
|
|
98
|
-
get simpleRubric() {
|
|
99
|
-
return this.querySelector(`${RUBRIC_TAG_NAME}#simpleRubric`);
|
|
100
|
-
}
|
|
101
|
-
get rubricless() {
|
|
102
|
-
return this.querySelector(`${RUBRIC_TAG_NAME}#rubricless`);
|
|
103
|
-
}
|
|
104
|
-
connectedCallback() {
|
|
105
|
-
this._render();
|
|
106
|
-
}
|
|
107
|
-
_render() {
|
|
108
|
-
let rubricTag;
|
|
109
|
-
if (this._type === _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC) {
|
|
110
|
-
rubricTag = `<${RUBRIC_TAG_NAME} id="simpleRubric" />`;
|
|
111
|
-
} else if (this._type === _rubric2.RUBRIC_TYPES.RUBRICLESS) {
|
|
112
|
-
rubricTag = `<${RUBRIC_TAG_NAME} id="rubricless" />`;
|
|
113
|
-
} else {
|
|
114
|
-
rubricTag = `<${MULTI_TRAIT_RUBRIC_TAG_NAME} id="multiTraitRubric" />`;
|
|
115
|
-
}
|
|
116
|
-
this.innerHTML = rubricTag;
|
|
117
|
-
|
|
118
|
-
// when item is re-rendered (due to connectedCallback), if the custom element is already defined,
|
|
119
|
-
// we need to set the model and session, otherwise the setters are not reached again
|
|
120
|
-
switch (this._type) {
|
|
121
|
-
case _rubric2.RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
122
|
-
default:
|
|
123
|
-
if (customElements.get(RUBRIC_TAG_NAME)) {
|
|
124
|
-
this.setRubricModel(this.simpleRubric);
|
|
125
|
-
}
|
|
126
|
-
break;
|
|
127
|
-
case _rubric2.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:
|
|
128
|
-
if (customElements.get(MULTI_TRAIT_RUBRIC_TAG_NAME)) {
|
|
129
|
-
this.setMultiTraitRubricModel(this.multiTraitRubric);
|
|
130
|
-
}
|
|
131
|
-
break;
|
|
132
|
-
case _rubric2.RUBRIC_TYPES.RUBRICLESS:
|
|
133
|
-
if (customElements.get(RUBRIC_TAG_NAME)) {
|
|
134
|
-
this.setRubriclessModel(this.rubricless);
|
|
135
|
-
}
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
var _default = exports.default = ComplexRubric;
|
|
141
|
-
//# sourceMappingURL=index.js.map
|