@pie-element/inline-dropdown 3.10.2 → 3.10.3

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/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.10.3](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown@3.10.2...@pie-element/inline-dropdown@3.10.3) (2022-03-08)
7
+
8
+ **Note:** Version bump only for package @pie-element/inline-dropdown
9
+
10
+
11
+
12
+
13
+
6
14
  ## [3.10.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown@3.10.1...@pie-element/inline-dropdown@3.10.2) (2022-02-21)
7
15
 
8
16
  **Note:** Version bump only for package @pie-element/inline-dropdown
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.6.12](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-configure@3.6.11...@pie-element/inline-dropdown-configure@3.6.12) (2022-03-08)
7
+
8
+ **Note:** Version bump only for package @pie-element/inline-dropdown-configure
9
+
10
+
11
+
12
+
13
+
6
14
  ## [3.6.11](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-configure@3.6.10...@pie-element/inline-dropdown-configure@3.6.11) (2022-02-21)
7
15
 
8
16
  **Note:** Version bump only for package @pie-element/inline-dropdown-configure
@@ -18,7 +18,8 @@ var _default = {
18
18
  choiceRationaleEnabled: true,
19
19
  teacherInstructionsEnabled: true,
20
20
  studentInstructionsEnabled: true,
21
- toolbarEditorPosition: 'bottom'
21
+ toolbarEditorPosition: 'bottom',
22
+ displayType: 'block'
22
23
  },
23
24
  configuration: {
24
25
  prompt: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","shuffle","markup","choices","alternateResponse","promptEnabled","rationaleEnabled","choiceRationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","configuration","settings","label","lockChoiceOrder","partialScoring","rationale","teacherInstructions","choiceRationale"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,4CAHH;AAILC,IAAAA,OAAO,EAAE,IAJJ;AAKLC,IAAAA,MAAM,EAAE,EALH;AAMLC,IAAAA,OAAO,EAAE,EANJ;AAOLC,IAAAA,iBAAiB,EAAE,EAPd;AAQLC,IAAAA,aAAa,EAAE,IARV;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,sBAAsB,EAAE,IAVnB;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE;AAblB,GADM;AAgBbC,EAAAA,aAAa,EAAE;AACbX,IAAAA,MAAM,EAAE;AACNY,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KALJ;AASbE,IAAAA,cAAc,EAAE;AACdH,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KATH;AAabG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAbE;AAiBbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAjBR;AAqBbK,IAAAA,eAAe,EAAE;AACfN,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KArBJ;AAyBbH,IAAAA,qBAAqB,EAAC;AACpBE,MAAAA,QAAQ,EAAE,KADU;AAEpBC,MAAAA,KAAK,EAAE;AAFa;AAzBT;AAhBF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the dropdowns to complete the sentence',\n shuffle: true,\n markup: '',\n choices: {},\n alternateResponse: {},\n promptEnabled: true,\n rationaleEnabled: true,\n choiceRationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom'\n },\n configuration: {\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n choiceRationale: {\n settings: true,\n label: 'Choice Rationale'\n },\n toolbarEditorPosition:{\n settings: false,\n label: 'Toolbar Editor Position'\n },\n }\n};\n"],"file":"defaults.js"}
