@pie-element/multiple-choice 9.16.2-next.0 → 9.16.2-next.12
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/lib/choice-input.js +5 -1
- package/lib/choice-input.js.map +1 -1
- package/lib/choice.js +5 -2
- package/lib/choice.js.map +1 -1
- package/lib/multiple-choice.js +4 -1
- package/lib/multiple-choice.js.map +1 -1
- package/module/configure.js +1 -1
- package/module/element.js +30 -23
- package/module/manifest.json +1 -1
- package/module/print.js +30 -23
- package/package.json +2 -2
package/lib/choice-input.js
CHANGED
|
@@ -214,7 +214,8 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
|
|
|
214
214
|
onChange = props.onChange,
|
|
215
215
|
disabled = props.disabled,
|
|
216
216
|
value = props.value,
|
|
217
|
-
id = props.id
|
|
217
|
+
id = props.id,
|
|
218
|
+
tagName = props.tagName;
|
|
218
219
|
|
|
219
220
|
var key = function key(k) {
|
|
220
221
|
return correctness ? "".concat(correctness, "-").concat(k) : k;
|
|
@@ -238,6 +239,7 @@ var StyledRadio = (0, _styles.withStyles)(inputStyles)(function (props) {
|
|
|
238
239
|
disableRipple: true
|
|
239
240
|
}, miniProps, {
|
|
240
241
|
className: CLASS_NAME,
|
|
242
|
+
name: tagName,
|
|
241
243
|
classes: {
|
|
242
244
|
root: resolved.root,
|
|
243
245
|
checked: resolved.checked,
|
|
@@ -293,6 +295,7 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
|
|
|
293
295
|
choicesLayout = _this$props.choicesLayout,
|
|
294
296
|
value = _this$props.value,
|
|
295
297
|
checked = _this$props.checked,
|
|
298
|
+
tagName = _this$props.tagName,
|
|
296
299
|
isSelectionButtonBelow = _this$props.isSelectionButtonBelow;
|
|
297
300
|
var Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
|
|
298
301
|
var classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
|
|
@@ -319,6 +322,7 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
|
|
|
319
322
|
disabled: disabled,
|
|
320
323
|
checked: checked,
|
|
321
324
|
correctness: correctness,
|
|
325
|
+
tagName: tagName,
|
|
322
326
|
value: value,
|
|
323
327
|
id: this.choiceId,
|
|
324
328
|
onChange: this.onToggleChoice,
|
package/lib/choice-input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","fontSize","horizontalLayout","padding","spacing","unit","margin","belowLayout","belowLayoutCenter","justifyContent","belowSelectionComponent","marginLeft","srOnly","position","left","top","width","height","overflow","formStyleSheet","label","letterSpacing","disabled","cursor","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","incorrect","root","primaryLight","checked","primary","opacity","pointerEvents","focusVisibleUnchecked","outline","focusUncheckedBorder","focusUnchecked","focusVisibleChecked","focusCheckedBorder","focusChecked","StyledCheckbox","correctness","onChange","value","id","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","choiceId","generateChoiceId","descId","event","Math","random","toFixed","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","isSelectionButtonBelow","Tag","classSuffix","holderClassNames","choicelabel","screenReaderLabel","tagProps","hasMathOrImage","includes","control","undefined","React","Component","PropTypes","oneOf","string","bool","isRequired","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';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nimport FeedbackTick from './feedback-tick';\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 '& > span': {\n fontSize: 'inherit',\n },\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n // add margin to the top, left and bottom of the checkbox to keep the same spacing as before\n padding: theme.spacing.unit,\n margin: `${theme.spacing.unit / 2}px 0 ${theme.spacing.unit / 2}px ${theme.spacing.unit / 2}px`,\n },\n },\n belowLayout: {\n '& > label': {\n alignItems: 'flex-start',\n },\n },\n belowLayoutCenter: {\n justifyContent: 'center',\n '& > label': {\n alignItems: 'center',\n },\n },\n belowSelectionComponent: {\n display: 'flex',\n alignItems: 'center',\n '& > span': {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n marginLeft: `-${theme.spacing.unit}px`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n letterSpacing: 'normal',\n },\n disabled: {\n // apply to all children\n '& *': {\n cursor: 'not-allowed !important',\n },\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => (\n <FormControlLabel {...props} classes={{ label: props.classes.label, disabled: props.classes.disabled }} />\n));\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 focusVisibleUnchecked: {\n outline: `2px solid ${color.focusUncheckedBorder()}`,\n backgroundColor: color.focusUnchecked(),\n },\n focusVisibleChecked: {\n outline: `2px solid ${color.focusCheckedBorder()}`,\n backgroundColor: color.focusChecked(),\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, 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-checked={checked}\n focusVisibleClassName={checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked}\n disableRipple\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, 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-checked={checked}\n focusVisibleClassName={checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked}\n disableRipple\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,\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 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 isSelectionButtonBelow: PropTypes.bool,\n };\n\n static defaultProps = {\n rationale: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n this.choiceId = this.generateChoiceId();\n this.descId = `${this.choiceId}-desc`;\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n }\n\n generateChoiceId() {\n return 'choice-' + (Math.random() * 10000).toFixed();\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 hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n isSelectionButtonBelow,\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 [classes.belowLayout]: isSelectionButtonBelow && choicesLayout !== 'grid',\n [classes.belowLayoutCenter]: isSelectionButtonBelow && choicesLayout === 'grid',\n });\n\n const choicelabel = (\n <>\n {displayKey && !isSelectionButtonBelow ? (\n <span className={classes.row}>\n {displayKey}.{'\\u00A0'}\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n </span>\n ) : (\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n )}\n </>\n );\n\n const screenReaderLabel = (\n <span id={this.descId} className={classes.srOnly}>\n {choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below'}\n </span>\n );\n\n const tagProps = {\n disabled,\n checked,\n correctness,\n value,\n id: this.choiceId,\n onChange: this.onToggleChoice,\n 'aria-describedby': this.descId,\n };\n\n const hasMathOrImage =\n typeof label === 'string' &&\n (label.includes('<math') ||\n label.includes('\\\\(') ||\n label.includes('\\\\[') ||\n label.includes('<img') ||\n label.includes('data-latex') ||\n label.includes('data-raw') ||\n label.includes('<mjx-container'));\n\n const control = isSelectionButtonBelow ? (\n <span className={classes.belowSelectionComponent}>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} style={{ padding: 0 }} />\n {displayKey ? `${displayKey}.` : ''}\n </span>\n ) : (\n <>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} />\n </>\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={this.choiceId}\n labelPlacement={isSelectionButtonBelow ? 'top' : undefined}\n control={control}\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","fontSize","horizontalLayout","padding","spacing","unit","margin","belowLayout","belowLayoutCenter","justifyContent","belowSelectionComponent","marginLeft","srOnly","position","left","top","width","height","overflow","formStyleSheet","label","letterSpacing","disabled","cursor","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","incorrect","root","primaryLight","checked","primary","opacity","pointerEvents","focusVisibleUnchecked","outline","focusUncheckedBorder","focusUnchecked","focusVisibleChecked","focusCheckedBorder","focusChecked","StyledCheckbox","correctness","onChange","value","id","key","k","resolved","miniProps","StyledRadio","tagName","ChoiceInput","onToggleChoice","bind","choiceId","generateChoiceId","descId","event","Math","random","toFixed","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","isSelectionButtonBelow","Tag","classSuffix","holderClassNames","choicelabel","screenReaderLabel","tagProps","hasMathOrImage","includes","control","undefined","React","Component","PropTypes","oneOf","string","bool","isRequired","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';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nimport FeedbackTick from './feedback-tick';\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 '& > span': {\n fontSize: 'inherit',\n },\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n // add margin to the top, left and bottom of the checkbox to keep the same spacing as before\n padding: theme.spacing.unit,\n margin: `${theme.spacing.unit / 2}px 0 ${theme.spacing.unit / 2}px ${theme.spacing.unit / 2}px`,\n },\n },\n belowLayout: {\n '& > label': {\n alignItems: 'flex-start',\n },\n },\n belowLayoutCenter: {\n justifyContent: 'center',\n '& > label': {\n alignItems: 'center',\n },\n },\n belowSelectionComponent: {\n display: 'flex',\n alignItems: 'center',\n '& > span': {\n // visually reduce right padding, but maintain accessibility padding for checkbox indicators to be circles\n marginLeft: `-${theme.spacing.unit}px`,\n },\n },\n srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n letterSpacing: 'normal',\n },\n disabled: {\n // apply to all children\n '& *': {\n cursor: 'not-allowed !important',\n },\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => (\n <FormControlLabel {...props} classes={{ label: props.classes.label, disabled: props.classes.disabled }} />\n));\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 focusVisibleUnchecked: {\n outline: `2px solid ${color.focusUncheckedBorder()}`,\n backgroundColor: color.focusUnchecked(),\n },\n focusVisibleChecked: {\n outline: `2px solid ${color.focusCheckedBorder()}`,\n backgroundColor: color.focusChecked(),\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, 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-checked={checked}\n focusVisibleClassName={checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked}\n disableRipple\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, value, id, tagName } = 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-checked={checked}\n focusVisibleClassName={checked ? classes.focusVisibleChecked : classes.focusVisibleUnchecked}\n disableRipple\n {...miniProps}\n className={CLASS_NAME}\n name={tagName}\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,\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 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 isSelectionButtonBelow: PropTypes.bool,\n };\n\n static defaultProps = {\n rationale: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n this.choiceId = this.generateChoiceId();\n this.descId = `${this.choiceId}-desc`;\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n }\n\n generateChoiceId() {\n return 'choice-' + (Math.random() * 10000).toFixed();\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 hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n tagName,\n isSelectionButtonBelow,\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 [classes.belowLayout]: isSelectionButtonBelow && choicesLayout !== 'grid',\n [classes.belowLayoutCenter]: isSelectionButtonBelow && choicesLayout === 'grid',\n });\n\n const choicelabel = (\n <>\n {displayKey && !isSelectionButtonBelow ? (\n <span className={classes.row}>\n {displayKey}.{'\\u00A0'}\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n </span>\n ) : (\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n )}\n </>\n );\n\n const screenReaderLabel = (\n <span id={this.descId} className={classes.srOnly}>\n {choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below'}\n </span>\n );\n\n const tagProps = {\n disabled,\n checked,\n correctness,\n tagName,\n value,\n id: this.choiceId,\n onChange: this.onToggleChoice,\n 'aria-describedby': this.descId,\n };\n\n const hasMathOrImage =\n typeof label === 'string' &&\n (label.includes('<math') ||\n label.includes('\\\\(') ||\n label.includes('\\\\[') ||\n label.includes('<img') ||\n label.includes('data-latex') ||\n label.includes('data-raw') ||\n label.includes('<mjx-container'));\n\n const control = isSelectionButtonBelow ? (\n <span className={classes.belowSelectionComponent}>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} style={{ padding: 0 }} />\n {displayKey ? `${displayKey}.` : ''}\n </span>\n ) : (\n <>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} />\n </>\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={this.choiceId}\n labelPlacement={isSelectionButtonBelow ? 'top' : undefined}\n control={control}\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
|
@@ -88,7 +88,8 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
88
88
|
choicesLayout = _this$props2.choicesLayout,
|
|
89
89
|
gridColumns = _this$props2.gridColumns,
|
|
90
90
|
isSelectionButtonBelow = _this$props2.isSelectionButtonBelow,
|
|
91
|
-
selectedAnswerBackgroundColor = _this$props2.selectedAnswerBackgroundColor
|
|
91
|
+
selectedAnswerBackgroundColor = _this$props2.selectedAnswerBackgroundColor,
|
|
92
|
+
tagName = _this$props2.tagName;
|
|
92
93
|
var choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
|
|
93
94
|
var feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
|
|
94
95
|
|
|
@@ -104,7 +105,8 @@ var Choice = /*#__PURE__*/function (_React$Component) {
|
|
|
104
105
|
gridColumns: gridColumns,
|
|
105
106
|
onChange: this.onChange,
|
|
106
107
|
isEvaluateMode: isEvaluateMode,
|
|
107
|
-
isSelectionButtonBelow: isSelectionButtonBelow
|
|
108
|
+
isSelectionButtonBelow: isSelectionButtonBelow,
|
|
109
|
+
tagName: tagName
|
|
108
110
|
});
|
|
109
111
|
|
|
110
112
|
var names = (0, _classnames["default"])(classes.choice, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.noBorder, index === choicesLength - 1 || choicesLayout !== 'vertical'), (0, _defineProperty2["default"])(_classNames, classes.horizontalLayout, choicesLayout === 'horizontal'), _classNames));
|
|
@@ -141,6 +143,7 @@ Choice.propTypes = {
|
|
|
141
143
|
choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
|
|
142
144
|
gridColumns: _propTypes["default"].string,
|
|
143
145
|
selectedAnswerBackgroundColor: _propTypes["default"].string,
|
|
146
|
+
tagName: _propTypes["default"].string,
|
|
144
147
|
isSelectionButtonBelow: _propTypes["default"].bool
|
|
145
148
|
};
|
|
146
149
|
|
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","isSelectionButtonBelow","selectedAnswerBackgroundColor","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","choiceBackground","backgroundColor","React","Component","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","theme","paddingTop","spacing","unit","paddingBottom","paddingLeft","paddingRight","borderBottom","palette","grey","marginRight"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;IAEaA,M;;;;;;;;;;;;;;;iGAGA,UAACC,MAAD,EAAY;AACrB,wBAAsC,MAAKC,KAA3C;AAAA,UAAQC,QAAR,eAAQA,QAAR;AAAA,UAAkBC,eAAlB,eAAkBA,eAAlB;;AAEA,UAAI,CAACD,QAAL,EAAe;AACbC,QAAAA,eAAe,CAACH,MAAD,CAAf;AACD;AACF,K;;;;;;WAED,kBAAS;AAAA;;AACP,
|
|
1
|
+
{"version":3,"sources":["../src/choice.jsx"],"names":["Choice","choice","props","disabled","onChoiceChanged","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","checked","correctness","displayKey","classes","choicesLayout","gridColumns","isSelectionButtonBelow","selectedAnswerBackgroundColor","tagName","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","choiceBackground","backgroundColor","React","Component","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","theme","paddingTop","spacing","unit","paddingBottom","paddingLeft","paddingRight","borderBottom","palette","grey","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';\n\nimport ChoiceInput from './choice-input';\n\nexport class Choice extends React.Component {\n static propTypes = {};\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 isSelectionButtonBelow,\n selectedAnswerBackgroundColor,\n tagName\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 onChange: this.onChange,\n isEvaluateMode,\n isSelectionButtonBelow,\n tagName,\n };\n\n const names = classNames(classes.choice, {\n [classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n const choiceBackground = selectedAnswerBackgroundColor && checked ? selectedAnswerBackgroundColor : 'initial';\n\n return (\n <div className={choiceClass} key={index} style={{ backgroundColor: choiceBackground }}>\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 selectedAnswerBackgroundColor: PropTypes.string,\n tagName: PropTypes.string,\n isSelectionButtonBelow: PropTypes.bool\n};\n\nexport default withStyles((theme) => ({\n choice: {\n paddingTop: theme.spacing.unit * 2.5,\n paddingBottom: theme.spacing.unit + 2,\n paddingLeft: theme.spacing.unit + 2,\n paddingRight: 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/multiple-choice.js
CHANGED
|
@@ -331,7 +331,9 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
|
|
|
331
331
|
visible: 'Hide Teacher Instructions'
|
|
332
332
|
}
|
|
333
333
|
}, teacherInstructionsDiv) : teacherInstructionsDiv), /*#__PURE__*/_react["default"].createElement("fieldset", {
|
|
334
|
-
|
|
334
|
+
tabIndex: 0,
|
|
335
|
+
className: classes.fieldset,
|
|
336
|
+
role: choiceMode === 'radio' ? 'radiogroup' : 'group'
|
|
335
337
|
}, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
|
|
336
338
|
className: "prompt",
|
|
337
339
|
defaultClassName: "prompt",
|
|
@@ -360,6 +362,7 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
|
|
|
360
362
|
isEvaluateMode: isEvaluateMode,
|
|
361
363
|
choiceMode: choiceMode,
|
|
362
364
|
disabled: disabled,
|
|
365
|
+
tagName: partLabel ? "group-".concat(partLabel) : 'group',
|
|
363
366
|
onChoiceChanged: _this3.handleChange,
|
|
364
367
|
hideTick: choice.hideTick,
|
|
365
368
|
checked: _this3.getChecked(choice),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/multiple-choice.jsx"],"names":["translator","Translator","styles","theme","main","color","text","backgroundColor","background","position","partLabel","display","fontSize","margin","fontWeight","paddingBottom","spacing","unit","teacherInstructions","marginBottom","horizontalLayout","flexDirection","flexWrap","gridLayout","fieldset","border","padding","minWidth","srOnly","left","top","width","height","overflow","errorText","typography","palette","error","paddingTop","MultipleChoice","props","event","target","value","checked","maxSelections","onChoiceChanged","session","length","setState","maxSelectionsErrorState","selected","selector","mode","showCorrect","state","onShowCorrectToggle","choice","isCorrect","correct","isChecked","isSelected","undefined","alwaysShowCorrect","onToggle","bind","sessionValue","indexOf","nextProps","correctResponse","index","keyMode","String","fromCharCode","toUpperCase","choiceMode","classes","disabled","className","choices","gridColumns","prompt","responseCorrect","animationsDisabled","language","isSelectionButtonBelow","minSelections","autoplayAudioEnabled","customAudioButton","isEvaluateMode","showCorrectAnswerToggle","columnsStyle","gridTemplateColumns","selections","teacherInstructionsDiv","getMultipleChoiceMinSelectionErrorMessage","t","lng","renderHeading","hidden","visible","choicesLayout","map","selectedAnswerBackgroundColor","handleChange","hideTick","getChecked","getCorrectness","indexToSymbol","React","Component","PropTypes","string","oneOf","array","object","bool","func","isRequired","number","playImage","pauseImage","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nimport StyledChoice from './choice';\n\n// MultipleChoice\n\nconst { translator } = Translator;\n\nconst styles = (theme) => ({\n main: {\n color: color.text(),\n backgroundColor: color.background(),\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n position: 'relative'\n },\n partLabel: {\n display: 'block',\n fontSize: 'inherit',\n margin: '0',\n fontWeight: 'normal',\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 srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\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 language: PropTypes.string,\n selectedAnswerBackgroundColor: PropTypes.string,\n onShowCorrectToggle: PropTypes.func,\n isSelectionButtonBelow: PropTypes.bool,\n minSelections: PropTypes.number,\n maxSelections: PropTypes.number,\n autoplayAudioEnabled: PropTypes.bool,\n customAudioButton: {\n playImage: PropTypes.string,\n pauseImage: PropTypes.string,\n }\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: this.props.alwaysShowCorrect || false,\n maxSelectionsErrorState: 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 was added for accessibility. Please see comments and videos from PD-2441.\n handleChange = (event) => {\n const { value, checked } = event.target;\n const { maxSelections, onChoiceChanged, session } = this.props;\n\n if (session.value && session.value.length >= maxSelections) {\n // show/hide max selections error when user select/deselect an answer\n this.setState({ maxSelectionsErrorState: checked });\n\n if (checked) {\n // prevent selecting more answers\n return;\n }\n }\n\n onChoiceChanged({ value, selected: checked, selector: 'Mouse' });\n };\n\n onToggle = () => {\n if (this.props.mode === 'evaluate') {\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n if (this.props.onShowCorrectToggle) {\n this.props.onShowCorrectToggle();\n }\n });\n }\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!nextProps.correctResponse && this.state.showCorrect !== false) {\n this.setState({ showCorrect: false }, () => {\n if (this.props.onShowCorrectToggle) {\n this.props.onShowCorrectToggle();\n }\n });\n }\n\n if (nextProps.alwaysShowCorrect && this.state.showCorrect !== true) {\n this.setState({ showCorrect: true }, () => {\n if (this.props.onShowCorrectToggle) {\n this.props.onShowCorrectToggle();\n }\n });\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 return this.isSelected(choice.value);\n }\n\n // renderHeading function was added for accessibility.\n renderHeading() {\n const { mode, choiceMode, classes } = this.props;\n\n if (mode !== 'gather') {\n return null;\n }\n\n return choiceMode === 'radio' ? (\n <h2 className={classes.srOnly}>Multiple Choice Question</h2>\n ) : (\n <h2 className={classes.srOnly}>Multiple Select Question</h2>\n );\n }\n\n render() {\n const {\n mode,\n disabled,\n className,\n choices = [],\n choiceMode,\n gridColumns,\n partLabel,\n prompt,\n responseCorrect,\n teacherInstructions,\n classes,\n alwaysShowCorrect,\n animationsDisabled,\n language,\n isSelectionButtonBelow,\n minSelections,\n maxSelections,\n autoplayAudioEnabled,\n session,\n customAudioButton\n } = this.props;\n const { showCorrect, maxSelectionsErrorState } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;\n const columnsStyle = gridColumns > 1 ? { gridTemplateColumns: `repeat(${gridColumns}, 1fr)` } : undefined;\n const selections = (session.value && session.value.length) || 0;\n\n const teacherInstructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n const getMultipleChoiceMinSelectionErrorMessage = () => {\n if (minSelections && maxSelections) {\n return minSelections === maxSelections\n ? translator.t('translation:multipleChoice:minmaxSelections_equal', { lng: language, minSelections })\n : translator.t('translation:multipleChoice:minmaxSelections_range', { lng: language, minSelections, maxSelections });\n }\n\n if (minSelections) {\n return translator.t('translation:multipleChoice:minSelections', { lng: language, minSelections });\n }\n\n return '';\n };\n\n return (\n <div id={'main-container'} className={classNames(classes.main, className, 'multiple-choice')}>\n {partLabel && <h3 className={classes.partLabel}>{partLabel}</h3>}\n\n {this.renderHeading()}\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\n className=\"prompt\"\n defaultClassName=\"prompt\"\n prompt={prompt}\n tagName={'legend'}\n autoplayAudioEnabled={autoplayAudioEnabled}\n customAudioButton={customAudioButton}\n />\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.onToggle.bind(this)}\n language={language}\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 selectedAnswerBackgroundColor={this.props.selectedAnswerBackgroundColor}\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 onChoiceChanged={this.handleChange}\n hideTick={choice.hideTick}\n checked={this.getChecked(choice)}\n correctness={isEvaluateMode ? this.getCorrectness(choice) : undefined}\n displayKey={this.indexToSymbol(index)}\n isSelectionButtonBelow={isSelectionButtonBelow}\n />\n ))}\n </div>\n </fieldset>\n\n {choiceMode === 'checkbox' && (selections < minSelections) && (\n <div className={classes.errorText}>\n {getMultipleChoiceMinSelectionErrorMessage()}\n </div>\n )}\n {choiceMode === 'checkbox' && maxSelectionsErrorState && (\n <div className={classes.errorText}>\n {translator.t(`translation:multipleChoice:maxSelections_${maxSelections === 1 ? 'one' : 'other'}`, {\n lng: language,\n maxSelections,\n })}\n </div>\n )}\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":["translator","Translator","styles","theme","main","color","text","backgroundColor","background","position","partLabel","display","fontSize","margin","fontWeight","paddingBottom","spacing","unit","teacherInstructions","marginBottom","horizontalLayout","flexDirection","flexWrap","gridLayout","fieldset","border","padding","minWidth","srOnly","left","top","width","height","overflow","errorText","typography","palette","error","paddingTop","MultipleChoice","props","event","target","value","checked","maxSelections","onChoiceChanged","session","length","setState","maxSelectionsErrorState","selected","selector","mode","showCorrect","state","onShowCorrectToggle","choice","isCorrect","correct","isChecked","isSelected","undefined","alwaysShowCorrect","onToggle","bind","sessionValue","indexOf","nextProps","correctResponse","index","keyMode","String","fromCharCode","toUpperCase","choiceMode","classes","disabled","className","choices","gridColumns","prompt","responseCorrect","animationsDisabled","language","isSelectionButtonBelow","minSelections","autoplayAudioEnabled","customAudioButton","isEvaluateMode","showCorrectAnswerToggle","columnsStyle","gridTemplateColumns","selections","teacherInstructionsDiv","getMultipleChoiceMinSelectionErrorMessage","t","lng","renderHeading","hidden","visible","choicesLayout","map","selectedAnswerBackgroundColor","handleChange","hideTick","getChecked","getCorrectness","indexToSymbol","React","Component","PropTypes","string","oneOf","array","object","bool","func","isRequired","number","playImage","pauseImage","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { CorrectAnswerToggle } from '@pie-lib/pie-toolbox/correct-answer-toggle';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport Translator from '@pie-lib/pie-toolbox/translator';\n\nimport StyledChoice from './choice';\n\n// MultipleChoice\n\nconst { translator } = Translator;\n\nconst styles = (theme) => ({\n main: {\n color: color.text(),\n backgroundColor: color.background(),\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n position: 'relative'\n },\n partLabel: {\n display: 'block',\n fontSize: 'inherit',\n margin: '0',\n fontWeight: 'normal',\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 srOnly: {\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\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 language: PropTypes.string,\n selectedAnswerBackgroundColor: PropTypes.string,\n onShowCorrectToggle: PropTypes.func,\n isSelectionButtonBelow: PropTypes.bool,\n minSelections: PropTypes.number,\n maxSelections: PropTypes.number,\n autoplayAudioEnabled: PropTypes.bool,\n customAudioButton: {\n playImage: PropTypes.string,\n pauseImage: PropTypes.string,\n }\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n showCorrect: this.props.alwaysShowCorrect || false,\n maxSelectionsErrorState: 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 was added for accessibility. Please see comments and videos from PD-2441.\n handleChange = (event) => {\n const { value, checked } = event.target;\n const { maxSelections, onChoiceChanged, session } = this.props;\n\n if (session.value && session.value.length >= maxSelections) {\n // show/hide max selections error when user select/deselect an answer\n this.setState({ maxSelectionsErrorState: checked });\n\n if (checked) {\n // prevent selecting more answers\n return;\n }\n }\n\n onChoiceChanged({ value, selected: checked, selector: 'Mouse' });\n };\n\n onToggle = () => {\n if (this.props.mode === 'evaluate') {\n this.setState({ showCorrect: !this.state.showCorrect }, () => {\n if (this.props.onShowCorrectToggle) {\n this.props.onShowCorrectToggle();\n }\n });\n }\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!nextProps.correctResponse && this.state.showCorrect !== false) {\n this.setState({ showCorrect: false }, () => {\n if (this.props.onShowCorrectToggle) {\n this.props.onShowCorrectToggle();\n }\n });\n }\n\n if (nextProps.alwaysShowCorrect && this.state.showCorrect !== true) {\n this.setState({ showCorrect: true }, () => {\n if (this.props.onShowCorrectToggle) {\n this.props.onShowCorrectToggle();\n }\n });\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 return this.isSelected(choice.value);\n }\n\n // renderHeading function was added for accessibility.\n renderHeading() {\n const { mode, choiceMode, classes } = this.props;\n\n if (mode !== 'gather') {\n return null;\n }\n\n return choiceMode === 'radio' ? (\n <h2 className={classes.srOnly}>Multiple Choice Question</h2>\n ) : (\n <h2 className={classes.srOnly}>Multiple Select Question</h2>\n );\n }\n\n render() {\n const {\n mode,\n disabled,\n className,\n choices = [],\n choiceMode,\n gridColumns,\n partLabel,\n prompt,\n responseCorrect,\n teacherInstructions,\n classes,\n alwaysShowCorrect,\n animationsDisabled,\n language,\n isSelectionButtonBelow,\n minSelections,\n maxSelections,\n autoplayAudioEnabled,\n session,\n customAudioButton\n } = this.props;\n const { showCorrect, maxSelectionsErrorState } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;\n const columnsStyle = gridColumns > 1 ? { gridTemplateColumns: `repeat(${gridColumns}, 1fr)` } : undefined;\n const selections = (session.value && session.value.length) || 0;\n\n const teacherInstructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n const getMultipleChoiceMinSelectionErrorMessage = () => {\n if (minSelections && maxSelections) {\n return minSelections === maxSelections\n ? translator.t('translation:multipleChoice:minmaxSelections_equal', { lng: language, minSelections })\n : translator.t('translation:multipleChoice:minmaxSelections_range', { lng: language, minSelections, maxSelections });\n }\n\n if (minSelections) {\n return translator.t('translation:multipleChoice:minSelections', { lng: language, minSelections });\n }\n\n return '';\n };\n\n return (\n <div id={'main-container'} className={classNames(classes.main, className, 'multiple-choice')}>\n {partLabel && <h3 className={classes.partLabel}>{partLabel}</h3>}\n\n {this.renderHeading()}\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 tabIndex={0} className={classes.fieldset} role={choiceMode === 'radio' ? 'radiogroup' : 'group'}>\n <PreviewPrompt\n className=\"prompt\"\n defaultClassName=\"prompt\"\n prompt={prompt}\n tagName={'legend'}\n autoplayAudioEnabled={autoplayAudioEnabled}\n customAudioButton={customAudioButton}\n />\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.onToggle.bind(this)}\n language={language}\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 selectedAnswerBackgroundColor={this.props.selectedAnswerBackgroundColor}\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 tagName={partLabel ? `group-${partLabel}`: 'group'}\n onChoiceChanged={this.handleChange}\n hideTick={choice.hideTick}\n checked={this.getChecked(choice)}\n correctness={isEvaluateMode ? this.getCorrectness(choice) : undefined}\n displayKey={this.indexToSymbol(index)}\n isSelectionButtonBelow={isSelectionButtonBelow}\n />\n ))}\n </div>\n </fieldset>\n\n {choiceMode === 'checkbox' && (selections < minSelections) && (\n <div className={classes.errorText}>\n {getMultipleChoiceMinSelectionErrorMessage()}\n </div>\n )}\n {choiceMode === 'checkbox' && maxSelectionsErrorState && (\n <div className={classes.errorText}>\n {translator.t(`translation:multipleChoice:maxSelections_${maxSelections === 1 ? 'one' : 'other'}`, {\n lng: language,\n maxSelections,\n })}\n </div>\n )}\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/module/configure.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_lodash, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_react_dom, _dll_classnames, _dll_lodash, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.6/module/index.js";
|
|
2
2
|
import {_dll_pie_lib__pie_toolbox_editable_html, _dll_pie_lib__pie_toolbox_config_ui, _dll_pie_lib__pie_toolbox_render_ui} from "../../../@pie-lib/pie-toolbox-module@7.0.4/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
package/module/element.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_debug, _dll_pie_lib__pie_toolbox_math_rendering} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.6/module/index.js";
|
|
2
2
|
import {_dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@7.0.4/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
|
@@ -12272,7 +12272,7 @@ const StyledCheckbox = styles$b.withStyles(inputStyles)(props => {
|
|
|
12272
12272
|
});
|
|
12273
12273
|
});
|
|
12274
12274
|
const StyledRadio = styles$b.withStyles(inputStyles)(props => {
|
|
12275
|
-
const {correctness, classes, checked, onChange, disabled, value, id} = props;
|
|
12275
|
+
const {correctness, classes, checked, onChange, disabled, value, id, tagName} = props;
|
|
12276
12276
|
const key = k => correctness ? `${correctness}-${k}` : k;
|
|
12277
12277
|
const resolved = {
|
|
12278
12278
|
root: classes[key('root')],
|
|
@@ -12292,6 +12292,7 @@ const StyledRadio = styles$b.withStyles(inputStyles)(props => {
|
|
|
12292
12292
|
disableRipple: true,
|
|
12293
12293
|
...miniProps,
|
|
12294
12294
|
className: CLASS_NAME,
|
|
12295
|
+
name: tagName,
|
|
12295
12296
|
classes: {
|
|
12296
12297
|
root: resolved.root,
|
|
12297
12298
|
checked: resolved.checked,
|
|
@@ -12345,7 +12346,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12345
12346
|
return 'choice-' + (Math.random() * 10000).toFixed();
|
|
12346
12347
|
}
|
|
12347
12348
|
render() {
|
|
12348
|
-
const {choiceMode, disabled, displayKey, feedback, label, correctness, classes, className, rationale, hideTick, isEvaluateMode, choicesLayout, value, checked, isSelectionButtonBelow} = this.props;
|
|
12349
|
+
const {choiceMode, disabled, displayKey, feedback, label, correctness, classes, className, rationale, hideTick, isEvaluateMode, choicesLayout, value, checked, tagName, isSelectionButtonBelow} = this.props;
|
|
12349
12350
|
const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
|
|
12350
12351
|
const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
|
|
12351
12352
|
const holderClassNames = classNames$2(classes.checkboxHolder, {
|
|
@@ -12358,7 +12359,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12358
12359
|
__self: this,
|
|
12359
12360
|
__source: {
|
|
12360
12361
|
fileName: _jsxFileName$3,
|
|
12361
|
-
lineNumber:
|
|
12362
|
+
lineNumber: 255
|
|
12362
12363
|
}
|
|
12363
12364
|
}, displayKey, ".", '\u00A0', React$4.createElement(PreviewPrompt$1, {
|
|
12364
12365
|
className: "label",
|
|
@@ -12367,7 +12368,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12367
12368
|
__self: this,
|
|
12368
12369
|
__source: {
|
|
12369
12370
|
fileName: _jsxFileName$3,
|
|
12370
|
-
lineNumber:
|
|
12371
|
+
lineNumber: 257
|
|
12371
12372
|
}
|
|
12372
12373
|
})) : React$4.createElement(PreviewPrompt$1, {
|
|
12373
12374
|
className: "label",
|
|
@@ -12376,7 +12377,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12376
12377
|
__self: this,
|
|
12377
12378
|
__source: {
|
|
12378
12379
|
fileName: _jsxFileName$3,
|
|
12379
|
-
lineNumber:
|
|
12380
|
+
lineNumber: 260
|
|
12380
12381
|
}
|
|
12381
12382
|
}));
|
|
12382
12383
|
const screenReaderLabel = React$4.createElement('span', {
|
|
@@ -12385,13 +12386,14 @@ class ChoiceInput extends React$4.Component {
|
|
|
12385
12386
|
__self: this,
|
|
12386
12387
|
__source: {
|
|
12387
12388
|
fileName: _jsxFileName$3,
|
|
12388
|
-
lineNumber:
|
|
12389
|
+
lineNumber: 266
|
|
12389
12390
|
}
|
|
12390
12391
|
}, choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below');
|
|
12391
12392
|
const tagProps = {
|
|
12392
12393
|
disabled,
|
|
12393
12394
|
checked,
|
|
12394
12395
|
correctness,
|
|
12396
|
+
tagName,
|
|
12395
12397
|
value,
|
|
12396
12398
|
id: this.choiceId,
|
|
12397
12399
|
onChange: this.onToggleChoice,
|
|
@@ -12403,7 +12405,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12403
12405
|
__self: this,
|
|
12404
12406
|
__source: {
|
|
12405
12407
|
fileName: _jsxFileName$3,
|
|
12406
|
-
lineNumber:
|
|
12408
|
+
lineNumber: 293
|
|
12407
12409
|
}
|
|
12408
12410
|
}, hasMathOrImage && screenReaderLabel, React$4.createElement(Tag, {
|
|
12409
12411
|
...tagProps,
|
|
@@ -12413,14 +12415,14 @@ class ChoiceInput extends React$4.Component {
|
|
|
12413
12415
|
__self: this,
|
|
12414
12416
|
__source: {
|
|
12415
12417
|
fileName: _jsxFileName$3,
|
|
12416
|
-
lineNumber:
|
|
12418
|
+
lineNumber: 295
|
|
12417
12419
|
}
|
|
12418
12420
|
}), displayKey ? `${displayKey}.` : '') : React$4.createElement(React$4.Fragment, null, hasMathOrImage && screenReaderLabel, React$4.createElement(Tag, {
|
|
12419
12421
|
...tagProps,
|
|
12420
12422
|
__self: this,
|
|
12421
12423
|
__source: {
|
|
12422
12424
|
fileName: _jsxFileName$3,
|
|
12423
|
-
lineNumber:
|
|
12425
|
+
lineNumber: 301
|
|
12424
12426
|
}
|
|
12425
12427
|
}));
|
|
12426
12428
|
return React$4.createElement('div', {
|
|
@@ -12428,28 +12430,28 @@ class ChoiceInput extends React$4.Component {
|
|
|
12428
12430
|
__self: this,
|
|
12429
12431
|
__source: {
|
|
12430
12432
|
fileName: _jsxFileName$3,
|
|
12431
|
-
lineNumber:
|
|
12433
|
+
lineNumber: 306
|
|
12432
12434
|
}
|
|
12433
12435
|
}, React$4.createElement('div', {
|
|
12434
12436
|
className: classes.row,
|
|
12435
12437
|
__self: this,
|
|
12436
12438
|
__source: {
|
|
12437
12439
|
fileName: _jsxFileName$3,
|
|
12438
|
-
lineNumber:
|
|
12440
|
+
lineNumber: 307
|
|
12439
12441
|
}
|
|
12440
12442
|
}, !hideTick && isEvaluateMode && React$4.createElement(FeedbackTick$1, {
|
|
12441
12443
|
correctness: correctness,
|
|
12442
12444
|
__self: this,
|
|
12443
12445
|
__source: {
|
|
12444
12446
|
fileName: _jsxFileName$3,
|
|
12445
|
-
lineNumber:
|
|
12447
|
+
lineNumber: 308
|
|
12446
12448
|
}
|
|
12447
12449
|
}), React$4.createElement('div', {
|
|
12448
12450
|
className: classNames$2(holderClassNames, 'checkbox-holder'),
|
|
12449
12451
|
__self: this,
|
|
12450
12452
|
__source: {
|
|
12451
12453
|
fileName: _jsxFileName$3,
|
|
12452
|
-
lineNumber:
|
|
12454
|
+
lineNumber: 309
|
|
12453
12455
|
}
|
|
12454
12456
|
}, React$4.createElement(StyledFormControlLabel, {
|
|
12455
12457
|
label: choicelabel,
|
|
@@ -12460,7 +12462,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12460
12462
|
__self: this,
|
|
12461
12463
|
__source: {
|
|
12462
12464
|
fileName: _jsxFileName$3,
|
|
12463
|
-
lineNumber:
|
|
12465
|
+
lineNumber: 310
|
|
12464
12466
|
}
|
|
12465
12467
|
}))), rationale && React$4.createElement(PreviewPrompt$1, {
|
|
12466
12468
|
className: "rationale",
|
|
@@ -12469,7 +12471,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12469
12471
|
__self: this,
|
|
12470
12472
|
__source: {
|
|
12471
12473
|
fileName: _jsxFileName$3,
|
|
12472
|
-
lineNumber:
|
|
12474
|
+
lineNumber: 319
|
|
12473
12475
|
}
|
|
12474
12476
|
}), React$4.createElement(Feedback, {
|
|
12475
12477
|
feedback: feedback,
|
|
@@ -12477,7 +12479,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12477
12479
|
__self: this,
|
|
12478
12480
|
__source: {
|
|
12479
12481
|
fileName: _jsxFileName$3,
|
|
12480
|
-
lineNumber:
|
|
12482
|
+
lineNumber: 320
|
|
12481
12483
|
}
|
|
12482
12484
|
}));
|
|
12483
12485
|
}
|
|
@@ -12506,7 +12508,7 @@ class Choice extends React$3.Component {
|
|
|
12506
12508
|
};
|
|
12507
12509
|
}
|
|
12508
12510
|
render() {
|
|
12509
|
-
const {choice, index, choicesLength, showCorrect, isEvaluateMode, choiceMode, disabled, checked, correctness, displayKey, classes, choicesLayout, gridColumns, isSelectionButtonBelow, selectedAnswerBackgroundColor} = this.props;
|
|
12511
|
+
const {choice, index, choicesLength, showCorrect, isEvaluateMode, choiceMode, disabled, checked, correctness, displayKey, classes, choicesLayout, gridColumns, isSelectionButtonBelow, selectedAnswerBackgroundColor, tagName} = this.props;
|
|
12510
12512
|
const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
|
|
12511
12513
|
const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
|
|
12512
12514
|
const choiceProps = {
|
|
@@ -12522,7 +12524,8 @@ class Choice extends React$3.Component {
|
|
|
12522
12524
|
gridColumns,
|
|
12523
12525
|
onChange: this.onChange,
|
|
12524
12526
|
isEvaluateMode,
|
|
12525
|
-
isSelectionButtonBelow
|
|
12527
|
+
isSelectionButtonBelow,
|
|
12528
|
+
tagName
|
|
12526
12529
|
};
|
|
12527
12530
|
const names = classNames$1(classes.choice, {
|
|
12528
12531
|
[classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',
|
|
@@ -12538,7 +12541,7 @@ class Choice extends React$3.Component {
|
|
|
12538
12541
|
__self: this,
|
|
12539
12542
|
__source: {
|
|
12540
12543
|
fileName: _jsxFileName$2,
|
|
12541
|
-
lineNumber:
|
|
12544
|
+
lineNumber: 67
|
|
12542
12545
|
}
|
|
12543
12546
|
}, React$3.createElement(ChoiceInput$1, {
|
|
12544
12547
|
...choiceProps,
|
|
@@ -12546,7 +12549,7 @@ class Choice extends React$3.Component {
|
|
|
12546
12549
|
__self: this,
|
|
12547
12550
|
__source: {
|
|
12548
12551
|
fileName: _jsxFileName$2,
|
|
12549
|
-
lineNumber:
|
|
12552
|
+
lineNumber: 68
|
|
12550
12553
|
}
|
|
12551
12554
|
}));
|
|
12552
12555
|
}
|
|
@@ -12568,6 +12571,7 @@ Choice.propTypes = {
|
|
|
12568
12571
|
choicesLayout: PropTypes$2.oneOf(['vertical', 'grid', 'horizontal']),
|
|
12569
12572
|
gridColumns: PropTypes$2.string,
|
|
12570
12573
|
selectedAnswerBackgroundColor: PropTypes$2.string,
|
|
12574
|
+
tagName: PropTypes$2.string,
|
|
12571
12575
|
isSelectionButtonBelow: PropTypes$2.bool
|
|
12572
12576
|
};
|
|
12573
12577
|
var StyledChoice = styles$b.withStyles(theme => ({
|
|
@@ -12875,7 +12879,9 @@ class MultipleChoice$1 extends React$2.Component {
|
|
|
12875
12879
|
lineNumber: 282
|
|
12876
12880
|
}
|
|
12877
12881
|
}, teacherInstructionsDiv) : teacherInstructionsDiv), React$2.createElement('fieldset', {
|
|
12882
|
+
tabIndex: 0,
|
|
12878
12883
|
className: classes.fieldset,
|
|
12884
|
+
role: choiceMode === 'radio' ? 'radiogroup' : 'group',
|
|
12879
12885
|
__self: this,
|
|
12880
12886
|
__source: {
|
|
12881
12887
|
fileName: _jsxFileName$1,
|
|
@@ -12926,6 +12932,7 @@ class MultipleChoice$1 extends React$2.Component {
|
|
|
12926
12932
|
isEvaluateMode: isEvaluateMode,
|
|
12927
12933
|
choiceMode: choiceMode,
|
|
12928
12934
|
disabled: disabled,
|
|
12935
|
+
tagName: partLabel ? `group-${partLabel}` : 'group',
|
|
12929
12936
|
onChoiceChanged: this.handleChange,
|
|
12930
12937
|
hideTick: choice.hideTick,
|
|
12931
12938
|
checked: this.getChecked(choice),
|
|
@@ -12942,14 +12949,14 @@ class MultipleChoice$1 extends React$2.Component {
|
|
|
12942
12949
|
__self: this,
|
|
12943
12950
|
__source: {
|
|
12944
12951
|
fileName: _jsxFileName$1,
|
|
12945
|
-
lineNumber:
|
|
12952
|
+
lineNumber: 348
|
|
12946
12953
|
}
|
|
12947
12954
|
}, getMultipleChoiceMinSelectionErrorMessage()), choiceMode === 'checkbox' && maxSelectionsErrorState && React$2.createElement('div', {
|
|
12948
12955
|
className: classes.errorText,
|
|
12949
12956
|
__self: this,
|
|
12950
12957
|
__source: {
|
|
12951
12958
|
fileName: _jsxFileName$1,
|
|
12952
|
-
lineNumber:
|
|
12959
|
+
lineNumber: 353
|
|
12953
12960
|
}
|
|
12954
12961
|
}, translator.t(`translation:multipleChoice:maxSelections_${maxSelections === 1 ? 'one' : 'other'}`, {
|
|
12955
12962
|
lng: language,
|
package/module/manifest.json
CHANGED
package/module/print.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_lib__pie_toolbox_math_rendering, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.
|
|
1
|
+
import {_dll_react, _dll_prop_types, _dll_classnames, _dll_react_dom, _dll_lodash, _dll_pie_lib__pie_toolbox_math_rendering, _dll_debug} from "../../../@pie-lib/pie-toolbox-math-rendering-module@4.1.6/module/index.js";
|
|
2
2
|
import {_dll_pie_lib__pie_toolbox_render_ui, _dll_pie_lib__pie_toolbox_correct_answer_toggle} from "../../../@pie-lib/pie-toolbox-module@7.0.4/module/index.js";
|
|
3
3
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
4
4
|
function getDefaultExportFromCjs(x) {
|
|
@@ -12272,7 +12272,7 @@ const StyledCheckbox = styles$b.withStyles(inputStyles)(props => {
|
|
|
12272
12272
|
});
|
|
12273
12273
|
});
|
|
12274
12274
|
const StyledRadio = styles$b.withStyles(inputStyles)(props => {
|
|
12275
|
-
const {correctness, classes, checked, onChange, disabled, value, id} = props;
|
|
12275
|
+
const {correctness, classes, checked, onChange, disabled, value, id, tagName} = props;
|
|
12276
12276
|
const key = k => correctness ? `${correctness}-${k}` : k;
|
|
12277
12277
|
const resolved = {
|
|
12278
12278
|
root: classes[key('root')],
|
|
@@ -12292,6 +12292,7 @@ const StyledRadio = styles$b.withStyles(inputStyles)(props => {
|
|
|
12292
12292
|
disableRipple: true,
|
|
12293
12293
|
...miniProps,
|
|
12294
12294
|
className: CLASS_NAME,
|
|
12295
|
+
name: tagName,
|
|
12295
12296
|
classes: {
|
|
12296
12297
|
root: resolved.root,
|
|
12297
12298
|
checked: resolved.checked,
|
|
@@ -12345,7 +12346,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12345
12346
|
return 'choice-' + (Math.random() * 10000).toFixed();
|
|
12346
12347
|
}
|
|
12347
12348
|
render() {
|
|
12348
|
-
const {choiceMode, disabled, displayKey, feedback, label, correctness, classes, className, rationale, hideTick, isEvaluateMode, choicesLayout, value, checked, isSelectionButtonBelow} = this.props;
|
|
12349
|
+
const {choiceMode, disabled, displayKey, feedback, label, correctness, classes, className, rationale, hideTick, isEvaluateMode, choicesLayout, value, checked, tagName, isSelectionButtonBelow} = this.props;
|
|
12349
12350
|
const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;
|
|
12350
12351
|
const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';
|
|
12351
12352
|
const holderClassNames = classNames$2(classes.checkboxHolder, {
|
|
@@ -12358,7 +12359,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12358
12359
|
__self: this,
|
|
12359
12360
|
__source: {
|
|
12360
12361
|
fileName: _jsxFileName$3,
|
|
12361
|
-
lineNumber:
|
|
12362
|
+
lineNumber: 255
|
|
12362
12363
|
}
|
|
12363
12364
|
}, displayKey, ".", '\u00A0', React$4.createElement(PreviewPrompt$1, {
|
|
12364
12365
|
className: "label",
|
|
@@ -12367,7 +12368,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12367
12368
|
__self: this,
|
|
12368
12369
|
__source: {
|
|
12369
12370
|
fileName: _jsxFileName$3,
|
|
12370
|
-
lineNumber:
|
|
12371
|
+
lineNumber: 257
|
|
12371
12372
|
}
|
|
12372
12373
|
})) : React$4.createElement(PreviewPrompt$1, {
|
|
12373
12374
|
className: "label",
|
|
@@ -12376,7 +12377,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12376
12377
|
__self: this,
|
|
12377
12378
|
__source: {
|
|
12378
12379
|
fileName: _jsxFileName$3,
|
|
12379
|
-
lineNumber:
|
|
12380
|
+
lineNumber: 260
|
|
12380
12381
|
}
|
|
12381
12382
|
}));
|
|
12382
12383
|
const screenReaderLabel = React$4.createElement('span', {
|
|
@@ -12385,13 +12386,14 @@ class ChoiceInput extends React$4.Component {
|
|
|
12385
12386
|
__self: this,
|
|
12386
12387
|
__source: {
|
|
12387
12388
|
fileName: _jsxFileName$3,
|
|
12388
|
-
lineNumber:
|
|
12389
|
+
lineNumber: 266
|
|
12389
12390
|
}
|
|
12390
12391
|
}, choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below');
|
|
12391
12392
|
const tagProps = {
|
|
12392
12393
|
disabled,
|
|
12393
12394
|
checked,
|
|
12394
12395
|
correctness,
|
|
12396
|
+
tagName,
|
|
12395
12397
|
value,
|
|
12396
12398
|
id: this.choiceId,
|
|
12397
12399
|
onChange: this.onToggleChoice,
|
|
@@ -12403,7 +12405,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12403
12405
|
__self: this,
|
|
12404
12406
|
__source: {
|
|
12405
12407
|
fileName: _jsxFileName$3,
|
|
12406
|
-
lineNumber:
|
|
12408
|
+
lineNumber: 293
|
|
12407
12409
|
}
|
|
12408
12410
|
}, hasMathOrImage && screenReaderLabel, React$4.createElement(Tag, {
|
|
12409
12411
|
...tagProps,
|
|
@@ -12413,14 +12415,14 @@ class ChoiceInput extends React$4.Component {
|
|
|
12413
12415
|
__self: this,
|
|
12414
12416
|
__source: {
|
|
12415
12417
|
fileName: _jsxFileName$3,
|
|
12416
|
-
lineNumber:
|
|
12418
|
+
lineNumber: 295
|
|
12417
12419
|
}
|
|
12418
12420
|
}), displayKey ? `${displayKey}.` : '') : React$4.createElement(React$4.Fragment, null, hasMathOrImage && screenReaderLabel, React$4.createElement(Tag, {
|
|
12419
12421
|
...tagProps,
|
|
12420
12422
|
__self: this,
|
|
12421
12423
|
__source: {
|
|
12422
12424
|
fileName: _jsxFileName$3,
|
|
12423
|
-
lineNumber:
|
|
12425
|
+
lineNumber: 301
|
|
12424
12426
|
}
|
|
12425
12427
|
}));
|
|
12426
12428
|
return React$4.createElement('div', {
|
|
@@ -12428,28 +12430,28 @@ class ChoiceInput extends React$4.Component {
|
|
|
12428
12430
|
__self: this,
|
|
12429
12431
|
__source: {
|
|
12430
12432
|
fileName: _jsxFileName$3,
|
|
12431
|
-
lineNumber:
|
|
12433
|
+
lineNumber: 306
|
|
12432
12434
|
}
|
|
12433
12435
|
}, React$4.createElement('div', {
|
|
12434
12436
|
className: classes.row,
|
|
12435
12437
|
__self: this,
|
|
12436
12438
|
__source: {
|
|
12437
12439
|
fileName: _jsxFileName$3,
|
|
12438
|
-
lineNumber:
|
|
12440
|
+
lineNumber: 307
|
|
12439
12441
|
}
|
|
12440
12442
|
}, !hideTick && isEvaluateMode && React$4.createElement(FeedbackTick$1, {
|
|
12441
12443
|
correctness: correctness,
|
|
12442
12444
|
__self: this,
|
|
12443
12445
|
__source: {
|
|
12444
12446
|
fileName: _jsxFileName$3,
|
|
12445
|
-
lineNumber:
|
|
12447
|
+
lineNumber: 308
|
|
12446
12448
|
}
|
|
12447
12449
|
}), React$4.createElement('div', {
|
|
12448
12450
|
className: classNames$2(holderClassNames, 'checkbox-holder'),
|
|
12449
12451
|
__self: this,
|
|
12450
12452
|
__source: {
|
|
12451
12453
|
fileName: _jsxFileName$3,
|
|
12452
|
-
lineNumber:
|
|
12454
|
+
lineNumber: 309
|
|
12453
12455
|
}
|
|
12454
12456
|
}, React$4.createElement(StyledFormControlLabel, {
|
|
12455
12457
|
label: choicelabel,
|
|
@@ -12460,7 +12462,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12460
12462
|
__self: this,
|
|
12461
12463
|
__source: {
|
|
12462
12464
|
fileName: _jsxFileName$3,
|
|
12463
|
-
lineNumber:
|
|
12465
|
+
lineNumber: 310
|
|
12464
12466
|
}
|
|
12465
12467
|
}))), rationale && React$4.createElement(PreviewPrompt$1, {
|
|
12466
12468
|
className: "rationale",
|
|
@@ -12469,7 +12471,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12469
12471
|
__self: this,
|
|
12470
12472
|
__source: {
|
|
12471
12473
|
fileName: _jsxFileName$3,
|
|
12472
|
-
lineNumber:
|
|
12474
|
+
lineNumber: 319
|
|
12473
12475
|
}
|
|
12474
12476
|
}), React$4.createElement(Feedback, {
|
|
12475
12477
|
feedback: feedback,
|
|
@@ -12477,7 +12479,7 @@ class ChoiceInput extends React$4.Component {
|
|
|
12477
12479
|
__self: this,
|
|
12478
12480
|
__source: {
|
|
12479
12481
|
fileName: _jsxFileName$3,
|
|
12480
|
-
lineNumber:
|
|
12482
|
+
lineNumber: 320
|
|
12481
12483
|
}
|
|
12482
12484
|
}));
|
|
12483
12485
|
}
|
|
@@ -12506,7 +12508,7 @@ class Choice extends React$3.Component {
|
|
|
12506
12508
|
};
|
|
12507
12509
|
}
|
|
12508
12510
|
render() {
|
|
12509
|
-
const {choice, index, choicesLength, showCorrect, isEvaluateMode, choiceMode, disabled, checked, correctness, displayKey, classes, choicesLayout, gridColumns, isSelectionButtonBelow, selectedAnswerBackgroundColor} = this.props;
|
|
12511
|
+
const {choice, index, choicesLength, showCorrect, isEvaluateMode, choiceMode, disabled, checked, correctness, displayKey, classes, choicesLayout, gridColumns, isSelectionButtonBelow, selectedAnswerBackgroundColor, tagName} = this.props;
|
|
12510
12512
|
const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
|
|
12511
12513
|
const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
|
|
12512
12514
|
const choiceProps = {
|
|
@@ -12522,7 +12524,8 @@ class Choice extends React$3.Component {
|
|
|
12522
12524
|
gridColumns,
|
|
12523
12525
|
onChange: this.onChange,
|
|
12524
12526
|
isEvaluateMode,
|
|
12525
|
-
isSelectionButtonBelow
|
|
12527
|
+
isSelectionButtonBelow,
|
|
12528
|
+
tagName
|
|
12526
12529
|
};
|
|
12527
12530
|
const names = classNames$1(classes.choice, {
|
|
12528
12531
|
[classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',
|
|
@@ -12538,7 +12541,7 @@ class Choice extends React$3.Component {
|
|
|
12538
12541
|
__self: this,
|
|
12539
12542
|
__source: {
|
|
12540
12543
|
fileName: _jsxFileName$2,
|
|
12541
|
-
lineNumber:
|
|
12544
|
+
lineNumber: 67
|
|
12542
12545
|
}
|
|
12543
12546
|
}, React$3.createElement(ChoiceInput$1, {
|
|
12544
12547
|
...choiceProps,
|
|
@@ -12546,7 +12549,7 @@ class Choice extends React$3.Component {
|
|
|
12546
12549
|
__self: this,
|
|
12547
12550
|
__source: {
|
|
12548
12551
|
fileName: _jsxFileName$2,
|
|
12549
|
-
lineNumber:
|
|
12552
|
+
lineNumber: 68
|
|
12550
12553
|
}
|
|
12551
12554
|
}));
|
|
12552
12555
|
}
|
|
@@ -12568,6 +12571,7 @@ Choice.propTypes = {
|
|
|
12568
12571
|
choicesLayout: PropTypes$2.oneOf(['vertical', 'grid', 'horizontal']),
|
|
12569
12572
|
gridColumns: PropTypes$2.string,
|
|
12570
12573
|
selectedAnswerBackgroundColor: PropTypes$2.string,
|
|
12574
|
+
tagName: PropTypes$2.string,
|
|
12571
12575
|
isSelectionButtonBelow: PropTypes$2.bool
|
|
12572
12576
|
};
|
|
12573
12577
|
var StyledChoice = styles$b.withStyles(theme => ({
|
|
@@ -12875,7 +12879,9 @@ class MultipleChoice extends React$2.Component {
|
|
|
12875
12879
|
lineNumber: 282
|
|
12876
12880
|
}
|
|
12877
12881
|
}, teacherInstructionsDiv) : teacherInstructionsDiv), React$2.createElement('fieldset', {
|
|
12882
|
+
tabIndex: 0,
|
|
12878
12883
|
className: classes.fieldset,
|
|
12884
|
+
role: choiceMode === 'radio' ? 'radiogroup' : 'group',
|
|
12879
12885
|
__self: this,
|
|
12880
12886
|
__source: {
|
|
12881
12887
|
fileName: _jsxFileName$1,
|
|
@@ -12926,6 +12932,7 @@ class MultipleChoice extends React$2.Component {
|
|
|
12926
12932
|
isEvaluateMode: isEvaluateMode,
|
|
12927
12933
|
choiceMode: choiceMode,
|
|
12928
12934
|
disabled: disabled,
|
|
12935
|
+
tagName: partLabel ? `group-${partLabel}` : 'group',
|
|
12929
12936
|
onChoiceChanged: this.handleChange,
|
|
12930
12937
|
hideTick: choice.hideTick,
|
|
12931
12938
|
checked: this.getChecked(choice),
|
|
@@ -12942,14 +12949,14 @@ class MultipleChoice extends React$2.Component {
|
|
|
12942
12949
|
__self: this,
|
|
12943
12950
|
__source: {
|
|
12944
12951
|
fileName: _jsxFileName$1,
|
|
12945
|
-
lineNumber:
|
|
12952
|
+
lineNumber: 348
|
|
12946
12953
|
}
|
|
12947
12954
|
}, getMultipleChoiceMinSelectionErrorMessage()), choiceMode === 'checkbox' && maxSelectionsErrorState && React$2.createElement('div', {
|
|
12948
12955
|
className: classes.errorText,
|
|
12949
12956
|
__self: this,
|
|
12950
12957
|
__source: {
|
|
12951
12958
|
fileName: _jsxFileName$1,
|
|
12952
|
-
lineNumber:
|
|
12959
|
+
lineNumber: 353
|
|
12953
12960
|
}
|
|
12954
12961
|
}, translator.t(`translation:multipleChoice:maxSelections_${maxSelections === 1 ? 'one' : 'other'}`, {
|
|
12955
12962
|
lng: language,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/multiple-choice",
|
|
3
3
|
"repository": "pie-framework/pie-elements",
|
|
4
|
-
"version": "9.16.2-next.
|
|
4
|
+
"version": "9.16.2-next.12+3a2f4abdc",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"react-test-renderer": "^16.3.2",
|
|
20
20
|
"react-transition-group": "^2.3.1"
|
|
21
21
|
},
|
|
22
|
-
"gitHead": "
|
|
22
|
+
"gitHead": "3a2f4abdc1bf44b59c6d911da42f20dcffa25a8f",
|
|
23
23
|
"scripts": {
|
|
24
24
|
"postpublish": "../../scripts/postpublish"
|
|
25
25
|
},
|