@pie-element/multiple-choice 11.4.4-next.0 → 12.0.0-beta.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.
Files changed (51) hide show
  1. package/configure/lib/__tests__/root.test.js +286 -0
  2. package/configure/lib/defaults.js +3 -5
  3. package/configure/lib/defaults.js.map +1 -1
  4. package/configure/lib/index.js +156 -193
  5. package/configure/lib/index.js.map +1 -1
  6. package/configure/lib/main.js +325 -445
  7. package/configure/lib/main.js.map +1 -1
  8. package/configure/lib/utils.js +9 -9
  9. package/configure/lib/utils.js.map +1 -1
  10. package/configure/package.json +10 -8
  11. package/controller/lib/__tests__/index.test.js +520 -0
  12. package/controller/lib/__tests__/utils.test.js +8 -0
  13. package/controller/lib/defaults.js +3 -4
  14. package/controller/lib/defaults.js.map +1 -1
  15. package/controller/lib/index.js +145 -240
  16. package/controller/lib/index.js.map +1 -1
  17. package/controller/lib/utils.js +5 -17
  18. package/controller/lib/utils.js.map +1 -1
  19. package/controller/package.json +2 -2
  20. package/docs/demo/pie.manifest.json +11 -0
  21. package/lib/__tests__/choice-input-test.js +49 -0
  22. package/lib/__tests__/index-test.js +200 -0
  23. package/lib/__tests__/key-events-test.js +95 -0
  24. package/lib/__tests__/multiple-choice-test.js +101 -0
  25. package/lib/__tests__/session-updater-test.js +70 -0
  26. package/lib/choice-input.js +312 -369
  27. package/lib/choice-input.js.map +1 -1
  28. package/lib/choice.js +164 -220
  29. package/lib/choice.js.map +1 -1
  30. package/lib/feedback-tick.js +75 -115
  31. package/lib/feedback-tick.js.map +1 -1
  32. package/lib/index.js +242 -342
  33. package/lib/index.js.map +1 -1
  34. package/lib/main.js +39 -86
  35. package/lib/main.js.map +1 -1
  36. package/lib/multiple-choice.js +305 -397
  37. package/lib/multiple-choice.js.map +1 -1
  38. package/lib/print.js +40 -78
  39. package/lib/print.js.map +1 -1
  40. package/lib/session-updater.js +5 -16
  41. package/lib/session-updater.js.map +1 -1
  42. package/package.json +13 -16
  43. package/module/configure.js +0 -1
  44. package/module/controller.js +0 -3472
  45. package/module/demo.js +0 -86
  46. package/module/element.js +0 -1
  47. package/module/index.html +0 -21
  48. package/module/manifest.json +0 -14
  49. package/module/print-demo.js +0 -124
  50. package/module/print.html +0 -18
  51. package/module/print.js +0 -1
