@pie-element/multiple-choice 7.9.3-next.41 → 7.9.3-next.56

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.
@@ -112,10 +112,7 @@ var styles = function styles(theme) {
112
112
  alignItems: 'center'
113
113
  },
114
114
  titleText: {
115
- fontFamily: 'Cerebri Sans',
116
115
  fontSize: theme.typography.fontSize + 2,
117
- lineHeight: '19px',
118
- color: '#495B8F',
119
116
  marginRight: theme.spacing.unit
120
117
  },
121
118
  tooltip: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","radio","dropdown","MAX_CHOICES","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","rationaleHolder","flex","marginTop","marginLeft","accessibilityHolder","choiceConfigurationHolder","display","flexDirection","choiceConfiguration","switchElement","justifyContent","margin","addButton","disableButton","cursor","pointerEvents","backgroundColor","color","disabled","flexContainer","alignItems","titleText","fontFamily","fontSize","typography","lineHeight","marginRight","tooltip","whiteSpace","maxWidth","errorText","palette","error","main","Design","props","classes","model","configuration","onPromptChanged","onChoiceChanged","onRemoveChoice","onAddChoice","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","prompt","addChoiceButton","feedback","deleteChoice","choiceMode","choicePrefix","partialScoring","lockChoiceOrder","teacherInstructions","studentInstructions","rationale","accessibility","scoringType","sequentialChoiceLabels","settingsPanelDisabled","choicesLayout","spellCheck","gridColumns","maxImageWidth","maxImageHeight","withRubric","maxAnswerChoices","limitChoicesNumber","teacherInstructionsEnabled","rationaleEnabled","accessibilityLabelsEnabled","feedbackEnabled","promptEnabled","spellCheckEnabled","choices","errors","toolbarEditorPosition","choicesErrors","correctResponseError","answerChoicesError","nrOfColumnsAvailable","length","Array","from","_","i","labelPlugins","audio","video","toolbarOpts","position","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","addChoiceButtonTooltip","panelSettings","label","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","language","map","choice","index","c","value","root","Main","showWarning","onModelChanged","minAnswerChoices","setState","splice","push","utils","firstAvailableIndex","type","correct","key","correctFound","state","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport {\n AlertDialog,\n InputContainer,\n ChoiceConfiguration,\n settings,\n layout,\n choiceUtils as utils,\n} from '@pie-lib/config-ui';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport merge from 'lodash/merge';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst MAX_CHOICES = 9;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n rationaleHolder: {\n flex: 1,\n marginTop: theme.spacing.unit * 1.5,\n paddingTop: theme.spacing.unit * 2,\n marginLeft: theme.spacing.unit * 3.5,\n },\n accessibilityHolder: {\n flex: 1,\n marginTop: theme.spacing.unit * 1.5,\n paddingTop: theme.spacing.unit * 2,\n marginLeft: theme.spacing.unit * 3.5,\n },\n choiceConfigurationHolder: {\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing.unit,\n },\n choiceConfiguration: {\n width: '100%',\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0,\n },\n addButton: {\n marginTop: theme.spacing.unit,\n float: 'right',\n },\n disableButton: {\n cursor: 'not-allowed',\n pointerEvents: 'all',\n backgroundColor: color.disabled(),\n '&:hover': {\n backgroundColor: color.disabled(),\n },\n '&:focus': {\n backgroundColor: color.disabled(),\n },\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n titleText: {\n fontFamily: 'Cerebri Sans',\n fontSize: theme.typography.fontSize + 2,\n lineHeight: '19px',\n color: '#495B8F',\n marginRight: theme.spacing.unit,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nconst Design = withStyles(styles)((props) => {\n const {\n classes,\n model,\n configuration,\n onPromptChanged,\n onChoiceChanged,\n onRemoveChoice,\n onAddChoice,\n imageSupport,\n uploadSoundSupport,\n onChangeModel,\n onConfigurationChanged,\n onTeacherInstructionsChanged,\n } = props;\n\n const {\n prompt = {},\n addChoiceButton = {},\n feedback = {},\n deleteChoice = {},\n choiceMode = {},\n choicePrefix = {},\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n accessibility = {},\n scoringType = {},\n sequentialChoiceLabels = {},\n settingsPanelDisabled,\n choicesLayout,\n spellCheck = {},\n gridColumns,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n let { maxAnswerChoices } = configuration || {};\n const {\n limitChoicesNumber,\n teacherInstructionsEnabled,\n rationaleEnabled,\n accessibilityLabelsEnabled,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n choices,\n errors,\n toolbarEditorPosition,\n } = model || {};\n\n const { choicesErrors, correctResponseError, answerChoicesError } = errors || {};\n const nrOfColumnsAvailable = choices?.length ? Array.from({ length: choices.length }, (_, i) => `${i + 1}`) : [];\n\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true },\n };\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n const validationMessage = generateValidationMessage(configuration);\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n const panelSettings = {\n choiceMode: choiceMode.settings && radio(choiceMode.label, ['checkbox', 'radio']),\n 'sequentialChoiceLabels.enabled': sequentialChoiceLabels.settings && toggle(sequentialChoiceLabels.label, true),\n choicePrefix: choicePrefix.settings && radio(choicePrefix.label, ['numbers', 'letters']),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n choicesLayout: choicesLayout.settings && dropdown(choicesLayout.label, ['vertical', 'grid', 'horizontal']),\n gridColumns:\n choicesLayout.settings &&\n model.choicesLayout === 'grid' &&\n nrOfColumnsAvailable.length > 0 &&\n dropdown(gridColumns.label, nrOfColumnsAvailable),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n accessibilityLabelsEnabled: accessibility.settings && toggle(accessibility.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onChangeModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.titleText}>Choices</Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </Tooltip>\n </div>\n\n {choices.map((choice, index) => (\n <div key={`choice-${index}`} className={classes.choiceConfigurationHolder}>\n <ChoiceConfiguration\n key={index}\n index={index + 1}\n useLetterOrdering={model.choicePrefix === 'letters'}\n className={classes.choiceConfiguration}\n mode={model.choiceMode}\n data={choice}\n defaultFeedback={{}}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onDelete={() => onRemoveChoice(index)}\n onChange={(c) => onChoiceChanged(index, c)}\n allowFeedBack={feedbackEnabled}\n allowDelete={deleteChoice.settings}\n noLabels\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n error={choicesErrors?.[choice.value] || null}\n noCorrectAnswerError={correctResponseError}\n maxImageWidth={(maxImageWidth && maxImageWidth.choices) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n\n {rationaleEnabled && (\n <InputContainer key={`rationale-${index}`} label={rationale.label} className={classes.rationaleHolder}>\n <EditableHtml\n className={classes.rationale}\n markup={choice.rationale || ''}\n onChange={(c) => onChoiceChanged(index, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n pluginProps={labelPlugins}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {accessibilityLabelsEnabled && (\n <InputContainer\n key={`accessibility-${index}`}\n label={accessibility.label}\n className={classes.accessibilityHolder}\n >\n <EditableHtml\n className={classes.accessibility}\n markup={choice.accessibility || ''}\n onChange={(c) => onChoiceChanged(index, { ...choice, accessibility: c })}\n imageSupport={imageSupport}\n pluginProps={labelPlugins}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.choices) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n </div>\n ))}\n\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n {answerChoicesError && <div className={classes.errorText}>{answerChoicesError}</div>}\n\n {addChoiceButton.settings && (\n <Tooltip title={addChoiceButtonTooltip} classes={{ tooltip: classes.tooltip }}>\n <Button\n classes={{ root: maxAnswerChoices && choices?.length >= maxAnswerChoices && classes.disableButton }}\n className={classes.addButton}\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n >\n {addChoiceButton.label}\n </Button>\n </Tooltip>\n )}\n </layout.ConfigLayout>\n );\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = { showWarning: false };\n\n onRemoveChoice = (index) => {\n const { model, configuration, onModelChanged } = this.props;\n const { minAnswerChoices } = configuration || {};\n\n if (minAnswerChoices && model.choices.length === minAnswerChoices) {\n this.setState({ showWarning: true });\n\n return;\n }\n\n model.choices.splice(index, 1);\n onModelChanged(model);\n };\n\n onAddChoice = () => {\n const { model, configuration, onModelChanged } = this.props;\n let { maxAnswerChoices } = configuration || {};\n const { limitChoicesNumber } = model || {};\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n if (maxAnswerChoices && model.choices.length >= maxAnswerChoices) {\n return;\n }\n\n model.choices.push({\n label: '',\n value: utils.firstAvailableIndex(\n model.choices.map((c) => c.value),\n 0,\n ),\n feedback: { type: 'none' },\n });\n\n onModelChanged(model);\n };\n\n onChoiceChanged = (index, choice) => {\n const { model, onModelChanged } = this.props;\n\n if (choice.correct && model.choiceMode === 'radio') {\n model.choices = model.choices.map((c) => merge({}, c, { correct: false }));\n }\n\n model.choices.splice(index, 1, choice);\n onModelChanged(model);\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onModelChanged = (model, key) => {\n const { onModelChanged } = this.props;\n\n switch (key) {\n case 'choiceMode': {\n let value = model.choiceMode;\n\n if (value === 'radio') {\n let correctFound = false;\n\n model.choices = model.choices.map((c) => {\n if (correctFound) {\n c.correct = false;\n\n return c;\n }\n\n if (c.correct) {\n correctFound = true;\n }\n\n return c;\n });\n }\n\n onModelChanged(model, true);\n break;\n }\n\n default:\n onModelChanged(model);\n break;\n }\n };\n\n render() {\n const { configuration: { minAnswerChoices } = {} } = this.props;\n const { showWarning } = this.state;\n\n return (\n <React.Fragment>\n <AlertDialog\n open={showWarning}\n title=\"Warning\"\n text={`There can't be less than ${minAnswerChoices || 0} choices.`}\n onConfirm={() => this.setState({ showWarning: false })}\n />\n <Design\n {...this.props}\n onChangeModel={this.onModelChanged}\n onRemoveChoice={this.onRemoveChoice}\n onChoiceChanged={this.onChoiceChanged}\n onAddChoice={this.onAddChoice}\n onPromptChanged={this.onPromptChanged}\n onTeacherInstructionsChanged={this.onTeacherInstructionsChanged}\n />\n </React.Fragment>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["Panel","settings","toggle","radio","dropdown","MAX_CHOICES","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","rationaleHolder","flex","marginTop","marginLeft","accessibilityHolder","choiceConfigurationHolder","display","flexDirection","choiceConfiguration","switchElement","justifyContent","margin","addButton","disableButton","cursor","pointerEvents","backgroundColor","color","disabled","flexContainer","alignItems","titleText","fontSize","typography","marginRight","tooltip","whiteSpace","maxWidth","errorText","palette","error","main","Design","props","classes","model","configuration","onPromptChanged","onChoiceChanged","onRemoveChoice","onAddChoice","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","prompt","addChoiceButton","feedback","deleteChoice","choiceMode","choicePrefix","partialScoring","lockChoiceOrder","teacherInstructions","studentInstructions","rationale","accessibility","scoringType","sequentialChoiceLabels","settingsPanelDisabled","choicesLayout","spellCheck","gridColumns","maxImageWidth","maxImageHeight","withRubric","maxAnswerChoices","limitChoicesNumber","teacherInstructionsEnabled","rationaleEnabled","accessibilityLabelsEnabled","feedbackEnabled","promptEnabled","spellCheckEnabled","choices","errors","toolbarEditorPosition","choicesErrors","correctResponseError","answerChoicesError","nrOfColumnsAvailable","length","Array","from","_","i","labelPlugins","audio","video","toolbarOpts","position","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","addChoiceButtonTooltip","panelSettings","label","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","language","map","choice","index","c","value","root","Main","showWarning","onModelChanged","minAnswerChoices","setState","splice","push","utils","firstAvailableIndex","type","correct","key","correctFound","state","React","Component","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","Styled"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport EditableHtml from '@pie-lib/editable-html';\nimport {\n AlertDialog,\n InputContainer,\n ChoiceConfiguration,\n settings,\n layout,\n choiceUtils as utils,\n} from '@pie-lib/config-ui';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport Button from '@material-ui/core/Button';\nimport Tooltip from '@material-ui/core/Tooltip';\nimport Typography from '@material-ui/core/Typography';\nimport Info from '@material-ui/icons/Info';\nimport merge from 'lodash/merge';\nimport { generateValidationMessage } from './utils';\n\nconst { Panel, toggle, radio, dropdown } = settings;\n\nconst MAX_CHOICES = 9;\n\nconst styles = (theme) => ({\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n rationaleHolder: {\n flex: 1,\n marginTop: theme.spacing.unit * 1.5,\n paddingTop: theme.spacing.unit * 2,\n marginLeft: theme.spacing.unit * 3.5,\n },\n accessibilityHolder: {\n flex: 1,\n marginTop: theme.spacing.unit * 1.5,\n paddingTop: theme.spacing.unit * 2,\n marginLeft: theme.spacing.unit * 3.5,\n },\n choiceConfigurationHolder: {\n display: 'flex',\n flexDirection: 'column',\n marginBottom: theme.spacing.unit,\n },\n choiceConfiguration: {\n width: '100%',\n },\n switchElement: {\n justifyContent: 'space-between',\n margin: 0,\n },\n addButton: {\n marginTop: theme.spacing.unit,\n float: 'right',\n },\n disableButton: {\n cursor: 'not-allowed',\n pointerEvents: 'all',\n backgroundColor: color.disabled(),\n '&:hover': {\n backgroundColor: color.disabled(),\n },\n '&:focus': {\n backgroundColor: color.disabled(),\n },\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n titleText: {\n fontSize: theme.typography.fontSize + 2,\n marginRight: theme.spacing.unit,\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n});\n\nconst Design = withStyles(styles)((props) => {\n const {\n classes,\n model,\n configuration,\n onPromptChanged,\n onChoiceChanged,\n onRemoveChoice,\n onAddChoice,\n imageSupport,\n uploadSoundSupport,\n onChangeModel,\n onConfigurationChanged,\n onTeacherInstructionsChanged,\n } = props;\n\n const {\n prompt = {},\n addChoiceButton = {},\n feedback = {},\n deleteChoice = {},\n choiceMode = {},\n choicePrefix = {},\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n accessibility = {},\n scoringType = {},\n sequentialChoiceLabels = {},\n settingsPanelDisabled,\n choicesLayout,\n spellCheck = {},\n gridColumns,\n maxImageWidth = {},\n maxImageHeight = {},\n withRubric = {},\n } = configuration || {};\n let { maxAnswerChoices } = configuration || {};\n const {\n limitChoicesNumber,\n teacherInstructionsEnabled,\n rationaleEnabled,\n accessibilityLabelsEnabled,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n choices,\n errors,\n toolbarEditorPosition,\n } = model || {};\n\n const { choicesErrors, correctResponseError, answerChoicesError } = errors || {};\n const nrOfColumnsAvailable = choices?.length ? Array.from({ length: choices.length }, (_, i) => `${i + 1}`) : [];\n\n const labelPlugins = {\n audio: { disabled: true },\n video: { disabled: true },\n };\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n const validationMessage = generateValidationMessage(configuration);\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n const addChoiceButtonTooltip =\n maxAnswerChoices && choices?.length >= maxAnswerChoices ? `Only ${maxAnswerChoices} allowed maximum` : '';\n\n const panelSettings = {\n choiceMode: choiceMode.settings && radio(choiceMode.label, ['checkbox', 'radio']),\n 'sequentialChoiceLabels.enabled': sequentialChoiceLabels.settings && toggle(sequentialChoiceLabels.label, true),\n choicePrefix: choicePrefix.settings && radio(choicePrefix.label, ['numbers', 'letters']),\n partialScoring: partialScoring.settings && toggle(partialScoring.label),\n lockChoiceOrder: lockChoiceOrder.settings && toggle(lockChoiceOrder.label),\n feedbackEnabled: feedback.settings && toggle(feedback.label),\n choicesLayout: choicesLayout.settings && dropdown(choicesLayout.label, ['vertical', 'grid', 'horizontal']),\n gridColumns:\n choicesLayout.settings &&\n model.choicesLayout === 'grid' &&\n nrOfColumnsAvailable.length > 0 &&\n dropdown(gridColumns.label, nrOfColumnsAvailable),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled: teacherInstructions.settings && toggle(teacherInstructions.label),\n studentInstructionsEnabled: studentInstructions.settings && toggle(studentInstructions.label),\n promptEnabled: prompt.settings && toggle(prompt.label),\n rationaleEnabled: rationale.settings && toggle(rationale.label),\n spellCheckEnabled: spellCheck.settings && toggle(spellCheck.label),\n accessibilityLabelsEnabled: accessibility.settings && toggle(accessibility.label),\n scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n onChangeModel={onChangeModel}\n configuration={configuration}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.teacherInstructions || ''}\n onChange={onTeacherInstructionsChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {promptEnabled && (\n <InputContainer label={prompt.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={model.prompt}\n onChange={onPromptChanged}\n imageSupport={imageSupport}\n nonEmpty={false}\n disableUnderline\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.titleText}>Choices</Typography>\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} />\n </Tooltip>\n </div>\n\n {choices.map((choice, index) => (\n <div key={`choice-${index}`} className={classes.choiceConfigurationHolder}>\n <ChoiceConfiguration\n key={index}\n index={index + 1}\n useLetterOrdering={model.choicePrefix === 'letters'}\n className={classes.choiceConfiguration}\n mode={model.choiceMode}\n data={choice}\n defaultFeedback={{}}\n imageSupport={imageSupport}\n disableImageAlignmentButtons={true}\n onDelete={() => onRemoveChoice(index)}\n onChange={(c) => onChoiceChanged(index, c)}\n allowFeedBack={feedbackEnabled}\n allowDelete={deleteChoice.settings}\n noLabels\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n error={choicesErrors?.[choice.value] || null}\n noCorrectAnswerError={correctResponseError}\n maxImageWidth={(maxImageWidth && maxImageWidth.choices) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n />\n\n {rationaleEnabled && (\n <InputContainer key={`rationale-${index}`} label={rationale.label} className={classes.rationaleHolder}>\n <EditableHtml\n className={classes.rationale}\n markup={choice.rationale || ''}\n onChange={(c) => onChoiceChanged(index, { ...choice, rationale: c })}\n imageSupport={imageSupport}\n toolbarOpts={toolbarOpts}\n pluginProps={labelPlugins}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n\n {accessibilityLabelsEnabled && (\n <InputContainer\n key={`accessibility-${index}`}\n label={accessibility.label}\n className={classes.accessibilityHolder}\n >\n <EditableHtml\n className={classes.accessibility}\n markup={choice.accessibility || ''}\n onChange={(c) => onChoiceChanged(index, { ...choice, accessibility: c })}\n imageSupport={imageSupport}\n pluginProps={labelPlugins}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.choices) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.choices) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </InputContainer>\n )}\n </div>\n ))}\n\n {correctResponseError && <div className={classes.errorText}>{correctResponseError}</div>}\n {answerChoicesError && <div className={classes.errorText}>{answerChoicesError}</div>}\n\n {addChoiceButton.settings && (\n <Tooltip title={addChoiceButtonTooltip} classes={{ tooltip: classes.tooltip }}>\n <Button\n classes={{ root: maxAnswerChoices && choices?.length >= maxAnswerChoices && classes.disableButton }}\n className={classes.addButton}\n variant=\"contained\"\n color=\"primary\"\n onClick={onAddChoice}\n >\n {addChoiceButton.label}\n </Button>\n </Tooltip>\n )}\n </layout.ConfigLayout>\n );\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n disableSidePanel: PropTypes.bool,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n classes: PropTypes.object.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n };\n\n state = { showWarning: false };\n\n onRemoveChoice = (index) => {\n const { model, configuration, onModelChanged } = this.props;\n const { minAnswerChoices } = configuration || {};\n\n if (minAnswerChoices && model.choices.length === minAnswerChoices) {\n this.setState({ showWarning: true });\n\n return;\n }\n\n model.choices.splice(index, 1);\n onModelChanged(model);\n };\n\n onAddChoice = () => {\n const { model, configuration, onModelChanged } = this.props;\n let { maxAnswerChoices } = configuration || {};\n const { limitChoicesNumber } = model || {};\n\n // if old property is used, set maxAnswerChoices to 9\n if (limitChoicesNumber) {\n maxAnswerChoices = MAX_CHOICES;\n }\n\n if (maxAnswerChoices && model.choices.length >= maxAnswerChoices) {\n return;\n }\n\n model.choices.push({\n label: '',\n value: utils.firstAvailableIndex(\n model.choices.map((c) => c.value),\n 0,\n ),\n feedback: { type: 'none' },\n });\n\n onModelChanged(model);\n };\n\n onChoiceChanged = (index, choice) => {\n const { model, onModelChanged } = this.props;\n\n if (choice.correct && model.choiceMode === 'radio') {\n model.choices = model.choices.map((c) => merge({}, c, { correct: false }));\n }\n\n model.choices.splice(index, 1, choice);\n onModelChanged(model);\n };\n\n onPromptChanged = (prompt) => {\n this.props.onModelChanged({\n ...this.props.model,\n prompt,\n });\n };\n\n onTeacherInstructionsChanged = (teacherInstructions) => {\n this.props.onModelChanged({\n ...this.props.model,\n teacherInstructions,\n });\n };\n\n onModelChanged = (model, key) => {\n const { onModelChanged } = this.props;\n\n switch (key) {\n case 'choiceMode': {\n let value = model.choiceMode;\n\n if (value === 'radio') {\n let correctFound = false;\n\n model.choices = model.choices.map((c) => {\n if (correctFound) {\n c.correct = false;\n\n return c;\n }\n\n if (c.correct) {\n correctFound = true;\n }\n\n return c;\n });\n }\n\n onModelChanged(model, true);\n break;\n }\n\n default:\n onModelChanged(model);\n break;\n }\n };\n\n render() {\n const { configuration: { minAnswerChoices } = {} } = this.props;\n const { showWarning } = this.state;\n\n return (\n <React.Fragment>\n <AlertDialog\n open={showWarning}\n title=\"Warning\"\n text={`There can't be less than ${minAnswerChoices || 0} choices.`}\n onConfirm={() => this.setState({ showWarning: false })}\n />\n <Design\n {...this.props}\n onChangeModel={this.onModelChanged}\n onRemoveChoice={this.onRemoveChoice}\n onChoiceChanged={this.onChoiceChanged}\n onAddChoice={this.onAddChoice}\n onPromptChanged={this.onPromptChanged}\n onTeacherInstructionsChanged={this.onTeacherInstructionsChanged}\n />\n </React.Fragment>\n );\n }\n}\n\nconst Styled = withStyles(styles)(Main);\n\nexport default Styled;\n"],"file":"main.js"}
@@ -8,9 +8,9 @@
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@material-ui/icons": "^3.0.1",
10
10
  "@pie-framework/pie-configure-events": "^1.3.0",
11
- "@pie-lib/config-ui": "^11.5.4",
12
- "@pie-lib/editable-html": "^9.5.16",
13
- "@pie-lib/scoring-config": "^3.6.18",
11
+ "@pie-lib/config-ui": "^11.5.5",
12
+ "@pie-lib/editable-html": "^9.5.17",
13
+ "@pie-lib/scoring-config": "^3.6.19",
14
14
  "debug": "^3.1.0",
15
15
  "lodash": "^4.17.15",
16
16
  "prop-types": "^15.6.2",
@@ -51,10 +51,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
51
51
 
52
52
  var CLASS_NAME = 'multiple-choice-component';
53
53
 
54
- var generateId = function generateId() {
55
- return (Math.random() * 1000001).toFixed(0);
56
- };
57
-
58
54
  var styleSheet = function styleSheet(theme) {
59
55
  return {
60
56
  row: {
@@ -250,12 +246,10 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
250
246
 
251
247
  var choicelabel = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
252
248
  className: "label",
253
- onClick: this.onToggleChoice,
254
249
  prompt: displayKey ? "".concat(displayKey, ".&nbsp ").concat(label) : label,
255
250
  tagName: "span"
256
251
  });
257
252
 
258
- var id = generateId();
259
253
  return /*#__PURE__*/_react["default"].createElement("div", {
260
254
  className: (0, _classnames["default"])(className, 'corespring-' + classSuffix, 'choice-input')
261
255
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -267,16 +261,16 @@ var ChoiceInput = /*#__PURE__*/function (_React$Component) {
267
261
  }, /*#__PURE__*/_react["default"].createElement(StyledFormControlLabel, {
268
262
  label: choicelabel,
269
263
  value: value,
264
+ "for": label,
270
265
  control: /*#__PURE__*/_react["default"].createElement(Tag, {
271
266
  accessibility: accessibility,
272
267
  disabled: disabled,
273
268
  checked: checked,
274
269
  correctness: correctness,
275
- id: id,
276
270
  value: value,
271
+ id: label,
277
272
  onChange: this.onToggleChoice
278
- }),
279
- htmlFor: id
273
+ })
280
274
  }))), rationale && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
281
275
  className: "rationale",
282
276
  defaultClassName: "rationale",
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","generateId","Math","random","toFixed","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","spacing","unit","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","value","id","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","event","updateSession","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","Tag","classSuffix","holderClassNames","choicelabel","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\nconst generateId = () => (Math.random() * 1000001).toFixed(0);\n\nconst styleSheet = (theme) => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: theme.spacing.unit,\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Checkbox\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Radio\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n this.props.updateSession({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n } = this.props;\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n const choicelabel= <PreviewPrompt className=\"label\" onClick={this.onToggleChoice} prompt={displayKey ? `${displayKey}.&nbsp ${label}`: label} tagName=\"span\" />\n const id = generateId();\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 control={\n <Tag\n accessibility={accessibility}\n disabled={disabled}\n checked={checked}\n correctness={correctness}\n id={id}\n value={value}\n onChange={this.onToggleChoice}\n />\n }\n htmlFor={id}\n />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
1
+ {"version":3,"sources":["../src/choice-input.jsx"],"names":["CLASS_NAME","styleSheet","theme","row","display","alignItems","backgroundColor","color","background","checkboxHolder","flex","text","horizontalLayout","paddingRight","spacing","unit","formStyleSheet","label","StyledFormControlLabel","name","props","classes","colorStyle","varName","fallback","inputStyles","correct","disabled","incorrect","root","primaryLight","checked","primary","opacity","cursor","pointerEvents","StyledCheckbox","correctness","onChange","accessibility","value","id","key","k","resolved","miniProps","StyledRadio","ChoiceInput","onToggleChoice","bind","event","updateSession","selected","choiceMode","displayKey","feedback","className","rationale","hideTick","isEvaluateMode","choicesLayout","Tag","classSuffix","holderClassNames","choicelabel","React","Component","PropTypes","oneOf","string","isRequired","bool","func","object"],"mappings":"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","sourcesContent":["import FormControlLabel from '@material-ui/core/FormControlLabel';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\n\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { Feedback, color, PreviewPrompt } from '@pie-lib/render-ui';\nimport FeedbackTick from './feedback-tick';\nimport Radio from '@material-ui/core/Radio';\nimport classNames from 'classnames';\n\nconst CLASS_NAME = 'multiple-choice-component';\n\nconst styleSheet = (theme) => ({\n row: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n },\n checkboxHolder: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: color.background(),\n flex: 1,\n '& label': {\n color: color.text(),\n },\n },\n horizontalLayout: {\n [`& .${CLASS_NAME}`]: {\n paddingRight: theme.spacing.unit,\n },\n },\n});\n\nconst formStyleSheet = {\n label: {\n color: `${color.text()} !important`, //'var(--choice-input-color, black)'\n backgroundColor: color.background(),\n },\n};\n\nexport const StyledFormControlLabel = withStyles(formStyleSheet, {\n name: 'FormControlLabel',\n})((props) => <FormControlLabel {...props} classes={{ label: props.classes.label }} />);\n\nconst colorStyle = (varName, fallback) => ({\n [`&.${CLASS_NAME}`]: {\n color: `var(--choice-input-${varName}, ${fallback}) !important`,\n },\n});\n\nconst inputStyles = {\n 'correct-root': colorStyle('correct-color', color.text()),\n 'correct-checked': colorStyle('correct-selected-color', color.correct()), //green[500]),\n 'correct-disabled': colorStyle('correct-disabled-color', color.disabled()), //'grey'),\n 'incorrect-root': colorStyle('incorrect-color', color.incorrect()),\n 'incorrect-checked': colorStyle('incorrect-checked', color.incorrect()), //orange[500]),\n 'incorrect-disabled': colorStyle('incorrect-disabled-color', color.disabled()),\n root: {\n ...colorStyle('color', color.text()),\n '&:hover': { color: `${color.primaryLight()} !important` },\n },\n checked: colorStyle('selected-color', color.primary()),\n disabled: {\n ...colorStyle('disabled-color', color.text()),\n opacity: 0.6,\n cursor: 'not-allowed !important',\n pointerEvents: 'initial !important',\n },\n};\n\nexport const StyledCheckbox = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Checkbox\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport const StyledRadio = withStyles(inputStyles)((props) => {\n const { correctness, classes, checked, onChange, disabled, accessibility, value, id } = props;\n const key = (k) => (correctness ? `${correctness}-${k}` : k);\n\n const resolved = {\n root: classes[key('root')],\n checked: classes[key('checked')],\n disabled: classes[key('disabled')],\n };\n\n const miniProps = { checked, onChange, disabled, value };\n\n return (\n <Radio\n id={id}\n aria-label={accessibility}\n aria-checked={checked}\n {...miniProps}\n className={CLASS_NAME}\n classes={{\n root: resolved.root,\n checked: resolved.checked,\n disabled: `${correctness ? '' : resolved.disabled}`,\n }}\n />\n );\n});\n\nexport class ChoiceInput extends React.Component {\n static propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n displayKey: PropTypes.string.isRequired,\n checked: PropTypes.bool.isRequired,\n correctness: PropTypes.string,\n disabled: PropTypes.bool.isRequired,\n feedback: PropTypes.string,\n label: PropTypes.string.isRequired,\n rationale: PropTypes.string,\n accessibility: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.string.isRequired,\n classes: PropTypes.object,\n className: PropTypes.string,\n hideTick: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n };\n\n static defaultProps = {\n rationale: null,\n accessibility: null,\n checked: false,\n isEvaluateMode: false,\n };\n\n constructor(props) {\n super(props);\n this.onToggleChoice = this.onToggleChoice.bind(this);\n }\n\n onToggleChoice(event) {\n this.props.onChange(event);\n this.props.updateSession({\n value: this.props.value,\n selected: !this.props.checked,\n });\n }\n\n render() {\n const {\n choiceMode,\n disabled,\n displayKey,\n feedback,\n label,\n correctness,\n classes,\n className,\n rationale,\n accessibility,\n hideTick,\n isEvaluateMode,\n choicesLayout,\n value,\n checked,\n } = this.props;\n const Tag = choiceMode === 'checkbox' ? StyledCheckbox : StyledRadio;\n const classSuffix = choiceMode === 'checkbox' ? 'checkbox' : 'radio-button';\n\n const holderClassNames = classNames(classes.checkboxHolder, {\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n const choicelabel = (\n <PreviewPrompt className=\"label\" prompt={displayKey ? `${displayKey}.&nbsp ${label}` : label} tagName=\"span\" />\n );\n\n return (\n <div className={classNames(className, 'corespring-' + classSuffix, 'choice-input')}>\n <div className={classes.row}>\n {!hideTick && isEvaluateMode && <FeedbackTick correctness={correctness} />}\n <div className={classNames(holderClassNames, 'checkbox-holder')}>\n <StyledFormControlLabel\n label={choicelabel}\n value={value}\n for={label}\n control={\n <Tag\n accessibility={accessibility}\n disabled={disabled}\n checked={checked}\n correctness={correctness}\n value={value}\n id={label}\n onChange={this.onToggleChoice}\n />\n }\n />\n </div>\n </div>\n {rationale && <PreviewPrompt className=\"rationale\" defaultClassName=\"rationale\" prompt={rationale} />}\n <Feedback feedback={feedback} correctness={correctness} />\n </div>\n );\n }\n}\n\nexport default withStyles(styleSheet)(ChoiceInput);\n"],"file":"choice-input.js"}
package/lib/choice.js CHANGED
@@ -135,24 +135,26 @@ Choice.propTypes = {
135
135
  gridColumns: _propTypes["default"].string
136
136
  };
137
137
 
138
- var _default = (0, _styles.withStyles)({
139
- choice: {
140
- paddingTop: '20px',
141
- paddingBottom: '10px',
142
- borderBottom: '1px solid #E0DEE0'
143
- },
144
- noBorder: {
145
- borderBottom: 'none'
146
- },
147
- horizontalLayout: {
148
- paddingRight: '20px',
149
- '& label': {
150
- marginRight: '8px' // '& span:first-child': {
151
- // paddingRight: 0
152
- // }
138
+ var _default = (0, _styles.withStyles)(function (theme) {
139
+ return {
140
+ choice: {
141
+ paddingTop: theme.spacing.unit * 2.5,
142
+ paddingBottom: theme.spacing.unit + 2,
143
+ borderBottom: "1px solid ".concat(theme.palette.grey[300])
144
+ },
145
+ noBorder: {
146
+ borderBottom: 'none'
147
+ },
148
+ horizontalLayout: {
149
+ paddingRight: theme.spacing.unit * 2.5,
150
+ '& label': {
151
+ marginRight: theme.spacing.unit // '& span:first-child': {
152
+ // paddingRight: 0
153
+ // }
153
154
 
155
+ }
154
156
  }
155
- }
157
+ };
156
158
  })(Choice);
157
159
 
158
160
  exports["default"] = _default;
package/lib/choice.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/choice.jsx"],"names":["Choice","choice","props","disabled","onChoiceChanged","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","checked","correctness","displayKey","classes","choicesLayout","gridColumns","updateSession","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","React","Component","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","paddingTop","paddingBottom","borderBottom","paddingRight","marginRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoiceInput from './choice-input';\n\nexport class Choice extends React.Component {\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n classes,\n choicesLayout,\n gridColumns,\n updateSession,\n } = this.props;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n choicesLayout,\n gridColumns,\n updateSession,\n onChange: this.onChange,\n isEvaluateMode,\n };\n\n const names = classNames(classes.choice, {\n [classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={choiceClass} key={index}>\n <ChoiceInput {...choiceProps} className={names} />\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n};\n\nexport default withStyles({\n choice: {\n paddingTop: '20px',\n paddingBottom: '10px',\n borderBottom: '1px solid #E0DEE0',\n },\n noBorder: {\n borderBottom: 'none',\n },\n horizontalLayout: {\n paddingRight: '20px',\n '& label': {\n marginRight: '8px',\n // '& span:first-child': {\n // paddingRight: 0\n // }\n },\n },\n})(Choice);\n"],"file":"choice.js"}
1
+ {"version":3,"sources":["../src/choice.jsx"],"names":["Choice","choice","props","disabled","onChoiceChanged","index","choicesLength","showCorrect","isEvaluateMode","choiceMode","checked","correctness","displayKey","classes","choicesLayout","gridColumns","updateSession","choiceClass","feedback","choiceProps","onChange","names","noBorder","horizontalLayout","React","Component","propTypes","PropTypes","oneOf","object","bool","isRequired","func","number","string","theme","paddingTop","spacing","unit","paddingBottom","borderBottom","palette","grey","paddingRight","marginRight"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport ChoiceInput from './choice-input';\n\nexport class Choice extends React.Component {\n onChange = (choice) => {\n const { disabled, onChoiceChanged } = this.props;\n\n if (!disabled) {\n onChoiceChanged(choice);\n }\n };\n\n render() {\n const {\n choice,\n index,\n choicesLength,\n showCorrect,\n isEvaluateMode,\n choiceMode,\n disabled,\n checked,\n correctness,\n displayKey,\n classes,\n choicesLayout,\n gridColumns,\n updateSession,\n } = this.props;\n const choiceClass = 'choice' + (index === choicesLength - 1 ? ' last' : '');\n\n const feedback = !isEvaluateMode || showCorrect ? '' : choice.feedback;\n\n const choiceProps = {\n ...choice,\n checked,\n choiceMode,\n disabled,\n feedback,\n correctness,\n displayKey,\n choicesLayout,\n gridColumns,\n updateSession,\n onChange: this.onChange,\n isEvaluateMode,\n };\n\n const names = classNames(classes.choice, {\n [classes.noBorder]: index === choicesLength - 1 || choicesLayout !== 'vertical',\n [classes.horizontalLayout]: choicesLayout === 'horizontal',\n });\n\n return (\n <div className={choiceClass} key={index}>\n <ChoiceInput {...choiceProps} className={names} />\n </div>\n );\n }\n}\n\nChoice.propTypes = {\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n choice: PropTypes.object,\n disabled: PropTypes.bool.isRequired,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n index: PropTypes.number,\n choicesLength: PropTypes.number,\n showCorrect: PropTypes.bool,\n isEvaluateMode: PropTypes.bool,\n checked: PropTypes.bool,\n correctness: PropTypes.string,\n displayKey: PropTypes.string,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n};\n\nexport default withStyles((theme) => ({\n choice: {\n paddingTop: theme.spacing.unit * 2.5,\n paddingBottom: theme.spacing.unit + 2,\n borderBottom: `1px solid ${theme.palette.grey[300]}`,\n },\n noBorder: {\n borderBottom: 'none',\n },\n horizontalLayout: {\n paddingRight: theme.spacing.unit * 2.5,\n '& label': {\n marginRight: theme.spacing.unit,\n // '& span:first-child': {\n // paddingRight: 0\n // }\n },\n },\n}))(Choice);\n"],"file":"choice.js"}
package/lib/main.js CHANGED
@@ -35,12 +35,8 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
35
35
 
36
36
  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; } }
37
37
 
38
- var styles = function styles(theme) {
39
- return {
40
- partLabel: {
41
- paddingBottom: theme.spacing.unit * 2
42
- }
43
- };
38
+ var styles = function styles() {
39
+ return {};
44
40
  };
45
41
 
46
42
  var Main = /*#__PURE__*/function (_React$Component) {
@@ -62,9 +58,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
62
58
  session = _this$props.session,
63
59
  classes = _this$props.classes; // model.partLabel is a property used for ebsr
64
60
 
65
- return /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewLayout, null, model.partLabel && /*#__PURE__*/_react["default"].createElement("div", {
66
- className: classes.partLabel
67
- }, model.partLabel), /*#__PURE__*/_react["default"].createElement(_multipleChoice["default"], (0, _extends2["default"])({}, model, {
61
+ return /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewLayout, null, /*#__PURE__*/_react["default"].createElement(_multipleChoice["default"], (0, _extends2["default"])({}, model, {
68
62
  session: session,
69
63
  onChoiceChanged: onChoiceChanged
70
64
  })));
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/main.jsx"],"names":["styles","theme","partLabel","paddingBottom","spacing","unit","Main","props","model","onChoiceChanged","session","classes","React","Component","PropTypes","object","func","isRequired","Styled","name","typography","useNextVariants","Root"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,SAAS,EAAE;AACTC,MAAAA,aAAa,EAAEF,KAAK,CAACG,OAAN,CAAcC,IAAd,GAAqB;AAD3B;AADc,GAAZ;AAAA,CAAf;;IAMMC,I;;;;;AAYJ,gBAAYC,KAAZ,EAAmB;AAAA;AAAA,6BACXA,KADW;AAElB;;;;WAED,kBAAS;AACP,wBAAqD,KAAKA,KAA1D;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,eAAf,eAAeA,eAAf;AAAA,UAAgCC,OAAhC,eAAgCA,OAAhC;AAAA,UAAyCC,OAAzC,eAAyCA,OAAzC,CADO,CAGP;;AACA,0BACE,gCAAC,uBAAD,QACGH,KAAK,CAACN,SAAN,iBAAmB;AAAK,QAAA,SAAS,EAAES,OAAO,CAACT;AAAxB,SAAoCM,KAAK,CAACN,SAA1C,CADtB,eAEE,gCAAC,0BAAD,gCAAoBM,KAApB;AAA2B,QAAA,OAAO,EAAEE,OAApC;AAA6C,QAAA,eAAe,EAAED;AAA9D,SAFF,CADF;AAMD;;;EA1BgBG,kBAAMC,S;;iCAAnBP,I,eACe;AACjBE,EAAAA,KAAK,EAAEM,sBAAUC,MADA;AAEjBL,EAAAA,OAAO,EAAEI,sBAAUC,MAFF;AAGjBN,EAAAA,eAAe,EAAEK,sBAAUE,IAHV;AAIjBL,EAAAA,OAAO,EAAEG,sBAAUC,MAAV,CAAiBE;AAJT,C;iCADfX,I,kBAQkB;AACpBE,EAAAA,KAAK,EAAE,EADa;AAEpBE,EAAAA,OAAO,EAAE;AAFW,C;AAqBxB,IAAMQ,MAAM,GAAG,wBAAWlB,MAAX,EAAmB;AAAEmB,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAAqCb,IAArC,CAAf;AAEA,IAAML,KAAK,GAAG,4BAAe;AAC3BmB,EAAAA,UAAU,EAAE;AACVC,IAAAA,eAAe,EAAE;AADP;AADe,CAAf,CAAd;;AAMA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAACf,KAAD;AAAA,sBACX,gCAAC,wBAAD;AAAkB,IAAA,KAAK,EAAEN;AAAzB,kBACE,gCAAC,MAAD,EAAYM,KAAZ,CADF,CADW;AAAA,CAAb;;eAMee,I","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\nimport { PreviewLayout } from '@pie-lib/render-ui';\nimport MultipleChoice from './multiple-choice';\n\nconst styles = (theme) => ({\n partLabel: {\n paddingBottom: theme.spacing.unit * 2,\n },\n});\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n model: {},\n session: {},\n };\n constructor(props) {\n super(props);\n }\n\n render() {\n const { model, onChoiceChanged, session, classes } = this.props;\n\n // model.partLabel is a property used for ebsr\n return (\n <PreviewLayout>\n {model.partLabel && <div className={classes.partLabel}>{model.partLabel}</div>}\n <MultipleChoice {...model} session={session} onChoiceChanged={onChoiceChanged} />\n </PreviewLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles, { name: 'Main' })(Main);\n\nconst theme = createMuiTheme({\n typography: {\n useNextVariants: true,\n },\n});\n\nconst Root = (props) => (\n <MuiThemeProvider theme={theme}>\n <Styled {...props} />\n </MuiThemeProvider>\n);\n\nexport default Root;\n"],"file":"main.js"}
1
+ {"version":3,"sources":["../src/main.jsx"],"names":["styles","Main","props","model","onChoiceChanged","session","classes","React","Component","PropTypes","object","func","isRequired","Styled","name","theme","typography","useNextVariants","Root"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS;AAAA,SAAO,EAAP;AAAA,CAAf;;IAEMC,I;;;;;AAYJ,gBAAYC,KAAZ,EAAmB;AAAA;AAAA,6BACXA,KADW;AAElB;;;;WAED,kBAAS;AACP,wBAAqD,KAAKA,KAA1D;AAAA,UAAQC,KAAR,eAAQA,KAAR;AAAA,UAAeC,eAAf,eAAeA,eAAf;AAAA,UAAgCC,OAAhC,eAAgCA,OAAhC;AAAA,UAAyCC,OAAzC,eAAyCA,OAAzC,CADO,CAGP;;AACA,0BACE,gCAAC,uBAAD,qBACE,gCAAC,0BAAD,gCAAoBH,KAApB;AAA2B,QAAA,OAAO,EAAEE,OAApC;AAA6C,QAAA,eAAe,EAAED;AAA9D,SADF,CADF;AAKD;;;EAzBgBG,kBAAMC,S;;iCAAnBP,I,eACe;AACjBE,EAAAA,KAAK,EAAEM,sBAAUC,MADA;AAEjBL,EAAAA,OAAO,EAAEI,sBAAUC,MAFF;AAGjBN,EAAAA,eAAe,EAAEK,sBAAUE,IAHV;AAIjBL,EAAAA,OAAO,EAAEG,sBAAUC,MAAV,CAAiBE;AAJT,C;iCADfX,I,kBAQkB;AACpBE,EAAAA,KAAK,EAAE,EADa;AAEpBE,EAAAA,OAAO,EAAE;AAFW,C;AAoBxB,IAAMQ,MAAM,GAAG,wBAAWb,MAAX,EAAmB;AAAEc,EAAAA,IAAI,EAAE;AAAR,CAAnB,EAAqCb,IAArC,CAAf;AAEA,IAAMc,KAAK,GAAG,4BAAe;AAC3BC,EAAAA,UAAU,EAAE;AACVC,IAAAA,eAAe,EAAE;AADP;AADe,CAAf,CAAd;;AAMA,IAAMC,IAAI,GAAG,SAAPA,IAAO,CAAChB,KAAD;AAAA,sBACX,gCAAC,wBAAD;AAAkB,IAAA,KAAK,EAAEa;AAAzB,kBACE,gCAAC,MAAD,EAAYb,KAAZ,CADF,CADW;AAAA,CAAb;;eAMegB,I","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\nimport { PreviewLayout } from '@pie-lib/render-ui';\nimport MultipleChoice from './multiple-choice';\n\nconst styles = () => ({});\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onChoiceChanged: PropTypes.func,\n classes: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n model: {},\n session: {},\n };\n constructor(props) {\n super(props);\n }\n\n render() {\n const { model, onChoiceChanged, session, classes } = this.props;\n\n // model.partLabel is a property used for ebsr\n return (\n <PreviewLayout>\n <MultipleChoice {...model} session={session} onChoiceChanged={onChoiceChanged} />\n </PreviewLayout>\n );\n }\n}\n\nconst Styled = withStyles(styles, { name: 'Main' })(Main);\n\nconst theme = createMuiTheme({\n typography: {\n useNextVariants: true,\n },\n});\n\nconst Root = (props) => (\n <MuiThemeProvider theme={theme}>\n <Styled {...props} />\n </MuiThemeProvider>\n);\n\nexport default Root;\n"],"file":"main.js"}
@@ -45,11 +45,15 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
45
45
  var styles = function styles(theme) {
46
46
  return {
47
47
  main: {
48
+ color: _renderUi.color.text(),
48
49
  backgroundColor: _renderUi.color.background(),
49
50
  '& *': {
50
51
  '-webkit-font-smoothing': 'antialiased'
51
52
  }
52
53
  },
54
+ partLabel: {
55
+ paddingBottom: theme.spacing.unit * 2
56
+ },
53
57
  teacherInstructions: {
54
58
  marginBottom: theme.spacing.unit * 2
55
59
  },
@@ -189,6 +193,19 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
189
193
 
190
194
  return '';
191
195
  }
196
+ }, {
197
+ key: "getChecked",
198
+ value: function getChecked(choice) {
199
+ if (this.state.showCorrect) {
200
+ return choice.correct || false;
201
+ }
202
+
203
+ if (this.isSelected(choice.value)) {
204
+ return true;
205
+ }
206
+
207
+ return this.props.choiceMode === 'radio' ? this.state.selectedValue === choice.value : this.state.selectedValues.includes(choice.value);
208
+ }
192
209
  }, {
193
210
  key: "render",
194
211
  value: function render() {
@@ -203,6 +220,7 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
203
220
  choices = _this$props$choices === void 0 ? [] : _this$props$choices,
204
221
  choiceMode = _this$props.choiceMode,
205
222
  gridColumns = _this$props.gridColumns,
223
+ partLabel = _this$props.partLabel,
206
224
  prompt = _this$props.prompt,
207
225
  onChoiceChanged = _this$props.onChoiceChanged,
208
226
  responseCorrect = _this$props.responseCorrect,
@@ -210,17 +228,14 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
210
228
  classes = _this$props.classes,
211
229
  alwaysShowCorrect = _this$props.alwaysShowCorrect,
212
230
  animationsDisabled = _this$props.animationsDisabled;
213
- var _this$state = this.state,
214
- showCorrect = _this$state.showCorrect,
215
- selectedValue = _this$state.selectedValue,
216
- selectedValues = _this$state.selectedValues;
231
+ var showCorrect = this.state.showCorrect;
217
232
  var isEvaluateMode = mode === 'evaluate';
218
233
  var showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;
219
234
  var columnsStyle = gridColumns > 1 ? {
220
235
  gridTemplateColumns: "repeat(".concat(gridColumns, ", 1fr)")
221
236
  } : undefined;
222
237
 
223
- var teacherInsttructionsDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
238
+ var teacherInstructionsDiv = /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
224
239
  tagName: "div",
225
240
  className: "prompt",
226
241
  defaultClassName: "teacher-instructions",
@@ -229,14 +244,16 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
229
244
 
230
245
  return /*#__PURE__*/_react["default"].createElement("div", {
231
246
  className: (0, _classnames["default"])(classes.main, className, 'multiple-choice')
232
- }, teacherInstructions && /*#__PURE__*/_react["default"].createElement("div", {
247
+ }, partLabel && /*#__PURE__*/_react["default"].createElement("div", {
248
+ className: classes.partLabel
249
+ }, partLabel), teacherInstructions && /*#__PURE__*/_react["default"].createElement("div", {
233
250
  className: classes.teacherInstructions
234
251
  }, !animationsDisabled ? /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
235
252
  labels: {
236
253
  hidden: 'Show Teacher Instructions',
237
254
  visible: 'Hide Teacher Instructions'
238
255
  }
239
- }, teacherInsttructionsDiv) : teacherInsttructionsDiv), /*#__PURE__*/_react["default"].createElement("fieldset", {
256
+ }, teacherInstructionsDiv) : teacherInstructionsDiv), /*#__PURE__*/_react["default"].createElement("fieldset", {
240
257
  className: classes.fieldset
241
258
  }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
242
259
  className: "prompt",
@@ -265,7 +282,7 @@ var MultipleChoice = /*#__PURE__*/function (_React$Component) {
265
282
  updateSession: onChoiceChanged,
266
283
  onChoiceChanged: _this2.props.choiceMode === 'radio' ? _this2.handleChange : _this2.handleChangeCheckboxes,
267
284
  hideTick: choice.hideTick,
268
- checked: showCorrect ? choice.correct || false : _this2.props.choiceMode === 'radio' ? selectedValue === choice.value : selectedValues.includes(choice.value),
285
+ checked: _this2.getChecked(choice),
269
286
  correctness: isEvaluateMode ? _this2.getCorrectness(choice) : undefined,
270
287
  displayKey: _this2.indexToSymbol(index)
271
288
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/multiple-choice.jsx"],"names":["styles","theme","main","backgroundColor","color","background","teacherInstructions","marginBottom","spacing","unit","horizontalLayout","display","flexDirection","flexWrap","gridLayout","fieldset","border","padding","margin","minWidth","MultipleChoice","props","event","target","setState","selectedValue","value","checked","prevState","selectedValues","push","filter","currentValue","choice","isCorrect","correct","isChecked","isSelected","state","showCorrect","undefined","alwaysShowCorrect","onToggle","bind","sessionValue","session","indexOf","mode","nextProps","correctResponse","index","keyMode","String","fromCharCode","toUpperCase","disabled","className","choices","choiceMode","gridColumns","prompt","onChoiceChanged","responseCorrect","classes","animationsDisabled","isEvaluateMode","showCorrectAnswerToggle","columnsStyle","gridTemplateColumns","teacherInsttructionsDiv","hidden","visible","choicesLayout","map","length","handleChange","handleChangeCheckboxes","hideTick","includes","getCorrectness","indexToSymbol","React","Component","PropTypes","oneOf","array","string","object","bool","func","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\nimport StyledChoice from './choice';\n\n// MultipleChoice\n\nconst styles = (theme) => ({\n main: {\n backgroundColor: color.background(),\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n horizontalLayout: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n gridLayout: {\n display: 'grid',\n },\n fieldset: {\n border: '0px',\n padding: '0.01em 0 0 0',\n margin: '0px',\n minWidth: '0px',\n },\n});\n\nexport class MultipleChoice extends React.Component {\n static propTypes = {\n mode: PropTypes.oneOf(['gather', 'view', 'evaluate']),\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n keyMode: PropTypes.oneOf(['numbers', 'letters', 'none']),\n choices: PropTypes.array,\n prompt: PropTypes.string,\n teacherInstructions: PropTypes.string,\n session: PropTypes.object,\n disabled: PropTypes.bool,\n onChoiceChanged: PropTypes.func,\n responseCorrect: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n correctResponse: PropTypes.array,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedValue: null,\n selectedValues: [],\n showCorrect: this.props.alwaysShowCorrect || false,\n };\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n isSelected(value) {\n const sessionValue = this.props.session && this.props.session.value;\n\n return sessionValue && sessionValue.indexOf && sessionValue.indexOf(value) >= 0;\n }\n\n // handleChange and handleChangeCheckboxes functions were added for accessibility. Please see comments and videos from PD-2441. They should only be removed if a better solution is found.\n handleChange = (event) => {\n const target = event.target;\n\n this.setState({ selectedValue: target.value });\n };\n\n handleChangeCheckboxes = (event) => {\n const { value, checked } = event.target;\n\n this.setState((prevState) => {\n let selectedValues = [...prevState.selectedValues];\n\n if (checked) {\n selectedValues.push(value);\n } else {\n selectedValues = selectedValues.filter((currentValue) => currentValue !== value);\n }\n\n return { selectedValues };\n });\n };\n\n onToggle() {\n if (this.props.mode === 'evaluate') {\n this.setState({ showCorrect: !this.state.showCorrect });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!nextProps.correctResponse) {\n this.setState({ showCorrect: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n }\n\n indexToSymbol(index) {\n if (this.props.keyMode === 'numbers') {\n return `${index + 1}`;\n }\n\n if (this.props.keyMode === 'letters') {\n return String.fromCharCode(97 + index).toUpperCase();\n }\n\n return '';\n }\n\n getCorrectness = (choice = {}) => {\n const isCorrect = choice.correct;\n const isChecked = this.isSelected(choice.value);\n\n if (this.state.showCorrect) {\n return isCorrect ? 'correct' : undefined;\n }\n\n if (isCorrect) {\n if (isChecked) {\n // A correct answer is selected: marked with a green checkmark\n return 'correct';\n } else {\n // A correct answer is NOT selected: marked with an orange X\n return 'incorrect';\n }\n } else {\n if (isChecked) {\n // An incorrect answer is selected: marked with an orange X\n return 'incorrect';\n } else {\n // An incorrect answer is NOT selected: not marked\n return undefined;\n }\n }\n };\n\n render() {\n const {\n mode,\n disabled,\n className,\n choices = [],\n choiceMode,\n gridColumns,\n prompt,\n onChoiceChanged,\n responseCorrect,\n teacherInstructions,\n classes,\n alwaysShowCorrect,\n animationsDisabled,\n } = this.props;\n const { showCorrect, selectedValue, selectedValues } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;\n const columnsStyle = gridColumns > 1 ? { gridTemplateColumns: `repeat(${gridColumns}, 1fr)` } : undefined;\n\n const teacherInsttructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n return (\n <div className={classNames(classes.main, className, 'multiple-choice')}>\n {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 {teacherInsttructionsDiv}\n </Collapsible>\n ) : (\n teacherInsttructionsDiv\n )}\n </div>\n )}\n\n <fieldset className={classes.fieldset}>\n <PreviewPrompt className=\"prompt\" defaultClassName=\"prompt\" prompt={prompt} tagName={'legend'} />\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.onToggle.bind(this)}\n />\n )}\n\n <div\n className={classNames({\n [classes.gridLayout]: this.props.choicesLayout === 'grid',\n [classes.horizontalLayout]: this.props.choicesLayout === 'horizontal',\n })}\n style={columnsStyle}\n >\n {choices.map((choice, index) => (\n <StyledChoice\n choicesLayout={this.props.choicesLayout}\n gridColumns={gridColumns}\n key={`choice-${index}`}\n choice={choice}\n index={index}\n choicesLength={choices.length}\n showCorrect={showCorrect}\n isEvaluateMode={isEvaluateMode}\n choiceMode={choiceMode}\n disabled={disabled}\n updateSession={onChoiceChanged}\n onChoiceChanged={this.props.choiceMode === 'radio' ? this.handleChange : this.handleChangeCheckboxes}\n hideTick={choice.hideTick}\n checked={\n showCorrect\n ? choice.correct || false\n : this.props.choiceMode === 'radio'\n ? selectedValue === choice.value\n : selectedValues.includes(choice.value)\n }\n correctness={isEvaluateMode ? this.getCorrectness(choice) : undefined}\n displayKey={this.indexToSymbol(index)}\n />\n ))}\n </div>\n </fieldset>\n </div>\n );\n }\n}\n\nMultipleChoice.defaultProps = {\n session: {\n value: [],\n },\n};\n\nexport default withStyles(styles)(MultipleChoice);\n"],"file":"multiple-choice.js"}
1
+ {"version":3,"sources":["../src/multiple-choice.jsx"],"names":["styles","theme","main","color","text","backgroundColor","background","partLabel","paddingBottom","spacing","unit","teacherInstructions","marginBottom","horizontalLayout","display","flexDirection","flexWrap","gridLayout","fieldset","border","padding","margin","minWidth","MultipleChoice","props","event","target","setState","selectedValue","value","checked","prevState","selectedValues","push","filter","currentValue","choice","isCorrect","correct","isChecked","isSelected","state","showCorrect","undefined","alwaysShowCorrect","onToggle","bind","sessionValue","session","indexOf","mode","nextProps","correctResponse","index","keyMode","String","fromCharCode","toUpperCase","choiceMode","includes","disabled","className","choices","gridColumns","prompt","onChoiceChanged","responseCorrect","classes","animationsDisabled","isEvaluateMode","showCorrectAnswerToggle","columnsStyle","gridTemplateColumns","teacherInstructionsDiv","hidden","visible","choicesLayout","map","length","handleChange","handleChangeCheckboxes","hideTick","getChecked","getCorrectness","indexToSymbol","React","Component","PropTypes","oneOf","array","string","object","bool","func","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { color, Collapsible, PreviewPrompt } from '@pie-lib/render-ui';\nimport StyledChoice from './choice';\n\n// MultipleChoice\n\nconst styles = (theme) => ({\n main: {\n color: color.text(),\n backgroundColor: color.background(),\n '& *': {\n '-webkit-font-smoothing': 'antialiased',\n },\n },\n partLabel: {\n paddingBottom: theme.spacing.unit * 2,\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n horizontalLayout: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n },\n gridLayout: {\n display: 'grid',\n },\n fieldset: {\n border: '0px',\n padding: '0.01em 0 0 0',\n margin: '0px',\n minWidth: '0px',\n },\n});\n\nexport class MultipleChoice extends React.Component {\n static propTypes = {\n mode: PropTypes.oneOf(['gather', 'view', 'evaluate']),\n choiceMode: PropTypes.oneOf(['radio', 'checkbox']),\n keyMode: PropTypes.oneOf(['numbers', 'letters', 'none']),\n choices: PropTypes.array,\n prompt: PropTypes.string,\n teacherInstructions: PropTypes.string,\n session: PropTypes.object,\n disabled: PropTypes.bool,\n onChoiceChanged: PropTypes.func,\n responseCorrect: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n correctResponse: PropTypes.array,\n choicesLayout: PropTypes.oneOf(['vertical', 'grid', 'horizontal']),\n gridColumns: PropTypes.string,\n alwaysShowCorrect: PropTypes.bool,\n animationsDisabled: PropTypes.bool,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedValue: null,\n selectedValues: [],\n showCorrect: this.props.alwaysShowCorrect || false,\n };\n\n this.onToggle = this.onToggle.bind(this);\n }\n\n isSelected(value) {\n const sessionValue = this.props.session && this.props.session.value;\n\n return sessionValue && sessionValue.indexOf && sessionValue.indexOf(value) >= 0;\n }\n\n // handleChange and handleChangeCheckboxes functions were added for accessibility. Please see comments and videos from PD-2441. They should only be removed if a better solution is found.\n handleChange = (event) => {\n const target = event.target;\n\n this.setState({ selectedValue: target.value });\n };\n\n handleChangeCheckboxes = (event) => {\n const { value, checked } = event.target;\n\n this.setState((prevState) => {\n let selectedValues = [...prevState.selectedValues];\n\n if (checked) {\n selectedValues.push(value);\n } else {\n selectedValues = selectedValues.filter((currentValue) => currentValue !== value);\n }\n\n return { selectedValues };\n });\n };\n\n onToggle() {\n if (this.props.mode === 'evaluate') {\n this.setState({ showCorrect: !this.state.showCorrect });\n }\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!nextProps.correctResponse) {\n this.setState({ showCorrect: false });\n }\n\n if (nextProps.alwaysShowCorrect) {\n this.setState({ showCorrect: true });\n }\n }\n\n indexToSymbol(index) {\n if (this.props.keyMode === 'numbers') {\n return `${index + 1}`;\n }\n\n if (this.props.keyMode === 'letters') {\n return String.fromCharCode(97 + index).toUpperCase();\n }\n\n return '';\n }\n\n getCorrectness = (choice = {}) => {\n const isCorrect = choice.correct;\n const isChecked = this.isSelected(choice.value);\n\n if (this.state.showCorrect) {\n return isCorrect ? 'correct' : undefined;\n }\n\n if (isCorrect) {\n if (isChecked) {\n // A correct answer is selected: marked with a green checkmark\n return 'correct';\n } else {\n // A correct answer is NOT selected: marked with an orange X\n return 'incorrect';\n }\n } else {\n if (isChecked) {\n // An incorrect answer is selected: marked with an orange X\n return 'incorrect';\n } else {\n // An incorrect answer is NOT selected: not marked\n return undefined;\n }\n }\n };\n\n getChecked(choice) {\n if (this.state.showCorrect) {\n return choice.correct || false;\n }\n\n if (this.isSelected(choice.value)) {\n return true;\n }\n\n return this.props.choiceMode === 'radio'\n ? this.state.selectedValue === choice.value\n : this.state.selectedValues.includes(choice.value);\n }\n\n render() {\n const {\n mode,\n disabled,\n className,\n choices = [],\n choiceMode,\n gridColumns,\n partLabel,\n prompt,\n onChoiceChanged,\n responseCorrect,\n teacherInstructions,\n classes,\n alwaysShowCorrect,\n animationsDisabled,\n } = this.props;\n const { showCorrect } = this.state;\n const isEvaluateMode = mode === 'evaluate';\n const showCorrectAnswerToggle = isEvaluateMode && !responseCorrect;\n const columnsStyle = gridColumns > 1 ? { gridTemplateColumns: `repeat(${gridColumns}, 1fr)` } : undefined;\n\n const teacherInstructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n return (\n <div className={classNames(classes.main, className, 'multiple-choice')}>\n {partLabel && <div className={classes.partLabel}>{partLabel}</div>}\n\n {teacherInstructions && (\n <div className={classes.teacherInstructions}>\n {!animationsDisabled ? (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </div>\n )}\n\n <fieldset className={classes.fieldset}>\n <PreviewPrompt className=\"prompt\" defaultClassName=\"prompt\" prompt={prompt} tagName={'legend'} />\n\n {!alwaysShowCorrect && (\n <CorrectAnswerToggle\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.onToggle.bind(this)}\n />\n )}\n\n <div\n className={classNames({\n [classes.gridLayout]: this.props.choicesLayout === 'grid',\n [classes.horizontalLayout]: this.props.choicesLayout === 'horizontal',\n })}\n style={columnsStyle}\n >\n {choices.map((choice, index) => (\n <StyledChoice\n choicesLayout={this.props.choicesLayout}\n gridColumns={gridColumns}\n key={`choice-${index}`}\n choice={choice}\n index={index}\n choicesLength={choices.length}\n showCorrect={showCorrect}\n isEvaluateMode={isEvaluateMode}\n choiceMode={choiceMode}\n disabled={disabled}\n updateSession={onChoiceChanged}\n onChoiceChanged={this.props.choiceMode === 'radio' ? this.handleChange : this.handleChangeCheckboxes}\n hideTick={choice.hideTick}\n checked={this.getChecked(choice)}\n correctness={isEvaluateMode ? this.getCorrectness(choice) : undefined}\n displayKey={this.indexToSymbol(index)}\n />\n ))}\n </div>\n </fieldset>\n </div>\n );\n }\n}\n\nMultipleChoice.defaultProps = {\n session: {\n value: [],\n },\n};\n\nexport default withStyles(styles)(MultipleChoice);\n"],"file":"multiple-choice.js"}
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@pie-element/multiple-choice",
3
3
  "repository": "pie-framework/pie-elements",
4
- "version": "7.9.3-next.41+c2858855e",
4
+ "version": "7.9.3-next.56+d8bf26886",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
8
8
  "dependencies": {
9
9
  "@material-ui/core": "^3.9.2",
10
- "@pie-lib/config-ui": "^11.5.4",
11
- "@pie-lib/correct-answer-toggle": "^2.3.66",
12
- "@pie-lib/math-rendering": "^2.5.12",
13
- "@pie-lib/render-ui": "^4.14.16",
10
+ "@pie-lib/config-ui": "^11.5.5",
11
+ "@pie-lib/correct-answer-toggle": "^2.3.67",
12
+ "@pie-lib/math-rendering": "^2.5.13",
13
+ "@pie-lib/render-ui": "^4.14.17",
14
14
  "classnames": "^2.2.5",
15
15
  "debug": "^4.1.1",
16
16
  "enzyme-to-json": "^3.3.3",
@@ -21,7 +21,7 @@
21
21
  "react-test-renderer": "^16.3.2",
22
22
  "react-transition-group": "^2.3.1"
23
23
  },
24
- "gitHead": "c2858855e0df45a4cb86fbd20637fc82f27f07c6",
24
+ "gitHead": "d8bf268864c1023d6595698b86fb1f7ea82c39d4",
25
25
  "scripts": {
26
26
  "postpublish": "../../scripts/postpublish"
27
27
  },