1
+ {"version":3,"sources":["../src/defaults.js"],"names":["model","disabled","mode","prompt","shuffle","markup","choices","alternateResponse","promptEnabled","rationaleEnabled","choiceRationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","toolbarEditorPosition","displayType","configuration","settings","label","lockChoiceOrder","partialScoring","rationale","teacherInstructions","choiceRationale"],"mappings":";;;;;;eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,QAAQ,EAAE,KADL;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,MAAM,EAAE,4CAHH;AAILC,IAAAA,OAAO,EAAE,IAJJ;AAKLC,IAAAA,MAAM,EAAE,EALH;AAMLC,IAAAA,OAAO,EAAE,EANJ;AAOLC,IAAAA,iBAAiB,EAAE,EAPd;AAQLC,IAAAA,aAAa,EAAE,IARV;AASLC,IAAAA,gBAAgB,EAAE,IATb;AAULC,IAAAA,sBAAsB,EAAE,IAVnB;AAWLC,IAAAA,0BAA0B,EAAE,IAXvB;AAYLC,IAAAA,0BAA0B,EAAE,IAZvB;AAaLC,IAAAA,qBAAqB,EAAE,QAblB;AAcLC,IAAAA,WAAW,EAAE;AAdR,GADM;AAiBbC,EAAAA,aAAa,EAAE;AACbZ,IAAAA,MAAM,EAAE;AACNa,MAAAA,QAAQ,EAAE,IADJ;AAENC,MAAAA,KAAK,EAAE;AAFD,KADK;AAKbC,IAAAA,eAAe,EAAE;AACfF,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KALJ;AASbE,IAAAA,cAAc,EAAE;AACdH,MAAAA,QAAQ,EAAE,KADI;AAEdC,MAAAA,KAAK,EAAE;AAFO,KATH;AAabG,IAAAA,SAAS,EAAE;AACTJ,MAAAA,QAAQ,EAAE,IADD;AAETC,MAAAA,KAAK,EAAE;AAFE,KAbE;AAiBbI,IAAAA,mBAAmB,EAAE;AACnBL,MAAAA,QAAQ,EAAE,IADS;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAjBR;AAqBbK,IAAAA,eAAe,EAAE;AACfN,MAAAA,QAAQ,EAAE,IADK;AAEfC,MAAAA,KAAK,EAAE;AAFQ,KArBJ;AAyBbJ,IAAAA,qBAAqB,EAAC;AACpBG,MAAAA,QAAQ,EAAE,KADU;AAEpBC,MAAAA,KAAK,EAAE;AAFa;AAzBT;AAjBF,C","sourcesContent":["export default {\n model: {\n disabled: false,\n mode: 'gather',\n prompt: 'Use the dropdowns to complete the sentence',\n shuffle: true,\n markup: '',\n choices: {},\n alternateResponse: {},\n promptEnabled: true,\n rationaleEnabled: true,\n choiceRationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n displayType: 'block'\n },\n configuration: {\n prompt: {\n settings: true,\n label: 'Prompt'\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order'\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring'\n },\n rationale: {\n settings: true,\n label: 'Rationale'\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions'\n },\n choiceRationale: {\n settings: true,\n label: 'Choice Rationale'\n },\n toolbarEditorPosition:{\n settings: false,\n label: 'Toolbar Editor Position'\n },\n }\n};\n"],"file":"defaults.js"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/inline-dropdown-configure",
3
- "version": "3.6.11",
3
+ "version": "3.6.12",
4
4
  "private": true,
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -8,8 +8,8 @@
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@material-ui/icons": "^3.0.1",
10
10
  "@pie-framework/pie-configure-events": "^1.2.0",
11
- "@pie-lib/config-ui": "^10.10.20",
12
- "@pie-lib/editable-html": "^7.18.0",
11
+ "@pie-lib/config-ui": "^10.10.22",
12
+ "@pie-lib/editable-html": "^7.19.1",
13
13
  "@pie-lib/math-rendering": "^2.3.12",
14
14
  "classnames": "^2.2.6",
15
15
  "debug": "^3.1.0",
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.3.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-controller@3.3.3...@pie-element/inline-dropdown-controller@3.3.4) (2022-03-08)
7
+
8
+ **Note:** Version bump only for package @pie-element/inline-dropdown-controller
9
+
10
+
11
+
12
+
13
+
6
14
  # [3.3.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/inline-dropdown-controller@3.2.17...@pie-element/inline-dropdown-controller@3.3.0) (2021-09-20)
7
15
 
8
16
 