@@ -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","onKeyDown","inputRef","key","k","resolved","miniProps","StyledRadio","tagName","ChoiceInput","event","choiceMode","isArrowDown","isArrowUp","preventDefault","currentEl","document","getElementById","choiceId","fieldset","closest","groupCheckboxes","Array","from","querySelectorAll","currentIndex","findIndex","el","nextIndex","nextEl","focus","onToggleChoice","bind","generateChoiceId","descId","Math","random","toFixed","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","isSelectionButtonBelow","Tag","classSuffix","holderClassNames","choicelabel","screenReaderLabel","tagProps","handleKeyDown","hasMathOrImage","includes","control","autoFocusRef","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/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, onKeyDown, inputRef } = 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 inputRef={inputRef}\n aria-checked={checked}\n onKeyDown={onKeyDown}\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, inputRef } = 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 inputRef={inputRef}\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 tagName: 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 handleKeyDown = (event) => {\n const { choiceMode } = this.props;\n\n if (choiceMode !== 'checkbox') return;\n\n const isArrowDown = event.key === 'ArrowDown';\n const isArrowUp = event.key === 'ArrowUp';\n\n if (!isArrowDown && !isArrowUp) return;\n\n event.preventDefault();\n\n const currentEl = document.getElementById(this.choiceId);\n if (!currentEl) return;\n\n const fieldset = currentEl.closest('fieldset');\n if (!fieldset) return;\n\n const groupCheckboxes = Array.from(fieldset.querySelectorAll('input[type=\"checkbox\"]'));\n\n const currentIndex = groupCheckboxes.findIndex((el) => el === currentEl);\n if (currentIndex === -1) return;\n\n const nextIndex = isArrowDown ? currentIndex + 1 : currentIndex - 1;\n const nextEl = groupCheckboxes[nextIndex];\n\n if (nextEl) {\n nextEl.focus();\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 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 onKeyDown: this.handleKeyDown,\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} inputRef={this.props.autoFocusRef} />\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,"file":"choice-input.js","names":["_FormControlLabel","_interopRequireDefault","require","_react","_propTypes","_styles","_Box","_Checkbox","_renderUi","_Radio","_classnames","_feedbackTick","CLASS_NAME","Row","styled","Box","display","alignItems","backgroundColor","color","background","CheckboxHolder","flex","text","fontSize","BelowSelectionComponent","theme","marginLeft","spacing","SrOnly","position","left","top","width","height","overflow","StyledFormControlLabel","exports","FormControlLabel","letterSpacing","cursor","colorStyle","varName","fallback","getInputStyles","correctness","key","k","primaryLight","incorrect","correct","primary","disabled","opacity","pointerEvents","focusVisibleUnchecked","outline","focusUncheckedBorder","focusUnchecked","focusVisibleChecked","focusCheckedBorder","focusChecked","StyledCheckboxBase","Checkbox","shouldForwardProp","prop","styles","StyledCheckbox","props","checked","onChange","value","id","onKeyDown","inputRef","miniProps","default","createElement","_extends2","slotProps","input","ref","disableRipple","className","StyledRadioBase","Radio","StyledRadio","tagName","name","ChoiceInput","React","Component","constructor","_defineProperty2","event","choiceMode","isArrowDown","isArrowUp","preventDefault","currentEl","document","getElementById","choiceId","fieldset","closest","groupCheckboxes","Array","from","querySelectorAll","currentIndex","findIndex","el","nextIndex","nextEl","focus","onToggleChoice","bind","generateChoiceId","descId","Math","random","toFixed","render","displayKey","feedback","label","rationale","hideTick","isEvaluateMode","choicesLayout","isSelectionButtonBelow","Tag","classSuffix","holderSx","padding","margin","justifyContent","choicelabel","Fragment","component","PreviewPrompt","prompt","screenReaderLabel","tagProps","handleKeyDown","hasMathOrImage","includes","control","style","autoFocusRef","classNames","sx","htmlFor","labelPlacement","undefined","defaultClassName","Feedback","PropTypes","oneOf","string","bool","isRequired","func","_default"],"sources":["../src/choice-input.jsx"],"sourcesContent":["import FormControlLabel from '@mui/material/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport Box from '@mui/material/Box';\nimport Checkbox from '@mui/material/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport Radio from '@mui/material/Radio';\nimport classNames from 'classnames';\n\nimport FeedbackTick from './feedback-tick';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst Row = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n});\n\nconst CheckboxHolder = styled(Box)({\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\nconst BelowSelectionComponent = styled('span')(({ theme }) => ({\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(1)}px`,\n },\n}));\n\nconst SrOnly = styled('span')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nexport const StyledFormControlLabel = styled(FormControlLabel)({\n '& .MuiFormControlLabel-label': {\n color: `${color.text()} !important`,\n backgroundColor: color.background(),\n letterSpacing: 'normal',\n },\n '&.Mui-disabled *': {\n cursor: 'not-allowed !important',\n },\n});\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst getInputStyles = (correctness) => {\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n \n return {\n [key('root')]: {\n ...colorStyle('color', color.text()),\n ...(correctness ? {} : {\n '&:hover': { color: `${color.primaryLight()} !important` },\n }),\n ...(correctness === 'correct' ? colorStyle('correct-color', color.text()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-color', color.incorrect()) : {}),\n },\n [key('checked')]: {\n ...(correctness === 'correct' ? colorStyle('correct-selected-color', color.correct()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-checked', color.incorrect()) : {}),\n ...(!correctness ? colorStyle('selected-color', color.primary()) : {}),\n },\n [key('disabled')]: {\n ...colorStyle('disabled-color', color.text()),\n ...(correctness === 'correct' ? colorStyle('correct-disabled-color', color.disabled()) : {}),\n ...(correctness === 'incorrect' ? colorStyle('incorrect-disabled-color', color.disabled()) : {}),\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};\n\nconst StyledCheckboxBase = styled(Checkbox, {\n shouldForwardProp: (prop) => prop !== 'correctness',\n})(({ correctness }) => {\n const styles = getInputStyles(correctness);\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n \n return {\n [`&.${CLASS_NAME}`]: {\n ...styles[key('root')],\n '&.Mui-checked': styles[key('checked')],\n '&.Mui-disabled': correctness ? {} : styles[key('disabled')],\n },\n '&.Mui-focusVisible': {\n '&:not(.Mui-checked)': styles.focusVisibleUnchecked,\n '&.Mui-checked': styles.focusVisibleChecked,\n },\n };\n});\n\nexport const StyledCheckbox = (props) => {\n const { correctness, checked, onChange, disabled, value, id, onKeyDown, inputRef } = props;\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <StyledCheckboxBase\n id={id}\n slotProps={{ input: { ref: inputRef } }}\n aria-checked={checked}\n onKeyDown={onKeyDown}\n disableRipple\n {...miniProps}\n correctness={correctness}\n className={CLASS_NAME}\n />\n );\n};\n\nconst StyledRadioBase = styled(Radio, {\n shouldForwardProp: (prop) => prop !== 'correctness',\n})(({ correctness }) => {\n const styles = getInputStyles(correctness);\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n \n return {\n [`&.${CLASS_NAME}`]: {\n ...styles[key('root')],\n '&.Mui-checked': styles[key('checked')],\n '&.Mui-disabled': correctness ? {} : styles[key('disabled')],\n },\n '&.Mui-focusVisible': {\n '&:not(.Mui-checked)': styles.focusVisibleUnchecked,\n '&.Mui-checked': styles.focusVisibleChecked,\n },\n };\n});\n\nexport const StyledRadio = (props) => {\n const { correctness, checked, onChange, disabled, value, id, tagName, inputRef } = props;\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <StyledRadioBase\n id={id}\n slotProps={{ input: { ref: inputRef } }}\n aria-checked={checked}\n disableRipple\n {...miniProps}\n correctness={correctness}\n className={CLASS_NAME}\n name={tagName}\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 className: PropTypes.string,\n tagName: 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 handleKeyDown = (event) => {\n const { choiceMode } = this.props;\n\n if (choiceMode !== 'checkbox') return;\n\n const isArrowDown = event.key === 'ArrowDown';\n const isArrowUp = event.key === 'ArrowUp';\n\n if (!isArrowDown && !isArrowUp) return;\n\n event.preventDefault();\n\n const currentEl = document.getElementById(this.choiceId);\n if (!currentEl) return;\n\n const fieldset = currentEl.closest('fieldset');\n if (!fieldset) return;\n\n const groupCheckboxes = Array.from(fieldset.querySelectorAll('input[type=\"checkbox\"]'));\n\n const currentIndex = groupCheckboxes.findIndex((el) => el === currentEl);\n if (currentIndex === -1) return;\n\n const nextIndex = isArrowDown ? currentIndex + 1 : currentIndex - 1;\n const nextEl = groupCheckboxes[nextIndex];\n\n if (nextEl) {\n nextEl.focus();\n }\n };\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\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 holderSx = {\n ...(choicesLayout === 'horizontal' && {\n [`& .${CLASS_NAME}`]: {\n padding: '8px',\n margin: '4px 0 4px 4px',\n },\n }),\n ...(isSelectionButtonBelow && choicesLayout !== 'grid' && {\n '& > label': {\n alignItems: 'flex-start',\n },\n }),\n ...(isSelectionButtonBelow && choicesLayout === 'grid' && {\n justifyContent: 'center',\n '& > label': {\n alignItems: 'center',\n },\n }),\n };\n\n const choicelabel = (\n <>\n {displayKey && !isSelectionButtonBelow ? (\n <Row component=\"span\">\n {displayKey}.{'\\u00A0'}\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n </Row>\n ) : (\n <PreviewPrompt className=\"label\" prompt={label} tagName=\"span\" />\n )}\n </>\n );\n\n const screenReaderLabel = (\n <SrOnly id={this.descId}>\n {choiceMode === 'checkbox' ? 'Checkbox to select the answer below' : 'Radio button to select the answer below'}\n </SrOnly>\n );\n\n const tagProps = {\n disabled,\n checked,\n correctness,\n tagName,\n value,\n id: this.choiceId,\n onChange: this.onToggleChoice,\n onKeyDown: this.handleKeyDown,\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 <BelowSelectionComponent>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} style={{ padding: 0 }} />\n {displayKey ? `${displayKey}.` : ''}\n </BelowSelectionComponent>\n ) : (\n <>\n {hasMathOrImage && screenReaderLabel}\n <Tag {...tagProps} slotProps={{ input: { ref: this.props.autoFocusRef } }} />\n </>\n );\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <Row>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <CheckboxHolder className=\"checkbox-holder\" sx={holderSx}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n htmlFor={this.choiceId}\n labelPlacement={isSelectionButtonBelow ? 'top' : undefined}\n control={control}\n />\n </CheckboxHolder>\n </Row>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default ChoiceInput;\n"],"mappings":"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","ignoreList":[]}
package/lib/choice.js CHANGED
@@ -1,253 +1,197 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = exports.Choice = void 0;
9
-
7
+ exports.default = exports.Choice = void 0;
10
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
10
  var _react = _interopRequireDefault(require("react"));
