@pie-element/multiple-choice 7.10.3-next.57 → 7.11.0

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,27 @@
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
+ # [7.11.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@7.10.2...@pie-element/multiple-choice@7.11.0) (2023-04-10)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-libs ([b7d3e7f](https://github.com/pie-framework/pie-elements/commit/b7d3e7f7160aafd5dcfed2960bc6c2f03dba2180))
12
+ * **all elements:** fix eslint problems-PD-2732 ([eaeabfb](https://github.com/pie-framework/pie-elements/commit/eaeabfbbe3a868a1f9828ef831a7ea864dee75a9))
13
+ * update pie-libs ([6738269](https://github.com/pie-framework/pie-elements/commit/6738269d878f24ec4429f210d18bbf591123a55f))
14
+ * **multiple-choice:** add sanity checks ([147346f](https://github.com/pie-framework/pie-elements/commit/147346fe3cb8974a4eb3b59944e1382fabf4abed))
15
+ * **multiple-choice:** refactor accessibilty attributes for choices ([8009de0](https://github.com/pie-framework/pie-elements/commit/8009de0a7a87a51bfe9b2c0c4be3f952634413db))
16
+ * update pie-libs ([9f05be1](https://github.com/pie-framework/pie-elements/commit/9f05be1ae6bf0a9651739b6bef7eca32ecabb4ce))
17
+
18
+
19
+ ### Features
20
+
21
+ * added the ability to set min/max width and height for the content PD-2425 ([befba3a](https://github.com/pie-framework/pie-elements/commit/befba3a8fa23e8dd21a3e3f63f306bd6dfc35bdd))
22
+
23
+
24
+
25
+
26
+
6
27
  ## [7.10.2](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice@7.10.0...@pie-element/multiple-choice@7.10.2) (2023-03-20)
7
28
 
8
29
 
@@ -3,6 +3,24 @@
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
+ # [5.8.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-configure@5.7.0...@pie-element/multiple-choice-configure@5.8.0) (2023-04-10)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * update pie-libs ([b7d3e7f](https://github.com/pie-framework/pie-elements/commit/b7d3e7f7160aafd5dcfed2960bc6c2f03dba2180))
12
+ * update pie-libs ([6738269](https://github.com/pie-framework/pie-elements/commit/6738269d878f24ec4429f210d18bbf591123a55f))
13
+ * update pie-libs ([9f05be1](https://github.com/pie-framework/pie-elements/commit/9f05be1ae6bf0a9651739b6bef7eca32ecabb4ce))
14
+
15
+
16
+ ### Features
17
+
18
+ * added the ability to set min/max width and height for the content PD-2425 ([befba3a](https://github.com/pie-framework/pie-elements/commit/befba3a8fa23e8dd21a3e3f63f306bd6dfc35bdd))
19
+
20
+
21
+
22
+
23
+
6
24
  # [5.7.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-configure@5.6.3...@pie-element/multiple-choice-configure@5.7.0) (2023-03-20)
7
25
 
8
26
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice-configure",
3
- "version": "5.7.0",
3
+ "version": "5.8.0",
4
4
  "private": true,
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -8,9 +8,9 @@
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@material-ui/icons": "^3.0.1",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/config-ui": "^11.6.0",
12
- "@pie-lib/editable-html": "^9.5.19",
13
- "@pie-lib/scoring-config": "^3.6.21",
11
+ "@pie-lib/config-ui": "^11.6.1",
12
+ "@pie-lib/editable-html": "^9.5.20",
13
+ "@pie-lib/scoring-config": "^3.6.22",
14
14
  "debug": "^3.1.0",
15
15
  "lodash": "^4.17.15",
16
16
  "prop-types": "^15.6.2",
@@ -3,6 +3,17 @@
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.7.1](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@3.7.0...@pie-element/multiple-choice-controller@3.7.1) (2023-04-10)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **multiple-choice:** add sanity checks ([147346f](https://github.com/pie-framework/pie-elements/commit/147346fe3cb8974a4eb3b59944e1382fabf4abed))
12
+
13
+
14
+
15
+
16
+
6
17
  # [3.7.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/multiple-choice-controller@3.6.1...@pie-element/multiple-choice-controller@3.7.0) (2023-02-01)
7
18
 
8
19
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice-controller",
3
3
  "private": true,
4
- "version": "3.7.0",
4
+ "version": "3.7.1",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -293,6 +293,7 @@ exports.ChoiceInput = ChoiceInput;
293
293
  correctness: _propTypes["default"].string,
294
294
  disabled: _propTypes["default"].bool.isRequired,
295
295
  feedback: _propTypes["default"].string,
296
+ index: _propTypes["default"].number,
296
297
  label: _propTypes["default"].string.isRequired,
297
298
  rationale: _propTypes["default"].string,
298
299
  accessibility: _propTypes["default"].string,
@@ -302,7 +303,8 @@ exports.ChoiceInput = ChoiceInput;
302
303
  className: _propTypes["default"].string,
303
304
  hideTick: _propTypes["default"].bool,
304
305
  isEvaluateMode: _propTypes["default"].bool,
305
- choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal'])
306
+ choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
307
+ updateSession: _propTypes["default"].func
306
308
  });
307
309
  (0, _defineProperty2["default"])(ChoiceInput, "defaultProps", {
308
310
  rationale: null,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","spacing","unit","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","value","id","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","event","updateSession","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","index","Tag","classSuffix","holderClassNames","choicelabel","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst styleSheet = (theme) => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: theme.spacing.unit,\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Checkbox\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Radio\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n this.props.updateSession({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n index\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n const choicelabel = (\n <PreviewPrompt className=\"label\" prompt={displayKey ? `${displayKey}.&nbsp ${label}` : label} tagName=\"span\" />\n );\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n htmlFor={`choice-${index}`}\n control={\n <Tag\n accessibility={accessibility}\n disabled={disabled}\n checked={checked}\n correctness={correctness}\n value={value}\n id={`choice-${index}`}\n onChange={this.onToggleChoice}\n />\n }\n />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
1
+ {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","spacing","unit","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","value","id","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","event","updateSession","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","index","Tag","classSuffix","holderClassNames","choicelabel","React","Component","PropTypes","oneOf","string","isRequired","bool","number","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst styleSheet = (theme) => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: theme.spacing.unit,\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Checkbox\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Radio\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n index: PropTypes.number,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n updateSession: PropTypes.func,\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n this.props.updateSession({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n index\n } = this.props;\n\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n const choicelabel = (\n <PreviewPrompt className=\"label\" prompt={displayKey ? `${displayKey}.&nbsp ${label}` : label} tagName=\"span\" />\n );\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n htmlFor={`choice-${index}`}\n control={\n <Tag\n accessibility={accessibility}\n disabled={disabled}\n checked={checked}\n correctness={correctness}\n value={value}\n id={`choice-${index}`}\n onChange={this.onToggleChoice}\n />\n }\n />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
package/lib/choice.js CHANGED
@@ -119,6 +119,9 @@ var Choice = /*#__PURE__*/function (_React$Component) {
119
119
  }(_react["default"].Component);
120
120
 
121
121
  exports.Choice = Choice;
122
+ (0, _defineProperty2["default"])(Choice, "propTypes", {
123
+ updateSession: _propTypes["default"].func
124
+ });
122
125
  Choice.propTypes = {
123
126
  choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
124
127
  choice: _propTypes["default"].object,
package/lib/choice.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice.jsx"],"names":["Choice","choice","props","disabled","onChoiceChanged","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","checked","correctness","displayKey","classes","choicesLayout","gridColumns","updateSession","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","React","Component","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","theme","paddingTop","spacing","unit","paddingBottom","borderBottom","palette","grey","paddingRight","marginRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoiceInput from './choice-input';\n\nexport class Choice extends React.Component {\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n classes,\n choicesLayout,\n gridColumns,\n updateSession,\n } = this.props;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n index,\n choicesLayout,\n gridColumns,\n updateSession,\n onChange: this.onChange,\n isEvaluateMode,\n };\n\n const names = classNames(classes.choice, {\n [classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={choiceClass} key={index}>\n <ChoiceInput {...choiceProps} className={names} />\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n};\n\nexport default withStyles((theme) => ({\n choice: {\n paddingTop: theme.spacing.unit * 2.5,\n paddingBottom: theme.spacing.unit + 2,\n borderBottom: `1px solid ${theme.palette.grey[300]}`,\n },\n noBorder: {\n borderBottom: 'none',\n },\n horizontalLayout: {\n paddingRight: theme.spacing.unit * 2.5,\n '& label': {\n marginRight: theme.spacing.unit,\n // '& span:first-child': {\n // paddingRight: 0\n // }\n },\n },\n}))(Choice);\n"],"file":"choice.js"}
1
+ {"version":3,"sources":["../src/choice.jsx"],"names":["Choice","choice","props","disabled","onChoiceChanged","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","checked","correctness","displayKey","classes","choicesLayout","gridColumns","updateSession","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","React","Component","PropTypes","func","propTypes","oneOf","object","bool","isRequired","number","string","theme","paddingTop","spacing","unit","paddingBottom","borderBottom","palette","grey","paddingRight","marginRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoiceInput from './choice-input';\n\nexport class Choice extends React.Component {\n static propTypes = {\n updateSession: PropTypes.func,\n };\n\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n classes,\n choicesLayout,\n gridColumns,\n updateSession,\n } = this.props;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n index,\n choicesLayout,\n gridColumns,\n updateSession,\n onChange: this.onChange,\n isEvaluateMode,\n };\n\n const names = classNames(classes.choice, {\n [classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={choiceClass} key={index}>\n <ChoiceInput {...choiceProps} className={names} />\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n};\n\nexport default withStyles((theme) => ({\n choice: {\n paddingTop: theme.spacing.unit * 2.5,\n paddingBottom: theme.spacing.unit + 2,\n borderBottom: `1px solid ${theme.palette.grey[300]}`,\n },\n noBorder: {\n borderBottom: 'none',\n },\n horizontalLayout: {\n paddingRight: theme.spacing.unit * 2.5,\n '& label': {\n marginRight: theme.spacing.unit,\n // '& span:first-child': {\n // paddingRight: 0\n // }\n },\n },\n}))(Choice);\n"],"file":"choice.js"}
package/lib/main.js CHANGED
@@ -55,8 +55,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
55
55
  var _this$props = this.props,
56
56
  model = _this$props.model,
57
57
  onChoiceChanged = _this$props.onChoiceChanged,
58
- session = _this$props.session,
59
- classes = _this$props.classes; // model.partLabel is a property used for ebsr
58
+ session = _this$props.session; // model.partLabel is a property used for ebsr
60
59
 
61
60
  return /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewLayout, null, /*#__PURE__*/_react["default"].createElement(_multipleChoice["default"], (0, _extends2["default"])({}, model, {
62
61
  session: session,
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["styles","Main","props","model","onChoiceChanged","session","classes","React","Component","PropTypes","object","func","isRequired","Styled","name","theme","typography","useNextVariants","Root"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO,EAAP;AAAA,CAAf;;IAEMC,I;;;;;AAYJ,gBAAYC,KAAZ,EAAmB;AAAA;AAAA,6BACXA,KADW;AAElB;;;;WAED,kBAAS;AACP,wBAAqD,KAAKA,KAA1D;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,eAAf,eAAeA,eAAf;AAAA,UAAgCC,OAAhC,eAAgCA,OAAhC;AAAA,UAAyCC,OAAzC,eAAyCA,OAAzC,CADO,CAGP;;AACA,0BACE,gCAAC,uBAAD,qBACE,gCAAC,0BAAD,gCAAoBH,KAApB;AAA2B,QAAA,OAAO,EAAEE,OAApC;AAA6C,QAAA,eAAe,EAAED;AAA9D,SADF,CADF;AAKD;;;EAzBgBG,kBAAMC,S;;iCAAnBP,I,eACe;AACjBE,EAAAA,KAAK,EAAEM,sBAAUC,MADA;AAEjBL,EAAAA,OAAO,EAAEI,sBAAUC,MAFF;AAGjBN,EAAAA,eAAe,EAAEK,sBAAUE,IAHV;AAIjBL,EAAAA,OAAO,EAAEG,sBAAUC,MAAV,CAAiBE;AAJT,C;iCADfX,I,kBAQkB;AACpBE,EAAAA,KAAK,EAAE,EADa;AAEpBE,EAAAA,OAAO,EAAE;AAFW,C;AAoBxB,IAAMQ,MAAM,GAAG,wBAAWb,MAAX,EAAmB;AAAEc,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAAqCb,IAArC,CAAf;AAEA,IAAMc,KAAK,GAAG,4BAAe;AAC3BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,eAAe,EAAE;AADP;AADe,CAAf,CAAd;;AAMA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAChB,KAAD;AAAA,sBACX,gCAAC,wBAAD;AAAkB,IAAA,KAAK,EAAEa;AAAzB,kBACE,gCAAC,MAAD,EAAYb,KAAZ,CADF,CADW;AAAA,CAAb;;eAMegB,I","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\nimport { PreviewLayout } from '@pie-lib/render-ui';\nimport MultipleChoice from './multiple-choice';\n\nconst styles = () => ({});\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n model: {},\n session: {},\n };\n constructor(props) {\n super(props);\n }\n\n render() {\n const { model, onChoiceChanged, session, classes } = this.props;\n\n // model.partLabel is a property used for ebsr\n return (\n <PreviewLayout>\n <MultipleChoice {...model} session={session} onChoiceChanged={onChoiceChanged} />\n </PreviewLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles, { name: 'Main' })(Main);\n\nconst theme = createMuiTheme({\n typography: {\n useNextVariants: true,\n },\n});\n\nconst Root = (props) => (\n <MuiThemeProvider theme={theme}>\n <Styled {...props} />\n </MuiThemeProvider>\n);\n\nexport default Root;\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["styles","Main","props","model","onChoiceChanged","session","React","Component","PropTypes","object","func","classes","isRequired","Styled","name","theme","typography","useNextVariants","Root"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO,EAAP;AAAA,CAAf;;IAEMC,I;;;;;AAYJ,gBAAYC,KAAZ,EAAmB;AAAA;AAAA,6BACXA,KADW;AAElB;;;;WAED,kBAAS;AACP,wBAA4C,KAAKA,KAAjD;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,eAAf,eAAeA,eAAf;AAAA,UAAgCC,OAAhC,eAAgCA,OAAhC,CADO,CAGP;;AACA,0BACE,gCAAC,uBAAD,qBACE,gCAAC,0BAAD,gCAAoBF,KAApB;AAA2B,QAAA,OAAO,EAAEE,OAApC;AAA6C,QAAA,eAAe,EAAED;AAA9D,SADF,CADF;AAKD;;;EAzBgBE,kBAAMC,S;;iCAAnBN,I,eACe;AACjBE,EAAAA,KAAK,EAAEK,sBAAUC,MADA;AAEjBJ,EAAAA,OAAO,EAAEG,sBAAUC,MAFF;AAGjBL,EAAAA,eAAe,EAAEI,sBAAUE,IAHV;AAIjBC,EAAAA,OAAO,EAAEH,sBAAUC,MAAV,CAAiBG;AAJT,C;iCADfX,I,kBAQkB;AACpBE,EAAAA,KAAK,EAAE,EADa;AAEpBE,EAAAA,OAAO,EAAE;AAFW,C;AAoBxB,IAAMQ,MAAM,GAAG,wBAAWb,MAAX,EAAmB;AAAEc,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAAqCb,IAArC,CAAf;AAEA,IAAMc,KAAK,GAAG,4BAAe;AAC3BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,eAAe,EAAE;AADP;AADe,CAAf,CAAd;;AAMA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAChB,KAAD;AAAA,sBACX,gCAAC,wBAAD;AAAkB,IAAA,KAAK,EAAEa;AAAzB,kBACE,gCAAC,MAAD,EAAYb,KAAZ,CADF,CADW;AAAA,CAAb;;eAMegB,I","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\nimport { PreviewLayout } from '@pie-lib/render-ui';\nimport MultipleChoice from './multiple-choice';\n\nconst styles = () => ({});\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n model: {},\n session: {},\n };\n constructor(props) {\n super(props);\n }\n\n render() {\n const { model, onChoiceChanged, session } = this.props;\n\n // model.partLabel is a property used for ebsr\n return (\n <PreviewLayout>\n <MultipleChoice {...model} session={session} onChoiceChanged={onChoiceChanged} />\n </PreviewLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles, { name: 'Main' })(Main);\n\nconst theme = createMuiTheme({\n typography: {\n useNextVariants: true,\n },\n});\n\nconst Root = (props) => (\n <MuiThemeProvider theme={theme}>\n <Styled {...props} />\n </MuiThemeProvider>\n);\n\nexport default Root;\n"],"file":"main.js"}
@@ -294,10 +294,12 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
294
294
 
295
295
  exports.MultipleChoice = MultipleChoice;
296
296
  (0, _defineProperty2["default"])(MultipleChoice, "propTypes", {
297
+ className: _propTypes["default"].string,
297
298
  mode: _propTypes["default"].oneOf(['gather', 'view', 'evaluate']),
298
299
  choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
299
300
  keyMode: _propTypes["default"].oneOf(['numbers', 'letters', 'none']),
300
301
  choices: _propTypes["default"].array,
302
+ partLabel: _propTypes["default"].string,
301
303
  prompt: _propTypes["default"].string,
302
304
  teacherInstructions: _propTypes["default"].string,
303
305
  session: _propTypes["default"].object,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/multiple-choice.jsx"],"names":["styles","theme","main","color","text","backgroundColor","background","partLabel","paddingBottom","spacing","unit","teacherInstructions","marginBottom","horizontalLayout","display","flexDirection","flexWrap","gridLayout","fieldset","border","padding","margin","minWidth","MultipleChoice","props","event","target","setState","selectedValue","value","checked","prevState","selectedValues","push","filter","currentValue","choice","isCorrect","correct","isChecked","isSelected","state","showCorrect","undefined","alwaysShowCorrect","onToggle","bind","sessionValue","session","indexOf","mode","nextProps","correctResponse","index","keyMode","String","fromCharCode","toUpperCase","choiceMode","includes","disabled","className","choices","gridColumns","prompt","onChoiceChanged","responseCorrect","classes","animationsDisabled","isEvaluateMode","showCorrectAnswerToggle","columnsStyle","gridTemplateColumns","teacherInstructionsDiv","hidden","visible","choicesLayout","map","length","handleChange","handleChangeCheckboxes","hideTick","getChecked","getCorrectness","indexToSymbol","React","Component","PropTypes","oneOf","array","string","object","bool","func","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\nimport StyledChoice from './choice';\n\n// MultipleChoice\n\nconst styles = (theme) => ({\n main: {\n color: color.text(),\n backgroundColor: color.background(),\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n },\n partLabel: {\n paddingBottom: theme.spacing.unit * 2,\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n horizontalLayout: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n gridLayout: {\n display: 'grid',\n },\n fieldset: {\n border: '0px',\n padding: '0.01em 0 0 0',\n margin: '0px',\n minWidth: '0px',\n },\n});\n\nexport class MultipleChoice extends React.Component {\n static propTypes = {\n mode: PropTypes.oneOf(['gather', 'view', 'evaluate']),\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n keyMode: PropTypes.oneOf(['numbers', 'letters', 'none']),\n choices: PropTypes.array,\n prompt: PropTypes.string,\n teacherInstructions: PropTypes.string,\n session: PropTypes.object,\n disabled: PropTypes.bool,\n onChoiceChanged: PropTypes.func,\n responseCorrect: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n correctResponse: PropTypes.array,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedValue: null,\n selectedValues: [],\n showCorrect: this.props.alwaysShowCorrect || false,\n };\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n isSelected(value) {\n const sessionValue = this.props.session && this.props.session.value;\n\n return sessionValue && sessionValue.indexOf && sessionValue.indexOf(value) >= 0;\n }\n\n // handleChange and handleChangeCheckboxes functions were added for accessibility. Please see comments and videos from PD-2441. They should only be removed if a better solution is found.\n handleChange = (event) => {\n const target = event.target;\n\n this.setState({ selectedValue: target.value });\n };\n\n handleChangeCheckboxes = (event) => {\n const { value, checked } = event.target;\n\n this.setState((prevState) => {\n let selectedValues = [...prevState.selectedValues];\n\n if (checked) {\n selectedValues.push(value);\n } else {\n selectedValues = selectedValues.filter((currentValue) => currentValue !== value);\n }\n\n return { selectedValues };\n });\n };\n\n onToggle() {\n if (this.props.mode === 'evaluate') {\n this.setState({ showCorrect: !this.state.showCorrect });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!nextProps.correctResponse) {\n this.setState({ showCorrect: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n }\n\n indexToSymbol(index) {\n if (this.props.keyMode === 'numbers') {\n return `${index + 1}`;\n }\n\n if (this.props.keyMode === 'letters') {\n return String.fromCharCode(97 + index).toUpperCase();\n }\n\n return '';\n }\n\n getCorrectness = (choice = {}) => {\n const isCorrect = choice.correct;\n const isChecked = this.isSelected(choice.value);\n\n if (this.state.showCorrect) {\n return isCorrect ? 'correct' : undefined;\n }\n\n if (isCorrect) {\n if (isChecked) {\n // A correct answer is selected: marked with a green checkmark\n return 'correct';\n } else {\n // A correct answer is NOT selected: marked with an orange X\n return 'incorrect';\n }\n } else {\n if (isChecked) {\n // An incorrect answer is selected: marked with an orange X\n return 'incorrect';\n } else {\n // An incorrect answer is NOT selected: not marked\n return undefined;\n }\n }\n };\n\n getChecked(choice) {\n if (this.state.showCorrect) {\n return choice.correct || false;\n }\n\n if (this.isSelected(choice.value)) {\n return true;\n }\n\n return this.props.choiceMode === 'radio'\n ? this.state.selectedValue === choice.value\n : this.state.selectedValues.includes(choice.value);\n }\n\n render() {\n const {\n mode,\n disabled,\n className,\n choices = [],\n choiceMode,\n gridColumns,\n partLabel,\n prompt,\n onChoiceChanged,\n responseCorrect,\n teacherInstructions,\n classes,\n alwaysShowCorrect,\n animationsDisabled,\n } = this.props;\n const { showCorrect } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;\n const columnsStyle = gridColumns > 1 ? { gridTemplateColumns: `repeat(${gridColumns}, 1fr)` } : undefined;\n\n const teacherInstructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n return (\n <div className={classNames(classes.main, className, 'multiple-choice')}>\n {partLabel && <div className={classes.partLabel}>{partLabel}</div>}\n\n {teacherInstructions && (\n <div className={classes.teacherInstructions}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n <fieldset className={classes.fieldset}>\n <PreviewPrompt className=\"prompt\" defaultClassName=\"prompt\" prompt={prompt} tagName={'legend'} />\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.onToggle.bind(this)}\n />\n )}\n\n <div\n className={classNames({\n [classes.gridLayout]: this.props.choicesLayout === 'grid',\n [classes.horizontalLayout]: this.props.choicesLayout === 'horizontal',\n })}\n style={columnsStyle}\n >\n {choices.map((choice, index) => (\n <StyledChoice\n choicesLayout={this.props.choicesLayout}\n gridColumns={gridColumns}\n key={`choice-${index}`}\n choice={choice}\n index={index}\n choicesLength={choices.length}\n showCorrect={showCorrect}\n isEvaluateMode={isEvaluateMode}\n choiceMode={choiceMode}\n disabled={disabled}\n updateSession={onChoiceChanged}\n onChoiceChanged={this.props.choiceMode === 'radio' ? this.handleChange : this.handleChangeCheckboxes}\n hideTick={choice.hideTick}\n checked={this.getChecked(choice)}\n correctness={isEvaluateMode ? this.getCorrectness(choice) : undefined}\n displayKey={this.indexToSymbol(index)}\n />\n ))}\n </div>\n </fieldset>\n </div>\n );\n }\n}\n\nMultipleChoice.defaultProps = {\n session: {\n value: [],\n },\n};\n\nexport default withStyles(styles)(MultipleChoice);\n"],"file":"multiple-choice.js"}
1
+ {"version":3,"sources":["../src/multiple-choice.jsx"],"names":["styles","theme","main","color","text","backgroundColor","background","partLabel","paddingBottom","spacing","unit","teacherInstructions","marginBottom","horizontalLayout","display","flexDirection","flexWrap","gridLayout","fieldset","border","padding","margin","minWidth","MultipleChoice","props","event","target","setState","selectedValue","value","checked","prevState","selectedValues","push","filter","currentValue","choice","isCorrect","correct","isChecked","isSelected","state","showCorrect","undefined","alwaysShowCorrect","onToggle","bind","sessionValue","session","indexOf","mode","nextProps","correctResponse","index","keyMode","String","fromCharCode","toUpperCase","choiceMode","includes","disabled","className","choices","gridColumns","prompt","onChoiceChanged","responseCorrect","classes","animationsDisabled","isEvaluateMode","showCorrectAnswerToggle","columnsStyle","gridTemplateColumns","teacherInstructionsDiv","hidden","visible","choicesLayout","map","length","handleChange","handleChangeCheckboxes","hideTick","getChecked","getCorrectness","indexToSymbol","React","Component","PropTypes","string","oneOf","array","object","bool","func","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\nimport StyledChoice from './choice';\n\n// MultipleChoice\n\nconst styles = (theme) => ({\n main: {\n color: color.text(),\n backgroundColor: color.background(),\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n },\n partLabel: {\n paddingBottom: theme.spacing.unit * 2,\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n horizontalLayout: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n gridLayout: {\n display: 'grid',\n },\n fieldset: {\n border: '0px',\n padding: '0.01em 0 0 0',\n margin: '0px',\n minWidth: '0px',\n },\n});\n\nexport class MultipleChoice extends React.Component {\n static propTypes = {\n className: PropTypes.string,\n mode: PropTypes.oneOf(['gather', 'view', 'evaluate']),\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n keyMode: PropTypes.oneOf(['numbers', 'letters', 'none']),\n choices: PropTypes.array,\n partLabel: PropTypes.string,\n prompt: PropTypes.string,\n teacherInstructions: PropTypes.string,\n session: PropTypes.object,\n disabled: PropTypes.bool,\n onChoiceChanged: PropTypes.func,\n responseCorrect: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n correctResponse: PropTypes.array,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedValue: null,\n selectedValues: [],\n showCorrect: this.props.alwaysShowCorrect || false,\n };\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n isSelected(value) {\n const sessionValue = this.props.session && this.props.session.value;\n\n return sessionValue && sessionValue.indexOf && sessionValue.indexOf(value) >= 0;\n }\n\n // handleChange and handleChangeCheckboxes functions were added for accessibility. Please see comments and videos from PD-2441. They should only be removed if a better solution is found.\n handleChange = (event) => {\n const target = event.target;\n\n this.setState({ selectedValue: target.value });\n };\n\n handleChangeCheckboxes = (event) => {\n const { value, checked } = event.target;\n\n this.setState((prevState) => {\n let selectedValues = [...prevState.selectedValues];\n\n if (checked) {\n selectedValues.push(value);\n } else {\n selectedValues = selectedValues.filter((currentValue) => currentValue !== value);\n }\n\n return { selectedValues };\n });\n };\n\n onToggle() {\n if (this.props.mode === 'evaluate') {\n this.setState({ showCorrect: !this.state.showCorrect });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!nextProps.correctResponse) {\n this.setState({ showCorrect: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n }\n\n indexToSymbol(index) {\n if (this.props.keyMode === 'numbers') {\n return `${index + 1}`;\n }\n\n if (this.props.keyMode === 'letters') {\n return String.fromCharCode(97 + index).toUpperCase();\n }\n\n return '';\n }\n\n getCorrectness = (choice = {}) => {\n const isCorrect = choice.correct;\n const isChecked = this.isSelected(choice.value);\n\n if (this.state.showCorrect) {\n return isCorrect ? 'correct' : undefined;\n }\n\n if (isCorrect) {\n if (isChecked) {\n // A correct answer is selected: marked with a green checkmark\n return 'correct';\n } else {\n // A correct answer is NOT selected: marked with an orange X\n return 'incorrect';\n }\n } else {\n if (isChecked) {\n // An incorrect answer is selected: marked with an orange X\n return 'incorrect';\n } else {\n // An incorrect answer is NOT selected: not marked\n return undefined;\n }\n }\n };\n\n getChecked(choice) {\n if (this.state.showCorrect) {\n return choice.correct || false;\n }\n\n if (this.isSelected(choice.value)) {\n return true;\n }\n\n return this.props.choiceMode === 'radio'\n ? this.state.selectedValue === choice.value\n : this.state.selectedValues.includes(choice.value);\n }\n\n render() {\n const {\n mode,\n disabled,\n className,\n choices = [],\n choiceMode,\n gridColumns,\n partLabel,\n prompt,\n onChoiceChanged,\n responseCorrect,\n teacherInstructions,\n classes,\n alwaysShowCorrect,\n animationsDisabled,\n } = this.props;\n const { showCorrect } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;\n const columnsStyle = gridColumns > 1 ? { gridTemplateColumns: `repeat(${gridColumns}, 1fr)` } : undefined;\n\n const teacherInstructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n return (\n <div className={classNames(classes.main, className, 'multiple-choice')}>\n {partLabel && <div className={classes.partLabel}>{partLabel}</div>}\n\n {teacherInstructions && (\n <div className={classes.teacherInstructions}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n <fieldset className={classes.fieldset}>\n <PreviewPrompt className=\"prompt\" defaultClassName=\"prompt\" prompt={prompt} tagName={'legend'} />\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.onToggle.bind(this)}\n />\n )}\n\n <div\n className={classNames({\n [classes.gridLayout]: this.props.choicesLayout === 'grid',\n [classes.horizontalLayout]: this.props.choicesLayout === 'horizontal',\n })}\n style={columnsStyle}\n >\n {choices.map((choice, index) => (\n <StyledChoice\n choicesLayout={this.props.choicesLayout}\n gridColumns={gridColumns}\n key={`choice-${index}`}\n choice={choice}\n index={index}\n choicesLength={choices.length}\n showCorrect={showCorrect}\n isEvaluateMode={isEvaluateMode}\n choiceMode={choiceMode}\n disabled={disabled}\n updateSession={onChoiceChanged}\n onChoiceChanged={this.props.choiceMode === 'radio' ? this.handleChange : this.handleChangeCheckboxes}\n hideTick={choice.hideTick}\n checked={this.getChecked(choice)}\n correctness={isEvaluateMode ? this.getCorrectness(choice) : undefined}\n displayKey={this.indexToSymbol(index)}\n />\n ))}\n </div>\n </fieldset>\n </div>\n );\n }\n}\n\nMultipleChoice.defaultProps = {\n session: {\n value: [],\n },\n};\n\nexport default withStyles(styles)(MultipleChoice);\n"],"file":"multiple-choice.js"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "7.10.3-next.57+f7af573fb",
4
+ "version": "7.11.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
- "@pie-lib/config-ui": "^11.6.0",
11
- "@pie-lib/correct-answer-toggle": "^2.3.69",
10
+ "@pie-lib/config-ui": "^11.6.1",
11
+ "@pie-lib/correct-answer-toggle": "^2.3.70",
12
12
  "@pie-lib/math-rendering": "^2.5.13",
13
- "@pie-lib/render-ui": "^4.14.19",
13
+ "@pie-lib/render-ui": "^4.14.20",
14
14
  "classnames": "^2.2.5",
15
15
  "debug": "^4.1.1",
16
16
  "enzyme-to-json": "^3.3.3",
@@ -21,7 +21,7 @@
21
21
  "react-test-renderer": "^16.3.2",
22
22
  "react-transition-group": "^2.3.1"
23
23
  },
24
- "gitHead": "f7af573fb4e0491e4f5ff278103b157ac0120f98",
24
+ "gitHead": "ad16cf96a5a84713cfa2e3e5f747d87cefa2f3f2",
25
25
  "scripts": {
26
26
  "postpublish": "../../scripts/postpublish"
27
27
  },