@@ -189,6 +189,7 @@ function model(question, session, env, updateSession) {
189
189
  disabled: env.mode !== 'gather',
190
190
  mode: env.mode,
191
191
  prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
192
+ displayType: normalizedQuestion.displayType,
192
193
  markup: normalizedQuestion.markup,
193
194
  choices: choices,
194
195
  feedback: feedback,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["getFeedback","correct","normalize","question","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","choiceRationaleEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","value","choices","obj","area","key","choice","feedback","mode","allCorrectResponses","respAreaLength","Object","keys","length","correctResponses","i","result","answer","correctChoice","isCorrect","lockChoiceOrder","teacherInstructions","rationale","choicesWillNullRationales","reduce","acc","currentValue","map","role","out","disabled","prompt","markup","responseCorrect","getScore","undefined","config","maxScore","correctCount","total","str","toFixed","parseFloat","outcome","score","empty","partialScoringEnabled","partialScoring","enabled","Math","floor","createCorrectResponseSession","forEach","correctChoices","filter","c","id"],"mappings":"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","sourcesContent":["import map from 'lodash/map';\nimport reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n lockChoices,\n getShuffledChoices,\n partialScoring,\n} from '@pie-lib/controller-utils';\n\nimport { getAllCorrectResponses } from './utils';\n\nconst getFeedback = (correct) => {\n if (correct) {\n return 'correct';\n }\n\n return 'incorrect';\n};\n\nexport const normalize = (question) => ({\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n choiceRationaleEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async (resolve) => {\n const normalizedQuestion = normalize(question);\n const { value = {} } = session || {};\n let choices = reduce(\n normalizedQuestion.choices,\n (obj, area, key) => {\n obj[key] = map(area, (choice) => choice);\n\n return obj;\n },\n {}\n );\n\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const allCorrectResponses = getAllCorrectResponses(normalizedQuestion);\n const respAreaLength = Object.keys(allCorrectResponses).length;\n let correctResponses = 0;\n\n for (let i = 0; i < respAreaLength; i++) {\n const result = reduce(\n allCorrectResponses,\n (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n const correctChoice = choices[i] || '';\n const isCorrect =\n answer && correctChoice && correctChoice === answer;\n\n obj.feedback[key] = getFeedback(isCorrect);\n\n if (isCorrect) {\n obj.correctResponses += 1;\n }\n\n return obj;\n },\n { correctResponses: 0, feedback: {} }\n );\n\n if (result.correctResponses >= correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === respAreaLength) {\n break;\n }\n }\n }\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n const keys = Object.keys(choices);\n let i;\n\n for (i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n choices[key] = await getShuffledChoices(\n choices[key],\n session,\n updateSession,\n 'value'\n );\n }\n }\n\n let teacherInstructions = null;\n let rationale = null;\n\n const choicesWillNullRationales = (Object.keys(choices) || []).reduce((acc, currentValue) => {\n acc[currentValue] = (choices[currentValue] || []).map(choice => ({ ...choice, rationale: null }));\n\n return acc;\n }, {});\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n rationale = normalizedQuestion.rationaleEnabled\n ? normalizedQuestion.rationale\n : null;\n teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n\n choices = normalizedQuestion.choiceRationaleEnabled\n ? normalizedQuestion.choices\n : choicesWillNullRationales;\n\n } else {\n rationale = null;\n teacherInstructions = null;\n choices = choicesWillNullRationales;\n }\n\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n prompt: normalizedQuestion.promptEnabled\n ? normalizedQuestion.prompt\n : null,\n markup: normalizedQuestion.markup,\n choices,\n feedback,\n\n responseCorrect:\n env.mode === 'evaluate'\n ? getScore(normalizedQuestion, session) === 1\n : undefined,\n rationale,\n teacherInstructions\n };\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const { value = {} } = session || {};\n const maxScore =\n config && config.choices ? Object.keys(config.choices).length : 0;\n const allCorrectResponses = getAllCorrectResponses(config);\n let correctCount = 0;\n\n for (let i = 0; i < maxScore; i++) {\n const result = reduce(\n allCorrectResponses,\n (total, choices, key) => {\n const answer = (value && value[key]) || '';\n const correctChoice = choices[i] || '';\n\n if (correctChoice && answer && correctChoice === answer) {\n return total;\n }\n\n return total - 1;\n },\n maxScore\n );\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = (correctCount / maxScore).toFixed(2);\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : Math.floor(score),\n empty: false,\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { choices } = question;\n const value = {};\n\n if (choices) {\n Object.keys(choices).forEach((key, i) => {\n const correctChoices =\n choices[key] && choices[key].filter((c) => c.correct);\n\n value[i] = correctChoices && correctChoices[0].value;\n });\n }\n\n resolve({\n id: '1',\n value,\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["getFeedback","correct","normalize","question","promptEnabled","rationaleEnabled","teacherInstructionsEnabled","studentInstructionsEnabled","choiceRationaleEnabled","model","session","env","updateSession","Promise","resolve","normalizedQuestion","value","choices","obj","area","key","choice","feedback","mode","allCorrectResponses","respAreaLength","Object","keys","length","correctResponses","i","result","answer","correctChoice","isCorrect","lockChoiceOrder","teacherInstructions","rationale","choicesWillNullRationales","reduce","acc","currentValue","map","role","out","disabled","prompt","displayType","markup","responseCorrect","getScore","undefined","config","maxScore","correctCount","total","str","toFixed","parseFloat","outcome","score","empty","partialScoringEnabled","partialScoring","enabled","Math","floor","createCorrectResponseSession","forEach","correctChoices","filter","c","id"],"mappings":"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","sourcesContent":["import map from 'lodash/map';\nimport reduce from 'lodash/reduce';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n lockChoices,\n getShuffledChoices,\n partialScoring,\n} from '@pie-lib/controller-utils';\n\nimport { getAllCorrectResponses } from './utils';\n\nconst getFeedback = (correct) => {\n if (correct) {\n return 'correct';\n }\n\n return 'incorrect';\n};\n\nexport const normalize = (question) => ({\n promptEnabled: true,\n rationaleEnabled: true,\n teacherInstructionsEnabled: true,\n studentInstructionsEnabled: true,\n choiceRationaleEnabled: true,\n ...question,\n});\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n * @param {*} updateSession - optional - a function that will set the properties passed into it on the session.\n */\nexport function model(question, session, env, updateSession) {\n return new Promise(async (resolve) => {\n const normalizedQuestion = normalize(question);\n const { value = {} } = session || {};\n let choices = reduce(\n normalizedQuestion.choices,\n (obj, area, key) => {\n obj[key] = map(area, (choice) => choice);\n\n return obj;\n },\n {}\n );\n\n let feedback = {};\n\n if (env.mode === 'evaluate') {\n const allCorrectResponses = getAllCorrectResponses(normalizedQuestion);\n const respAreaLength = Object.keys(allCorrectResponses).length;\n let correctResponses = 0;\n\n for (let i = 0; i < respAreaLength; i++) {\n const result = reduce(\n allCorrectResponses,\n (obj, choices, key) => {\n const answer = (value && value[key]) || '';\n const correctChoice = choices[i] || '';\n const isCorrect =\n answer && correctChoice && correctChoice === answer;\n\n obj.feedback[key] = getFeedback(isCorrect);\n\n if (isCorrect) {\n obj.correctResponses += 1;\n }\n\n return obj;\n },\n { correctResponses: 0, feedback: {} }\n );\n\n if (result.correctResponses >= correctResponses) {\n correctResponses = result.correctResponses;\n feedback = result.feedback;\n }\n\n if (result.correctResponses === respAreaLength) {\n break;\n }\n }\n }\n\n const lockChoiceOrder = lockChoices(normalizedQuestion, session, env);\n\n if (!lockChoiceOrder) {\n const keys = Object.keys(choices);\n let i;\n\n for (i = 0; i < keys.length; i++) {\n const key = keys[i];\n\n choices[key] = await getShuffledChoices(\n choices[key],\n session,\n updateSession,\n 'value'\n );\n }\n }\n\n let teacherInstructions = null;\n let rationale = null;\n\n const choicesWillNullRationales = (Object.keys(choices) || []).reduce(\n (acc, currentValue) => {\n acc[currentValue] = (choices[currentValue] || []).map((choice) => ({\n ...choice,\n rationale: null,\n }));\n\n return acc;\n },\n {}\n );\n\n if (\n env.role === 'instructor' &&\n (env.mode === 'view' || env.mode === 'evaluate')\n ) {\n rationale = normalizedQuestion.rationaleEnabled\n ? normalizedQuestion.rationale\n : null;\n teacherInstructions = normalizedQuestion.teacherInstructionsEnabled\n ? normalizedQuestion.teacherInstructions\n : null;\n\n choices = normalizedQuestion.choiceRationaleEnabled\n ? normalizedQuestion.choices\n : choicesWillNullRationales;\n } else {\n rationale = null;\n teacherInstructions = null;\n choices = choicesWillNullRationales;\n }\n\n const out = {\n disabled: env.mode !== 'gather',\n mode: env.mode,\n prompt: normalizedQuestion.promptEnabled\n ? normalizedQuestion.prompt\n : null,\n displayType: normalizedQuestion.displayType,\n markup: normalizedQuestion.markup,\n choices,\n feedback,\n\n responseCorrect:\n env.mode === 'evaluate'\n ? getScore(normalizedQuestion, session) === 1\n : undefined,\n rationale,\n teacherInstructions,\n };\n\n resolve(out);\n });\n}\n\nexport const getScore = (config, session) => {\n const { value = {} } = session || {};\n const maxScore =\n config && config.choices ? Object.keys(config.choices).length : 0;\n const allCorrectResponses = getAllCorrectResponses(config);\n let correctCount = 0;\n\n for (let i = 0; i < maxScore; i++) {\n const result = reduce(\n allCorrectResponses,\n (total, choices, key) => {\n const answer = (value && value[key]) || '';\n const correctChoice = choices[i] || '';\n\n if (correctChoice && answer && correctChoice === answer) {\n return total;\n }\n\n return total - 1;\n },\n maxScore\n );\n\n if (result > correctCount) {\n correctCount = result;\n }\n\n if (result === maxScore) {\n break;\n }\n }\n\n const str = (correctCount / maxScore).toFixed(2);\n\n return parseFloat(str);\n};\n\n/**\n *\n * The score is partial by default for checkbox mode, allOrNothing for radio mode.\n * To disable partial scoring for checkbox mode you either set model.partialScoring = false or env.partialScoring =\n * false. the value in `env` will override the value in `model`.\n * @param {Object} model - the main model\n * @param {boolean} model.partialScoring - is partial scoring enabled (if undefined set to to true)\n * @param {*} session\n * @param {Object} env\n * @param {boolean} env.partialScoring - is partial scoring enabled (if undefined default to true) This overrides\n * `model.partialScoring`.\n */\nexport function outcome(model, session, env = {}) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const score = getScore(model, session);\n\n resolve({\n score: partialScoringEnabled ? score : Math.floor(score),\n empty: false,\n });\n });\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { choices } = question;\n const value = {};\n\n if (choices) {\n Object.keys(choices).forEach((key, i) => {\n const correctChoices =\n choices[key] && choices[key].filter((c) => c.correct);\n\n value[i] = correctChoices && correctChoices[0].value;\n });\n }\n\n resolve({\n id: '1',\n value,\n });\n } else {\n resolve(null);\n }\n });\n};\n"],"file":"index.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/inline-dropdown-controller",
