@pie-element/multiple-choice 11.0.1-next.0 → 11.0.2-esm.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.js","sources":["../configure/src/utils.js","../configure/src/main.jsx","../configure/src/defaults.js","../configure/src/index.js"],"sourcesContent":["export const generateValidationMessage = (config) => {\n const { minAnswerChoices, maxAnswerChoices } = config;\n\n const answerChoicesMessage =\n `\\nThere should be at least ${minAnswerChoices} ` +\n (maxAnswerChoices ? `and at most ${maxAnswerChoices} ` : '') +\n 'answer choices defined.' +\n '\\nEvery answer choice should be non-blank and unique.';\n\n const correctAnswerMessage = '\\nA correct answer must be defined.';\n\n const message = 'Validation requirements:' + answerChoicesMessage + correctAnswerMessage;\n\n return message;\n};\n","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 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 addChoiceButton = {},\n contentDimensions = {},\n feedback = {},\n deleteChoice = {},\n choiceMode = {},\n choicePrefix = {},\n partialScoring = {},\n lockChoiceOrder = {},\n teacherInstructions = {},\n studentInstructions = {},\n rationale = {},\n scoringType = {},\n sequentialChoiceLabels = {},\n settingsPanelDisabled,\n choicesLayout,\n spellCheck = {},\n gridColumns,\n maxImageWidth = {},\n maxImageHeight = {},\n prompt = {},\n withRubric = {},\n mathMlOptions = {},\n language = {},\n languageChoices = {},\n } = configuration || {};\n let { maxAnswerChoices } = configuration || {};\n const {\n limitChoicesNumber,\n teacherInstructionsEnabled,\n rationaleEnabled,\n feedbackEnabled,\n promptEnabled,\n spellCheckEnabled,\n choices,\n errors,\n toolbarEditorPosition,\n extraCSSRules,\n } = model || {};\n\n const {\n answerChoices: answerChoicesError,\n choices: choicesErrors,\n correctResponse: correctResponseError,\n prompt: promptError,\n rationale: rationaleErrors,\n teacherInstructions: teacherInstructionsError,\n } = errors || {};\n const nrOfColumnsAvailable = choices?.length ? Array.from({ length: choices.length }, (_, i) => `${i + 1}`) : [];\n\n const { baseInputConfiguration = {} } = configuration;\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 getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\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 'language.enabled': language.settings && toggle(language.label, true),\n language: language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\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 scoringType: scoringType.settings && radio(scoringType.label, ['auto', 'rubric']),\n rubricEnabled: withRubric?.settings && toggle(withRubric?.label),\n };\n\n return (\n <layout.ConfigLayout\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n extraCSSRules={extraCSSRules}\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 error={teacherInstructionsError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.teacherInstructions?.inputConfiguration)}\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 mathMlOptions={mathMlOptions}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\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 error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={maxImageWidth && maxImageWidth.prompt}\n maxImageHeight={maxImageHeight && maxImageHeight.prompt}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n <div className={classes.flexContainer}>\n <Typography className={classes.titleText} component={'div'}>\n Choices\n </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 pluginOpts={getPluginProps(configuration?.choices?.inputConfiguration)}\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 mathMlOptions={mathMlOptions}\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 error={rationaleErrors?.[choice.value] || null}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(configuration?.rationale?.inputConfiguration)}\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 mathMlOptions={mathMlOptions}\n />\n {rationaleErrors?.[choice.value] && (\n <div className={classes.errorText}>{rationaleErrors?.[choice.value]}</div>\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","/** NOTE: teacherInstructions, studentInstructions, rationale & scoringType\n * functionalities are not defined yet - the value for those can belong to\n * model or to configure\n */\nexport default {\n model: {\n choiceMode: 'checkbox',\n choicePrefix: 'letters',\n choices: [],\n choicesLayout: 'vertical',\n feedbackEnabled: false,\n gridColumns: 2,\n lockChoiceOrder: true,\n partialScoring: true,\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n scoringType: 'auto',\n studentInstructionsEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n selectedAnswerBackgroundColor: 'initial',\n keyboardEventsEnabled: false,\n },\n configuration: {\n baseInputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n choices: {\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n choicesLayout: {\n settings: false,\n label: 'Choices Layout',\n },\n gridColumns: {\n label: 'Grid columns',\n },\n answerChoiceCount: 0,\n addChoiceButton: {\n settings: true,\n label: 'Add a Choice',\n },\n choiceMode: {\n settings: true,\n label: 'Response Type',\n },\n choicePrefix: {\n settings: true,\n label: 'Choice Labels',\n },\n deleteChoice: {\n settings: true,\n },\n feedback: {\n settings: true,\n label: 'Feedback',\n },\n prompt: {\n settings: true,\n label: 'Prompt',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n lockChoiceOrder: {\n settings: true,\n label: 'Lock Choice Order',\n },\n partialScoring: {\n settings: false,\n label: 'Allow Partial Scoring',\n },\n rationale: {\n settings: true,\n label: 'Rationale',\n inputConfiguration: {\n audio: { disabled: true },\n video: { disabled: true },\n image: { disabled: false },\n },\n required: false,\n },\n scoringType: {\n settings: false,\n label: 'Scoring Type',\n },\n studentInstructions: {\n settings: false,\n label: 'Student Instructions',\n },\n teacherInstructions: {\n settings: true,\n label: 'Teacher Instructions',\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n required: false,\n },\n toolbarEditorPosition: {\n settings: false,\n label: 'Toolbar Editor Position',\n },\n minAnswerChoices: 2,\n maxAnswerChoices: 5,\n maxImageWidth: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 636,\n choices: 900,\n },\n maxImageHeight: {\n teacherInstructions: 300,\n prompt: 300,\n rationale: 300,\n choices: 300,\n },\n withRubric: {\n settings: false,\n label: 'Add Rubric',\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n },\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debug from 'debug';\nimport {\n DeleteImageEvent,\n InsertImageEvent,\n ModelUpdatedEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './main';\nimport { choiceUtils as utils } from '@pie-lib/config-ui';\nimport defaults from 'lodash/defaults';\n\nimport sensibleDefaults from './defaults';\n\nconst log = debug('multiple-choice:configure');\n\nconst generateFormattedChoices = (choices, choiceCount = 0) => {\n if (!choices || choices.length === 0) {\n let formattedChoices = [];\n\n for (let i = 0; i < choiceCount; i++) {\n formattedChoices.push({\n value: `${i}`,\n label: '',\n feedback: {\n type: 'none',\n value: '',\n },\n });\n }\n\n return formattedChoices;\n }\n\n return choices;\n};\n\nconst prepareCustomizationObject = (config, model) => {\n const configuration = defaults(config, sensibleDefaults.configuration);\n\n return {\n configuration,\n model: {\n ...model,\n choices: generateFormattedChoices(\n (model && model.choices) || [],\n configuration && configuration.answerChoiceCount,\n ),\n },\n };\n};\n\nexport default class MultipleChoice extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = utils.normalizeChoices({\n ...sensibleDefaults.model,\n ...model,\n choices: generateFormattedChoices((model && model.choices) || []),\n });\n\n // This is used for offering support for old models which have the property \"verticalMode\"\n normalizedModel.choicesLayout =\n model.choicesLayout || (model.verticalMode === false && 'horizontal') || sensibleDefaults.model.choicesLayout;\n\n return normalizedModel;\n };\n\n constructor() {\n super();\n this._model = MultipleChoice.createDefaultModel();\n this._configuration = sensibleDefaults.configuration;\n this.onModelChanged = this.onModelChanged.bind(this);\n this.onConfigurationChanged = this.onConfigurationChanged.bind(this);\n }\n\n set model(s) {\n this._model = MultipleChoice.createDefaultModel(s);\n\n this._render();\n }\n\n set configuration(c) {\n const info = prepareCustomizationObject(c, this._model);\n\n this.onModelChanged(info.model);\n\n const newConfiguration = {\n ...sensibleDefaults.configuration,\n ...info.configuration,\n };\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n set disableSidePanel(s) {\n this._disableSidePanel = s;\n this._render();\n }\n\n dispatchModelUpdated(reset) {\n const resetValue = !!reset;\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model, resetValue));\n }\n\n onModelChanged(m, reset) {\n this._model = m;\n this._render();\n\n this.dispatchModelUpdated(reset);\n }\n\n onConfigurationChanged(c) {\n this._configuration = prepareCustomizationObject(c, this._model).configuration;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n }\n\n /** @param {done, progress, file} handler */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n log('_render');\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n disableSidePanel: this._disableSidePanel,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(element, this);\n }\n}\n"],"names":["generateValidationMessage","config","minAnswerChoices","maxAnswerChoices","answerChoicesMessage","correctAnswerMessage","message","Panel","toggle","radio","dropdown","settings","MAX_CHOICES","styles","theme","promptHolder","width","paddingTop","spacing","unit","marginBottom","rationaleHolder","flex","marginTop","marginLeft","choiceConfigurationHolder","display","flexDirection","choiceConfiguration","switchElement","justifyContent","margin","addButton","float","disableButton","cursor","pointerEvents","backgroundColor","color","disabled","flexContainer","alignItems","titleText","fontSize","typography","marginRight","tooltip","whiteSpace","maxWidth","errorText","palette","error","main","Design","withStyles","props","classes","model","configuration","onPromptChanged","onChoiceChanged","onRemoveChoice","onAddChoice","imageSupport","uploadSoundSupport","onChangeModel","onConfigurationChanged","onTeacherInstructionsChanged","addChoiceButton","contentDimensions","feedback","deleteChoice","choiceMode","choicePrefix","partialScoring","lockChoiceOrder","teacherInstructions","studentInstructions","rationale","scoringType","sequentialChoiceLabels","settingsPanelDisabled","choicesLayout","spellCheck","gridColumns","maxImageWidth","maxImageHeight","prompt","withRubric","mathMlOptions","language","languageChoices","limitChoicesNumber","teacherInstructionsEnabled","rationaleEnabled","feedbackEnabled","promptEnabled","spellCheckEnabled","choices","errors","toolbarEditorPosition","extraCSSRules","answerChoices","answerChoicesError","choicesErrors","correctResponse","correctResponseError","promptError","rationaleErrors","teacherInstructionsError","nrOfColumnsAvailable","length","Array","from","_","i","baseInputConfiguration","toolbarOpts","position","getPluginProps","validationMessage","defaultImageMaxWidth","defaultImageMaxHeight","addChoiceButtonTooltip","panelSettings","label","enabled","options","panelProperties","studentInstructionsEnabled","rubricEnabled","Settings","Properties","inputConfiguration","map","choice","index","c","value","root","Main","React","Component","state","showWarning","onModelChanged","setState","splice","push","utils","firstAvailableIndex","type","correct","merge","key","correctFound","render","propTypes","PropTypes","object","isRequired","disableSidePanel","bool","func","shape","add","delete","Styled","selectedAnswerBackgroundColor","keyboardEventsEnabled","audio","video","image","textAlign","showParagraphs","separateParagraphs","answerChoiceCount","required","mmlOutput","mmlEditing","log","debug","generateFormattedChoices","choiceCount","formattedChoices","prepareCustomizationObject","defaults","sensibleDefaults","MultipleChoice","HTMLElement","constructor","_model","createDefaultModel","_configuration","bind","s","_render","info","newConfiguration","find","option","_disableSidePanel","dispatchModelUpdated","reset","resetValue","dispatchEvent","ModelUpdatedEvent","m","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","element","createElement","ReactDOM","normalizedModel","normalizeChoices","verticalMode"],"mappings":"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"}