@pie-element/complex-rubric 2.1.2-next.57 → 2.1.2-next.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configure/lib/defaults.js +37 -8
- package/configure/lib/defaults.js.map +1 -1
- package/configure/lib/index.js +5 -1
- package/configure/lib/index.js.map +1 -1
- package/configure/lib/main.js +45 -21
- package/configure/lib/main.js.map +1 -1
- package/configure/src/__tests__/__snapshots__/main.test.jsx.snap +33 -0
- package/configure/src/__tests__/main.test.jsx +1 -0
- package/configure/src/defaults.js +34 -3
- package/configure/src/index.js +9 -3
- package/configure/src/main.jsx +38 -14
- package/controller/lib/defaults.js +29 -2
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +6 -2
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/controller/src/__tests__/index.test.js +4 -0
- package/controller/src/defaults.js +29 -1
- package/controller/src/index.js +6 -1
- package/docs/config-schema.json +343 -0
- package/docs/config-schema.json.md +263 -1
- package/docs/demo/generate.js +6 -0
- package/docs/pie-schema.json +279 -0
- package/docs/pie-schema.json.md +202 -1
- package/lib/index.js +38 -1
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/index.js +36 -4
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _rubric = require("@pie-lib/pie-toolbox/rubric");
|
|
13
|
+
|
|
14
|
+
var _rubrics, _configuration;
|
|
15
|
+
|
|
7
16
|
var multiTraitDefaultModel = {
|
|
8
17
|
visibleToStudent: true,
|
|
9
18
|
halfScoring: false,
|
|
@@ -19,6 +28,11 @@ var rubricDefaultModel = {
|
|
|
19
28
|
maxPoints: 4,
|
|
20
29
|
excludeZero: false
|
|
21
30
|
};
|
|
31
|
+
var rubriclessDefaultModel = {
|
|
32
|
+
maxPoints: 100,
|
|
33
|
+
excludeZero: false,
|
|
34
|
+
rubriclessInstructionEnabled: true
|
|
35
|
+
};
|
|
22
36
|
var multiTraitDefaultConfiguration = {
|
|
23
37
|
settingsPanelDisabled: false,
|
|
24
38
|
excludeZeroDialogBoxContent: {
|
|
@@ -93,19 +107,34 @@ var rubricDefaultConfiguration = {
|
|
|
93
107
|
settingsPanelDisabled: false,
|
|
94
108
|
maxMaxPoints: 9
|
|
95
109
|
};
|
|
110
|
+
var rubriclessDefaultConfiguration = {
|
|
111
|
+
showExcludeZero: {
|
|
112
|
+
settings: true,
|
|
113
|
+
label: 'Ability to exclude zero'
|
|
114
|
+
},
|
|
115
|
+
showMaxPoint: {
|
|
116
|
+
settings: true,
|
|
117
|
+
label: 'Show max points dropdown'
|
|
118
|
+
},
|
|
119
|
+
settingsPanelDisabled: false,
|
|
120
|
+
// shows us if it simple rubric or rubricless(simple rubric with less structure)
|
|
121
|
+
rubricless: true,
|
|
122
|
+
// scoring instruction for rubricless
|
|
123
|
+
rubriclessInstruction: {
|
|
124
|
+
settings: true,
|
|
125
|
+
label: 'Instruction'
|
|
126
|
+
},
|
|
127
|
+
maxMaxPoints: 100
|
|
128
|
+
};
|
|
96
129
|
var _default = {
|
|
97
130
|
model: {
|
|
98
131
|
rubricType: 'simpleRubric',
|
|
99
|
-
rubrics: {
|
|
100
|
-
simpleRubric: rubricDefaultModel,
|
|
101
|
-
multiTraitRubric: multiTraitDefaultModel
|
|
102
|
-
}
|
|
132
|
+
rubrics: (_rubrics = {}, (0, _defineProperty2["default"])(_rubrics, _rubric.RUBRIC_TYPES.SIMPLE_RUBRIC, rubricDefaultModel), (0, _defineProperty2["default"])(_rubrics, _rubric.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC, multiTraitDefaultModel), (0, _defineProperty2["default"])(_rubrics, _rubric.RUBRIC_TYPES.RUBRICLESS, rubriclessDefaultModel), _rubrics)
|
|
103
133
|
},
|
|
104
|
-
configuration: {
|
|
134
|
+
configuration: (_configuration = {
|
|
105
135
|
// width: '770px',
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
136
|
+
rubricOptions: ['simpleRubric', 'multiTraitRubric', 'rubricless']
|
|
137
|
+
}, (0, _defineProperty2["default"])(_configuration, _rubric.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC, multiTraitDefaultConfiguration), (0, _defineProperty2["default"])(_configuration, _rubric.RUBRIC_TYPES.SIMPLE_RUBRIC, rubricDefaultConfiguration), (0, _defineProperty2["default"])(_configuration, _rubric.RUBRIC_TYPES.RUBRICLESS, rubriclessDefaultConfiguration), _configuration)
|
|
109
138
|
};
|
|
110
139
|
exports["default"] = _default;
|
|
111
140
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["multiTraitDefaultModel","visibleToStudent","halfScoring","pointLabels","description","standards","scales","excludeZero","rubricDefaultModel","points","sampleAnswers","maxPoints","multiTraitDefaultConfiguration","settingsPanelDisabled","excludeZeroDialogBoxContent","title","text","includeZeroDialogBoxContent","deleteScaleDialogBoxContent","maxPointsDialogBoxContent","spellCheck","label","settings","enabled","showExcludeZero","showScorePointLabels","showDescription","showVisibleToStudent","showHalfScoring","showStandards","showLevelTagInput","dragAndDrop","maxMaxPoints","rubricDefaultConfiguration","showMaxPoint","model","rubricType","rubrics","
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["multiTraitDefaultModel","visibleToStudent","halfScoring","pointLabels","description","standards","scales","excludeZero","rubricDefaultModel","points","sampleAnswers","maxPoints","rubriclessDefaultModel","rubriclessInstructionEnabled","multiTraitDefaultConfiguration","settingsPanelDisabled","excludeZeroDialogBoxContent","title","text","includeZeroDialogBoxContent","deleteScaleDialogBoxContent","maxPointsDialogBoxContent","spellCheck","label","settings","enabled","showExcludeZero","showScorePointLabels","showDescription","showVisibleToStudent","showHalfScoring","showStandards","showLevelTagInput","dragAndDrop","maxMaxPoints","rubricDefaultConfiguration","showMaxPoint","rubriclessDefaultConfiguration","rubricless","rubriclessInstruction","model","rubricType","rubrics","RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","RUBRICLESS","configuration","rubricOptions"],"mappings":"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","sourcesContent":["import {RUBRIC_TYPES} from '@pie-lib/pie-toolbox/rubric';\n\nconst multiTraitDefaultModel = {\n visibleToStudent: true,\n halfScoring: false,\n pointLabels: true,\n description: false,\n standards: false,\n scales: [],\n excludeZero: false,\n};\n\nconst rubricDefaultModel = {\n points: ['', '', '', ''],\n sampleAnswers: [null, null, null, null],\n maxPoints: 4,\n excludeZero: false,\n};\n\nconst rubriclessDefaultModel = {\n maxPoints: 100,\n excludeZero: false,\n rubriclessInstructionEnabled: true,\n};\n\nconst multiTraitDefaultConfiguration = {\n settingsPanelDisabled: false,\n excludeZeroDialogBoxContent: {\n title: 'Exclude 0 (Zero) from Score Point Values.',\n text: `<div>\n You are about to exclude 0 from score point values.\n <br/>\n Some of the existing data has to be changed.\n <br/>\n Please choose if you want to:\n <ul>\n <li>\n shift Labels and Descriptions to the left\n </li>\n <li>\n remove 0 column with its Label and Description\n </li>\n </ul>\n </div>`,\n },\n includeZeroDialogBoxContent: {\n title: 'Include 0 (Zero) in Score Point Values.',\n text: `<div>\n You are about to include 0 in score point values.\n <br/>\n Some of the existing data has to be changed.\n <br/>\n Please choose if you want to:\n <ul>\n <li>\n shift Labels and Descriptions to the right\n </li>\n <li>\n add 0 column with empty Label and Descriptions\n </li>\n </ul>\n </div>`,\n },\n deleteScaleDialogBoxContent: {\n title: 'Delete Scale',\n text: 'Are you sure you want to delete this scale?',\n },\n maxPointsDialogBoxContent: {\n title: 'Decreasing Max Points.',\n text: ` You are about to decrease max score point value.\n <br/>\n All the Labels and Descriptions for scores above Max Point will be deleted.`,\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n showExcludeZero: {\n settings: true,\n label: 'Exclude Zero',\n },\n showScorePointLabels: {\n settings: true,\n label: 'Show Score Point Labels',\n },\n showDescription: {\n settings: true,\n label: 'Show Description',\n },\n showVisibleToStudent: {\n settings: true,\n label: 'Visible to Student',\n },\n showHalfScoring: {\n settings: true,\n label: 'Half Scoring',\n },\n // commenting this in order to use the dynamic width if the width was not set by the client (PD-3203)\n // width: '900px',\n // these should not be set to true (should not be used) for now\n showStandards: {\n settings: false,\n label: 'Show Standards',\n },\n showLevelTagInput: {\n settings: false,\n label: 'Show Level Tag Input',\n enabled: false,\n },\n dragAndDrop: {\n settings: true,\n label: 'Enable Drag and Drop',\n enabled: false,\n },\n maxMaxPoints: 9\n};\n\nconst rubricDefaultConfiguration = {\n showExcludeZero: {\n settings: true,\n label: 'Ability to exclude zero',\n },\n showMaxPoint: {\n settings: true,\n label: 'Show max points dropdown',\n },\n settingsPanelDisabled: false,\n maxMaxPoints: 9\n};\n\n\nconst rubriclessDefaultConfiguration = {\n showExcludeZero: {\n settings: true,\n label: 'Ability to exclude zero',\n },\n showMaxPoint: {\n settings: true,\n label: 'Show max points dropdown',\n },\n settingsPanelDisabled: false,\n // shows us if it simple rubric or rubricless(simple rubric with less structure)\n rubricless: true,\n // scoring instruction for rubricless\n rubriclessInstruction: {\n settings: true,\n label: 'Instruction',\n },\n maxMaxPoints: 100,\n};\n\nexport default {\n model: {\n rubricType: 'simpleRubric',\n rubrics: { [RUBRIC_TYPES.SIMPLE_RUBRIC]: rubricDefaultModel, [RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: multiTraitDefaultModel, [RUBRIC_TYPES.RUBRICLESS]: rubriclessDefaultModel },\n },\n configuration: {\n // width: '770px',\n rubricOptions: ['simpleRubric', 'multiTraitRubric', 'rubricless'],\n [RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: multiTraitDefaultConfiguration,\n [RUBRIC_TYPES.SIMPLE_RUBRIC]: rubricDefaultConfiguration,\n [RUBRIC_TYPES.RUBRICLESS]: rubriclessDefaultConfiguration,\n },\n};\n"],"file":"defaults.js"}
|
package/configure/lib/index.js
CHANGED
|
@@ -216,10 +216,13 @@ exports["default"] = ComplexRubricConfigureElement;
|
|
|
216
216
|
|
|
217
217
|
_ref$rubrics = _ref$rubrics === void 0 ? {
|
|
218
218
|
simpleRubric: {},
|
|
219
|
+
rubricless: {},
|
|
219
220
|
multiTraitRubric: {}
|
|
220
221
|
} : _ref$rubrics;
|
|
221
222
|
var _ref$rubrics$simpleRu = _ref$rubrics.simpleRubric,
|
|
222
223
|
simpleRubric = _ref$rubrics$simpleRu === void 0 ? {} : _ref$rubrics$simpleRu,
|
|
224
|
+
_ref$rubrics$rubricle = _ref$rubrics.rubricless,
|
|
225
|
+
rubricless = _ref$rubrics$rubricle === void 0 ? {} : _ref$rubrics$rubricle,
|
|
223
226
|
_ref$rubrics$multiTra = _ref$rubrics.multiTraitRubric,
|
|
224
227
|
multiTraitRubric = _ref$rubrics$multiTra === void 0 ? {} : _ref$rubrics$multiTra,
|
|
225
228
|
model = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
@@ -227,7 +230,8 @@ exports["default"] = ComplexRubricConfigureElement;
|
|
|
227
230
|
return _objectSpread(_objectSpread(_objectSpread({}, defaults), model), {}, {
|
|
228
231
|
rubrics: {
|
|
229
232
|
simpleRubric: _objectSpread(_objectSpread({}, (defaults.rubrics || {}).simpleRubric), simpleRubric),
|
|
230
|
-
multiTraitRubric: _objectSpread(_objectSpread({}, (defaults.rubrics || {}).multiTraitRubric), multiTraitRubric)
|
|
233
|
+
multiTraitRubric: _objectSpread(_objectSpread({}, (defaults.rubrics || {}).multiTraitRubric), multiTraitRubric),
|
|
234
|
+
rubricless: _objectSpread(_objectSpread({}, (defaults.rubrics || {}).rubricless), rubricless)
|
|
231
235
|
}
|
|
232
236
|
});
|
|
233
237
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["MODEL_UPDATED","ModelUpdatedEvent","TYPE","RUBRIC_TAG_NAME","MULTI_TRAIT_RUBRIC_TAG_NAME","ComplexSimpleRubricConfigure","RubricConfigure","ComplexMTRConfigure","MultiTraitRubricConfigure","defineComplexRubric","customElements","get","define","prepareCustomizationObject","config","model","configuration","sensibleDefaults","ComplexRubricConfigureElement","m","reset","_model","createDefaultModel","dispatchModelUpdated","_render","e","target","preventDefault","stopImmediatePropagation","id","getAttribute","update","rubrics","dispatchEvent","canUpdateModel","debug","log","_configuration","onConfigurationChanged","bind","resetValue","c","info","onModelChanged","addEventListener","onModelUpdated","removeEventListener","element","React","createElement","Main","ReactDOM","render","HTMLElement","simpleRubric","multiTraitRubric","defaults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;AAEA,IAAMA,aAAa,GAAGC,sCAAkBC,IAAxC;AACA,IAAMC,eAAe,GAAG,kBAAxB;AACA,IAAMC,2BAA2B,GAAG,8BAApC;;IAEMC,4B;;;;;;;;;;;EAAqCC,e;;IAGrCC,mB;;;;;;;;;;;EAA4BC,gB;;AAGlC,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChC,MAAI,CAACC,cAAc,CAACC,GAAf,CAAmBR,eAAnB,CAAL,EAA0C;AACxCO,IAAAA,cAAc,CAACE,MAAf,CAAsBT,eAAtB,EAAuCE,4BAAvC;AACD;;AACD,MAAI,CAACK,cAAc,CAACC,GAAf,CAAmBP,2BAAnB,CAAL,EAAsD;AACpDM,IAAAA,cAAc,CAACE,MAAf,CAAsBR,2BAAtB,EAAmDG,mBAAnD;AACD;AACF,CAPD;;AASAE,mBAAmB;;AAEnB,IAAMI,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,MAAD,EAASC,KAAT,EAAmB;AACpD,MAAMC,aAAa,GAAG,0BAASF,MAAT,EAAiBG,sBAAiBD,aAAlC,CAAtB;AAEA,SAAO;AACLA,IAAAA,aAAa,EAAbA,aADK;AAELD,IAAAA,KAAK,EAALA;AAFK,GAAP;AAID,CAPD;;IASqBG,6B;;;;;
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["MODEL_UPDATED","ModelUpdatedEvent","TYPE","RUBRIC_TAG_NAME","MULTI_TRAIT_RUBRIC_TAG_NAME","ComplexSimpleRubricConfigure","RubricConfigure","ComplexMTRConfigure","MultiTraitRubricConfigure","defineComplexRubric","customElements","get","define","prepareCustomizationObject","config","model","configuration","sensibleDefaults","ComplexRubricConfigureElement","m","reset","_model","createDefaultModel","dispatchModelUpdated","_render","e","target","preventDefault","stopImmediatePropagation","id","getAttribute","update","rubrics","dispatchEvent","canUpdateModel","debug","log","_configuration","onConfigurationChanged","bind","resetValue","c","info","onModelChanged","addEventListener","onModelUpdated","removeEventListener","element","React","createElement","Main","ReactDOM","render","HTMLElement","simpleRubric","rubricless","multiTraitRubric","defaults"],"mappings":"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","sourcesContent":["import { ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport RubricConfigure from '@pie-element/rubric/configure/lib';\nimport MultiTraitRubricConfigure from '@pie-element/multi-trait-rubric/configure/lib';\nimport debug from 'debug';\nimport defaults from 'lodash/defaults';\nimport Main from './main';\nimport sensibleDefaults from './defaults';\n\nconst MODEL_UPDATED = ModelUpdatedEvent.TYPE;\nconst RUBRIC_TAG_NAME = 'rubric-configure';\nconst MULTI_TRAIT_RUBRIC_TAG_NAME = 'multi-trait-rubric-configure';\n\nclass ComplexSimpleRubricConfigure extends RubricConfigure {\n}\n\nclass ComplexMTRConfigure extends MultiTraitRubricConfigure {\n}\n\nconst defineComplexRubric = () => {\n if (!customElements.get(RUBRIC_TAG_NAME)) {\n customElements.define(RUBRIC_TAG_NAME, ComplexSimpleRubricConfigure);\n }\n if (!customElements.get(MULTI_TRAIT_RUBRIC_TAG_NAME)) {\n customElements.define(MULTI_TRAIT_RUBRIC_TAG_NAME, ComplexMTRConfigure);\n }\n};\n\ndefineComplexRubric();\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, sensibleDefaults.configuration);\n\n return {\n configuration,\n model,\n };\n};\n\nexport default class ComplexRubricConfigureElement extends HTMLElement {\n static createDefaultModel = (\n {\n rubrics: { simpleRubric = {}, rubricless = {}, multiTraitRubric = {} } = { simpleRubric: {}, rubricless: {}, multiTraitRubric: {} },\n ...model\n } = {},\n defaults = {},\n ) =>\n {\n return {\n ...defaults,\n ...model,\n rubrics: {\n simpleRubric: {\n ...(defaults.rubrics || {}).simpleRubric,\n ...simpleRubric,\n },\n multiTraitRubric: {\n ...(defaults.rubrics || {}).multiTraitRubric,\n ...multiTraitRubric,\n },\n rubricless: {\n ...(defaults.rubrics || {}).rubricless,\n ...rubricless,\n },\n },\n }};\n\n constructor() {\n super();\n this.canUpdateModel = false;\n\n debug.log('constructor called');\n\n this._model = ComplexRubricConfigureElement.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(m) {\n this._model = ComplexRubricConfigureElement.createDefaultModel(m, this._model);\n\n this.canUpdateModel = true;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged = (m, reset) => {\n this._model = ComplexRubricConfigureElement.createDefaultModel(m, this._model);\n\n this.dispatchModelUpdated(reset);\n\n this._render();\n };\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n this._configuration = info.configuration;\n\n this._render();\n }\n\n onConfigurationChanged(c) {\n this._configuration = prepareCustomizationObject(c, this._model).configuration;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n }\n\n onModelUpdated = (e) => {\n if (e.target === this) {\n return;\n }\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n const id = e.target && e.target.getAttribute('id');\n\n if (id) {\n if (e.update) {\n this._model.rubrics[id] = e.update;\n }\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n };\n\n connectedCallback() {\n this.addEventListener(MODEL_UPDATED, this.onModelUpdated);\n this._render();\n }\n\n disconnectedCallback() {\n this.removeEventListener(MODEL_UPDATED, this.onModelUpdated);\n }\n\n _render() {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n canUpdateModel: this.canUpdateModel\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"file":"index.js"}
|
package/configure/lib/main.js
CHANGED
|
@@ -37,6 +37,8 @@ var _styles = require("@material-ui/core/styles");
|
|
|
37
37
|
|
|
38
38
|
var _core = require("@material-ui/core");
|
|
39
39
|
|
|
40
|
+
var _rubricLabels;
|
|
41
|
+
|
|
40
42
|
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; }
|
|
41
43
|
|
|
42
44
|
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; }
|
|
@@ -46,6 +48,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
46
48
|
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; } }
|
|
47
49
|
|
|
48
50
|
var styles = {};
|
|
51
|
+
var rubricLabels = (_rubricLabels = {}, (0, _defineProperty2["default"])(_rubricLabels, _rubric.RUBRIC_TYPES.MULTI_TRAIT_RUBRIC, 'Multi Trait Rubric'), (0, _defineProperty2["default"])(_rubricLabels, _rubric.RUBRIC_TYPES.SIMPLE_RUBRIC, 'Simple Rubric'), (0, _defineProperty2["default"])(_rubricLabels, _rubric.RUBRIC_TYPES.RUBRICLESS, 'Rubricless'), _rubricLabels);
|
|
49
52
|
|
|
50
53
|
var Main = /*#__PURE__*/function (_React$Component) {
|
|
51
54
|
(0, _inherits2["default"])(Main, _React$Component);
|
|
@@ -86,13 +89,19 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
86
89
|
model = _this$props.model,
|
|
87
90
|
configuration = _this$props.configuration,
|
|
88
91
|
canUpdateModel = _this$props.canUpdateModel;
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
|
|
93
|
+
var _ref = model || {},
|
|
94
|
+
_ref$rubrics = _ref.rubrics,
|
|
95
|
+
rubrics = _ref$rubrics === void 0 ? {} : _ref$rubrics;
|
|
96
|
+
|
|
91
97
|
var rubricType = model.rubricType;
|
|
92
98
|
var _configuration$conten = configuration.contentDimensions,
|
|
93
99
|
contentDimensions = _configuration$conten === void 0 ? {} : _configuration$conten,
|
|
100
|
+
_configuration$rubric = configuration.rubricOptions,
|
|
101
|
+
rubricOptions = _configuration$rubric === void 0 ? [] : _configuration$rubric,
|
|
94
102
|
multiTraitRubric = configuration.multiTraitRubric,
|
|
95
103
|
simpleRubric = configuration.simpleRubric,
|
|
104
|
+
rubricless = configuration.rubricless,
|
|
96
105
|
width = configuration.width;
|
|
97
106
|
var rubricTag = '';
|
|
98
107
|
|
|
@@ -100,6 +109,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
100
109
|
rubricType = _rubric.RUBRIC_TYPES.SIMPLE_RUBRIC;
|
|
101
110
|
}
|
|
102
111
|
|
|
112
|
+
var isRubricTypeAvailable = rubricOptions.indexOf(rubricType) > -1;
|
|
113
|
+
|
|
103
114
|
if (canUpdateModel) {
|
|
104
115
|
switch (rubricType) {
|
|
105
116
|
case _rubric.RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
@@ -107,9 +118,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
107
118
|
rubricTag = /*#__PURE__*/_react["default"].createElement("rubric-configure", {
|
|
108
119
|
id: "simpleRubric",
|
|
109
120
|
key: "simple-rubric",
|
|
110
|
-
ref: function ref(
|
|
111
|
-
if (
|
|
112
|
-
_this2.simpleRubric =
|
|
121
|
+
ref: function ref(_ref2) {
|
|
122
|
+
if (_ref2) {
|
|
123
|
+
_this2.simpleRubric = _ref2;
|
|
113
124
|
_this2.simpleRubric.model = _objectSpread(_objectSpread({}, rubrics.simpleRubric), {}, {
|
|
114
125
|
errors: model.errors || {}
|
|
115
126
|
});
|
|
@@ -125,9 +136,9 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
125
136
|
rubricTag = /*#__PURE__*/_react["default"].createElement("multi-trait-rubric-configure", {
|
|
126
137
|
id: "multiTraitRubric",
|
|
127
138
|
key: "multi-trait-rubric",
|
|
128
|
-
ref: function ref(
|
|
129
|
-
if (
|
|
130
|
-
_this2.multiTraitRubric =
|
|
139
|
+
ref: function ref(_ref3) {
|
|
140
|
+
if (_ref3) {
|
|
141
|
+
_this2.multiTraitRubric = _ref3;
|
|
131
142
|
_this2.multiTraitRubric.model = _objectSpread(_objectSpread({}, rubrics.multiTraitRubric), {}, {
|
|
132
143
|
errors: model.errors || {}
|
|
133
144
|
});
|
|
@@ -138,6 +149,22 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
138
149
|
}
|
|
139
150
|
});
|
|
140
151
|
break;
|
|
152
|
+
|
|
153
|
+
case _rubric.RUBRIC_TYPES.RUBRICLESS:
|
|
154
|
+
rubricTag = /*#__PURE__*/_react["default"].createElement("rubric-configure", {
|
|
155
|
+
id: "rubricless",
|
|
156
|
+
key: "rubricless",
|
|
157
|
+
ref: function ref(_ref4) {
|
|
158
|
+
if (_ref4) {
|
|
159
|
+
_this2.rubricless = _ref4;
|
|
160
|
+
_this2.rubricless.model = rubrics.rubricless;
|
|
161
|
+
_this2.rubricless.configuration = _objectSpread(_objectSpread({}, rubricless), {}, {
|
|
162
|
+
width: width
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
break;
|
|
141
168
|
}
|
|
142
169
|
}
|
|
143
170
|
|
|
@@ -150,19 +177,16 @@ var Main = /*#__PURE__*/function (_React$Component) {
|
|
|
150
177
|
name: "rubricType",
|
|
151
178
|
value: model.rubricType,
|
|
152
179
|
onChange: this.onChangeRubricType
|
|
153
|
-
},
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}),
|
|
164
|
-
label: "Multi Trait Rubric"
|
|
165
|
-
})), rubricTag);
|
|
180
|
+
}, rubricOptions.length > 1 && rubricOptions.map(function (availableRubric, i) {
|
|
181
|
+
return /*#__PURE__*/_react["default"].createElement(_core.FormControlLabel, {
|
|
182
|
+
key: i,
|
|
183
|
+
value: availableRubric,
|
|
184
|
+
control: /*#__PURE__*/_react["default"].createElement(_Radio["default"], {
|
|
185
|
+
checked: rubricType === availableRubric
|
|
186
|
+
}),
|
|
187
|
+
label: rubricLabels[availableRubric]
|
|
188
|
+
});
|
|
189
|
+
})), isRubricTypeAvailable && rubricTag);
|
|
166
190
|
}
|
|
167
191
|
}]);
|
|
168
192
|
return Main;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/main.jsx"],"names":["styles","Main","model","onModelChanged","props","e","rubricType","target","value","configuration","canUpdateModel","rubrics","contentDimensions","multiTraitRubric","simpleRubric","width","rubricTag","
|
|
1
|
+
{"version":3,"sources":["../src/main.jsx"],"names":["styles","rubricLabels","RUBRIC_TYPES","MULTI_TRAIT_RUBRIC","SIMPLE_RUBRIC","RUBRICLESS","Main","model","onModelChanged","props","e","rubricType","target","value","configuration","canUpdateModel","rubrics","contentDimensions","rubricOptions","multiTraitRubric","simpleRubric","rubricless","width","rubricTag","isRubricTypeAvailable","indexOf","ref","errors","onChangeRubricType","length","map","availableRubric","i","React","Component","classes","PropTypes","object","bool","func","onConfigurationChanged"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RUBRIC_TYPES } from '@pie-lib/pie-toolbox/rubric';\nimport { layout } from '@pie-lib/pie-toolbox/config-ui';\nimport Radio from '@material-ui/core/Radio';\nimport RadioGroup from '@material-ui/core/RadioGroup';\nimport { withStyles } from '@material-ui/core/styles';\nimport { FormControlLabel } from '@material-ui/core';\n\nconst styles = {};\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 classes: PropTypes.object,\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 { rubrics = {} } = model || {};\n let { rubricType } = model;\n const { contentDimensions = {}, rubricOptions = [], multiTraitRubric, simpleRubric, rubricless, width } = 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 dimensions={contentDimensions} hideSettings={true} settings={null}>\n <RadioGroup\n aria-label=\"rubric-type\"\n name=\"rubricType\"\n value={model.rubricType}\n onChange={this.onChangeRubricType}\n >\n {\n rubricOptions.length > 1 && rubricOptions.map((availableRubric, i)=>\n <FormControlLabel\n key={i}\n value={availableRubric}\n control={<Radio checked={rubricType === availableRubric} />}\n label={rubricLabels[availableRubric]}\n />\n )\n }\n </RadioGroup>\n\n {isRubricTypeAvailable && rubricTag}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
|
|
@@ -18,6 +18,7 @@ exports[`Main snapshot renders 1`] = `
|
|
|
18
18
|
checked={true}
|
|
19
19
|
/>
|
|
20
20
|
}
|
|
21
|
+
key="0"
|
|
21
22
|
label="Simple Rubric"
|
|
22
23
|
value="simpleRubric"
|
|
23
24
|
/>
|
|
@@ -27,9 +28,19 @@ exports[`Main snapshot renders 1`] = `
|
|
|
27
28
|
checked={false}
|
|
28
29
|
/>
|
|
29
30
|
}
|
|
31
|
+
key="1"
|
|
30
32
|
label="Multi Trait Rubric"
|
|
31
33
|
value="multiTraitRubric"
|
|
32
34
|
/>
|
|
35
|
+
<WithStyles(WithFormControlContext(FormControlLabel))
|
|
36
|
+
control={
|
|
37
|
+
<WithStyles(Radio)
|
|
38
|
+
checked={false}
|
|
39
|
+
/>
|
|
40
|
+
}
|
|
41
|
+
key="2"
|
|
42
|
+
value="rubricless"
|
|
43
|
+
/>
|
|
33
44
|
</RadioGroup>
|
|
34
45
|
<rubric-configure
|
|
35
46
|
id="simpleRubric"
|
|
@@ -56,6 +67,7 @@ exports[`Main snapshot renders multi trait rubric 1`] = `
|
|
|
56
67
|
checked={false}
|
|
57
68
|
/>
|
|
58
69
|
}
|
|
70
|
+
key="0"
|
|
59
71
|
label="Simple Rubric"
|
|
60
72
|
value="simpleRubric"
|
|
61
73
|
/>
|
|
@@ -65,9 +77,19 @@ exports[`Main snapshot renders multi trait rubric 1`] = `
|
|
|
65
77
|
checked={true}
|
|
66
78
|
/>
|
|
67
79
|
}
|
|
80
|
+
key="1"
|
|
68
81
|
label="Multi Trait Rubric"
|
|
69
82
|
value="multiTraitRubric"
|
|
70
83
|
/>
|
|
84
|
+
<WithStyles(WithFormControlContext(FormControlLabel))
|
|
85
|
+
control={
|
|
86
|
+
<WithStyles(Radio)
|
|
87
|
+
checked={false}
|
|
88
|
+
/>
|
|
89
|
+
}
|
|
90
|
+
key="2"
|
|
91
|
+
value="rubricless"
|
|
92
|
+
/>
|
|
71
93
|
</RadioGroup>
|
|
72
94
|
<multi-trait-rubric-configure
|
|
73
95
|
id="multiTraitRubric"
|
|
@@ -94,6 +116,7 @@ exports[`Main snapshot renders simple rubric 1`] = `
|
|
|
94
116
|
checked={true}
|
|
95
117
|
/>
|
|
96
118
|
}
|
|
119
|
+
key="0"
|
|
97
120
|
label="Simple Rubric"
|
|
98
121
|
value="simpleRubric"
|
|
99
122
|
/>
|
|
@@ -103,9 +126,19 @@ exports[`Main snapshot renders simple rubric 1`] = `
|
|
|
103
126
|
checked={false}
|
|
104
127
|
/>
|
|
105
128
|
}
|
|
129
|
+
key="1"
|
|
106
130
|
label="Multi Trait Rubric"
|
|
107
131
|
value="multiTraitRubric"
|
|
108
132
|
/>
|
|
133
|
+
<WithStyles(WithFormControlContext(FormControlLabel))
|
|
134
|
+
control={
|
|
135
|
+
<WithStyles(Radio)
|
|
136
|
+
checked={false}
|
|
137
|
+
/>
|
|
138
|
+
}
|
|
139
|
+
key="2"
|
|
140
|
+
value="rubricless"
|
|
141
|
+
/>
|
|
109
142
|
</RadioGroup>
|
|
110
143
|
<rubric-configure
|
|
111
144
|
id="simpleRubric"
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import {RUBRIC_TYPES} from '@pie-lib/pie-toolbox/rubric';
|
|
2
|
+
|
|
1
3
|
const multiTraitDefaultModel = {
|
|
2
4
|
visibleToStudent: true,
|
|
3
5
|
halfScoring: false,
|
|
@@ -15,6 +17,12 @@ const rubricDefaultModel = {
|
|
|
15
17
|
excludeZero: false,
|
|
16
18
|
};
|
|
17
19
|
|
|
20
|
+
const rubriclessDefaultModel = {
|
|
21
|
+
maxPoints: 100,
|
|
22
|
+
excludeZero: false,
|
|
23
|
+
rubriclessInstructionEnabled: true,
|
|
24
|
+
};
|
|
25
|
+
|
|
18
26
|
const multiTraitDefaultConfiguration = {
|
|
19
27
|
settingsPanelDisabled: false,
|
|
20
28
|
excludeZeroDialogBoxContent: {
|
|
@@ -121,14 +129,37 @@ const rubricDefaultConfiguration = {
|
|
|
121
129
|
maxMaxPoints: 9
|
|
122
130
|
};
|
|
123
131
|
|
|
132
|
+
|
|
133
|
+
const rubriclessDefaultConfiguration = {
|
|
134
|
+
showExcludeZero: {
|
|
135
|
+
settings: true,
|
|
136
|
+
label: 'Ability to exclude zero',
|
|
137
|
+
},
|
|
138
|
+
showMaxPoint: {
|
|
139
|
+
settings: true,
|
|
140
|
+
label: 'Show max points dropdown',
|
|
141
|
+
},
|
|
142
|
+
settingsPanelDisabled: false,
|
|
143
|
+
// shows us if it simple rubric or rubricless(simple rubric with less structure)
|
|
144
|
+
rubricless: true,
|
|
145
|
+
// scoring instruction for rubricless
|
|
146
|
+
rubriclessInstruction: {
|
|
147
|
+
settings: true,
|
|
148
|
+
label: 'Instruction',
|
|
149
|
+
},
|
|
150
|
+
maxMaxPoints: 100,
|
|
151
|
+
};
|
|
152
|
+
|
|
124
153
|
export default {
|
|
125
154
|
model: {
|
|
126
155
|
rubricType: 'simpleRubric',
|
|
127
|
-
rubrics: {
|
|
156
|
+
rubrics: { [RUBRIC_TYPES.SIMPLE_RUBRIC]: rubricDefaultModel, [RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: multiTraitDefaultModel, [RUBRIC_TYPES.RUBRICLESS]: rubriclessDefaultModel },
|
|
128
157
|
},
|
|
129
158
|
configuration: {
|
|
130
159
|
// width: '770px',
|
|
131
|
-
|
|
132
|
-
|
|
160
|
+
rubricOptions: ['simpleRubric', 'multiTraitRubric', 'rubricless'],
|
|
161
|
+
[RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: multiTraitDefaultConfiguration,
|
|
162
|
+
[RUBRIC_TYPES.SIMPLE_RUBRIC]: rubricDefaultConfiguration,
|
|
163
|
+
[RUBRIC_TYPES.RUBRICLESS]: rubriclessDefaultConfiguration,
|
|
133
164
|
},
|
|
134
165
|
};
|
package/configure/src/index.js
CHANGED
|
@@ -41,11 +41,13 @@ const prepareCustomizationObject = (config, model) => {
|
|
|
41
41
|
export default class ComplexRubricConfigureElement extends HTMLElement {
|
|
42
42
|
static createDefaultModel = (
|
|
43
43
|
{
|
|
44
|
-
rubrics: { simpleRubric = {}, multiTraitRubric = {} } = { simpleRubric: {}, multiTraitRubric: {} },
|
|
44
|
+
rubrics: { simpleRubric = {}, rubricless = {}, multiTraitRubric = {} } = { simpleRubric: {}, rubricless: {}, multiTraitRubric: {} },
|
|
45
45
|
...model
|
|
46
46
|
} = {},
|
|
47
47
|
defaults = {},
|
|
48
|
-
) =>
|
|
48
|
+
) =>
|
|
49
|
+
{
|
|
50
|
+
return {
|
|
49
51
|
...defaults,
|
|
50
52
|
...model,
|
|
51
53
|
rubrics: {
|
|
@@ -57,8 +59,12 @@ export default class ComplexRubricConfigureElement extends HTMLElement {
|
|
|
57
59
|
...(defaults.rubrics || {}).multiTraitRubric,
|
|
58
60
|
...multiTraitRubric,
|
|
59
61
|
},
|
|
62
|
+
rubricless: {
|
|
63
|
+
...(defaults.rubrics || {}).rubricless,
|
|
64
|
+
...rubricless,
|
|
65
|
+
},
|
|
60
66
|
},
|
|
61
|
-
}
|
|
67
|
+
}};
|
|
62
68
|
|
|
63
69
|
constructor() {
|
|
64
70
|
super();
|
package/configure/src/main.jsx
CHANGED
|
@@ -8,6 +8,11 @@ import { withStyles } from '@material-ui/core/styles';
|
|
|
8
8
|
import { FormControlLabel } from '@material-ui/core';
|
|
9
9
|
|
|
10
10
|
const styles = {};
|
|
11
|
+
const rubricLabels = {
|
|
12
|
+
[RUBRIC_TYPES.MULTI_TRAIT_RUBRIC]: 'Multi Trait Rubric',
|
|
13
|
+
[RUBRIC_TYPES.SIMPLE_RUBRIC]: 'Simple Rubric',
|
|
14
|
+
[RUBRIC_TYPES.RUBRICLESS]: 'Rubricless',
|
|
15
|
+
};
|
|
11
16
|
|
|
12
17
|
export class Main extends React.Component {
|
|
13
18
|
static propTypes = {
|
|
@@ -34,15 +39,18 @@ export class Main extends React.Component {
|
|
|
34
39
|
|
|
35
40
|
render() {
|
|
36
41
|
const { model, configuration, canUpdateModel } = this.props;
|
|
37
|
-
|
|
42
|
+
|
|
43
|
+
const { rubrics = {} } = model || {};
|
|
38
44
|
let { rubricType } = model;
|
|
39
|
-
const { contentDimensions = {}, multiTraitRubric, simpleRubric, width } = configuration;
|
|
45
|
+
const { contentDimensions = {}, rubricOptions = [], multiTraitRubric, simpleRubric, rubricless, width } = configuration;
|
|
40
46
|
let rubricTag = '';
|
|
41
47
|
|
|
42
48
|
if (!rubricType) {
|
|
43
49
|
rubricType = RUBRIC_TYPES.SIMPLE_RUBRIC;
|
|
44
50
|
}
|
|
45
51
|
|
|
52
|
+
const isRubricTypeAvailable = rubricOptions.indexOf(rubricType) > -1;
|
|
53
|
+
|
|
46
54
|
if (canUpdateModel) {
|
|
47
55
|
switch (rubricType) {
|
|
48
56
|
case RUBRIC_TYPES.SIMPLE_RUBRIC:
|
|
@@ -78,6 +86,23 @@ export class Main extends React.Component {
|
|
|
78
86
|
/>
|
|
79
87
|
);
|
|
80
88
|
break;
|
|
89
|
+
|
|
90
|
+
case RUBRIC_TYPES.RUBRICLESS:
|
|
91
|
+
rubricTag = (
|
|
92
|
+
<rubric-configure
|
|
93
|
+
id="rubricless"
|
|
94
|
+
key="rubricless"
|
|
95
|
+
ref={(ref) => {
|
|
96
|
+
if (ref) {
|
|
97
|
+
this.rubricless = ref;
|
|
98
|
+
|
|
99
|
+
this.rubricless.model = rubrics.rubricless;
|
|
100
|
+
this.rubricless.configuration = { ...rubricless, width };
|
|
101
|
+
}
|
|
102
|
+
}}
|
|
103
|
+
/>
|
|
104
|
+
);
|
|
105
|
+
break;
|
|
81
106
|
}
|
|
82
107
|
}
|
|
83
108
|
|
|
@@ -89,20 +114,19 @@ export class Main extends React.Component {
|
|
|
89
114
|
value={model.rubricType}
|
|
90
115
|
onChange={this.onChangeRubricType}
|
|
91
116
|
>
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
/>
|
|
117
|
+
{
|
|
118
|
+
rubricOptions.length > 1 && rubricOptions.map((availableRubric, i)=>
|
|
119
|
+
<FormControlLabel
|
|
120
|
+
key={i}
|
|
121
|
+
value={availableRubric}
|
|
122
|
+
control={<Radio checked={rubricType === availableRubric} />}
|
|
123
|
+
label={rubricLabels[availableRubric]}
|
|
124
|
+
/>
|
|
125
|
+
)
|
|
126
|
+
}
|
|
103
127
|
</RadioGroup>
|
|
104
128
|
|
|
105
|
-
{rubricTag}
|
|
129
|
+
{isRubricTypeAvailable && rubricTag}
|
|
106
130
|
</layout.ConfigLayout>
|
|
107
131
|
);
|
|
108
132
|
}
|