3
3
  "private": true,
4
- "version": "3.3.3",
4
+ "version": "3.3.4",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -127,6 +127,11 @@
127
127
  "type": "boolean",
128
128
  "title": "teacherInstructionsEnabled"
129
129
  },
130
+ "displayType": {
131
+ "description": "Indicates display type for the container of the pie-ui element",
132
+ "type": "string",
133
+ "title": "displayType"
134
+ },
130
135
  "toolbarEditorPosition": {
131
136
  "description": "Indicates the editor's toolbar position which can be 'bottom' or 'top'",
132
137
  "default": ": 'bottom'",
@@ -152,6 +157,7 @@
152
157
  "alternateResponses",
153
158
  "choiceRationaleEnabled",
154
159
  "choices",
160
+ "displayType",
155
161
  "element",
156
162
  "id",
157
163
  "lockChoiceOrder",
@@ -68,6 +68,10 @@ Indicates if Student Instructions are enabled
68
68
 
69
69
  Indicates if Teacher Instructions are enabled
70
70
 
71
+ # `displayType` (string, required)
72
+
73
+ Indicates display type for the container of the pie-ui element
74
+
71
75
  # `toolbarEditorPosition` (string, enum)
72
76
 
73
77
  Indicates the editor's toolbar position which can be 'bottom' or 'top'
package/lib/index.js CHANGED
@@ -54,6 +54,7 @@ var RootInlineDropdown = /*#__PURE__*/function (_HTMLElement) {
54
54
  rationale: _this._model.rationale,
55
55
  teacherInstructions: _this._model.teacherInstructions,
56
56
  disabled: _this._model.disabled,
57
+ displayType: _this._model.displayType,
57
58
  markup: _this._model.markup,
58
59
  mode: _this._model.mode,
59
60
  choices: _this._model.choices,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["RootInlineDropdown","_model","_session","elem","React","createElement","InlineDropdown","prompt","rationale","teacherInstructions","disabled","markup","mode","choices","value","feedback","onChange","changeSession","ReactDOM","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","m","ModelSetEvent","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAIA;;AACA;;;;;;IAEqBA,kB;;;;;AACnB,gCAAc;AAAA;;AAAA;AACZ;AADY,gGA4BJ,YAAM;AACd,UAAI,MAAKC,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,0BAApB,EAAoC;AAC7CC,UAAAA,MAAM,EAAE,MAAKN,MAAL,CAAYM,MADyB;AAE7CC,UAAAA,SAAS,EAAE,MAAKP,MAAL,CAAYO,SAFsB;AAG7CC,UAAAA,mBAAmB,EAAE,MAAKR,MAAL,CAAYQ,mBAHY;AAI7CC,UAAAA,QAAQ,EAAE,MAAKT,MAAL,CAAYS,QAJuB;AAK7CC,UAAAA,MAAM,EAAE,MAAKV,MAAL,CAAYU,MALyB;AAM7CC,UAAAA,IAAI,EAAE,MAAKX,MAAL,CAAYW,IAN2B;AAO7CC,UAAAA,OAAO,EAAE,MAAKZ,MAAL,CAAYY,OAPwB;AAQ7CC,UAAAA,KAAK,EAAE,MAAKZ,QAAL,CAAcY,KARwB;AAS7CC,UAAAA,QAAQ,EAAE,MAAKd,MAAL,CAAYc,QATuB;AAU7CC,UAAAA,QAAQ,EAAE,MAAKC;AAV8B,SAApC,CAAX;;AAYAC,6BAASC,MAAT,CAAgBhB,IAAhB,kDAA4B,YAAM;AAChC;AACD,SAFD;AAGD;AACF,KA9Ca;AAAA,6GAgDS,YAAM;AAC3B,YAAKiB,aAAL,CACE,IAAIC,oCAAJ,CACE,MAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,MAAKC,OAAL,IAAgB,CAAC,CAAC,MAAKA,OAAL,CAAaV,KAFjC,CADF;AAMD,KAvDa;AAAA,sGAyDE,UAAAA,KAAK,EAAI;AACvB,YAAKU,OAAL,CAAaV,KAAb,GAAqBA,KAArB;;AACA,YAAKW,oBAAL;;AACA,YAAKC,OAAL;AACD,KA7Da;AAEZ,UAAKzB,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,IAAhB;AAHY;AAIb;;;;SAED,aAAUyB,CAAV,EAAa;AACX,WAAK1B,MAAL,GAAc0B,CAAd;AACA,WAAKP,aAAL,CACE,IAAIQ,8BAAJ,CACE,KAAKN,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,OAAL,IAAgB,CAAC,CAAC,KAAKA,OAAL,CAAaV,KAFjC,EAGE,CAAC,CAAC,KAAKb,MAHT,CADF;;AAQA,WAAKyB,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKxB,QAAZ;AACD,K;SAPD,aAAY2B,CAAZ,EAAe;AACb,WAAK3B,QAAL,GAAgB2B,CAAhB;;AACA,WAAKH,OAAL;AACD;;;WAyCD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;kDAlE6CI,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelSetEvent,\n SessionChangedEvent\n} from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport InlineDropdown from './inline-dropdown';\n\nexport default class RootInlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.session && !!this.session.value,\n !!this._model\n )\n );\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(InlineDropdown, {\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n teacherInstructions: this._model.teacherInstructions,\n disabled: this._model.disabled,\n markup: this._model.markup,\n mode: this._model.mode,\n choices: this._model.choices,\n value: this._session.value,\n feedback: this._model.feedback,\n onChange: this.changeSession\n });\n ReactDOM.render(elem, this, () => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(\n new SessionChangedEvent(\n this.tagName.toLowerCase(),\n this.session && !!this.session.value\n )\n );\n };\n\n changeSession = value => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this._render();\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["RootInlineDropdown","_model","_session","elem","React","createElement","InlineDropdown","prompt","rationale","teacherInstructions","disabled","displayType","markup","mode","choices","value","feedback","onChange","changeSession","ReactDOM","render","dispatchEvent","SessionChangedEvent","tagName","toLowerCase","session","dispatchChangedEvent","_render","m","ModelSetEvent","s","HTMLElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAIA;;AACA;;;;;;IAEqBA,kB;;;;;AACnB,gCAAc;AAAA;;AAAA;AACZ;AADY,gGA4BJ,YAAM;AACd,UAAI,MAAKC,MAAL,IAAe,MAAKC,QAAxB,EAAkC;AAChC,YAAIC,IAAI,gBAAGC,kBAAMC,aAAN,CAAoBC,0BAApB,EAAoC;AAC7CC,UAAAA,MAAM,EAAE,MAAKN,MAAL,CAAYM,MADyB;AAE7CC,UAAAA,SAAS,EAAE,MAAKP,MAAL,CAAYO,SAFsB;AAG7CC,UAAAA,mBAAmB,EAAE,MAAKR,MAAL,CAAYQ,mBAHY;AAI7CC,UAAAA,QAAQ,EAAE,MAAKT,MAAL,CAAYS,QAJuB;AAK7CC,UAAAA,WAAW,EAAE,MAAKV,MAAL,CAAYU,WALoB;AAM7CC,UAAAA,MAAM,EAAE,MAAKX,MAAL,CAAYW,MANyB;AAO7CC,UAAAA,IAAI,EAAE,MAAKZ,MAAL,CAAYY,IAP2B;AAQ7CC,UAAAA,OAAO,EAAE,MAAKb,MAAL,CAAYa,OARwB;AAS7CC,UAAAA,KAAK,EAAE,MAAKb,QAAL,CAAca,KATwB;AAU7CC,UAAAA,QAAQ,EAAE,MAAKf,MAAL,CAAYe,QAVuB;AAW7CC,UAAAA,QAAQ,EAAE,MAAKC;AAX8B,SAApC,CAAX;;AAaAC,6BAASC,MAAT,CAAgBjB,IAAhB,kDAA4B,YAAM;AAChC;AACD,SAFD;AAGD;AACF,KA/Ca;AAAA,6GAiDS,YAAM;AAC3B,YAAKkB,aAAL,CACE,IAAIC,oCAAJ,CACE,MAAKC,OAAL,CAAaC,WAAb,EADF,EAEE,MAAKC,OAAL,IAAgB,CAAC,CAAC,MAAKA,OAAL,CAAaV,KAFjC,CADF;AAMD,KAxDa;AAAA,sGA0DE,UAAAA,KAAK,EAAI;AACvB,YAAKU,OAAL,CAAaV,KAAb,GAAqBA,KAArB;;AACA,YAAKW,oBAAL;;AACA,YAAKC,OAAL;AACD,KA9Da;AAEZ,UAAK1B,MAAL,GAAc,IAAd;AACA,UAAKC,QAAL,GAAgB,IAAhB;AAHY;AAIb;;;;SAED,aAAU0B,CAAV,EAAa;AACX,WAAK3B,MAAL,GAAc2B,CAAd;AACA,WAAKP,aAAL,CACE,IAAIQ,8BAAJ,CACE,KAAKN,OAAL,CAAaC,WAAb,EADF,EAEE,KAAKC,OAAL,IAAgB,CAAC,CAAC,KAAKA,OAAL,CAAaV,KAFjC,EAGE,CAAC,CAAC,KAAKd,MAHT,CADF;;AAQA,WAAK0B,OAAL;AACD;;;SAOD,eAAc;AACZ,aAAO,KAAKzB,QAAZ;AACD,K;SAPD,aAAY4B,CAAZ,EAAe;AACb,WAAK5B,QAAL,GAAgB4B,CAAhB;;AACA,WAAKH,OAAL;AACD;;;WA0CD,6BAAoB;AAClB,WAAKA,OAAL;AACD;;;kDAnE6CI,W","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {\n ModelSetEvent,\n SessionChangedEvent\n} from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport InlineDropdown from './inline-dropdown'; \n\nexport default class RootInlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(\n this.tagName.toLowerCase(),\n this.session && !!this.session.value,\n !!this._model\n )\n );\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n _render = () => {\n if (this._model && this._session) {\n let elem = React.createElement(InlineDropdown, {\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n teacherInstructions: this._model.teacherInstructions,\n disabled: this._model.disabled,\n displayType: this._model.displayType,\n markup: this._model.markup,\n mode: this._model.mode,\n choices: this._model.choices,\n value: this._session.value,\n feedback: this._model.feedback,\n onChange: this.changeSession\n });\n ReactDOM.render(elem, this, () => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent = () => {\n this.dispatchEvent(\n new SessionChangedEvent(\n this.tagName.toLowerCase(),\n this.session && !!this.session.value\n )\n );\n };\n\n changeSession = value => {\n this.session.value = value;\n this.dispatchChangedEvent();\n this._render();\n };\n\n connectedCallback() {\n this._render();\n }\n}\n"],"file":"index.js"}
@@ -100,7 +100,8 @@ var InlineDropdown = /*#__PURE__*/function (_React$Component) {
100
100
  mode = _this$props.mode,
101
101
  rationale = _this$props.rationale,
102
102
  teacherInstructions = _this$props.teacherInstructions,
103
- choices = _this$props.choices;
103
+ choices = _this$props.choices,
104
+ displayType = _this$props.displayType;
104
105
  var showCorrectAnswerToggle = mode === 'evaluate';
105
106
  var choiceRationalesHaveText = false;
106
107
  var choiceRationales = (Object.keys(choices) || []).map(function (key) {
@@ -114,7 +115,10 @@ var InlineDropdown = /*#__PURE__*/function (_React$Component) {
114
115
  }, []);
115
116
  });
116
117
  return /*#__PURE__*/_react["default"].createElement("div", {
117
- className: classes.mainContainer
118
+ className: classes.mainContainer,
119
+ style: {
120
+ display: "".concat(displayType)
121
+ }
118
122
  }, teacherInstructions && (0, _renderUi.hasText)(teacherInstructions) && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
119
123
  labels: {
120
124
  hidden: 'Show Teacher Instructions',
@@ -171,6 +175,7 @@ exports.InlineDropdown = InlineDropdown;
171
175
  disabled: _propTypes["default"].bool,
172
176
  markup: _propTypes["default"].string,
173
177
  mode: _propTypes["default"].string,
178
+ displayType: _propTypes["default"].string,
174
179
  rationale: _propTypes["default"].string,
175
180
  teacherInstructions: _propTypes["default"].string,
176
181
  choices: _propTypes["default"].object,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/inline-dropdown.jsx"],"names":["InlineDropdown","showCorrectAnswer","setState","state","nextProps","feedback","domNode","ReactDOM","findDOMNode","props","classes","prompt","mode","rationale","teacherInstructions","choices","showCorrectAnswerToggle","choiceRationalesHaveText","choiceRationales","Object","keys","map","key","reduce","acc","currentValue","push","mainContainer","hidden","visible","toggleShowCorrect","index","length","choice","choiceRationale","label","choiceRationaleLabel","correct","__html","React","Component","PropTypes","object","string","disabled","bool","markup","value","onChange","func","styles","theme","color","text","backgroundColor","background","padding","spacing","unit","display","whiteSpace","incorrect"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { InlineDropdown as DropDown } from '@pie-lib/mask-markup';\nimport {color, Collapsible, hasText, PreviewPrompt} from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nexport class InlineDropdown extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n prompt: PropTypes.string,\n disabled: PropTypes.bool,\n markup: PropTypes.string,\n mode: PropTypes.string,\n rationale: PropTypes.string,\n teacherInstructions: PropTypes.string,\n choices: PropTypes.object,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func\n };\n\n static defaultProps = {\n value: {}\n };\n\n state = {\n showCorrectAnswer: false\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n }\n\n componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const { classes, prompt, mode, rationale, teacherInstructions, choices } = this.props;\n const showCorrectAnswerToggle = mode === 'evaluate';\n let choiceRationalesHaveText = false;\n\n const choiceRationales = (Object.keys(choices) || []).map(key => (choices[key] || [])\n .reduce((acc, currentValue) => {\n if (currentValue.rationale && hasText(currentValue.rationale)) {\n choiceRationalesHaveText = true;\n\n acc.push(currentValue);\n }\n return acc;\n }, []));\n\n return (\n <div className={classes.mainContainer}>\n {\n teacherInstructions && hasText(teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )\n }\n\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />\n {showCorrectAnswerToggle && <br />}\n\n {prompt && (\n <React.Fragment>\n <PreviewPrompt prompt={prompt} />\n <br />\n </React.Fragment>\n )}\n <DropDown\n {...this.props}\n showCorrectAnswer={showCorrectAnswer}\n />\n {rationale && hasText(rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n {choiceRationalesHaveText && (\n <React.Fragment>\n <br />\n <Collapsible labels={{hidden: 'Show Rationale for choices', visible: 'Hide Rationale for choices'}}>\n <div>\n {choiceRationales.map((choices, index) =>\n <div key={index}>\n {choices && choices.length > 0 && choices.map( choice =>\n <div className={classes.choiceRationale} key={choice.label}>\n <div\n className={classNames(classes.choiceRationaleLabel, choice.correct ? 'correct' : 'incorrect')}\n dangerouslySetInnerHTML={{ __html: `${choice.label}: ` }}\n />\n <PreviewPrompt prompt={choice.rationale} />\n </div>\n )}\n {choices && choices.length > 0 && <br />}\n </div>\n )}\n </div>\n </Collapsible>\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: theme.spacing.unit\n },\n choiceRationale: {\n display: 'flex',\n whiteSpace: 'break-spaces'\n },\n choiceRationaleLabel: {\n display: 'flex',\n '&.correct': {\n color: color.correct()\n },\n '&.incorrect': {\n color: color.incorrect()\n }\n }\n});\n\nexport default withStyles(styles)(InlineDropdown);\n"],"file":"inline-dropdown.js"}
1
+ {"version":3,"sources":["../src/inline-dropdown.jsx"],"names":["InlineDropdown","showCorrectAnswer","setState","state","nextProps","feedback","domNode","ReactDOM","findDOMNode","props","classes","prompt","mode","rationale","teacherInstructions","choices","displayType","showCorrectAnswerToggle","choiceRationalesHaveText","choiceRationales","Object","keys","map","key","reduce","acc","currentValue","push","mainContainer","display","hidden","visible","toggleShowCorrect","index","length","choice","choiceRationale","label","choiceRationaleLabel","correct","__html","React","Component","PropTypes","object","string","disabled","bool","markup","value","onChange","func","styles","theme","color","text","backgroundColor","background","padding","spacing","unit","whiteSpace","incorrect"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport isEmpty from 'lodash/isEmpty';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { InlineDropdown as DropDown } from '@pie-lib/mask-markup';\nimport {color, Collapsible, hasText, PreviewPrompt} from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\n\nexport class InlineDropdown extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n prompt: PropTypes.string,\n disabled: PropTypes.bool,\n markup: PropTypes.string,\n mode: PropTypes.string,\n displayType: PropTypes.string,\n rationale: PropTypes.string,\n teacherInstructions: PropTypes.string,\n choices: PropTypes.object,\n value: PropTypes.object,\n feedback: PropTypes.object,\n onChange: PropTypes.func\n };\n\n static defaultProps = {\n value: {}\n };\n\n state = {\n showCorrectAnswer: false\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (isEmpty(nextProps.feedback)) {\n this.setState({ showCorrectAnswer: false });\n }\n }\n\n componentDidUpdate() {\n // eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n toggleShowCorrect = () => {\n this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });\n };\n\n render() {\n const { showCorrectAnswer } = this.state;\n const { classes, prompt, mode, rationale, teacherInstructions, choices, displayType } = this.props;\n const showCorrectAnswerToggle = mode === 'evaluate';\n let choiceRationalesHaveText = false;\n\n const choiceRationales = (Object.keys(choices) || []).map(key => (choices[key] || [])\n .reduce((acc, currentValue) => {\n if (currentValue.rationale && hasText(currentValue.rationale)) {\n choiceRationalesHaveText = true;\n\n acc.push(currentValue);\n }\n return acc;\n }, []));\n\n return (\n <div className={classes.mainContainer} style={{ display: `${displayType}` }}>\n {\n teacherInstructions && hasText(teacherInstructions) && (\n <React.Fragment>\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </Collapsible>\n <br />\n </React.Fragment>\n )\n }\n\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrectAnswer}\n onToggle={this.toggleShowCorrect}\n />\n {showCorrectAnswerToggle && <br />}\n\n {prompt && (\n <React.Fragment>\n <PreviewPrompt prompt={prompt} />\n <br />\n </React.Fragment>\n )}\n <DropDown\n {...this.props}\n showCorrectAnswer={showCorrectAnswer}\n />\n {rationale && hasText(rationale) && (\n <Collapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n >\n <PreviewPrompt prompt={rationale} />\n </Collapsible>\n )}\n {choiceRationalesHaveText && (\n <React.Fragment>\n <br />\n <Collapsible labels={{hidden: 'Show Rationale for choices', visible: 'Hide Rationale for choices'}}>\n <div>\n {choiceRationales.map((choices, index) =>\n <div key={index}>\n {choices && choices.length > 0 && choices.map( choice =>\n <div className={classes.choiceRationale} key={choice.label}>\n <div\n className={classNames(classes.choiceRationaleLabel, choice.correct ? 'correct' : 'incorrect')}\n dangerouslySetInnerHTML={{ __html: `${choice.label}: ` }}\n />\n <PreviewPrompt prompt={choice.rationale} />\n </div>\n )}\n {choices && choices.length > 0 && <br />}\n </div>\n )}\n </div>\n </Collapsible>\n </React.Fragment>\n )}\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n mainContainer: {\n color: color.text(),\n backgroundColor: color.background(),\n padding: theme.spacing.unit\n },\n choiceRationale: {\n display: 'flex',\n whiteSpace: 'break-spaces'\n },\n choiceRationaleLabel: {\n display: 'flex',\n '&.correct': {\n color: color.correct()\n },\n '&.incorrect': {\n color: color.incorrect()\n }\n }\n});\n\nexport default withStyles(styles)(InlineDropdown);\n"],"file":"inline-dropdown.js"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "repository": "pie-framework/pie-elements",
7
- "version": "3.10.2",
7
+ "version": "3.10.3",
8
8
  "description": "",
9
9
  "scripts": {
10
10
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -14,7 +14,7 @@
14
14
  "@material-ui/core": "^3.9.2",
15
15
  "@pie-framework/pie-player-events": "^0.1.0",
16
16
  "@pie-lib/correct-answer-toggle": "^2.3.34",
17
- "@pie-lib/mask-markup": "^1.11.4",
17
+ "@pie-lib/mask-markup": "^1.12.0",
18
18
  "@pie-lib/math-rendering": "^2.3.12",
19
19
  "@pie-lib/render-ui": "^4.12.4",
20
20
  "classnames": "^2.2.5",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "author": "",
27
27
  "license": "ISC",
28
- "gitHead": "cd1a2efd59f915b882937dea95c2675b2d2a3a50",
28
+ "gitHead": "711fb90f7f30b2b7438fd252d104b2c9c25accba",
29
29
  "main": "lib/index.js",
30
30
  "module": "src/index.js"
31
31
  }