@pie-element/complex-rubric 3.4.5-next.0 → 3.4.5-next.14

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.
@@ -159,16 +159,10 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
159
159
  exports.createCorrectResponseSession = createCorrectResponseSession;
160
160
 
161
161
  var validateSimpleRubric = function validateSimpleRubric(model) {
162
- var points = model.points,
163
- excludeZero = model.excludeZero;
162
+ var points = model.points;
164
163
  var errors = {};
165
164
  var pointsDescriptorsErrors = {};
166
165
  (points || []).forEach(function (point, index) {
167
- if (index === 0 && excludeZero) {
168
- // if excludeZero is true, the 0 point is not displayed, so it should not be validated
169
- return;
170
- }
171
-
172
166
  if (!point || point === '<div></div>') {
173
167
  pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
174
168
  } else {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","createDefaultModel","model","Promise","resolve","defaults","normalize","question","session","env","normalizedQuestion","rubricType","RUBRICLESS","role","rubrics","multiTraitRubric","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","simpleRubric","rubricless","getScore","outcome","score","empty","createCorrectResponseSession","mode","id","validateSimpleRubric","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","Object","keys","length","validateMultiTraitRubric","description","pointLabels","traitsErrors","scorePointsErrors","scaleIndex","traits","scorePointsLabels","scaleErrors","scorePointsLabelsErrors","scorePointLabel","scoreIndex","identicalScorePointLabel","s","trait","traitIndex","name","identicalTraitName","t","identicalTraitDescr","validate","config"],"mappings":"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","sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n\n// todo the import from pie-lib/rubric WILL break pslb\n// so don't use it unless you also test \"yarn build\"\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n 'rubricless': 'rubricless',\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n if (\n normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC ||\n normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS\n ) {\n return new Promise((resolve) => {\n resolve(\n env && env.role && env.role === 'instructor'\n ? {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n visible: false,\n },\n },\n }\n : {},\n );\n });\n } else {\n if (\n !env.role ||\n (env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric)\n ) {\n normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.rubrics.multiTraitRubric.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n simpleRubric: {\n ...normalizedQuestion.rubrics.simpleRubric,\n visible: false,\n },\n rubricless: {\n ...normalizedQuestion.rubrics.rubricless,\n visible: false,\n },\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n scales: parsedScales,\n },\n },\n };\n }\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\n// IMPORTANT! This function is a duplicate of rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.\nconst validateSimpleRubric = (model) => {\n const { points, excludeZero } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n if (index === 0 && excludeZero) {\n // if excludeZero is true, the 0 point is not displayed, so it should not be validated\n return;\n }\n\n if (!point || point === '<div></div>') {\n pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';\n } else {\n const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));\n\n if (identicalPointDescr) {\n pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';\n }\n }\n });\n\n if (Object.keys(pointsDescriptorsErrors).length > 0) {\n errors.pointsDescriptorsErrors = pointsDescriptorsErrors;\n }\n\n return errors;\n};\n\n// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.\nconst validateMultiTraitRubric = (model) => {\n const { scales, description = false, pointLabels = false } = model;\n const errors = {};\n const traitsErrors = {};\n const scorePointsErrors = {};\n\n (scales || []).forEach((scale, scaleIndex) => {\n const { traits = [] } = scale;\n const { scorePointsLabels = [] } = scale;\n const scaleErrors = {};\n const scorePointsLabelsErrors = {};\n\n if (pointLabels) {\n scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {\n if (!scorePointLabel || scorePointLabel === '<div></div>') {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';\n } else {\n const identicalScorePointLabel = scorePointsLabels\n .slice(scoreIndex + 1)\n .some((s) => markupToText(s) === markupToText(scorePointLabel));\n\n if (identicalScorePointLabel) {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';\n }\n }\n });\n }\n\n if (Object.keys(scorePointsLabelsErrors).length > 0) {\n scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;\n }\n\n traits.forEach((trait, traitIndex) => {\n if (!trait.name || trait.name === '<div></div>') {\n scaleErrors[traitIndex] = { name: 'Trait names should not be empty.' };\n } else {\n const identicalTraitName = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.name) === markupToText(trait.name));\n\n if (identicalTraitName) {\n scaleErrors[traitIndex] = { name: 'Trait names should be unique.' };\n }\n }\n if (description && (!trait.description || trait.description === '<div></div>')) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait description should not be empty' };\n } else {\n const identicalTraitDescr = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.description) === markupToText(trait.description));\n\n if (description && identicalTraitDescr) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait descriptions should be unique.' };\n }\n }\n });\n if (Object.keys(scaleErrors).length > 0) {\n traitsErrors[scaleIndex] = scaleErrors;\n }\n });\n\n if (Object.keys(traitsErrors).length > 0) {\n errors.traitsErrors = traitsErrors;\n }\n\n if (Object.keys(scorePointsErrors).length > 0) {\n errors.scorePointsErrors = scorePointsErrors;\n }\n\n return errors;\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rubrics = {}, rubricType } = model;\n const { multiTraitRubric = {}, simpleRubric = {} } = rubrics;\n let errors = {};\n\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n errors = validateSimpleRubric(simpleRubric);\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n errors = validateMultiTraitRubric(multiTraitRubric);\n break;\n }\n\n return errors;\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["RUBRIC_TYPES","SIMPLE_RUBRIC","MULTI_TRAIT_RUBRIC","createDefaultModel","model","Promise","resolve","defaults","normalize","question","session","env","normalizedQuestion","rubricType","RUBRICLESS","role","rubrics","multiTraitRubric","visible","visibleToStudent","scales","excludeZero","parsedScales","map","scale","simpleRubric","rubricless","getScore","outcome","score","empty","createCorrectResponseSession","mode","id","validateSimpleRubric","points","errors","pointsDescriptorsErrors","forEach","point","index","identicalPointDescr","slice","some","p","Object","keys","length","validateMultiTraitRubric","description","pointLabels","traitsErrors","scorePointsErrors","scaleIndex","traits","scorePointsLabels","scaleErrors","scorePointsLabelsErrors","scorePointLabel","scoreIndex","identicalScorePointLabel","s","trait","traitIndex","name","identicalTraitName","t","identicalTraitDescr","validate","config"],"mappings":"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","sourcesContent":["import defaults from './defaults';\nimport { markupToText } from './utils';\n\n\n// todo the import from pie-lib/rubric WILL break pslb\n// so don't use it unless you also test \"yarn build\"\nconst RUBRIC_TYPES = {\n SIMPLE_RUBRIC: 'simpleRubric',\n MULTI_TRAIT_RUBRIC: 'multiTraitRubric',\n 'rubricless': 'rubricless',\n};\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => resolve({ ...defaults, ...model }));\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\n/**\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n if (\n normalizedQuestion.rubricType === RUBRIC_TYPES.SIMPLE_RUBRIC ||\n normalizedQuestion.rubricType === RUBRIC_TYPES.RUBRICLESS\n ) {\n return new Promise((resolve) => {\n resolve(\n env && env.role && env.role === 'instructor'\n ? {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n visible: false,\n },\n },\n }\n : {},\n );\n });\n } else {\n if (\n !env.role ||\n (env.role === 'student' && normalizedQuestion.rubrics && normalizedQuestion.rubrics.multiTraitRubric)\n ) {\n normalizedQuestion.rubrics.multiTraitRubric.visible = normalizedQuestion.visibleToStudent;\n } else {\n normalizedQuestion.rubrics.multiTraitRubric.visible = true;\n }\n\n // todo update pie-ui instead of parsing this here:\n const { scales, excludeZero } = normalizedQuestion.rubrics.multiTraitRubric || {};\n const parsedScales = (scales || []).map((scale) => ({ ...scale, excludeZero }));\n\n return {\n ...normalizedQuestion,\n rubrics: {\n ...normalizedQuestion.rubrics,\n simpleRubric: {\n ...normalizedQuestion.rubrics.simpleRubric,\n visible: false,\n },\n rubricless: {\n ...normalizedQuestion.rubrics.rubricless,\n visible: false,\n },\n multiTraitRubric: {\n ...normalizedQuestion.rubrics.multiTraitRubric,\n scales: parsedScales,\n },\n },\n };\n }\n}\n\nexport const getScore = () => 0;\n\n/**\n * @param {Object} model - the main model\n * @param {*} session\n * @param {Object} env\n */\nexport function outcome() {\n return new Promise((resolve) => resolve({ score: 0, empty: true }));\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\n// IMPORTANT! This function is a duplicate of rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.\nconst validateSimpleRubric = (model) => {\n const { points } = model;\n const errors = {};\n const pointsDescriptorsErrors = {};\n\n (points || []).forEach((point, index) => {\n\n if (!point || point === '<div></div>') {\n pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';\n } else {\n const identicalPointDescr = points.slice(index + 1).some((p) => markupToText(p) === markupToText(point));\n\n if (identicalPointDescr) {\n pointsDescriptorsErrors[index] = 'Points descriptors should be unique.';\n }\n }\n });\n\n if (Object.keys(pointsDescriptorsErrors).length > 0) {\n errors.pointsDescriptorsErrors = pointsDescriptorsErrors;\n }\n\n return errors;\n};\n\n// IMPORTANT! This function is a duplicate of multi-trait-rubric/controller/validate function!\n// If you make any changes to this function, please make sure you also update multi-trait-rubric/controller/validate function!“.\nconst validateMultiTraitRubric = (model) => {\n const { scales, description = false, pointLabels = false } = model;\n const errors = {};\n const traitsErrors = {};\n const scorePointsErrors = {};\n\n (scales || []).forEach((scale, scaleIndex) => {\n const { traits = [] } = scale;\n const { scorePointsLabels = [] } = scale;\n const scaleErrors = {};\n const scorePointsLabelsErrors = {};\n\n if (pointLabels) {\n scorePointsLabels.forEach((scorePointLabel, scoreIndex) => {\n if (!scorePointLabel || scorePointLabel === '<div></div>') {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should not be empty.';\n } else {\n const identicalScorePointLabel = scorePointsLabels\n .slice(scoreIndex + 1)\n .some((s) => markupToText(s) === markupToText(scorePointLabel));\n\n if (identicalScorePointLabel) {\n scorePointsLabelsErrors[scoreIndex] = 'Points labels should be unique.';\n }\n }\n });\n }\n\n if (Object.keys(scorePointsLabelsErrors).length > 0) {\n scorePointsErrors[scaleIndex] = scorePointsLabelsErrors;\n }\n\n traits.forEach((trait, traitIndex) => {\n if (!trait.name || trait.name === '<div></div>') {\n scaleErrors[traitIndex] = { name: 'Trait names should not be empty.' };\n } else {\n const identicalTraitName = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.name) === markupToText(trait.name));\n\n if (identicalTraitName) {\n scaleErrors[traitIndex] = { name: 'Trait names should be unique.' };\n }\n }\n if (description && (!trait.description || trait.description === '<div></div>')) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait description should not be empty' };\n } else {\n const identicalTraitDescr = traits\n .slice(traitIndex + 1)\n .some((t) => markupToText(t.description) === markupToText(trait.description));\n\n if (description && identicalTraitDescr) {\n scaleErrors[traitIndex] = { ...scaleErrors[traitIndex], description: 'Trait descriptions should be unique.' };\n }\n }\n });\n if (Object.keys(scaleErrors).length > 0) {\n traitsErrors[scaleIndex] = scaleErrors;\n }\n });\n\n if (Object.keys(traitsErrors).length > 0) {\n errors.traitsErrors = traitsErrors;\n }\n\n if (Object.keys(scorePointsErrors).length > 0) {\n errors.scorePointsErrors = scorePointsErrors;\n }\n\n return errors;\n};\n\nexport const validate = (model = {}, config = {}) => {\n const { rubrics = {}, rubricType } = model;\n const { multiTraitRubric = {}, simpleRubric = {} } = rubrics;\n let errors = {};\n\n switch (rubricType) {\n case RUBRIC_TYPES.SIMPLE_RUBRIC:\n default:\n errors = validateSimpleRubric(simpleRubric);\n break;\n case RUBRIC_TYPES.MULTI_TRAIT_RUBRIC:\n errors = validateMultiTraitRubric(multiTraitRubric);\n break;\n }\n\n return errors;\n};\n"],"file":"index.js"}
@@ -103,15 +103,11 @@ export const createCorrectResponseSession = (question, env) => {
103
103
  // IMPORTANT! This function is a duplicate of rubric/controller/validate function!
104
104
  // If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
105
105
  const validateSimpleRubric = (model) => {
106
- const { points, excludeZero } = model;
106
+ const { points } = model;
107
107
  const errors = {};
108
108
  const pointsDescriptorsErrors = {};
109
109
 
110
110
  (points || []).forEach((point, index) => {
111
- if (index === 0 && excludeZero) {
112
- // if excludeZero is true, the 0 point is not displayed, so it should not be validated
113
- return;
114
- }
115
111
 
116
112
  if (!point || point === '<div></div>') {
117
113
  pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.3.2/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_debug, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.3.3/module/index.js";
2
2
  import RubricConfigure from '@pie-element/rubric/configure/lib';
3
3
  import {_dll_pie_lib__pie_toolbox_editable_html, _dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_config_ui} from "../../../@pie-lib/pie-toolbox-module@5.10.2/module/index.js";
4
4
  function _mergeNamespaces(n, m) {
@@ -143,15 +143,11 @@ const createCorrectResponseSession = (question, env) => {
143
143
  // IMPORTANT! This function is a duplicate of rubric/controller/validate function!
144
144
  // If you make any changes to this function, please make sure you also update rubric/controller/validate function!“.
145
145
  const validateSimpleRubric = (model) => {
146
- const { points, excludeZero } = model;
146
+ const { points } = model;
147
147
  const errors = {};
148
148
  const pointsDescriptorsErrors = {};
149
149
 
150
150
  (points || []).forEach((point, index) => {
151
- if (index === 0 && excludeZero) {
152
- // if excludeZero is true, the 0 point is not displayed, so it should not be validated
153
- return;
154
- }
155
151
 
156
152
  if (!point || point === '<div></div>') {
157
153
  pointsDescriptorsErrors[index] = 'Points descriptors cannot be empty.';
package/module/element.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_debug, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.3.2/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_debug, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.3.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_render_ui} from "../../../@pie-lib/pie-toolbox-module@5.10.2/module/index.js";
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
@@ -4,7 +4,7 @@
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
7
- "version": "3.3.2"
7
+ "version": "3.3.3"
8
8
  },
9
9
  {
10
10
  "name": "@pie-lib/pie-toolbox-module",
package/module/print.js CHANGED
@@ -1,4 +1,4 @@
1
- import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_debug, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.3.2/module/index.js";
1
+ import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_debug, _dll_pie_lib__pie_toolbox_math_rendering, _dll_lodash, _dll_react_dom_server, _dll_pie_framework__mathquill} from "../../../@pie-lib/pie-toolbox-math-rendering-module@3.3.3/module/index.js";
2
2
  import {_dll_pie_lib__pie_toolbox_render_ui} from "../../../@pie-lib/pie-toolbox-module@5.10.2/module/index.js";
3
3
  function _mergeNamespaces(n, m) {
4
4
  m.forEach(function (e) {
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@pie-element/complex-rubric",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "3.4.5-next.0+6edc9cbea",
4
+ "version": "3.4.5-next.14+2a06fe9b9",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
- "@pie-element/multi-trait-rubric": "^4.3.5-next.0+6edc9cbea",
11
- "@pie-element/rubric": "^4.4.5-next.0+6edc9cbea",
10
+ "@pie-element/multi-trait-rubric": "^4.3.5-next.14+2a06fe9b9",
11
+ "@pie-element/rubric": "^4.4.5-next.14+2a06fe9b9",
12
12
  "@pie-framework/pie-player-events": "^0.1.0",
13
13
  "classnames": "^2.2.5",
14
14
  "debug": "^4.1.1",
15
15
  "lodash": "^4.17.11",
16
16
  "prop-types": "^15.7.2"
17
17
  },
18
- "gitHead": "6edc9cbeaa03e72c6aba80e3ad1a250f30632b6f",
18
+ "gitHead": "2a06fe9b9fa39f6916a0ad3eb41cb668d580b88e",
19
19
  "scripts": {
20
20
  "postpublish": "../../scripts/postpublish"
21
21
  },