@pie-element/charting 8.1.3-next.3 → 8.1.3-next.43
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 +10 -8
- package/configure/lib/defaults.js.map +1 -1
- package/configure/package.json +1 -1
- package/controller/lib/defaults.js +30 -1
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +3 -7
- package/controller/lib/index.js.map +1 -1
- package/controller/package.json +1 -1
- package/package.json +3 -3
|
@@ -19,6 +19,9 @@ exports["default"] = void 0;
|
|
|
19
19
|
var _default = {
|
|
20
20
|
model: {
|
|
21
21
|
addCategoryEnabled: true,
|
|
22
|
+
changeAddCategoryEnabled: false,
|
|
23
|
+
changeEditableEnabled: false,
|
|
24
|
+
changeInteractiveEnabled: false,
|
|
22
25
|
chartType: 'lineCross',
|
|
23
26
|
correctAnswer: {},
|
|
24
27
|
data: [],
|
|
@@ -29,21 +32,20 @@ var _default = {
|
|
|
29
32
|
},
|
|
30
33
|
prompt: '',
|
|
31
34
|
promptEnabled: true,
|
|
32
|
-
rationale: '',
|
|
33
35
|
range: {
|
|
34
36
|
label: '',
|
|
35
37
|
max: 1,
|
|
36
|
-
min: 0
|
|
38
|
+
min: 0,
|
|
39
|
+
labelStep: 1
|
|
37
40
|
},
|
|
38
|
-
|
|
39
|
-
title: '',
|
|
41
|
+
rationale: '',
|
|
40
42
|
rationaleEnabled: true,
|
|
41
|
-
|
|
43
|
+
scoringType: 'all or nothing',
|
|
42
44
|
studentInstructionsEnabled: true,
|
|
43
45
|
studentNewCategoryDefaultLabel: 'New Category',
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
teacherInstructions: '',
|
|
47
|
+
teacherInstructionsEnabled: true,
|
|
48
|
+
title: ''
|
|
47
49
|
},
|
|
48
50
|
configuration: {
|
|
49
51
|
baseInputConfiguration: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["model","addCategoryEnabled","chartType","correctAnswer","data","domain","graph","width","height","prompt","promptEnabled","rationale","range","label","max","min","scoringType","title","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","studentNewCategoryDefaultLabel","changeInteractiveEnabled","changeEditableEnabled","changeAddCategoryEnabled","configuration","baseInputConfiguration","audio","disabled","video","image","spellCheck","settings","enabled","chartDimensions","showInConfigPanel","step","authorNewCategoryDefaults","interactive","editable","availableChartTypes","bar","histogram","lineDot","lineCross","dotPlot","linePlot","chartTypeLabel","required","inputConfiguration","settingsPanelDisabled","studentInstructions","teacherInstructions","instruction","titlePlaceholder","labelsPlaceholders","left","right","top","bottom","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","options","chartingOptions","changeInteractive","authoringLabel","settingsLabel","changeEditable","addCategory","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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","sourcesContent":["/**\n * NOTE: There's no functionality described for graphTitle,\n * rationale, scoringType, studentInstructions, teacherInstructions\n * so there's no implementation (they are only added in model)\n */\n\n// const createCategory = (label, value) => ({\n// label,\n// value,\n// interactive: true,\n// editable: true\n// });\n\nexport default {\n model: {\n addCategoryEnabled: true,\n chartType: 'lineCross',\n correctAnswer: {},\n data: [],\n domain: {},\n graph: {\n width: 480,\n height: 480,\n },\n prompt: '',\n promptEnabled: true,\n rationale: '',\n range: {\n label: '',\n max: 1,\n min: 0,\n },\n scoringType: 'all or nothing',\n title: '',\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n studentNewCategoryDefaultLabel: 'New Category',\n changeInteractiveEnabled: false,\n changeEditableEnabled: false,\n changeAddCategoryEnabled: false,\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n chartDimensions: {\n settings: false,\n label: 'Chart Dimensions',\n showInConfigPanel: true,\n width: {\n min: 50,\n max: 700,\n step: 20,\n },\n height: {\n min: 400,\n max: 700,\n step: 20,\n },\n },\n authorNewCategoryDefaults: {\n settings: false,\n label: 'Category',\n interactive: true,\n editable: false,\n },\n availableChartTypes: {\n bar: 'Bar Chart',\n histogram: 'Histogram',\n lineDot: 'Line Chart ●',\n lineCross: 'Line Chart x',\n dotPlot: 'Dot/Line Plot ⬤',\n linePlot: 'Dot/Line Plot X',\n },\n chartTypeLabel: 'ChartType',\n studentNewCategoryDefaultLabel: {\n settings: false,\n label: 'Category',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n settingsPanelDisabled: false,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n title: {\n settings: false,\n label: 'Chart Title',\n },\n instruction: {\n settings: false,\n label:\n 'This item type provides various types of interactive charts. Depending upon how an item is configured,\\n' +\n ' students can change the heights of bars (or other similar chart elements) created by the author; relabel bars\\n' +\n ' created by the author; and/or add new bars, label them, and set their heights.',\n },\n titlePlaceholder: {\n settings: false,\n label: 'Click here to add a title',\n },\n labelsPlaceholders: {\n left: 'Click here to add a label for this axis',\n right: '',\n top: '',\n bottom: 'Click here to add a label for this axis',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n chartingOptions: {\n changeInteractive: {\n settings: false,\n authoringLabel: 'Student can set value',\n settingsLabel: 'Allow non-interactive categories',\n },\n changeEditable: {\n settings: false,\n authoringLabel: 'Student can edit name',\n settingsLabel: 'Allow editable category names',\n },\n addCategory: {\n settings: false,\n authoringLabel: 'Student can add categories',\n settingsLabel: 'Allow changes to whether students can add categories',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n },\n};\n"],"file":"defaults.js"}
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["model","addCategoryEnabled","changeAddCategoryEnabled","changeEditableEnabled","changeInteractiveEnabled","chartType","correctAnswer","data","domain","graph","width","height","prompt","promptEnabled","range","label","max","min","labelStep","rationale","rationaleEnabled","scoringType","studentInstructionsEnabled","studentNewCategoryDefaultLabel","teacherInstructions","teacherInstructionsEnabled","title","configuration","baseInputConfiguration","audio","disabled","video","image","spellCheck","settings","enabled","chartDimensions","showInConfigPanel","step","authorNewCategoryDefaults","interactive","editable","availableChartTypes","bar","histogram","lineDot","lineCross","dotPlot","linePlot","chartTypeLabel","required","inputConfiguration","settingsPanelDisabled","studentInstructions","instruction","titlePlaceholder","labelsPlaceholders","left","right","top","bottom","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","options","chartingOptions","changeInteractive","authoringLabel","settingsLabel","changeEditable","addCategory","mathMlOptions","mmlOutput","mmlEditing"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,kBAAkB,EAAE,IADf;AAELC,IAAAA,wBAAwB,EAAE,KAFrB;AAGLC,IAAAA,qBAAqB,EAAE,KAHlB;AAILC,IAAAA,wBAAwB,EAAE,KAJrB;AAKLC,IAAAA,SAAS,EAAE,WALN;AAMLC,IAAAA,aAAa,EAAE,EANV;AAOLC,IAAAA,IAAI,EAAE,EAPD;AAQLC,IAAAA,MAAM,EAAE,EARH;AASLC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,KAAK,EAAE,GAAT;AAAcC,MAAAA,MAAM,EAAE;AAAtB,KATF;AAULC,IAAAA,MAAM,EAAE,EAVH;AAWLC,IAAAA,aAAa,EAAE,IAXV;AAYLC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,KAAK,EAAE,EAAT;AAAaC,MAAAA,GAAG,EAAE,CAAlB;AAAqBC,MAAAA,GAAG,EAAE,CAA1B;AAA6BC,MAAAA,SAAS,EAAE;AAAxC,KAZF;AAaLC,IAAAA,SAAS,EAAE,EAbN;AAcLC,IAAAA,gBAAgB,EAAE,IAdb;AAeLC,IAAAA,WAAW,EAAE,gBAfR;AAgBLC,IAAAA,0BAA0B,EAAE,IAhBvB;AAiBLC,IAAAA,8BAA8B,EAAE,cAjB3B;AAkBLC,IAAAA,mBAAmB,EAAE,EAlBhB;AAmBLC,IAAAA,0BAA0B,EAAE,IAnBvB;AAoBLC,IAAAA,KAAK,EAAE;AApBF,GADM;AAuBbC,EAAAA,aAAa,EAAE;AACbC,IAAAA,sBAAsB,EAAE;AACtBC,MAAAA,KAAK,EAAE;AAAEC,QAAAA,QAAQ,EAAE;AAAZ,OADe;AAEtBC,MAAAA,KAAK,EAAE;AAAED,QAAAA,QAAQ,EAAE;AAAZ,OAFe;AAGtBE,MAAAA,KAAK,EAAE;AAAEF,QAAAA,QAAQ,EAAE;AAAZ;AAHe,KADX;AAMbG,IAAAA,UAAU,EAAE;AACVlB,MAAAA,KAAK,EAAE,YADG;AAEVmB,MAAAA,QAAQ,EAAE,KAFA;AAGVC,MAAAA,OAAO,EAAE;AAHC,KANC;AAWbC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,KADK;AAEfnB,MAAAA,KAAK,EAAE,kBAFQ;AAGfsB,MAAAA,iBAAiB,EAAE,IAHJ;AAIf3B,MAAAA,KAAK,EAAE;AACLO,QAAAA,GAAG,EAAE,EADA;AAELD,QAAAA,GAAG,EAAE,GAFA;AAGLsB,QAAAA,IAAI,EAAE;AAHD,OAJQ;AASf3B,MAAAA,MAAM,EAAE;AACNM,QAAAA,GAAG,EAAE,GADC;AAEND,QAAAA,GAAG,EAAE,GAFC;AAGNsB,QAAAA,IAAI,EAAE;AAHA;AATO,KAXJ;AA0BbC,IAAAA,yBAAyB,EAAE;AACzBL,MAAAA,QAAQ,EAAE,KADe;AAEzBnB,MAAAA,KAAK,EAAE,UAFkB;AAGzByB,MAAAA,WAAW,EAAE,IAHY;AAIzBC,MAAAA,QAAQ,EAAE;AAJe,KA1Bd;AAgCbC,IAAAA,mBAAmB,EAAE;AACnBC,MAAAA,GAAG,EAAE,WADc;AAEnBC,MAAAA,SAAS,EAAE,WAFQ;AAGnBC,MAAAA,OAAO,EAAE,cAHU;AAInBC,MAAAA,SAAS,EAAE,cAJQ;AAKnBC,MAAAA,OAAO,EAAE,iBALU;AAMnBC,MAAAA,QAAQ,EAAE;AANS,KAhCR;AAwCbC,IAAAA,cAAc,EAAE,WAxCH;AAyCb1B,IAAAA,8BAA8B,EAAE;AAC9BW,MAAAA,QAAQ,EAAE,KADoB;AAE9BnB,MAAAA,KAAK,EAAE;AAFuB,KAzCnB;AA6CbH,IAAAA,MAAM,EAAE;AACNsB,MAAAA,QAAQ,EAAE,IADJ;AAENnB,MAAAA,KAAK,EAAE,WAFD;AAGNmC,MAAAA,QAAQ,EAAE,KAHJ;AAINC,MAAAA,kBAAkB,EAAE;AAClBtB,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ,SAFW;AAGlBE,QAAAA,KAAK,EAAE;AAAEF,UAAAA,QAAQ,EAAE;AAAZ;AAHW;AAJd,KA7CK;AAuDbX,IAAAA,SAAS,EAAE;AACTe,MAAAA,QAAQ,EAAE,IADD;AAETnB,MAAAA,KAAK,EAAE,WAFE;AAGTmC,MAAAA,QAAQ,EAAE,KAHD;AAITC,MAAAA,kBAAkB,EAAE;AAClBtB,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ,SAFW;AAGlBE,QAAAA,KAAK,EAAE;AAAEF,UAAAA,QAAQ,EAAE;AAAZ;AAHW;AAJX,KAvDE;AAiEbT,IAAAA,WAAW,EAAE;AACXa,MAAAA,QAAQ,EAAE,KADC;AAEXnB,MAAAA,KAAK,EAAE;AAFI,KAjEA;AAqEbqC,IAAAA,qBAAqB,EAAE,KArEV;AAsEbC,IAAAA,mBAAmB,EAAE;AACnBnB,MAAAA,QAAQ,EAAE,KADS;AAEnBnB,MAAAA,KAAK,EAAE;AAFY,KAtER;AA0EbS,IAAAA,mBAAmB,EAAE;AACnBU,MAAAA,QAAQ,EAAE,IADS;AAEnBnB,MAAAA,KAAK,EAAE,sBAFY;AAGnBmC,MAAAA,QAAQ,EAAE,KAHS;AAInBC,MAAAA,kBAAkB,EAAE;AAClBtB,QAAAA,KAAK,EAAE;AAAEC,UAAAA,QAAQ,EAAE;AAAZ,SADW;AAElBC,QAAAA,KAAK,EAAE;AAAED,UAAAA,QAAQ,EAAE;AAAZ,SAFW;AAGlBE,QAAAA,KAAK,EAAE;AAAEF,UAAAA,QAAQ,EAAE;AAAZ;AAHW;AAJD,KA1ER;AAoFbJ,IAAAA,KAAK,EAAE;AACLQ,MAAAA,QAAQ,EAAE,KADL;AAELnB,MAAAA,KAAK,EAAE;AAFF,KApFM;AAwFbuC,IAAAA,WAAW,EAAE;AACXpB,MAAAA,QAAQ,EAAE,KADC;AAEXnB,MAAAA,KAAK,EACH,6GACA,2HADA,GAEA;AALS,KAxFA;AA+FbwC,IAAAA,gBAAgB,EAAE;AAChBrB,MAAAA,QAAQ,EAAE,KADM;AAEhBnB,MAAAA,KAAK,EAAE;AAFS,KA/FL;AAmGbyC,IAAAA,kBAAkB,EAAE;AAClBC,MAAAA,IAAI,EAAE,yCADY;AAElBC,MAAAA,KAAK,EAAE,EAFW;AAGlBC,MAAAA,GAAG,EAAE,EAHa;AAIlBC,MAAAA,MAAM,EAAE;AAJU,KAnGP;AAyGbC,IAAAA,aAAa,EAAE;AACbrC,MAAAA,mBAAmB,EAAE,GADR;AAEbZ,MAAAA,MAAM,EAAE,GAFK;AAGbO,MAAAA,SAAS,EAAE;AAHE,KAzGF;AA8Gb2C,IAAAA,cAAc,EAAE;AACdtC,MAAAA,mBAAmB,EAAE,GADP;AAEdZ,MAAAA,MAAM,EAAE,GAFM;AAGdO,MAAAA,SAAS,EAAE;AAHG,KA9GH;AAmHb4C,IAAAA,UAAU,EAAE;AACV7B,MAAAA,QAAQ,EAAE,KADA;AAEVnB,MAAAA,KAAK,EAAE;AAFG,KAnHC;AAuHbiD,IAAAA,QAAQ,EAAE;AACR9B,MAAAA,QAAQ,EAAE,KADF;AAERnB,MAAAA,KAAK,EAAE,kBAFC;AAGRoB,MAAAA,OAAO,EAAE;AAHD,KAvHG;AA4Hb8B,IAAAA,eAAe,EAAE;AACflD,MAAAA,KAAK,EAAE,kBADQ;AAEfmD,MAAAA,OAAO,EAAE;AAFM,KA5HJ;AAgIbC,IAAAA,eAAe,EAAE;AACfC,MAAAA,iBAAiB,EAAE;AACjBlC,QAAAA,QAAQ,EAAE,KADO;AAEjBmC,QAAAA,cAAc,EAAE,uBAFC;AAGjBC,QAAAA,aAAa,EAAE;AAHE,OADJ;AAMfC,MAAAA,cAAc,EAAE;AACdrC,QAAAA,QAAQ,EAAE,KADI;AAEdmC,QAAAA,cAAc,EAAE,uBAFF;AAGdC,QAAAA,aAAa,EAAE;AAHD,OAND;AAWfE,MAAAA,WAAW,EAAE;AACXtC,QAAAA,QAAQ,EAAE,KADC;AAEXmC,QAAAA,cAAc,EAAE,4BAFL;AAGXC,QAAAA,aAAa,EAAE;AAHJ,OAXE;AAgBfG,MAAAA,aAAa,EAAE;AACbC,QAAAA,SAAS,EAAE,KADE;AAEbC,QAAAA,UAAU,EAAE;AAFC;AAhBA;AAhIJ;AAvBF,C","sourcesContent":["/**\n * NOTE: There's no functionality described for graphTitle,\n * rationale, scoringType, studentInstructions, teacherInstructions\n * so there's no implementation (they are only added in model)\n */\n\n// const createCategory = (label, value) => ({\n// label,\n// value,\n// interactive: true,\n// editable: true\n// });\n\nexport default {\n model: {\n addCategoryEnabled: true,\n changeAddCategoryEnabled: false,\n changeEditableEnabled: false,\n changeInteractiveEnabled: false,\n chartType: 'lineCross',\n correctAnswer: {},\n data: [],\n domain: {},\n graph: { width: 480, height: 480 },\n prompt: '',\n promptEnabled: true,\n range: { label: '', max: 1, min: 0, labelStep: 1 },\n rationale: '',\n rationaleEnabled: true,\n scoringType: 'all or nothing',\n studentInstructionsEnabled: true,\n studentNewCategoryDefaultLabel: 'New Category',\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n title: '',\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n chartDimensions: {\n settings: false,\n label: 'Chart Dimensions',\n showInConfigPanel: true,\n width: {\n min: 50,\n max: 700,\n step: 20,\n },\n height: {\n min: 400,\n max: 700,\n step: 20,\n },\n },\n authorNewCategoryDefaults: {\n settings: false,\n label: 'Category',\n interactive: true,\n editable: false,\n },\n availableChartTypes: {\n bar: 'Bar Chart',\n histogram: 'Histogram',\n lineDot: 'Line Chart ●',\n lineCross: 'Line Chart x',\n dotPlot: 'Dot/Line Plot ⬤',\n linePlot: 'Dot/Line Plot X',\n },\n chartTypeLabel: 'ChartType',\n studentNewCategoryDefaultLabel: {\n settings: false,\n label: 'Category',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n settingsPanelDisabled: false,\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n required: false,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n title: {\n settings: false,\n label: 'Chart Title',\n },\n instruction: {\n settings: false,\n label:\n 'This item type provides various types of interactive charts. Depending upon how an item is configured,\\n' +\n ' students can change the heights of bars (or other similar chart elements) created by the author; relabel bars\\n' +\n ' created by the author; and/or add new bars, label them, and set their heights.',\n },\n titlePlaceholder: {\n settings: false,\n label: 'Click here to add a title',\n },\n labelsPlaceholders: {\n left: 'Click here to add a label for this axis',\n right: '',\n top: '',\n bottom: 'Click here to add a label for this axis',\n },\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n chartingOptions: {\n changeInteractive: {\n settings: false,\n authoringLabel: 'Student can set value',\n settingsLabel: 'Allow non-interactive categories',\n },\n changeEditable: {\n settings: false,\n authoringLabel: 'Student can edit name',\n settingsLabel: 'Allow editable category names',\n },\n addCategory: {\n settings: false,\n authoringLabel: 'Student can add categories',\n settingsLabel: 'Allow changes to whether students can add categories',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n },\n};\n"],"file":"defaults.js"}
|
package/configure/package.json
CHANGED
|
@@ -10,6 +10,35 @@ exports["default"] = void 0;
|
|
|
10
10
|
* rationale, scoringType, studentInstructions, teacherInstructions
|
|
11
11
|
* so there's no implementation (they are only added in model)
|
|
12
12
|
*/
|
|
13
|
-
var _default = {
|
|
13
|
+
var _default = {
|
|
14
|
+
addCategoryEnabled: true,
|
|
15
|
+
changeAddCategoryEnabled: false,
|
|
16
|
+
changeEditableEnabled: false,
|
|
17
|
+
changeInteractiveEnabled: false,
|
|
18
|
+
chartType: 'lineCross',
|
|
19
|
+
correctAnswer: {},
|
|
20
|
+
data: [],
|
|
21
|
+
domain: {},
|
|
22
|
+
graph: {
|
|
23
|
+
width: 480,
|
|
24
|
+
height: 480
|
|
25
|
+
},
|
|
26
|
+
prompt: '',
|
|
27
|
+
promptEnabled: true,
|
|
28
|
+
range: {
|
|
29
|
+
label: '',
|
|
30
|
+
max: 1,
|
|
31
|
+
min: 0,
|
|
32
|
+
labelStep: 1
|
|
33
|
+
},
|
|
34
|
+
rationale: '',
|
|
35
|
+
rationaleEnabled: true,
|
|
36
|
+
scoringType: 'all or nothing',
|
|
37
|
+
studentInstructionsEnabled: true,
|
|
38
|
+
studentNewCategoryDefaultLabel: 'New Category',
|
|
39
|
+
teacherInstructions: '',
|
|
40
|
+
teacherInstructionsEnabled: true,
|
|
41
|
+
title: ''
|
|
42
|
+
};
|
|
14
43
|
exports["default"] = _default;
|
|
15
44
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":[],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;eAEe,
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["addCategoryEnabled","changeAddCategoryEnabled","changeEditableEnabled","changeInteractiveEnabled","chartType","correctAnswer","data","domain","graph","width","height","prompt","promptEnabled","range","label","max","min","labelStep","rationale","rationaleEnabled","scoringType","studentInstructionsEnabled","studentNewCategoryDefaultLabel","teacherInstructions","teacherInstructionsEnabled","title"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;eAEe;AACbA,EAAAA,kBAAkB,EAAE,IADP;AAEbC,EAAAA,wBAAwB,EAAE,KAFb;AAGbC,EAAAA,qBAAqB,EAAE,KAHV;AAIbC,EAAAA,wBAAwB,EAAE,KAJb;AAKbC,EAAAA,SAAS,EAAE,WALE;AAMbC,EAAAA,aAAa,EAAE,EANF;AAObC,EAAAA,IAAI,EAAE,EAPO;AAQbC,EAAAA,MAAM,EAAE,EARK;AASbC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAK,EAAE,GAAT;AAAcC,IAAAA,MAAM,EAAE;AAAtB,GATM;AAUbC,EAAAA,MAAM,EAAE,EAVK;AAWbC,EAAAA,aAAa,EAAE,IAXF;AAYbC,EAAAA,KAAK,EAAE;AAAEC,IAAAA,KAAK,EAAE,EAAT;AAAaC,IAAAA,GAAG,EAAE,CAAlB;AAAqBC,IAAAA,GAAG,EAAE,CAA1B;AAA6BC,IAAAA,SAAS,EAAE;AAAxC,GAZM;AAabC,EAAAA,SAAS,EAAE,EAbE;AAcbC,EAAAA,gBAAgB,EAAE,IAdL;AAebC,EAAAA,WAAW,EAAE,gBAfA;AAgBbC,EAAAA,0BAA0B,EAAE,IAhBf;AAiBbC,EAAAA,8BAA8B,EAAE,cAjBnB;AAkBbC,EAAAA,mBAAmB,EAAE,EAlBR;AAmBbC,EAAAA,0BAA0B,EAAE,IAnBf;AAoBbC,EAAAA,KAAK,EAAE;AApBM,C","sourcesContent":["/**\n * NOTE: There's no functionality described for graphTitle,\n * rationale, scoringType, studentInstructions, teacherInstructions\n * so there's no implementation (they are only added in model)\n */\n\nexport default {\n addCategoryEnabled: true,\n changeAddCategoryEnabled: false,\n changeEditableEnabled: false,\n changeInteractiveEnabled: false,\n chartType: 'lineCross',\n correctAnswer: {},\n data: [],\n domain: {},\n graph: { width: 480, height: 480 },\n prompt: '',\n promptEnabled: true,\n range: { label: '', max: 1, min: 0, labelStep: 1 },\n rationale: '',\n rationaleEnabled: true,\n scoringType: 'all or nothing',\n studentInstructionsEnabled: true,\n studentNewCategoryDefaultLabel: 'New Category',\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n title: '',\n};\n"],"file":"defaults.js"}
|
package/controller/lib/index.js
CHANGED
|
@@ -25,6 +25,8 @@ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
|
25
25
|
|
|
26
26
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
27
27
|
|
|
28
|
+
var _defaults = _interopRequireDefault(require("./defaults"));
|
|
29
|
+
|
|
28
30
|
var _controllerUtils = require("@pie-lib/pie-toolbox/controller-utils");
|
|
29
31
|
|
|
30
32
|
var _excluded = ["deletable"],
|
|
@@ -60,13 +62,7 @@ var setCorrectness = function setCorrectness(answers, partialScoring) {
|
|
|
60
62
|
exports.setCorrectness = setCorrectness;
|
|
61
63
|
|
|
62
64
|
var normalize = function normalize(question) {
|
|
63
|
-
return _objectSpread({
|
|
64
|
-
addCategoryEnabled: true,
|
|
65
|
-
promptEnabled: true,
|
|
66
|
-
rationaleEnabled: true,
|
|
67
|
-
teacherInstructionsEnabled: true,
|
|
68
|
-
studentInstructionsEnabled: true
|
|
69
|
-
}, question);
|
|
65
|
+
return _objectSpread(_objectSpread({}, _defaults["default"]), question);
|
|
70
66
|
};
|
|
71
67
|
|
|
72
68
|
exports.normalize = normalize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","lowerCase","string","toLowerCase","checkLabelsEquality","givenAnswerLabel","correctAnswerLabel","setCorrectness","answers","partialScoring","map","answer","correctness","value","label","normalize","question","addCategoryEnabled","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","getScore","session","env","correctAnswer","data","initialData","scoringType","correctResponses","isPartialScoring","enabled","undefined","correctAnswers","defaultAnswers","filterCategories","result","maxScore","score","scoreForLabelAndValueEditable","corrAnswer","index","valueIsCorrect","labelIsCorrect","push","forEach","defaultAnswer","editable","interactive","length","slice","parseFloat","toFixed","extraProps","correctResponseEnabled","categories","deletable","rest","model","Promise","resolve","normalizedQuestion","chartType","domain","graph","prompt","range","rationale","title","teacherInstructions","studentNewCategoryDefaultLabel","language","correctInfo","base","size","showToggle","disabled","mode","scoreObject","correctedAnswer","role","outcome","empty","correctResponse","createCorrectResponseSession","id","getInnerText","html","replaceAll","getContent","replace","validate","config","correctData","errors","correctAnswerErrors","categoryErrors","field","required","category","identicalAnswer","some","c","i","categoriesError","identicalError"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport pick from 'lodash/pick';\n\nimport { partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst lowerCase = (string) => (string || '').toLowerCase();\n\nexport const checkLabelsEquality = (givenAnswerLabel, correctAnswerLabel) =>\n lowerCase(givenAnswerLabel) === lowerCase(correctAnswerLabel);\n\nexport const setCorrectness = (answers, partialScoring) =>\n answers\n ? answers.map((answer) => ({\n ...answer,\n correctness: {\n value: partialScoring ? 'incorrect' : 'correct',\n label: partialScoring ? 'incorrect' : 'correct',\n },\n }))\n : [];\n\nexport const normalize = (question) => ({\n addCategoryEnabled: true,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n ...question,\n});\n\nexport const getScore = (question, session, env = {}) => {\n const { correctAnswer, data: initialData = [], scoringType } = question;\n let correctResponses = [];\n\n const isPartialScoring = partialScoring.enabled(\n { partialScoring: scoringType !== undefined ? scoringType === 'partial scoring' : scoringType },\n env,\n );\n\n const { data: correctAnswers = [] } = correctAnswer || {};\n const defaultAnswers = filterCategories(initialData);\n\n let answers = setCorrectness((session && session.answer) || defaultAnswers, isPartialScoring);\n\n let result = 0;\n\n if (isPartialScoring) {\n // if score type is \"partial scoring\"\n // maxScore is calculated based on the correct response\n // score is calculated based on the given response\n let maxScore = 0;\n let score = 0;\n\n const scoreForLabelAndValueEditable = (answer, corrAnswer) => {\n const { value, label, index } = answer;\n const valueIsCorrect = value === corrAnswer.value;\n const labelIsCorrect = checkLabelsEquality(label, corrAnswer.label);\n maxScore += 2;\n\n if (valueIsCorrect) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n\n if (labelIsCorrect) {\n score += 1;\n answer.correctness.label = 'correct';\n }\n\n if (valueIsCorrect && labelIsCorrect) {\n correctResponses.push({ label: label, index: index });\n }\n };\n\n // if given answer has more categories than the correct answers, the \"extra\" will be ignored\n correctAnswers.forEach((corrAnswer, index) => {\n const defaultAnswer = defaultAnswers[index];\n const answer = answers[index];\n\n // if there is a corresponding category at the same position in the given answer\n if (answer) {\n // if there is a corresponding category at the same position in the default answer\n if (defaultAnswer) {\n // if category's label (in default answer) was not editable\n // it means that this category values only one point (only the value can be changed)\n if (!defaultAnswer.editable && answer.interactive) {\n maxScore += 1;\n\n if (answer.value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n correctResponses.push({ label: answer.label, index: index });\n }\n answer.correctness.label = 'correct';\n\n // if category's label (in default answer) was editable\n // it means that this category values 2 points (both label and value can be changed)\n } else if (defaultAnswer.editable && answer.interactive) {\n scoreForLabelAndValueEditable(answer, corrAnswer);\n } else if (!answer.interactive) {\n answer.correctness.value = 'correct';\n answer.correctness.label = 'correct';\n correctResponses.push({ label: answer.label, index: index });\n }\n } else {\n // if there is not a corresponding category at the same position in the default answer\n scoreForLabelAndValueEditable(answer, corrAnswer);\n }\n } else {\n // if there is not a corresponding category at the same position in the given answer\n // it means that the given answer has less categories than the correct answer\n maxScore += 2;\n }\n });\n\n result = maxScore ? score / maxScore : 0;\n } else {\n // if scoring type is \"all or nothing\"\n // the length on correct answers and length of given answer have to match\n result = correctAnswers.length === answers.length ? 1 : 0;\n\n if (result) {\n // if there is at least one difference between the correct answer and the given answer\n // the result will be incorrect\n correctAnswers.forEach((corrAnswer, index) => {\n const { value, label } = answers[index];\n\n const valueIsCorrect = value === corrAnswer.value;\n const labelIsCorrect = lowerCase(label) === lowerCase(corrAnswer.label);\n\n if (!valueIsCorrect) {\n result = 0;\n answers[index].correctness.value = 'incorrect';\n }\n if (!labelIsCorrect) {\n result = 0;\n answers[index].correctness.label = 'incorrect';\n }\n if (valueIsCorrect && labelIsCorrect) {\n correctResponses.push({ label: label, index: index });\n }\n });\n } else {\n answers = [\n ...answers.slice(0, correctAnswers.length),\n ...setCorrectness(answers.slice(correctAnswers.length), true),\n ];\n }\n }\n\n const score = {\n score: parseFloat(result.toFixed(2)),\n answers,\n };\n\n if (env.extraProps && env.extraProps.correctResponseEnabled) {\n score.correctResponses = correctResponses;\n }\n\n return score;\n};\n\n// eslint-disable-next-line no-unused-vars\nexport const filterCategories = (categories) => (categories ? categories.map(({ deletable, ...rest }) => rest) : []);\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const {\n addCategoryEnabled,\n chartType,\n data,\n domain,\n graph,\n prompt,\n promptEnabled,\n range,\n rationale,\n title,\n rationaleEnabled,\n teacherInstructions,\n teacherInstructionsEnabled,\n correctAnswer,\n scoringType,\n studentNewCategoryDefaultLabel,\n language,\n } = normalizedQuestion;\n\n const correctInfo = { correctness: 'incorrect', score: '0%' };\n\n const base = {\n addCategoryEnabled,\n chartType,\n data: filterCategories(data),\n domain,\n graph,\n prompt: promptEnabled ? prompt : null,\n range,\n rationale,\n title,\n size: graph,\n showToggle: false,\n correctness: correctInfo,\n disabled: env.mode !== 'gather',\n scoringType,\n studentNewCategoryDefaultLabel,\n language,\n env,\n };\n\n const scoreObject = getScore(normalizedQuestion, session, env);\n const answers = filterCategories(scoreObject.answers);\n\n if (env.mode === 'view') {\n // eslint-disable-next-line no-unused-vars\n base.correctedAnswer = answers.map(({ correctness, ...rest }) => {\n return { ...rest, interactive: false };\n });\n\n base.addCategoryEnabled = false;\n }\n\n if (env.mode === 'evaluate') {\n base.correctedAnswer = answers;\n base.correctAnswer = correctAnswer;\n base.showToggle = !!correctAnswer?.data?.length && scoreObject.score !== 1;\n base.addCategoryEnabled = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n base.rationale = null;\n base.teacherInstructions = null;\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n const scoreObject = getScore(model, session, env);\n const result = {\n score: scoreObject.score,\n empty: !session || isEmpty(session),\n };\n if (env.extraProps && env.extraProps.correctResponseEnabled) {\n result.extraProps = { correctResponse: scoreObject.correctResponses };\n }\n resolve(result);\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctAnswer } = question;\n\n let answers = correctAnswer && correctAnswer.data;\n\n // for IBX preview mode\n if (env.mode === 'gather') {\n const { data } = question;\n\n answers = ((correctAnswer && correctAnswer.data) || []).map((answer, index) => {\n return {\n ...data[index],\n ...answer,\n };\n });\n }\n\n resolve({\n answer: answers,\n id: '1',\n });\n } else {\n return resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img and iframe\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { correctAnswer, data } = model || {};\n const { data: correctData } = correctAnswer || {};\n const categories = correctData || [];\n\n const errors = {};\n const correctAnswerErrors = {};\n const categoryErrors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n categories.forEach((category, index) => {\n const { label } = category;\n\n if (!getInnerText(label)) {\n categoryErrors[index] = 'Content should not be empty. ';\n } else {\n const identicalAnswer = categories.some((c, i) => c.label === label && index !== i);\n\n if (identicalAnswer) {\n categoryErrors[index] = 'Category names should be unique. ';\n }\n }\n });\n\n if (categories.length < 1 || categories.length > 20) {\n correctAnswerErrors.categoriesError = 'The correct answer should include between 1 and 20 categories.';\n } else if (\n isEqual(\n data.map((category) => pick(category, 'value', 'label')),\n correctData.map((category) => pick(category, 'value', 'label')),\n )\n ) {\n correctAnswerErrors.identicalError = 'Correct answer should not be identical to the chart’s initial state';\n }\n\n if (!isEmpty(categoryErrors)) {\n errors.categoryErrors = categoryErrors;\n }\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["log","lowerCase","string","toLowerCase","checkLabelsEquality","givenAnswerLabel","correctAnswerLabel","setCorrectness","answers","partialScoring","map","answer","correctness","value","label","normalize","question","defaults","getScore","session","env","correctAnswer","data","initialData","scoringType","correctResponses","isPartialScoring","enabled","undefined","correctAnswers","defaultAnswers","filterCategories","result","maxScore","score","scoreForLabelAndValueEditable","corrAnswer","index","valueIsCorrect","labelIsCorrect","push","forEach","defaultAnswer","editable","interactive","length","slice","parseFloat","toFixed","extraProps","correctResponseEnabled","categories","deletable","rest","model","Promise","resolve","normalizedQuestion","addCategoryEnabled","chartType","domain","graph","prompt","promptEnabled","range","rationale","title","rationaleEnabled","teacherInstructions","teacherInstructionsEnabled","studentNewCategoryDefaultLabel","language","correctInfo","base","size","showToggle","disabled","mode","scoreObject","correctedAnswer","role","outcome","empty","correctResponse","createCorrectResponseSession","id","getInnerText","html","replaceAll","getContent","replace","validate","config","correctData","errors","correctAnswerErrors","categoryErrors","field","required","category","identicalAnswer","some","c","i","categoriesError","identicalError"],"mappings":"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","sourcesContent":["import debug from 'debug';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\nimport pick from 'lodash/pick';\nimport defaults from './defaults';\n\nimport { partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst lowerCase = (string) => (string || '').toLowerCase();\n\nexport const checkLabelsEquality = (givenAnswerLabel, correctAnswerLabel) =>\n lowerCase(givenAnswerLabel) === lowerCase(correctAnswerLabel);\n\nexport const setCorrectness = (answers, partialScoring) =>\n answers\n ? answers.map((answer) => ({\n ...answer,\n correctness: {\n value: partialScoring ? 'incorrect' : 'correct',\n label: partialScoring ? 'incorrect' : 'correct',\n },\n }))\n : [];\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nexport const getScore = (question, session, env = {}) => {\n const { correctAnswer, data: initialData = [], scoringType } = question;\n let correctResponses = [];\n\n const isPartialScoring = partialScoring.enabled(\n { partialScoring: scoringType !== undefined ? scoringType === 'partial scoring' : scoringType },\n env,\n );\n\n const { data: correctAnswers = [] } = correctAnswer || {};\n const defaultAnswers = filterCategories(initialData);\n\n let answers = setCorrectness((session && session.answer) || defaultAnswers, isPartialScoring);\n\n let result = 0;\n\n if (isPartialScoring) {\n // if score type is \"partial scoring\"\n // maxScore is calculated based on the correct response\n // score is calculated based on the given response\n let maxScore = 0;\n let score = 0;\n\n const scoreForLabelAndValueEditable = (answer, corrAnswer) => {\n const { value, label, index } = answer;\n const valueIsCorrect = value === corrAnswer.value;\n const labelIsCorrect = checkLabelsEquality(label, corrAnswer.label);\n maxScore += 2;\n\n if (valueIsCorrect) {\n score += 1;\n answer.correctness.value = 'correct';\n }\n\n if (labelIsCorrect) {\n score += 1;\n answer.correctness.label = 'correct';\n }\n\n if (valueIsCorrect && labelIsCorrect) {\n correctResponses.push({ label: label, index: index });\n }\n };\n\n // if given answer has more categories than the correct answers, the \"extra\" will be ignored\n correctAnswers.forEach((corrAnswer, index) => {\n const defaultAnswer = defaultAnswers[index];\n const answer = answers[index];\n\n // if there is a corresponding category at the same position in the given answer\n if (answer) {\n // if there is a corresponding category at the same position in the default answer\n if (defaultAnswer) {\n // if category's label (in default answer) was not editable\n // it means that this category values only one point (only the value can be changed)\n if (!defaultAnswer.editable && answer.interactive) {\n maxScore += 1;\n\n if (answer.value === corrAnswer.value) {\n score += 1;\n answer.correctness.value = 'correct';\n correctResponses.push({ label: answer.label, index: index });\n }\n answer.correctness.label = 'correct';\n\n // if category's label (in default answer) was editable\n // it means that this category values 2 points (both label and value can be changed)\n } else if (defaultAnswer.editable && answer.interactive) {\n scoreForLabelAndValueEditable(answer, corrAnswer);\n } else if (!answer.interactive) {\n answer.correctness.value = 'correct';\n answer.correctness.label = 'correct';\n correctResponses.push({ label: answer.label, index: index });\n }\n } else {\n // if there is not a corresponding category at the same position in the default answer\n scoreForLabelAndValueEditable(answer, corrAnswer);\n }\n } else {\n // if there is not a corresponding category at the same position in the given answer\n // it means that the given answer has less categories than the correct answer\n maxScore += 2;\n }\n });\n\n result = maxScore ? score / maxScore : 0;\n } else {\n // if scoring type is \"all or nothing\"\n // the length on correct answers and length of given answer have to match\n result = correctAnswers.length === answers.length ? 1 : 0;\n\n if (result) {\n // if there is at least one difference between the correct answer and the given answer\n // the result will be incorrect\n correctAnswers.forEach((corrAnswer, index) => {\n const { value, label } = answers[index];\n\n const valueIsCorrect = value === corrAnswer.value;\n const labelIsCorrect = lowerCase(label) === lowerCase(corrAnswer.label);\n\n if (!valueIsCorrect) {\n result = 0;\n answers[index].correctness.value = 'incorrect';\n }\n if (!labelIsCorrect) {\n result = 0;\n answers[index].correctness.label = 'incorrect';\n }\n if (valueIsCorrect && labelIsCorrect) {\n correctResponses.push({ label: label, index: index });\n }\n });\n } else {\n answers = [\n ...answers.slice(0, correctAnswers.length),\n ...setCorrectness(answers.slice(correctAnswers.length), true),\n ];\n }\n }\n\n const score = {\n score: parseFloat(result.toFixed(2)),\n answers,\n };\n\n if (env.extraProps && env.extraProps.correctResponseEnabled) {\n score.correctResponses = correctResponses;\n }\n\n return score;\n};\n\n// eslint-disable-next-line no-unused-vars\nexport const filterCategories = (categories) => (categories ? categories.map(({ deletable, ...rest }) => rest) : []);\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n const {\n addCategoryEnabled,\n chartType,\n data,\n domain,\n graph,\n prompt,\n promptEnabled,\n range,\n rationale,\n title,\n rationaleEnabled,\n teacherInstructions,\n teacherInstructionsEnabled,\n correctAnswer,\n scoringType,\n studentNewCategoryDefaultLabel,\n language,\n } = normalizedQuestion;\n\n const correctInfo = { correctness: 'incorrect', score: '0%' };\n\n const base = {\n addCategoryEnabled,\n chartType,\n data: filterCategories(data),\n domain,\n graph,\n prompt: promptEnabled ? prompt : null,\n range,\n rationale,\n title,\n size: graph,\n showToggle: false,\n correctness: correctInfo,\n disabled: env.mode !== 'gather',\n scoringType,\n studentNewCategoryDefaultLabel,\n language,\n env,\n };\n\n const scoreObject = getScore(normalizedQuestion, session, env);\n const answers = filterCategories(scoreObject.answers);\n\n if (env.mode === 'view') {\n // eslint-disable-next-line no-unused-vars\n base.correctedAnswer = answers.map(({ correctness, ...rest }) => {\n return { ...rest, interactive: false };\n });\n\n base.addCategoryEnabled = false;\n }\n\n if (env.mode === 'evaluate') {\n base.correctedAnswer = answers;\n base.correctAnswer = correctAnswer;\n base.showToggle = !!correctAnswer?.data?.length && scoreObject.score !== 1;\n base.addCategoryEnabled = false;\n }\n\n if (env.role === 'instructor' && (env.mode === 'view' || env.mode === 'evaluate')) {\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n } else {\n base.rationale = null;\n base.teacherInstructions = null;\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n const scoreObject = getScore(model, session, env);\n const result = {\n score: scoreObject.score,\n empty: !session || isEmpty(session),\n };\n if (env.extraProps && env.extraProps.correctResponseEnabled) {\n result.extraProps = { correctResponse: scoreObject.correctResponses };\n }\n resolve(result);\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctAnswer } = question;\n\n let answers = correctAnswer && correctAnswer.data;\n\n // for IBX preview mode\n if (env.mode === 'gather') {\n const { data } = question;\n\n answers = ((correctAnswer && correctAnswer.data) || []).map((answer, index) => {\n return {\n ...data[index],\n ...answer,\n };\n });\n }\n\n resolve({\n answer: answers,\n id: '1',\n });\n } else {\n return resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img and iframe\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { correctAnswer, data } = model || {};\n const { data: correctData } = correctAnswer || {};\n const categories = correctData || [];\n\n const errors = {};\n const correctAnswerErrors = {};\n const categoryErrors = {};\n\n ['teacherInstructions', 'prompt', 'rationale'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n categories.forEach((category, index) => {\n const { label } = category;\n\n if (!getInnerText(label)) {\n categoryErrors[index] = 'Content should not be empty. ';\n } else {\n const identicalAnswer = categories.some((c, i) => c.label === label && index !== i);\n\n if (identicalAnswer) {\n categoryErrors[index] = 'Category names should be unique. ';\n }\n }\n });\n\n if (categories.length < 1 || categories.length > 20) {\n correctAnswerErrors.categoriesError = 'The correct answer should include between 1 and 20 categories.';\n } else if (\n isEqual(\n data.map((category) => pick(category, 'value', 'label')),\n correctData.map((category) => pick(category, 'value', 'label')),\n )\n ) {\n correctAnswerErrors.identicalError = 'Correct answer should not be identical to the chart’s initial state';\n }\n\n if (!isEmpty(categoryErrors)) {\n errors.categoryErrors = categoryErrors;\n }\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
package/controller/package.json
CHANGED
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "8.1.3-next.
|
|
7
|
+
"version": "8.1.3-next.43+2137958ad",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"postpublish": "../../scripts/postpublish"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@material-ui/core": "^3.9.2",
|
|
14
14
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
15
|
-
"@pie-lib/pie-toolbox": "2.0.
|
|
15
|
+
"@pie-lib/pie-toolbox": "2.0.14",
|
|
16
16
|
"classnames": "^2.2.5",
|
|
17
17
|
"debug": "^4.1.1",
|
|
18
18
|
"lodash": "^4.17.15",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "2137958adc303c2f08bc53bf6537469158220c1f",
|
|
25
25
|
"main": "lib/index.js",
|
|
26
26
|
"module": "src/index.js"
|
|
27
27
|
}
|