@pie-element/graphing 5.1.2-next.17 → 5.1.2-next.25
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 +3 -5
- package/configure/lib/defaults.js.map +1 -1
- package/configure/package.json +1 -1
- package/controller/lib/defaults.js +3 -1
- package/controller/lib/defaults.js.map +1 -1
- package/controller/lib/index.js +3 -1
- package/controller/lib/index.js.map +1 -1
- package/controller/lib/utils.js +69 -1
- package/controller/lib/utils.js.map +1 -1
- package/controller/package.json +1 -1
- package/lib/utils.js +2 -0
- package/lib/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -4,11 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _tools$allTools = _graphing.tools.allTools,
|
|
11
|
-
allTools = _tools$allTools === void 0 ? [] : _tools$allTools;
|
|
7
|
+
var allTools = ['circle', 'line', 'label', 'parabola', 'point', 'polygon', 'ray', 'segment', 'sine', 'vector' // 'absolute', // - not available as default
|
|
8
|
+
// 'exponential', // - not available as default
|
|
9
|
+
];
|
|
12
10
|
var _default = {
|
|
13
11
|
model: {
|
|
14
12
|
answers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["tools","allTools","model","answers","correctAnswer","name","marks","arrows","left","right","up","down","backgroundMarks","defaultGridConfiguration","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","padding","prompt","range","rationale","standardGrid","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","availableTools","authoring","settings","label","enabled","includeAxesEnabled","standardGridEnabled","gridConfigurations","top","bottom","graphDimensions","scoringType","studentInstructions","teacherInstructions","placeholder","instruction","settingsPanelDisabled","spellCheck","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","options","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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","sourcesContent":["import { tools } from '@pie-lib/pie-toolbox/graphing';\nconst { allTools = [] } = tools;\n\nexport default {\n model: {\n answers: {\n correctAnswer: {\n name: 'Correct Answer',\n marks: [],\n },\n },\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n backgroundMarks: [],\n defaultGridConfiguration: 0,\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x',\n },\n graph: {\n width: 500,\n height: 500,\n },\n includeAxes: true,\n labels: {},\n labelsEnabled: true,\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y',\n },\n rationale: '',\n standardGrid: false,\n title: '',\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n availableTools: allTools,\n authoring: {\n settings: false,\n label: 'Customize Grid Setup',\n enabled: true,\n includeAxesEnabled: true,\n standardGridEnabled: true,\n min: {\n label: 'Min Value',\n enabled: true,\n },\n max: {\n label: 'Max Value',\n enabled: true,\n },\n axisLabel: {\n label: 'Label',\n enabled: true,\n },\n step: {\n label: 'Grid Interval',\n enabled: true,\n },\n labelStep: {\n label: 'Label Interval',\n enabled: true,\n },\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left',\n },\n right: {\n label: 'right',\n },\n up: {\n label: 'up',\n },\n down: {\n label: 'down',\n },\n },\n gridConfigurations: [\n {\n label: '4-quadrant coordinate grid, -10 to 10',\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n domain: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: '0 to 10 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: '0 to 20 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: 'Sample Data Graph',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 30,\n step: 1,\n padding: 0,\n labelStep: 2,\n axisLabel: '<i>t</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: 'Time (seconds)',\n left: 'Distance (meters)',\n },\n padding: true,\n range: {\n min: 0,\n max: 80,\n step: 5,\n padding: 0,\n labelStep: 10,\n axisLabel: '<i>d</i>',\n },\n standardGrid: false,\n title: 'Distance as a function of time',\n },\n {\n label: 'No Visible Axes',\n arrows: {\n left: false,\n right: false,\n up: false,\n down: false,\n },\n domain: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: '',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: false,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: '',\n },\n standardGrid: false,\n title: '',\n },\n ],\n graphDimensions: {\n settings: false,\n label: 'Graph Dimensions',\n enabled: true,\n min: 150,\n max: 800,\n step: 20,\n },\n padding: {\n settings: false,\n label: 'Padding',\n },\n labels: {\n settings: true,\n label: 'Graph Labels',\n enabled: true,\n top: 'Click here to add a top label',\n right: 'Click here to add a right label',\n bottom: 'Click here to add a bottom label',\n left: 'Click here to add a left label',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n title: {\n settings: true,\n label: 'Graph Title',\n enabled: true,\n placeholder: 'Click here to add a title for this graph',\n },\n instruction: {\n settings: false,\n label:\n 'Graphing questions involve plotting points, lines, or other objects on a graph. To create one, first configure the grid, then select the plotting tools students will be offered, and use them to define the correct answer.',\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover',\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 mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n};\n"],"file":"defaults.js"}
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["allTools","model","answers","correctAnswer","name","marks","arrows","left","right","up","down","backgroundMarks","defaultGridConfiguration","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","padding","prompt","range","rationale","standardGrid","title","toolbarTools","coordinatesOnHover","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","configuration","availableTools","authoring","settings","label","enabled","includeAxesEnabled","standardGridEnabled","gridConfigurations","top","bottom","graphDimensions","scoringType","studentInstructions","teacherInstructions","placeholder","instruction","settingsPanelDisabled","spellCheck","maxImageWidth","maxImageHeight","withRubric","language","languageChoices","options","mathMlOptions","mmlOutput","mmlEditing"],"mappings":"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","sourcesContent":["const allTools = [\n 'circle',\n 'line',\n 'label',\n 'parabola',\n 'point',\n 'polygon',\n 'ray',\n 'segment',\n 'sine',\n 'vector',\n // 'absolute', // - not available as default\n // 'exponential', // - not available as default\n];\n\nexport default {\n model: {\n answers: {\n correctAnswer: {\n name: 'Correct Answer',\n marks: [],\n },\n },\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n backgroundMarks: [],\n defaultGridConfiguration: 0,\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x',\n },\n graph: {\n width: 500,\n height: 500,\n },\n includeAxes: true,\n labels: {},\n labelsEnabled: true,\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y',\n },\n rationale: '',\n standardGrid: false,\n title: '',\n toolbarTools: allTools,\n coordinatesOnHover: false,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n },\n configuration: {\n availableTools: allTools,\n authoring: {\n settings: false,\n label: 'Customize Grid Setup',\n enabled: true,\n includeAxesEnabled: true,\n standardGridEnabled: true,\n min: {\n label: 'Min Value',\n enabled: true,\n },\n max: {\n label: 'Max Value',\n enabled: true,\n },\n axisLabel: {\n label: 'Label',\n enabled: true,\n },\n step: {\n label: 'Grid Interval',\n enabled: true,\n },\n labelStep: {\n label: 'Label Interval',\n enabled: true,\n },\n },\n arrows: {\n settings: true,\n label: 'Include Arrows',\n left: {\n label: 'left',\n },\n right: {\n label: 'right',\n },\n up: {\n label: 'up',\n },\n down: {\n label: 'down',\n },\n },\n gridConfigurations: [\n {\n label: '4-quadrant coordinate grid, -10 to 10',\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n domain: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: -10,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: '0 to 10 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 0,\n max: 10,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: '0 to 20 on both axes',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>x</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 0,\n max: 20,\n step: 1,\n padding: 0,\n labelStep: 1,\n axisLabel: '<i>y</i>',\n },\n standardGrid: true,\n title: '',\n },\n {\n label: 'Sample Data Graph',\n arrows: {\n left: false,\n right: true,\n up: true,\n down: false,\n },\n domain: {\n min: 0,\n max: 30,\n step: 1,\n padding: 0,\n labelStep: 2,\n axisLabel: '<i>t</i>',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: true,\n labels: {\n top: '',\n right: '',\n bottom: 'Time (seconds)',\n left: 'Distance (meters)',\n },\n padding: true,\n range: {\n min: 0,\n max: 80,\n step: 5,\n padding: 0,\n labelStep: 10,\n axisLabel: '<i>d</i>',\n },\n standardGrid: false,\n title: 'Distance as a function of time',\n },\n {\n label: 'No Visible Axes',\n arrows: {\n left: false,\n right: false,\n up: false,\n down: false,\n },\n domain: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: '',\n },\n graph: {\n width: 480,\n height: 480,\n },\n includeAxes: false,\n labels: {\n top: '',\n right: '',\n bottom: '',\n left: '',\n },\n padding: true,\n range: {\n min: 1,\n max: 21,\n step: 1,\n padding: 0,\n labelStep: 0,\n axisLabel: '',\n },\n standardGrid: false,\n title: '',\n },\n ],\n graphDimensions: {\n settings: false,\n label: 'Graph Dimensions',\n enabled: true,\n min: 150,\n max: 800,\n step: 20,\n },\n padding: {\n settings: false,\n label: 'Padding',\n },\n labels: {\n settings: true,\n label: 'Graph Labels',\n enabled: true,\n top: 'Click here to add a top label',\n right: 'Click here to add a right label',\n bottom: 'Click here to add a bottom label',\n left: 'Click here to add a left label',\n },\n prompt: {\n settings: true,\n label: 'Item Stem',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n },\n title: {\n settings: true,\n label: 'Graph Title',\n enabled: true,\n placeholder: 'Click here to add a title for this graph',\n },\n instruction: {\n settings: false,\n label:\n 'Graphing questions involve plotting points, lines, or other objects on a graph. To create one, first configure the grid, then select the plotting tools students will be offered, and use them to define the correct answer.',\n },\n settingsPanelDisabled: false,\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n coordinatesOnHover: {\n settings: true,\n label: 'Coordinates on Hover',\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 mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n },\n};\n"],"file":"defaults.js"}
|
package/configure/package.json
CHANGED
|
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
7
|
// TODO: This is lifted from @pie-lib/graphing, however importing this will break a controller build because it has jsx source in that package.
|
|
8
|
-
var allTools = ['circle', 'line', 'label', 'parabola', 'point', 'polygon', 'ray', 'segment', 'sine', 'vector'
|
|
8
|
+
var allTools = ['circle', 'line', 'label', 'parabola', 'point', 'polygon', 'ray', 'segment', 'sine', 'vector' // 'absolute', // - not available as default
|
|
9
|
+
// 'exponential', // - not available as default
|
|
10
|
+
];
|
|
9
11
|
/* model defaults */
|
|
10
12
|
|
|
11
13
|
var _default = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defaults.js"],"names":["allTools","answers","correctAnswer","name","marks","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","coordinatesOnHover","padding","prompt","range","rationale","standardGrid","title","titleEnabled","toolbarTools","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled"],"mappings":";;;;;;AAAA;AACA,IAAMA,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"sources":["../src/defaults.js"],"names":["allTools","answers","correctAnswer","name","marks","arrows","left","right","up","down","backgroundMarks","domain","min","max","step","labelStep","axisLabel","graph","width","height","includeAxes","labels","labelsEnabled","coordinatesOnHover","padding","prompt","range","rationale","standardGrid","title","titleEnabled","toolbarTools","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled"],"mappings":";;;;;;AAAA;AACA,IAAMA,QAAQ,GAAG,CACf,QADe,EAEf,MAFe,EAGf,OAHe,EAIf,UAJe,EAKf,OALe,EAMf,SANe,EAOf,KAPe,EAQf,SARe,EASf,MATe,EAUf,QAVe,CAWf;AACA;AAZe,CAAjB;AAeA;;eACe;AACbC,EAAAA,OAAO,EAAE;AACPC,IAAAA,aAAa,EAAE;AACbC,MAAAA,IAAI,EAAE,gBADO;AAEbC,MAAAA,KAAK,EAAE;AAFM;AADR,GADI;AAObC,EAAAA,MAAM,EAAE;AACNC,IAAAA,IAAI,EAAE,IADA;AAENC,IAAAA,KAAK,EAAE,IAFD;AAGNC,IAAAA,EAAE,EAAE,IAHE;AAINC,IAAAA,IAAI,EAAE;AAJA,GAPK;AAabC,EAAAA,eAAe,EAAE,EAbJ;AAcbC,EAAAA,MAAM,EAAE;AACNC,IAAAA,GAAG,EAAE,CAAC,CADA;AAENC,IAAAA,GAAG,EAAE,CAFC;AAGNC,IAAAA,IAAI,EAAE,CAHA;AAINC,IAAAA,SAAS,EAAE,CAJL;AAKNC,IAAAA,SAAS,EAAE;AALL,GAdK;AAqBbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE,GADF;AAELC,IAAAA,MAAM,EAAE;AAFH,GArBM;AAyBbC,EAAAA,WAAW,EAAE,IAzBA;AA0BbC,EAAAA,MAAM,EAAE,EA1BK;AA2BbC,EAAAA,aAAa,EAAE,IA3BF;AA4BbC,EAAAA,kBAAkB,EAAE,KA5BP;AA6BbC,EAAAA,OAAO,EAAE,IA7BI;AA8BbC,EAAAA,MAAM,EAAE,EA9BK;AA+BbC,EAAAA,KAAK,EAAE;AACLd,IAAAA,GAAG,EAAE,CAAC,CADD;AAELC,IAAAA,GAAG,EAAE,CAFA;AAGLC,IAAAA,IAAI,EAAE,CAHD;AAILC,IAAAA,SAAS,EAAE,CAJN;AAKLC,IAAAA,SAAS,EAAE;AALN,GA/BM;AAsCbW,EAAAA,SAAS,EAAE,EAtCE;AAuCbC,EAAAA,YAAY,EAAE,KAvCD;AAwCbC,EAAAA,KAAK,EAAE,EAxCM;AAyCbC,EAAAA,YAAY,EAAE,IAzCD;AA0CbC,EAAAA,YAAY,EAAE/B,QA1CD;AA2CbgC,EAAAA,aAAa,EAAE,IA3CF;AA4CbC,EAAAA,gBAAgB,EAAE,IA5CL;AA6CbC,EAAAA,0BAA0B,EAAE,IA7Cf;AA8CbC,EAAAA,0BAA0B,EAAE;AA9Cf,C","sourcesContent":["// TODO: This is lifted from @pie-lib/graphing, however importing this will break a controller build because it has jsx source in that package.\nconst allTools = [\n 'circle',\n 'line',\n 'label',\n 'parabola',\n 'point',\n 'polygon',\n 'ray',\n 'segment',\n 'sine',\n 'vector',\n // 'absolute', // - not available as default\n // 'exponential', // - not available as default\n];\n\n/* model defaults */\nexport default {\n answers: {\n correctAnswer: {\n name: 'Correct Answer',\n marks: [],\n },\n },\n arrows: {\n left: true,\n right: true,\n up: true,\n down: true,\n },\n backgroundMarks: [],\n domain: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'x',\n },\n graph: {\n width: 500,\n height: 500,\n },\n includeAxes: true,\n labels: {},\n labelsEnabled: true,\n coordinatesOnHover: false,\n padding: true,\n prompt: '',\n range: {\n min: -5,\n max: 5,\n step: 1,\n labelStep: 1,\n axisLabel: 'y',\n },\n rationale: '',\n standardGrid: false,\n title: '',\n titleEnabled: true,\n toolbarTools: allTools,\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n};\n"],"file":"defaults.js"}
|
package/controller/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["log","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","rez","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","missingAnswers","answerIndex","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","Object","entries","forEach","key","value","filter","building","correctAnswer","partialScoringEnabled","possibleAnswers","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","scoredCorrectedAnswer","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","defaultTool","prompt","promptEnabled","graph","toolbarTools","questionProps","arrows","mode","role","left","right","up","down","toolbarToolsNoLabel","tool","normalizedDefaultTool","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","id","validate","errors","correctAnswerErrors","toolbarToolsError"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers, removeInvalidAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: [],\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(\n mark1 &&\n mark2 &&\n mark1.type === mark2.type &&\n equalMarks[mark1.type] &&\n equalMarks[mark1.type](mark1, mark2)\n );\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n const rez = cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find((mark) => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n\n // add missing objects from correct answer\n const missingAnswers = cloneDeep(correctAnswers).reduce((correctedAnswer, answer) => {\n const answerIndex = sessionAnswers.find((mark) => compareMarks(answer, mark));\n\n if (!answerIndex) {\n // means that corrected answer is missing from session, so we mark it as missing object\n return [...correctedAnswer, { ...answer, correctness: 'missing' }];\n }\n\n return correctedAnswer;\n }, []);\n\n return [...rez, ...missingAnswers];\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers = {}, scoringType } = question || {};\n let { answer } = session || {};\n\n // filter the incomplete objects\n Object.entries(questionPossibleAnswers || {}).forEach(\n ([key, value]) =>\n (questionPossibleAnswers[key] = { ...value, marks: value?.marks.filter((mark) => !mark.building) }),\n );\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n questionPossibleAnswers = {\n correctAnswer: questionPossibleAnswers.correctAnswer,\n ...sortedAnswers(questionPossibleAnswers),\n };\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce(\n (acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter((answer) => answer.correctness === 'correct');\n // filter out missing objects because they do not affect the calculation of the score\n // only correct and incorrect are needed\n const scoredCorrectedAnswer = correctedAnswer.filter((answer) => answer.correctness !== 'missing');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (scoredCorrectedAnswer.length > maxScore) {\n score -= scoredCorrectedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n },\n {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map((answer) => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false,\n },\n );\n};\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n // ensure removing of invalid answers\n // need this if undo redo was last operation\n session.answer = removeInvalidAnswers(session.answer);\n // console.log('normalizedQuestion', normalizedQuestion);\n const { defaultTool, prompt, promptEnabled, graph, answers, toolbarTools, ...questionProps } =\n normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true,\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false,\n };\n }\n }\n\n // added support for models without defaultTool defined; also used in packages/graphing/configure/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n const normalizedDefaultTool = defaultTool || (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n\n const base = {\n ...questionProps,\n answers,\n arrows,\n defaultTool: normalizedDefaultTool,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle:\n env.mode === 'evaluate' &&\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks),\n teacherInstructions: null,\n toolbarTools,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks)\n ) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = (session && session.answer) || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (\n env.mode !== 'evaluate' ||\n isEmpty(question.answers) ||\n (question.answers && question.answers.correctAnswer && isEmpty(question.answers.correctAnswer.marks))\n ) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const correctAnswer = answers.correctAnswer || Object.values(answers)[0] || {};\n marks = correctAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}) => {\n const { answers, toolbarTools } = model;\n const errors = {};\n const correctAnswerErrors = {};\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n\n if (!toolbarToolsNoLabel.length) {\n errors.toolbarToolsError = 'There should be at least 1 tool defined.';\n }\n\n Object.entries(answers || {}).forEach(([key, value]) => {\n if (!value.marks.length) {\n correctAnswerErrors[key] = 'At least 1 graph object should be defined.';\n }\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","initializeGraphMap","point","segment","line","ray","vector","polygon","circle","sine","parabola","absolute","exponential","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","rez","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","missingAnswers","answerIndex","getPartialScoring","scoringType","env","pS","partialScoring","enabled","getBestAnswer","question","session","answers","questionPossibleAnswers","Object","entries","forEach","key","value","filter","building","correctAnswer","partialScoringEnabled","possibleAnswers","acc","entry","possibleAnswerKey","possibleAnswer","length","correctMarks","scoredCorrectedAnswer","maxScore","score","bestScore","foundOneSolution","parseFloat","toFixed","Math","floor","bestScoreAnswerKey","answersCorrected","map","normalize","defaults","model","Promise","resolve","normalizedQuestion","defaultTool","prompt","promptEnabled","graph","toolbarTools","questionProps","arrows","mode","role","left","right","up","down","toolbarToolsNoLabel","tool","normalizedDefaultTool","base","disabled","rationale","size","showToggle","teacherInstructions","rationaleEnabled","teacherInstructionsEnabled","correctResponse","outcome","empty","createCorrectResponseSession","values","id","validate","errors","correctAnswerErrors","toolbarToolsError"],"mappings":"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","sourcesContent":["import debug from 'debug';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport uniqWith from 'lodash/uniqWith';\nimport isEmpty from 'lodash/isEmpty';\nimport defaults from './defaults';\nimport { equalMarks, sortedAnswers, removeInvalidAnswers } from './utils';\n\nimport { partialScoring } from '@pie-lib/pie-toolbox/controller-utils';\n\nconst log = debug('@pie-element:graphing:controller');\n\nconst initializeGraphMap = () => ({\n point: [],\n segment: [],\n line: [],\n ray: [],\n vector: [],\n polygon: [],\n circle: [],\n sine: [],\n parabola: [],\n absolute: [],\n exponential: [],\n});\n\nexport const compareMarks = (mark1, mark2) => {\n // marks can be compared with equalMarks[type] function only if they have the same type;\n // if type is different, they are clearly not equal\n return !!(\n mark1 &&\n mark2 &&\n mark1.type === mark2.type &&\n equalMarks[mark1.type] &&\n equalMarks[mark1.type](mark1, mark2)\n );\n};\n\nexport const getAnswerCorrected = ({ sessionAnswers, marks: correctAnswers }) => {\n sessionAnswers = sessionAnswers || [];\n correctAnswers = correctAnswers || [];\n\n const rez = cloneDeep(sessionAnswers).reduce((correctedAnswer, answer) => {\n const answerIsCorrect = correctAnswers.find((mark) => compareMarks(answer, mark));\n\n answer.correctness = answerIsCorrect ? 'correct' : 'incorrect';\n\n return [...correctedAnswer, answer];\n }, []);\n\n // add missing objects from correct answer\n const missingAnswers = cloneDeep(correctAnswers).reduce((correctedAnswer, answer) => {\n const answerIndex = sessionAnswers.find((mark) => compareMarks(answer, mark));\n\n if (!answerIndex) {\n // means that corrected answer is missing from session, so we mark it as missing object\n return [...correctedAnswer, { ...answer, correctness: 'missing' }];\n }\n\n return correctedAnswer;\n }, []);\n\n return [...rez, ...missingAnswers];\n};\n\nconst getPartialScoring = ({ scoringType, env }) => {\n let pS = scoringType;\n\n // if scoringType is undefined, partialScoring should be considered undefined (not set)\n // because partialScoring.enabled is using that information\n // if it has a value, we check if it is partial scoring or dichotomous\n if (scoringType) {\n pS = scoringType === 'partial scoring';\n }\n\n return partialScoring.enabled({ partialScoring: pS }, env);\n};\n\nexport const getBestAnswer = (question, session, env = {}) => {\n // questionPossibleAnswers contains all possible answers (correct response and alternates);\n let { answers: questionPossibleAnswers = {}, scoringType } = question || {};\n let { answer } = session || {};\n\n // filter the incomplete objects\n Object.entries(questionPossibleAnswers || {}).forEach(\n ([key, value]) =>\n (questionPossibleAnswers[key] = { ...value, marks: value?.marks.filter((mark) => !mark.building) }),\n );\n\n // initialize answer if no values\n answer = answer || [];\n\n // initialize one possible answer if no values\n if (isEmpty(questionPossibleAnswers)) {\n questionPossibleAnswers = { correctAnswer: initializeGraphMap() };\n } else {\n questionPossibleAnswers = {\n correctAnswer: questionPossibleAnswers.correctAnswer,\n ...sortedAnswers(questionPossibleAnswers),\n };\n }\n\n const partialScoringEnabled = getPartialScoring({ scoringType, env });\n\n // student's answers without DUPLICATES\n const sessionAnswers = uniqWith(answer, compareMarks);\n // array of possible answers entries\n const possibleAnswers = Object.entries(questionPossibleAnswers);\n\n return possibleAnswers.reduce(\n (acc, entry) => {\n // iterating each possible answer (main + alternates)\n const possibleAnswerKey = entry[0];\n const possibleAnswer = entry[1] || {};\n let { marks } = possibleAnswer;\n\n if (!marks || !marks.length) {\n return acc;\n }\n\n // returns array of marks, each having 'correctness' property\n const correctedAnswer = getAnswerCorrected({ sessionAnswers, marks });\n const correctMarks = correctedAnswer.filter((answer) => answer.correctness === 'correct');\n // filter out missing objects because they do not affect the calculation of the score\n // only correct and incorrect are needed\n const scoredCorrectedAnswer = correctedAnswer.filter((answer) => answer.correctness !== 'missing');\n\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (scoredCorrectedAnswer.length > maxScore) {\n score -= scoredCorrectedAnswer.length - maxScore;\n }\n\n if (score < 0) {\n score = 0;\n }\n\n if (score / maxScore > acc.bestScore || !acc.foundOneSolution) {\n if (partialScoringEnabled) {\n acc.bestScore = parseFloat((score / maxScore).toFixed(2));\n } else {\n acc.bestScore = Math.floor(score / maxScore);\n }\n\n acc.bestScoreAnswerKey = possibleAnswerKey;\n acc.answersCorrected = correctedAnswer;\n acc.foundOneSolution = true;\n }\n\n return acc;\n },\n {\n bestScore: 0,\n bestScoreAnswerKey: null,\n // initially we just suppose all the answers are incorrect\n answersCorrected: cloneDeep(sessionAnswers).map((answer) => ({ ...answer, correctness: 'incorrect' })),\n foundOneSolution: false,\n },\n );\n};\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nexport function model(question, session, env) {\n return new Promise((resolve) => {\n const normalizedQuestion = normalize(question);\n // ensure removing of invalid answers\n // need this if undo redo was last operation\n session.answer = removeInvalidAnswers(session.answer);\n // console.log('normalizedQuestion', normalizedQuestion);\n const { defaultTool, prompt, promptEnabled, graph, answers, toolbarTools, ...questionProps } =\n normalizedQuestion || {};\n let { arrows } = normalizedQuestion;\n const { mode, role } = env || {};\n\n // This is used for offering support for old models which have the property arrows: boolean\n // Same thing is set in authoring : packages/graphing/configure/src/configure.jsx - componentDidMount\n if (typeof arrows === 'boolean') {\n if (arrows) {\n arrows = {\n left: true,\n right: true,\n up: true,\n down: true,\n };\n } else {\n arrows = {\n left: false,\n right: false,\n up: false,\n down: false,\n };\n }\n }\n\n // added support for models without defaultTool defined; also used in packages/graphing/configure/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n const normalizedDefaultTool = defaultTool || (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n\n const base = {\n ...questionProps,\n answers,\n arrows,\n defaultTool: normalizedDefaultTool,\n disabled: env.mode !== 'gather',\n prompt: promptEnabled ? prompt : null,\n rationale: null,\n size: graph,\n showToggle:\n env.mode === 'evaluate' &&\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks),\n teacherInstructions: null,\n toolbarTools,\n };\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n const { rationale, rationaleEnabled, teacherInstructions, teacherInstructionsEnabled } = normalizedQuestion || {};\n\n base.rationale = rationaleEnabled ? rationale : null;\n base.teacherInstructions = teacherInstructionsEnabled ? teacherInstructions : null;\n }\n\n if (mode === 'evaluate') {\n if (\n !isEmpty(answers) &&\n answers.correctAnswer &&\n answers.correctAnswer.marks &&\n !isEmpty(answers.correctAnswer.marks)\n ) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } = getBestAnswer(normalizedQuestion, session, env);\n // array of marks from session with 'correctness' property set\n base.answersCorrected = answersCorrected;\n base.correctResponse = bestScoreAnswerKey ? (answers[bestScoreAnswerKey] || {}).marks : [];\n base.showToggle = base.showToggle && bestScore !== 1;\n } else {\n base.answersCorrected = (session && session.answer) || [];\n base.correctResponse = [];\n }\n }\n\n log('base: ', base);\n resolve(base);\n });\n}\n\nexport function outcome(question, session, env = {}) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n if (\n env.mode !== 'evaluate' ||\n isEmpty(question.answers) ||\n (question.answers && question.answers.correctAnswer && isEmpty(question.answers.correctAnswer.marks))\n ) {\n resolve({ score: 0 });\n }\n\n const { bestScore } = getBestAnswer(question, session, env);\n\n resolve({ score: bestScore });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { answers } = question || {};\n let marks = [];\n\n if (answers && Object.values(answers)) {\n const correctAnswer = answers.correctAnswer || Object.values(answers)[0] || {};\n marks = correctAnswer.marks || [];\n }\n\n resolve({\n answer: marks,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}) => {\n const { answers, toolbarTools } = model;\n const errors = {};\n const correctAnswerErrors = {};\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n\n if (!toolbarToolsNoLabel.length) {\n errors.toolbarToolsError = 'There should be at least 1 tool defined.';\n }\n\n Object.entries(answers || {}).forEach(([key, value]) => {\n if (!value.marks.length) {\n correctAnswerErrors[key] = 'At least 1 graph object should be defined.';\n }\n });\n\n if (!isEmpty(correctAnswerErrors)) {\n errors.correctAnswerErrors = correctAnswerErrors;\n }\n\n return errors;\n};\n"],"file":"index.js"}
|
package/controller/lib/utils.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.sortedAnswers = exports.removeInvalidSegments = exports.removeInvalidAnswers = exports.removeDuplicateSegments = exports.equalVector = exports.equalSine = exports.equalSegment = exports.equalRay = exports.equalPolygon = exports.equalPoint = exports.equalParabola = exports.equalMarks = exports.equalLine = exports.equalCircle = exports.constructSegmentsFromPoints = void 0;
|
|
8
|
+
exports.sortedAnswers = exports.removeInvalidSegments = exports.removeInvalidAnswers = exports.removeDuplicateSegments = exports.equalVector = exports.equalSine = exports.equalSegment = exports.equalRay = exports.equalPolygon = exports.equalPoint = exports.equalParabola = exports.equalMarks = exports.equalLine = exports.equalExponential = exports.equalCircle = exports.equalAbsolute = exports.constructSegmentsFromPoints = void 0;
|
|
9
9
|
|
|
10
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
11
|
|
|
@@ -315,8 +315,68 @@ var equalParabola = function equalParabola(p1, p2) {
|
|
|
315
315
|
|
|
316
316
|
return round(a1) === round(a2) && round(b1) === round(b2) && round(c1) === round(c2);
|
|
317
317
|
};
|
|
318
|
+
/*
|
|
319
|
+
* Function to check if given two points for absolute function
|
|
320
|
+
* for correct answer and student answer are equal or not.
|
|
321
|
+
* @param p1 - student answer
|
|
322
|
+
* @param p2 - correct answer
|
|
323
|
+
* */
|
|
324
|
+
|
|
318
325
|
|
|
319
326
|
exports.equalParabola = equalParabola;
|
|
327
|
+
|
|
328
|
+
var equalAbsolute = function equalAbsolute(p1, p2) {
|
|
329
|
+
var edgeP1 = p1.edge;
|
|
330
|
+
var edgeP2 = p2.edge;
|
|
331
|
+
var rootP1 = p1.root;
|
|
332
|
+
var rootP2 = p2.root;
|
|
333
|
+
rootP1 = _objectSpread({}, rootP1);
|
|
334
|
+
rootP2 = _objectSpread({}, rootP2);
|
|
335
|
+
|
|
336
|
+
var p1edge = edgeP1 || _objectSpread({}, rootP1);
|
|
337
|
+
|
|
338
|
+
var p2edge = edgeP2 || _objectSpread({}, rootP2);
|
|
339
|
+
|
|
340
|
+
var p1a1 = (0, _graphingUtils.pointsToAForAbsolute)(rootP1, p1edge);
|
|
341
|
+
var p2a2 = (0, _graphingUtils.pointsToAForAbsolute)(rootP2, p2edge); // if both root and a value are equal
|
|
342
|
+
|
|
343
|
+
return (0, _isEqual["default"])(rootP2, rootP1) && (0, _isEqual["default"])(p2a2, p1a1);
|
|
344
|
+
};
|
|
345
|
+
/*
|
|
346
|
+
* Function to check if given two points for exponential function
|
|
347
|
+
* for correct answer and student answer are equal or not.
|
|
348
|
+
* @param p1 - student answer
|
|
349
|
+
* @param p2 - correct answer
|
|
350
|
+
* */
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
exports.equalAbsolute = equalAbsolute;
|
|
354
|
+
|
|
355
|
+
var equalExponential = function equalExponential(p1, p2) {
|
|
356
|
+
var edgeP1 = p1.edge;
|
|
357
|
+
var edgeP2 = p2.edge;
|
|
358
|
+
var rootP1 = p1.root;
|
|
359
|
+
var rootP2 = p2.root;
|
|
360
|
+
rootP1 = _objectSpread({}, rootP1);
|
|
361
|
+
rootP2 = _objectSpread({}, rootP2);
|
|
362
|
+
|
|
363
|
+
var p1edge = edgeP1 || _objectSpread({}, rootP1);
|
|
364
|
+
|
|
365
|
+
var p2edge = edgeP2 || _objectSpread({}, rootP2);
|
|
366
|
+
|
|
367
|
+
var _pointsToABForExponen = (0, _graphingUtils.pointsToABForExponential)(rootP1, p1edge),
|
|
368
|
+
a1 = _pointsToABForExponen.a1,
|
|
369
|
+
b1 = _pointsToABForExponen.b1;
|
|
370
|
+
|
|
371
|
+
var _pointsToABForExponen2 = (0, _graphingUtils.pointsToABForExponential)(rootP2, p2edge),
|
|
372
|
+
a2 = _pointsToABForExponen2.a2,
|
|
373
|
+
b2 = _pointsToABForExponen2.b2; // if both a and b value are equal
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
return (0, _isEqual["default"])(a2, a1) && (0, _isEqual["default"])(b2, b1);
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
exports.equalExponential = equalExponential;
|
|
320
380
|
var equalMarks = {
|
|
321
381
|
circle: function circle(sessAnswer, mark) {
|
|
322
382
|
return equalCircle(sessAnswer, mark);
|
|
@@ -327,6 +387,12 @@ var equalMarks = {
|
|
|
327
387
|
parabola: function parabola(sessAnswer, mark) {
|
|
328
388
|
return equalParabola(sessAnswer, mark);
|
|
329
389
|
},
|
|
390
|
+
absolute: function absolute(sessAnswer, mark) {
|
|
391
|
+
return equalAbsolute(sessAnswer, mark);
|
|
392
|
+
},
|
|
393
|
+
exponential: function exponential(sessAnswer, mark) {
|
|
394
|
+
return equalExponential(sessAnswer, mark);
|
|
395
|
+
},
|
|
330
396
|
point: function point(sessAnswer, mark) {
|
|
331
397
|
return equalPoint(sessAnswer, mark);
|
|
332
398
|
},
|
|
@@ -374,6 +440,8 @@ var completeMark = {
|
|
|
374
440
|
vector: completeFromTo,
|
|
375
441
|
circle: completeRootEdge,
|
|
376
442
|
parabola: completeRootEdge,
|
|
443
|
+
absolute: completeRootEdge,
|
|
444
|
+
exponential: completeRootEdge,
|
|
377
445
|
sine: completeRootEdge,
|
|
378
446
|
polygon: completePoints
|
|
379
447
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["equalPoint","A","B","equalLabel","label","x","y","equalSegment","segment1","segment2","from","to","equalVector","vector1","vector2","sortedAnswers","answers","Object","keys","sort","reduce","result","key","returnLineEquationCoefficients","line","xA","yA","xB","yB","a","b","c","getSignificantDecimals","number","Math","round","equalLine","line1","line2","a1","b1","c1","a2","b2","c2","proportions","push","lodash","uniq","length","equalRay","ray1","ray2","mRay1","mRay2","angleRay1","atan2","PI","angleRay2","constructSegmentsFromPoints","points","map","point","index","removeDuplicateSegments","segments","s1","s2","removeInvalidSegments","filter","segment","equalPolygon","poly1","poly2","points1","points2","segments1","segments2","segments1NoDuplicates","segments2NoDuplicates","differentSegments1","differentSegments2","equalCircle","equalRootAndEdge","edge","root","rC1","sqrt","rC2","equalSine","sine1","sine2","getPoints","amplitude","freq","tY","abs","tXRoot","tX","edgeAboveZeroX","edgeAboveZeroY","min","max","studentAnswerBpY","correctAnswerBpY","amplitude1","freq1","min1","max1","edgeAboveZeroX1","edgeAboveZeroY1","amplitude2","freq2","min2","max2","edgeAboveZeroX2","edgeAboveZeroY2","equalParabola","p1","p2","edgeP1","edgeP2","rootP1","rootP2","p1edge","p2edge","p1mirrorEdge","p2mirrorEdge","equalMarks","circle","sessAnswer","mark","parabola","polygon","poly","ray","sine","vector","completePoint","Number","isFinite","completeFromTo","item","completeMark","completeRootEdge","completePoints","removeInvalidAnswers","type","answer"],"mappings":"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","sourcesContent":["import isEqual from 'lodash/isEqual';\nimport lodash from 'lodash';\nimport uniqWith from 'lodash/uniqWith';\nimport differenceWith from 'lodash/differenceWith';\nimport { getAmplitudeAndFreq, pointsToABC } from '@pie-lib/pie-toolbox/graphing-utils';\n\nexport const equalPoint = (A, B) => {\n // x1 = x2 & y1 = y2\n let equalLabel = true;\n\n A = {...A};\n B = {...B};\n\n if (A.label || B.label) {\n equalLabel = isEqual(A.label, B.label);\n }\n\n return isEqual(A.x, B.x) && isEqual(A.y, B.y) && equalLabel;\n};\n\nexport const equalSegment = (segment1, segment2) => {\n // A.from = B.from, A.to = B.to OR A.from = B.to, A.to = B.from\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return (\n (isEqual(segment1.from, segment2.from) && isEqual(segment1.to, segment2.to)) ||\n (isEqual(segment1.to, segment2.from) && isEqual(segment1.from, segment2.to))\n );\n};\n\nexport const equalVector = (vector1, vector2) => {\n // A.from = B.from, A.to = B.to;\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return isEqual(vector1.from, vector2.from) && isEqual(vector1.to, vector2.to);\n};\n\n// this function is implemented in configure as well\nexport const sortedAnswers = (answers) =>\n Object.keys(answers || {})\n .sort()\n .reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n }, {});\n\nconst returnLineEquationCoefficients = (line) => {\n line = {...line, to: { ...line.to }, from: { ...line.from }};\n\n const xA = line.from.x;\n const yA = line.from.y;\n const xB = line.to.x;\n const yB = line.to.y;\n\n return {\n a: yB - yA,\n b: xA - xB,\n c: xB * yA - xA * yB,\n };\n};\n\nconst getSignificantDecimals = (number) => Math.round(number * 10000) / 10000;\n\nexport const equalLine = (line1, line2) => {\n // line equation: ax + by + c = 0\n // 2 lines are equal if a1/a2 = b1/b2 = c1/c2, where a, b, c are the coefficients in line equation\n\n // line equation knowing 2 points: (y - yA) / (yB - yA) = (x - xA) / (xB - xA)\n // extending this equation, we get: x * (yB - yA) + y * (xA - xB) + (xB * yA - xA * yB) = 0\n // where a = yB - yA; b = xA - xB; c = xB * yA - xA * yB\n\n const { a: a1, b: b1, c: c1 } = returnLineEquationCoefficients(line1);\n const { a: a2, b: b2, c: c2 } = returnLineEquationCoefficients(line2);\n\n const proportions = [];\n\n if (a2 !== 0) {\n proportions.push(getSignificantDecimals(a1 / a2));\n } else if (a1 !== a2) {\n return false;\n }\n\n if (b2 !== 0) {\n proportions.push(getSignificantDecimals(b1 / b2));\n } else if (b1 !== b2) {\n return false;\n }\n\n if (c2 !== 0) {\n proportions.push(getSignificantDecimals(c1 / c2));\n } else if (c1 !== c2) {\n return false;\n }\n\n return lodash.uniq(proportions).length === 1;\n\n // (y2 - y1)/(x2 - x1) = (y4 - y3)/(x4 - x3);\n // return ((Math.abs((line1.to.y - line1.from.y) / (line1.to.x - line1.from.x))) === (Math.abs((line2.to.y - line2.from.y) / (line2.to.x - line2.from.x))));\n};\n\nexport const equalRay = (ray1, ray2) => {\n ray1 = {...ray1, to: { ...ray1.to }, from: { ...ray1.from }};\n ray2 = {...ray2, to: { ...ray2.to }, from: { ...ray2.from }};\n\n // slope: m = (y2-y1)/(x2-x1)\n // slope & x1 = x3 & y1 = y3 & angle between (x1, y1) (x2, y2) is same as angle between (x3, y3) (x4, y4)\n const mRay1 = (ray1.to.y - ray1.from.y) / (ray1.to.x - ray1.from.x);\n const mRay2 = (ray2.to.y - ray2.from.y) / (ray2.to.x - ray2.from.x);\n const angleRay1 = (Math.atan2(ray1.to.y - ray1.from.y, ray1.to.x - ray1.from.x) * 180) / Math.PI;\n const angleRay2 = (Math.atan2(ray2.to.y - ray2.from.y, ray2.to.x - ray2.from.x) * 180) / Math.PI;\n\n return mRay1 === mRay2 && ray1.from.x === ray2.from.x && ray1.from.y === ray2.from.y && angleRay1 === angleRay2;\n};\n\nexport const constructSegmentsFromPoints = (points) => {\n // takes the list of points that represent a polygon and transforms it into a list of segments; eg.:\n // points: A, B, C, D => segments: AB, BC, CD, DA\n return (points || []).map((point, index) => ({ from: point, to: points[(index + 1) % points.length] }));\n};\n\nexport const removeDuplicateSegments = (segments) => {\n segments = segments || [];\n // removes segments that are duplicates; eg. These segments are the same, so one will be removed:\n // segment1: from: { x: 1, y: 1 }, to: { x: 2, y: 1 }\n // segment2: from: { x: 2, y: 1 }, to: { x: 1, y: 1 }\n return uniqWith(segments, (s1, s2) => equalSegment(s1, s2));\n};\n\nexport const removeInvalidSegments = (segments) => {\n segments = segments || [];\n // removes segments that start in a point and end in the same point (eg.: from: { x: 1, y: 1 }, to: { x: 1, y: 1 })\n\n return segments.filter((segment) => !isEqual(segment.from, segment.to));\n};\n\nexport const equalPolygon = (poly1, poly2) => {\n const { points: points1 } = poly1;\n const { points: points2 } = poly2;\n\n // generate segments\n const segments1 = constructSegmentsFromPoints(points1);\n const segments2 = constructSegmentsFromPoints(points2);\n\n const segments1NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments1));\n const segments2NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments2));\n\n const differentSegments1 = differenceWith(segments1NoDuplicates, segments2NoDuplicates, equalSegment);\n const differentSegments2 = differenceWith(segments2NoDuplicates, segments1NoDuplicates, equalSegment);\n\n return (!differentSegments1 || !differentSegments1.length) && (!differentSegments2 || !differentSegments2.length);\n};\n\nexport const equalCircle = (c1, c2) => {\n const equalRootAndEdge = isEqual(c2.edge, c1.edge) && isEqual(c2.root, c1.root);\n\n // if both edge and root are the same, it means the shapes are exactly the same\n if (equalRootAndEdge) return true;\n\n const rC1 = Math.sqrt((c1.edge.x - c1.root.x) ** 2 + (c1.edge.y - c1.root.y) ** 2);\n const rC2 = Math.sqrt((c2.edge.x - c2.root.x) ** 2 + (c2.edge.y - c2.root.y) ** 2);\n\n // if both root and radius are the same, it means the shapes are equal\n return isEqual(c2.root, c1.root) && isEqual(rC1, rC2);\n};\n\nexport const equalSine = (sine1, sine2) => {\n const getPoints = ({ root, edge }) => {\n root = { ...root};\n edge = { ...edge};\n\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n // the height of the sine wave\n const tY = Math.abs(root.y - edge.y) * 2;\n // the distance on x axis between edge and root\n const tXRoot = Math.abs(root.x - edge.x);\n // the distance on x axis between 2 edges for sine wave (min & max)\n const tX = tXRoot * 2;\n // the first edge placed east side of root\n let edgeAboveZeroX = edge.x;\n let edgeAboveZeroY = edge.y;\n\n // if edge less then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX < 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX + tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n // if edge more then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX - tX > 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX - tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n return {\n amplitude: getSignificantDecimals(amplitude),\n freq: getSignificantDecimals(freq),\n min: getSignificantDecimals(edge.y < root.y ? edge.y : edge.y - tY),\n max: getSignificantDecimals(edge.y < root.y ? edge.y + tY : edge.y),\n edgeAboveZeroX: getSignificantDecimals(edgeAboveZeroX),\n edgeAboveZeroY: getSignificantDecimals(edgeAboveZeroY),\n };\n };\n\n const studentAnswerBpY = getPoints(sine1);\n const correctAnswerBpY = getPoints(sine2);\n\n const {\n amplitude: amplitude1,\n freq: freq1,\n min: min1,\n max: max1,\n edgeAboveZeroX: edgeAboveZeroX1,\n edgeAboveZeroY: edgeAboveZeroY1,\n } = studentAnswerBpY;\n const {\n amplitude: amplitude2,\n freq: freq2,\n min: min2,\n max: max2,\n edgeAboveZeroX: edgeAboveZeroX2,\n edgeAboveZeroY: edgeAboveZeroY2,\n } = correctAnswerBpY;\n\n return (\n Math.abs(amplitude1) === Math.abs(amplitude2) &&\n Math.abs(freq1) === Math.abs(freq2) &&\n min1 === min2 &&\n max1 === max2 &&\n edgeAboveZeroX1 === edgeAboveZeroX2 &&\n edgeAboveZeroY1 === edgeAboveZeroY2\n );\n // rootDiff1 === rootDiff2);\n};\n\nexport const equalParabola = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = {...rootP1};\n rootP2 = {...rootP2};\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const p1mirrorEdge = { x: rootP1.x - (p1edge.x - rootP1.x), y: p1edge.y };\n const p2mirrorEdge = { x: rootP2.x - (p2edge.x - rootP2.x), y: p2edge.y };\n\n if (!edgeP1 || !edgeP2) return false;\n\n const { a: a1, b: b1, c: c1 } = pointsToABC(rootP1, edgeP1, p1mirrorEdge);\n const { a: a2, b: b2, c: c2 } = pointsToABC(rootP2, edgeP2, p2mirrorEdge);\n\n // sometimes numbers have this form: 1.00000000002 because of calculations, we have to round them\n const round = (number) => Math.round(number * 10000) / 10000;\n\n return round(a1) === round(a2) && round(b1) === round(b2) && round(c1) === round(c2);\n};\n\nexport const equalMarks = {\n circle: (sessAnswer, mark) => equalCircle(sessAnswer, mark),\n line: (sessAnswer, mark) => equalLine(sessAnswer, mark),\n parabola: (sessAnswer, mark) => equalParabola(sessAnswer, mark),\n point: (sessAnswer, mark) => equalPoint(sessAnswer, mark),\n polygon: (sessAnswer, poly) => equalPolygon(sessAnswer, poly),\n ray: (sessAnswer, mark) => equalRay(sessAnswer, mark),\n segment: (sessAnswer, mark) => equalSegment(sessAnswer, mark),\n sine: (sessAnswer, mark) => equalSine(sessAnswer, mark),\n vector: (sessAnswer, mark) => equalVector(sessAnswer, mark),\n};\n\nconst completePoint = (point) => point && Number.isFinite(point.x) && Number.isFinite(point.y);\nconst completeFromTo = (item) => item && completeMark.point(item.from) && completeMark.point(item.to);\nconst completeRootEdge = (item) => item && completeMark.point(item.edge) && completeMark.point(item.root);\nconst completePoints = (item) =>\n item &&\n item.points &&\n item.points.length &&\n (item.points.filter((point) => completePoint(point)) || []).length === item.points.length;\n\nconst completeMark = {\n point: completePoint,\n line: completeFromTo,\n ray: completeFromTo,\n segment: completeFromTo,\n vector: completeFromTo,\n circle: completeRootEdge,\n parabola: completeRootEdge,\n sine: completeRootEdge,\n polygon: completePoints,\n};\n\nexport const removeInvalidAnswers = (answers) =>\n answers\n ? (answers || []).filter(({ type, ...answer }) => (completeMark[type] ? completeMark[type](answer) : false))\n : [];\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["equalPoint","A","B","equalLabel","label","x","y","equalSegment","segment1","segment2","from","to","equalVector","vector1","vector2","sortedAnswers","answers","Object","keys","sort","reduce","result","key","returnLineEquationCoefficients","line","xA","yA","xB","yB","a","b","c","getSignificantDecimals","number","Math","round","equalLine","line1","line2","a1","b1","c1","a2","b2","c2","proportions","push","lodash","uniq","length","equalRay","ray1","ray2","mRay1","mRay2","angleRay1","atan2","PI","angleRay2","constructSegmentsFromPoints","points","map","point","index","removeDuplicateSegments","segments","s1","s2","removeInvalidSegments","filter","segment","equalPolygon","poly1","poly2","points1","points2","segments1","segments2","segments1NoDuplicates","segments2NoDuplicates","differentSegments1","differentSegments2","equalCircle","equalRootAndEdge","edge","root","rC1","sqrt","rC2","equalSine","sine1","sine2","getPoints","amplitude","freq","tY","abs","tXRoot","tX","edgeAboveZeroX","edgeAboveZeroY","min","max","studentAnswerBpY","correctAnswerBpY","amplitude1","freq1","min1","max1","edgeAboveZeroX1","edgeAboveZeroY1","amplitude2","freq2","min2","max2","edgeAboveZeroX2","edgeAboveZeroY2","equalParabola","p1","p2","edgeP1","edgeP2","rootP1","rootP2","p1edge","p2edge","p1mirrorEdge","p2mirrorEdge","equalAbsolute","p1a1","p2a2","equalExponential","equalMarks","circle","sessAnswer","mark","parabola","absolute","exponential","polygon","poly","ray","sine","vector","completePoint","Number","isFinite","completeFromTo","item","completeMark","completeRootEdge","completePoints","removeInvalidAnswers","type","answer"],"mappings":"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","sourcesContent":["import isEqual from 'lodash/isEqual';\nimport lodash from 'lodash';\nimport uniqWith from 'lodash/uniqWith';\nimport differenceWith from 'lodash/differenceWith';\nimport {\n getAmplitudeAndFreq,\n pointsToABC,\n pointsToAForAbsolute,\n pointsToABForExponential,\n} from '@pie-lib/pie-toolbox/graphing-utils';\n\nexport const equalPoint = (A, B) => {\n // x1 = x2 & y1 = y2\n let equalLabel = true;\n\n A = {...A};\n B = {...B};\n\n if (A.label || B.label) {\n equalLabel = isEqual(A.label, B.label);\n }\n\n return isEqual(A.x, B.x) && isEqual(A.y, B.y) && equalLabel;\n};\n\nexport const equalSegment = (segment1, segment2) => {\n // A.from = B.from, A.to = B.to OR A.from = B.to, A.to = B.from\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return (\n (isEqual(segment1.from, segment2.from) && isEqual(segment1.to, segment2.to)) ||\n (isEqual(segment1.to, segment2.from) && isEqual(segment1.from, segment2.to))\n );\n};\n\nexport const equalVector = (vector1, vector2) => {\n // A.from = B.from, A.to = B.to;\n // x1 = x3 & y1 = y3 & x2 = x4 & y2 = y4\n return isEqual(vector1.from, vector2.from) && isEqual(vector1.to, vector2.to);\n};\n\n// this function is implemented in configure as well\nexport const sortedAnswers = (answers) =>\n Object.keys(answers || {})\n .sort()\n .reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n }, {});\n\nconst returnLineEquationCoefficients = (line) => {\n line = {...line, to: { ...line.to }, from: { ...line.from }};\n\n const xA = line.from.x;\n const yA = line.from.y;\n const xB = line.to.x;\n const yB = line.to.y;\n\n return {\n a: yB - yA,\n b: xA - xB,\n c: xB * yA - xA * yB,\n };\n};\n\nconst getSignificantDecimals = (number) => Math.round(number * 10000) / 10000;\n\nexport const equalLine = (line1, line2) => {\n // line equation: ax + by + c = 0\n // 2 lines are equal if a1/a2 = b1/b2 = c1/c2, where a, b, c are the coefficients in line equation\n\n // line equation knowing 2 points: (y - yA) / (yB - yA) = (x - xA) / (xB - xA)\n // extending this equation, we get: x * (yB - yA) + y * (xA - xB) + (xB * yA - xA * yB) = 0\n // where a = yB - yA; b = xA - xB; c = xB * yA - xA * yB\n\n const { a: a1, b: b1, c: c1 } = returnLineEquationCoefficients(line1);\n const { a: a2, b: b2, c: c2 } = returnLineEquationCoefficients(line2);\n\n const proportions = [];\n\n if (a2 !== 0) {\n proportions.push(getSignificantDecimals(a1 / a2));\n } else if (a1 !== a2) {\n return false;\n }\n\n if (b2 !== 0) {\n proportions.push(getSignificantDecimals(b1 / b2));\n } else if (b1 !== b2) {\n return false;\n }\n\n if (c2 !== 0) {\n proportions.push(getSignificantDecimals(c1 / c2));\n } else if (c1 !== c2) {\n return false;\n }\n\n return lodash.uniq(proportions).length === 1;\n\n // (y2 - y1)/(x2 - x1) = (y4 - y3)/(x4 - x3);\n // return ((Math.abs((line1.to.y - line1.from.y) / (line1.to.x - line1.from.x))) === (Math.abs((line2.to.y - line2.from.y) / (line2.to.x - line2.from.x))));\n};\n\nexport const equalRay = (ray1, ray2) => {\n ray1 = {...ray1, to: { ...ray1.to }, from: { ...ray1.from }};\n ray2 = {...ray2, to: { ...ray2.to }, from: { ...ray2.from }};\n\n // slope: m = (y2-y1)/(x2-x1)\n // slope & x1 = x3 & y1 = y3 & angle between (x1, y1) (x2, y2) is same as angle between (x3, y3) (x4, y4)\n const mRay1 = (ray1.to.y - ray1.from.y) / (ray1.to.x - ray1.from.x);\n const mRay2 = (ray2.to.y - ray2.from.y) / (ray2.to.x - ray2.from.x);\n const angleRay1 = (Math.atan2(ray1.to.y - ray1.from.y, ray1.to.x - ray1.from.x) * 180) / Math.PI;\n const angleRay2 = (Math.atan2(ray2.to.y - ray2.from.y, ray2.to.x - ray2.from.x) * 180) / Math.PI;\n\n return mRay1 === mRay2 && ray1.from.x === ray2.from.x && ray1.from.y === ray2.from.y && angleRay1 === angleRay2;\n};\n\nexport const constructSegmentsFromPoints = (points) => {\n // takes the list of points that represent a polygon and transforms it into a list of segments; eg.:\n // points: A, B, C, D => segments: AB, BC, CD, DA\n return (points || []).map((point, index) => ({ from: point, to: points[(index + 1) % points.length] }));\n};\n\nexport const removeDuplicateSegments = (segments) => {\n segments = segments || [];\n // removes segments that are duplicates; eg. These segments are the same, so one will be removed:\n // segment1: from: { x: 1, y: 1 }, to: { x: 2, y: 1 }\n // segment2: from: { x: 2, y: 1 }, to: { x: 1, y: 1 }\n return uniqWith(segments, (s1, s2) => equalSegment(s1, s2));\n};\n\nexport const removeInvalidSegments = (segments) => {\n segments = segments || [];\n // removes segments that start in a point and end in the same point (eg.: from: { x: 1, y: 1 }, to: { x: 1, y: 1 })\n\n return segments.filter((segment) => !isEqual(segment.from, segment.to));\n};\n\nexport const equalPolygon = (poly1, poly2) => {\n const { points: points1 } = poly1;\n const { points: points2 } = poly2;\n\n // generate segments\n const segments1 = constructSegmentsFromPoints(points1);\n const segments2 = constructSegmentsFromPoints(points2);\n\n const segments1NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments1));\n const segments2NoDuplicates = removeDuplicateSegments(removeInvalidSegments(segments2));\n\n const differentSegments1 = differenceWith(segments1NoDuplicates, segments2NoDuplicates, equalSegment);\n const differentSegments2 = differenceWith(segments2NoDuplicates, segments1NoDuplicates, equalSegment);\n\n return (!differentSegments1 || !differentSegments1.length) && (!differentSegments2 || !differentSegments2.length);\n};\n\nexport const equalCircle = (c1, c2) => {\n const equalRootAndEdge = isEqual(c2.edge, c1.edge) && isEqual(c2.root, c1.root);\n\n // if both edge and root are the same, it means the shapes are exactly the same\n if (equalRootAndEdge) return true;\n\n const rC1 = Math.sqrt((c1.edge.x - c1.root.x) ** 2 + (c1.edge.y - c1.root.y) ** 2);\n const rC2 = Math.sqrt((c2.edge.x - c2.root.x) ** 2 + (c2.edge.y - c2.root.y) ** 2);\n\n // if both root and radius are the same, it means the shapes are equal\n return isEqual(c2.root, c1.root) && isEqual(rC1, rC2);\n};\n\nexport const equalSine = (sine1, sine2) => {\n const getPoints = ({ root, edge }) => {\n root = { ...root};\n edge = { ...edge};\n\n const { amplitude, freq } = getAmplitudeAndFreq(root, edge);\n // the height of the sine wave\n const tY = Math.abs(root.y - edge.y) * 2;\n // the distance on x axis between edge and root\n const tXRoot = Math.abs(root.x - edge.x);\n // the distance on x axis between 2 edges for sine wave (min & max)\n const tX = tXRoot * 2;\n // the first edge placed east side of root\n let edgeAboveZeroX = edge.x;\n let edgeAboveZeroY = edge.y;\n\n // if edge less then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX < 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX + tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n // if edge more then 0, find out the appropriate edge placed east side of zero (0)\n while (edgeAboveZeroX - tX > 0 && tX !== 0) {\n edgeAboveZeroX = edgeAboveZeroX - tX;\n edgeAboveZeroY = edgeAboveZeroY < root.y ? edgeAboveZeroY + tY : edgeAboveZeroY - tY;\n }\n\n return {\n amplitude: getSignificantDecimals(amplitude),\n freq: getSignificantDecimals(freq),\n min: getSignificantDecimals(edge.y < root.y ? edge.y : edge.y - tY),\n max: getSignificantDecimals(edge.y < root.y ? edge.y + tY : edge.y),\n edgeAboveZeroX: getSignificantDecimals(edgeAboveZeroX),\n edgeAboveZeroY: getSignificantDecimals(edgeAboveZeroY),\n };\n };\n\n const studentAnswerBpY = getPoints(sine1);\n const correctAnswerBpY = getPoints(sine2);\n\n const {\n amplitude: amplitude1,\n freq: freq1,\n min: min1,\n max: max1,\n edgeAboveZeroX: edgeAboveZeroX1,\n edgeAboveZeroY: edgeAboveZeroY1,\n } = studentAnswerBpY;\n const {\n amplitude: amplitude2,\n freq: freq2,\n min: min2,\n max: max2,\n edgeAboveZeroX: edgeAboveZeroX2,\n edgeAboveZeroY: edgeAboveZeroY2,\n } = correctAnswerBpY;\n\n return (\n Math.abs(amplitude1) === Math.abs(amplitude2) &&\n Math.abs(freq1) === Math.abs(freq2) &&\n min1 === min2 &&\n max1 === max2 &&\n edgeAboveZeroX1 === edgeAboveZeroX2 &&\n edgeAboveZeroY1 === edgeAboveZeroY2\n );\n // rootDiff1 === rootDiff2);\n};\n\nexport const equalParabola = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = {...rootP1};\n rootP2 = {...rootP2};\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const p1mirrorEdge = { x: rootP1.x - (p1edge.x - rootP1.x), y: p1edge.y };\n const p2mirrorEdge = { x: rootP2.x - (p2edge.x - rootP2.x), y: p2edge.y };\n\n if (!edgeP1 || !edgeP2) return false;\n\n const { a: a1, b: b1, c: c1 } = pointsToABC(rootP1, edgeP1, p1mirrorEdge);\n const { a: a2, b: b2, c: c2 } = pointsToABC(rootP2, edgeP2, p2mirrorEdge);\n\n // sometimes numbers have this form: 1.00000000002 because of calculations, we have to round them\n const round = (number) => Math.round(number * 10000) / 10000;\n\n return round(a1) === round(a2) && round(b1) === round(b2) && round(c1) === round(c2);\n};\n\n/*\n * Function to check if given two points for absolute function\n * for correct answer and student answer are equal or not.\n * @param p1 - student answer\n * @param p2 - correct answer\n * */\nexport const equalAbsolute = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = { ...rootP1 };\n rootP2 = { ...rootP2 };\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const p1a1 = pointsToAForAbsolute(rootP1, p1edge);\n const p2a2 = pointsToAForAbsolute(rootP2, p2edge);\n\n // if both root and a value are equal\n return isEqual(rootP2, rootP1) && isEqual(p2a2, p1a1);\n};\n\n/*\n * Function to check if given two points for exponential function\n * for correct answer and student answer are equal or not.\n * @param p1 - student answer\n * @param p2 - correct answer\n * */\nexport const equalExponential = (p1, p2) => {\n const { edge: edgeP1 } = p1;\n const { edge: edgeP2 } = p2;\n let { root: rootP1 } = p1;\n let { root: rootP2 } = p2;\n\n rootP1 = { ...rootP1 };\n rootP2 = { ...rootP2 };\n\n const p1edge = edgeP1 || { ...rootP1 };\n const p2edge = edgeP2 || { ...rootP2 };\n\n const { a1, b1 } = pointsToABForExponential(rootP1, p1edge);\n const { a2, b2 } = pointsToABForExponential(rootP2, p2edge);\n\n // if both a and b value are equal\n return isEqual(a2, a1) && isEqual(b2, b1);\n};\n\nexport const equalMarks = {\n circle: (sessAnswer, mark) => equalCircle(sessAnswer, mark),\n line: (sessAnswer, mark) => equalLine(sessAnswer, mark),\n parabola: (sessAnswer, mark) => equalParabola(sessAnswer, mark),\n absolute: (sessAnswer, mark) => equalAbsolute(sessAnswer, mark),\n exponential: (sessAnswer, mark) => equalExponential(sessAnswer, mark),\n point: (sessAnswer, mark) => equalPoint(sessAnswer, mark),\n polygon: (sessAnswer, poly) => equalPolygon(sessAnswer, poly),\n ray: (sessAnswer, mark) => equalRay(sessAnswer, mark),\n segment: (sessAnswer, mark) => equalSegment(sessAnswer, mark),\n sine: (sessAnswer, mark) => equalSine(sessAnswer, mark),\n vector: (sessAnswer, mark) => equalVector(sessAnswer, mark),\n};\n\nconst completePoint = (point) => point && Number.isFinite(point.x) && Number.isFinite(point.y);\nconst completeFromTo = (item) => item && completeMark.point(item.from) && completeMark.point(item.to);\nconst completeRootEdge = (item) => item && completeMark.point(item.edge) && completeMark.point(item.root);\nconst completePoints = (item) =>\n item &&\n item.points &&\n item.points.length &&\n (item.points.filter((point) => completePoint(point)) || []).length === item.points.length;\n\nconst completeMark = {\n point: completePoint,\n line: completeFromTo,\n ray: completeFromTo,\n segment: completeFromTo,\n vector: completeFromTo,\n circle: completeRootEdge,\n parabola: completeRootEdge,\n absolute: completeRootEdge,\n exponential: completeRootEdge,\n sine: completeRootEdge,\n polygon: completePoints,\n};\n\nexport const removeInvalidAnswers = (answers) =>\n answers\n ? (answers || []).filter(({ type, ...answer }) => (completeMark[type] ? completeMark[type](answer) : false))\n : [];\n"],"file":"utils.js"}
|
package/controller/package.json
CHANGED
package/lib/utils.js
CHANGED
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["completePoint","point","Number","isFinite","x","y","completeFromTo","item","completeMark","from","to","completeRootEdge","edge","root","completePoints","points","length","filter","line","ray","segment","vector","circle","parabola","sine","polygon","removeInvalidAnswers","answers","type","answer"],"mappings":";;;;;;;;;;;;;AAAA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAAA,SAAWA,KAAK,IAAIC,MAAM,CAACC,QAAP,CAAgBF,KAAK,CAACG,CAAtB,CAAT,IAAqCF,MAAM,CAACC,QAAP,CAAgBF,KAAK,CAACI,CAAtB,CAAhD;AAAA,CAAtB;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,IAAD;AAAA,SAAUA,IAAI,IAAIC,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACE,IAAxB,CAAR,IAAyCD,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACG,EAAxB,CAAnD;AAAA,CAAvB;;AACA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,IAAD;AAAA,SAAUA,IAAI,IAAIC,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACK,IAAxB,CAAR,IAAyCJ,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACM,IAAxB,CAAnD;AAAA,CAAzB;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACP,IAAD;AAAA,SACrBA,IAAI,IACJA,IAAI,CAACQ,MADL,IAEAR,IAAI,CAACQ,MAAL,CAAYC,MAFZ,IAGA,CAACT,IAAI,CAACQ,MAAL,CAAYE,MAAZ,CAAmB,UAAChB,KAAD;AAAA,WAAWD,aAAa,CAACC,KAAD,CAAxB;AAAA,GAAnB,KAAuD,EAAxD,EAA4De,MAA5D,KAAuET,IAAI,CAACQ,MAAL,CAAYC,MAJ9D;AAAA,CAAvB;;AAMA,IAAMR,YAAY,GAAG;AACnBP,EAAAA,KAAK,EAAED,aADY;AAEnBkB,EAAAA,IAAI,EAAEZ,cAFa;AAGnBa,EAAAA,GAAG,EAAEb,cAHc;AAInBc,EAAAA,OAAO,EAAEd,cAJU;AAKnBe,EAAAA,MAAM,EAAEf,cALW;AAMnBgB,EAAAA,MAAM,EAAEX,gBANW;AAOnBY,EAAAA,QAAQ,EAAEZ,gBAPS;AAQnBa,EAAAA,
|
|
1
|
+
{"version":3,"sources":["../src/utils.js"],"names":["completePoint","point","Number","isFinite","x","y","completeFromTo","item","completeMark","from","to","completeRootEdge","edge","root","completePoints","points","length","filter","line","ray","segment","vector","circle","parabola","absolute","exponential","sine","polygon","removeInvalidAnswers","answers","type","answer"],"mappings":";;;;;;;;;;;;;AAAA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAAA,SAAWA,KAAK,IAAIC,MAAM,CAACC,QAAP,CAAgBF,KAAK,CAACG,CAAtB,CAAT,IAAqCF,MAAM,CAACC,QAAP,CAAgBF,KAAK,CAACI,CAAtB,CAAhD;AAAA,CAAtB;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACC,IAAD;AAAA,SAAUA,IAAI,IAAIC,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACE,IAAxB,CAAR,IAAyCD,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACG,EAAxB,CAAnD;AAAA,CAAvB;;AACA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACJ,IAAD;AAAA,SAAUA,IAAI,IAAIC,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACK,IAAxB,CAAR,IAAyCJ,YAAY,CAACP,KAAb,CAAmBM,IAAI,CAACM,IAAxB,CAAnD;AAAA,CAAzB;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACP,IAAD;AAAA,SACrBA,IAAI,IACJA,IAAI,CAACQ,MADL,IAEAR,IAAI,CAACQ,MAAL,CAAYC,MAFZ,IAGA,CAACT,IAAI,CAACQ,MAAL,CAAYE,MAAZ,CAAmB,UAAChB,KAAD;AAAA,WAAWD,aAAa,CAACC,KAAD,CAAxB;AAAA,GAAnB,KAAuD,EAAxD,EAA4De,MAA5D,KAAuET,IAAI,CAACQ,MAAL,CAAYC,MAJ9D;AAAA,CAAvB;;AAMA,IAAMR,YAAY,GAAG;AACnBP,EAAAA,KAAK,EAAED,aADY;AAEnBkB,EAAAA,IAAI,EAAEZ,cAFa;AAGnBa,EAAAA,GAAG,EAAEb,cAHc;AAInBc,EAAAA,OAAO,EAAEd,cAJU;AAKnBe,EAAAA,MAAM,EAAEf,cALW;AAMnBgB,EAAAA,MAAM,EAAEX,gBANW;AAOnBY,EAAAA,QAAQ,EAAEZ,gBAPS;AAQnBa,EAAAA,QAAQ,EAAEb,gBARS;AASnBc,EAAAA,WAAW,EAAEd,gBATM;AAUnBe,EAAAA,IAAI,EAAEf,gBAVa;AAWnBgB,EAAAA,OAAO,EAAEb;AAXU,CAArB;;AAcO,IAAMc,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,OAAD;AAAA,SAClCA,OAAO,GACH,CAACA,OAAO,IAAI,EAAZ,EAAgBZ,MAAhB,CAAuB;AAAA,QAAGa,IAAH,QAAGA,IAAH;AAAA,QAAYC,MAAZ;AAAA,WAA0BvB,YAAY,CAACsB,IAAD,CAAZ,GAAqBtB,YAAY,CAACsB,IAAD,CAAZ,CAAmBC,MAAnB,CAArB,GAAkD,KAA5E;AAAA,GAAvB,CADG,GAEH,EAH8B;AAAA,CAA7B","sourcesContent":["const completePoint = (point) => point && Number.isFinite(point.x) && Number.isFinite(point.y);\nconst completeFromTo = (item) => item && completeMark.point(item.from) && completeMark.point(item.to);\nconst completeRootEdge = (item) => item && completeMark.point(item.edge) && completeMark.point(item.root);\nconst completePoints = (item) =>\n item &&\n item.points &&\n item.points.length &&\n (item.points.filter((point) => completePoint(point)) || []).length === item.points.length;\n\nconst completeMark = {\n point: completePoint,\n line: completeFromTo,\n ray: completeFromTo,\n segment: completeFromTo,\n vector: completeFromTo,\n circle: completeRootEdge,\n parabola: completeRootEdge,\n absolute: completeRootEdge,\n exponential: completeRootEdge,\n sine: completeRootEdge,\n polygon: completePoints,\n};\n\nexport const removeInvalidAnswers = (answers) =>\n answers\n ? (answers || []).filter(({ type, ...answer }) => (completeMark[type] ? completeMark[type](answer) : false))\n : [];\n"],"file":"utils.js"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"repository": "pie-framework/pie-elements",
|
|
7
|
-
"version": "5.1.2-next.
|
|
7
|
+
"version": "5.1.2-next.25+658a55358",
|
|
8
8
|
"description": "",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@material-ui/core": "^3.9.2",
|
|
15
15
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
16
|
-
"@pie-lib/pie-toolbox": "1.4.
|
|
16
|
+
"@pie-lib/pie-toolbox": "1.4.8",
|
|
17
17
|
"classnames": "^2.2.5",
|
|
18
18
|
"debug": "^4.1.1",
|
|
19
19
|
"react": "^16.8.1",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
|
-
"gitHead": "
|
|
24
|
+
"gitHead": "658a55358181271b508f7d550467eefadcd71544",
|
|
25
25
|
"main": "lib/index.js",
|
|
26
26
|
"module": "src/index.js"
|
|
27
27
|
}
|