@pie-element/graphing 4.13.3 → 4.13.4-next.47

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.
@@ -9,9 +9,9 @@
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
11
  "@pie-framework/pie-configure-events": "^1.3.0",
12
- "@pie-lib/config-ui": "^11.6.5",
13
- "@pie-lib/editable-html": "^9.5.24",
14
- "@pie-lib/graphing": "^2.12.26",
12
+ "@pie-lib/config-ui": "^11.6.6",
13
+ "@pie-lib/editable-html": "^9.5.25",
14
+ "@pie-lib/graphing": "^2.12.27",
15
15
  "@pie-lib/math-rendering": "^2.5.14",
16
16
  "classnames": "^2.2.5",
17
17
  "debug": "^4.1.1",
@@ -328,8 +328,8 @@ var createCorrectResponseSession = function createCorrectResponseSession(questio
328
328
  var marks = [];
329
329
 
330
330
  if (answers && Object.values(answers)) {
331
- var firstCorrectAnswer = Object.values(answers)[0] || {};
332
- marks = firstCorrectAnswer.marks || [];
331
+ var correctAnswer = answers.correctAnswer || Object.values(answers)[0] || {};
332
+ marks = correctAnswer.marks || [];
333
333
  }
334
334
 
335
335
  resolve({
@@ -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","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","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","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","firstCorrectAnswer","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 } from './utils';\n\nimport { partialScoring } from '@pie-lib/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 return 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\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\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.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 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: env.mode === 'evaluate' && !isEmpty(answers) && answers.correctAnswer &&\n answers.correctAnswer.marks && !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 (!isEmpty(answers) && answers.correctAnswer &&\n answers.correctAnswer.marks && !isEmpty(answers.correctAnswer.marks)) {\n const { answersCorrected, bestScoreAnswerKey, bestScore } =\n 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 (env.mode !== 'evaluate' || isEmpty(question.answers) ||\n (question.answers && question.answers.correctAnswer && isEmpty(question.answers.correctAnswer.marks))) {\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 firstCorrectAnswer = Object.values(answers)[0] || {};\n\n marks = firstCorrectAnswer.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","compareMarks","mark1","mark2","type","equalMarks","getAnswerCorrected","sessionAnswers","correctAnswers","marks","reduce","correctedAnswer","answer","answerIsCorrect","find","mark","correctness","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","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 } from './utils';\n\nimport { partialScoring } from '@pie-lib/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 return 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\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\n const maxScore = marks.length;\n let score = correctMarks.length;\n\n // if extra placements\n if (correctedAnswer.length > maxScore) {\n score -= correctedAnswer.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 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/lib/main.js CHANGED
@@ -119,7 +119,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
119
119
  show: showToggle,
120
120
  toggled: showingCorrect,
121
121
  onToggle: this.toggleCorrect
122
- }), showingCorrect && showToggle && /*#__PURE__*/_react["default"].createElement(_graphing.GraphContainer, {
122
+ }), showingCorrect && showToggle ? /*#__PURE__*/_react["default"].createElement(_graphing.GraphContainer, {
123
123
  className: classes.graph,
124
124
  axesSettings: {
125
125
  includeArrows: arrows
@@ -127,6 +127,8 @@ var Main = /*#__PURE__*/function (_React$Component) {
127
127
  backgroundMarks: backgroundMarks,
128
128
  coordinatesOnHover: coordinatesOnHover,
129
129
  disabled: true,
130
+ disabledLabels: true,
131
+ disabledTitle: true,
130
132
  domain: domain,
131
133
  labels: labels,
132
134
  marks: correctResponse.map(function (i) {
@@ -136,10 +138,12 @@ var Main = /*#__PURE__*/function (_React$Component) {
136
138
  }),
137
139
  onChangeMarks: onAnswersChange,
138
140
  range: range,
141
+ showLabels: labelsEnabled,
142
+ showTitle: titleEnabled,
139
143
  size: size,
140
144
  title: title,
141
145
  toolbarTools: toolbarTools
142
- }), /*#__PURE__*/_react["default"].createElement(_graphing.GraphContainer, {
146
+ }) : /*#__PURE__*/_react["default"].createElement(_graphing.GraphContainer, {
143
147
  className: classes.graph,
144
148
  axesSettings: {
145
149
  includeArrows: arrows
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Main","showingCorrect","setState","props","model","classes","onAnswersChange","session","state","answer","answersCorrected","arrows","backgroundMarks","coordinatesOnHover","correctResponse","defaultTool","disabled","domain","labels","labelsEnabled","prompt","range","rationale","size","showToggle","title","titleEnabled","teacherInstructions","toolbarTools","marks","mainContainer","hidden","visible","toggleCorrect","graph","includeArrows","map","i","correctness","React","Component","PropTypes","object","isRequired","func","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","marginTop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;IAEaA,I;;;;;;;;;;;;;;;8FAYH;AAAEC,MAAAA,cAAc,EAAE;AAAlB,K;sGAEQ,UAACA,cAAD;AAAA,aAAoB,MAAKC,QAAL,CAAc;AAAED,QAAAA,cAAc,EAAdA;AAAF,OAAd,CAApB;AAAA,K;;;;;;WAEhB,kBAAS;AACP,wBAAqD,KAAKE,KAA1D;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,OAAf,eAAeA,OAAf;AAAA,UAAwBC,eAAxB,eAAwBA,eAAxB;AAAA,UAAyCC,OAAzC,eAAyCA,OAAzC;AACA,UAAQN,cAAR,GAA2B,KAAKO,KAAhC,CAAQP,cAAR;;AACA,iBAAmBM,OAAO,IAAI,EAA9B;AAAA,UAAQE,MAAR,QAAQA,MAAR;;AACA,kBAoBIL,KAAK,IAAI,EApBb;AAAA,UACEM,gBADF,SACEA,gBADF;AAAA,UAEEC,MAFF,SAEEA,MAFF;AAAA,UAGEC,eAHF,SAGEA,eAHF;AAAA,UAIEC,kBAJF,SAIEA,kBAJF;AAAA,UAKEC,eALF,SAKEA,eALF;AAAA,UAMEC,WANF,SAMEA,WANF;AAAA,UAOEC,QAPF,SAOEA,QAPF;AAAA,UAQEC,MARF,SAQEA,MARF;AAAA,UASEC,MATF,SASEA,MATF;AAAA,UAUEC,aAVF,SAUEA,aAVF;AAAA,UAWEC,MAXF,SAWEA,MAXF;AAAA,UAYEC,KAZF,SAYEA,KAZF;AAAA,UAaEC,SAbF,SAaEA,SAbF;AAAA,UAcEC,IAdF,SAcEA,IAdF;AAAA,UAeEC,UAfF,SAeEA,UAfF;AAAA,UAgBEC,KAhBF,SAgBEA,KAhBF;AAAA,UAiBEC,YAjBF,SAiBEA,YAjBF;AAAA,UAkBEC,mBAlBF,SAkBEA,mBAlBF;AAAA,UAmBEC,YAnBF,SAmBEA,YAnBF;;AAqBA,UAAMC,KAAK,GAAGnB,gBAAgB,IAAID,MAApB,IAA8B,EAA5C;AAEA,0BACE;AAAK,QAAA,SAAS,EAAEJ,OAAO,CAACyB;AAAxB,SACGH,mBAAmB,IAAI,uBAAQA,mBAAR,CAAvB,iBACC,gCAAC,qBAAD;AACE,QAAA,SAAS,EAAEtB,OAAO,CAACsB,mBADrB;AAEE,QAAA,MAAM,EAAE;AAAEI,UAAAA,MAAM,EAAE,2BAAV;AAAuCC,UAAAA,OAAO,EAAE;AAAhD;AAFV,sBAIE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEL;AAAvB,QAJF,CAFJ,EAUGP,MAAM,iBAAI,gCAAC,uBAAD;AAAe,QAAA,SAAS,EAAC,QAAzB;AAAkC,QAAA,MAAM,EAAEA;AAA1C,QAVb,eAYE,gCAAC,+BAAD;AAAqB,QAAA,IAAI,EAAEI,UAA3B;AAAuC,QAAA,OAAO,EAAEvB,cAAhD;AAAgE,QAAA,QAAQ,EAAE,KAAKgC;AAA/E,QAZF,EAcGhC,cAAc,IAAIuB,UAAlB,iBACC,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAEnB,OAAO,CAAC6B,KADrB;AAEE,QAAA,YAAY,EAAE;AAAEC,UAAAA,aAAa,EAAExB;AAAjB,SAFhB;AAGE,QAAA,eAAe,EAAEC,eAHnB;AAIE,QAAA,kBAAkB,EAAEC,kBAJtB;AAKE,QAAA,QAAQ,EAAE,IALZ;AAME,QAAA,MAAM,EAAEI,MANV;AAOE,QAAA,MAAM,EAAEC,MAPV;AAQE,QAAA,KAAK,EAAEJ,eAAe,CAACsB,GAAhB,CAAoB,UAACC,CAAD;AAAA,iDAAaA,CAAb;AAAgBC,YAAAA,WAAW,EAAE;AAA7B;AAAA,SAApB,CART;AASE,QAAA,aAAa,EAAEhC,eATjB;AAUE,QAAA,KAAK,EAAEe,KAVT;AAWE,QAAA,IAAI,EAAEE,IAXR;AAYE,QAAA,KAAK,EAAEE,KAZT;AAaE,QAAA,YAAY,EAAEG;AAbhB,QAfJ,eAgCE,gCAAC,wBAAD;AACE,QAAA,SAAS,EAAEvB,OAAO,CAAC6B,KADrB;AAEE,QAAA,YAAY,EAAE;AAAEC,UAAAA,aAAa,EAAExB;AAAjB,SAFhB;AAGE,QAAA,eAAe,EAAEC,eAHnB;AAIE,QAAA,kBAAkB,EAAEC,kBAJtB;AAKE,QAAA,WAAW,EAAEE,WALf;AAME,QAAA,QAAQ,EAAEC,QANZ;AAOE,QAAA,cAAc,EAAE,IAPlB;AAQE,QAAA,aAAa,EAAE,IARjB;AASE,QAAA,MAAM,EAAEC,MATV;AAUE,QAAA,MAAM,EAAEC,MAVV;AAWE,QAAA,KAAK,EAAEW,KAXT;AAYE,QAAA,aAAa,EAAEvB,eAZjB;AAaE,QAAA,KAAK,EAAEe,KAbT;AAcE,QAAA,UAAU,EAAEF,aAdd;AAeE,QAAA,SAAS,EAAEO,YAfb;AAgBE,QAAA,IAAI,EAAEH,IAhBR;AAiBE,QAAA,KAAK,EAAEE,KAjBT;AAkBE,QAAA,YAAY,EAAEG;AAlBhB,QAhCF,EAqDGN,SAAS,IAAI,uBAAQA,SAAR,CAAb,iBACC,gCAAC,qBAAD;AAAa,QAAA,MAAM,EAAE;AAAES,UAAAA,MAAM,EAAE,gBAAV;AAA4BC,UAAAA,OAAO,EAAE;AAArC;AAArB,sBACE,gCAAC,uBAAD;AAAe,QAAA,MAAM,EAAEV;AAAvB,QADF,CAtDJ,CADF;AA6DD;;;EAxGuBiB,kBAAMC,S;;;iCAAnBxC,I,eACQ;AACjBK,EAAAA,OAAO,EAAEoC,sBAAUC,MADF;AAEjBtC,EAAAA,KAAK,EAAEqC,sBAAUC,MAAV,CAAiBC,UAFP;AAGjBpC,EAAAA,OAAO,EAAEkC,sBAAUC,MAAV,CAAiBC,UAHT;AAIjBrC,EAAAA,eAAe,EAAEmC,sBAAUG;AAJV,C;iCADR5C,I,kBAQW;AACpBK,EAAAA,OAAO,EAAE;AADW,C;;AAmGxB,IAAMwC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBhB,IAAAA,aAAa,EAAE;AACbiB,MAAAA,KAAK,EAAEA,gBAAMC,IAAN,EADM;AAEbC,MAAAA,eAAe,EAAEF,gBAAMG,UAAN;AAFJ,KADU;AAKzBvB,IAAAA,mBAAmB,EAAE;AACnBwB,MAAAA,YAAY,EAAEL,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB;AADhB,KALI;AAQzBnB,IAAAA,KAAK,EAAE;AACLoB,MAAAA,SAAS,EAAER,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB,CAD3B;AAELF,MAAAA,YAAY,EAAEL,KAAK,CAACM,OAAN,CAAcC,IAAd,GAAqB;AAF9B;AARkB,GAAZ;AAAA,CAAf;;eAce,wBAAWR,MAAX,EAAmB7C,IAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer } from '@pie-lib/graphing';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n };\n\n static defaultProps = {\n classes: {},\n };\n\n state = { showingCorrect: false };\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { model, classes, onAnswersChange, session } = this.props;\n const { showingCorrect } = this.state;\n const { answer } = session || {};\n const {\n answersCorrected,\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n correctResponse,\n defaultTool,\n disabled,\n domain,\n labels,\n labelsEnabled,\n prompt,\n range,\n rationale,\n size,\n showToggle,\n title,\n titleEnabled,\n teacherInstructions,\n toolbarTools,\n } = model || {};\n const marks = answersCorrected || answer || [];\n\n return (\n <div className={classes.mainContainer}>\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.teacherInstructions}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && <PreviewPrompt className=\"prompt\" prompt={prompt} />}\n\n <CorrectAnswerToggle show={showToggle} toggled={showingCorrect} onToggle={this.toggleCorrect} />\n\n {showingCorrect && showToggle && (\n <GraphContainer\n className={classes.graph}\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n disabled={true}\n domain={domain}\n labels={labels}\n marks={correctResponse.map((i) => ({ ...i, correctness: 'correct' }))}\n onChangeMarks={onAnswersChange}\n range={range}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n />\n )}\n\n <GraphContainer\n className={classes.graph}\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n defaultTool={defaultTool}\n disabled={disabled}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n />\n\n {rationale && hasText(rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n graph: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["Main","showingCorrect","setState","props","model","classes","onAnswersChange","session","state","answer","answersCorrected","arrows","backgroundMarks","coordinatesOnHover","correctResponse","defaultTool","disabled","domain","labels","labelsEnabled","prompt","range","rationale","size","showToggle","title","titleEnabled","teacherInstructions","toolbarTools","marks","mainContainer","hidden","visible","toggleCorrect","graph","includeArrows","map","i","correctness","React","Component","PropTypes","object","isRequired","func","styles","theme","color","text","backgroundColor","background","marginBottom","spacing","unit","marginTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer } from '@pie-lib/graphing';\nimport { color, Collapsible, hasText, PreviewPrompt } from '@pie-lib/render-ui';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\n\nexport class Main extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n model: PropTypes.object.isRequired,\n session: PropTypes.object.isRequired,\n onAnswersChange: PropTypes.func,\n };\n\n static defaultProps = {\n classes: {},\n };\n\n state = { showingCorrect: false };\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n render() {\n const { model, classes, onAnswersChange, session } = this.props;\n const { showingCorrect } = this.state;\n const { answer } = session || {};\n const {\n answersCorrected,\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n correctResponse,\n defaultTool,\n disabled,\n domain,\n labels,\n labelsEnabled,\n prompt,\n range,\n rationale,\n size,\n showToggle,\n title,\n titleEnabled,\n teacherInstructions,\n toolbarTools,\n } = model || {};\n const marks = answersCorrected || answer || [];\n\n return (\n <div className={classes.mainContainer}>\n {teacherInstructions && hasText(teacherInstructions) && (\n <Collapsible\n className={classes.teacherInstructions}\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n )}\n\n {prompt && <PreviewPrompt className=\"prompt\" prompt={prompt} />}\n\n <CorrectAnswerToggle show={showToggle} toggled={showingCorrect} onToggle={this.toggleCorrect} />\n\n {showingCorrect && showToggle ? (\n <GraphContainer\n className={classes.graph}\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n disabled={true}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={correctResponse.map((i) => ({ ...i, correctness: 'correct' }))}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n />\n ) : (\n <GraphContainer\n className={classes.graph}\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n defaultTool={defaultTool}\n disabled={disabled}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n labels={labels}\n marks={marks}\n onChangeMarks={onAnswersChange}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={size}\n title={title}\n toolbarTools={toolbarTools}\n />\n )}\n\n {rationale && hasText(rationale) && (\n <Collapsible labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}>\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n graph: {\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nexport default withStyles(styles)(Main);\n"],"file":"main.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "4.13.3",
7
+ "version": "4.13.4-next.47+fb4806179",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -13,10 +13,10 @@
13
13
  "dependencies": {
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/pie-player-events": "^0.1.0",
16
- "@pie-lib/correct-answer-toggle": "2.3.72",
17
- "@pie-lib/graphing": "^2.12.26",
16
+ "@pie-lib/correct-answer-toggle": "2.3.73",
17
+ "@pie-lib/graphing": "^2.12.27",
18
18
  "@pie-lib/math-rendering": "^2.5.14",
19
- "@pie-lib/render-ui": "^4.14.22",
19
+ "@pie-lib/render-ui": "^4.14.23",
20
20
  "classnames": "^2.2.5",
21
21
  "debug": "^4.1.1",
22
22
  "react": "^16.8.1",
@@ -24,7 +24,7 @@
24
24
  },
25
25
  "author": "",
26
26
  "license": "ISC",
27
- "gitHead": "277aa476d6568b7e01b9a9b71108f931b4e8ed31",
27
+ "gitHead": "fb4806179f90b482466ef935c014a26958bcc722",
28
28
  "main": "lib/index.js",
29
29
  "module": "src/index.js"
30
30
  }