27
-
28
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
- var _styles = require("@material-ui/core/styles");
31
-
32
- var _classnames = _interopRequireDefault(require("classnames"));
33
-
12
+ var _styles = require("@mui/material/styles");
13
+ var _Box = _interopRequireDefault(require("@mui/material/Box"));
34
14
  var _choiceInput = _interopRequireDefault(require("./choice-input"));
35
-
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
-
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
39
-
40
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
41
-
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
43
-
44
- var Choice = /*#__PURE__*/function (_React$Component) {
45
- (0, _inherits2["default"])(Choice, _React$Component);
46
-
47
- var _super = _createSuper(Choice);
48
-
49
- function Choice() {
50
- var _this;
51
-
52
- (0, _classCallCheck2["default"])(this, Choice);
53
-
54
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
55
- args[_key] = arguments[_key];
15
+ const ChoiceContainer = (0, _styles.styled)(_Box.default, {
16
+ shouldForwardProp: prop => prop !== 'noBorder' && prop !== 'horizontalLayout'
17
+ })(({
18
+ theme,
19
+ noBorder,
20
+ horizontalLayout
21
+ }) => ({
22
+ paddingTop: theme.spacing(2.5),
23
+ paddingBottom: theme.spacing(1) + 2,
24
+ paddingLeft: theme.spacing(1) + 2,
25
+ paddingRight: theme.spacing(1) + 2,
26
+ borderBottom: noBorder ? 'none' : `1px solid ${theme.palette.grey[300]}`,
27
+ ...(horizontalLayout && {
28
+ paddingRight: theme.spacing(2.5),
29
+ '& label': {
30
+ marginRight: theme.spacing(1)
56
31
  }
57
-
58
- _this = _super.call.apply(_super, [this].concat(args));
59
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
32
+ })
33
+ }));
34
+ class Choice extends _react.default.Component {
35
+ constructor(...args) {
36
+ super(...args);
37
+ (0, _defineProperty2.default)(this, "state", {
60
38
  isHovered: false
61
39
  });
62
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseEnter", function () {
63
- var _this$props = _this.props,
64
- disabled = _this$props.disabled,
65
- checked = _this$props.checked;
66
-
40
+ (0, _defineProperty2.default)(this, "handleMouseEnter", () => {
41
+ const {
42
+ disabled,
43
+ checked
44
+ } = this.props;
67
45
  if (!disabled && !checked) {
68
- _this.setState({
46
+ this.setState({
69
47
  isHovered: true
70
48
  });
71
49
  }
72
50
  });
73
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseLeave", function () {
74
- _this.setState({
51
+ (0, _defineProperty2.default)(this, "handleMouseLeave", () => {
52
+ this.setState({
75
53
  isHovered: false
76
54
  });
77
55
  });
78
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (choice) {
79
- var _this$props2 = _this.props,
80
- disabled = _this$props2.disabled,
81
- onChoiceChanged = _this$props2.onChoiceChanged;
82
-
56
+ (0, _defineProperty2.default)(this, "onChange", choice => {
57
+ const {
58
+ disabled,
59
+ onChoiceChanged
60
+ } = this.props;
83
61
  if (!disabled) {
84
62
  onChoiceChanged(choice);
85
63
  }
86
64
  });
87
- return _this;
88
65
  }
89
-
90
- (0, _createClass2["default"])(Choice, [{
91
- key: "render",
92
- value: function render() {
93
- var _classNames;
94
-
95
- var _this$props3 = this.props,
96
- choice = _this$props3.choice,
97
- index = _this$props3.index,
98
- choicesLength = _this$props3.choicesLength,
99
- showCorrect = _this$props3.showCorrect,
100
- isEvaluateMode = _this$props3.isEvaluateMode,
101
- choiceMode = _this$props3.choiceMode,
102
- disabled = _this$props3.disabled,
103
- checked = _this$props3.checked,
104
- correctness = _this$props3.correctness,
105
- displayKey = _this$props3.displayKey,
106
- classes = _this$props3.classes,
107
- choicesLayout = _this$props3.choicesLayout,
108
- gridColumns = _this$props3.gridColumns,
109
- isSelectionButtonBelow = _this$props3.isSelectionButtonBelow,
110
- selectedAnswerBackgroundColor = _this$props3.selectedAnswerBackgroundColor,
111
- selectedAnswerStrokeColor = _this$props3.selectedAnswerStrokeColor,
112
- selectedAnswerStrokeWidth = _this$props3.selectedAnswerStrokeWidth,
113
- hoverAnswerBackgroundColor = _this$props3.hoverAnswerBackgroundColor,
114
- hoverAnswerStrokeColor = _this$props3.hoverAnswerStrokeColor,
115
- hoverAnswerStrokeWidth = _this$props3.hoverAnswerStrokeWidth,
116
- autoFocusRef = _this$props3.autoFocusRef,
117
- tagName = _this$props3.tagName;
118
- var isHovered = this.state.isHovered;
119
- var choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
120
- var feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
121
-
122
- var choiceProps = _objectSpread(_objectSpread({}, choice), {}, {
123
- checked: checked,
124
- choiceMode: choiceMode,
125
- disabled: disabled,
126
- feedback: feedback,
127
- correctness: correctness,
128
- displayKey: displayKey,
129
- index: index,
130
- choicesLayout: choicesLayout,
131
- gridColumns: gridColumns,
132
- onChange: this.onChange,
133
- isEvaluateMode: isEvaluateMode,
134
- isSelectionButtonBelow: isSelectionButtonBelow,
135
- selectedAnswerStrokeColor: selectedAnswerStrokeColor,
136
- selectedAnswerStrokeWidth: selectedAnswerStrokeWidth,
137
- tagName: tagName
138
- });
139
-
140
- var normalizeStrokeWidth = function normalizeStrokeWidth(width) {
141
- if (!width) return '2px'; // default
142
-
143
- var trimmed = String(width).trim(); // add 'px' if the value is a number
144
-
145
- if (/^\d+(\.\d+)?$/.test(trimmed)) {
146
- return "".concat(trimmed, "px");
147
- }
148
-
149
- return trimmed;
150
- };
151
-
152
- var hasSelectedStroke = selectedAnswerStrokeColor && selectedAnswerStrokeColor !== 'initial';
153
- var hasHoverStroke = hoverAnswerStrokeColor && hoverAnswerStrokeColor !== 'initial';
154
- var currentStrokeColor = 'transparent';
155
- var currentStrokeWidth = '2px';
156
- var currentBackgroundColor = 'initial';
157
-
158
- if (hasSelectedStroke || hasHoverStroke) {
159
- if (checked && hasSelectedStroke) {
160
- // selected state takes priority when selected stroke is configured
161
- currentStrokeColor = selectedAnswerStrokeColor;
162
- currentStrokeWidth = selectedAnswerStrokeWidth;
163
- } else if (isHovered && !disabled && hasHoverStroke) {
164
- // hover state when not selected and not disabled, and hover stroke is configured
165
- currentStrokeColor = hoverAnswerStrokeColor;
166
- currentStrokeWidth = hoverAnswerStrokeWidth;
167
- }
66
+ render() {
67
+ const {
68
+ choice,
69
+ index,
70
+ choicesLength,
71
+ showCorrect,
72
+ isEvaluateMode,
73
+ choiceMode,
74
+ disabled,
75
+ checked,
76
+ correctness,
77
+ displayKey,
78
+ choicesLayout,
79
+ gridColumns,
80
+ isSelectionButtonBelow,
81
+ selectedAnswerBackgroundColor,
82
+ selectedAnswerStrokeColor,
83
+ selectedAnswerStrokeWidth,
84
+ hoverAnswerBackgroundColor,
85
+ hoverAnswerStrokeColor,
86
+ hoverAnswerStrokeWidth,
87
+ autoFocusRef,
88
+ tagName
89
+ } = this.props;
90
+ const {
91
+ isHovered
92
+ } = this.state;
93
+ const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');
94
+ const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;
95
+ const choiceProps = {
96
+ ...choice,
97
+ checked,
98
+ choiceMode,
99
+ disabled,
100
+ feedback,
101
+ correctness,
102
+ displayKey,
103
+ index,
104
+ choicesLayout,
105
+ gridColumns,
106
+ onChange: this.onChange,
107
+ isEvaluateMode,
108
+ isSelectionButtonBelow,
109
+ selectedAnswerStrokeColor,
110
+ selectedAnswerStrokeWidth,
111
+ tagName
112
+ };
113
+ const normalizeStrokeWidth = width => {
114
+ if (!width) return '2px'; // default
115
+ const trimmed = String(width).trim();
116
+
117
+ // add 'px' if the value is a number
118
+ if (/^\d+(\.\d+)?$/.test(trimmed)) {
119
+ return `${trimmed}px`;
168
120
  }
169
-
170
- if (checked && selectedAnswerBackgroundColor && selectedAnswerBackgroundColor !== 'initial') {
171
- currentBackgroundColor = selectedAnswerBackgroundColor;
172
- } else if (isHovered && !disabled && hoverAnswerBackgroundColor && hoverAnswerBackgroundColor !== 'initial') {
173
- currentBackgroundColor = hoverAnswerBackgroundColor;
121
+ return trimmed;
122
+ };
123
+ const hasSelectedStroke = selectedAnswerStrokeColor && selectedAnswerStrokeColor !== 'initial';
124
+ const hasHoverStroke = hoverAnswerStrokeColor && hoverAnswerStrokeColor !== 'initial';
125
+ let currentStrokeColor = 'transparent';
126
+ let currentStrokeWidth = '2px';
127
+ let currentBackgroundColor = 'initial';
128
+ if (hasSelectedStroke || hasHoverStroke) {
129
+ if (checked && hasSelectedStroke) {
130
+ // selected state takes priority when selected stroke is configured
131
+ currentStrokeColor = selectedAnswerStrokeColor;
132
+ currentStrokeWidth = selectedAnswerStrokeWidth;
133
+ } else if (isHovered && !disabled && hasHoverStroke) {
134
+ // hover state when not selected and not disabled, and hover stroke is configured
135
+ currentStrokeColor = hoverAnswerStrokeColor;
136
+ currentStrokeWidth = hoverAnswerStrokeWidth;
174
137
  }
175
-
176
- var hasStroke = hasSelectedStroke || hasHoverStroke;
177
- var strokeStyle = hasStroke ? {
178
- border: "".concat(normalizeStrokeWidth(currentStrokeWidth), " solid ").concat(currentStrokeColor),
179
- borderRadius: '8px'
180
- } : {};
181
- var names = (0, _classnames["default"])(classes.choice, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.noBorder, index === choicesLength - 1 || choicesLayout !== 'vertical' || hasStroke), (0, _defineProperty2["default"])(_classNames, classes.horizontalLayout, choicesLayout === 'horizontal'), _classNames));
182
- var choiceBackground = currentBackgroundColor !== 'initial' ? currentBackgroundColor : 'initial';
183
- return /*#__PURE__*/_react["default"].createElement("div", {
184
- className: choiceClass,
185
- key: index,
186
- style: _objectSpread({
187
- backgroundColor: choiceBackground
188
- }, strokeStyle),
189
- onMouseEnter: this.handleMouseEnter,
190
- onMouseLeave: this.handleMouseLeave
191
- }, /*#__PURE__*/_react["default"].createElement(_choiceInput["default"], (0, _extends2["default"])({}, choiceProps, {
192
- className: names,
193
- autoFocusRef: autoFocusRef
194
- })));
195
138
  }
196
- }]);
197
- return Choice;
198
- }(_react["default"].Component);
199
-
139
+ if (checked && selectedAnswerBackgroundColor && selectedAnswerBackgroundColor !== 'initial') {
140
+ currentBackgroundColor = selectedAnswerBackgroundColor;
141
+ } else if (isHovered && !disabled && hoverAnswerBackgroundColor && hoverAnswerBackgroundColor !== 'initial') {
142
+ currentBackgroundColor = hoverAnswerBackgroundColor;
143
+ }
144
+ const hasStroke = hasSelectedStroke || hasHoverStroke;
145
+ const strokeStyle = hasStroke ? {
146
+ border: `${normalizeStrokeWidth(currentStrokeWidth)} solid ${currentStrokeColor}`,
147
+ borderRadius: '8px'
148
+ } : {};
149
+ const noBorder = index === choicesLength - 1 || choicesLayout !== 'vertical' || hasStroke;
150
+ const horizontalLayout = choicesLayout === 'horizontal';
151
+ const choiceBackground = currentBackgroundColor !== 'initial' ? currentBackgroundColor : 'initial';
152
+ return /*#__PURE__*/_react.default.createElement("div", {
153
+ className: choiceClass,
154
+ key: index,
155
+ style: {
156
+ backgroundColor: choiceBackground,
157
+ ...strokeStyle
158
+ },
159
+ onMouseEnter: this.handleMouseEnter,
160
+ onMouseLeave: this.handleMouseLeave
161
+ }, /*#__PURE__*/_react.default.createElement(ChoiceContainer, {
162
+ component: "div",
163
+ noBorder: noBorder,
164
+ horizontalLayout: horizontalLayout
165
+ }, /*#__PURE__*/_react.default.createElement(_choiceInput.default, (0, _extends2.default)({}, choiceProps, {
166
+ autoFocusRef: autoFocusRef
167
+ }))));
168
+ }
169
+ }
200
170
  exports.Choice = Choice;
201
- (0, _defineProperty2["default"])(Choice, "propTypes", {});
171
+ (0, _defineProperty2.default)(Choice, "propTypes", {});
202
172
  Choice.propTypes = {
203
- choiceMode: _propTypes["default"].oneOf(['radio', 'checkbox']),
204
- choice: _propTypes["default"].object,
205
- disabled: _propTypes["default"].bool.isRequired,
206
- onChoiceChanged: _propTypes["default"].func,
207
- classes: _propTypes["default"].object.isRequired,
208
- index: _propTypes["default"].number,
209
- choicesLength: _propTypes["default"].number,
210
- showCorrect: _propTypes["default"].bool,
211
- isEvaluateMode: _propTypes["default"].bool,
212
- checked: _propTypes["default"].bool,
213
- correctness: _propTypes["default"].string,
214
- displayKey: _propTypes["default"].string,
215
- choicesLayout: _propTypes["default"].oneOf(['vertical', 'grid', 'horizontal']),
216
- gridColumns: _propTypes["default"].string,
217
- selectedAnswerBackgroundColor: _propTypes["default"].string,
218
- selectedAnswerStrokeColor: _propTypes["default"].string,
219
- selectedAnswerStrokeWidth: _propTypes["default"].string,
220
- hoverAnswerBackgroundColor: _propTypes["default"].string,
221
- hoverAnswerStrokeColor: _propTypes["default"].string,
222
- hoverAnswerStrokeWidth: _propTypes["default"].string,
223
- tagName: _propTypes["default"].string,
224
- isSelectionButtonBelow: _propTypes["default"].bool,
225
- autoFocusRef: _propTypes["default"].object
173
+ choiceMode: _propTypes.default.oneOf(['radio', 'checkbox']),
174
+ choice: _propTypes.default.object,
175
+ disabled: _propTypes.default.bool.isRequired,
176
+ onChoiceChanged: _propTypes.default.func,
177
+ index: _propTypes.default.number,
178
+ choicesLength: _propTypes.default.number,
179
+ showCorrect: _propTypes.default.bool,
180
+ isEvaluateMode: _propTypes.default.bool,
181
+ checked: _propTypes.default.bool,
182
+ correctness: _propTypes.default.string,
183
+ displayKey: _propTypes.default.string,
184
+ choicesLayout: _propTypes.default.oneOf(['vertical', 'grid', 'horizontal']),
185
+ gridColumns: _propTypes.default.string,
186
+ selectedAnswerBackgroundColor: _propTypes.default.string,
187
+ selectedAnswerStrokeColor: _propTypes.default.string,
188
+ selectedAnswerStrokeWidth: _propTypes.default.string,
189
+ hoverAnswerBackgroundColor: _propTypes.default.string,
190
+ hoverAnswerStrokeColor: _propTypes.default.string,
191
+ hoverAnswerStrokeWidth: _propTypes.default.string,
192
+ tagName: _propTypes.default.string,
193
+ isSelectionButtonBelow: _propTypes.default.bool,
194
+ autoFocusRef: _propTypes.default.object
226
195
  };
227
-
228
- var _default = (0, _styles.withStyles)(function (theme) {
229
- return {
230
- choice: {
231
- paddingTop: theme.spacing.unit * 2.5,
232
- paddingBottom: theme.spacing.unit + 2,
233
- paddingLeft: theme.spacing.unit + 2,
234
- paddingRight: theme.spacing.unit + 2,
235
- borderBottom: "1px solid ".concat(theme.palette.grey[300])
236
- },
237
- noBorder: {
238
- borderBottom: 'none'
239
- },
240
- horizontalLayout: {
241
- paddingRight: theme.spacing.unit * 2.5,
242
- '& label': {
243
- marginRight: theme.spacing.unit // '& span:first-child': {
244
- // paddingRight: 0
245
- // }
246
-
247
- }
248
- }
249
- };
250
- })(Choice);
251
-
252
- exports["default"] = _default;
253
- //# sourceMappingURL=choice.js.map
196
+ var _default = exports.default = Choice;
197
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfc3R5bGVzIiwiX0JveCIsIl9jaG9pY2VJbnB1dCIsIkNob2ljZUNvbnRhaW5lciIsInN0eWxlZCIsIkJveCIsInNob3VsZEZvcndhcmRQcm9wIiwicHJvcCIsInRoZW1lIiwibm9Cb3JkZXIiLCJob3Jpem9udGFsTGF5b3V0IiwicGFkZGluZ1RvcCIsInNwYWNpbmciLCJwYWRkaW5nQm90dG9tIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJib3JkZXJCb3R0b20iLCJwYWxldHRlIiwiZ3JleSIsIm1hcmdpblJpZ2h0IiwiQ2hvaWNlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3MiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImlzSG92ZXJlZCIsImRpc2FibGVkIiwiY2hlY2tlZCIsInByb3BzIiwic2V0U3RhdGUiLCJjaG9pY2UiLCJvbkNob2ljZUNoYW5nZWQiLCJyZW5kZXIiLCJpbmRleCIsImNob2ljZXNMZW5ndGgiLCJzaG93Q29ycmVjdCIsImlzRXZhbHVhdGVNb2RlIiwiY2hvaWNlTW9kZSIsImNvcnJlY3RuZXNzIiwiZGlzcGxheUtleSIsImNob2ljZXNMYXlvdXQiLCJncmlkQ29sdW1ucyIsImlzU2VsZWN0aW9uQnV0dG9uQmVsb3ciLCJzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvciIsInNlbGVjdGVkQW5zd2VyU3Ryb2tlQ29sb3IiLCJzZWxlY3RlZEFuc3dlclN0cm9rZVdpZHRoIiwiaG92ZXJBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IiLCJob3ZlckFuc3dlclN0cm9rZUNvbG9yIiwiaG92ZXJBbnN3ZXJTdHJva2VXaWR0aCIsImF1dG9Gb2N1c1JlZiIsInRhZ05hbWUiLCJzdGF0ZSIsImNob2ljZUNsYXNzIiwiZmVlZGJhY2siLCJjaG9pY2VQcm9wcyIsIm9uQ2hhbmdlIiwibm9ybWFsaXplU3Ryb2tlV2lkdGgiLCJ3aWR0aCIsInRyaW1tZWQiLCJTdHJpbmciLCJ0cmltIiwidGVzdCIsImhhc1NlbGVjdGVkU3Ryb2tlIiwiaGFzSG92ZXJTdHJva2UiLCJjdXJyZW50U3Ryb2tlQ29sb3IiLCJjdXJyZW50U3Ryb2tlV2lkdGgiLCJjdXJyZW50QmFja2dyb3VuZENvbG9yIiwiaGFzU3Ryb2tlIiwic3Ryb2tlU3R5bGUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJjaG9pY2VCYWNrZ3JvdW5kIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImtleSIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwib25Nb3VzZUVudGVyIiwiaGFuZGxlTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImhhbmRsZU1vdXNlTGVhdmUiLCJjb21wb25lbnQiLCJfZXh0ZW5kczIiLCJleHBvcnRzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwib25lT2YiLCJvYmplY3QiLCJib29sIiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJudW1iZXIiLCJzdHJpbmciLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jaG9pY2UuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSAnQG11aS9tYXRlcmlhbC9zdHlsZXMnO1xuaW1wb3J0IEJveCBmcm9tICdAbXVpL21hdGVyaWFsL0JveCc7XG5cbmltcG9ydCBDaG9pY2VJbnB1dCBmcm9tICcuL2Nob2ljZS1pbnB1dCc7XG5cbmNvbnN0IENob2ljZUNvbnRhaW5lciA9IHN0eWxlZChCb3gsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSAnbm9Cb3JkZXInICYmIHByb3AgIT09ICdob3Jpem9udGFsTGF5b3V0Jyxcbn0pKCh7IHRoZW1lLCBub0JvcmRlciwgaG9yaXpvbnRhbExheW91dCB9KSA9PiAoe1xuICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDIuNSksXG4gIHBhZGRpbmdCb3R0b206IHRoZW1lLnNwYWNpbmcoMSkgKyAyLFxuICBwYWRkaW5nTGVmdDogdGhlbWUuc3BhY2luZygxKSArIDIsXG4gIHBhZGRpbmdSaWdodDogdGhlbWUuc3BhY2luZygxKSArIDIsXG4gIGJvcmRlckJvdHRvbTogbm9Cb3JkZXIgPyAnbm9uZScgOiBgMXB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5ncmV5WzMwMF19YCxcbiAgLi4uKGhvcml6b250YWxMYXlvdXQgJiYge1xuICAgIHBhZGRpbmdSaWdodDogdGhlbWUuc3BhY2luZygyLjUpLFxuICAgICcmIGxhYmVsJzoge1xuICAgICAgbWFyZ2luUmlnaHQ6IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgfSxcbiAgfSksXG59KSk7XG5cbmV4cG9ydCBjbGFzcyBDaG9pY2UgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge307XG5cbiAgc3RhdGUgPSB7XG4gICAgaXNIb3ZlcmVkOiBmYWxzZSxcbiAgfTtcblxuICBoYW5kbGVNb3VzZUVudGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIGNoZWNrZWQgfSA9IHRoaXMucHJvcHM7XG5cbiAgICBpZiAoIWRpc2FibGVkICYmICFjaGVja2VkKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHsgaXNIb3ZlcmVkOiB0cnVlIH0pO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVNb3VzZUxlYXZlID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoeyBpc0hvdmVyZWQ6IGZhbHNlIH0pO1xuICB9O1xuXG4gIG9uQ2hhbmdlID0gKGNob2ljZSkgPT4ge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQsIG9uQ2hvaWNlQ2hhbmdlZCB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIG9uQ2hvaWNlQ2hhbmdlZChjaG9pY2UpO1xuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgY2hvaWNlLFxuICAgICAgaW5kZXgsXG4gICAgICBjaG9pY2VzTGVuZ3RoLFxuICAgICAgc2hvd0NvcnJlY3QsXG4gICAgICBpc0V2YWx1YXRlTW9kZSxcbiAgICAgIGNob2ljZU1vZGUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBjb3JyZWN0bmVzcyxcbiAgICAgIGRpc3BsYXlLZXksXG4gICAgICBjaG9pY2VzTGF5b3V0LFxuICAgICAgZ3JpZENvbHVtbnMsXG4gICAgICBpc1NlbGVjdGlvbkJ1dHRvbkJlbG93LFxuICAgICAgc2VsZWN0ZWRBbnN3ZXJCYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yLFxuICAgICAgc2VsZWN0ZWRBbnN3ZXJTdHJva2VXaWR0aCxcbiAgICAgIGhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yLFxuICAgICAgaG92ZXJBbnN3ZXJTdHJva2VDb2xvcixcbiAgICAgIGhvdmVyQW5zd2VyU3Ryb2tlV2lkdGgsXG4gICAgICBhdXRvRm9jdXNSZWYsXG4gICAgICB0YWdOYW1lXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgXG4gICAgY29uc3QgeyBpc0hvdmVyZWQgfSA9IHRoaXMuc3RhdGU7XG4gICAgY29uc3QgY2hvaWNlQ2xhc3MgPSAnY2hvaWNlJyArIChpbmRleCA9PT0gY2hvaWNlc0xlbmd0aCAtIDEgPyAnIGxhc3QnIDogJycpO1xuXG4gICAgY29uc3QgZmVlZGJhY2sgPSAhaXNFdmFsdWF0ZU1vZGUgfHwgc2hvd0NvcnJlY3QgPyAnJyA6IGNob2ljZS5mZWVkYmFjaztcblxuICAgIGNvbnN0IGNob2ljZVByb3BzID0ge1xuICAgICAgLi4uY2hvaWNlLFxuICAgICAgY2hlY2tlZCxcbiAgICAgIGNob2ljZU1vZGUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGZlZWRiYWNrLFxuICAgICAgY29ycmVjdG5lc3MsXG4gICAgICBkaXNwbGF5S2V5LFxuICAgICAgaW5kZXgsXG4gICAgICBjaG9pY2VzTGF5b3V0LFxuICAgICAgZ3JpZENvbHVtbnMsXG4gICAgICBvbkNoYW5nZTogdGhpcy5vbkNoYW5nZSxcbiAgICAgIGlzRXZhbHVhdGVNb2RlLFxuICAgICAgaXNTZWxlY3Rpb25CdXR0b25CZWxvdyxcbiAgICAgIHNlbGVjdGVkQW5zd2VyU3Ryb2tlQ29sb3IsXG4gICAgICBzZWxlY3RlZEFuc3dlclN0cm9rZVdpZHRoLFxuICAgICAgdGFnTmFtZSxcbiAgICB9O1xuXG4gICAgY29uc3Qgbm9ybWFsaXplU3Ryb2tlV2lkdGggPSAod2lkdGgpID0+IHtcbiAgICAgIGlmICghd2lkdGgpIHJldHVybiAnMnB4JzsgLy8gZGVmYXVsdFxuICAgICAgY29uc3QgdHJpbW1lZCA9IFN0cmluZyh3aWR0aCkudHJpbSgpO1xuICAgIFxuICAgICAgLy8gYWRkICdweCcgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gICAgICBpZiAoL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodHJpbW1lZCkpIHtcbiAgICAgICAgcmV0dXJuIGAke3RyaW1tZWR9cHhgO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJpbW1lZDtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFzU2VsZWN0ZWRTdHJva2UgPSBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yICYmIHNlbGVjdGVkQW5zd2VyU3Ryb2tlQ29sb3IgIT09ICdpbml0aWFsJztcbiAgICBjb25zdCBoYXNIb3ZlclN0cm9rZSA9IGhvdmVyQW5zd2VyU3Ryb2tlQ29sb3IgJiYgaG92ZXJBbnN3ZXJTdHJva2VDb2xvciAhPT0gJ2luaXRpYWwnO1xuICAgIFxuICAgIGxldCBjdXJyZW50U3Ryb2tlQ29sb3IgPSAndHJhbnNwYXJlbnQnO1xuICAgIGxldCBjdXJyZW50U3Ryb2tlV2lkdGggPSAnMnB4JztcbiAgICBsZXQgY3VycmVudEJhY2tncm91bmRDb2xvciA9ICdpbml0aWFsJztcbiAgICBcbiAgICBpZiAoKGhhc1NlbGVjdGVkU3Ryb2tlIHx8IGhhc0hvdmVyU3Ryb2tlKSkge1xuICAgICAgaWYgKGNoZWNrZWQgJiYgaGFzU2VsZWN0ZWRTdHJva2UpIHtcbiAgICAgICAgLy8gc2VsZWN0ZWQgc3RhdGUgdGFrZXMgcHJpb3JpdHkgd2hlbiBzZWxlY3RlZCBzdHJva2UgaXMgY29uZmlndXJlZFxuICAgICAgICBjdXJyZW50U3Ryb2tlQ29sb3IgPSBzZWxlY3RlZEFuc3dlclN0cm9rZUNvbG9yO1xuICAgICAgICBjdXJyZW50U3Ryb2tlV2lkdGggPSBzZWxlY3RlZEFuc3dlclN0cm9rZVdpZHRoO1xuICAgICAgfSBlbHNlIGlmIChpc0hvdmVyZWQgJiYgIWRpc2FibGVkICYmIGhhc0hvdmVyU3Ryb2tlKSB7XG4gICAgICAgIC8vIGhvdmVyIHN0YXRlIHdoZW4gbm90IHNlbGVjdGVkIGFuZCBub3QgZGlzYWJsZWQsIGFuZCBob3ZlciBzdHJva2UgaXMgY29uZmlndXJlZFxuICAgICAgICBjdXJyZW50U3Ryb2tlQ29sb3IgPSBob3ZlckFuc3dlclN0cm9rZUNvbG9yO1xuICAgICAgICBjdXJyZW50U3Ryb2tlV2lkdGggPSBob3ZlckFuc3dlclN0cm9rZVdpZHRoO1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBpZiAoY2hlY2tlZCAmJiBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvciAmJiBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvciAhPT0gJ2luaXRpYWwnKSB7XG4gICAgICBjdXJyZW50QmFja2dyb3VuZENvbG9yID0gc2VsZWN0ZWRBbnN3ZXJCYWNrZ3JvdW5kQ29sb3I7XG4gICAgfSBlbHNlIGlmIChpc0hvdmVyZWQgJiYgIWRpc2FibGVkICYmIGhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yICYmIGhvdmVyQW5zd2VyQmFja2dyb3VuZENvbG9yICE9PSAnaW5pdGlhbCcpIHtcbiAgICAgIGN1cnJlbnRCYWNrZ3JvdW5kQ29sb3IgPSBob3ZlckFuc3dlckJhY2tncm91bmRDb2xvcjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNTdHJva2UgPSBoYXNTZWxlY3RlZFN0cm9rZSB8fCBoYXNIb3ZlclN0cm9rZTtcbiAgICBjb25zdCBzdHJva2VTdHlsZSA9IGhhc1N0cm9rZSA/IHtcbiAgICAgIGJvcmRlcjogYCR7bm9ybWFsaXplU3Ryb2tlV2lkdGgoY3VycmVudFN0cm9rZVdpZHRoKX0gc29saWQgJHtjdXJyZW50U3Ryb2tlQ29sb3J9YCxcbiAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXG4gICAgfSA6IHt9O1xuXG4gICAgY29uc3Qgbm9Cb3JkZXIgPSBpbmRleCA9PT0gY2hvaWNlc0xlbmd0aCAtIDEgfHwgY2hvaWNlc0xheW91dCAhPT0gJ3ZlcnRpY2FsJyB8fCBoYXNTdHJva2U7XG4gICAgY29uc3QgaG9yaXpvbnRhbExheW91dCA9IGNob2ljZXNMYXlvdXQgPT09ICdob3Jpem9udGFsJztcblxuICAgIGNvbnN0IGNob2ljZUJhY2tncm91bmQgPSBjdXJyZW50QmFja2dyb3VuZENvbG9yICE9PSAnaW5pdGlhbCcgPyBjdXJyZW50QmFja2dyb3VuZENvbG9yIDogJ2luaXRpYWwnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgXG4gICAgICAgIGNsYXNzTmFtZT17Y2hvaWNlQ2xhc3N9IFxuICAgICAgICBrZXk9e2luZGV4fSBcbiAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBjaG9pY2VCYWNrZ3JvdW5kLCAuLi5zdHJva2VTdHlsZSB9fVxuICAgICAgICBvbk1vdXNlRW50ZXI9e3RoaXMuaGFuZGxlTW91c2VFbnRlcn1cbiAgICAgICAgb25Nb3VzZUxlYXZlPXt0aGlzLmhhbmRsZU1vdXNlTGVhdmV9XG4gICAgICA+XG4gICAgICAgIDxDaG9pY2VDb250YWluZXIgXG4gICAgICAgICAgY29tcG9uZW50PVwiZGl2XCJcbiAgICAgICAgICBub0JvcmRlcj17bm9Cb3JkZXJ9XG4gICAgICAgICAgaG9yaXpvbnRhbExheW91dD17aG9yaXpvbnRhbExheW91dH1cbiAgICAgICAgPlxuICAgICAgICAgIDxDaG9pY2VJbnB1dCB7Li4uY2hvaWNlUHJvcHN9IGF1dG9Gb2N1c1JlZj17YXV0b0ZvY3VzUmVmfSAvPlxuICAgICAgICA8L0Nob2ljZUNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuQ2hvaWNlLnByb3BUeXBlcyA9IHtcbiAgY2hvaWNlTW9kZTogUHJvcFR5cGVzLm9uZU9mKFsncmFkaW8nLCAnY2hlY2tib3gnXSksXG4gIGNob2ljZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gIG9uQ2hvaWNlQ2hhbmdlZDogUHJvcFR5cGVzLmZ1bmMsXG4gIGluZGV4OiBQcm9wVHlwZXMubnVtYmVyLFxuICBjaG9pY2VzTGVuZ3RoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBzaG93Q29ycmVjdDogUHJvcFR5cGVzLmJvb2wsXG4gIGlzRXZhbHVhdGVNb2RlOiBQcm9wVHlwZXMuYm9vbCxcbiAgY2hlY2tlZDogUHJvcFR5cGVzLmJvb2wsXG4gIGNvcnJlY3RuZXNzOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBkaXNwbGF5S2V5OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjaG9pY2VzTGF5b3V0OiBQcm9wVHlwZXMub25lT2YoWyd2ZXJ0aWNhbCcsICdncmlkJywgJ2hvcml6b250YWwnXSksXG4gIGdyaWRDb2x1bW5zOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBzZWxlY3RlZEFuc3dlckJhY2tncm91bmRDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2VsZWN0ZWRBbnN3ZXJTdHJva2VDb2xvcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgc2VsZWN0ZWRBbnN3ZXJTdHJva2VXaWR0aDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaG92ZXJBbnN3ZXJCYWNrZ3JvdW5kQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhvdmVyQW5zd2VyU3Ryb2tlQ29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhvdmVyQW5zd2VyU3Ryb2tlV2lkdGg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHRhZ05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGlzU2VsZWN0aW9uQnV0dG9uQmVsb3c6IFByb3BUeXBlcy5ib29sLFxuICBhdXRvRm9jdXNSZWY6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDaG9pY2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLElBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFJLFlBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLE1BQU1LLGVBQWUsR0FBRyxJQUFBQyxjQUFNLEVBQUNDLFlBQUcsRUFBRTtFQUNsQ0MsaUJBQWlCLEVBQUdDLElBQUksSUFBS0EsSUFBSSxLQUFLLFVBQVUsSUFBSUEsSUFBSSxLQUFLO0FBQy9ELENBQUMsQ0FBQyxDQUFDLENBQUM7RUFBRUMsS0FBSztFQUFFQyxRQUFRO0VBQUVDO0FBQWlCLENBQUMsTUFBTTtFQUM3Q0MsVUFBVSxFQUFFSCxLQUFLLENBQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUM7RUFDOUJDLGFBQWEsRUFBRUwsS0FBSyxDQUFDSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztFQUNuQ0UsV0FBVyxFQUFFTixLQUFLLENBQUNJLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0VBQ2pDRyxZQUFZLEVBQUVQLEtBQUssQ0FBQ0ksT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7RUFDbENJLFlBQVksRUFBRVAsUUFBUSxHQUFHLE1BQU0sR0FBRyxhQUFhRCxLQUFLLENBQUNTLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO0VBQ3hFLElBQUlSLGdCQUFnQixJ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